You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by mb...@apache.org on 2011/03/11 17:31:13 UTC
svn commit: r1080644 - in
/incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic:
DynamicClassValidator.java DynamicMetaGraphManagerImpl.java
DynamicValidationState.java DynamicValidatorContext.java
Author: mbenson
Date: Fri Mar 11 16:31:12 2011
New Revision: 1080644
URL: http://svn.apache.org/viewvc?rev=1080644&view=rev
Log:
simplify and make static DynamicValidationState ThreadLocal management; the whole interface is package-private so we can go for efficiency rather than worry about a sexy API
Modified:
incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicClassValidator.java
incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java
incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidationState.java
incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidatorContext.java
Modified: incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicClassValidator.java
URL: http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicClassValidator.java?rev=1080644&r1=1080643&r2=1080644&view=diff
==============================================================================
--- incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicClassValidator.java (original)
+++ incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicClassValidator.java Fri Mar 11 16:31:12 2011
@@ -60,7 +60,7 @@ public class DynamicClassValidator exten
try {
return super.validate(object, groups);
} finally {
- factoryContext().clearValidationState();
+ DynamicValidationState.CURRENT.remove();
}
}
@@ -72,7 +72,7 @@ public class DynamicClassValidator exten
try {
return super.validateProperty(object, propertyName, cascade, groups);
} finally {
- factoryContext().clearValidationState();
+ DynamicValidationState.CURRENT.remove();
}
}
@@ -84,7 +84,7 @@ public class DynamicClassValidator exten
try {
return super.validateValue(beanType, propertyName, value, cascade, groups);
} finally {
- factoryContext().clearValidationState();
+ DynamicValidationState.CURRENT.remove();
}
}
@@ -104,7 +104,7 @@ public class DynamicClassValidator exten
protected <T> GroupValidationContext<T> createContext(MetaBean metaBean, T object, Class<T> objectClass,
Class<?>... groups) {
GroupValidationContext<T> result = super.createContext(metaBean, object, objectClass, groups);
- factoryContext().register(new GroupValidationContextValidationState(object, result));
+ DynamicValidationState.CURRENT.set(new GroupValidationContextValidationState(object, result));
return result;
}
@@ -180,7 +180,7 @@ public class DynamicClassValidator exten
}
return new DynamicPropertyDescriptorImpl(metaBean, propertyName, propertyType, cascaded, validations);
} finally {
- factoryContext().clearValidationState();
+ DynamicValidationState.CURRENT.remove();
}
}
Modified: incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java?rev=1080644&r1=1080643&r2=1080644&view=diff
==============================================================================
--- incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java (original)
+++ incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicMetaGraphManagerImpl.java Fri Mar 11 16:31:12 2011
@@ -498,8 +498,6 @@ final class DynamicMetaGraphManagerImpl
}
- final ThreadLocal<DynamicValidationState> currentValidationState = new ThreadLocal<DynamicValidationState>();
-
private final Logger log = LoggerFactory.getLogger(getClass());
private final Timestamped.Context timeContext = new Timestamped.Context();
@@ -541,7 +539,7 @@ final class DynamicMetaGraphManagerImpl
final Object rootBean;
final MetaBean rootMetaBean;
- DynamicValidationState validationState = currentValidationState.get();
+ DynamicValidationState validationState = DynamicValidationState.CURRENT.get();
if (validationState == null) {
initial = metaBeanFinder.findForClass(type);
path = PathImpl.create(null);
@@ -661,7 +659,7 @@ final class DynamicMetaGraphManagerImpl
Class<?> beanType = findType.rawType;
FeaturesCapable result;
- currentValidationState.set(new DynamicValidationStateBean(null, rootMetaBean, path));
+ DynamicValidationState.CURRENT.set(new DynamicValidationStateBean(null, rootMetaBean, path));
try {
result = getMetaBean(beanType);
if (propertyName != null) {
@@ -683,7 +681,7 @@ final class DynamicMetaGraphManagerImpl
}
return (T) result;
} finally {
- currentValidationState.remove();
+ DynamicValidationState.CURRENT.remove();
}
}
});
Modified: incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidationState.java
URL: http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidationState.java?rev=1080644&r1=1080643&r2=1080644&view=diff
==============================================================================
--- incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidationState.java (original)
+++ incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidationState.java Fri Mar 11 16:31:12 2011
@@ -25,6 +25,12 @@ import org.apache.bval.model.MetaBean;
* @version $Rev$ $Date$
*/
interface DynamicValidationState {
+
+ /**
+ * ThreadLocal to manage instances.
+ */
+ static final ThreadLocal<DynamicValidationState> CURRENT = new ThreadLocal<DynamicValidationState>();
+
/**
* Get the root bean being validated.
* @return Object
Modified: incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidatorContext.java
URL: http://svn.apache.org/viewvc/incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidatorContext.java?rev=1080644&r1=1080643&r2=1080644&view=diff
==============================================================================
--- incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidatorContext.java (original)
+++ incubator/bval/sandbox/lang3-work/bval-jsr303d/src/main/java/org/apache/bval/jsr303/dynamic/DynamicValidatorContext.java Fri Mar 11 16:31:12 2011
@@ -105,7 +105,7 @@ public class DynamicValidatorContext ext
*
* @param beanType
* @param constraintCollectionManipulator
- * @return whether applying the specified annotation resulted in a change
+ * @return whether applying the specified annotation resulted in a change
*/
public final boolean constrain(Class<?> beanType, Annotation constraint) {
return constrain(beanType, null, constraint);
@@ -117,7 +117,7 @@ public class DynamicValidatorContext ext
* @param beanType
* @param propertyPath
* @param constraintCollectionManipulator
- * @return whether applying the specified annotation resulted in a change
+ * @return whether applying the specified annotation resulted in a change
*/
public boolean constrain(Class<?> beanType, String propertyPath, Annotation annotation) {
return metaGraphManager.constrain(beanType, propertyPath, annotation);
@@ -160,22 +160,4 @@ public class DynamicValidatorContext ext
return new DynamicMetaBeanFinder(getFactory().metaBeanFinder);
}
- /**
- * Register a {@link DynamicValidationState} instance to the current thread. Etiquette requires the caller to clear
- * the instance when no longer needed.
- *
- * @param validationState
- * @see #clearValidationState()
- */
- void register(DynamicValidationState validationState) {
- metaGraphManager.currentValidationState.set(validationState);
- }
-
- /**
- * Clear the registered {@link DynamicValidationState}.
- */
- void clearValidationState() {
- metaGraphManager.currentValidationState.remove();
- }
-
}