use of com.helger.as2lib.partner.xml.XMLPartnershipFactory in project as2-server by phax.
the class AddPartnerCommand method execute.
@Override
public CommandResult execute(final IPartnershipFactoryWithPartners partFx, final Object[] params) throws OpenAS2Exception {
if (params.length < 1) {
return new CommandResult(ECommandResultType.TYPE_INVALID_PARAM_COUNT, getUsage());
}
final IMicroDocument doc = new MicroDocument();
final IMicroElement root = doc.appendElement("partner");
for (int i = 0; i < params.length; i++) {
final String param = (String) params[i];
final int pos = param.indexOf('=');
if (i == 0) {
root.setAttribute("name", param);
} else if (pos == 0) {
return new CommandResult(ECommandResultType.TYPE_ERROR, "incoming parameter missing name");
} else if (pos > 0) {
root.setAttribute(param.substring(0, pos), param.substring(pos + 1));
} else
return new CommandResult(ECommandResultType.TYPE_ERROR, "incoming parameter missing value");
}
final Partner aNewPartner = ((XMLPartnershipFactory) partFx).loadPartner(root);
partFx.addPartner(aNewPartner);
return new CommandResult(ECommandResultType.TYPE_OK);
}
use of com.helger.as2lib.partner.xml.XMLPartnershipFactory in project as2-server by phax.
the class AddPartnershipCommand method execute.
@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);
}
Aggregations