source: src/main/java/agents/anac/y2013/MetaAgent/parser/nn/NNParser.java

Last change on this file was 127, checked in by Wouter Pasman, 6 years ago

#41 ROLL BACK of rev.126 . So this version is equal to rev. 125

File size: 2.6 KB
Line 
1package agents.anac.y2013.MetaAgent.parser.nn;
2
3import java.io.BufferedReader;
4import java.io.FileReader;
5import java.util.HashMap;
6import java.util.Vector;
7
8public class NNParser {
9 String []sections;
10 HashMap<Integer,String>vars;
11 Vector<Arrow>arrows;
12 int length;
13 int lastNodeID;
14 public NNParser(String fileName) {
15 sections=readFile(fileName);
16 for (int i = 0; i < sections.length; i++) {
17 sections[i]=sections[i].trim();
18 }
19 parseVars(sections[1]);
20 arrows=new Vector<Arrow>();
21 parseArrows(sections[2].split("\n"),sections[3].split("\n"));
22 }
23
24 private void parseArrows(String[] weightsS, String[] sourcesS) {
25 length++;
26 HashMap<Integer,Double> weights=new HashMap<Integer,Double>();
27 for (int i = 0; i < weightsS.length; i++) {
28 String[] s2=weightsS[i].replace("\"", "").split(",");
29 Integer id=Integer.parseInt(s2[0]);
30 Double w=Double.parseDouble(s2[1]);
31 weights.put(id,w);
32 }
33 for (int i = 0; i < 4; i++) {
34 for (int j = 0; j < length; j++) {
35 String[] s2=sourcesS[i*length+j].replace("\"", "").split(",");
36 int from=Integer.parseInt(s2[1]);
37 Integer wID=Integer.parseInt(s2[0]);
38 double w=weights.get(wID);
39 arrows.add(new Arrow(from, i+12, w));
40 }
41 }
42 int i=length*4;
43
44 for (int j = 0; j <5; j++) {
45 String[] s2=sourcesS[i+j].replace("\"", "").split(",");
46 int from=Integer.parseInt(s2[1]);
47 Integer wID=Integer.parseInt(s2[0]);
48 double w=weights.get(wID);
49 arrows.add(new Arrow(from, lastNodeID, w));
50 }
51 }
52
53 private void parseVars(String varsString) {
54 vars=new HashMap<Integer,String>();
55 String [] varsS=varsString.split("\n");
56 length=varsS.length;
57 for (int i = 0; i < varsS.length; i++) {
58 parseVar(varsS[i]);
59 }
60 int length=varsS.length;
61 for (int i = 1; i < 6; i++) {
62 vars.put(i+length, "V"+(i+length));
63 }
64 lastNodeID=vars.size();
65 }
66
67 private void parseVar(String s) {
68 s=s.replace("\"","");
69 String []s2=s.split(",");
70 Integer id=Integer.parseInt(s2[0]);
71 String name=s2[1];
72 vars.put(id,name);
73 }
74
75 private String[] readFile(String fileName) {
76 String text="";
77 try {
78 BufferedReader br = new BufferedReader(new FileReader(fileName));
79 StringBuilder sb = new StringBuilder();
80 String line = br.readLine();
81 while (line != null) {
82 sb.append(line);
83 sb.append("\n");
84 line = br.readLine();
85 }
86 text= sb.toString();
87 br.close();
88 }catch(Exception e){
89 e.printStackTrace();
90 }
91 return text.trim().split("\"x\"");
92 }
93}
Note: See TracBrowser for help on using the repository browser.