/*
* Copyright (C) 2015-2017 PÂRIS Quentin
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package org.phoenicis.engines.dto;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
@JsonDeserialize(builder = EngineVersionDTO.Builder.class)
public class EngineVersionDTO {
private final String version;
private final String url;
private final String sha1sum;
private final String geckoUrl;
private final String geckoMd5;
private final String monoUrl;
private final String monoMd5;
private final String monoFile;
private final String geckoFile;
private EngineVersionDTO(Builder builder) {
version = builder.version;
url = builder.url;
sha1sum = builder.sha1sum;
geckoUrl = builder.geckoUrl;
geckoMd5 = builder.geckoMd5;
monoUrl = builder.monoUrl;
monoMd5 = builder.monoMd5;
monoFile = builder.monoFile;
geckoFile = builder.geckoFile;
}
public String getVersion() {
return version;
}
public String getUrl() {
return url;
}
public String getSha1sum() {
return sha1sum;
}
public String getGeckoMd5() {
return geckoMd5;
}
public String getGeckoUrl() {
return geckoUrl;
}
public String getMonoMd5() {
return monoMd5;
}
public String getMonoUrl() {
return monoUrl;
}
public String getMonoFile() {
return monoFile;
}
public String getGeckoFile() {
return geckoFile;
}
@Override
public String toString() {
return new ToStringBuilder(EngineVersionDTO.class).append("version", version).append("url", url)
.append("sha1sum", sha1sum).append("geckoUrl", geckoUrl).append("geckoMd5", geckoMd5)
.append("monoUrl", monoUrl).append("monoMd5", monoMd5).toString();
}
@JsonPOJOBuilder(buildMethodName = "build", withPrefix = "with")
public static class Builder {
private String version;
private String url;
private String sha1sum;
private String geckoUrl;
private String geckoMd5;
private String monoUrl;
private String monoMd5;
private String monoFile;
private String geckoFile;
public Builder withGeckoMd5(String geckoMd5) {
this.geckoMd5 = geckoMd5;
return this;
}
public Builder withGeckoUrl(String geckoUrl) {
this.geckoUrl = geckoUrl;
return this;
}
public Builder withMonoMd5(String monoMd5) {
this.monoMd5 = monoMd5;
return this;
}
public Builder withMonoUrl(String monoUrl) {
this.monoUrl = monoUrl;
return this;
}
public Builder withSha1sum(String sha1sum) {
this.sha1sum = sha1sum;
return this;
}
public Builder withUrl(String url) {
this.url = url;
return this;
}
public Builder withVersion(String version) {
this.version = version;
return this;
}
public Builder withMonoFile(String monoFile) {
this.monoFile = monoFile;
return this;
}
public Builder withGeckoFile(String geckoFile) {
this.geckoFile = geckoFile;
return this;
}
public EngineVersionDTO build() {
return new EngineVersionDTO(this);
}
}
}