How to implement an extended activity in EasyBPEL?

compared with
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (3)

View Page History
{code}

A JAVA class must implement this {{MyExtendedActivity}} interface:
An abstract class should be created, extending the {{AbstractExtendedActivityImpl}} abstract class and implementing the interface above.
Here is an example:
{code:title=AbstractExtendedActivityImpl.java|borderStyle=solid}
...
import com.ebmwebsourcing.easybpel.model.bpel.api.activity.extension.AbstractExtendedActivityImpl;
import com.ebmwebsourcing.easybpel.model.bpel.api.activity.extension.ExtensionActivity;
import com.ebmwebsourcing.easybpel.model.bpel.api.containers.SourcesImpl;
import com.ebmwebsourcing.easybpel.model.bpel.api.containers.TargetsImpl;
import com.ebmwebsourcing.easybpel.model.bpel.executable.TCondition;
import com.ebmwebsourcing.easybpel.model.bpel.executable.TSources;
import com.ebmwebsourcing.easybpel.model.bpel.executable.TTargets;
...


public abstract class MyExtendedActivityPackageExtendedActivityImpl<E extends TExtentedActivity> extends AbstractExtendedActivityImpl<E> implements MyExtendedActivity {




public MyExtendedActivityPackageExtendedActivityImpl(final QName name, final E model, final ExtensionActivity parent) throws BPELException {

super(name, model, parent);

copySourcesAndTargets(model);

}

public MyExtendedActivityPackageExtendedActivityImpl(QName tag, Element elmt,
ExtensionActivity parent) throws BPELException {
super(tag, elmt, parent);
copySourcesAndTargets(model);
}

private void copySourcesAndTargets(final E model) {
if(model != null) {

if(this.model.getSources() != null) {
TSources sources = new TSources();
sources.getOtherAttributes().putAll(this.model.getSources().getOtherAttributes());
sources.getSource().addAll((List)this.model.getSources().getSource());
sources.getAny().addAll(this.model.getSources().getAny());

this.sources = new SourcesImpl(sources, this);

}

if(this.model.getTargets() != null) {
TTargets targets = new TTargets();
targets.getOtherAttributes().putAll(this.model.getTargets().getOtherAttributes());
targets.getTarget().addAll((List)this.model.getTargets().getTarget());
targets.getAny().addAll(this.model.getTargets().getAny());

TCondition condition = new TCondition();
condition.getContent().addAll(this.model.getTargets().getJoinCondition().getContent());
condition.setExpressionLanguage(this.model.getTargets().getJoinCondition().getExpressionLanguage());
condition.getOtherAttributes().putAll(this.model.getTargets().getJoinCondition().getOtherAttributes());
targets.setJoinCondition(condition);

this.targets = new TargetsImpl(targets, this);

}

}
}


public boolean getSuppressJoinFailure() {
return Boolean.valueOf(this.model.getSuppressJoinFailure().value());
}


public String getName() {
return this.model.getName();
}

public void setName(String name) {
this.model.setName(name);
}

public void loadJaxbContext() throws BPELException {
try {
List<Class> list = new ArrayList<Class>();
list.add(mypackage.ObjectFactory.class);
SchemaJAXBContext.getInstance().addOtherObjectFactory(list);
this.jaxbContext = SchemaJAXBContext.getInstance().getJaxbContext();
} catch (final SchemaException e) {
throw new BPELException(e);
}
}
}

{code}

A JAVA class must implement the {{MyExtendedActivity}} interface and the {{MyExtendedActivityPackageExtendedActivityImpl}} abstract class:

{code:title=MyExtendedActivityImpl.java|borderStyle=solid}
...