Untitled
unknown
plain_text
3 years ago
7.6 kB
17
Indexable
package project1;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class program1 {
public static void main(String[] args) {
String filePath = "D:\\SAMPLE1.txt";
String text = "";
try {
text = new String(Files.readAllBytes(Paths.get(filePath)));
} catch (IOException e) {
System.out.println("Error reading file at path: " + filePath);
}
Scanner sc = new Scanner(text);
List<String> GTD = new ArrayList<>();
List<String>OrderFlow = new ArrayList<>();
List<String> tg39 = new ArrayList<>();
List<String> tg35 = new ArrayList<>();
List<String> rg = new ArrayList<>();
Map<String, Map<String, String>> mp = new HashMap<>();
try {
BufferedReader reader = new BufferedReader(new FileReader("D:\\config.properties.txt"));
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split("=");
if (!mp.containsKey(parts[0] + "=" + parts[1])) {
mp.put(parts[0] + "=" + parts[1], new HashMap<String, String>());
}
mp.get(parts[0] + "=" + parts[1]).put("value", parts[2]);
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
}
boolean found= false;
while (sc.hasNextLine()) {
String line = sc.nextLine();
Pattern pattern = Pattern.compile("\\[(.*)\\]");
Matcher matcher = pattern.matcher(line);
String match = "";
while (matcher.find()) {
match = matcher.group(1);
}
String[] split1 = match.split("\\|");
boolean cond = false;
Map<String, String> matchMap = new HashMap<>();
for (String s : split1) {
if (s.contains("35=") || s.contains("150=") || s.contains("39=")|| s.contains("59=")) {
Map<String, String> innerMap = mp.get(s);
String value = innerMap.get("value");
matchMap.put(s, value);
}
}
for (String s2 : split1) {
if (s2.contains("442")) {
Map<String, String> innerMap = mp.get(s2);
String value = innerMap.get("value");
matchMap.put(s2, value);
cond= true;
}
}
String searchValue1 = "59=";
String searchValue2= "35=";
String searchValue4= "442=";
String searchValue5= "39=";
for(String key : matchMap.keySet()) {
if(key.contains(searchValue5))
{
Map<String, String> innerMap = mp.get(key);
String value = innerMap.get("value");
tg39.add(value);
} if(key.contains(searchValue2))
{
Map<String, String> innerMap = mp.get(key);
String value = innerMap.get("value");
tg35.add(value);
} if(key.contains(searchValue1))
{
Map<String, String> innerMap = mp.get(key);
String value = innerMap.get("value");
GTD.add(value);
} if(key.contains(searchValue4))
{
if(key.contains("442=3") || key.contains("442=2")) {
}if(!found) {if((key.contains("442=3") || key.contains("442=2"))) {
System.out.println("Order type: Spread order");
found=true;
}else {
System.out.println("Order type: outright");
found=true;
}
}
}}
if(cond == false) {
}else {
List<String> newList = new ArrayList<>();
for (String key : matchMap.keySet()) {
if (key.contains("39=") || key.contains("150=")) {
newList.add(key);
}
if(key.contains("39=")) {
Map<String, String> innerMap = mp.get(key);
String value = innerMap.get("value");
tg39.add(value);
}
}
if (newList.contains("39=2") && newList.contains("150=F")) {
OrderFlow.add("Fully Filled");
} else if (newList.contains("39=1") && newList.contains("150=5")) {
OrderFlow.add("Ammend");
} else if (newList.contains("150=8")) {
OrderFlow.add("Rejected");
}else if (newList.contains("39=0")) {
OrderFlow.add("new");
}else if (newList.contains("39=1")) {
OrderFlow.add("partial fill");
}else if (newList.contains("150=5")) {
OrderFlow.add("amend");
}
else {
if(!newList.isEmpty()) {
Map<String, String> innerMap = mp.get(newList.get(1));
String value = innerMap.get("value");
OrderFlow.add(value);
}
}
}
boolean condition = false;
String found35 = "";
for (String s : split1) {
if (s.equals("35=AB")) {
condition = true;
found35 = "35=AB";
break;
} else if (s.equals("35=AC")) {
condition = true;
found35 = "35=AC";
break;
}
}
if (condition) {
String repeatGroup = "";
for (String val : split1) {
if (val.contains("447") || val.contains("448") || val.contains("452") || val.contains("453")) {
repeatGroup += val + "|";
}
}
if (repeatGroup.length()>0) {
repeatGroup = repeatGroup.substring(0, repeatGroup.length() - 1);
System.out.println(found35 + " Repeating groups are[" + repeatGroup + "]");
} else {
System.out.println("No repeating groups found.");
}
}
}
for (String element : tg35) {
System.out.println("tag35" + tg35);
}
for (String element : tg39) {
System.out.println("tag39" + tg39);
}for (String element : OrderFlow) {
System.out.println("orderflow" + OrderFlow);
}for (String element : rg) {
System.out.println("repeating group" + rg);
}
for(String element : GTD)
{
if(element!="GTD"){
System.out.println("TIF IS"+element);
break;
}else {
System.out.println("TIF IS"+ element);
break;
}
}
}
}
Editor is loading...