|
33 | 33 | import org.ebics.s002.UserSignatureDataDocument; |
34 | 34 | import org.ebics.s002.UserSignatureDataSigBookType; |
35 | 35 | import org.kopi.ebics.schema.h005.AuthenticationPubKeyInfoType; |
| 36 | +import org.kopi.ebics.schema.h005.BTUOrderParamsDocument; |
| 37 | +import org.kopi.ebics.schema.h005.BTUParamsType; |
| 38 | +import org.kopi.ebics.schema.h005.DataDigestType; |
36 | 39 | import org.kopi.ebics.schema.h005.DataEncryptionInfoType.EncryptionPubKeyDigest; |
37 | 40 | import org.kopi.ebics.schema.h005.DataTransferRequestType; |
38 | 41 | import org.kopi.ebics.schema.h005.DataTransferRequestType.DataEncryptionInfo; |
|
51 | 54 | import org.kopi.ebics.schema.h005.EncryptionPubKeyInfoType; |
52 | 55 | import org.kopi.ebics.schema.h005.HIARequestOrderDataDocument; |
53 | 56 | import org.kopi.ebics.schema.h005.HIARequestOrderDataType; |
| 57 | +import org.kopi.ebics.schema.h005.MessageType; |
54 | 58 | import org.kopi.ebics.schema.h005.MutableHeaderType; |
55 | 59 | import org.kopi.ebics.schema.h005.MutableHeaderType.SegmentNumber; |
56 | 60 | import org.kopi.ebics.schema.h005.NoPubKeyDigestsRequestStaticHeaderType; |
|
59 | 63 | import org.kopi.ebics.schema.h005.ParameterDocument.Parameter.Value; |
60 | 64 | import org.kopi.ebics.schema.h005.ProductElementType; |
61 | 65 | import org.kopi.ebics.schema.h005.PubKeyInfoType; |
| 66 | +import org.kopi.ebics.schema.h005.SignatureFlagType; |
62 | 67 | import org.kopi.ebics.schema.h005.StandardOrderParamsDocument; |
63 | 68 | import org.kopi.ebics.schema.h005.StandardOrderParamsType; |
64 | 69 | import org.kopi.ebics.schema.h005.StaticHeaderOrderDetailsType; |
@@ -784,19 +789,19 @@ public static StaticHeaderType createStaticHeaderType(String hostId, byte[] nonc |
784 | 789 | int numSegments, String partnerId, StaticHeaderType.Product product, String securityMedium, |
785 | 790 | String userId, Calendar timestamp, StaticHeaderOrderDetailsType orderDetails, |
786 | 791 | StaticHeaderType.BankPubKeyDigests bankPubKeyDigests) { |
787 | | - StaticHeaderType newStaticHeaderType = StaticHeaderType.Factory.newInstance(); |
788 | | - newStaticHeaderType.setHostID(hostId); |
789 | | - newStaticHeaderType.setNonce(nonce); |
790 | | - newStaticHeaderType.setNumSegments(numSegments); |
791 | | - newStaticHeaderType.setPartnerID(partnerId); |
792 | | - newStaticHeaderType.setProduct(product); |
793 | | - newStaticHeaderType.setSecurityMedium(securityMedium); |
794 | | - newStaticHeaderType.setUserID(userId); |
795 | | - newStaticHeaderType.setTimestamp(timestamp); |
796 | | - newStaticHeaderType.setOrderDetails(orderDetails); |
797 | | - newStaticHeaderType.setBankPubKeyDigests(bankPubKeyDigests); |
| 792 | + StaticHeaderType header = StaticHeaderType.Factory.newInstance(); |
| 793 | + header.setHostID(hostId); |
| 794 | + header.setNonce(nonce); |
| 795 | + header.setNumSegments(numSegments); |
| 796 | + header.setPartnerID(partnerId); |
| 797 | + header.setProduct(product); |
| 798 | + header.setSecurityMedium(securityMedium); |
| 799 | + header.setUserID(userId); |
| 800 | + header.setTimestamp(timestamp); |
| 801 | + header.setOrderDetails(orderDetails); |
| 802 | + header.setBankPubKeyDigests(bankPubKeyDigests); |
798 | 803 |
|
799 | | - return newStaticHeaderType; |
| 804 | + return header; |
800 | 805 | } |
801 | 806 |
|
802 | 807 | /** |
@@ -881,17 +886,37 @@ public static StaticHeaderType createStaticHeaderType(String hostId, byte[] nonc |
881 | 886 |
|
882 | 887 | public static StaticHeaderOrderDetailsType createStaticHeaderOrderDetailsType(String orderId, |
883 | 888 | StaticHeaderOrderDetailsType.AdminOrderType orderType, |
884 | | - StandardOrderParamsType orderParams) { |
| 889 | + XmlObject orderParams, SchemaType orderParamsType) { |
885 | 890 |
|
886 | 891 | StaticHeaderOrderDetailsType type = StaticHeaderOrderDetailsType.Factory.newInstance(); |
887 | 892 | if (orderId != null) { |
888 | 893 | type.setOrderID(orderId); |
889 | 894 | } |
890 | | - |
891 | | - type.setOrderParams(orderParams); |
892 | | - var newInstance = StandardOrderParamsDocument.type.getDocumentElementName(); |
893 | | - qualifySubstitutionGroup(type.getOrderParams(), newInstance, null); |
894 | 895 | type.setAdminOrderType(orderType); |
| 896 | + type.setOrderParams(orderParams); |
| 897 | + qualifySubstitutionGroup(type.getOrderParams(), orderParamsType.getDocumentElementName(), null); |
| 898 | + return type; |
| 899 | + } |
| 900 | + |
| 901 | + public static BTUParamsType createBTUParams(String serviceName, String scope, String option, |
| 902 | + String messageName, String messageVersion, boolean signatureFlag) { |
| 903 | + var type = BTUParamsType.Factory.newInstance(); |
| 904 | + var service = type.addNewService(); |
| 905 | + service.setServiceName(serviceName); |
| 906 | + service.setScope(scope); |
| 907 | + if (option != null) { |
| 908 | + service.setServiceOption(option); |
| 909 | + } |
| 910 | + var msgType = MessageType.Factory.newInstance(); |
| 911 | + |
| 912 | + msgType.setStringValue(messageName); |
| 913 | + //msgType.setFormat(messageName); |
| 914 | + msgType.setVersion(messageVersion); |
| 915 | + service.setMsgName(msgType); |
| 916 | + if (signatureFlag) { |
| 917 | + var flag = type.addNewSignatureFlag(); |
| 918 | + flag.setRequestEDS(true); |
| 919 | + } |
895 | 920 | return type; |
896 | 921 | } |
897 | 922 |
|
@@ -1134,10 +1159,16 @@ public static EbicsRequestDocument.EbicsRequest.Body createEbicsRequestBody( |
1134 | 1159 | * @return the <code>DataTransferRequestType</code> XML object |
1135 | 1160 | */ |
1136 | 1161 | public static DataTransferRequestType createDataTransferRequestType( |
1137 | | - DataEncryptionInfo dataEncryptionInfo, SignatureData signatureData) { |
| 1162 | + DataEncryptionInfo dataEncryptionInfo, SignatureData signatureData, String digestValue) { |
1138 | 1163 | DataTransferRequestType newDataTransferRequestType = DataTransferRequestType.Factory.newInstance(); |
1139 | 1164 | newDataTransferRequestType.setDataEncryptionInfo(dataEncryptionInfo); |
1140 | 1165 | newDataTransferRequestType.setSignatureData(signatureData); |
| 1166 | + if (digestValue != null) { |
| 1167 | + var digest = DataDigestType.Factory.newInstance(); |
| 1168 | + digest.setSignatureVersion("A005"); |
| 1169 | + digest.setStringValue(digestValue); |
| 1170 | + newDataTransferRequestType.setDataDigest(digest); |
| 1171 | + } |
1141 | 1172 |
|
1142 | 1173 | return newDataTransferRequestType; |
1143 | 1174 | } |
|
0 commit comments