/* * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.groupbasedpolicy.api; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.BaseEndpointService; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.address.endpoints.AddressEndpoint; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.endpoints.containment.endpoints.ContainmentEndpoint; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.AddressEndpointReg; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.register.endpoint.input.ContainmentEndpointReg; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.AddressEndpointWithLocation; import org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.renderer.rev151103.renderers.renderer.renderer.policy.configuration.endpoints.ContainmentEndpointWithLocation; import org.opendaylight.yangtools.yang.binding.Augmentation; import javax.annotation.Nonnull; import javax.annotation.Nullable; import java.util.Map; /** * Provides translation for endpoint augmentation */ public interface EndpointAugmentor { /** * Creates pair of {@link AddressEndpoint} augmentation. Augmentation is domain specific. Result * is used for translation from {@link AddressEndpointReg} to {@link AddressEndpoint} * * @param input {@link AddressEndpointReg} as part of RPC input * {@link BaseEndpointService#registerEndpoint(org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInput)} * @return translated <i>input</i> to {@link AddressEndpoint} */ @Nullable Map.Entry<Class<? extends Augmentation<AddressEndpoint>>, Augmentation<AddressEndpoint>> buildAddressEndpointAugmentation( @Nonnull AddressEndpointReg input); /** * Creates pair of {@link ContainmentEndpoint} augmentation. Augmentation is domain specific. * Result is used for translation from {@link ContainmentEndpointReg} to * {@link ContainmentEndpoint} * * @param input {@link ContainmentEndpointReg} as part of RPC input * {@link BaseEndpointService#registerEndpoint(org.opendaylight.yang.gen.v1.urn.opendaylight.groupbasedpolicy.base_endpoint.rev160427.RegisterEndpointInput)} * @return translated <i>input</i> to {@link ContainmentEndpoint} */ @Nullable Map.Entry<Class<? extends Augmentation<ContainmentEndpoint>>, Augmentation<ContainmentEndpoint>> buildContainmentEndpointAugmentation( @Nonnull ContainmentEndpointReg input); /** * Creates pair of {@link AddressEndpointWithLocation} augmentation. Augmentation is domain * specific. Result is used for translation from {@link AddressEndpoint} to * {@link AddressEndpointWithLocation} * * @param input {@link AddressEndpoint} * @return translated <i>input</i> to {@link AddressEndpointWithLocation} */ @Nullable Map.Entry<Class<? extends Augmentation<AddressEndpointWithLocation>>, Augmentation<AddressEndpointWithLocation>> buildAddressEndpointWithLocationAugmentation( @Nonnull AddressEndpoint input); /** * Creates pair of {@link ContainmentEndpointWithLocation} augmentation. Augmentation is domain * specific. Result is used for translation from {@link ContainmentEndpoint} to * {@link ContainmentEndpointWithLocation} * * @param input {@link ContainmentEndpoint} * @return translated <i>input</i> to {@link ContainmentEndpointWithLocation} */ @Nullable Map.Entry<Class<? extends Augmentation<ContainmentEndpointWithLocation>>, Augmentation<ContainmentEndpointWithLocation>> buildContainmentEndpointWithLocationAugmentation( @Nonnull ContainmentEndpoint input); }