/* * Copyright (C) 2006-2016 DLR, Germany * * All rights reserved * * http://www.rcenvironment.de/ */ package de.rcenvironment.core.gui.workflow.editor.commands.endpoint; import java.util.List; import de.rcenvironment.core.component.model.endpoint.api.EndpointDescription; import de.rcenvironment.core.component.model.endpoint.api.EndpointDescriptionsManager; import de.rcenvironment.core.datamodel.api.EndpointType; import de.rcenvironment.core.gui.workflow.editor.properties.Refreshable; /** * Implementation of {@link RemoveDynamicEndpointCommand}, which also removes an output with same name and data type. * * @author Doreen Seider */ public class RemoveDynamicInputWithOutputCommand extends RemoveDynamicEndpointCommand { protected final String dynEndpointId; public RemoveDynamicInputWithOutputCommand(String dynEndpointId, List<String> names, Refreshable... refreshable) { super(EndpointType.INPUT, dynEndpointId, names, refreshable); this.dynEndpointId = dynEndpointId; } @Override public void execute() { for (String name : names) { EndpointDescriptionsManager outputDescriptionsManager = getProperties().getOutputDescriptionsManager(); outputDescriptionsManager.removeDynamicEndpointDescription(name); } super.execute(); } @Override public void undo() { EndpointDescriptionsManager outputDescriptionsManager = getProperties().getOutputDescriptionsManager(); for (String name : names) { EndpointDescription oldDesc = oldDescriptions.get(name); outputDescriptionsManager.addDynamicEndpointDescription(dynEndpointId, oldDesc.getName(), oldDesc.getDataType(), oldDesc.getMetaData()); } super.undo(); } }