diff --git a/peppol-smp-client/src/main/java/com/helger/smpclient/peppol/ISMPServiceMetadataProvider.java b/peppol-smp-client/src/main/java/com/helger/smpclient/peppol/ISMPServiceMetadataProvider.java index bcc3fb48..f40f8cf7 100644 --- a/peppol-smp-client/src/main/java/com/helger/smpclient/peppol/ISMPServiceMetadataProvider.java +++ b/peppol-smp-client/src/main/java/com/helger/smpclient/peppol/ISMPServiceMetadataProvider.java @@ -34,6 +34,7 @@ import com.helger.smpclient.exception.SMPClientException; import com.helger.smpclient.exception.SMPClientUnauthorizedException; import com.helger.xsds.peppol.smp1.EndpointType; +import com.helger.xsds.peppol.smp1.ServiceGroupType; import com.helger.xsds.peppol.smp1.SignedServiceMetadataType; /** @@ -60,6 +61,7 @@ public interface ISMPServiceMetadataProvider * in case something goes wrong * @see #getServiceMetadataOrNull(IParticipantIdentifier, * IDocumentTypeIdentifier) + * @since 9.5.1 in this interface */ @Nonnull SignedServiceMetadataType getServiceMetadata (@Nonnull final IParticipantIdentifier aServiceGroupID, @@ -86,7 +88,36 @@ SignedServiceMetadataType getServiceMetadataOrNull (@Nonnull IParticipantIdentif @Nonnull IDocumentTypeIdentifier aDocumentTypeID) throws SMPClientException; /** - * Wildcard (DDTS) aware SMP lookup. It interprets the wildcard character + * Wildcard aware SMP lookup. It interprets the wildcard character + * (*) appropriately and tries all possibilities. Internally it + * searches the closest possible match using the provided selection algorithm + * (mode). + * + * @param aServiceGroup + * The service group previously queried. May not be null. + * @param aReceiverID + * Receiver ID. May not be null. + * @param aDocTypeID + * Source document type ID. May not be null. The document + * type may use any document type identifier scheme. + * @param eSelectionMode + * The Wildcard selection mode to use. Must not be null. + * @return null if no matching SMP entry was found + * @throws SMPClientException + * In case of error + * @see #getWildcardServiceMetadataOrNull(IParticipantIdentifier, + * IDocumentTypeIdentifier, + * com.helger.smpclient.peppol.PeppolWildcardSelector.EMode) + * @since 9.5.1 in this interface + */ + @Nullable + SignedServiceMetadataType getWildcardServiceMetadataOrNull (@Nonnull ServiceGroupType aServiceGroup, + @Nonnull IParticipantIdentifier aReceiverID, + @Nonnull IDocumentTypeIdentifier aDocTypeID, + @Nonnull PeppolWildcardSelector.EMode eSelectionMode) throws SMPClientException; + + /** + * Wildcard aware SMP lookup. It interprets the wildcard character * (*) appropriately and tries all possibilities. Internally it * works by first querying all the document types via * {@link ISMPServiceGroupProvider#getServiceGroupOrNull(IParticipantIdentifier)} @@ -104,6 +135,9 @@ SignedServiceMetadataType getServiceMetadataOrNull (@Nonnull IParticipantIdentif * @throws SMPClientException * In case of error * @since 9.2.1 + * @see #getWildcardServiceMetadataOrNull(ServiceGroupType, + * IParticipantIdentifier, IDocumentTypeIdentifier, + * com.helger.smpclient.peppol.PeppolWildcardSelector.EMode) */ @Nullable SignedServiceMetadataType getWildcardServiceMetadataOrNull (@Nonnull IParticipantIdentifier aReceiverID, @@ -138,6 +172,8 @@ SignedServiceMetadataType getWildcardServiceMetadataOrNull (@Nonnull IParticipan * @throws SMPClientBadRequestException * The request was not well formed. * @see #getServiceMetadataOrNull(IParticipantIdentifier,IDocumentTypeIdentifier) + * @see #getEndpointAt(IParticipantIdentifier, IDocumentTypeIdentifier, + * IProcessIdentifier, ISMPTransportProfile, LocalDateTime) */ @Nullable default EndpointType getEndpoint (@Nonnull final IParticipantIdentifier aServiceGroupID, diff --git a/peppol-smp-client/src/main/java/com/helger/smpclient/peppol/SMPClientReadOnly.java b/peppol-smp-client/src/main/java/com/helger/smpclient/peppol/SMPClientReadOnly.java index 3ffe5cdd..c5489d1c 100644 --- a/peppol-smp-client/src/main/java/com/helger/smpclient/peppol/SMPClientReadOnly.java +++ b/peppol-smp-client/src/main/java/com/helger/smpclient/peppol/SMPClientReadOnly.java @@ -963,7 +963,7 @@ public static void forEachMatchingWildcardDocumentType (@Nonnull final ICommonsL } /** - * Wildcard (DDTS) aware SMP lookup. It interprets the wildcard character + * Wildcard aware SMP lookup. It interprets the wildcard character * (*) appropriately and tries all possibilities. Internally it * works by first querying all the document types via * {@link #getServiceGroupOrNull(IParticipantIdentifier)} and afterwards find