/*******************************************************************************
* Copyright (c) 2016 Red Hat.
* 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:
* Red Hat - Initial Contribution
*******************************************************************************/
package org.eclipse.linuxtools.internal.docker.core;
import org.eclipse.linuxtools.docker.core.IDockerConnection;
import org.eclipse.linuxtools.docker.core.IDockerVersion;
import com.spotify.docker.client.DockerClient;
import com.spotify.docker.client.messages.Version;
public class DockerVersion implements IDockerVersion {
private IDockerConnection parent;
private String apiVersion;
private String arch;
private String gitCommit;
private String goVersion;
private String kernelVersion;
private String os;
private String version;
/**
* Constructor.
*
* @param connection
* the Docker connection
* @param version
* the underlying {@link Version} data returned by the
* {@link DockerClient}
*/
public DockerVersion(final IDockerConnection connection,
final Version version) {
this.parent = connection;
this.apiVersion = version.apiVersion();
this.arch = version.arch();
this.gitCommit = version.gitCommit();
this.goVersion = version.goVersion();
this.kernelVersion = version.kernelVersion();
this.os = version.os();
this.version = version.version();
}
@Override
public IDockerConnection getConnection() {
return parent;
}
@Override
public String apiVersion() {
return apiVersion;
}
@Override
public String arch() {
return arch;
}
@Override
public String gitCommit() {
return gitCommit;
}
@Override
public String goVersion() {
return goVersion;
}
@Override
public String kernelVersion() {
return kernelVersion;
}
@Override
public String os() {
return os;
}
@Override
public String version() {
return version;
}
@Override
public boolean equals(final Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
final DockerVersion version1 = (DockerVersion) o;
if (apiVersion != null ? !apiVersion.equals(version1.apiVersion)
: version1.apiVersion != null) {
return false;
}
if (arch != null ? !arch.equals(version1.arch)
: version1.arch != null) {
return false;
}
if (gitCommit != null ? !gitCommit.equals(version1.gitCommit)
: version1.gitCommit != null) {
return false;
}
if (goVersion != null ? !goVersion.equals(version1.goVersion)
: version1.goVersion != null) {
return false;
}
if (kernelVersion != null
? !kernelVersion.equals(version1.kernelVersion)
: version1.kernelVersion != null) {
return false;
}
if (os != null ? !os.equals(version1.os) : version1.os != null) {
return false;
}
if (version != null ? !version.equals(version1.version)
: version1.version != null) {
return false;
}
return true;
}
@Override
public int hashCode() {
int result = apiVersion != null ? apiVersion.hashCode() : 0;
result = 31 * result + (arch != null ? arch.hashCode() : 0);
result = 31 * result + (gitCommit != null ? gitCommit.hashCode() : 0);
result = 31 * result + (goVersion != null ? goVersion.hashCode() : 0);
result = 31 * result
+ (kernelVersion != null ? kernelVersion.hashCode() : 0);
result = 31 * result + (os != null ? os.hashCode() : 0);
result = 31 * result + (version != null ? version.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "Version: apiVersion=" + apiVersion + "\n" + "arch" + arch + "\n"
+ "gitCommit" + gitCommit + "\n" + "goVersion" + goVersion
+ "\n" + "kernelVersion" + kernelVersion + "\n" + "os" + os
+ "\n" + "version" + version + "\n";
}
}