Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* Copyright (c) 2002-2007 IBM Corporation and others.
* 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:
* IBM - Initial API and implementation
*/
package org.eclipse.emf.edit.command;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import org.eclipse.emf.common.command.Command;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EGenericType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.ExtendedMetaData;
import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.util.FeatureMapUtil;
import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
import org.eclipse.emf.edit.EMFEditPlugin;
import org.eclipse.emf.edit.domain.EditingDomain;
/**
* The add command logically acts upon an owner object that has a collection-based feature to which other objects can be added.
* The static create methods delegate command creation to {@link EditingDomain#createCommand EditingDomain.createCommand},
* which may or may not result in the actual creation of an instance of this class.
*
*
* The implementation of this class is low-level and EMF specific;
* it allows one or more objects to be added to a many-valued feature of an owner,
* i.e., it is equivalent of the call
*
* which is how root objects are added into the contents of a resource.
* Like all the low-level commands in this package, the add command is undoable.
*
*
* An add command is an {@link OverrideableCommand}.
*/
public class AddCommand extends AbstractOverrideableCommand
{
/**
* This creates a command to add a particular value to the specified feature of the owner.
* The feature will often be null because the domain will deduce it.
*/
public static Command create(EditingDomain domain, Object owner, Object feature, Object value)
{
return create(domain, owner, feature, Collections.singleton(value), CommandParameter.NO_INDEX);
}
/**
* This creates a command to insert particular value at a particular index in the specified feature of the owner.
* The feature will often be null because the domain will deduce it.
*/
public static Command create(EditingDomain domain, Object owner, Object feature, Object value, int index)
{
return create(domain, owner, feature, Collections.singleton(value), index);
}
/**
* This creates a command to add a collection of values to the specified feature of the owner.
* The feature will often be null because the domain will deduce it.
*/
public static Command create(EditingDomain domain, Object owner, Object feature, Collection> collection)
{
return domain.createCommand(AddCommand.class, new CommandParameter(owner, feature, collection, CommandParameter.NO_INDEX));
}
/**
* This creates a command to insert a collection of values at a particular index in the specified feature of the owner.
* The feature will often be null because the domain will deduce it.
*/
public static Command create(EditingDomain domain, Object owner, Object feature, Collection> collection, int index)
{
return domain.createCommand(AddCommand.class, new CommandParameter(owner, feature, collection, index));
}
/**
* This caches the label.
*/
protected static final String LABEL = EMFEditPlugin.INSTANCE.getString("_UI_AddCommand_label");
/**
* This caches the description.
*/
protected static final String DESCRIPTION = EMFEditPlugin.INSTANCE.getString("_UI_AddCommand_description");
/**
* This caches the description for a list-based addition.
*/
protected static final String DESCRIPTION_FOR_LIST = EMFEditPlugin.INSTANCE.getString("_UI_AddCommand_description_for_list");
/**
* This is the owner object upon which the command will act.
* It could be null in the case that we are dealing with an {@link org.eclipse.emf.common.util.EList}.
*/
protected EObject owner;
/**
* This is the feature of the owner object upon the command will act.
* It could be null, in the case that we are dealing with an {@link org.eclipse.emf.common.util.EList}.
*/
protected EStructuralFeature feature;
/**
* This is the list to which the command will add the collection.
*/
protected EList