From 4dd7b70f40615031949cb9b90a2c90e860926e47 Mon Sep 17 00:00:00 2001 From: tueem Date: Wed, 30 Apr 2025 12:56:48 +0200 Subject: [PATCH] refactor(factory): move to own package and add factories getter --- .../cutin/container/LoneMethodContainer.java | 2 +- .../cutin/container/MultiMethodContainer.java | 2 +- .../{ => factory}/ReflectedMethodFactory.java | 4 +++- .../ReflectedMethodFactoryImpl.java | 17 ++++++++++------- .../cutin/method/BestCandidateMethod.java | 4 ++-- 5 files changed, 17 insertions(+), 12 deletions(-) rename lib/src/main/java/net/tomatentum/cutin/{ => factory}/ReflectedMethodFactory.java (90%) rename lib/src/main/java/net/tomatentum/cutin/{ => factory}/ReflectedMethodFactoryImpl.java (85%) diff --git a/lib/src/main/java/net/tomatentum/cutin/container/LoneMethodContainer.java b/lib/src/main/java/net/tomatentum/cutin/container/LoneMethodContainer.java index b0807db..86bae1b 100644 --- a/lib/src/main/java/net/tomatentum/cutin/container/LoneMethodContainer.java +++ b/lib/src/main/java/net/tomatentum/cutin/container/LoneMethodContainer.java @@ -12,7 +12,7 @@ import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import net.tomatentum.cutin.ReflectedMethodFactory; +import net.tomatentum.cutin.factory.ReflectedMethodFactory; import net.tomatentum.cutin.method.ReflectedMethod; public class LoneMethodContainer implements MethodContainer { diff --git a/lib/src/main/java/net/tomatentum/cutin/container/MultiMethodContainer.java b/lib/src/main/java/net/tomatentum/cutin/container/MultiMethodContainer.java index ce7cadb..a1968b7 100644 --- a/lib/src/main/java/net/tomatentum/cutin/container/MultiMethodContainer.java +++ b/lib/src/main/java/net/tomatentum/cutin/container/MultiMethodContainer.java @@ -10,7 +10,7 @@ import java.util.stream.Collectors; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import net.tomatentum.cutin.ReflectedMethodFactory; +import net.tomatentum.cutin.factory.ReflectedMethodFactory; import net.tomatentum.cutin.method.ReflectedMethod; import net.tomatentum.cutin.util.ReflectionUtil; diff --git a/lib/src/main/java/net/tomatentum/cutin/ReflectedMethodFactory.java b/lib/src/main/java/net/tomatentum/cutin/factory/ReflectedMethodFactory.java similarity index 90% rename from lib/src/main/java/net/tomatentum/cutin/ReflectedMethodFactory.java rename to lib/src/main/java/net/tomatentum/cutin/factory/ReflectedMethodFactory.java index bf2e060..e7f1d5c 100644 --- a/lib/src/main/java/net/tomatentum/cutin/ReflectedMethodFactory.java +++ b/lib/src/main/java/net/tomatentum/cutin/factory/ReflectedMethodFactory.java @@ -1,16 +1,18 @@ -package net.tomatentum.cutin; +package net.tomatentum.cutin.factory; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Optional; import java.util.Set; +import net.tomatentum.cutin.MethodParser; import net.tomatentum.cutin.method.ReflectedMethod; public interface ReflectedMethodFactory { Optional> produce(Method method, Object containingClass); ReflectedMethodFactory addFactory(Factory factory); + Set> factories(); public interface Factory { diff --git a/lib/src/main/java/net/tomatentum/cutin/ReflectedMethodFactoryImpl.java b/lib/src/main/java/net/tomatentum/cutin/factory/ReflectedMethodFactoryImpl.java similarity index 85% rename from lib/src/main/java/net/tomatentum/cutin/ReflectedMethodFactoryImpl.java rename to lib/src/main/java/net/tomatentum/cutin/factory/ReflectedMethodFactoryImpl.java index ccde22d..48bdb12 100644 --- a/lib/src/main/java/net/tomatentum/cutin/ReflectedMethodFactoryImpl.java +++ b/lib/src/main/java/net/tomatentum/cutin/factory/ReflectedMethodFactoryImpl.java @@ -1,30 +1,28 @@ -package net.tomatentum.cutin; +package net.tomatentum.cutin.factory; import java.lang.reflect.Method; -import java.util.ArrayList; import java.util.HashSet; -import java.util.List; import java.util.Optional; import java.util.Set; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import net.tomatentum.cutin.MethodParser; import net.tomatentum.cutin.method.ReflectedMethod; import net.tomatentum.cutin.util.ReflectionUtil; - public class ReflectedMethodFactoryImpl implements ReflectedMethodFactory { private Logger logger = LoggerFactory.getLogger(getClass()); - private List> factories; + private Set> factories; public ReflectedMethodFactoryImpl() { - this(new ArrayList<>()); + this(new HashSet<>()); } - public ReflectedMethodFactoryImpl(List> factories) { + public ReflectedMethodFactoryImpl(Set> factories) { this.factories = factories; } @@ -51,6 +49,11 @@ public class ReflectedMethodFactoryImpl impl return this; } + @Override + public Set> factories() { + return this.factories; + } + private Optional> factoryProduce(Factory factory, Method method, Object containingClass) { Set parser = new HashSet<>(); factory.addParser(parser); diff --git a/lib/src/main/java/net/tomatentum/cutin/method/BestCandidateMethod.java b/lib/src/main/java/net/tomatentum/cutin/method/BestCandidateMethod.java index 722157e..56f5574 100644 --- a/lib/src/main/java/net/tomatentum/cutin/method/BestCandidateMethod.java +++ b/lib/src/main/java/net/tomatentum/cutin/method/BestCandidateMethod.java @@ -10,9 +10,9 @@ import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import net.tomatentum.cutin.ReflectedMethodFactory; -import net.tomatentum.cutin.ReflectedMethodFactory.ParserResults; import net.tomatentum.cutin.container.MethodContainer; +import net.tomatentum.cutin.factory.ReflectedMethodFactory; +import net.tomatentum.cutin.factory.ReflectedMethodFactory.ParserResults; import net.tomatentum.cutin.util.ReflectionUtil; public abstract class BestCandidateMethod extends ReflectedMethod {