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

org.openas2.app.partner.DeletePartnerCommand 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 java.util.Iterator;

import org.openas2.OpenAS2Exception;
import org.openas2.cmd.CommandResult;
import org.openas2.partner.Partnership;
import org.openas2.partner.PartnershipFactory;

/** removes a partner entry in partnership store
 * 
 * @author joseph mcverry
 *
 */
public class DeletePartnerCommand extends AliasedPartnershipsCommand {
	public String getDefaultDescription() {
		return "Delete the partnership associated with an name.";
	}

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

	public String getDefaultUsage() {
		return "delete ";
	}

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

		synchronized (partFx) {

			String name = params[0].toString();
			Iterator parts = partFx.getPartners().keySet().iterator();

			boolean found = false;

			while (parts.hasNext()) {
				String partName = parts.next().toString();
				if (partName.equals(name)) {
					found = true;
				}
			}

			if (found == false)
				return new CommandResult(CommandResult.TYPE_ERROR,
						"Unknown partner name");

			Iterator partnerships = partFx.getPartnerships().iterator();
			boolean partnershipFound = false;
			while (partnerships.hasNext() && partnershipFound == false) {
				Partnership part = (Partnership) partnerships.next();
				partnershipFound = part.getReceiverIDs().containsValue(name)
						|| part.getSenderIDs().containsValue(name);
			}

			if (partnershipFound) {
				return new CommandResult(CommandResult.TYPE_ERROR,
						"Can not delete partner; it is tied to some partnerships");
			}

			partFx.getPartners().remove(name);

			return new CommandResult(CommandResult.TYPE_OK);
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy