blob: 5bd3e8dd077874931afaf59ef33fc6d7fdb33c0b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015, 2019 Soft-Maint.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v20.html
*
* Contributors:
* Jonathan Pepin (Soft-Maint) - Bug 474418 - Edit Facet features with Properties View and Commands
*******************************************************************************/
package org.eclipse.modisco.facet.efacet.edit.core;
import java.util.Collection;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.edit.domain.EditingDomain;
import org.eclipse.modisco.facet.efacet.core.IFacetManager;
import org.eclipse.modisco.facet.efacet.edit.core.internal.command.FacetCommandFactory;
/**
* @noimplement This interface is not intended to be implemented by clients.
* @noextend This interface is not intended to be extended by clients.
*/
public interface IFacetCommandFactory {
IFacetCommandFactory DEFAULT = new FacetCommandFactory();
/**
* @param feature
* must be multi-valued
* @throws FacetCommandException
* @throws IllegalArgumentException
* if the parameter 'feature' is not multi-valued
*/
Command createAddCommand(EObject owner, EStructuralFeature feature,
Object newValue, EditingDomain domain, IFacetManager facetManager)
throws FacetCommandException;
/**
* @param feature
* must be multi-valued
* @throws FacetCommandException
* @throws IllegalArgumentException
* if the parameter 'feature' is not multi-valued
*/
Command createAddAllCommand(EObject owner, EStructuralFeature feature,
Collection<? extends Object> newValues, EditingDomain domain,
IFacetManager facetManager) throws FacetCommandException;
/**
* @param feature
* must be multi-valued
* @throws FacetCommandException
* @throws IllegalArgumentException
* if the parameter 'feature' is not multi-valued
*/
Command createRemoveCommand(EObject owner, EStructuralFeature feature,
Object value, EditingDomain domain, IFacetManager facetManager)
throws FacetCommandException;
/**
* @param feature
* must be multi-valued
* @throws FacetCommandException
* @throws IllegalArgumentException
* if the parameter 'feature' is not multi-valued
*/
Command createRemoveAllCommand(EObject owner, EStructuralFeature feature,
Collection<? extends Object> values, EditingDomain domain,
IFacetManager facetManager) throws FacetCommandException;
Command createSetCommand(EObject owner, EStructuralFeature feature,
Object newValue, EditingDomain domain, IFacetManager facetManager)
throws FacetCommandException;
Command createUnSetCommand(EObject owner, EStructuralFeature feature,
EditingDomain domain, IFacetManager facetManager)
throws FacetCommandException;
}