From c719513510c4981deccb9bc288dde78391bb855d Mon Sep 17 00:00:00 2001 From: austin Date: Sat, 5 Apr 2025 18:41:52 -0400 Subject: [PATCH] create has method generator --- .../main/core/btree/methods/HasChecker.java | 55 +++++++++++++++++++ .../main/project/parsers/BTreeParser.java | 2 + src/main/resources/btree/EntityHasMethod.java | 10 ++++ 3 files changed, 67 insertions(+) create mode 100644 src/main/java/electrosphere/main/core/btree/methods/HasChecker.java create mode 100644 src/main/resources/btree/EntityHasMethod.java diff --git a/src/main/java/electrosphere/main/core/btree/methods/HasChecker.java b/src/main/java/electrosphere/main/core/btree/methods/HasChecker.java new file mode 100644 index 0000000..8baa6bf --- /dev/null +++ b/src/main/java/electrosphere/main/core/btree/methods/HasChecker.java @@ -0,0 +1,55 @@ +package electrosphere.main.core.btree.methods; + +import java.util.Arrays; +import java.util.List; + +import electrosphere.main.project.ProjectStructure; +import electrosphere.main.source.VirtualMethod; +import electrosphere.main.util.TemplateInjectionUtils; + +/** + * Check if btree is on entity + */ +public class HasChecker implements VirtualMethod { + + //The name of the btree + String name; + + //The classname of the btree + String className; + + /** + * Constructor + * @param name + * @param className + */ + public HasChecker(String name, String className){ + this.name = name; + this.className = className; + } + + @Override + public String getName(ProjectStructure projectStructure) { + String rVal = "has" + className; + return rVal; + } + + @Override + public String getContent(ProjectStructure projectStructure) { + String rVal = TemplateInjectionUtils.getFragmentWithReplacement("/btree/EntityHasMethod.java", this.className, "TREE_" + this.name.toUpperCase()); + return rVal; + } + + @Override + public List getImports(ProjectStructure projectStructure) { + List rVal = Arrays.asList(new String[]{ + }); + return rVal; + } + + @Override + public boolean shouldOverwrite(){ + return true; + } + +} diff --git a/src/main/java/electrosphere/main/project/parsers/BTreeParser.java b/src/main/java/electrosphere/main/project/parsers/BTreeParser.java index af1fecd..f82b2c1 100644 --- a/src/main/java/electrosphere/main/project/parsers/BTreeParser.java +++ b/src/main/java/electrosphere/main/project/parsers/BTreeParser.java @@ -17,6 +17,7 @@ import electrosphere.main.core.btree.methods.ClientInterrupt; import electrosphere.main.core.btree.methods.ClientStart; import electrosphere.main.core.btree.methods.Constructor; import electrosphere.main.core.btree.methods.Fetch; +import electrosphere.main.core.btree.methods.HasChecker; import electrosphere.main.core.btree.methods.ServerAttach; import electrosphere.main.core.btree.methods.ServerDetach; import electrosphere.main.targets.TargetFile; @@ -87,6 +88,7 @@ public class BTreeParser { rVal.addMethod(new Constructor(bTreeName, target.getSource().getName())); rVal.addMethod(new Fetch(bTreeName, target.getSource().getName())); + rVal.addMethod(new HasChecker(bTreeName, target.getSource().getName())); addOptionalMethods(mainAnnotation,rVal); diff --git a/src/main/resources/btree/EntityHasMethod.java b/src/main/resources/btree/EntityHasMethod.java new file mode 100644 index 0000000..edd048b --- /dev/null +++ b/src/main/resources/btree/EntityHasMethod.java @@ -0,0 +1,10 @@ +/** + *

+ * Checks if the entity has a REPLACE_0_ME component + *

+ * @param entity the entity + * @return true if the entity contains the component, false otherwise + */ +public static boolean hasREPLACE_0_ME(Entity entity){ + return entity.containsKey(EntityDataStrings.REPLACE_1_ME); +} \ No newline at end of file