import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Vector;
import java.util.regex.*;
public class MyPattern {
StringBuffer result = new StringBuffer();
String start; //Anfangknoten
String ziel; //Endknoten
String label; //Labels
String myStart; //Anfangknoten von Nullübergänge
String myZiel; //EndKnoeten von Nullübergänge
static String[] data = new String[]{
"digraph g {",
"graph [mindist=\"20\" minlen=\"30\" overlap=\"false\" packmode=\"true\"]",
"node [fontsize=\"10\"]",
"edge [fontsize=\"12\"]",
"PROCESS_MGR_MSG_RECEIVED_END->ORDER_CREATE [label=\"268386\"];",
"INITIATOR_ENGINE_END->CORRELATOR_DELAY [label=\"29901\"];",
"PROCESS_ENGINE_END->BEFORE_SEND_JMS_MSG [label=\"3937\"];",
"AFW_NODECON_EXECUTE_END->ORDER_UPDATE [label=\"766\"];",
"AFW_NODECON_EXECUTE_START->AFW_NODECON_EXECUTE_END [label=\"335\"];",
"ORDER_EXECUTED->AFW_BUILD_TASK_START [label=\"261\"];",
"ORDER_UPDATED->WLH_RECEIVER_DELAY [label=\"232\"];",
"ORDER_CREATE->ORDER_CREATED [label=\"150\"];",
"PROCESS_MGR_CREATE_PROC_START->PROCESS_MGR_CREATE_PROC_END [label=\"83\"];",
"ORDER_CREATED->ORDER_EXECUTED [label=\"65\"];",
"ORDER_SUCCEEDED->ORDER_REMOVED [label=\"52\"];",
"ORDER_UPDATE->ORDER_SUCCEEDED [label=\"47\"];",
"RULEENGINE_CFG_RELOAD_END->JMS_INV_BEFORE_RQST_WITH_PROPS [label=\"47\"];",
"WLH_RECEIVER_END->ORDER_CREATE [label=\"488\"];",
"SERVICE_INVOKER_START->PROCESS_ENGINE_END [label=\"45\"];",
"JMS_INV_BEFORE_RQST_WITH_PROPS->JMS_INV_AFTER_RQST_WITH_PROPS [label=\"45\"];",
"PROCESS_MGR_TEMPLATE_FOUND->PROCESS_MGR_DEF_FOUND [label=\"38\"];",
"CACHE_MANAGER_WAIT_RECEIVE_START->PROCESS_MGR_START [label=\"35\"];",
"PROCESS_MGR_INSTANCE_FOUND->SERVICE_INVOKER_START [label=\"32\"];",
"RULEENGINE_CFG_RELOAD_START->RULEENGINE_CFG_RELOAD_END [label=\"25\"];",
"ORDER_REMOVED->ORDER_UPDATED [label=\"22\"];",
"SERVICE_INVOKER_END->SERVICE_INVOKER_START [label=\"19\"];",
"STORE_SRV_ATTACH_END->ORDER_UPDATE [label=\"236\"];",
"TP_GET_DATA_LOOKUP_ENTITY_START->TP_GET_DATA_LOOKUP_ENTITY_END [label=\"13\"];",
"STORE_ATTACHMENT_END->PROCESS_MGR_MSG_RECEIVED_START [label=\"12\"];",
"MESSAGE_ADAPTER_INPUT_MSG_END->CLASSIFIER_END [label=\"9\"];",
"INIT_AFTER_DECIDER_ASYNC->INITIATOR_ENGINE_START [label=\"6\"];",
"CLASSIFIER_START->CLASSIFIER_END [label=\"34\"];",
"WLH_RECEIVER_DELAY->WLH_RECEIVER_START [label=\"6\"];",
"JMS_INV_BEFORE_RQST_WITH_PROPS->INITIATOR_ENGINE_START [label=\"44\"];",
"TP_GET_DATA_LOOKUP_PARAMS_START->TP_GET_DATA_LOOKUP_PARAMS_END [label=\"4\"];",
"PROCESS_MGR_DEF_FOUND->PROCESS_MGR_RUNTIME_OBJ_CREATED [label=\"4\"];",
"HF_START->HF_END [label=\"2\"];",
"BIC_NODE_CONV_START->BIC_NODE_CONV_END [label=\"29\"];",
"INIT_AFTER_DECIDER_ASYNC->PROCESS_MGR_START [label=\"28\"];",
"PROCESS_MGR_START->PROCESS_MGR_TEMPLATE_FOUND [label=\"1\"];",
"PROCESS_MGR_CREATE_PROC_END->INITIATOR_ENGINE_END [label=\"1\"];",
"AFW_BUILD_TASK_START->AFW_BUILD_TASK_END [label=\"1\"];",
"CLASSIFIER_END->MESSAGE_ADAPTER_OUTPUT_MSG_START [label=\"1\"];",
"SERVICE_INVOKER_END->PROCESS_INSTANCE_FINAL [label=\"1\"];",
"MESSAGE_ADAPTER_INPUT_MSG_START->CLASSIFIER_START [label=\"1\"];",
"HF_ATTACH_END->HF_START [label=\"0\"];",
"CORRELATOR_START->CORRELATOR_STORE_ATTACH_START [label=\"0\"];",
"MESSAGE_ADAPTER_INPUT_MSG_START->MESSAGE_ADAPTER_INPUT_MSG_END [label=\"0\"];",
"INITIATOR_ENGINE_START->CACHE_MANAGER_WAIT_RECEIVE_START [label=\"0\"];",
"WLH_RECEIVER_START->STORE_ATTACHMENT_START [label=\"0\"];",
"BIC_NODE_END->AFW_NODECON_EXECUTE_END [label=\"5\"];",
"AFW_NODECON_EXECUTE_START->BIC_NODE_START [label=\"5\"];",
"BIC_NODE_START->BIC_NODE_CONV_START [label=\"5\"];",
"INIT_BEFORE_DECIDER_ASYNC->RULEENGINE_BEFORE_DECIDE [label=\"0\"];",
"HF_ATTACH_START->HF_ATTACH_END [label=\"0\"];",
"PROCESS_INSTANCE_FINAL->PROCESS_MGR_MSG_RECEIVED_END [label=\"0\"];",
"CORRELATOR_STORE_ATTACH_START->STORE_ATTACHMENT_START [label=\"0\"];",
"PROCESS_MGR_MSG_RECEIVED_START->PROCESS_MGR_INSTANCE_FOUND [label=\"0\"];",
"SERVICE_INVOKER_END->PROCESS_INSTANCE_RUNNING [label=\"0\"];",
"ORDER_DETAILS_ADAPTER_START->ORDER_DETAILS_ADAPTER_END [label=\"2\"];",
"HF_END->INIT_BEFORE_DECIDER_ASYNC [label=\"0\"];",
"MESSAGE_ADAPTER_INPUT_MSG_END->CLASSIFIER_START [label=\"1\"];",
"STORE_ATTACHMENT_START->STORE_ATTACHMENT_END [label=\"0\"];",
"MESSAGE_ADAPTER_INPUT_MSG_END->TP_GET_DATA_LOOKUP_ENTITY_START [label=\"0\"];",
"RULEENGINE_BEFORE_DECIDE->RULEENGINE_CFG_RELOAD_START [label=\"0\"];",
"PROCESS_MGR_MSG_RECEIVED_END->WLH_RECEIVER_END [label=\"0\"];",
"CACHE_MANAGER_WAIT_RECEIVE_START->JMS_INV_AFTER_RQST_WITH_PROPS [label=\"1\"];",
"MESSAGE_ADAPTER_INPUT_MSG_END->TP_GET_DATA_LOOKUP_PARAMS_START [label=\"0\"];",
"PROCESS_MGR_RUNTIME_OBJ_CREATED->PROCESS_MGR_CREATE_PROC_START [label=\"0\"];",
"AFW_NODECON_EXECUTE_START->STORE_SRV_ATTACH_START [label=\"1\"];",
"CORRELATOR_END->PROCESS_MGR_MSG_RECEIVED_START [label=\"0\"];",
"SERVICE_INVOKER_START->ORDER_DETAILS_ADAPTER_START [label=\"0\"];",
"AFW_BUILD_TASK_END->AFW_NODECON_EXECUTE_START [label=\"0\"];",
"STORE_ATTACHMENT_END->CORRELATOR_STORE_ATTACH_END [label=\"0\"];",
"PROCESS_INSTANCE_RUNNING->PROCESS_MGR_MSG_RECEIVED_END [label=\"0\"];",
"BIC_NODE_CONV_END->BIC_NODE_END [label=\"0\"];",
"TP_GET_DATA_LOOKUP_PARAMS_END->MESSAGE_ADAPTER_OUTPUT_MSG_START [label=\"0\"];",
"STORE_SRV_ATTACH_END->AFW_NODECON_EXECUTE_END [label=\"1\"];",
"TP_GET_DATA_LOOKUP_ENTITY_END->MESSAGE_ADAPTER_OUTPUT_MSG_START [label=\"0\"];",
"SERVICE_INVOKER_START->MESSAGE_ADAPTER_INPUT_MSG_START [label=\"0\"];",
"STORE_SRV_ATTACH_START->AFW_NODECON_EXECUTE_END [label=\"1\"];",
"CORRELATOR_DELAY->CORRELATOR_START [label=\"0\"];",
"MESSAGE_ADAPTER_OUTPUT_MSG_END->SERVICE_INVOKER_END [label=\"0\"];",
"INIT_AFTER_DECIDER_ASYNC->CACHE_MANAGER_WAIT_RECEIVE_START [label=\"0\"];",
"JMS_INV_AFTER_RQST_WITH_PROPS->RULEENGINE_AFTER_DECIDE [label=\"0\"];",
"MESSAGE_ADAPTER_OUTPUT_MSG_START->MESSAGE_ADAPTER_OUTPUT_MSG_END [label=\"0\"];",
"INITIATOR_ENGINE_START->JMS_INV_AFTER_RQST_WITH_PROPS [label=\"0\"];",
"ORDER_DETAILS_ADAPTER_END->PROCESS_ENGINE_END [label=\"0\"];",
"RULEENGINE_AFTER_DECIDE->INIT_AFTER_DECIDER_ASYNC [label=\"0\"];",
"CACHE_MANAGER_WAIT_RECEIVE_START->RULEENGINE_AFTER_DECIDE [label=\"3\"];",
"CORRELATOR_STORE_ATTACH_END->CORRELATOR_END [label=\"0\"];",
"JMS_INV_AFTER_RQST_WITH_PROPS->INITIATOR_ENGINE_START [label=\"1\"];",
"JMS_INV_AFTER_RQST_WITH_PROPS->CACHE_MANAGER_WAIT_RECEIVE_START [label=\"1\"];",
"RULEENGINE_AFTER_DECIDE->INITIATOR_ENGINE_START [label=\"0\"];",
"STORE_SRV_ATTACH_START->STORE_SRV_ATTACH_END [label=\"0\"];",
"CACHE_MANAGER_WAIT_RECEIVE_START->INIT_AFTER_DECIDER_ASYNC [label=\"1\"];",
"INITIATOR_ENGINE_START->INIT_AFTER_DECIDER_ASYNC [label=\"0\"];",
"RULEENGINE_AFTER_DECIDE->CACHE_MANAGER_WAIT_RECEIVE_START [label=\"0\"];",
"STORE_ATTACHMENT_END->STORE_ATTACHMENT_START [label=\"0\"];",
"AFW_NODECON_EXECUTE_END->STORE_SRV_ATTACH_END [label=\"0\"];",
"AFW_NODECON_EXECUTE_END->STORE_SRV_ATTACH_START [label=\"0\"];",
"CLASSIFIER_START->MESSAGE_ADAPTER_INPUT_MSG_END [label=\"0\"];",
"INITIATOR_ENGINE_START->RULEENGINE_AFTER_DECIDE [label=\"0\"];",
"}"
};
private void readRecords() {
String filename = "digraph1";
System.out.println(">>> read records ...");
try {
FileInputStream fstream = new FileInputStream(filename);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) {
String pattern = "(.*)\\-\\>(.*)\\[label\\=\\\"(.*)\\\"\\]\\;";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(strLine);
if (m.matches()) {
start = m.group(1);
ziel = m.group(2);
label = m.group(3);
if (label.equals("0")) {
System.out.println("Nullübergänge: " );
myStart ="";
myZiel ="";
myStart =start;
myZiel =ziel;
System.out.println("myStart =:"+myStart);
System.out.println("myZiel =:"+myZiel);
strLine = strLine.replace(strLine, " ");
} else {
System.out.println("start =: "+start);
System.out.println("Ziel =: "+ziel);
System.out.println("label =:"+ label);
result.append(strLine + "\n");
}
processRecords(strLine, start, ziel);
}
}
in.close();
} catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
}
private void processRecords(String myLine, String x, String y) {
try {
System.out.println("To Compare: " +start + " && "+myZiel + "\n");
if (myZiel.equals(start)) {
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>Foung match");
myLine = myLine.replace(start, myStart);
}
} catch (Exception e) {
System.err.println("Error at Processing : " + e.getMessage());
}
writeNewLine(result.toString());
}
private void writeNewLine(String line) {
FileOutputStream fout;
try {
fout = new FileOutputStream(
"C:\\Dokumente und Einstellungen\\mathenge\\Eigene Dateien\\MyOutPut\\MyPattern.txt");
new PrintStream(fout).println(line);
fout.close();
} catch (IOException e) {
System.err.println("Unable to write to file");
System.exit(-1);
}
}
public static void main(String[] args) {
System.out.println("start program ...");
MyPattern x = new MyPattern();
x.readRecords();
System.out.println("program finished ...");
}
}