You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2006/08/05 00:02:52 UTC
svn commit: r428897 -
/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
Author: ppoddar
Date: Fri Aug 4 15:02:51 2006
New Revision: 428897
URL: http://svn.apache.org/viewvc?rev=428897&view=rev
Log:
changed auxiliary enhancer interface
Modified:
incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
Modified: incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java
URL: http://svn.apache.org/viewvc/incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java?rev=428897&r1=428896&r2=428897&view=diff
==============================================================================
--- incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java (original)
+++ incubator/openjpa/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/enhance/PCEnhancer.java Fri Aug 4 15:02:51 2006
@@ -536,14 +536,12 @@
// look through all methods; this is done before any methods are added
// so we don't need to worry about excluding synthetic methods.
BCMethod[] methods = _pc.getDeclaredMethods();
- Set nonEnhancedMethods = getUnenhancedMethods();
Code code;
for (int i = 0; i < methods.length; i++) {
code = methods[i].getCode(false);
// don't modify the methods specified by the auxiliary enhancers
- if (code != null
- && !nonEnhancedMethods.contains(methods[i].getName())) {
+ if (code != null && !skipEnhance(methods[i])) {
replaceAndValidateFieldAccess(code, get, true, stat);
replaceAndValidateFieldAccess(code, put, false, stat);
}
@@ -2639,16 +2637,19 @@
auxEnhancers[i].run(_pc, _meta);
}
- private Set getUnenhancedMethods() {
- Set result = new HashSet();
+ /**
+ * Affirms if the given method be skipped.
+ *
+ * @param method method to be skipped or not
+ * @return true if any of the auxiliary enhancers skips the given method.
+ */
+ private boolean skipEnhance(BCMethod method) {
AuxiliaryEnhancer[] auxEnhancers = getAuxiliaryEnhancers();
for (int i = 0; i < auxEnhancers.length; i++) {
- Set contrib = auxEnhancers[i].getUnenhancedMethods();
- if (contrib != null || !contrib.isEmpty()) {
- result.addAll(contrib);
- }
+ if (auxEnhancers[i].skipEnhance(method))
+ return true;
}
- return result;
+ return false;
}
/**
@@ -3509,6 +3510,6 @@
public static interface AuxiliaryEnhancer
{
public void run (BCClass bc, ClassMetaData meta);
- public Set getUnenhancedMethods();
+ public boolean skipEnhance(BCMethod m);
}
}