From 0159f9c5fcdbeeacd2aab8db35a89c46f26bbfd5 Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Mon, 5 Jun 2023 11:26:46 +0200 Subject: [PATCH] Parseur -> build clazz (simple replace of show method) --- Treasure.jar | Bin 4211 -> 4422 bytes .../peeratcode/parser/java/Class.java | 24 ++++--- .../peeratcode/parser/java/Function.java | 16 +++-- .../peeratcode/parser/java/JavaElement.java | 8 ++- .../peeratcode/parser/java/JavaParser.java | 21 +++--- .../java/operations/AssigmentOperation.java | 10 +-- .../java/operations/ConditionalOperation.java | 65 +++++++++++------- .../parser/java/operations/DoOperation.java | 15 ++-- .../parser/java/operations/ElseOperation.java | 24 +++++-- .../java/operations/LoopAffectOperation.java | 22 +++--- .../java/operations/MethodCallOperation.java | 14 ++-- .../java/operations/ReturnOperation.java | 17 ++--- .../operations/SynchronizedOperation.java | 19 ++--- .../peeratcode/parser/java/OperationTest.java | 12 ---- 14 files changed, 147 insertions(+), 120 deletions(-) diff --git a/Treasure.jar b/Treasure.jar index 94388432d4a0e4fa214726cee0bfff2dc5a77e79..d72484ff04ae3a2af30252bda6e654ac122c74e4 100644 GIT binary patch delta 2848 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 G0002Sf*l_K diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Class.java b/src/be/jeffcheasey88/peeratcode/parser/java/Class.java index 9b2422c..00237f9 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/Class.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Class.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java; +import java.io.BufferedWriter; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.List; @@ -98,17 +99,20 @@ public class Class extends JavaElement{ // return this.vars; // } - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+Modifier.toString(modifier)+" "+this.name+"{"); - for(JavaElement jElement : this.childs){ - jElement.show(tab+1); - System.out.println(); - } - System.out.println(start+"}"); - } + @Override + public void build(BufferedWriter writer, int tab) throws Exception{ + super.build(writer, tab); + writer.write(Modifier.toString(modifier)+" "+this.name+"{\n"); + for(JavaElement child : this.childs){ + child.build(writer, tab+1); + writer.write("\n"); + } + + super.build(writer, tab); + writer.write("}\n"); + } + @Override public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ if(search.apply(this)) return (E)this; diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Function.java b/src/be/jeffcheasey88/peeratcode/parser/java/Function.java index 9983392..8351d71 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/Function.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Function.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java; +import java.io.BufferedWriter; import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Iterator; @@ -93,15 +94,18 @@ public class Function extends OperationContainer{ }while(quote); } - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; + @Override + public void build(BufferedWriter writer, int tab) throws Exception{ String param = ""; for(Variable v : this.parameters) param+=","+v.getType()+" "+v.getName()+""; if(!param.isEmpty()) param = param.substring(1); - System.out.println(start+Modifier.toString(modifier)+" "+(constructor ? "" : returnType+" ")+name+"("+param+") "+exceptions+"{"); - for(JavaElement child : getChilds()) child.show(tab+1); - System.out.println(start+"}"); + super.build(writer, tab); + writer.write(Modifier.toString(modifier)+" "+(constructor ? "" : returnType+" ")+name+"("+param+") "+exceptions+"{\n"); + + for(JavaElement child : getChilds()) child.build(writer, tab+1); + + super.build(writer, tab); + writer.write("}\n"); } } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaElement.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaElement.java index c5a2f41..3136bd0 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaElement.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaElement.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java; +import java.io.BufferedWriter; import java.util.List; import java.util.function.BiFunction; import java.util.function.Function; @@ -11,6 +12,9 @@ public abstract class JavaElement { public abstract E find(Function search, Function, Boolean> deep, List trace); public abstract E find(BiFunction, Boolean> search, List trace); - //Only for development - public abstract void show(int tab); + public void build(BufferedWriter writer, int tab) throws Exception { + String spacement = ""; + for(int i = 0; i < tab; i++) spacement+="\t"; + writer.write(spacement); + } } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java index 3b98a36..768db83 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java @@ -21,8 +21,8 @@ public class JavaParser{ JavaParser parser = new JavaParser(reader); parser.parse(); - System.out.println("SHOW-----------------"); - parser.show(); + System.out.println("build-----------------"); + parser.build(new BufferedWriter(new FileWriter(new File("/home/buildClazzFromParser.txt")))); } public static void mainee(String[] args) throws Exception { @@ -44,7 +44,6 @@ public class JavaParser{ JavaParser parser = new JavaParser(reader); parser.parse(); System.out.println("SHOW-----------------"); - parser.show(); } private static void show(File dir) throws Exception{ @@ -131,14 +130,18 @@ public class JavaParser{ return this.clazz; } - public void show(){ - System.out.println("package "+this.pack.getName()+";"); - System.out.println(); - for(Import i : this.imports) System.out.println("import "+i.getName()+";"); - System.out.println(); - this.clazz.show(0); + public void build(BufferedWriter writer) throws Exception{ + writer.write("package "+this.pack.getName()+";\n"); + writer.write("\n"); + for(Import element : this.imports) writer.write("import "+element.getName()+";\n"); + writer.write("\n"); + + this.clazz.build(writer, 0); + writer.flush(); + writer.close(); } + public static int getModifier(String modifier){ switch(modifier){ case "public": return Modifier.PUBLIC; diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/AssigmentOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/AssigmentOperation.java index 00189b2..76d423d 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/AssigmentOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/AssigmentOperation.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java.operations; +import java.io.BufferedWriter; import java.util.List; import java.util.function.BiFunction; import java.util.regex.Matcher; @@ -27,12 +28,11 @@ public class AssigmentOperation extends JavaElement{ return matcher.group(1).length(); } - + @Override - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+variable+" = "+value+";"); + public void build(BufferedWriter writer, int tab) throws Exception{ + super.build(writer, tab); + writer.write(variable+"= "+value+";\n"); } @Override diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/ConditionalOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/ConditionalOperation.java index 4c658c7..7ecff1e 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/ConditionalOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/ConditionalOperation.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java.operations; +import java.io.BufferedWriter; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -55,14 +56,25 @@ public class ConditionalOperation extends OperationContainer{ return index+bodysize; } - + @Override - public void show(int tab) { - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"Condition??"+condition+"{"); - for(JavaElement child : getChilds()) child.show(tab+1); - System.out.println(start+"}"); + public void build(BufferedWriter writer, int tab) throws Exception{ + boolean empty = getChilds().size() == 0; + if(empty){ + writer.write(";\n"); + return; + } + + boolean oneChild = getChilds().size() == 1; + if(oneChild) writer.write("\t"); + else writer.write("{\n"); + + for(JavaElement child : getChilds()) child.build(writer, oneChild ? 0 : tab+1); + + if(!oneChild){ + super.build(writer, tab); + writer.write("}\n"); + } } public static class IfOperation extends ConditionalOperation{ @@ -72,14 +84,15 @@ public class ConditionalOperation extends OperationContainer{ public IfOperation(){ super(PATTERN); } - + + @Override - public void show(int tab) { - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"if"+super.condition+"{"); - for(JavaElement child : getChilds()) child.show(tab+1); - System.out.println(start+"}"); + public void build(BufferedWriter writer, int tab) throws Exception{ + String spacement = ""; + for(int i = 0; i < tab; i++) spacement+="\t"; + + writer.write(spacement+"if"+super.condition); + super.build(writer, tab+1); } } @@ -92,12 +105,12 @@ public class ConditionalOperation extends OperationContainer{ } @Override - public void show(int tab) { - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"for"+super.condition+"{"); - for(JavaElement child : getChilds()) child.show(tab+1); - System.out.println(start+"}"); + public void build(BufferedWriter writer, int tab) throws Exception{ + String spacement = ""; + for(int i = 0; i < tab; i++) spacement+="\t"; + + writer.write(spacement+"for"+super.condition); + super.build(writer, tab+1); } } @@ -110,12 +123,12 @@ public class ConditionalOperation extends OperationContainer{ } @Override - public void show(int tab) { - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"while"+super.condition+"{"); - for(JavaElement child : getChilds()) child.show(tab+1); - System.out.println(start+"}"); + public void build(BufferedWriter writer, int tab) throws Exception{ + String spacement = ""; + for(int i = 0; i < tab; i++) spacement+="\t"; + + writer.write(spacement+"while"+super.condition); + super.build(writer, tab+1); } } } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/DoOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/DoOperation.java index d92dde5..e2bfac8 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/DoOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/DoOperation.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java.operations; +import java.io.BufferedWriter; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -36,12 +37,14 @@ public class DoOperation extends OperationContainer{ } @Override - public void show(int tab) { - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"do{"); - for(JavaElement child : getChilds()) child.show(tab+1); - System.out.println(start+"}"); + public void build(BufferedWriter writer, int tab) throws Exception{ + super.build(writer, tab); + writer.write("do{\n"); + + for(JavaElement child : getChilds()) child.build(writer, tab+1); + + super.build(writer, tab); + writer.write("}\n"); } } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/ElseOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/ElseOperation.java index a15b9bf..ff91ddf 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/ElseOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/ElseOperation.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java.operations; +import java.io.BufferedWriter; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -41,13 +42,22 @@ public class ElseOperation extends OperationContainer{ } @Override - public void show(int tab) { - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"else{"); - for(JavaElement child : getChilds()) child.show(tab+1); - System.out.println(start+"}"); + public void build(BufferedWriter writer, int tab) throws Exception{ + super.build(writer, tab); + writer.write("else "); + + boolean oneOperation = getChilds().size() == 1; + if(oneOperation){ + getChilds().get(0).build(writer, 0); + return; + } + + writer.write("{\n"); + for(JavaElement child : getChilds()) child.build(writer, tab+1); + + super.build(writer, tab); + writer.write("}\n"); } - + } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/LoopAffectOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/LoopAffectOperation.java index 30babaf..d9a9960 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/LoopAffectOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/LoopAffectOperation.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java.operations; +import java.io.BufferedWriter; import java.util.List; import java.util.function.BiFunction; import java.util.regex.Matcher; @@ -24,12 +25,6 @@ public class LoopAffectOperation extends JavaElement{ return matcher.group(1).length(); } - @Override - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"loop affect??;"); - } @Override public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ @@ -51,11 +46,11 @@ public class LoopAffectOperation extends JavaElement{ } @Override - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"continue;"); + public void build(BufferedWriter writer, int tab) throws Exception { + super.build(writer, tab); + writer.write("continue;\n"); } + } public static class BreakOperation extends LoopAffectOperation{ @@ -67,10 +62,9 @@ public class LoopAffectOperation extends JavaElement{ } @Override - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"break;"); + public void build(BufferedWriter writer, int tab) throws Exception { + super.build(writer, tab); + writer.write("break;\n"); } } } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/MethodCallOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/MethodCallOperation.java index aa891e2..94e023b 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/MethodCallOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/MethodCallOperation.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java.operations; +import java.io.BufferedWriter; import java.util.List; import java.util.function.BiFunction; import java.util.regex.Matcher; @@ -31,14 +32,13 @@ public class MethodCallOperation extends JavaElement{ public String getValue(){ return this.value; } - - @Override - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+value+";"); - } + @Override + public void build(BufferedWriter writer, int tab) throws Exception{ + super.build(writer, tab); + writer.write(value+";\n"); + } + @Override public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ return search.apply(this) ? (E)this : null; diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/ReturnOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/ReturnOperation.java index 07a9c44..5163dd8 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/ReturnOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/ReturnOperation.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java.operations; +import java.io.BufferedWriter; import java.util.List; import java.util.function.BiFunction; import java.util.regex.Matcher; @@ -35,19 +36,19 @@ public class ReturnOperation extends JavaElement{ return matcher.group(1).length(); } - + @Override - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; + public void build(BufferedWriter writer, int tab) throws Exception{ + super.build(writer, tab); if(value != null){ - System.out.println("return"); - value.show(tab+1); - System.out.println(";"); + writer.write("return"); + value.build(writer, 0); + writer.write(";\n"); return; } - System.out.println(start+"return "+toChange+";"); + writer.write("return "+toChange+";\n"); } + @Override public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/SynchronizedOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/SynchronizedOperation.java index d15ee88..25e22b8 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/SynchronizedOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/SynchronizedOperation.java @@ -1,5 +1,6 @@ package be.jeffcheasey88.peeratcode.parser.java.operations; +import java.io.BufferedWriter; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -27,7 +28,7 @@ public class SynchronizedOperation extends OperationContainer{ matcher.matches(); content = matcher.group(1); - + index += content.length(); content = local.unzipOne(content, (s,p) -> s); content = content.substring(1, content.length()-1); @@ -36,14 +37,16 @@ public class SynchronizedOperation extends OperationContainer{ return index; } - + @Override - public void show(int tab){ - String start = ""; - for(int i = 0; i < tab; i++) start+="\t"; - System.out.println(start+"synchronized"+this.include+"{"); - for(JavaElement child : getChilds()) child.show(tab+1); - System.out.println(start+"}"); + public void build(BufferedWriter writer, int tab) throws Exception{ + super.build(writer, tab); + writer.write("synchronized"+this.include+"{\n"); + + for(JavaElement child : getChilds()) child.build(writer, tab+1); + + super.build(writer, tab); + writer.write("}\n"); } } \ No newline at end of file diff --git a/test/be/jeffcheasey88/peeratcode/parser/java/OperationTest.java b/test/be/jeffcheasey88/peeratcode/parser/java/OperationTest.java index b1dc778..d0d4ef2 100644 --- a/test/be/jeffcheasey88/peeratcode/parser/java/OperationTest.java +++ b/test/be/jeffcheasey88/peeratcode/parser/java/OperationTest.java @@ -43,8 +43,6 @@ class OperationTest{ JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ int i = 0; if(i == 0) { return i; } return i; } }"); Class clazz = parser.getClazz(); - clazz.show(0); - assertEquals(1, clazz.getChilds().size()); Function function = (Function) clazz.getChilds().get(0); assertEquals(3, function.getChilds().size()); @@ -60,8 +58,6 @@ class OperationTest{ JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ int i = 0; if(i == 0); return i; } }"); Class clazz = parser.getClazz(); - clazz.show(0); - assertEquals(1, clazz.getChilds().size()); Function function = (Function) clazz.getChilds().get(0); assertEquals(3, function.getChilds().size()); @@ -77,8 +73,6 @@ class OperationTest{ JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ int i = 0; do{ System.out.println(\"Hello\"); }while(i == 0); return i; } }"); Class clazz = parser.getClazz(); - clazz.show(0); - assertEquals(1, clazz.getChilds().size()); Function function = (Function) clazz.getChilds().get(0); assertEquals(4, function.getChilds().size()); @@ -101,8 +95,6 @@ class OperationTest{ JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ for(int i = 0; i < 1; i++) continue; } }"); Class clazz = parser.getClazz(); - clazz.show(0); - assertEquals(1, clazz.getChilds().size()); Function function = (Function) clazz.getChilds().get(0); assertEquals(1, function.getChilds().size()); @@ -123,8 +115,6 @@ class OperationTest{ JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ for(int i = 0; i < 1; i++) break ; } }"); Class clazz = parser.getClazz(); - clazz.show(0); - assertEquals(1, clazz.getChilds().size()); Function function = (Function) clazz.getChilds().get(0); assertEquals(1, function.getChilds().size()); @@ -145,8 +135,6 @@ class OperationTest{ JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ synchronized(this) { this.none(); } } }"); Class clazz = parser.getClazz(); - clazz.show(0); - assertEquals(1, clazz.getChilds().size()); Function function = (Function) clazz.getChilds().get(0); assertEquals(1, function.getChilds().size());