c59bdd9a6018dd6728dfc29914b7c8c4f06b8f4b
[groupbasedpolicy.git] / groupbasedpolicy / src / main / java / org / opendaylight / groupbasedpolicy / api / PolicyValidatorRegistrar.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.api;
10
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ActionDefinitionId;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.common.rev140421.ClassifierDefinitionId;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ActionInstance;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.policy.rev140421.tenants.tenant.subject.feature.instances.ClassifierInstance;
15
16 public interface PolicyValidatorRegistrar {
17
18     /**
19      * Registers validator of {@link ActionInstance} for {@link ActionDefinitionId}.
20      * 
21      * @param actionDefinitionId cannot be {@code null}
22      * @param validator cannot be {@code null}
23      * @throws NullPointerException
24      */
25     void register(ActionDefinitionId actionDefinitionId, Validator<ActionInstance> validator);
26
27     /**
28      * Unregisters validator of {@link ActionInstance} for {@link ActionDefinitionId}.
29      * 
30      * @param actionDefinitionId cannot be {@code null}
31      * @param validator cannot be {@code null}
32      * @throws NullPointerException
33      */
34     void unregister(ActionDefinitionId actionDefinitionId, Validator<ActionInstance> validator);
35
36     /**
37      * Registers validator of {@link ClassifierInstance} for {@link ClassifierDefinitionId}.
38      * 
39      * @param classifierDefinitionId cannot be {@code null}
40      * @param validator cannot be {@code null}
41      * @throws NullPointerException
42      */
43     void register(ClassifierDefinitionId classifierDefinitionId, Validator<ClassifierInstance> validator);
44
45     /**
46      * Unregisters validator of {@link ClassifierInstance} for {@link ClassifierDefinitionId}.
47      * 
48      * @param classifierDefinitionId cannot be {@code null}
49      * @param validator cannot be {@code null}
50      * @throws NullPointerException
51      */
52     void unregister(ClassifierDefinitionId classifierDefinitionId, Validator<ClassifierInstance> validator);
53
54 }