package org.robotframework.ide.eclipse.main.plugin.mockeclipse; import java.util.EnumSet; import org.robotframework.ide.eclipse.main.plugin.model.RobotCase; import org.robotframework.ide.eclipse.main.plugin.model.RobotKeywordCall; import org.robotframework.ide.eclipse.main.plugin.model.RobotKeywordDefinition; import org.robotframework.ide.eclipse.main.plugin.model.RobotSetting.SettingsGroup; import org.robotframework.ide.eclipse.main.plugin.model.RobotVariable; import org.robotframework.ide.eclipse.main.plugin.tableeditor.dnd.PositionCoordinateTransfer.PositionCoordinateSerializer; import org.robotframework.ide.eclipse.main.plugin.tableeditor.dnd.RedClipboard; public class RedClipboardMock extends RedClipboard { private String text; private RobotCase[] cases; private RobotKeywordDefinition[] keywordDefinitions; private RobotKeywordCall[] calls; private RobotVariable[] variables; private PositionCoordinateSerializer[] positions; public RedClipboardMock() { super(); } public boolean isEmpty() { return !hasText() && !hasCases() && !hasKeywordDefinitions() && !hasKeywordCalls() && !hasVariables() && !hasPositionsCoordinates(); } @Override public boolean hasPositionsCoordinates() { return positions != null; } @Override public PositionCoordinateSerializer[] getPositionsCoordinates() { return positions; } @Override public boolean hasVariables() { return variables != null; } @Override public RobotVariable[] getVariables() { return variables; } @Override public boolean hasKeywordDefinitions() { return keywordDefinitions != null; } @Override public RobotKeywordDefinition[] getKeywordDefinitions() { return keywordDefinitions; } @Override public boolean hasCases() { return cases != null; } @Override public RobotCase[] getCases() { return cases; } @Override public boolean hasKeywordCalls() { return calls != null && hasKeywordCallsOnly(calls); } @Override public RobotKeywordCall[] getKeywordCalls() { return calls; } @Override public boolean hasSettings() { return calls != null && hasSettingsOnly(calls, EnumSet.allOf(SettingsGroup.class)); } @Override public boolean hasGeneralSettings() { return calls != null && hasSettingsOnly(calls, EnumSet.of(SettingsGroup.NO_GROUP)); } @Override public boolean hasMetadataSettings() { return calls != null && hasSettingsOnly(calls, EnumSet.of(SettingsGroup.METADATA)); } @Override public boolean hasImportSettings() { return calls != null && hasSettingsOnly(calls, SettingsGroup.getImportsGroupsSet()); } @Override public boolean hasText() { return text != null; } @Override public String getText() { return text; } @Override public RedClipboard insertContent(final Object... dataToInsert) { text = null; cases = null; keywordDefinitions = null; calls = null; variables = null; positions = null; for (final Object data : dataToInsert) { if (data instanceof String) { text = (String) data; } else if (data instanceof RobotCase[]) { cases = (RobotCase[]) data; } else if (data instanceof RobotKeywordDefinition[]) { keywordDefinitions = (RobotKeywordDefinition[]) data; } else if (data instanceof RobotKeywordCall[]) { calls = (RobotKeywordCall[]) data; } else if (data instanceof RobotVariable[]) { variables = (RobotVariable[]) data; } else if (data instanceof PositionCoordinateSerializer[]) { positions = (PositionCoordinateSerializer[]) data; } } return this; } @Override public void clear() { text = null; cases = null; keywordDefinitions = null; calls = null; variables = null; positions = null; } }