-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNamesMatcher.java
More file actions
82 lines (67 loc) · 2.37 KB
/
NamesMatcher.java
File metadata and controls
82 lines (67 loc) · 2.37 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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import java.io.*;
import java.util.*;
import java.nio.file.Paths;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class NamesMatcher {
public static String GetConfigValue(String key) {
Properties prop = new Properties();
var fileName = Paths.get("").toAbsolutePath() + "\\app.config";
InputStream is = null;
try {
is = new FileInputStream(fileName);
} catch (FileNotFoundException ex) {
}
try {
prop.load(is);
} catch (IOException ex) {
}
return prop.getProperty(key);
}
public static void main(final String[] args) {
var reader = new Reader();
var matcher = new Matcher();
Integer cnkCounter=0;
List<Chunk> lstChunks = new ArrayList<Chunk>();
try {
var names = GetConfigValue("NAMES");
lstChunks = reader.LoadTextToChunks();
ExecutorService executor = Executors.newCachedThreadPool();
for (Chunk cnk : lstChunks) {
Long prevCnkLength = CalculatePrecCnkLength(cnkCounter, lstChunks);
executor.submit(() -> {
matcher.Match(cnk,prevCnkLength, names.toLowerCase());
});
++cnkCounter;
}
PrintResults(names);
} catch (Exception e) {
}
}
private static Long CalculatePrecCnkLength(Integer cnkCounter, List<Chunk> lstChunks) {
Long prevCnkLength;
if (cnkCounter>0){
prevCnkLength=lstChunks.get(cnkCounter-1).cnkLength;
}
else{
prevCnkLength=0L;
}
return prevCnkLength;
}
private static void PrintResults(String names) {
//It would be better to use here json serialization, not supported in java native
for (var name : names.split(",")) {
if(Aggregator.finalMapper.get(name)!=null)
{
System.out.println(name + "-->[" );
PrintLocations(Aggregator.finalMapper.get(name));
System.out.println("]" );
}
}
}
private static void PrintLocations(List<Cordinate> locations) {
for (var loc : locations) {
System.out.println("[lineOffset=" + loc.lineOffset + ",charOffset="+ loc.charOffset + "]");
}
}
}