package tud.st.bpel.prolog;
import java.io.FileNotFoundException;
import java.io.IOException;
import alice.tuprolog.Struct;
import alice.tuprolog.Term;
public class StaticProcessFacts{
private Struct activityList = new Struct();
private Struct invokeList = new Struct();
private String definitionID;
public StaticProcessFacts( String definitionID )
{
this.definitionID = definitionID;
}
public void addInvoke( String token,
String parent,
String partnerLink,
String portType,
String operation,
String inputVariable,
String outputVariable)
{
Term invoke = new Struct(
"s_invoke",
new Struct(token),
new Struct(parent),
new Struct(partnerLink),
new Struct(portType),
new Struct(operation),
new Struct(inputVariable),
new Struct(outputVariable)
);
invokeList.append(invoke);
}
public void addActivity( String token, String parent )
{
Term activity = new Struct(
"s_act",
new Struct(token),
new Struct(parent)
);
activityList.append(activity);
}
public final Struct getActivityList()
{
return activityList;
}
public final Struct getInvokeList()
{
return invokeList;
}
public final Struct getStaticProcessStruct()
{
Struct s_process = new Struct(
"s_process",
new Struct(this.definitionID),
getActivityList(),
getInvokeList()
);
return s_process;
}
public static void main(String[] args) throws FileNotFoundException, IOException {
StaticProcessFacts ps = new StaticProcessFacts("ID");
ps.addActivity("/process/sequence/assign","/process/sequence");
//ps.getActivityList();
ps.addInvoke( "/process/sequence/invokeFlightService",
"/process/sequence",
"flightPartner",
"fs:FindAFlightServicePortType",
"findAFlight",
"flightrequest",
"flightresponse"
);
System.out.println(ps.getStaticProcessStruct());
}
}