100 lines
5.2 KiB
Plaintext
100 lines
5.2 KiB
Plaintext
public class CLASS
|
|
{
|
|
// add the list of the connection names to avoid to declare two times the same name.
|
|
public String createPrivateClassInstance(INode node, String parentLastRoot, boolean force) {
|
|
return createPrivateClassInstance(node, parentLastRoot, force, new HashSet<String>());
|
|
}
|
|
|
|
public String createPrivateClassInstance(INode n, String parentLastRoot, boolean force, Set<String> names) {
|
|
String toReturn = "";
|
|
// declare root structs (all main outgoing connections)
|
|
for (IConnection conn : n.getOutgoingConnections()) {
|
|
if (conn.getLineStyle().equals(EConnectionType.FLOW_MAIN) || conn.getLineStyle().equals(EConnectionType.FLOW_MERGE)) {
|
|
if ((force)||(n.isSubProcessStart() || !(NodeUtil.isDataAutoPropagated(n)))) {
|
|
// new Instance
|
|
if (!names.contains(conn.getName())) {
|
|
toReturn += conn.getName() + "Struct " + conn.getName() + " = new " + conn.getName()
|
|
+ "Struct();\n";
|
|
names.add(conn.getName());
|
|
parentLastRoot = conn.getName();
|
|
}
|
|
} else {
|
|
// copy
|
|
if (!names.contains(conn.getName())) {
|
|
toReturn += parentLastRoot + "Struct " + conn.getName() + " = " + parentLastRoot + ";\n";
|
|
names.add(conn.getName());
|
|
}
|
|
}
|
|
if(!conn.getTarget().getComponent().useMerge()) {
|
|
toReturn += createPrivateClassInstance(conn.getTarget(), parentLastRoot, false, names);
|
|
}
|
|
} else if (conn.getLineStyle().equals(EConnectionType.ITERATE)||conn.getLineStyle().equals(EConnectionType.ON_ROWS_END)) {
|
|
toReturn += createPrivateClassInstance(conn.getTarget(), parentLastRoot, true, names);
|
|
}
|
|
}
|
|
return toReturn;
|
|
}
|
|
|
|
public String createPriveClassMethodDeclaration(INode n, String parentLastRoot, boolean force, Set<String> names) {
|
|
String toReturn = "";
|
|
// declare root structs (all main outgoing connections)
|
|
for (IConnection conn : n.getOutgoingConnections()) {
|
|
if (conn.getLineStyle().equals(EConnectionType.FLOW_MAIN) || conn.getLineStyle().equals(EConnectionType.FLOW_MERGE)) {
|
|
if ((force)||(n.isSubProcessStart() || !(NodeUtil.isDataAutoPropagated(n)))) {
|
|
// new Instance
|
|
if (!names.contains(conn.getName())) {
|
|
toReturn += conn.getName() + "Struct " + conn.getName() + ",";
|
|
names.add(conn.getName());
|
|
parentLastRoot = conn.getName();
|
|
}
|
|
} else {
|
|
// copy
|
|
if (!names.contains(conn.getName())) {
|
|
toReturn += parentLastRoot + "Struct " + conn.getName() + ",";
|
|
names.add(conn.getName());
|
|
}
|
|
}
|
|
if(!conn.getTarget().getComponent().useMerge()) {
|
|
toReturn += createPriveClassMethodDeclaration(conn.getTarget(), parentLastRoot, false, names);
|
|
}
|
|
} else if (conn.getLineStyle().equals(EConnectionType.ITERATE)||conn.getLineStyle().equals(EConnectionType.ON_ROWS_END)) {
|
|
toReturn += createPriveClassMethodDeclaration(conn.getTarget(), parentLastRoot, true, names);
|
|
}
|
|
}
|
|
return toReturn;
|
|
}
|
|
|
|
public String createPrivateClassMethodInstance(INode n, String parentLastRoot, boolean force, Set<String> names) {
|
|
String toReturn = "";
|
|
// declare root structs (all main outgoing connections)
|
|
for (IConnection conn : n.getOutgoingConnections()) {
|
|
if (conn.getLineStyle().equals(EConnectionType.FLOW_MAIN) || conn.getLineStyle().equals(EConnectionType.FLOW_MERGE)) {
|
|
if ((force) || (n.isSubProcessStart() || !(NodeUtil.isDataAutoPropagated(n)))) {
|
|
// new Instance
|
|
if (!names.contains(conn.getName())) {
|
|
toReturn += conn.getName() + ",";
|
|
names.add(conn.getName());
|
|
parentLastRoot = conn.getName();
|
|
}
|
|
} else {
|
|
// copy
|
|
if (!names.contains(conn.getName())) {
|
|
toReturn += conn.getName() + ",";
|
|
names.add(conn.getName());
|
|
}
|
|
}
|
|
if (!conn.getTarget().getComponent().useMerge()) {
|
|
toReturn += createPrivateClassMethodInstance(conn.getTarget(), parentLastRoot, false, names);
|
|
}
|
|
} else if (conn.getLineStyle().equals(EConnectionType.ITERATE)
|
|
|| conn.getLineStyle().equals(EConnectionType.ON_ROWS_END)) {
|
|
toReturn += createPrivateClassMethodInstance(conn.getTarget(), parentLastRoot, true, names);
|
|
}
|
|
}
|
|
return toReturn;
|
|
}
|
|
|
|
public String generate(Object argument) {
|
|
return "";
|
|
}
|
|
} |