/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow.editor.properties; import de.rcenvironment.core.component.workflow.model.api.WorkflowNode; import de.rcenvironment.core.component.workflow.model.spi.ComponentInstanceProperties; /** * A command requesting access to {@link WorkflowNode} data. * * @author Christian Weiss */ public abstract class WorkflowNodeCommand extends WorkflowCommand { private String label; private WorkflowNode workflowNode; protected void setLabel(final String label) { this.label = label; } /** * Returns the label. * * @return the label */ public String getLabel() { return label; } public final void setWorkflowNode(final WorkflowNode workflowNode) { this.workflowNode = workflowNode; } protected WorkflowNode getWorkflowNode() { return workflowNode; } protected ComponentInstanceProperties getProperties() { if (commandStack == null || workflowNode == null) { throw new IllegalStateException("Property input not set"); } return workflowNode; } /** * An executor capable of handling {@link WorkflowNodeCommand}s. * * @author Christian Weiss */ public interface Executor { /** * Executes the given {@link WorkflowNodeCommand}. * * @param command the {@link WorkflowNodeCommand} to execute. */ void execute(WorkflowNodeCommand command); } }