@Nonnull public IMicroElement convertToMicroElement( @Nonnull final Object aObject, @Nullable final String sNamespaceURI, @Nonnull @Nonempty final String sTagName) { final IMicroElement e = new MicroElement(sNamespaceURI, sTagName); e.appendText((String) aObject); return e; }
@Override public CommandResult execute(final IPartnershipFactoryWithPartners partFx, final Object[] params) throws OpenAS2Exception { if (params.length < 3) return new CommandResult(ECommandResultType.TYPE_INVALID_PARAM_COUNT, getUsage()); final IMicroDocument doc = new MicroDocument(); final IMicroElement root = doc.appendElement("partnership"); for (int nIndex = 0; nIndex < params.length; nIndex++) { final String param = (String) params[nIndex]; final int pos = param.indexOf('='); if (nIndex == 0) { root.setAttribute("name", param); } else if (nIndex == 1) { final IMicroElement elem = root.appendElement("sender"); elem.setAttribute("name", param); } else if (nIndex == 2) { final IMicroElement elem = root.appendElement("receiver"); elem.setAttribute("name", param); } else if (pos == 0) { return new CommandResult(ECommandResultType.TYPE_ERROR, "incoming parameter missing name"); } else if (pos > 0) { final IMicroElement elem = root.appendElement("attribute"); elem.setAttribute("name", param.substring(0, pos)); elem.setAttribute("value", param.substring(pos + 1)); } else return new CommandResult(ECommandResultType.TYPE_ERROR, "incoming parameter missing value"); } final XMLPartnershipFactory aXMLPartnershipFactory = (XMLPartnershipFactory) partFx; final Partnership aPartnership = aXMLPartnershipFactory.loadPartnership(root, aXMLPartnershipFactory.getPartnerMap()); if (aXMLPartnershipFactory.getPartnershipByName(aPartnership.getName()) != null) return new CommandResult( ECommandResultType.TYPE_ERROR, "A partnership with name '" + aPartnership.getName() + "' is already present!"); // add the partnership to the list of available partnerships partFx.addPartnership(aPartnership); return new CommandResult(ECommandResultType.TYPE_OK); }
@Nonnull public String convertToNative(@Nonnull final IMicroElement aElement) { return aElement.getTextContent(); }