diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java index ce55c3124179f8a5a73527e20d76324f79b1b7c4..2dba5283fc0e1ecb249aee9857f0da5328e3e3e7 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/AstWalkerJava.java @@ -19,6 +19,8 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Properties; @@ -77,7 +79,7 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { - // ttcn3-ból másolt + // copied from ttcn-3 static { try { @@ -151,7 +153,8 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { // get files in the folder File folder = new File(folderPath.toString()); File[] listOfFiles = folder.listFiles(); - + // Sort them in ascending order (temporary fix for linux) + Arrays.sort(listOfFiles); String leadingPath = ""; for (int i = 0; i < path.segmentCount(); i++) { @@ -191,23 +194,26 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { } } + //initialize common files myASTVisitor.currentFileName = "Constants"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); // erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava("class Constants{\r\n}\r\n"); myASTVisitor.currentFileName = "Templates"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); // erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava("class Templates{\r\n}\r\n"); myASTVisitor.currentFileName = "TTCN_functions"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); // erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava("class TTCN_functions{\r\n}\r\n"); if (fileNames.size() > 0) { for (int i = 0, num = files.size(); i < num; i++) { + + //process files currentTTCN3module = (TTCN3Module) doAnalysis(files.get(i), null); modules.put(fileNames.get(i), currentTTCN3module); @@ -230,6 +236,8 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { Object[] modulestart = modules.get(fileNames.get(i)) .getOutlineChildren(); + + //start AST processing walkChildren(modulestart); } @@ -247,18 +255,18 @@ public class AstWalkerJava implements IWorkbenchWindowActionDelegate { - + //write additional classes Additional_Class_Writer additional_class=new Additional_Class_Writer(); myASTVisitor.currentFileName = "HC"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); //erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava(additional_class.writeHCClass()); myASTVisitor.currentFileName = "HCType"; - myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); //erre + myASTVisitor.visualizeNodeToJava(myASTVisitor.importListStrings); myASTVisitor.visualizeNodeToJava(additional_class.writeHCTypeClass()); - + //clear lists myASTVisitor.componentList.clear(); myASTVisitor.testCaseList.clear(); myASTVisitor.testCaseRunsOnList.clear(); diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Function_Writer.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Function_Writer.java index cc2b16344d94ee8432506bb7d70edbb82dcf51f0..cdf5b8830644c2c0cfa1f11e942981c7d9af1d37 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Function_Writer.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Function_Writer.java @@ -575,11 +575,13 @@ public class Def_Function_Writer { functionString .append("if(timeout>0) try{queue.poll(timeout,TimeUnit.MILLISECONDS);}catch(InterruptedException e){} " + "\r\n"); + functionString.append("this.lock();" + "\r\n"); } else { functionString .append("try{queue.take();}catch(InterruptedException e){}" + "\r\n"); + functionString.append("this.lock();" + "\r\n"); } // endoftimer @@ -654,7 +656,7 @@ public class Def_Function_Writer { functionString.append("}" + "\r\n"); } - + functionString.append("this.unlock();" + "\r\n"); functionString.append("}" + "\r\n"); } diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Testcase_Writer.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Testcase_Writer.java index e5517a213da3c063b04ab64ea57c3bbf5fe6e4f0..4e7e8fe0c240b721b57e9cbae9d2c1fff4c3c1d5 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Testcase_Writer.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Testcase_Writer.java @@ -115,7 +115,7 @@ public class Def_Testcase_Writer { + testCaseNode.getLocation().getFile().getFullPath() .lastSegment() + "\";" + "\r\n"); testCaseString.append("int rownum=" +tcStatementBlock.getLocation().getLine()+ ";\r\n"); - testCaseString.append("if(!created) return;" + "\r\n"); + testCaseString.append("while(!created);" + "\r\n"); testCaseString.append("TTCN3Logger.writeLog(\"mtc\", \"PARALLEL\", sourcefilename, rownum, \"testcase\", \""+nodeName+"\", \"Testcase started on mtc\", false);"+ "\r\n"); int currentCounterValue=0; @@ -205,7 +205,7 @@ public class Def_Testcase_Writer { testCaseString.append("rownum="+tc_connectStatement.getLocation().getLine()+";\r\n"); testCaseString.append("hc.connect("+"\"" +tcConnectValues.get(currentConnectValue)+"\""); - logValues[logWriteCounter]=tcConnectValues.get(currentCounterValue); + logValues[logWriteCounter]=tcConnectValues.get(currentConnectValue); currentConnectValue++; logWriteCounter++; diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Component.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Component.java index 366ee60fca5f783f542dddcf2c60cfa403a94b0b..15c64ebbe94c17ed42875ac2a4fe459ba5f988e7 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Component.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Component.java @@ -65,9 +65,9 @@ public class Def_Type_Component { public void writeConstructor() { compString.append("public " + nodeName - + "(HCType hcomp, String name, String ID){" + "\r\n"); + + "(HCType hcont, String name, String ID){" + "\r\n"); compString.append("super(name);" + "\r\n"); - compString.append("hc=hcomp;" + "\r\n"); + compString.append("hc=hcont;" + "\r\n"); compString.append("if(hc.debugmode)TTCN3Logger.writeLog(name, \"PARALLEL\", \"Test component \" + name + \" created.\", false);" + "\r\n"); @@ -130,6 +130,19 @@ public class Def_Type_Component { compString.append(" " + "\r\n"); compString.append("}" + "\r\n"); } + + public void writeDomap() { + compString.append("" + "\r\n"); + compString.append("@Override" + "\r\n"); + compString + .append("public void domap(String thisport, String remotecomp, String remoteport) {" + + "\r\n"); + + //TODO + + compString.append(" " + "\r\n"); + compString.append("}" + "\r\n"); + } public String getJavaSource() { compString.append("class " + nodeName @@ -139,6 +152,7 @@ public class Def_Type_Component { this.writeAnyPortReceive(); this.writePrepareForConnection(); this.writeConnect(); + this.writeDomap(); compString.append("\r\n}"); String returnString = compString.toString(); diff --git a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Enum.java b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Enum.java index 7d7ca12c59f0180f4ee5b2696af62735988ca2c1..17057efdabdad878f9bee230b6294894531a78d8 100644 --- a/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Enum.java +++ b/org.eclipse.titan.codegenerator/src/org/eclipse/titan/codegenerator/Def_Type_Enum.java @@ -59,12 +59,10 @@ public class Def_Type_Enum { for(int i=0;i