diff options
Diffstat (limited to 'bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java')
-rw-r--r-- | bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java b/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java deleted file mode 100644 index b02e2db86..000000000 --- a/bundles/org.eclipse.wst.ws.explorer/src/org/eclipse/wst/ws/internal/explorer/platform/engine/ActionEngine.java +++ /dev/null @@ -1,233 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 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.wst.ws.internal.explorer.platform.engine; - -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Hashtable; -import java.util.Vector; -import org.eclipse.wst.ws.internal.explorer.platform.actions.Action; -import org.eclipse.wst.ws.internal.explorer.platform.actions.ShowPerspectiveAction; -import org.eclipse.wst.ws.internal.explorer.platform.constants.ActionInputs; -import org.eclipse.wst.ws.internal.explorer.platform.engine.constants.ActionDataConstants; -import org.eclipse.wst.ws.internal.explorer.platform.engine.data.ActionDescriptor; -import org.eclipse.wst.ws.internal.explorer.platform.engine.data.ScenarioDescriptor; -import org.eclipse.wst.ws.internal.explorer.platform.engine.data.TransactionDescriptor; -import org.eclipse.wst.ws.internal.explorer.platform.engine.transformer.ITransformer; -import org.eclipse.wst.ws.internal.explorer.platform.perspective.Controller; - -public class ActionEngine -{ - public static final byte MODE_DISABLED = 0x0; - public static final byte MODE_STOP = 0x1; - public static final byte MODE_RECORD = 0x2; - public static final byte MODE_PLAY = 0x3; - - private Controller controller; - private byte mode; - private Vector actionDescriptors; - - public ActionEngine(Controller controller) - { - this.controller = controller; - mode = MODE_DISABLED; - actionDescriptors = new Vector(); - } - - public void executeScenario(ScenarioDescriptor scenarioDescriptor) - { - TransactionDescriptor[] transactionDescriptors = scenarioDescriptor.getTransactionDescriptors(); - for (int i = 0; i < transactionDescriptors.length; i++) - executeTransaction(transactionDescriptors[i]); - } - - public boolean executeTransaction(TransactionDescriptor transactionDescriptor) - { - boolean result = true; - ActionDescriptor[] actionDescriptors = transactionDescriptor.getActionDescriptors(); - for (int i = 0; i < actionDescriptors.length; i++) - { - if (result) - { - if (!executeAction(actionDescriptors[i])) - result = false; - } - else - actionDescriptors[i].setStatusId(ActionDataConstants.VALUE_STATUS_ID_UNATTEMPTED); - } - return result; - } - - public boolean executeAction(ActionDescriptor actionDescriptor) - { - int attempts = actionDescriptor.getAttempts(); - for (int i = 0; i < attempts; i++) - { - try - { - Class classAction = Class.forName(actionDescriptor.getId()); - if (Action.class.isAssignableFrom(classAction)) - { - Action action = (Action) newInstance(classAction); - if (action != null) - { - Hashtable properties = actionDescriptor.getProperties(); - ITransformer[] transformers = action.getTransformers(); - for (int j = 0; j < transformers.length; j++) - properties = transformers[j].deNormalize(properties); - action.setPropertyTable(properties); - boolean actionResult = action.run(); - // TODO actionDescriptor.addStatus(action.getStatus()); - if (actionResult) - { - actionDescriptor.setStatusId(ActionDataConstants.VALUE_STATUS_ID_PASSED); - return true; - } - } - else - throw new ClassNotFoundException(actionDescriptor.getId()); - } - } - catch (ClassNotFoundException cnfe) - { - cnfe.printStackTrace(); - StringWriter sw = new StringWriter(); - cnfe.printStackTrace(new PrintWriter(sw)); - actionDescriptor.addStatus(sw.getBuffer().toString()); - } - catch (Throwable t) - { - t.printStackTrace(); - StringWriter sw = new StringWriter(); - t.printStackTrace(new PrintWriter(sw)); - actionDescriptor.addStatus(sw.getBuffer().toString()); - } - } - actionDescriptor.setStatusId(ActionDataConstants.VALUE_STATUS_ID_FAILED); - return false; - } - - private ScenarioDescriptor newScenarioDescriptor() - { - return new ScenarioDescriptor(); - } - - private TransactionDescriptor newTransactionDescriptor() - { - return new TransactionDescriptor(); - } - - private ActionDescriptor newActionDescriptor(Action action) - { - ActionDescriptor actionDescriptor = new ActionDescriptor(); - actionDescriptor.setId(action.getClass().getName()); - Hashtable properties = new Hashtable(action.getPropertyTable()); - ITransformer[] transformers = action.getTransformers(); - for (int i = 0; i < transformers.length; i++) - properties = transformers[i].normalize(properties); - actionDescriptor.setProperties(properties); - return actionDescriptor; - } - - private Object newInstance(Class c) - { - try - { - // instantiates the action using the constructor that takes in a - // controller object - Constructor constructor = c.getConstructor(new Class[]{Controller.class}); - return constructor.newInstance(new Object[]{controller}); - } - catch (NoSuchMethodException nsme) - { - } - catch (InstantiationException ie) - { - } - catch (IllegalAccessException iae) - { - } - catch (InvocationTargetException ite) - { - } - catch (Throwable t) - { - } - Object instance = null; - try - { - // instantiates the action using the default constructor - Constructor constructor = c.getConstructor(new Class[0]); - instance = constructor.newInstance(new Object[0]); - Method method = c.getMethod("setController", new Class[]{Controller.class}); - method.invoke(instance, new Object[]{controller}); - } - catch (NoSuchMethodException nsme) - { - } - catch (InstantiationException ie) - { - } - catch (IllegalAccessException iae) - { - } - catch (IllegalArgumentException iae) - { - } - catch (InvocationTargetException ite) - { - } - catch (Throwable t) - { - } - return instance; - } - - public byte getMode() - { - return mode; - } - - public void setMode(byte mode) - { - this.mode = mode; - if (mode == MODE_RECORD) - { - actionDescriptors = new Vector(); - ShowPerspectiveAction showPerspectiveAction = new ShowPerspectiveAction(controller); - showPerspectiveAction.addProperty(ActionInputs.PERSPECTIVE, String.valueOf(controller.getCurrentPerspective().getPerspectiveId())); - actionDescriptors.add(newActionDescriptor(showPerspectiveAction)); - } - } - - public boolean executeAction(Action action) - { - if (mode == MODE_RECORD) - { - ActionDescriptor actionDescriptor = newActionDescriptor(action); - actionDescriptors.add(actionDescriptor); - } - return action.run(); - } - - public ScenarioDescriptor getScenario() - { - ScenarioDescriptor scenarioDescriptor = newScenarioDescriptor(); - TransactionDescriptor transactionDescriptor = newTransactionDescriptor(); - ActionDescriptor[] actionDescriptorArray = (ActionDescriptor[])actionDescriptors.toArray(new ActionDescriptor[0]); - transactionDescriptor.setActionDescriptors(actionDescriptorArray); - scenarioDescriptor.setTransactionDescriptors(new TransactionDescriptor[] {transactionDescriptor}); - return scenarioDescriptor; - } -} |