diff options
Diffstat (limited to 'framework/src/onos/apps/dhcp/api/src/main/java/org/onosproject/dhcp/IpAssignment.java')
-rw-r--r-- | framework/src/onos/apps/dhcp/api/src/main/java/org/onosproject/dhcp/IpAssignment.java | 308 |
1 files changed, 0 insertions, 308 deletions
diff --git a/framework/src/onos/apps/dhcp/api/src/main/java/org/onosproject/dhcp/IpAssignment.java b/framework/src/onos/apps/dhcp/api/src/main/java/org/onosproject/dhcp/IpAssignment.java deleted file mode 100644 index 5610fec8..00000000 --- a/framework/src/onos/apps/dhcp/api/src/main/java/org/onosproject/dhcp/IpAssignment.java +++ /dev/null @@ -1,308 +0,0 @@ -/* - * Copyright 2014 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.dhcp; - -import com.google.common.base.MoreObjects; -import org.onlab.packet.Ip4Address; - -import java.util.Date; - -import static com.google.common.base.Preconditions.checkNotNull; - -/** - * Stores the MAC ID to IP Address mapping details. - */ -public final class IpAssignment { - - private final Ip4Address ipAddress; - - private final Date timestamp; - - private final long leasePeriod; - - private final Ip4Address subnetMask; - - private final Ip4Address dhcpServer; - - private final Ip4Address routerAddress; - - private final Ip4Address domainServer; - - private final boolean rangeNotEnforced; - - private final AssignmentStatus assignmentStatus; - - public enum AssignmentStatus { - /** - * IP has been requested by a host, but not assigned to it yet. - */ - Option_Requested, - - /** - * IP Assignment has been requested by a OpenStack. - */ - Option_RangeNotEnforced, - /** - * IP has been assigned to a host. - */ - Option_Assigned, - - /** - * IP mapping is no longer active. - */ - Option_Expired - } - - /** - * Constructor for IPAssignment, where the ipAddress, the lease period, the timestamp - * and assignment status is supplied. - * - * @param ipAddress - * @param leasePeriod - * @param timestamp - * @param assignmentStatus - * @param subnetMask - * @param dhcpServer - * @param routerAddress - * @param domainServer - * @param rangeNotEnforced - */ - private IpAssignment(Ip4Address ipAddress, - long leasePeriod, - Date timestamp, - AssignmentStatus assignmentStatus, Ip4Address subnetMask, Ip4Address dhcpServer, - Ip4Address routerAddress, Ip4Address domainServer, boolean rangeNotEnforced) { - this.ipAddress = ipAddress; - this.leasePeriod = leasePeriod; - this.timestamp = timestamp; - this.assignmentStatus = assignmentStatus; - this.subnetMask = subnetMask; - this.dhcpServer = dhcpServer; - this.routerAddress = routerAddress; - this.domainServer = domainServer; - this.rangeNotEnforced = rangeNotEnforced; - } - - /** - * Returns the IP Address of the IP assignment. - * - * @return the IP address - */ - public Ip4Address ipAddress() { - return this.ipAddress; - } - - /** - * Returns the timestamp of the IP assignment. - * - * @return the timestamp - */ - public Date timestamp() { - return this.timestamp; - } - - /** - * Returns the assignment status of the IP assignment. - * - * @return the assignment status - */ - public AssignmentStatus assignmentStatus() { - return this.assignmentStatus; - } - - /** - * Returns the lease period of the IP assignment. - * - * @return the lease period in seconds - */ - public int leasePeriod() { - return (int) this.leasePeriod; - } - - /** - * Returns the lease period of the IP assignment. - * - * @return the lease period in milliseconds - */ - public int leasePeriodMs() { - return (int) this.leasePeriod * 1000; - } - - public Ip4Address subnetMask() { - return subnetMask; - } - - public Ip4Address dhcpServer() { - return dhcpServer; - } - - public Ip4Address routerAddress() { - return routerAddress; - } - - public Ip4Address domainServer() { - return domainServer; - } - - public boolean rangeNotEnforced() { - return rangeNotEnforced; - } - - @Override - public String toString() { - return MoreObjects.toStringHelper(getClass()) - .add("ip", ipAddress) - .add("timestamp", timestamp) - .add("lease", leasePeriod) - .add("assignmentStatus", assignmentStatus) - .add("subnetMask", subnetMask) - .add("dhcpServer", dhcpServer) - .add("routerAddress", routerAddress) - .add("domainServer", domainServer) - .add("rangeNotEnforced", rangeNotEnforced) - .toString(); - } - - /** - * Creates and returns a new builder instance. - * - * @return new builder - */ - public static Builder builder() { - return new Builder(); - } - - /** - * Creates and returns a new builder instance that clones an existing IPAssignment. - * - * @param assignment ip address assignment - * @return new builder - */ - public static Builder builder(IpAssignment assignment) { - return new Builder(assignment); - } - - /** - * IPAssignment Builder. - */ - public static final class Builder { - - private Ip4Address ipAddress; - - private Date timeStamp; - - private long leasePeriod; - - private AssignmentStatus assignmentStatus; - - private Ip4Address subnetMask; - - private Ip4Address dhcpServer; - - private Ip4Address domainServer; - - private Ip4Address routerAddress; - - private boolean rangeNotEnforced = false; - - private Builder() { - - } - - private Builder(IpAssignment ipAssignment) { - ipAddress = ipAssignment.ipAddress(); - timeStamp = ipAssignment.timestamp(); - leasePeriod = ipAssignment.leasePeriod(); - assignmentStatus = ipAssignment.assignmentStatus(); - } - - public IpAssignment build() { - validateInputs(); - return new IpAssignment(ipAddress, leasePeriod, timeStamp, assignmentStatus, subnetMask, - dhcpServer, domainServer, routerAddress, rangeNotEnforced); - } - - public Builder ipAddress(Ip4Address addr) { - ipAddress = addr; - return this; - } - - public Builder timestamp(Date timestamp) { - timeStamp = timestamp; - return this; - } - - public Builder leasePeriod(int leasePeriodinSeconds) { - leasePeriod = leasePeriodinSeconds; - return this; - } - - public Builder assignmentStatus(AssignmentStatus status) { - assignmentStatus = status; - return this; - } - - public Builder subnetMask(Ip4Address subnetMask) { - this.subnetMask = subnetMask; - return this; - } - - public Builder dhcpServer(Ip4Address dhcpServer) { - this.dhcpServer = dhcpServer; - return this; - } - - public Builder domainServer(Ip4Address domainServer) { - this.domainServer = domainServer; - return this; - } - - public Builder routerAddress(Ip4Address routerAddress) { - this.routerAddress = routerAddress; - return this; - } - - public Builder rangeNotEnforced(boolean rangeNotEnforced) { - this.rangeNotEnforced = rangeNotEnforced; - return this; - } - - - private void validateInputs() { - checkNotNull(ipAddress, "IP Address must be specified"); - checkNotNull(assignmentStatus, "Assignment Status must be specified"); - checkNotNull(leasePeriod, "Lease Period must be specified"); - checkNotNull(timeStamp, "Timestamp must be specified"); - - if (rangeNotEnforced) { - checkNotNull(subnetMask, "subnetMask must be specified in case of rangeNotEnforced"); - checkNotNull(dhcpServer, "dhcpServer must be specified in case of rangeNotEnforced"); - checkNotNull(domainServer, "domainServer must be specified in case of rangeNotEnforced"); - checkNotNull(routerAddress, "routerAddress must be specified in case of rangeNotEnforced"); - } - - switch (assignmentStatus) { - case Option_Requested: - case Option_RangeNotEnforced: - case Option_Assigned: - case Option_Expired: - break; - default: - throw new IllegalStateException("Unknown assignment status"); - } - } - } -} |