org.jclouds.cloudsigma2.domain.IP Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cloudsigma2 Show documentation
Show all versions of cloudsigma2 Show documentation
ComputeService binding to the CloudSigma v2 API
/*
* 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 com.google.inject.name.Named;
import org.jclouds.javax.annotation.Nullable;
import java.beans.ConstructorProperties;
import java.net.URI;
public class IP {
public static class Builder {
protected Owner owner;
protected String uuid;
protected Server server;
protected URI resourceUri;
/**
* @param uuid Uuid of the ip.
* @return IP Builder
*/
public Builder uuid(String uuid) {
this.uuid = uuid;
return this;
}
/**
* @param owner Owner of the ip.
* @return IP Builder
*/
public Builder owner(Owner owner) {
this.owner = owner;
return this;
}
/**
* @param server Server this IP assigned to
* @return IP Builder
*/
public Builder server(Server server) {
this.server = server;
return this;
}
/**
* @param resourceUri Resource uri
* @return IP Builder
*/
public Builder resourceUri(URI resourceUri) {
this.resourceUri = resourceUri;
return this;
}
public IP build() {
return new IP(uuid, owner, server, resourceUri);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Builder)) return false;
Builder builder = (Builder) o;
if (owner != null ? !owner.equals(builder.owner) : builder.owner != null) return false;
if (resourceUri != null ? !resourceUri.equals(builder.resourceUri) : builder.resourceUri != null)
return false;
if (server != null ? !server.equals(builder.server) : builder.server != null) return false;
if (uuid != null ? !uuid.equals(builder.uuid) : builder.uuid != null) return false;
return true;
}
@Override
public int hashCode() {
int result = owner != null ? owner.hashCode() : 0;
result = 31 * result + (uuid != null ? uuid.hashCode() : 0);
result = 31 * result + (server != null ? server.hashCode() : 0);
result = 31 * result + (resourceUri != null ? resourceUri.hashCode() : 0);
return result;
}
}
protected final Owner owner;
protected final String uuid;
protected final Server server;
@Named("resource_uri")
protected final URI resourceUri;
@ConstructorProperties({
"uuid", "owner", "server", "resource_uri"
})
public IP(String uuid, Owner owner, Server server, URI resourceUri) {
this.owner = owner;
this.uuid = uuid;
this.server = server;
this.resourceUri = resourceUri;
}
/**
* @return Uuid of the ip.
*/
@Nullable
public String getUuid() {
return uuid;
}
/**
* @return Owner of the ip.
*/
public Owner getOwner() {
return owner;
}
/**
* @return Server this IP assigned to
*/
public Server getServer() {
return server;
}
/**
* @return Resource uri
*/
public URI getResourceUri() {
return resourceUri;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof IP)) return false;
IP ip = (IP) o;
if (owner != null ? !owner.equals(ip.owner) : ip.owner != null) return false;
if (resourceUri != null ? !resourceUri.equals(ip.resourceUri) : ip.resourceUri != null) return false;
if (server != null ? !server.equals(ip.server) : ip.server != null) return false;
if (uuid != null ? !uuid.equals(ip.uuid) : ip.uuid != null) return false;
return true;
}
@Override
public int hashCode() {
int result = owner != null ? owner.hashCode() : 0;
result = 31 * result + (uuid != null ? uuid.hashCode() : 0);
result = 31 * result + (server != null ? server.hashCode() : 0);
result = 31 * result + (resourceUri != null ? resourceUri.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "[" +
"owner=" + owner +
", uuid='" + uuid + '\'' +
", server=" + server +
", resourceUri=" + resourceUri +
"]";
}
/**
* Creates DHCP V4 NIC for attaching to server
*
* @param model Interface model
* @param firewallPolicy Firewall policy for interface
* @return server's NIC
*/
public static NIC createDHCPIPv4ConfNIC(Model model, FirewallPolicy firewallPolicy) {
return new NIC.Builder()
.ipV4Configuration(new IPConfiguration(IPConfigurationType.DHCP, null))
.model(model)
.firewallPolicy(firewallPolicy)
.build();
}
/**
* Creates DHCP V4 NIC for attaching to server
*
* @param model Interface model
* @return server's NIC
*/
public static NIC createDHCPIPv4ConfNIC(Model model) {
return createDHCPIPv4ConfNIC(model, null);
}
/**
* Creates DHCP V6 NIC for attaching to server
*
* @param model Interface model
* @param firewallPolicy Firewall policy for interface
* @return server's NIC
*/
public static NIC createDHCPIPv6ConfNIC(Model model, FirewallPolicy firewallPolicy) {
return new NIC.Builder()
.ipV4Configuration(new IPConfiguration(IPConfigurationType.DHCP, null))
.model(model)
.firewallPolicy(firewallPolicy)
.build();
}
/**
* Creates DHCP V6 NIC for attaching to server
*
* @param model Interface model
* @return server's NIC
*/
public static NIC createDHCPIPv6ConfNIC(Model model) {
return createDHCPIPv6ConfNIC(model, null);
}
/**
* Creates NIC with static IP for attaching to server
*
* @param model Interface model
* @param firewallPolicy Firewall policy
* @return server's NIC
*/
public NIC toNIC(Model model, FirewallPolicy firewallPolicy) {
return new NIC.Builder()
.ipV4Configuration(new IPConfiguration(IPConfigurationType.STATIC, this))
.firewallPolicy(firewallPolicy)
.build();
}
/**
* Creates NIC with static IP for attaching to server
*
* @return server's NIC
*/
public NIC toNIC() {
return toNIC(null, null);
}
}