98d581f8c0e106c5f18efa3b16814afb3a4b17bc
[groupbasedpolicy.git] / groupbasedpolicy / src / main / java / org / opendaylight / groupbasedpolicy / resolver / validator / Validator.java
1 /*
2  * Copyright (c) 2015 Cisco Systems, Inc. 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.groupbasedpolicy.resolver.validator;
10
11 /**
12  * Interface for Validators used to validate Policy objects
13  *
14  * @param <T>
15  */
16 public interface Validator<T> {
17
18     /**
19      * Validate given object and his children. The result of all validations is
20      * stored in {@link ValidationResult} object.
21      *
22      * @param objectToValidate Object that should be validated by
23      * {@link Validator}
24      * @return Result of performed validation
25      */
26     ValidationResult validate(T objectToValidate);
27
28     /**
29      * Returns the Policy object type for which it is intended validator.
30      *
31      * @return Class of Policy object;
32      */
33     Class<T> getType();
34
35 }