All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.openas2.app.partner.AddPartnerCommand Maven / Gradle / Ivy

Go to download

Open source implementation of the AS2 standard for signed encrypted and compressed document transfer

There is a newer version: 2.10.1
Show newest version
package org.openas2.app.partner;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;

import org.openas2.OpenAS2Exception;
import org.openas2.cmd.CommandResult;
import org.openas2.partner.PartnershipFactory;
import org.openas2.partner.XMLPartnershipFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

/**
 * adds a new partner entry in partnership store
 * 
 * @author joseph mcverry
 * 
 */
public class AddPartnerCommand extends AliasedPartnershipsCommand {
	public String getDefaultDescription() {
		return "Add a new partner to partnership store.";
	}

	public String getDefaultName() {
		return "add";
	}

	public String getDefaultUsage() {
		return "add name   ... ";
	}

	public CommandResult execute(PartnershipFactory partFx, Object[] params)
			throws OpenAS2Exception {
		if (params.length < 1) {
			return new CommandResult(CommandResult.TYPE_INVALID_PARAM_COUNT,
					getUsage());
		}

		synchronized (partFx) {

			DocumentBuilder db = null;
			try {
				db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
			} catch (ParserConfigurationException e) {
				throw new OpenAS2Exception(e);
			} catch (FactoryConfigurationError e) {
				throw new OpenAS2Exception(e);
			}

			Document doc = db.newDocument();

			Element root = doc.createElement("partner");
			doc.appendChild(root);

			for (int i = 0; i < params.length; i++) {
				String param = (String) params[i];
				int pos = param.indexOf('=');
				if (i == 0) {
					root.setAttribute("name", param);
				} else if (pos == 0) {
					return new CommandResult(CommandResult.TYPE_ERROR,
							"incoming parameter missing name");
				} else if (pos > 0) {
					root.setAttribute(param.substring(0, pos), param
							.substring(pos + 1));

				} else
					return new CommandResult(CommandResult.TYPE_ERROR,
							"incoming parameter missing value");

			}

			((XMLPartnershipFactory) partFx).loadPartner(partFx.getPartners(),
					root);

			return new CommandResult(CommandResult.TYPE_OK);
		}

	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy