Skip to content

Commit a95c23b

Browse files
committed
Minoir refactorings
1 parent a95c009 commit a95c23b

File tree

7 files changed

+44
-8
lines changed

7 files changed

+44
-8
lines changed
Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,20 @@
1616
*/
1717
package org.apache.commons.javaflow.spi;
1818

19+
import java.util.Arrays;
1920
import java.util.Collection;
21+
import java.util.List;
2022

2123
/**
2224
* {@link ResourceTransformer} whose transformation is defined in terms of
2325
* multiple {@link ResourceTransformer}s.
2426
*
2527
* @author Kohsuke Kawaguchi
2628
*/
27-
public class CompositeTransformer extends AbstractResourceTransformer {
29+
public class CompositeResourceTransformer extends AbstractResourceTransformer {
2830
private final ResourceTransformer[] transformers;
2931

30-
public CompositeTransformer(ResourceTransformer[] transformers) {
32+
public CompositeResourceTransformer(ResourceTransformer[] transformers) {
3133
this.transformers = transformers;
3234
}
3335

@@ -46,4 +48,32 @@ public void release() {
4648
transformer.release();
4749
}
4850
}
51+
52+
public static ResourceTransformationFactory composeFactories(ResourceTransformationFactory... factories) {
53+
return composeFactories(Arrays.asList(factories));
54+
}
55+
56+
public static ResourceTransformationFactory composeFactories(final List<ResourceTransformationFactory> factories) {
57+
return new ResourceTransformationFactory() {
58+
59+
@Override
60+
public String readClassName(byte[] classBytes) {
61+
if (factories.isEmpty()) {
62+
throw new IllegalStateException("No factories to perform operation");
63+
} else {
64+
return factories.get(0).readClassName(classBytes);
65+
}
66+
}
67+
68+
@Override
69+
public ResourceTransformer createTransformer(ResourceLoader resourceLoader) {
70+
ResourceTransformer[] transformers = new ResourceTransformer[factories.size()];
71+
int idx = 0;
72+
for (ResourceTransformationFactory factory : factories) {
73+
transformers[idx++] = factory.createTransformer(resourceLoader);
74+
}
75+
return new CompositeResourceTransformer(transformers);
76+
}
77+
};
78+
}
4979
}

net.tascalate.javaflow.tools.cdi-javaagent/src/main/java/org/apache/commons/javaflow/instrumentation/cdi/cglib/CGLibProxyClassProcessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
import net.tascalate.asmx.Type;
2020
import net.tascalate.asmx.commons.Method;
2121

22+
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
23+
2224
import org.apache.commons.javaflow.instrumentation.cdi.ProxyClassProcessor;
2325
import org.apache.commons.javaflow.instrumentation.cdi.common.ProxiedMethodAdvice;
24-
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
2526

2627
public class CGLibProxyClassProcessor extends ProxyClassProcessor {
2728

net.tascalate.javaflow.tools.cdi-javaagent/src/main/java/org/apache/commons/javaflow/instrumentation/cdi/cproxy/CustomProxyClassProcessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
import net.tascalate.asmx.Type;
2020
import net.tascalate.asmx.commons.Method;
2121

22+
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
23+
2224
import org.apache.commons.javaflow.instrumentation.cdi.ProxyClassProcessor;
2325
import org.apache.commons.javaflow.instrumentation.cdi.common.ProxiedMethodAdvice;
24-
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
2526

2627
public class CustomProxyClassProcessor extends ProxyClassProcessor {
2728

net.tascalate.javaflow.tools.cdi-javaagent/src/main/java/org/apache/commons/javaflow/instrumentation/cdi/jproxy/JavaProxyClassProcessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
import net.tascalate.asmx.Type;
2020
import net.tascalate.asmx.commons.Method;
2121

22+
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
23+
2224
import org.apache.commons.javaflow.instrumentation.cdi.ProxyClassProcessor;
2325
import org.apache.commons.javaflow.instrumentation.cdi.common.ProxiedMethodAdvice;
24-
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
2526

2627
public class JavaProxyClassProcessor extends ProxyClassProcessor {
2728

net.tascalate.javaflow.tools.cdi-javaagent/src/main/java/org/apache/commons/javaflow/instrumentation/cdi/owb/OwbProxyClassProcessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
import net.tascalate.asmx.MethodVisitor;
2020
import net.tascalate.asmx.Type;
2121

22+
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
23+
2224
import org.apache.commons.javaflow.instrumentation.cdi.ExtendedClassVisitor;
2325
import org.apache.commons.javaflow.instrumentation.cdi.ProxyClassProcessor;
24-
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
2526

2627
public class OwbProxyClassProcessor extends ProxyClassProcessor {
2728
private Type owbProxiedInstanceType;

net.tascalate.javaflow.tools.cdi-javaagent/src/main/java/org/apache/commons/javaflow/instrumentation/cdi/spring/SpringProxyClassProcessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
import net.tascalate.asmx.Type;
2020
import net.tascalate.asmx.commons.Method;
2121

22+
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
23+
2224
import org.apache.commons.javaflow.instrumentation.cdi.ProxyClassProcessor;
2325
import org.apache.commons.javaflow.instrumentation.cdi.common.ProxiedMethodAdvice;
24-
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
2526

2627
public class SpringProxyClassProcessor extends ProxyClassProcessor {
2728

net.tascalate.javaflow.tools.cdi-javaagent/src/main/java/org/apache/commons/javaflow/instrumentation/cdi/weld/WeldProxyClassProcessor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,11 @@
2020
import net.tascalate.asmx.Type;
2121
import net.tascalate.asmx.commons.Method;
2222

23+
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
24+
2325
import org.apache.commons.javaflow.instrumentation.cdi.ExtendedClassVisitor;
2426
import org.apache.commons.javaflow.instrumentation.cdi.ProxyClassProcessor;
2527
import org.apache.commons.javaflow.instrumentation.cdi.common.ProxiedMethodAdvice;
26-
import org.apache.commons.javaflow.providers.asmx.ContinuableClassInfo;
2728

2829
public class WeldProxyClassProcessor extends ProxyClassProcessor {
2930

0 commit comments

Comments
 (0)