/*******************************************************************************
* Copyright (c) 2012 Olivier Moises
*
* 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:
* Olivier Moises- initial API and implementation
*******************************************************************************/
package org.eclipse.wazaabi.engine.edp.adapters;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.wazaabi.engine.edp.coderesolution.AbstractCodeDescriptor;
import org.eclipse.wazaabi.engine.edp.coderesolution.AbstractCodeDescriptor.MethodDescriptor;
import org.eclipse.wazaabi.engine.edp.coderesolution.AbstractDeferredAdapter;
import org.eclipse.wazaabi.engine.edp.exceptions.OperationAborted;
import org.eclipse.wazaabi.mm.edp.EventDispatcher;
import org.eclipse.wazaabi.mm.edp.events.Event;
import org.eclipse.wazaabi.mm.edp.handlers.EventHandler;
public abstract class AbstractOperationAdapter extends AbstractDeferredAdapter
implements OperationAdapter {
abstract public void trigger(EventDispatcher eventDispatcher,
EventHandler eventHandler, Event event) throws OperationAborted;
private List<MethodDescriptor> methodDescriptors = new ArrayList<MethodDescriptor>();
private String codeLocatorBaseUri = null;
protected MethodDescriptor getMethodDescriptor(int index) {
if (index < methodDescriptors.size())
return methodDescriptors.get(index);
return null;
}
public void registerMethods(AbstractCodeDescriptor codeDescriptor) {
if (getMethodSignatures() == null)
return;
for (MethodSignature methodSignature : getMethodSignatures())
methodDescriptors.add(codeDescriptor.getMethodDescriptor(
methodSignature.getMethodName(),
methodSignature.getParameterNames(),
methodSignature.getParameterTypes(),
methodSignature.getReturnType()));
}
public String getCodeLocatorBaseUri() {
return codeLocatorBaseUri;
}
public void setCodeLocatorBaseUri(String newBaseUri) {
this.codeLocatorBaseUri = newBaseUri;
}
}