code: public final ProtocolDataUnit create (final boolean immediateFlag, final boolean finalFlag, final OperationCode operationCode, final String headerDigest, final String dataDigest) {
  
          final ProtocolDataUnit protocolDataUnit = new ProtocolDataUnit(digestFactory.create(headerDigest), digestFactory.create(dataDigest));
  
          protocolDataUnit.getBasicHeaderSegment().setImmediate(immediateFlag);
          protocolDataUnit.getBasicHeaderSegment().setFinal(finalFlag);
          protocolDataUnit.getBasicHeaderSegment().setOperationCode(protocolDataUnit, operationCode);
  
          return protocolDataUnit;
      }
docs: This method creates a <code>ProtocolDataUnit</code> instance, which is initialized with the given settings, and
  returns it.
  
  @param immediateFlag Should this PDU send immediately?
  @param operationCode The Operation Code of this PDU.
  @param finalFlag Is this PDU the last one in a sequence?
  @param headerDigest The name of the digest to use for the protection of the Basic Header Segment.
  @param dataDigest The name of the digest to use for the protection of the Data Segment.
  @return A new <code>ProtocolDataUnit</code> instance.