content: package oscfg.diagram.edit.policies;
  
  import org.eclipse.emf.transaction.TransactionalEditingDomain;
  import org.eclipse.gef.commands.Command;
  import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
  import org.eclipse.gmf.runtime.emf.commands.core.commands.DuplicateEObjectsCommand;
  import org.eclipse.gmf.runtime.emf.type.core.requests.CreateElementRequest;
  import org.eclipse.gmf.runtime.emf.type.core.requests.DuplicateElementsRequest;
  
  import oscfg.OscfgPackage;
  import oscfg.diagram.edit.commands.OSCreateCommand;
  import oscfg.diagram.providers.OscfgElementTypes;
  
  /**
   * @generated
   */
  public class ConfigurationItemSemanticEditPolicy extends
  		OscfgBaseItemSemanticEditPolicy {
  
  	/**
  	 * @generated
  	 */
  	public ConfigurationItemSemanticEditPolicy() {
  		super(OscfgElementTypes.Configuration_1000);
  	}
  
  	/**
  	 * @generated
  	 */
  	protected Command getCreateCommand(CreateElementRequest req) {
  		if (OscfgElementTypes.OS_2001 == req.getElementType()) {
  			return getGEFWrapper(new OSCreateCommand(req));
  		}
  		return super.getCreateCommand(req);
  	}
  
  	/**
  	 * @generated
  	 */
  	protected Command getDuplicateCommand(DuplicateElementsRequest req) {
  		TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost())
  				.getEditingDomain();
  		return getGEFWrapper(new DuplicateAnythingCommand(editingDomain, req));
  	}
  
  	/**
  	 * @generated
  	 */
  	private static class DuplicateAnythingCommand extends
  			DuplicateEObjectsCommand {
  
  		/**
  		 * @generated
  		 */
  		public DuplicateAnythingCommand(
  				TransactionalEditingDomain editingDomain,
  				DuplicateElementsRequest req) {
  			super(editingDomain, req.getLabel(), req
  					.getElementsToBeDuplicated(), req
  					.getAllDuplicatedElementsMap());
  		}
  
  	}
  
  }
  