Skip to content

Commit

Permalink
initial code
Browse files Browse the repository at this point in the history
  • Loading branch information
qqmyers committed Feb 8, 2025
1 parent 3aea148 commit 4ec73ea
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 12 deletions.
72 changes: 62 additions & 10 deletions src/main/java/edu/harvard/iq/dataverse/license/License.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,22 +52,22 @@
@UniqueConstraint(columnNames = "uri")}
)
public class License {
public static String CC0 = "http://creativecommons.org/publicdomain/zero/1.0";
public static String CC0 = "http://creativecommons.org/publicdomain/zero/1.0";

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;

@Column(columnDefinition="TEXT", nullable = false, unique = true)
@Column(columnDefinition = "TEXT", nullable = false, unique = true)
private String name;

@Column(columnDefinition="TEXT")
@Column(columnDefinition = "TEXT")
private String shortDescription;

@Column(columnDefinition="TEXT", nullable = false, unique = true)
@Column(columnDefinition = "TEXT", nullable = false, unique = true)
private String uri;

@Column(columnDefinition="TEXT")
@Column(columnDefinition = "TEXT")
private String iconUrl;

@Column(nullable = false)
Expand All @@ -78,8 +78,20 @@ public class License {

@Column(nullable = false, columnDefinition = "BIGINT NOT NULL DEFAULT 0")
private Long sortOrder;

@Column(name = "rights_identifier")
private String rightsIdentifier;

@Column(name = "rights_identifier_scheme")
private String rightsIdentifierScheme;

@Column(name = "scheme_uri")
private String schemeUri;

@OneToMany(mappedBy="license")
@Column(name = "language_code")
private String languageCode;

@OneToMany(mappedBy = "license")
private List<TermsOfUseAndAccess> termsOfUseAndAccess;

public License() {
Expand Down Expand Up @@ -186,18 +198,55 @@ public void setSortOrder(Long sortOrder) {
this.sortOrder = sortOrder;
}

public String getRightsIdentifier() {
return rightsIdentifier;
}

public void setRightsIdentifier(String rightsIdentifier) {
this.rightsIdentifier = rightsIdentifier;
}

public String getRightsIdentifierScheme() {
return rightsIdentifierScheme;
}

public void setRightsIdentifierScheme(String rightsIdentifierScheme) {
this.rightsIdentifierScheme = rightsIdentifierScheme;
}

public String getSchemeUri() {
return schemeUri;
}

public void setSchemeUri(String schemeUri) {
this.schemeUri = schemeUri;
}

public String getLanguageCode() {
return languageCode;
}

public void setLanguageCode(String languageCode) {
this.languageCode = languageCode;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
License license = (License) o;
return active == license.active && id.equals(license.id) && name.equals(license.name) && shortDescription.equals(license.shortDescription) && uri.equals(license.uri) && Objects.equals(iconUrl, license.iconUrl)
&& Objects.equals(sortOrder, license.sortOrder);
return active == license.active && id.equals(license.id) && name.equals(license.name)
&& shortDescription.equals(license.shortDescription) && uri.equals(license.uri)
&& Objects.equals(iconUrl, license.iconUrl) && Objects.equals(sortOrder, license.sortOrder)
&& Objects.equals(rightsIdentifier, license.rightsIdentifier)
&& Objects.equals(rightsIdentifierScheme, license.rightsIdentifierScheme)
&& Objects.equals(schemeUri, license.schemeUri);
}

@Override
public int hashCode() {
return Objects.hash(id, name, shortDescription, uri, iconUrl, active, sortOrder);
return Objects.hash(id, name, shortDescription, uri, iconUrl, active, sortOrder, rightsIdentifier,
rightsIdentifierScheme, schemeUri);
}

@Override
Expand All @@ -211,7 +260,10 @@ public String toString() {
", active=" + active +
", isDefault=" + isDefault +
", sortOrder=" + sortOrder +
", rightsIdentifier='" + rightsIdentifier + '\'' +
", rightsIdentifierScheme='" + rightsIdentifierScheme + '\'' +
", schemeUri='" + schemeUri + '\'' +
'}';
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -1251,10 +1251,25 @@ private void writeAccessRights(XMLStreamWriter xmlw, DvObject dvObject) throws X
}
xmlw.writeEndElement(); // </rights>
xmlw.writeStartElement("rights"); // <rights>

if (license != null) {
xmlw.writeAttribute("rightsURI", license.getUri().toString());
xmlw.writeCharacters(license.getName());
xmlw.writeCharacters(license.getShortDescription());

if (license.getRightsIdentifier() != null) {
xmlw.writeAttribute("rightsIdentifier", license.getRightsIdentifier());
}
if (license.getRightsIdentifierScheme() != null) {
xmlw.writeAttribute("rightsIdentifierScheme", license.getRightsIdentifierScheme());
}
if (license.getSchemeUri() != null) {
xmlw.writeAttribute("schemeURI", license.getSchemeUri());
}
String langCode = license.getLanguageCode();
if (StringUtils.isBlank(langCode)) {
langCode = "en";
}
xmlw.writeAttribute("xml:lang", langCode);
} else {
xmlw.writeAttribute("rightsURI", DatasetUtil.getLicenseURI(dv));
xmlw.writeCharacters(BundleUtil.getStringFromBundle("license.custom.description"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1431,6 +1431,15 @@ private static JsonObjectBuilder jsonLicense(DatasetVersion dsv) {
if (licenseIconUri != null) {
licenseJsonObjectBuilder.add("iconUri", licenseIconUri);
}
License license = DatasetUtil.getLicense(dsv);
if(license != null) {
licenseJsonObjectBuilder.add("rightsIdentifier",license.getRightsIdentifier())
.add("rightsIdentifierScheme", license.getRightsIdentifierScheme())
.add("schemeUri", license.getSchemeUri())
.add("languageCode", license.getLanguageCode());
} else {
licenseJsonObjectBuilder.add("languageCode", BundleUtil.getDefaultLocale().getLanguage());
}
return licenseJsonObjectBuilder;
}

Expand Down
5 changes: 5 additions & 0 deletions src/main/resources/db/migration/V6.5.0.6.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
ALTER TABLE license
ADD COLUMN rights_identifier IF NOT EXISTS VARCHAR(255),
ADD COLUMN rights_identifier_scheme IF NOT EXISTS VARCHAR(255),
ADD COLUMN scheme_uri IF NOT EXISTS VARCHAR(255);
ADD COLUMN language_code IF NOT EXISTS VARCHAR(5);

0 comments on commit 4ec73ea

Please sign in to comment.