use of com.helger.peppolid.IProcessIdentifier in project phoss-directory by phax.
the class NiceNameHandler method readEntries.
@Nonnull
@ReturnsMutableCopy
public static ICommonsOrderedMap<String, NiceNameEntry> readEntries(@Nonnull final IReadableResource aRes, final boolean bReadProcIDs) {
if (LOGGER.isInfoEnabled())
LOGGER.info("Trying to read nice name entries from " + aRes.getPath());
final ICommonsOrderedMap<String, NiceNameEntry> ret = new CommonsLinkedHashMap<>();
final IMicroDocument aDoc = MicroReader.readMicroXML(aRes);
if (aDoc != null && aDoc.getDocumentElement() != null) {
for (final IMicroElement eChild : aDoc.getDocumentElement().getAllChildElements("item")) {
final String sID = eChild.getAttributeValue("id");
final String sName = eChild.getAttributeValue("name");
final boolean bDeprecated = eChild.getAttributeValueAsBool("deprecated", false);
ICommonsList<IProcessIdentifier> aProcIDs = null;
if (bReadProcIDs) {
aProcIDs = new CommonsArrayList<>();
for (final IMicroElement eItem : eChild.getAllChildElements("procid")) aProcIDs.add(new SimpleProcessIdentifier(eItem.getAttributeValue("scheme"), eItem.getAttributeValue("value")));
}
ret.put(sID, new NiceNameEntry(sName, bDeprecated, aProcIDs));
}
}
return ret;
}
use of com.helger.peppolid.IProcessIdentifier in project peppol-commons by phax.
the class BDXR2IdentifierFactoryTest method testProcessIDCaseInsensitive.
@Test
public void testProcessIDCaseInsensitive() {
final BDXR2IdentifierFactory aIF = BDXR2IdentifierFactory.INSTANCE;
// Default scheme - handle case insensitive
final String sScheme = CBDXR2Identifier.DEFAULT_PROCESS_IDENTIFIER_SCHEME;
final IProcessIdentifier aID1 = aIF.createProcessIdentifier(sScheme, "abc");
assertEquals(sScheme, aID1.getScheme());
assertEquals("abc", aID1.getValue());
// Value is lower cased internally
final IProcessIdentifier aID2 = aIF.createProcessIdentifier(sScheme, "ABC");
assertEquals(sScheme, aID2.getScheme());
assertEquals("abc", aID2.getValue());
assertTrue(aID1.hasSameContent(aID2));
}
use of com.helger.peppolid.IProcessIdentifier in project peppol-commons by phax.
the class BDXR1IdentifierFactoryTest method testProcessIDCaseInsensitive.
@Test
public void testProcessIDCaseInsensitive() {
final BDXR1IdentifierFactory aIF = BDXR1IdentifierFactory.INSTANCE;
// Default scheme - handle case insensitive
final String sScheme = CBDXR1Identifier.DEFAULT_PROCESS_IDENTIFIER_SCHEME;
final IProcessIdentifier aID1 = aIF.createProcessIdentifier(sScheme, "abc");
assertEquals(sScheme, aID1.getScheme());
assertEquals("abc", aID1.getValue());
// Value is lower cased internally
final IProcessIdentifier aID2 = aIF.createProcessIdentifier(sScheme, "ABC");
assertEquals(sScheme, aID2.getScheme());
assertEquals("abc", aID2.getValue());
assertTrue(aID1.hasSameContent(aID2));
}
use of com.helger.peppolid.IProcessIdentifier in project peppol-commons by phax.
the class MainSMPServiceRegistrationCreate method main.
public static void main(final String[] args) throws Exception {
final URI SMP_URI = MockSMPClientConfig.getSMPURI();
final BasicAuthClientCredentials SMP_CREDENTIALS = MockSMPClientConfig.getSMPCredentials();
final IParticipantIdentifier PARTICIPANT_ID = MockSMPClientConfig.getParticipantID();
final IDocumentTypeIdentifier DOCUMENT_ID = MockSMPClientConfig.getDocumentTypeID();
final IProcessIdentifier PROCESS_ID = MockSMPClientConfig.getProcessTypeID();
final W3CEndpointReference START_AP_ENDPOINTREF = MockSMPClientConfig.getAPEndpointRef();
final String AP_CERT_STRING = MockSMPClientConfig.getAPCert();
final String AP_SERVICE_DESCRIPTION = MockSMPClientConfig.getAPServiceDescription();
final String AP_CONTACT_URL = MockSMPClientConfig.getAPContact();
final String AP_INFO_URL = MockSMPClientConfig.getAPInfo();
// The main SMP client
final SMPClient aClient = new SMPClient(SMP_URI);
// Create the service registration
final ServiceInformationType aServiceInformation = new ServiceInformationType();
{
final ProcessListType aProcessList = new ProcessListType();
{
final ProcessType aProcess = new ProcessType();
{
final ServiceEndpointList aServiceEndpointList = new ServiceEndpointList();
{
final EndpointType aEndpoint = new EndpointType();
aEndpoint.setEndpointReference(START_AP_ENDPOINTREF);
aEndpoint.setTransportProfile(ESMPTransportProfile.TRANSPORT_PROFILE_AS2.getID());
aEndpoint.setCertificate(AP_CERT_STRING);
aEndpoint.setServiceActivationDate(PDTFactory.createXMLOffsetDateTime(2011, Month.JANUARY, 1));
aEndpoint.setServiceExpirationDate(PDTFactory.createXMLOffsetDateTime(2020, Month.DECEMBER, 31));
aEndpoint.setServiceDescription(AP_SERVICE_DESCRIPTION);
aEndpoint.setTechnicalContactUrl(AP_CONTACT_URL);
aEndpoint.setTechnicalInformationUrl(AP_INFO_URL);
aEndpoint.setMinimumAuthenticationLevel("1");
aEndpoint.setRequireBusinessLevelSignature(false);
aServiceEndpointList.getEndpoint().add(aEndpoint);
}
aProcess.setProcessIdentifier(new SimpleProcessIdentifier(PROCESS_ID));
aProcess.setServiceEndpointList(aServiceEndpointList);
}
aProcessList.getProcess().add(aProcess);
}
aServiceInformation.setDocumentIdentifier(new SimpleDocumentTypeIdentifier(DOCUMENT_ID));
aServiceInformation.setParticipantIdentifier(new SimpleParticipantIdentifier(PARTICIPANT_ID));
aServiceInformation.setProcessList(aProcessList);
}
aClient.saveServiceInformation(aServiceInformation, SMP_CREDENTIALS);
LOGGER.info("Done");
}
use of com.helger.peppolid.IProcessIdentifier in project peppol-commons by phax.
the class MainCreatePredefinedEnumsFromXML_v8x method _handleProcessIdentifiers.
private static void _handleProcessIdentifiers(final Document aProcessSheet) {
final PCLProcessesType aList = new GenericJAXBMarshaller<>(PCLProcessesType.class, new QName("dummy")).read(aProcessSheet);
final ICommonsSet<String> aAllShortcutNames = new CommonsHashSet<>();
// Create Java source
try {
final JDefinedClass jEnum = CM._package(RESULT_PACKAGE_PREFIX + "process")._enum("EPredefinedProcessIdentifier")._implements(IPeppolPredefinedProcessIdentifier.class);
jEnum.annotate(CodingStyleguideUnaware.class);
jEnum.javadoc().add(DO_NOT_EDIT);
// Add metadata
jEnum.field(JMod.PUBLIC_STATIC_FINAL, CM.ref(String.class), "CODE_LIST_VERSION", JExpr.lit(aList.getVersion()));
jEnum.field(JMod.PUBLIC_STATIC_FINAL, CM.INT, "CODE_LIST_ENTRY_COUNT", JExpr.lit(aList.getEntryCount().intValue()));
// enum constants
for (final PCLProcessType aRow : aList.getProcess()) {
final String sScheme = aRow.getScheme();
final String sValue = aRow.getValue();
final EPeppolCodeListItemState eState = _getState(aRow.getState());
final boolean bDeprecated = !eState.isActive();
// Prepend the scheme, if it is non-default
final String sIDPrefix = PeppolIdentifierHelper.DEFAULT_PROCESS_SCHEME.equals(sScheme) ? "" : sScheme + "-";
final String sEnumConstName = RegExHelper.getAsIdentifier(sIDPrefix + sValue);
final JEnumConstant jEnumConst = jEnum.enumConstant(sEnumConstName);
jEnumConst.arg(JExpr.lit(sScheme));
jEnumConst.arg(JExpr.lit(sValue));
jEnumConst.arg(CM.ref(EPeppolCodeListItemState.class).enumConstantRef(eState));
jEnumConst.javadoc().add("ID: <code>" + sScheme + "::" + sValue + "</code><br>");
if (bDeprecated) {
jEnumConst.annotate(Deprecated.class);
jEnumConst.javadoc().addDeprecated().add("This item should not be used to issue new identifiers!");
}
// Also create a shortcut for more readable names
final String sShortcutName = CodeGenerationHelper.createShortcutProcess(sScheme, sValue);
if (sShortcutName != null) {
// Make unique name
int nNext = 2;
String sRealShortcutName = sShortcutName;
while (!aAllShortcutNames.add(sRealShortcutName)) {
sRealShortcutName = sShortcutName + nNext;
nNext++;
}
final JFieldVar aShortcut = jEnum.field(JMod.PUBLIC | JMod.STATIC | JMod.FINAL, jEnum, sRealShortcutName, jEnumConst);
aShortcut.javadoc().add("Same as {@link #" + sEnumConstName + "}");
if (bDeprecated) {
aShortcut.annotate(Deprecated.class);
aShortcut.javadoc().addDeprecated().add("This item should not be used to issue new identifiers!");
}
jEnumConst.javadoc().add("\nSame as {@link #" + sRealShortcutName + "}");
}
}
{
// Deprecated names
final JFieldVar aShortcut = jEnum.field(JMod.PUBLIC | JMod.STATIC | JMod.FINAL, jEnum, "BIS5A_V3", jEnum.fields().get("BIS3_BILLING"));
aShortcut.annotate(Deprecated.class);
aShortcut.javadoc().addDeprecated().add("Use BIS3_BILLING instead!");
}
// fields
final JFieldVar fScheme = jEnum.field(JMod.PRIVATE | JMod.FINAL, String.class, "m_sScheme");
final JFieldVar fValue = jEnum.field(JMod.PRIVATE | JMod.FINAL, String.class, "m_sValue");
final JFieldVar fState = jEnum.field(JMod.PRIVATE | JMod.FINAL, EPeppolCodeListItemState.class, "m_eState");
// Constructor
final JMethod jCtor = jEnum.constructor(0);
final JVar jScheme = jCtor.param(JMod.FINAL, String.class, "sScheme");
jScheme.annotate(Nonnull.class);
jScheme.annotate(Nonempty.class);
final JVar jValue = jCtor.param(JMod.FINAL, String.class, "sValue");
jValue.annotate(Nonnull.class);
jValue.annotate(Nonempty.class);
final JVar jState = jCtor.param(JMod.FINAL, EPeppolCodeListItemState.class, "eState");
jState.annotate(Nonnull.class);
jCtor.body().assign(fScheme, jScheme).assign(fValue, jValue).assign(fState, jState);
// public String getScheme ()
JMethod m = jEnum.method(JMod.PUBLIC, String.class, "getScheme");
m.annotate(Nonnull.class);
m.annotate(Nonempty.class);
m.body()._return(fScheme);
// public String getValue ()
m = jEnum.method(JMod.PUBLIC, String.class, "getValue");
m.annotate(Nonnull.class);
m.annotate(Nonempty.class);
m.body()._return(fValue);
// public EPeppolCodeListItemState getState ()
m = jEnum.method(JMod.PUBLIC, EPeppolCodeListItemState.class, "getState");
m.annotate(Nonnull.class);
m.body()._return(fState);
// public PeppolProcessIdentifier getAsProcessIdentifier ()
m = jEnum.method(JMod.PUBLIC, PeppolProcessIdentifier.class, "getAsProcessIdentifier");
m.annotate(Nonnull.class);
m.body()._return(JExpr._new(CM.ref(PeppolProcessIdentifier.class)).arg(JExpr._this()));
// @Nullable public static EPredefinedProcessIdentifier
// getFromProcessIdentifierOrNull(@Nullable final IProcessIdentifier
// aProcessID)
m = jEnum.method(JMod.PUBLIC | JMod.STATIC, jEnum, "getFromProcessIdentifierOrNull");
{
m.annotate(Nullable.class);
final JVar jParam = m.param(JMod.FINAL, IProcessIdentifier.class, "aProcessID");
jParam.annotate(Nullable.class);
final JBlock jIf = m.body()._if(jParam.neNull())._then();
final JForEach jForEach = jIf.forEach(jEnum, "e", jEnum.staticInvoke("values"));
jForEach.body()._if(jForEach.var().invoke("hasScheme").arg(jParam.invoke("getScheme")).cand(jForEach.var().invoke("hasValue").arg(jParam.invoke("getValue"))))._then()._return(jForEach.var());
m.body()._return(JExpr._null());
}
} catch (final JCodeModelException ex) {
LOGGER.warn("Failed to create source", ex);
}
}
Aggregations