2 * Copyright (c) 2012-2013 NEC Corporation
5 * This program and the accompanying materials are made available under the
6 * terms of the Eclipse Public License v1.0 which accompanies this
7 * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
10 package org.opendaylight.vtn.javaapi.validation.logical;
12 import com.google.gson.JsonObject;
13 import org.opendaylight.vtn.core.util.Logger;
14 import org.opendaylight.vtn.javaapi.constants.VtnServiceConsts;
15 import org.opendaylight.vtn.javaapi.constants.VtnServiceJsonConsts;
16 import org.opendaylight.vtn.javaapi.exception.VtnServiceException;
17 import org.opendaylight.vtn.javaapi.ipc.enums.UncJavaAPIErrorCode;
18 import org.opendaylight.vtn.javaapi.resources.AbstractResource;
19 import org.opendaylight.vtn.javaapi.resources.logical.IpRouteResource;
20 import org.opendaylight.vtn.javaapi.validation.CommonValidator;
21 import org.opendaylight.vtn.javaapi.validation.VtnServiceValidator;
24 * The Class IpRouteResourceValidator validates request Json object for IpRoute
27 public class IpRouteResourceValidator extends VtnServiceValidator {
29 private static final Logger LOG = Logger
30 .getLogger(IpRouteResourceValidator.class.getName());
32 private final AbstractResource resource;
33 final CommonValidator validator = new CommonValidator();
36 * Instantiates a new Ip Route resource validator.
39 * the instance of AbstractResource
41 public IpRouteResourceValidator(final AbstractResource resource) {
42 this.resource = resource;
46 * Validate uri parameters for IpRoute API.
48 * @return true, if successful
51 public boolean validateUri() {
52 LOG.trace("Start IpRouteResourceValidator#validateUri()");
53 boolean isValid = false;
54 setInvalidParameter(VtnServiceJsonConsts.URI
55 + VtnServiceJsonConsts.VTNNAME);
56 if (resource instanceof IpRouteResource
57 && ((IpRouteResource) resource).getVtnName() != null
58 && !((IpRouteResource) resource).getVtnName().trim().isEmpty()) {
59 isValid = validator.isValidMaxLengthAlphaNum(
60 ((IpRouteResource) resource).getVtnName().trim(),
61 VtnServiceJsonConsts.LEN_31);
63 setInvalidParameter(VtnServiceJsonConsts.URI
64 + VtnServiceJsonConsts.VROUTERNAME);
65 if (((IpRouteResource) resource).getVrtName() != null
66 && !((IpRouteResource) resource).getVrtName().trim()
68 isValid = validator.isValidMaxLengthAlphaNum(
69 ((IpRouteResource) resource).getVrtName().trim(),
70 VtnServiceJsonConsts.LEN_31);
77 LOG.trace("Complete IpRouteResourceValidator#validateUri()");
82 * Validate request Json object for get method of IpRoute API.
85 public void validate(final String method, final JsonObject requestBody)
86 throws VtnServiceException {
87 LOG.trace("Start IpRouteResourceValidator#validate()");
88 LOG.info("Validating request for " + method
89 + " of IpRouteResourceValidator");
90 boolean isValid = false;
91 isValid = validateUri();
92 if (isValid && requestBody != null
93 && VtnServiceConsts.GET.equals(method)) {
94 isValid = ValidateGet(requestBody);
95 updateOpParameterForList(requestBody);
99 // Throws exception if validation fails
101 LOG.error("Validation failed");
102 throw new VtnServiceException(Thread.currentThread()
103 .getStackTrace()[1].getMethodName(),
104 UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorCode(),
105 UncJavaAPIErrorCode.VALIDATION_ERROR.getErrorMessage());
107 LOG.info("Validation successful");
108 LOG.trace("Complete IpRouteResourceValidator#validate()");
112 * Validate get request Json object for IpRoute API.
115 * the request Json object
116 * @return true, if successful
118 private boolean ValidateGet(final JsonObject requestBody) {
119 LOG.trace("Start IpRouteResourceValidator#ValidateGet()");
120 boolean isValid = true;
121 // validation for key: op
122 setInvalidParameter(VtnServiceJsonConsts.OP);
123 isValid = validator.isValidOperationForCount(requestBody);
124 LOG.trace("Complete IpRouteResourceValidator#ValidateGet()");