@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();
 }