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 86bae1b..9d78472 100644 --- a/lib/src/main/java/net/tomatentum/cutin/container/LoneMethodContainer.java +++ b/lib/src/main/java/net/tomatentum/cutin/container/LoneMethodContainer.java @@ -29,6 +29,10 @@ public class LoneMethodContainer implements @Override public MethodContainer addMethod(ReflectedMethod method) { + if (this.methodStore.keySet().contains(method.identifier())) { + logger.warn("Could not add {} to container because the same identifier was already present.", method); + return this; + } this.methodStore.put(method.identifier(), method); logger.debug("Added {} to container", method); return this; 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 56f5574..22e3d2c 100644 --- a/lib/src/main/java/net/tomatentum/cutin/method/BestCandidateMethod.java +++ b/lib/src/main/java/net/tomatentum/cutin/method/BestCandidateMethod.java @@ -5,14 +5,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Objects; -import java.util.Optional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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 { @@ -70,27 +66,5 @@ public abstract class BestCandidateMethod ex } return parameters; } - - public abstract static class Factory implements ReflectedMethodFactory.Factory { - - private MethodContainer methodContainer; - private String methodName; - - protected Factory(MethodContainer methodContainer, String methodName) { - this.methodContainer = methodContainer; - this.methodName = methodName; - } - - @Override - public Optional> produce(Method method, Object containingObject, ParserResults results) { - Optional> bcMethod = bcProduce(methodName, containingObject, results); - if (bcMethod.isEmpty() || methodContainer.methods().contains(bcMethod.get())) - return Optional.empty(); - return Optional.of(bcMethod.get()); - } - - protected abstract Optional> bcProduce(String methodName, Object containingObject, ParserResults results); - - } }