aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java')
-rw-r--r--framework/src/onos/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java202
1 files changed, 202 insertions, 0 deletions
diff --git a/framework/src/onos/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java b/framework/src/onos/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java
new file mode 100644
index 00000000..6685b7ac
--- /dev/null
+++ b/framework/src/onos/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * 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.xosintegration;
+
+import com.google.common.base.MoreObjects;
+import org.onosproject.net.ConnectPoint;
+
+public final class VoltTenant {
+
+ private final String humanReadableName;
+ private final long id;
+ private final long providerService;
+ private final String serviceSpecificId;
+ private final String vlanId;
+ private final ConnectPoint port;
+
+ /**
+ * Constructs a vOLT tenant object.
+ *
+ * @param humanReadableName name string
+ * @param id identifier for the tenant
+ * @param providerService provider service ID
+ * @param serviceSpecificId id for the user
+ * @param vlanId vlan id for the user
+ */
+ private VoltTenant(String humanReadableName, long id, long providerService,
+ String serviceSpecificId, String vlanId, ConnectPoint port) {
+ this.humanReadableName = humanReadableName;
+ this.id = id;
+ this.providerService = providerService;
+ this.serviceSpecificId = serviceSpecificId;
+ this.vlanId = vlanId;
+ this.port = port;
+ }
+
+ /**
+ * Fetches a builder to make a tenant.
+ *
+ * @return tenant builder
+ */
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ /**
+ * Fetches the name of the tenant.
+ *
+ * @return human readable name
+ */
+ public String humanReadableName() {
+ return humanReadableName;
+ }
+
+ /**
+ * Fetches the ID of the tenant object.
+ *
+ * @return ID of tenant object.
+ */
+ public long id() {
+ return id;
+ }
+
+ /**
+ * Fetches the identifier for the provider service.
+ *
+ * @return provider service ID
+ */
+ public long providerService() {
+ return providerService;
+ }
+
+ /**
+ * Fetches the server specific ID (user id).
+ *
+ * @return server specific ID
+ */
+ public String serviceSpecificId() {
+ return serviceSpecificId;
+ }
+
+ /**
+ * Fetches the vlan id for this tenant.
+ *
+ * @return VLAN ID
+ */
+ public String vlanId() {
+ return vlanId;
+ }
+
+ public ConnectPoint port() {
+ return port;
+ }
+
+ /**
+ * Builder class to allow callers to assemble tenants.
+ */
+
+ public static final class Builder {
+ private String humanReadableName = "unknown";
+ private long id = 0;
+ private long providerService = -1;
+ private String serviceSpecificId = "unknown";
+ private String vlanId = "unknown";
+ private ConnectPoint port;
+
+ /**
+ * Sets the name string for the tenant.
+ *
+ * @param humanReadableName name
+ * @return self
+ */
+ public Builder withHumanReadableName(String humanReadableName) {
+ this.humanReadableName = humanReadableName;
+ return this;
+ }
+
+ /**
+ * Sets the identifier for the tenant.
+ *
+ * @param id identifier for the tenant
+ * @return self
+ */
+ public Builder withId(long id) {
+ this.id = id;
+ return this;
+ }
+
+ /**
+ * Sets the server specific id (user id) for the tenant.
+ *
+ * @param serviceSpecificId server specific (user) id
+ * @return self
+ */
+ public Builder withServiceSpecificId(String serviceSpecificId) {
+ this.serviceSpecificId = serviceSpecificId;
+ return this;
+ }
+
+ /**
+ * Sets the VLAN ID for the tenant.
+ *
+ * @param vlanId VLAN ID
+ * @return self
+ */
+ public Builder withVlanId(String vlanId) {
+ this.vlanId = vlanId;
+ return this;
+ }
+
+ /**
+ * Sets the provider service ID.
+ *
+ * @param providerService provider service ID
+ * @return self
+ */
+ public Builder withProviderService(long providerService) {
+ this.providerService = providerService;
+ return this;
+ }
+
+ public Builder withPort(ConnectPoint port) {
+ this.port = port;
+ return this;
+ }
+
+ /**
+ * Constructs a VoltTenant from the assembled data.
+ *
+ * @return constructed tenant object
+ */
+ public VoltTenant build() {
+ return new VoltTenant(humanReadableName, id, providerService,
+ serviceSpecificId, vlanId, port);
+ }
+ }
+
+ @Override
+ public String toString() {
+ return MoreObjects.toStringHelper(getClass())
+ .add("humanReadableName", humanReadableName())
+ .add("id", id())
+ .add("providerService", providerService())
+ .add("serviceSpecificId", serviceSpecificId())
+ .add("vlanId", vlanId())
+ .add("port", port())
+ .toString();
+ }
+
+}