+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.taxeditor.operation;
+
+import java.util.UUID;
+
+import org.eclipse.core.commands.operations.IUndoContext;
+
+import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+
+/**
+ * <p>Abstract AbstractPostOperation class.</p>
+ *
+ * @author p.ciardelli
+ * @author n.hoffmann
+ * @created 14.01.2009
+ * @version 1.0
+ */
+public abstract class AbstractPostTaxonOperation extends AbstractPostOperation {
+
+ /**
+ * A reference to the taxon the concrete operation is working on
+ */
+ protected Taxon taxon;
+
+ /**
+ * A reference to the taxons TaxonNode
+ */
+ protected ITaxonTreeNode taxonNode;
+
+ protected UUID parentNodeUuid;
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ */
+ protected AbstractPostTaxonOperation(String label, IUndoContext undoContext) {
+ super(label);
+ addContext(undoContext);
+ }
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
+ Taxon taxon) {
+ this(label, undoContext);
+
+ this.taxon = taxon;
+ }
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param taxon a {@link eu.etaxonomy.cdm.model.taxon.Taxon} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
+ Taxon taxon, IPostOperationEnabled postOperationEnabled) {
+ this(label, undoContext, taxon);
+ this.postOperationEnabled = postOperationEnabled;
+ }
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param taxonNode a {@link eu.etaxonomy.cdm.model.taxon.TaxonNode} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext, TaxonNode taxonNode, IPostOperationEnabled postOperationEnabled){
+ this(label, undoContext, taxonNode.getTaxon(), postOperationEnabled);
+ this.taxonNode = taxonNode;
+ }
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param parentNodeUuid a {@link java.util.UUID} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext, UUID parentNodeUuid, IPostOperationEnabled postOperationEnabled){
+ this(label, undoContext);
+
+ this.parentNodeUuid = parentNodeUuid;
+ this.postOperationEnabled = postOperationEnabled;
+ }
+
+ /**
+ * <p>Constructor for AbstractPostOperation.</p>
+ *
+ * @param label a {@link java.lang.String} object.
+ * @param undoContext a {@link org.eclipse.core.commands.operations.IUndoContext} object.
+ * @param postOperationEnabled a {@link eu.etaxonomy.taxeditor.operation.IPostOperationEnabled} object.
+ */
+ public AbstractPostTaxonOperation(String label, IUndoContext undoContext,
+ IPostOperationEnabled postOperationEnabled) {
+ this(label, undoContext);
+ this.postOperationEnabled = postOperationEnabled;
+ }
+
+
+}