blob: 77e7360a1adae8924206c821d6306ecba93c82d2 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.jclouds.cloudsigma2.domain;
import javax.inject.Named;
import java.beans.ConstructorProperties;
public class NIC {
public static class Builder {
private int bootOrder;
private FirewallPolicy firewallPolicy;
private IPConfiguration ipV4Configuration;
private IPConfiguration ipV6Configuration;
private String mac;
private Model model;
private NICStats runtime;
private VLANInfo vlan;
public Builder bootOrder(int bootOrder) {
this.bootOrder = bootOrder;
return this;
}
public Builder model(Model model) {
this.model = model;
return this;
}
public Builder vlan(VLANInfo vlan) {
this.vlan = vlan;
return this;
}
public Builder mac(String mac) {
this.mac = mac;
return this;
}
public Builder runtime(NICStats runtime) {
this.runtime = runtime;
return this;
}
public Builder firewallPolicy(FirewallPolicy firewallPolicy) {
this.firewallPolicy = firewallPolicy;
return this;
}
public Builder ipV4Configuration(IPConfiguration ipV4Configuration) {
this.ipV4Configuration = ipV4Configuration;
return this;
}
public Builder ipV6Configuration(IPConfiguration ipV6Configuration) {
this.ipV6Configuration = ipV6Configuration;
return this;
}
public NIC build() {
return new NIC(bootOrder, firewallPolicy, ipV4Configuration, ipV6Configuration, mac, model, runtime, vlan);
}
public Builder fromNIC(NIC nic) {
return new Builder()
.bootOrder(nic.getBootOrder())
.firewallPolicy(nic.getFirewallPolicy())
.ipV4Configuration(nic.getIpV4Configuration())
.ipV6Configuration(nic.getIpV6Configuration())
.mac(nic.getMac())
.model(nic.getModel())
.runtime(nic.getRuntime())
.vlan(nic.getVlan());
}
}
@Named("boot_order")
private final int bootOrder;
@Named("firewall_policy")
private final FirewallPolicy firewallPolicy;
@Named("ip_v4_conf")
private final IPConfiguration ipV4Configuration;
@Named("ip_v6_conf")
private final IPConfiguration ipV6Configuration;
private final String mac;
private final Model model;
private final NICStats runtime;
private final VLANInfo vlan;
@ConstructorProperties({
"boot_order", "firewall_policy", "ip_v4_conf", "ip_v6_conf",
"mac", "model", "runtime", "vlan"
})
public NIC(int bootOrder, FirewallPolicy firewallPolicy, IPConfiguration ipV4Configuration,
IPConfiguration ipV6Configuration, String mac, Model model, NICStats runtime, VLANInfo vlan) {
this.bootOrder = bootOrder;
this.firewallPolicy = firewallPolicy;
this.ipV4Configuration = ipV4Configuration;
this.ipV6Configuration = ipV6Configuration;
this.mac = mac;
this.model = model;
this.runtime = runtime;
this.vlan = vlan;
}
/**
* @return Model of NIC.
*/
public Model getModel() {
return model;
}
/**
* @return UUID of the private VLAN.
*/
public VLANInfo getVlan() {
return vlan;
}
/**
* @return MAC address of the server NIC.
*/
public String getMac() {
return mac;
}
/**
* @return Device boot order.
*/
public int getBootOrder() {
return bootOrder;
}
/**
* @return Public IPv4 configuration.
*/
public IPConfiguration getIpV4Configuration() {
return ipV4Configuration;
}
/**
* @return Public IPv6 configuration.
*/
public IPConfiguration getIpV6Configuration() {
return ipV6Configuration;
}
/**
* @return Firewall policy
*/
public FirewallPolicy getFirewallPolicy() {
return firewallPolicy;
}
/**
* @return NIC runtime information
*/
public NICStats getRuntime() {
return runtime;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof NIC)) return false;
NIC nic = (NIC) o;
if (bootOrder != nic.bootOrder) return false;
if (firewallPolicy != null ? !firewallPolicy.equals(nic.firewallPolicy) : nic.firewallPolicy != null)
return false;
if (ipV4Configuration != null ? !ipV4Configuration.equals(nic.ipV4Configuration) : nic.ipV4Configuration != null)
return false;
if (ipV6Configuration != null ? !ipV6Configuration.equals(nic.ipV6Configuration) : nic.ipV6Configuration != null)
return false;
if (mac != null ? !mac.equals(nic.mac) : nic.mac != null) return false;
if (model != nic.model) return false;
if (runtime != null ? !runtime.equals(nic.runtime) : nic.runtime != null) return false;
if (vlan != null ? !vlan.equals(nic.vlan) : nic.vlan != null) return false;
return true;
}
@Override
public int hashCode() {
int result = bootOrder;
result = 31 * result + (firewallPolicy != null ? firewallPolicy.hashCode() : 0);
result = 31 * result + (ipV4Configuration != null ? ipV4Configuration.hashCode() : 0);
result = 31 * result + (ipV6Configuration != null ? ipV6Configuration.hashCode() : 0);
result = 31 * result + (mac != null ? mac.hashCode() : 0);
result = 31 * result + (model != null ? model.hashCode() : 0);
result = 31 * result + (runtime != null ? runtime.hashCode() : 0);
result = 31 * result + (vlan != null ? vlan.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "[" +
"bootOrder=" + bootOrder +
", firewallPolicy='" + firewallPolicy + '\'' +
", ipV4Configuration=" + ipV4Configuration +
", ipV6Configuration=" + ipV6Configuration +
", mac='" + mac + '\'' +
", model=" + model +
", runtime=" + runtime +
", vlan='" + vlan + '\'' +
"]";
}
}