Improvements for XOS integration app
- Add a default value for the tenant provider service
id and don't require callers to set it when creating
a tenant.
- Add javadocs to the volt tenant object.
Change-Id: I1144820eb3e311cffc87ecefaccf689127730dcf
diff --git a/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java b/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java
index e35a630..18b24e1 100644
--- a/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java
+++ b/apps/xos-integration/src/main/java/org/onosproject/xosintegration/VoltTenant.java
@@ -15,7 +15,6 @@
*/
package org.onosproject.xosintegration;
-
import com.google.common.base.MoreObjects;
public final class VoltTenant {
@@ -26,6 +25,15 @@
private final String serviceSpecificId;
private final String vlanId;
+ /**
+ * 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) {
this.humanReadableName = humanReadableName;
@@ -35,62 +43,131 @@
this.vlanId = vlanId;
}
+ /**
+ * 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;
}
+ /**
+ * Builder class to allow callers to assemble tenants.
+ */
+
public static final class Builder {
private String humanReadableName = "unknown";
private long id = 0;
- private long providerService = 0;
+ private long providerService = -1;
private String serviceSpecificId = "unknown";
private String vlanId = "unknown";
+ /**
+ * 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;
}
- public Builder withProviderService(long providerService) {
- this.providerService = providerService;
- 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;
+ }
+
+ /**
+ * Constructs a VoltTenant from the assembled data.
+ *
+ * @return constructed tenant object
+ */
public VoltTenant build() {
return new VoltTenant(humanReadableName, id, providerService,
serviceSpecificId, vlanId);