AbsCommValuesGenerator.java 2.29 KB
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
package jcircus.complexcomms;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.math.BigInteger;
import java.util.HashMap;
import java.util.Vector;

public class AbsCommValuesGenerator { //Armazena todos os valores absolutos de cada canal. O acesso aos valores da comunicação serão feitos através de cada valor absoluto da especificação
private String code = "";
private String packageDecl;
private String path;
private String chanName;
private Vector <Vector <BigInteger>> vv;
public AbsCommValuesGenerator (String paper, String src, String projectDir, String specName, String chanName, Vector <Vector <BigInteger>> vv) {
this.packageDecl = "package " + /*specName + "." +*/ paper + "." + src + "." + paper + "." + "channels" + ";\n";
//this.path = projectDir + "\\" + paper + "\\" + src + "\\" + paper + "\\channels\\Abs_" + chanName + ".java";
this.path = projectDir + "/" + paper + "/" + src + "/" + paper + "/channels/Abs_" + chanName + ".java";
this.chanName = chanName;
this.vv = vv;
}

public void concatCode (String str) {
this.code = this.code + str;
}
public String totalCode () {
return
this.packageDecl +
"import java.util.HashMap;\n" +
"import java.math.BigInteger;\n" +
"import java.util.Vector;\n" +
"public class Abs_" + chanName + /*"_" + this.index +*/ " {\n" +
/*" public HashMap <String, Vector <Vector <BigInteger>>> env_channels = new HashMap <String, Vector <Vector <BigInteger>>> ();\n" +
" Vector <BigInteger> subSet;\n" +
" Vector <Vector <BigInteger>> set;\n" +*/
" public int abs (String chan, int element, BigInteger bi) {\n" +
" return this.env_channels.get(chan).elementAt(element).indexOf(bi);\n" +
" }\n" +
" /*public String toString (String chan, int element, ) {\n" +
" " +
" }\n*/" +
" public Abs_" + this.chanName + "() {\n" +
" makeEnvChannels ();\n" +
" }\n" +
CCUtil.makeEnvChannelsCode(this.chanName, this.vv) +
/*" env_channels.put (\"" + this.chanName + "\", " + "set" + ");\n" +*/

this.code
+ "}\n";
}
public void generate() {
try {
BufferedWriter bw = new BufferedWriter (new FileWriter (this.path));
bw.write(this.totalCode());
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}