blob: b896ea94cc43ccb91274141e40dead6513bf6ee0 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2002, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
****************************************************************************/
package org.eclipse.gmf.runtime.emf.clipboard.core;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.eclipse.emf.common.util.AbstractEnumerator;
/**
* An enumeration of actions to resolve paste collisions.
*
* @author khussey
*/
public class PasteAction
extends AbstractEnumerator {
/**
* An internal unique identifier for this enumerated type.
*/
private static int nextOrdinal = 0;
/**
* Indicates that that the collision should be resolved by just adding the
* conflicting pasted element with an altered name to distinguish it from
* the existing one. Note that for scalar references, this is equivalent
* to a {@link #REPLACE}.
*/
public static final PasteAction ADD = new PasteAction("Add"); //$NON-NLS-1$
/**
* Indicates that that the collision should be resolved by just adding the
* conflicting pasted element with an altered name to distinguish it from
* the existing one. Note that for scalar references, this is equivalent
* to a {@link #REPLACE}.
*/
public static final PasteAction CLONE = new PasteAction("Clone"); //$NON-NLS-1$
/**
* Indicates that the collision should be resolved by discarding the
* new element (not pasting it).
*/
public static final PasteAction DISCARD = new PasteAction("Discard"); //$NON-NLS-1$
/**
* Indicates that the collision should be resolved by just not doing
* anything. The new element will not be pasted.
*/
public static final PasteAction IGNORE = new PasteAction("Ignore"); //$NON-NLS-1$
/**
* Indicates that the collision should be resolved by merging the
* new element into the existing one. The merge will be strong or weak
* according to the merge hints provided to the paste operation.
*/
public static final PasteAction MERGE = new PasteAction("Merge"); //$NON-NLS-1$
/**
* The "undefined" value. This is an invalid paste action, which can be used
* to indicate that the determination of an appropriate paste action has
* not been done.
*/
public static final PasteAction NO_ACTION = new PasteAction("No Action"); //$NON-NLS-1$
/**
* Indicates that the collision should be resolved by replacing the
* existing element with the new one.
*/
public static final PasteAction REPLACE = new PasteAction("Replace"); //$NON-NLS-1$
/**
* The list of values for this enumerated type.
*/
private static final PasteAction[] VALUES = {ADD, CLONE, DISCARD, IGNORE,
MERGE, NO_ACTION, REPLACE};
/**
* Constructs a new paste action with the specified name.
*
* @param name The name of the new paste action.
*/
private PasteAction(String name) {
super(nextOrdinal++,name);
}
/**
* Retrieves the list of constants for this enumerated type.
*
* @return The list of constants for this enumerated type.
*/
protected List getValues() {
return Collections.unmodifiableList(Arrays.asList(VALUES));
}
}