Refactored validator implementation 16/31016/1
authorRyan Vail <r.vail@cablelabs.com>
Tue, 8 Dec 2015 14:45:19 +0000 (07:45 -0700)
committerRyan Vail <r.vail@cablelabs.com>
Tue, 8 Dec 2015 21:14:54 +0000 (14:14 -0700)
AbstractValidator now handles pre/post validate tasks and subclasses implement doValidate() for the validation.

Change-Id: Ia6d5cfe60ea8a37e87e55b478a1d802895822511
Signed-off-by: Ryan Vail <r.vail@cablelabs.com>
19 files changed:
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/AbstractValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/AmIdValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/CcapValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/CcapsValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/ccaps/ConnectionValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/AppValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/AppsValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GateSpecValidatator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GateValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/GatesValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/SubscriberValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/SubscribersValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/TrafficProfileValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierChoiceValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierContainerValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifierValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ClassifiersValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/ExtClassifierValidator.java
packetcable-policy-server/src/main/java/org/opendaylight/controller/packetcable/provider/validation/impl/validators/qos/classifier/Ipv6ClassifierValidator.java

index b2bd654b1421bdaeb0379a4259fe4ec36f94f7bc..4063fa28816aefc52139614d00d984903bc1fb9d 100644 (file)
@@ -8,6 +8,8 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators;
 
+import static com.google.common.base.Preconditions.checkNotNull;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import javax.annotation.concurrent.NotThreadSafe;
@@ -99,4 +101,15 @@ public abstract class AbstractValidator<T> implements Validator<T> {
             getErrorMessages().addAll(e.getErrorMessages());
         }
     }
+
+    @Override
+    public void validate(final T data, final Extent extent) throws ValidationException {
+        checkNotNull(extent);
+
+        doValidate(data, extent);
+
+        throwErrorsIfNeeded();
+    }
+
+    protected abstract void doValidate(final T data, final Extent extent);
 }
index b16edab2913608d32b319df3e9f8fbb5827cd60b..0c0638c68eb0ad6aaebe420dc95279b0a942e0c3 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.ccap.attributes.AmId;
 
@@ -21,15 +20,13 @@ public class AmIdValidator extends AbstractValidator<AmId> {
     private static final String AM_TAG = "amId.am-tag";
 
     @Override
-    public void validate(final AmId amId, Extent extent) throws ValidationException {
-
+    protected void doValidate(final AmId amId, Extent extent) {
         if (amId == null) {
-            throw new ValidationException("amId must exist");
+            getErrorMessages().add("amId must exist");
+            return;
         }
 
         mustExist(amId.getAmTag(), AM_TAG);
         mustExist(amId.getAmType(), AM_TYPE);
-
-        throwErrorsIfNeeded();
     }
 }
index e27f509cec33558f71776964b6384958bd1a172c..0c5e0c303740e595102bd9c96c466852110a6f12 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.ccaps.Ccap;
 
@@ -27,9 +26,10 @@ public class CcapValidator extends AbstractValidator<Ccap> {
     private final ConnectionValidator connectionValidator = new ConnectionValidator();
 
     @Override
-    public void validate(final Ccap ccap, Extent extent) throws ValidationException {
+    protected void doValidate(final Ccap ccap, Extent extent) {
         if (ccap == null) {
-            throw new ValidationException("ccap must exist");
+            getErrorMessages().add("ccap must exist");
+            return;
         }
 
         mustExist(ccap.getCcapId(), CCAPID);
@@ -44,9 +44,6 @@ public class CcapValidator extends AbstractValidator<Ccap> {
             mustExist(ccap.getAmId(), AM_ID);
             mustExist(ccap.getConnection(), CONNECTION);
         }
-
-        throwErrorsIfNeeded();
     }
 
-
 }
index 6a49dc70cbe6eb356ab1e3f1af7334e83e0d48ba..30cee46ad50ef636b408d229cf949d2a57424b53 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.Ccaps;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.ccaps.Ccap;
@@ -21,14 +20,17 @@ public class CcapsValidator extends AbstractValidator<Ccaps> {
     private final CcapValidator ccapValidator = new CcapValidator();
 
     @Override
-    public void validate(final Ccaps ccaps, Extent extent) throws ValidationException {
+    public void doValidate(final Ccaps ccaps, Extent extent) {
         if (ccaps == null) {
-            throw new ValidationException("ccaps must exist");
+            getErrorMessages().add("ccaps must exist");
+            return;
         }
 
         if (extent == Extent.NODE_AND_SUBTREE) {
-            for (Ccap ccap : ccaps.getCcap()) {
-                validateChild(ccapValidator, ccap);
+            if (ccaps.getCcap() != null) {
+                for (Ccap ccap : ccaps.getCcap()) {
+                    validateChild(ccapValidator, ccap);
+                }
             }
         }
     }
index 3dbfe292fecd06c9192369d978db9bd06e607d9f..76d17a6fc4997007326b5ade0e12c564054bce97 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.ccaps;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.ccap.attributes.Connection;
 
@@ -21,17 +20,15 @@ public class ConnectionValidator extends AbstractValidator<Connection> {
     private static final String PORT = "connection.port";
 
     @Override
-    public void validate(final Connection connection, Extent extent) throws ValidationException {
+    protected void doValidate(final Connection connection, Extent extent) {
         if (connection == null) {
-            throw new ValidationException("connection must exist");
+           getErrorMessages().add("connection must exist");
+            return;
         }
 
         mustExist(connection.getIpAddress(), IP_ADDRESS);
 
         // Note PortNumber validates range on creation so only existence needs to be checked
         mustExist(connection.getPort(), PORT);
-
-
-        throwErrorsIfNeeded();
     }
 }
index e1a15b2a38104879105ecd26d11ac68031aa8952..026bf1b89da5e840dddc6ea0d207913af68d6b8b 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.apps.App;
 
@@ -23,9 +22,10 @@ public class AppValidator extends AbstractValidator<App> {
     private final SubscribersValidator subscribersValidator = new SubscribersValidator();
 
     @Override
-    public void validate(final App app, final Extent extent) throws ValidationException {
+    protected void doValidate(final App app, final Extent extent) {
         if (app == null) {
-            throw new ValidationException("app must exist");
+            getErrorMessages().add("app must exist");
+            return;
         }
 
         mustExist(app.getAppId(), APP_ID);
@@ -34,7 +34,5 @@ public class AppValidator extends AbstractValidator<App> {
         if (extent == Extent.NODE_AND_SUBTREE) {
             validateChild(subscribersValidator, app.getSubscribers());
         }
-
-        throwErrorsIfNeeded();
     }
 }
index 54aa304971ff359bfa1ce70b7cf77fa02864b244..5502d07a502f3e07f09e0d28add6817e08cc7032 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.Apps;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.apps.App;
@@ -21,17 +20,16 @@ public class AppsValidator extends AbstractValidator<Apps> {
     private final AppValidator appValidator = new AppValidator();
 
     @Override
-    public void validate(final Apps apps, final Extent extent) throws ValidationException {
+    protected void doValidate(final Apps apps, final Extent extent) {
         if (apps == null) {
-            throw new ValidationException("apps must exist");
+            getErrorMessages().add("apps must exist");
+            return;
         }
         if (extent == Extent.NODE_AND_SUBTREE) {
             for (App app : apps.getApp()) {
                 validateChild(appValidator, app);
             }
         }
-
-        throwErrorsIfNeeded();
     }
 
 }
index 41bb9642f34aa5f7f8a3b20617570bd50942695c..36d65f2a2516e2ef4d8ad0747871f72ba0574601 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gate.spec.GateSpec;
 
@@ -20,9 +19,9 @@ public class GateSpecValidatator extends AbstractValidator<GateSpec> {
     private static final String DIRECTION = "gate-spec.direction";
 
     @Override
-    public void validate(final GateSpec gateSpec, final Extent extent) throws ValidationException {
+    protected void doValidate(final GateSpec gateSpec, final Extent extent) {
         if (gateSpec == null) {
-            throw new ValidationException("gate-spec must exist");
+            getErrorMessages().add("gate-spec must exist");
         }
 
         // everything is optional
@@ -30,7 +29,6 @@ public class GateSpecValidatator extends AbstractValidator<GateSpec> {
 //        mustExist(gateSpec.getDirection(), DIRECTION);
 //
 //        // dscp-tos-overwrite & dscp-tos-mask are optional
-        throwErrorsIfNeeded();
     }
 
 }
index fcfaa6a2e8394a57a2c917cb8f14bc31e2f2bb15..d90e646f6d1f2fb6638ffc6d71d79b00acffa839 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier.ClassifiersValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
@@ -28,9 +27,10 @@ public class GateValidator extends AbstractValidator<Gate> {
     private final ClassifiersValidator classifiersValidator = new ClassifiersValidator();
 
     @Override
-    public void validate(final Gate gate, final Extent extent) throws ValidationException {
+    protected void doValidate(final Gate gate, final Extent extent) {
         if (gate == null) {
-            throw new ValidationException("gate must exist");
+            getErrorMessages().add("gate must exist");
+            return;
         }
 
         mustExist(gate.getGateId(), GATE_ID);
@@ -46,7 +46,5 @@ public class GateValidator extends AbstractValidator<Gate> {
             validateChild(trafficProfileValidator, gate.getTrafficProfile());
             validateChild(classifiersValidator, gate.getClassifiers());
         }
-
-        throwErrorsIfNeeded();
     }
 }
index e93b1f336b056d0dd896ee2271f376ad0c19eba4..e8d5ea19757d7058f1c74abfe415544c4355f650 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.apps.app.subscribers.subscriber.Gates;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.apps.app.subscribers.subscriber.gates.Gate;
@@ -21,9 +20,10 @@ public class GatesValidator extends AbstractValidator<Gates> {
     private final GateValidator gateValidator = new GateValidator();
 
     @Override
-    public void validate(final Gates gates, final Extent extent) throws ValidationException {
+    protected void doValidate(final Gates gates, final Extent extent) {
         if (gates == null) {
-            throw new ValidationException("gates must exist");
+            getErrorMessages().add("gates must exist");
+            return;
         }
 
         if (extent == Extent.NODE_AND_SUBTREE) {
@@ -31,7 +31,5 @@ public class GatesValidator extends AbstractValidator<Gates> {
                 validateChild(gateValidator, gate);
             }
         }
-
-        throwErrorsIfNeeded();
     }
 }
index f26cb6686ee549929597eef61bab20680d5bf1cc..c860e6d1a90186f76cbed3d4fdf5b889783ee863 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.apps.app.subscribers.Subscriber;
 
@@ -23,9 +22,10 @@ public class SubscriberValidator extends AbstractValidator<Subscriber> {
     private final GatesValidator gatesValidator = new GatesValidator();
 
     @Override
-    public void validate(final Subscriber subscriber, final Extent extent) throws ValidationException {
+    protected void doValidate(final Subscriber subscriber, final Extent extent) {
         if (subscriber == null) {
-            throw new ValidationException("subscriber must exist");
+            getErrorMessages().add("subscriber must exist");
+            return;
         }
 
         mustExist(subscriber.getSubscriberId(), SUBSCRIBER_ID);
@@ -34,7 +34,5 @@ public class SubscriberValidator extends AbstractValidator<Subscriber> {
         if (extent == Extent.NODE_AND_SUBTREE) {
             validateChild(gatesValidator, subscriber.getGates());
         }
-
-        throwErrorsIfNeeded();
     }
 }
index 0315e54366543a2b51ca9bfdeb669c447f0a29d6..0e7e480384f668a202b4f9c945b14f56be3f7eb3 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.apps.app.Subscribers;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.gates.apps.app.subscribers.Subscriber;
@@ -21,9 +20,10 @@ public class SubscribersValidator extends AbstractValidator<Subscribers> {
     private final SubscriberValidator subscriberValidator = new SubscriberValidator();
 
     @Override
-    public void validate(final Subscribers subscribers, final Extent extent) throws ValidationException {
+    protected void doValidate(final Subscribers subscribers, final Extent extent) {
         if (subscribers == null) {
-            throw new ValidationException("subscribers must exist");
+            getErrorMessages().add("subscribers must exist");
+            return;
         }
 
         if (extent == Extent.NODE_AND_SUBTREE) {
@@ -31,8 +31,6 @@ public class SubscribersValidator extends AbstractValidator<Subscribers> {
                 validateChild(subscriberValidator , subscriber);
             }
         }
-
-        throwErrorsIfNeeded();
     }
 
 }
index 53af9bc5d710f7f7dc4ac64600ff9ef3c1e2b3f0..d78d15ef698d82576d8d3f6fe899374695ef4944 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.traffic.profile.TrafficProfile;
 
@@ -20,14 +19,14 @@ public class TrafficProfileValidator extends AbstractValidator<TrafficProfile> {
     private static final String SCN = "service-class-name";
 
     @Override
-    public void validate(final TrafficProfile trafficProfile, final Extent extent) throws ValidationException {
-        if (trafficProfile == null) {
-            throw new ValidationException("traffic-profile must exist");
-        }
+    protected void doValidate(final TrafficProfile trafficProfile, final Extent extent) {
+       if (trafficProfile == null) {
+           getErrorMessages().add("traffic-profile must exist");
+           return;
+       }
 
         mustExist(trafficProfile.getServiceClassName(), SCN);
 
-        throwErrorsIfNeeded();
     }
 
 }
index 1f951eaaa0b329c6bf6f2eedc6df87e54d281188..80ef4e267e504290fa0bfc2ae71be6be6e9e987b 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.classifier.attributes.classifiers.classifier.container.ClassifierChoice;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.classifier.attributes.classifiers.classifier.container.classifier.choice.ExtClassifierChoice;
@@ -25,9 +24,10 @@ public class ClassifierChoiceValidator extends AbstractValidator<ClassifierChoic
     private final Ipv6ClassifierValidator ipv6ClassifierValidator = new Ipv6ClassifierValidator();
 
     @Override
-    public void validate(final ClassifierChoice choice, final Extent extent) throws ValidationException {
+    protected void doValidate(final ClassifierChoice choice, final Extent extent) {
         if (choice == null) {
-            throw new ValidationException("classifier-choice must exist");
+            getErrorMessages().add("classifier-choice must exist");
+            return;
         }
 
         // Determine what type this choice is then validate it
@@ -43,8 +43,6 @@ public class ClassifierChoiceValidator extends AbstractValidator<ClassifierChoic
         else {
             throw new IllegalStateException("Unknown ClassifierChoice Type: " + choice.getClass().getName());
         }
-
-        throwErrorsIfNeeded();
     }
 
 }
index 79d8d18f73a8af072791492a534c613e63885b75..adf8f22be2ca311eede2f58c12f4540fad634401 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.classifier.attributes.classifiers.ClassifierContainer;
 
@@ -23,9 +22,10 @@ public class ClassifierContainerValidator extends AbstractValidator<ClassifierCo
     private final ClassifierChoiceValidator classifierChoiceValidator = new ClassifierChoiceValidator();
 
     @Override
-    public void validate(final ClassifierContainer container, final Extent extent) throws ValidationException {
+    protected void doValidate(final ClassifierContainer container, final Extent extent) {
         if (container == null) {
-            throw new ValidationException("classifer-container must exist");
+            getErrorMessages().add("classifer-container must exist");
+            return;
         }
 
         mustExist(container.getClassifierChoice(), CLASSIFIER_CHOICE);
@@ -35,8 +35,6 @@ public class ClassifierContainerValidator extends AbstractValidator<ClassifierCo
         if (extent == Extent.NODE_AND_SUBTREE) {
             validateChild(classifierChoiceValidator, container.getClassifierChoice());
         }
-
-        throwErrorsIfNeeded();
     }
 
 }
index a31265ab5036de25578910f1afa7886b18d7ec4c..6444055b34135f1b17a0eab7049cd77fd8e50174 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.classifier.Classifier;
 
@@ -30,10 +29,10 @@ public class ClassifierValidator extends AbstractValidator<Classifier> {
     private static final String PROTOCOL = "classifer.protocol";
 
     @Override
-    public void validate(final Classifier classifier, final Extent extent) throws ValidationException {
-
+    protected void doValidate(final Classifier classifier, final Extent extent) {
         if (classifier == null) {
-            throw new ValidationException("classifer must exist");
+            getErrorMessages().add("classifer must exist");
+            return;
         }
 
         mustExist(classifier.getSrcIp(), SRC_IP);
@@ -46,7 +45,5 @@ public class ClassifierValidator extends AbstractValidator<Classifier> {
         mustExist(classifier.getTosMask(), TOS_MASK);
 
         mustExist(classifier.getProtocol(), PROTOCOL);
-
-        throwErrorsIfNeeded();
     }
 }
index 422b94eaf23085cc2d1343bc6f152b3ed7723ac1..5cd070e4af3fd0943ca6c9dbaf0d3899f9cd8e83 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.classifier.attributes.Classifiers;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.classifier.attributes.classifiers.ClassifierContainer;
@@ -24,9 +23,10 @@ public class ClassifiersValidator extends AbstractValidator<Classifiers> {
     private ClassifierContainerValidator classifierContainerValidator = new ClassifierContainerValidator();
 
     @Override
-    public void validate(final Classifiers classifiers, final Extent extent) throws ValidationException {
+    protected void doValidate(final Classifiers classifiers, final Extent extent) {
         if (classifiers == null) {
-            throw new ValidationException("classifiers must exist");
+            getErrorMessages().add("classifiers must exist");
+            return;
         }
 
         mustExistAndNotBeEmpty(classifiers.getClassifierContainer(), CLASSIFER_CONTAINER);
@@ -49,8 +49,6 @@ public class ClassifiersValidator extends AbstractValidator<Classifiers> {
                 validateChild(classifierContainerValidator, classifier);
             }
         }
-
-        throwErrorsIfNeeded();
     }
 
 }
index fe9cdb522fdc0a3be3c000f6bca9b5b4c0b99b93..275b18e80a517d387835a37ed3ea24e952270456 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.ext.classifier.ExtClassifier;
 
@@ -35,7 +34,11 @@ public class ExtClassifierValidator extends AbstractValidator<ExtClassifier> {
     private static final String DST_PORT_END = "ext-classifer.dstPort-end";
 
     @Override
-    public void validate(final ExtClassifier extClassifier, final Extent extent) throws ValidationException {
+    protected void doValidate(final ExtClassifier extClassifier, final Extent extent) {
+        if (extClassifier == null) {
+            getErrorMessages().add("ext-classifier must exist");
+            return;
+        }
 
         mustExist(extClassifier.getSrcIp(), SRC_IP);
         mustExist(extClassifier.getSrcIpMask(), SRC_MASK);
@@ -53,7 +56,5 @@ public class ExtClassifierValidator extends AbstractValidator<ExtClassifier> {
 
         mustExist(extClassifier.getDstPortStart(), DST_PORT_START);
         mustExist(extClassifier.getDstPortEnd(), DST_PORT_END);
-
-        throwErrorsIfNeeded();
     }
 }
index ea3d8d678d837d49cf4fb22d93a8ad22c40c426d..c966a69a29fa39b0fef7ed332c7c31fb9ea2af71 100644 (file)
@@ -8,7 +8,6 @@
 
 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
 
-import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.ipv6.classifier.Ipv6Classifier;
 
@@ -36,9 +35,10 @@ public class Ipv6ClassifierValidator extends AbstractValidator<Ipv6Classifier> {
     private static final String DST_PORT_END = "ipv6-classifer.dstPort-end";
 
     @Override
-    public void validate(final Ipv6Classifier ipv6Classifier, final Extent extent) throws ValidationException {
+    protected void doValidate(final Ipv6Classifier ipv6Classifier, final Extent extent) {
         if (ipv6Classifier == null) {
-            throw new ValidationException("ipv6-classifer must exist");
+            getErrorMessages().add("ipv6-classifer must exist");
+            return;
         }
 
         mustExist(ipv6Classifier.getSrcIp6(), SRC_IP6);
@@ -57,7 +57,5 @@ public class Ipv6ClassifierValidator extends AbstractValidator<Ipv6Classifier> {
 
         mustExist(ipv6Classifier.getDstPortStart(), DST_PORT_START);
         mustExist(ipv6Classifier.getDstPortEnd(), DST_PORT_END);
-
-        throwErrorsIfNeeded();
     }
 }