Adding EVPN App code
Change-Id: Id3b2192f56f054cadcd8384092245b8757a781a9
diff --git a/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/rsc/DefaultVpnInstance.java b/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/rsc/DefaultVpnInstance.java
new file mode 100755
index 0000000..e7f9c5d
--- /dev/null
+++ b/apps/evpnopenflow/src/main/java/org/onosproject/evpnopenflow/rsc/DefaultVpnInstance.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright 2017-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.onosproject.evpnopenflow.rsc;
+
+import org.onosproject.incubator.net.routing.EvpnInstanceName;
+import org.onosproject.incubator.net.routing.RouteDistinguisher;
+import org.onosproject.incubator.net.routing.VpnRouteTarget;
+
+import java.util.Objects;
+import java.util.Set;
+
+import static com.google.common.base.MoreObjects.toStringHelper;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.CONFIG_RT_CANNOT_BE_NULL;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.DESCRIPTION;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.DESCRIPTION_CANNOT_BE_NULL;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.EXPORT_RT_CANNOT_BE_NULL;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.ID;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.ID_CANNOT_BE_NULL;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.IMPORT_RT_CANNOT_BE_NULL;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.INSTANCE_NAME_CANNOT_BE_NULL;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.RD_CANNOT_BE_NULL;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.ROUTE_DISTINGUISHER;
+import static org.onosproject.evpnopenflow.rsc.EvpnConstants.VPNINSTANCE_NAME;
+
+/**
+ * Default implementation of VPN instance.
+ */
+public class DefaultVpnInstance implements VpnInstance {
+ private final VpnInstanceId id;
+ private final String description;
+ private final EvpnInstanceName name;
+ private final RouteDistinguisher routeDistinguisher;
+ private final Set<VpnRouteTarget> exportRtSet;
+ private final Set<VpnRouteTarget> importRtSet;
+ private final Set<VpnRouteTarget> configRtSet;
+
+
+ /**
+ * creates vpn instance object.
+ *
+ * @param id vpn instance identifier
+ * @param instanceName the name of vpn instance
+ * @param description the description of vpn instance
+ * @param routeDistinguisher the routeDistinguisher of vpn instance
+ * @param exportRtSet the export route target information
+ * @param importRtSet the import route target information
+ * @param configRtSet the config route target information
+ */
+ public DefaultVpnInstance(VpnInstanceId id, EvpnInstanceName instanceName,
+ String description,
+ RouteDistinguisher routeDistinguisher,
+ Set<VpnRouteTarget> exportRtSet,
+ Set<VpnRouteTarget> importRtSet,
+ Set<VpnRouteTarget> configRtSet) {
+ this.id = checkNotNull(id, ID_CANNOT_BE_NULL);
+ this.name = checkNotNull(instanceName, INSTANCE_NAME_CANNOT_BE_NULL);
+ this.description = checkNotNull(description,
+ DESCRIPTION_CANNOT_BE_NULL);
+ this.routeDistinguisher = checkNotNull(routeDistinguisher,
+ RD_CANNOT_BE_NULL);
+ this.exportRtSet = checkNotNull(exportRtSet, EXPORT_RT_CANNOT_BE_NULL);
+ this.importRtSet = checkNotNull(importRtSet, IMPORT_RT_CANNOT_BE_NULL);
+ this.configRtSet = checkNotNull(configRtSet, CONFIG_RT_CANNOT_BE_NULL);
+ }
+
+ @Override
+ public VpnInstanceId id() {
+ return id;
+ }
+
+ @Override
+ public String description() {
+ return description;
+ }
+
+ @Override
+ public RouteDistinguisher routeDistinguisher() {
+ return routeDistinguisher;
+ }
+
+ @Override
+ public EvpnInstanceName vpnInstanceName() {
+ return name;
+ }
+
+ @Override
+ public Set<VpnRouteTarget> getExportRouteTargets() {
+ return exportRtSet;
+ }
+
+ @Override
+ public Set<VpnRouteTarget> getImportRouteTargets() {
+ return importRtSet;
+ }
+
+ @Override
+ public Set<VpnRouteTarget> getConfigRouteTargets() {
+ return configRtSet;
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(id, name, description, routeDistinguisher,
+ exportRtSet, importRtSet, configRtSet);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj instanceof DefaultVpnInstance) {
+ final DefaultVpnInstance that = (DefaultVpnInstance) obj;
+ return Objects.equals(this.id, that.id)
+ && Objects.equals(this.name, that.name)
+ && Objects.equals(this.description, that.description)
+ && Objects.equals(this.routeDistinguisher,
+ that.routeDistinguisher)
+ && Objects.equals(this.exportRtSet, that.exportRtSet)
+ && Objects.equals(this.importRtSet, that.importRtSet)
+ && Objects.equals(this.configRtSet, that.configRtSet);
+ }
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return toStringHelper(this)
+ .add(ID, id)
+ .add(DESCRIPTION, description)
+ .add(VPNINSTANCE_NAME, name)
+ .add(ROUTE_DISTINGUISHER, routeDistinguisher)
+ .add("exportRtSet", exportRtSet)
+ .add("importRtSet", importRtSet)
+ .add("configRtSet", configRtSet)
+ .toString();
+ }
+}