2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
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
9 package org.opendaylight.groupbasedpolicy.api;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.containment.endpoints.ContainmentEndpoint;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointReg;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.ContainmentEndpointReg;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.ContainmentEndpointWithLocation;
18 import org.opendaylight.yangtools.yang.binding.Augmentation;
20 import javax.annotation.Nullable;
24 * Provides translation for endpoint augmentation
26 public interface EndpointAugmentor {
29 * Creates pair of {@link AddressEndpoint} augmentation. Augmentation is domain specific. Result
30 * is used for translation from {@link AddressEndpointReg} to {@link AddressEndpoint}
32 * @param input {@link AddressEndpointReg} as part of RPC input
33 * {@link BaseEndpointService#registerEndpoint(org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInput)}
34 * @return translated <i>input</i> to {@link AddressEndpoint}
37 Map.Entry<Class<? extends Augmentation<AddressEndpoint>>, Augmentation<AddressEndpoint>> buildAddressEndpointAugmentation(
38 AddressEndpointReg input);
41 * Creates pair of {@link ContainmentEndpoint} augmentation. Augmentation is domain specific.
42 * Result is used for translation from {@link ContainmentEndpointReg} to
43 * {@link ContainmentEndpoint}
45 * @param input {@link ContainmentEndpointReg} as part of RPC input
46 * {@link BaseEndpointService#registerEndpoint(org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInput)}
47 * @return translated <i>input</i> to {@link ContainmentEndpoint}
50 Map.Entry<Class<? extends Augmentation<ContainmentEndpoint>>, Augmentation<ContainmentEndpoint>> buildContainmentEndpointAugmentation(
51 ContainmentEndpointReg input);
54 * Creates pair of {@link AddressEndpointWithLocation} augmentation. Augmentation is domain
55 * specific. Result is used for translation from {@link AddressEndpoint} to
56 * {@link AddressEndpointWithLocation}
58 * @param input {@link AddressEndpoint}
59 * @return translated <i>input</i> to {@link AddressEndpointWithLocation}
62 Map.Entry<Class<? extends Augmentation<AddressEndpointWithLocation>>, Augmentation<AddressEndpointWithLocation>> buildAddressEndpointWithLocationAugmentation(
63 AddressEndpoint input);
66 * Creates pair of {@link ContainmentEndpointWithLocation} augmentation. Augmentation is domain
67 * specific. Result is used for translation from {@link ContainmentEndpoint} to
68 * {@link ContainmentEndpointWithLocation}
70 * @param input {@link ContainmentEndpoint}
71 * @return translated <i>input</i> to {@link ContainmentEndpointWithLocation}
74 Map.Entry<Class<? extends Augmentation<ContainmentEndpointWithLocation>>, Augmentation<ContainmentEndpointWithLocation>> buildContainmentEndpointWithLocationAugmentation(
75 ContainmentEndpoint input);