diff --git a/transponder-core/src/main/java/org/orienteer/transponder/BuilderScheduler.java b/transponder-core/src/main/java/org/orienteer/transponder/BuilderScheduler.java index 481469b..780983d 100644 --- a/transponder-core/src/main/java/org/orienteer/transponder/BuilderScheduler.java +++ b/transponder-core/src/main/java/org/orienteer/transponder/BuilderScheduler.java @@ -234,7 +234,7 @@ private DynamicType.Builder enhanceCasesByOverrides(DynamicType.Builderm.asSignatureToken(), m->m, (k1, k2) -> k1)); List casesToAdd = type.getInterfaces().stream() .flatMap(i->CommonUtils.getMethodDescriptionList(i).stream()) - .filter(OverrideByThis.ANNOTED_BY_THIS_MATCHER::matches) + .filter(OverrideByThis.ANNOTATED_BY_THIS_MATCHER::matches) .filter(m -> { //Checking that original method is present per signature //and that it's not exactly the same method as we are trying to use to override diff --git a/transponder-core/src/main/java/org/orienteer/transponder/CommonUtils.java b/transponder-core/src/main/java/org/orienteer/transponder/CommonUtils.java index 520bf03..d0f7984 100644 --- a/transponder-core/src/main/java/org/orienteer/transponder/CommonUtils.java +++ b/transponder-core/src/main/java/org/orienteer/transponder/CommonUtils.java @@ -509,10 +509,22 @@ public boolean matches(T target) { }; } + /** + * Provides {@link ElementMatcher} to check whether methods are similiar from provided type + * @param type of a required matcher + * @param type class to check methods from + * @return mathcher to use for check + */ public ElementMatcher isSimiliarToMethodIn(Class type) { return isSimiliarToMethodIn(TypeDescription.ForLoadedType.of(type)); } + /** + * Provides {@link ElementMatcher} to check whether methods are similiar from provided type + * @param type of a required matcher + * @param type class to check methods from + * @return mathcher to use for check + */ public ElementMatcher isSimiliarToMethodIn(TypeDescription type) { return new ElementMatcher.Junction.AbstractBase() { @@ -523,10 +535,22 @@ public boolean matches(T target) { }; } + /** + * Provides {@link ElementMatcher} to check whether method is present in provided type + * @param type of a required matcher + * @param type class to check method in + * @return mathcher to use for check + */ public ElementMatcher isMethodPresent(Class type) { return isMethodPresent(TypeDescription.ForLoadedType.of(type)); } + /** + * Provides {@link ElementMatcher} to check whether method is present in provided type + * @param type of a required matcher + * @param type class to check method in + * @return mathcher to use for check + */ public ElementMatcher isMethodPresent(TypeDescription type) { return new ElementMatcher.Junction.AbstractBase() { diff --git a/transponder-core/src/main/java/org/orienteer/transponder/ProxyType.java b/transponder-core/src/main/java/org/orienteer/transponder/ProxyType.java index 780f5f6..f9da15b 100644 --- a/transponder-core/src/main/java/org/orienteer/transponder/ProxyType.java +++ b/transponder-core/src/main/java/org/orienteer/transponder/ProxyType.java @@ -5,6 +5,9 @@ import org.orienteer.transponder.Transponder.ITransponderHolder; import org.orienteer.transponder.mutator.StackedMutator; +/** + * ByteBuddy proxy type to use + */ public enum ProxyType { ENTITY("entity", ITransponderEntity.class, StackedMutator.ENTITY_MUTATOR), DAO("dao", ITransponderHolder.class, StackedMutator.DAO_MUTATOR), @@ -21,14 +24,26 @@ public enum ProxyType { this.rootMutator = rootMutator; } + /** + * Provides default suffix for ByteBuddy generated classes + * @return default suffix for ByteBuddy generated classes + */ public String getDefaultPackageSuffix() { return packageSuffix; } + /** + * Provides required Transponder Interface to be implemented + * @return required Transponder Interface to be implemented + */ public Class getTransponderInterfaceToImplement() { return transponderInterfaceToImplement; } + /** + * Provides Root Mutator for current proxy type + * @return Root Mutator for current proxy type + */ public IMutator getRootMutator() { return rootMutator; } diff --git a/transponder-core/src/main/java/org/orienteer/transponder/Transponder.java b/transponder-core/src/main/java/org/orienteer/transponder/Transponder.java index 02c8a2e..5e6838c 100644 --- a/transponder-core/src/main/java/org/orienteer/transponder/Transponder.java +++ b/transponder-core/src/main/java/org/orienteer/transponder/Transponder.java @@ -92,6 +92,10 @@ public static interface ITransponderEntity extends ITransponderHolder{ } + /** + * Interface-marker to designate classes which delegates + * @param type of a delegate + */ public static interface ITransponderDelegator extends ITransponderHolder{ //CHECKSTYLE IGNORE MethodName FOR NEXT 8 LINES /** @@ -419,6 +423,13 @@ public T dao(Class mainClass, final Class... additionalInterfaces) { return setTransponder(driver.newDAOInstance(getProxyClass(Object.class, mainClass, ProxyType.DAO, additionalInterfaces))); } + /** + * Provides proxy delegate with all required interfaces + * @param type of proxy delegate + * @param delegate instance to delegate to + * @param additionalInterfaces additional interfaces to be implemented + * @return generated instance + */ public T delegate(T delegate, final Class... additionalInterfaces) { Class delegateClass = (Class)delegate.getClass(); Class proxyClass = getProxyClass(delegateClass, delegateClass, ProxyType.DELEGATE, additionalInterfaces); diff --git a/transponder-core/src/main/java/org/orienteer/transponder/annotation/OverrideByThis.java b/transponder-core/src/main/java/org/orienteer/transponder/annotation/OverrideByThis.java index 833ae41..f604e12 100644 --- a/transponder-core/src/main/java/org/orienteer/transponder/annotation/OverrideByThis.java +++ b/transponder-core/src/main/java/org/orienteer/transponder/annotation/OverrideByThis.java @@ -10,10 +10,13 @@ import net.bytebuddy.matcher.ElementMatcher; import net.bytebuddy.matcher.ElementMatchers; +/** + * Annotation for methods to enforce overriding by this method + */ @Retention(RUNTIME) @Target(METHOD) public @interface OverrideByThis { - public static final ElementMatcher ANNOTED_BY_THIS_MATCHER + public static final ElementMatcher ANNOTATED_BY_THIS_MATCHER = ElementMatchers.isAnnotatedWith(OverrideByThis.class); } diff --git a/transponder-core/src/main/java/org/orienteer/transponder/mutator/DelegatorMutator.java b/transponder-core/src/main/java/org/orienteer/transponder/mutator/DelegatorMutator.java index cf3d6b0..6ee54a2 100644 --- a/transponder-core/src/main/java/org/orienteer/transponder/mutator/DelegatorMutator.java +++ b/transponder-core/src/main/java/org/orienteer/transponder/mutator/DelegatorMutator.java @@ -4,6 +4,7 @@ import org.orienteer.transponder.CommonUtils; import org.orienteer.transponder.IMutator; import org.orienteer.transponder.Transponder; +import org.orienteer.transponder.annotation.Command; import net.bytebuddy.description.type.TypeDescription; import net.bytebuddy.description.type.TypeDescription.Generic; @@ -15,6 +16,9 @@ import static net.bytebuddy.matcher.ElementMatchers.*; +/** + * {@link IMutator} and delegate to implement methods from provided delegate + */ public class DelegatorMutator implements IMutator { @Override