/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.plugin.docker.client.json.network;
import java.util.Map;
import java.util.Objects;
/**
* Represents configuration that should be passed to docker API to create new network.
*
* @author Alexander Garagatyi
*/
public class NewNetwork {
private String name;
private boolean checkDuplicate;
private String driver;
private boolean internal;
private Ipam iPAM;
private boolean enableIPv6;
private Map<String, String> options;
private Map<String, String> labels;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public NewNetwork withName(String name) {
this.name = name;
return this;
}
public boolean isCheckDuplicate() {
return checkDuplicate;
}
public void setCheckDuplicate(boolean checkDuplicate) {
this.checkDuplicate = checkDuplicate;
}
public NewNetwork withCheckDuplicate(boolean checkDuplicate) {
this.checkDuplicate = checkDuplicate;
return this;
}
public String getDriver() {
return driver;
}
public void setDriver(String driver) {
this.driver = driver;
}
public NewNetwork withDriver(String driver) {
this.driver = driver;
return this;
}
public boolean isInternal() {
return internal;
}
public void setInternal(boolean internal) {
this.internal = internal;
}
public NewNetwork withInternal(boolean internal) {
this.internal = internal;
return this;
}
public Ipam getIPAM() {
return iPAM;
}
public void setIPAM(Ipam iPAM) {
this.iPAM = iPAM;
}
public NewNetwork withIPAM(Ipam iPAM) {
this.iPAM = iPAM;
return this;
}
public boolean isEnableIPv6() {
return enableIPv6;
}
public void setEnableIPv6(boolean enableIPv6) {
this.enableIPv6 = enableIPv6;
}
public NewNetwork withEnableIPv6(boolean enableIPv6) {
this.enableIPv6 = enableIPv6;
return this;
}
public Map<String, String> getOptions() {
return options;
}
public void setOptions(Map<String, String> options) {
this.options = options;
}
public NewNetwork withOptions(Map<String, String> options) {
this.options = options;
return this;
}
public Map<String, String> getLabels() {
return labels;
}
public void setLabels(Map<String, String> labels) {
this.labels = labels;
}
public NewNetwork withLabels(Map<String, String> labels) {
this.labels = labels;
return this;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof NewNetwork)) {
return false;
}
final NewNetwork that = (NewNetwork)obj;
return checkDuplicate == that.checkDuplicate
&& internal == that.internal
&& enableIPv6 == that.enableIPv6
&& Objects.equals(name, that.name)
&& Objects.equals(driver, that.driver)
&& Objects.equals(iPAM, that.iPAM)
&& getOptions().equals(that.getOptions())
&& getLabels().equals(that.getLabels());
}
@Override
public int hashCode() {
int hash = 7;
hash = 31 * hash + Objects.hashCode(name);
hash = 31 * hash + Boolean.hashCode(checkDuplicate);
hash = 31 * hash + Objects.hashCode(driver);
hash = 31 * hash + Boolean.hashCode(internal);
hash = 31 * hash + Objects.hashCode(iPAM);
hash = 31 * hash + Boolean.hashCode(enableIPv6);
hash = 31 * hash + getOptions().hashCode();
hash = 31 * hash + getLabels().hashCode();
return hash;
}
@Override
public String toString() {
return "NewNetwork{" +
"name='" + name + '\'' +
", checkDuplicate=" + checkDuplicate +
", driver='" + driver + '\'' +
", internal=" + internal +
", iPAM=" + iPAM +
", enableIPv6=" + enableIPv6 +
", options=" + options +
", labels=" + labels +
'}';
}
}