From da87230afcc788ec2bd006a9d05e3260c9216edd Mon Sep 17 00:00:00 2001 From: jeffcheasey88 Date: Thu, 1 Jun 2023 20:26:28 +0200 Subject: [PATCH] Util -> Find -> Generic type --- .../jeffcheasey88/peeratcode/parser/java/Class.java | 12 ++++++------ .../peeratcode/parser/java/JavaElement.java | 4 ++-- .../peeratcode/parser/java/JavaParser.java | 8 ++++---- .../peeratcode/parser/java/Variable.java | 8 ++++---- .../parser/java/operations/AssigmentOperation.java | 8 ++++---- .../parser/java/operations/LoopAffectOperation.java | 8 ++++---- .../parser/java/operations/MethodCallOperation.java | 8 ++++---- .../parser/java/operations/OperationContainer.java | 12 ++++++------ .../parser/java/operations/ReturnOperation.java | 12 ++++++------ .../peeratcode/parser/java/SearchTest.java | 4 ++-- 10 files changed, 42 insertions(+), 42 deletions(-) diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Class.java b/src/be/jeffcheasey88/peeratcode/parser/java/Class.java index f422035..37e2998 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/Class.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Class.java @@ -110,23 +110,23 @@ public class Class extends JavaElement{ } @Override - public JavaElement find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ - if(search.apply(this)) return this; + public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ + if(search.apply(this)) return (E)this; trace.add(this); if(!deep.apply(trace)) return null; for(JavaElement element : this.childs){ - JavaElement result = element.find(search, deep, trace); + E result = element.find(search, deep, trace); if(result != null) return result; } return null; } @Override - public JavaElement find(BiFunction, Boolean> search, List trace){ + public E find(BiFunction, Boolean> search, List trace){ trace.add(this); - if(search.apply(this, trace)) return this; + if(search.apply(this, trace)) return (E)this; for(JavaElement element : this.childs){ - JavaElement result = element.find(search, trace); + E result = element.find(search, trace); if(result != null) return result; } return null; diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaElement.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaElement.java index e55430b..c5a2f41 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaElement.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaElement.java @@ -8,8 +8,8 @@ public abstract class JavaElement { public abstract int parse(String content, CleanerPool global, CleanerPool local) throws Exception; - public abstract JavaElement find(Function search, Function, Boolean> deep, List trace); - public abstract JavaElement find(BiFunction, Boolean> search, List trace); + 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); diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java index 4054348..3b98a36 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/JavaParser.java @@ -111,12 +111,12 @@ public class JavaParser{ content = content.substring(index); } - public JavaElement find(Function search, Function, Boolean> deep){ - return this.clazz.find(search, deep, new ArrayList<>()); + public E find(Function search, Function, Boolean> deep){ + return (E)this.clazz.find(search, deep, new ArrayList<>()); } - public JavaElement find(BiFunction, Boolean> search){ - return this.clazz.find(search, new ArrayList<>()); + public E find(BiFunction, Boolean> search){ + return (E) this.clazz.find(search, new ArrayList<>()); } public Package getPackage(){ diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/Variable.java b/src/be/jeffcheasey88/peeratcode/parser/java/Variable.java index b5e9ba4..8e02ce9 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/Variable.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/Variable.java @@ -133,8 +133,8 @@ public class Variable extends JavaElement{ } @Override - public JavaElement find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ - if(search.apply(this)) return this; + public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ + if(search.apply(this)) return (E)this; trace.add(this); if(!deep.apply(trace)) return null; //Value of the variable @@ -142,9 +142,9 @@ public class Variable extends JavaElement{ } @Override - public JavaElement find(BiFunction, Boolean> search, List trace){ + public E find(BiFunction, Boolean> search, List trace){ trace.add(this); - if(search.apply(this, trace)) return this; + if(search.apply(this, trace)) return (E)this; //value return null; } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/AssigmentOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/AssigmentOperation.java index 2eca22e..f3f3da2 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/AssigmentOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/AssigmentOperation.java @@ -36,8 +36,8 @@ public class AssigmentOperation extends JavaElement{ } @Override - public JavaElement find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ - if(search.apply(this)) return this; + public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ + if(search.apply(this)) return (E)this; trace.add(this); if(!deep.apply(trace)) return null; //value @@ -45,9 +45,9 @@ public class AssigmentOperation extends JavaElement{ } @Override - public JavaElement find(BiFunction, Boolean> search, List trace){ + public E find(BiFunction, Boolean> search, List trace){ trace.add(this); - if(search.apply(this, trace)) return this; + if(search.apply(this, trace)) return (E)this; //value return null; } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/LoopAffectOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/LoopAffectOperation.java index 0a205ad..84e8790 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/LoopAffectOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/LoopAffectOperation.java @@ -32,14 +32,14 @@ public class LoopAffectOperation extends JavaElement{ } @Override - public JavaElement find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ - return search.apply(this) ? this : null; + public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ + return search.apply(this) ? (E)this : null; } @Override - public JavaElement find(BiFunction, Boolean> search, List trace){ + public E find(BiFunction, Boolean> search, List trace){ trace.add(this); - return search.apply(this, trace) ? this : null; + return search.apply(this, trace) ? (E)this : null; } public static class ContinueOperation extends LoopAffectOperation{ diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/MethodCallOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/MethodCallOperation.java index 2fad925..2508135 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/MethodCallOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/MethodCallOperation.java @@ -40,13 +40,13 @@ public class MethodCallOperation extends JavaElement{ } @Override - public JavaElement find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ - return search.apply(this) ? this : null; + public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ + return search.apply(this) ? (E)this : null; } @Override - public JavaElement find(BiFunction, Boolean> search, List trace){ + public E find(BiFunction, Boolean> search, List trace){ trace.add(this); - return search.apply(this, trace) ? this : null; + return search.apply(this, trace) ? (E)this : null; } } diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/OperationContainer.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/OperationContainer.java index afe1f00..bb3b2e3 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/OperationContainer.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/OperationContainer.java @@ -68,23 +68,23 @@ public abstract class OperationContainer extends JavaElement{ } @Override - public JavaElement find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ - if(search.apply(this)) return this; + public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ + if(search.apply(this)) return (E)this; trace.add(this); if(!deep.apply(trace)) return null; for(JavaElement element : this.childs){ - JavaElement result = element.find(search, deep, trace); + E result = element.find(search, deep, trace); if(result != null) return result; } return null; } @Override - public JavaElement find(BiFunction, Boolean> search, List trace){ + public E find(BiFunction, Boolean> search, List trace){ trace.add(this); - if(search.apply(this, trace)) return this; + if(search.apply(this, trace)) return (E)this; for(JavaElement element : this.childs){ - JavaElement result = element.find(search, trace); + E result = element.find(search, trace); if(result != null) return result; } return null; diff --git a/src/be/jeffcheasey88/peeratcode/parser/java/operations/ReturnOperation.java b/src/be/jeffcheasey88/peeratcode/parser/java/operations/ReturnOperation.java index 05f0700..2d99517 100644 --- a/src/be/jeffcheasey88/peeratcode/parser/java/operations/ReturnOperation.java +++ b/src/be/jeffcheasey88/peeratcode/parser/java/operations/ReturnOperation.java @@ -50,20 +50,20 @@ public class ReturnOperation extends JavaElement{ } @Override - public JavaElement find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ - if(search.apply(this)) return this; + public E find(java.util.function.Function search, java.util.function.Function, Boolean> deep, List trace){ + if(search.apply(this)) return (E)this; trace.add(this); if(!deep.apply(trace)) return null; - JavaElement result = value.find(search, deep, trace); + E result = value.find(search, deep, trace); if(result != null) return result; return null; } @Override - public JavaElement find(BiFunction, Boolean> search, List trace){ + public E find(BiFunction, Boolean> search, List trace){ trace.add(this); - if(search.apply(this, trace)) return this; - JavaElement result = value.find(search, trace); + if(search.apply(this, trace)) return (E)this; + E result = value.find(search, trace); if(result != null) return result; return null; } diff --git a/test/be/jeffcheasey88/peeratcode/parser/java/SearchTest.java b/test/be/jeffcheasey88/peeratcode/parser/java/SearchTest.java index ae455d0..0b3f4e5 100644 --- a/test/be/jeffcheasey88/peeratcode/parser/java/SearchTest.java +++ b/test/be/jeffcheasey88/peeratcode/parser/java/SearchTest.java @@ -72,13 +72,13 @@ class SearchTest{ try { JavaParser parser = parse("package be.jeffcheasey88.peeratcode.parser.java; class Test{ void function(){ int i = 0; if(i == 0){ this.none(); } valid(); } }"); - JavaElement element = parser.find( + MethodCallOperation element = parser.find( (e, trace) -> { return (e instanceof MethodCallOperation) && (trace.get(trace.size()-2) instanceof IfOperation); }); assertNotNull(element); - assertEquals("this.none()", ((MethodCallOperation)element).getValue()); + assertEquals("this.none()", element.getValue()); } catch (Exception e) { e.printStackTrace(); }