MVPN RFC6514 Extendend communities
[bgpcep.git] / bgp / openconfig-rp-spi / src / main / java / org / opendaylight / protocol / bgp / openconfig / routing / policy / spi / registry / RouteAttributeContainer.java
1 /*
2  * Copyright (c) 2018 AT&T Intellectual Property. 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 package org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.registry;
9
10 import javax.annotation.Nullable;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev180329.path.attributes.Attributes;
12
13 /**
14  * Attribute Container Wrapper, provides information whether any import/export policy condition has been satisfied.
15  */
16 public final class RouteAttributeContainer {
17     private final boolean anyConditionSatisfied;
18     private final Attributes attributes;
19
20     private RouteAttributeContainer(final Attributes attributes, final boolean anyConditionSatisfied) {
21         this.anyConditionSatisfied = anyConditionSatisfied;
22         this.attributes = attributes;
23     }
24
25     public static RouteAttributeContainer routeAttributeContainerFalse(final Attributes attributes) {
26         return new RouteAttributeContainer(attributes, false);
27     }
28
29     public static RouteAttributeContainer routeAttributeContainerTrue(final Attributes attributes) {
30         return new RouteAttributeContainer(attributes, true);
31     }
32
33     /**
34      * Indicates whether any import/export condition was satisfied per any condition.
35      *
36      * @return true if any Condition has been satisfied
37      */
38     public boolean anyConditionSatisfied() {
39         return this.anyConditionSatisfied;
40     }
41
42     /**
43      * Returns container with route entry attributes.
44      *
45      * @return Attributes
46      */
47     @Nullable
48     public Attributes getAttributes() {
49         return this.attributes;
50     }
51 }