2019-10-24 11:39:41 +02:00
|
|
|
package eu.dnetlib.dhp.schema.oaf;
|
|
|
|
|
|
|
|
import java.io.Serializable;
|
|
|
|
import java.util.List;
|
2020-03-11 16:57:28 +01:00
|
|
|
import java.util.Objects;
|
2019-10-24 11:39:41 +02:00
|
|
|
|
2019-10-25 18:10:30 +02:00
|
|
|
public class Software extends Result implements Serializable {
|
2019-10-24 11:39:41 +02:00
|
|
|
|
|
|
|
private List<Field<String>> documentationUrl;
|
|
|
|
|
|
|
|
private List<StructuredProperty> license;
|
|
|
|
|
|
|
|
private Field<String> codeRepositoryUrl;
|
|
|
|
|
|
|
|
private Qualifier programmingLanguage;
|
|
|
|
|
|
|
|
public List<Field<String>> getDocumentationUrl() {
|
|
|
|
return documentationUrl;
|
|
|
|
}
|
|
|
|
|
2019-10-25 18:10:30 +02:00
|
|
|
public void setDocumentationUrl(List<Field<String>> documentationUrl) {
|
2019-10-24 11:39:41 +02:00
|
|
|
this.documentationUrl = documentationUrl;
|
|
|
|
}
|
|
|
|
|
|
|
|
public List<StructuredProperty> getLicense() {
|
|
|
|
return license;
|
|
|
|
}
|
|
|
|
|
2019-10-25 18:10:30 +02:00
|
|
|
public void setLicense(List<StructuredProperty> license) {
|
2019-10-24 11:39:41 +02:00
|
|
|
this.license = license;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Field<String> getCodeRepositoryUrl() {
|
|
|
|
return codeRepositoryUrl;
|
|
|
|
}
|
|
|
|
|
2019-10-25 18:10:30 +02:00
|
|
|
public void setCodeRepositoryUrl(Field<String> codeRepositoryUrl) {
|
2019-10-24 11:39:41 +02:00
|
|
|
this.codeRepositoryUrl = codeRepositoryUrl;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Qualifier getProgrammingLanguage() {
|
|
|
|
return programmingLanguage;
|
|
|
|
}
|
|
|
|
|
2019-10-25 18:10:30 +02:00
|
|
|
public void setProgrammingLanguage(Qualifier programmingLanguage) {
|
2019-10-24 11:39:41 +02:00
|
|
|
this.programmingLanguage = programmingLanguage;
|
2019-10-25 10:55:35 +02:00
|
|
|
}
|
2019-12-13 09:40:02 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void mergeFrom(OafEntity e) {
|
|
|
|
super.mergeFrom(e);
|
2020-04-01 18:28:23 +02:00
|
|
|
|
2020-04-18 12:42:58 +02:00
|
|
|
if (!Software.class.isAssignableFrom(e.getClass())) {
|
2020-04-01 18:28:23 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-12-13 09:40:02 +01:00
|
|
|
final Software s = (Software) e;
|
|
|
|
documentationUrl = mergeLists(documentationUrl, s.getDocumentationUrl());
|
|
|
|
|
|
|
|
license = mergeLists(license, s.getLicense());
|
|
|
|
|
2020-04-18 12:42:58 +02:00
|
|
|
codeRepositoryUrl =
|
|
|
|
s.getCodeRepositoryUrl() != null && compareTrust(this, s) < 0
|
|
|
|
? s.getCodeRepositoryUrl()
|
|
|
|
: codeRepositoryUrl;
|
2019-12-13 09:40:02 +01:00
|
|
|
|
2020-04-18 12:42:58 +02:00
|
|
|
programmingLanguage =
|
|
|
|
s.getProgrammingLanguage() != null && compareTrust(this, s) < 0
|
|
|
|
? s.getProgrammingLanguage()
|
|
|
|
: programmingLanguage;
|
2019-12-13 09:40:02 +01:00
|
|
|
|
|
|
|
mergeOAFDataInfo(e);
|
|
|
|
}
|
2020-03-11 16:57:28 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean equals(Object o) {
|
|
|
|
if (this == o) return true;
|
|
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
|
|
if (!super.equals(o)) return false;
|
|
|
|
Software software = (Software) o;
|
2020-04-18 12:42:58 +02:00
|
|
|
return Objects.equals(documentationUrl, software.documentationUrl)
|
|
|
|
&& Objects.equals(license, software.license)
|
|
|
|
&& Objects.equals(codeRepositoryUrl, software.codeRepositoryUrl)
|
|
|
|
&& Objects.equals(programmingLanguage, software.programmingLanguage);
|
2020-03-11 16:57:28 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int hashCode() {
|
2020-04-18 12:42:58 +02:00
|
|
|
return Objects.hash(
|
|
|
|
super.hashCode(),
|
|
|
|
documentationUrl,
|
|
|
|
license,
|
|
|
|
codeRepositoryUrl,
|
|
|
|
programmingLanguage);
|
2020-03-11 16:57:28 +01:00
|
|
|
}
|
2019-10-24 11:39:41 +02:00
|
|
|
}
|