package betsy.bpel.engines;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
import betsy.bpel.model.BPELProcess;
import betsy.common.HasPath;
import betsy.common.engines.EngineAPI;
import pebl.ProcessLanguage;
public abstract class AbstractBPELEngine implements EngineAPI<BPELProcess>, HasPath {
private final List<BPELProcess> processes = new ArrayList<>();
private BPELEnginePackageBuilder packageBuilder = new BPELEnginePackageBuilder();
private Path parentFolder;
public abstract Path getXsltPath();
/**
* The path <code>test/$engine</code>
*
* @return the path <code>test/$engine</code>
*/
public Path getPath() {
return parentFolder.resolve(getName());
}
@Override
public String toString() {
return getName();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
AbstractBPELEngine engine = (AbstractBPELEngine) o;
return getName().equals(engine.getName());
}
@Override
public ProcessLanguage getSupportedLanguage() {
return ProcessLanguage.BPEL;
}
@Override
public int hashCode() {
return getName().hashCode();
}
public BPELEnginePackageBuilder getPackageBuilder() {
return packageBuilder;
}
public void setPackageBuilder(BPELEnginePackageBuilder packageBuilder) {
this.packageBuilder = packageBuilder;
}
public Path getParentFolder() {
return parentFolder;
}
public void setParentFolder(Path parentFolder) {
this.parentFolder = parentFolder;
}
public final List<BPELProcess> getProcesses() {
return processes;
}
}