package com.ttech.cordovabuild.domain.application;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ttech.cordovabuild.domain.asset.AssetRef;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.persistence.*;
import java.util.HashSet;
import java.util.Set;
@Embeddable
public class ApplicationConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationConfig.class);
@Column(length = 1024)
@Basic
private String applicationPackage;
@Column(length = 200)
@Basic
private String applicationVersion;
@Column(length = 200)
@Basic
private String phoneGapversion;
@Column(length = 1024)
@Basic
private String applicationName;
@ElementCollection(fetch = FetchType.EAGER)
@Enumerated(EnumType.STRING)
private Set<ApplicationFeature> features;
@JsonIgnore
@Basic
private Integer iconWidth;
@JsonIgnore
@Basic
private Integer iconHeight;
@Embedded
@AttributeOverrides({@AttributeOverride(name = "uuid", column = @Column(name = "icon_uuid")), @AttributeOverride(name = "mimeType", column = @Column(name = "icon_mimetype"))})
@JsonIgnore
@Column(nullable = true)
private AssetRef iconAssetRef;
public ApplicationConfig(String applicationName, String applicationPackage, String applicationVersion,
String phoneGapversion, Set<ApplicationFeature> features, Integer iconWidth, Integer iconHeight, AssetRef iconAssetRef) {
this.applicationName = applicationName;
this.applicationPackage = applicationPackage;
this.applicationVersion = applicationVersion;
this.phoneGapversion = phoneGapversion;
this.features = features;
this.iconHeight = iconHeight;
this.iconWidth = iconWidth;
this.iconAssetRef = iconAssetRef;
}
public ApplicationConfig() {
}
public ApplicationConfig(ApplicationConfig applicationConfig) {
this.applicationName = applicationConfig.applicationName;
this.applicationPackage = applicationConfig.applicationPackage;
this.applicationVersion = applicationConfig.applicationVersion;
this.phoneGapversion = applicationConfig.phoneGapversion;
this.iconHeight = applicationConfig.getIconHeight();
this.iconWidth = applicationConfig.getIconWidth();
this.iconAssetRef = applicationConfig.getIconAssetRef();
this.features = new HashSet<>(applicationConfig.features);
}
public String getApplicationPackage() {
return applicationPackage;
}
public void setApplicationPackage(String appPackage) {
this.applicationPackage = appPackage;
}
public String getApplicationVersion() {
return applicationVersion;
}
public void setApplicationVersion(String version) {
this.applicationVersion = version;
}
public String getPhoneGapversion() {
return phoneGapversion;
}
public void setPhoneGapversion(String phoneGapversion) {
this.phoneGapversion = phoneGapversion;
}
@Override
public String toString() {
return "ApplicationConfig [appPackage=" + applicationPackage + ", version="
+ applicationVersion + ", phoneGapversion=" + phoneGapversion + ", name="
+ applicationName + "]";
}
public String getApplicationName() {
return applicationName;
}
public void setApplicationName(String name) {
this.applicationName = name;
}
public Set<ApplicationFeature> getFeatures() {
return features;
}
public void setFeatures(Set<ApplicationFeature> features) {
this.features = features;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ApplicationConfig that = (ApplicationConfig) o;
if (!applicationName.equals(that.applicationName)) return false;
if (!applicationPackage.equals(that.applicationPackage)) return false;
if (!applicationVersion.equals(that.applicationVersion)) return false;
if (!features.equals(that.features)) return false;
if (!phoneGapversion.equals(that.phoneGapversion)) return false;
return true;
}
@Override
public int hashCode() {
int result = applicationPackage.hashCode();
result = 31 * result + applicationVersion.hashCode();
result = 31 * result + phoneGapversion.hashCode();
result = 31 * result + applicationName.hashCode();
result = 31 * result + features.hashCode();
return result;
}
public Integer getIconWidth() {
return iconWidth;
}
public void setIconWidth(Integer iconWidth) {
this.iconWidth = iconWidth;
}
public Integer getIconHeight() {
return iconHeight;
}
public void setIconHeight(Integer iconHeight) {
this.iconHeight = iconHeight;
}
public AssetRef getIconAssetRef() {
return iconAssetRef;
}
public void setIconAssetRef(AssetRef iconAssetRef) {
this.iconAssetRef = iconAssetRef;
}
}