com.helger.smpclient.peppol.utils.SMPDebugHelper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of peppol-smp-client Show documentation
Show all versions of peppol-smp-client Show documentation
Peppol and OASIS BDXR SMP client
/*
* Copyright (C) 2015-2024 Philip Helger
* philip[at]helger[dot]com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.helger.smpclient.peppol.utils;
import javax.annotation.Nonnull;
import javax.annotation.concurrent.Immutable;
import com.helger.peppolid.CIdentifier;
import com.helger.xsds.peppol.smp1.EndpointType;
import com.helger.xsds.peppol.smp1.ExtensionType;
import com.helger.xsds.peppol.smp1.ProcessType;
import com.helger.xsds.peppol.smp1.RedirectType;
import com.helger.xsds.peppol.smp1.ServiceGroupType;
import com.helger.xsds.peppol.smp1.ServiceInformationType;
import com.helger.xsds.peppol.smp1.ServiceMetadataReferenceCollectionType;
import com.helger.xsds.peppol.smp1.ServiceMetadataReferenceType;
import com.helger.xsds.peppol.smp1.ServiceMetadataType;
/**
* SMP utilities for debugging purposes. It converts the complex types to
* strings for printing.
*
* @author Philip Helger
*/
@Immutable
public final class SMPDebugHelper
{
private SMPDebugHelper ()
{}
@Nonnull
public static String getAsString (@Nonnull final ServiceGroupType aServiceGroup)
{
final StringBuilder aSB = new StringBuilder ();
aSB.append ("ServiceGroup information:\n");
aSB.append ("ParticipantIdentifier: ").append (CIdentifier.getURIEncoded (aServiceGroup.getParticipantIdentifier ())).append ('\n');
// References
final ServiceMetadataReferenceCollectionType aSMRC = aServiceGroup.getServiceMetadataReferenceCollection ();
if (aSMRC != null && !aSMRC.getServiceMetadataReference ().isEmpty ())
{
aSB.append ("ServiceMetadataReferenceCollection:\n");
for (final ServiceMetadataReferenceType aSMR : aSMRC.getServiceMetadataReference ())
aSB.append (" ").append (aSMR.getHref ()).append ('\n');
}
// Extension
final ExtensionType aExt = aServiceGroup.getExtension ();
if (aExt != null && aExt.getAny () != null)
{
aSB.append ("Extension:\n");
aSB.append (" Class = ").append (aExt.getAny ().getClass ().getName ()).append ('\n');
aSB.append (" Value = ").append (aExt.getAny ()).append ('\n');
}
return aSB.toString ();
}
@Nonnull
public static String getAsString (@Nonnull final ServiceMetadataType aServiceMetadata)
{
final StringBuilder aSB = new StringBuilder ();
aSB.append ("Service meta data:\n");
final ServiceInformationType aServiceInformation = aServiceMetadata.getServiceInformation ();
if (aServiceInformation != null)
{
aSB.append (" Service information:\n");
aSB.append (" Participant: ").append (CIdentifier.getURIEncoded (aServiceInformation.getParticipantIdentifier ())).append ('\n');
aSB.append (" Document type: ").append (CIdentifier.getURIEncoded (aServiceInformation.getDocumentIdentifier ())).append ('\n');
for (final ProcessType aProcess : aServiceInformation.getProcessList ().getProcess ())
{
aSB.append (" Process: ").append (CIdentifier.getURIEncoded (aProcess.getProcessIdentifier ())).append ('\n');
for (final EndpointType aEndpoint : aProcess.getServiceEndpointList ().getEndpoint ())
{
aSB.append (" Endpoint: ")
.append (W3CEndpointReferenceHelper.getAddress (aEndpoint.getEndpointReference ()))
.append ('\n');
aSB.append (" Transport profile: ").append (aEndpoint.getTransportProfile ()).append ('\n');
aSB.append (" Business level signature: ").append (aEndpoint.isRequireBusinessLevelSignature ()).append ('\n');
aSB.append (" Min auth level: ").append (aEndpoint.getMinimumAuthenticationLevel ()).append ('\n');
if (aEndpoint.getServiceActivationDate () != null)
aSB.append (" Valid from: ").append (aEndpoint.getServiceActivationDate ()).append ('\n');
if (aEndpoint.getServiceExpirationDate () != null)
aSB.append (" Valid to: ").append (aEndpoint.getServiceExpirationDate ()).append ('\n');
aSB.append (" Certficiate string: ").append (aEndpoint.getCertificate ()).append ('\n');
aSB.append (" Service description: ").append (aEndpoint.getServiceDescription ()).append ('\n');
aSB.append (" Contact URL: ").append (aEndpoint.getTechnicalContactUrl ()).append ('\n');
aSB.append (" Info URL: ").append (aEndpoint.getTechnicalInformationUrl ()).append ('\n');
}
}
}
final RedirectType aRedirect = aServiceMetadata.getRedirect ();
if (aRedirect != null)
{
aSB.append (" Service redirect:\n");
aSB.append (" Certificate UID: ").append (aRedirect.getCertificateUID ()).append ('\n');
aSB.append (" Href: ").append (aRedirect.getHref ()).append ('\n');
}
return aSB.toString ();
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy