Added response data to operational datastore, refactored data validation
[packetcable.git] / packetcable-policy-server / src / main / java / org / opendaylight / controller / packetcable / provider / validation / impl / validators / qos / classifier / Ipv6ClassifierValidator.java
1 /*
2  * Copyright (c) 2015 CableLabs and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
10
11 import org.opendaylight.controller.packetcable.provider.validation.ValidationException;
12 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
13 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151026.pcmm.qos.ipv6.classifier.Ipv6Classifier;
14
15 /**
16  * @author rvail
17  */
18 public class Ipv6ClassifierValidator extends AbstractValidator<Ipv6Classifier> {
19
20
21     private static final String SRC_IP6 = "ipv6-classifer.srcIp6";
22     private static final String DST_IP6 = "ipv6-classifer.dstIp6";
23
24     private static final String TC_LOW = "ipv6-classifer.tc-low";
25     private static final String TC_HIGH = "ipv6-classifer.tc-high";
26     private static final String TC_MASK = "ipv6-classifer.tc-mask";
27
28     private static final String NEXT_HEADER = "ipv6-classifer.next-hdr";
29
30     private static final String FLOW_LABEL = "ipv6-classifer.flow-label";
31
32     private static final String SRC_PORT_START = "ipv6-classifer.srcPort-start";
33     private static final String SRC_PORT_END = "ipv6-classifer.srcPort-end";
34
35     private static final String DST_PORT_START = "ipv6-classifer.dstPort-start";
36     private static final String DST_PORT_END = "ipv6-classifer.dstPort-end";
37
38     @Override
39     public void validate(final Ipv6Classifier ipv6Classifier, final Extent extent) throws ValidationException {
40         if (ipv6Classifier == null) {
41             throw new ValidationException("ipv6-classifer must exist");
42         }
43
44         mustExist(ipv6Classifier.getSrcIp6(), SRC_IP6);
45         mustExist(ipv6Classifier.getDstIp6(), DST_IP6);
46
47         mustExist(ipv6Classifier.getTcLow(), TC_LOW);
48         mustExist(ipv6Classifier.getTcHigh(), TC_HIGH);
49         mustExist(ipv6Classifier.getTcMask(), TC_MASK);
50
51         mustExist(ipv6Classifier.getNextHdr(), NEXT_HEADER);
52
53         mustExist(ipv6Classifier.getFlowLabel(), FLOW_LABEL);
54
55         mustExist(ipv6Classifier.getSrcPortStart(), SRC_PORT_START);
56         mustExist(ipv6Classifier.getSrcPortEnd(), SRC_PORT_END);
57
58         mustExist(ipv6Classifier.getDstPortStart(), DST_PORT_START);
59         mustExist(ipv6Classifier.getDstPortEnd(), DST_PORT_END);
60
61         throwErrorsIfNeeded();
62     }
63 }