Author: mbenson
Date: Fri May 26 18:33:14 2017
New Revision: 1796322
URL: http://svn.apache.org/viewvc?rev=1796322&view=rev
Log:
consolidate ConstraintViolationBuilder implementation
Removed:
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/NodeBuilderCustomizableContextImpl.java
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/NodeContextBuilderImpl.java
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderDefinedContextImpl.java
Modified:
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorContextImpl.java
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderCustomizableContextImpl.java
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderCustomizableContextImpl.java
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderDefinedContextImpl.java
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeContextBuilderImpl.java
Modified:
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorContextImpl.java
URL:
http://svn.apache.org/viewvc/bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorContextImpl.java?rev=1796322&r1=1796321&r2=1796322&view=diff
==============================================================================
---
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorContextImpl.java
(original)
+++
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidatorContextImpl.java
Fri May 26 18:33:14 2017
@@ -19,6 +19,7 @@
package org.apache.bval.jsr;
import org.apache.bval.jsr.util.LeafNodeBuilderCustomizableContextImpl;
+import org.apache.bval.jsr.util.NodeBuilderCustomizableContextImpl;
import org.apache.bval.jsr.util.NodeBuilderDefinedContextImpl;
import org.apache.bval.jsr.util.NodeImpl;
import org.apache.bval.jsr.util.PathImpl;
@@ -26,7 +27,6 @@ import org.apache.bval.model.ValidationL
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
-import javax.validation.ElementKind;
import javax.validation.Path;
import javax.validation.ValidationException;
import java.lang.reflect.Method;
@@ -125,28 +125,11 @@ public class ConstraintValidatorContextI
@Override
public NodeBuilderCustomizableContext addPropertyNode(String name) {
- final NodeImpl node;
- if (!propertyPath.isRootPath()) {
- if (propertyPath.getLeafNode().getKind() != null) {
- node = new NodeImpl.PropertyNodeImpl(name);
- propertyPath.addNode(node);
- } else {
- node = propertyPath.getLeafNode();
- }
- } else {
- node = new NodeImpl.PropertyNodeImpl(name);
- propertyPath.addNode(node);
- }
- node.setName(name);
- node.setKind(ElementKind.PROPERTY); // enforce it
- return new NodeBuilderCustomizableContextImpl(parent,
messageTemplate, propertyPath);
+ return new NodeBuilderCustomizableContextImpl(parent,
messageTemplate, propertyPath, name);
}
@Override
public LeafNodeBuilderCustomizableContext addBeanNode() {
- final NodeImpl node = new NodeImpl.BeanNodeImpl();
- node.setKind(ElementKind.BEAN);
- propertyPath.addNode(node);
return new LeafNodeBuilderCustomizableContextImpl(parent,
messageTemplate, propertyPath);
}
@@ -156,8 +139,6 @@ public class ConstraintValidatorContextI
final List<String> parameters =
parent.validationContext.getParameterNameProvider().getParameterNames(method);
final NodeImpl node = new
NodeImpl.ParameterNodeImpl(parameters.get(index), index);
- node.setParameterIndex(index);
- node.setKind(ElementKind.PARAMETER);
if (!propertyPath.isRootPath()) {
propertyPath.removeLeafNode();
}
Modified:
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderCustomizableContextImpl.java
URL:
http://svn.apache.org/viewvc/bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderCustomizableContextImpl.java?rev=1796322&r1=1796321&r2=1796322&view=diff
==============================================================================
---
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderCustomizableContextImpl.java
(original)
+++
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/LeafNodeBuilderCustomizableContextImpl.java
Fri May 26 18:33:14 2017
@@ -21,10 +21,40 @@ package org.apache.bval.jsr.util;
import org.apache.bval.jsr.ConstraintValidatorContextImpl;
import javax.validation.ConstraintValidatorContext;
-import javax.validation.ElementKind;
+import
javax.validation.ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeBuilderDefinedContext;
+import
javax.validation.ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeContextBuilder;
public class LeafNodeBuilderCustomizableContextImpl
implements
ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeBuilderCustomizableContext
{
+
+ private final class LeafNodeContextBuilderImpl implements
LeafNodeContextBuilder {
+ private final LeafNodeBuilderDefinedContext definedContext = new
LeafNodeBuilderDefinedContext() {
+
+ @Override
+ public ConstraintValidatorContext addConstraintViolation() {
+ return
LeafNodeBuilderCustomizableContextImpl.this.addConstraintViolation();
+ }
+ };
+
+ @Override
+ public LeafNodeBuilderDefinedContext atKey(Object key) {
+ node.setKey(key);
+ return definedContext;
+ }
+
+ @Override
+ public LeafNodeBuilderDefinedContext atIndex(
+ Integer index) {
+ node.setIndex(index);
+ return definedContext;
+ }
+
+ @Override
+ public ConstraintValidatorContext addConstraintViolation() {
+ return
LeafNodeBuilderCustomizableContextImpl.this.addConstraintViolation();
+ }
+ }
+
private final ConstraintValidatorContextImpl context;
private final PathImpl path;
private final String template;
@@ -35,41 +65,20 @@ public class LeafNodeBuilderCustomizable
context = parent;
template = messageTemplate;
path = propertyPath;
- node = new NodeImpl((String) null);
- node.setKind(ElementKind.BEAN);
+ node = new NodeImpl.BeanNodeImpl();
}
@Override
- public
ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeContextBuilder
inIterable() {
- path.getLeafNode().setInIterable(true);
+ public LeafNodeContextBuilder inIterable() {
+ node.setInIterable(true);
return new LeafNodeContextBuilderImpl();
}
@Override
public ConstraintValidatorContext addConstraintViolation() {
+ path.addNode(node);
context.addError(template, path);
return context;
}
- private class LeafNodeContextBuilderImpl
- implements
ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeContextBuilder {
- @Override
- public
ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeBuilderDefinedContext
atKey(Object key) {
- path.getLeafNode().setKey(key);
- return new LeafNodeBuilderDefinedContextImpl(context, template,
path);
- }
-
- @Override
- public
ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeBuilderDefinedContext
atIndex(
- Integer index) {
- path.getLeafNode().setIndex(index);
- return new LeafNodeBuilderDefinedContextImpl(context, template,
path);
- }
-
- @Override
- public ConstraintValidatorContext addConstraintViolation() {
- context.addError(template, path);
- return context;
- }
- }
}
Modified:
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderCustomizableContextImpl.java
URL:
http://svn.apache.org/viewvc/bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderCustomizableContextImpl.java?rev=1796322&r1=1796321&r2=1796322&view=diff
==============================================================================
---
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderCustomizableContextImpl.java
(original)
+++
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderCustomizableContextImpl.java
Fri May 26 18:33:14 2017
@@ -26,7 +26,7 @@ import javax.validation.ElementKind;
/**
* Description: implementation of {@link
javax.validation.ConstraintValidatorContext.ConstraintViolationBuilder.NodeBuilderCustomizableContext}.<br/>
*/
-final class NodeBuilderCustomizableContextImpl
+public final class NodeBuilderCustomizableContextImpl
implements
ConstraintValidatorContext.ConstraintViolationBuilder.NodeBuilderCustomizableContext
{
private final ConstraintValidatorContextImpl parent;
private final String messageTemplate;
@@ -40,13 +40,19 @@ final class NodeBuilderCustomizableConte
* @param path
* @param name
*/
- NodeBuilderCustomizableContextImpl(ConstraintValidatorContextImpl
contextImpl, String template, PathImpl path,
+ public NodeBuilderCustomizableContextImpl(ConstraintValidatorContextImpl
contextImpl, String template, PathImpl path,
String name) {
parent = contextImpl;
messageTemplate = template;
propertyPath = path;
- node = new NodeImpl(name);
- node.setKind(ElementKind.PROPERTY);
+
+ if (propertyPath.isRootPath() || propertyPath.getLeafNode().getKind()
!= null) {
+ node = new NodeImpl.PropertyNodeImpl(name);
+ } else {
+ node = propertyPath.removeLeafNode();
+ node.setName(name);
+ node.setKind(ElementKind.PROPERTY); // enforce it
+ }
}
/**
@@ -54,7 +60,6 @@ final class NodeBuilderCustomizableConte
*/
@Override
public
ConstraintValidatorContext.ConstraintViolationBuilder.NodeContextBuilder
inIterable() {
- // Modifies the "previous" node in the path
node.setInIterable(true);
return new NodeContextBuilderImpl(parent, messageTemplate,
propertyPath, node);
}
@@ -64,9 +69,7 @@ final class NodeBuilderCustomizableConte
*/
@Override
public
ConstraintValidatorContext.ConstraintViolationBuilder.NodeBuilderCustomizableContext
addNode(String name) {
- propertyPath.addNode(node);
- node = new NodeImpl(name);
- return this; // Re-use this instance
+ return addPropertyNode(name);
}
@Override
@@ -74,15 +77,12 @@ final class NodeBuilderCustomizableConte
String name) {
propertyPath.addNode(node);
node = new NodeImpl.PropertyNodeImpl(name);
- node.setKind(ElementKind.PROPERTY);
- return null;
+ return this;
}
@Override
public
ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeBuilderCustomizableContext
addBeanNode() {
propertyPath.addNode(node);
- node = new NodeImpl((String) null);
- node.setKind(ElementKind.BEAN);
return new LeafNodeBuilderCustomizableContextImpl(parent,
messageTemplate, propertyPath);
}
Modified:
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderDefinedContextImpl.java
URL:
http://svn.apache.org/viewvc/bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderDefinedContextImpl.java?rev=1796322&r1=1796321&r2=1796322&view=diff
==============================================================================
---
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderDefinedContextImpl.java
(original)
+++
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeBuilderDefinedContextImpl.java
Fri May 26 18:33:14 2017
@@ -21,7 +21,6 @@ package org.apache.bval.jsr.util;
import org.apache.bval.jsr.ConstraintValidatorContextImpl;
import javax.validation.ConstraintValidatorContext;
-import javax.validation.ElementKind;
/**
* Description: Implementation of {@link NodeBuilderDefinedContext}.<br/>
@@ -49,8 +48,7 @@ public final class NodeBuilderDefinedCon
*/
@Override
public
ConstraintValidatorContext.ConstraintViolationBuilder.NodeBuilderCustomizableContext
addNode(String name) {
- // Node not yet added, wait until more information is provided
- return new NodeBuilderCustomizableContextImpl(parent, messageTemplate,
propertyPath, name);
+ return addPropertyNode(name);
}
@Override
@@ -61,9 +59,6 @@ public final class NodeBuilderDefinedCon
@Override
public
ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeBuilderCustomizableContext
addBeanNode() {
- final NodeImpl node = new NodeImpl((String) null);
- node.setKind(ElementKind.BEAN);
- propertyPath.addNode(node);
return new LeafNodeBuilderCustomizableContextImpl(parent,
messageTemplate, propertyPath);
}
Modified:
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeContextBuilderImpl.java
URL:
http://svn.apache.org/viewvc/bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeContextBuilderImpl.java?rev=1796322&r1=1796321&r2=1796322&view=diff
==============================================================================
---
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeContextBuilderImpl.java
(original)
+++
bval/trunk/bval-jsr/src/main/java/org/apache/bval/jsr/util/NodeContextBuilderImpl.java
Fri May 26 18:33:14 2017
@@ -72,19 +72,19 @@ final class NodeContextBuilderImpl imple
*/
@Override
public
ConstraintValidatorContext.ConstraintViolationBuilder.NodeBuilderCustomizableContext
addNode(String name) {
- propertyPath.addNode(node);
- return new NodeBuilderCustomizableContextImpl(parent, messageTemplate,
propertyPath, name);
+ return addPropertyNode(name);
}
@Override
public
ConstraintValidatorContext.ConstraintViolationBuilder.NodeBuilderCustomizableContext
addPropertyNode(
String name) {
- propertyPath.addProperty(name);
- return new NodeBuilderCustomizableContextImpl(parent, messageTemplate,
propertyPath, node.getName());
+ propertyPath.addNode(node);
+ return new NodeBuilderCustomizableContextImpl(parent, messageTemplate,
propertyPath, name);
}
@Override
public
ConstraintValidatorContext.ConstraintViolationBuilder.LeafNodeBuilderCustomizableContext
addBeanNode() {
+ propertyPath.addNode(node);
return new LeafNodeBuilderCustomizableContextImpl(parent,
messageTemplate, propertyPath);
}