diff --git a/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/flickr/FlickrMedia.java b/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/flickr/FlickrMedia.java index 4d58fda6..012456aa 100644 --- a/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/flickr/FlickrMedia.java +++ b/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/flickr/FlickrMedia.java @@ -1,304 +1,303 @@ package org.wikimedia.commons.donvip.spacemedia.data.domain.flickr; import java.net.URL; import java.time.LocalDateTime; import java.util.HashSet; import java.util.Objects; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.ManyToMany; import javax.persistence.Table; import javax.persistence.Transient; -import javax.validation.constraints.NotNull; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.hibernate.search.annotations.Analyze; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.Indexed; import org.hibernate.search.annotations.Store; import org.wikimedia.commons.donvip.spacemedia.data.domain.Media; import org.wikimedia.commons.donvip.spacemedia.utils.UnitedStates; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; @Entity @Indexed @Table(indexes = { @Index(columnList = "sha1, phash") }) public class FlickrMedia extends Media { @Id - @NotNull + @Column(nullable = false) private Long id; - @NotNull + @Column(nullable = false) private int license; @JsonProperty("dateupload") @Column(name = "date_upload", nullable = false) private LocalDateTime date; @JsonProperty("lastupdate") private LocalDateTime lastUpdate; @JsonProperty("datetaken") private LocalDateTime dateTaken; @JsonProperty("datetakengranularity") private int dateTakenGranularity; @ElementCollection(fetch = FetchType.EAGER) private Set tags; @JsonProperty("originalformat") private String originalFormat; private double latitude; private double longitude; private double accuracy; - @NotNull + @Column(nullable = false) @Enumerated(EnumType.STRING) private FlickrMediaType media; @JsonProperty("media_status") private String mediaStatus; @Transient @JsonInclude @JsonProperty("url_o") private URL originalUrl; @JsonProperty("height_o") private int originalHeight; @JsonProperty("width_o") private int originalWidth; - @NotNull + @Column(nullable = false) @JsonProperty("pathalias") @Field(index = org.hibernate.search.annotations.Index.YES, analyze = Analyze.NO, store = Store.NO) private String pathAlias; @JsonIgnoreProperties({ "pathAlias", "members" }) @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH}, mappedBy = "members") private Set photosets = new HashSet<>(); @Override public Long getId() { return id; } @Override public void setId(Long id) { this.id = id; } public int getLicense() { return license; } public void setLicense(int license) { this.license = license; } @Override public LocalDateTime getDate() { return date; } @Override public void setDate(LocalDateTime date) { this.date = date; } public LocalDateTime getLastUpdate() { return lastUpdate; } public void setLastUpdate(LocalDateTime lastUpdate) { this.lastUpdate = lastUpdate; } public LocalDateTime getDateTaken() { return dateTaken; } public void setDateTaken(LocalDateTime dateTaken) { this.dateTaken = dateTaken; } public int getDateTakenGranularity() { return dateTakenGranularity; } public void setDateTakenGranularity(int dateTakenGranularity) { this.dateTakenGranularity = dateTakenGranularity; } public Set getTags() { return tags; } public void setTags(Set tags) { this.tags = tags; } public String getOriginalFormat() { return originalFormat; } public void setOriginalFormat(String originalFormat) { this.originalFormat = originalFormat; } public double getLatitude() { return latitude; } public void setLatitude(double latitude) { this.latitude = latitude; } public double getLongitude() { return longitude; } public void setLongitude(double longitude) { this.longitude = longitude; } public double getAccuracy() { return accuracy; } public void setAccuracy(double accuracy) { this.accuracy = accuracy; } public FlickrMediaType getMedia() { return media; } public void setMedia(FlickrMediaType media) { this.media = media; } public String getMediaStatus() { return mediaStatus; } public void setMediaStatus(String mediaStatus) { this.mediaStatus = mediaStatus; } public URL getOriginalUrl() { return originalUrl; } public void setOriginalUrl(URL originalUrl) { metadata.setAssetUrl(originalUrl); this.originalUrl = originalUrl; } public int getOriginalHeight() { return originalHeight; } public void setOriginalHeight(int originalHeight) { this.originalHeight = originalHeight; } public int getOriginalWidth() { return originalWidth; } public void setOriginalWidth(int originalWidth) { this.originalWidth = originalWidth; } public String getPathAlias() { return pathAlias; } public void setPathAlias(String pathAlias) { this.pathAlias = pathAlias; } public Set getPhotosets() { return photosets; } public void addPhotoSet(FlickrPhotoSet photoset) { this.photosets.add(photoset); photoset.getMembers().add(this); } public void removePhotoSet(FlickrPhotoSet photoset) { this.photosets.remove(photoset); photoset.getMembers().remove(this); } @Override public String getUploadTitle() { if ((UnitedStates.isVirin(title) || UnitedStates.isFakeVirin(title)) && CollectionUtils.isNotEmpty(getPhotosets())) { String albumTitle = getPhotosets().iterator().next().getTitle(); if (StringUtils.isNotBlank(albumTitle)) { return albumTitle + " (" + getId() + ")"; } } return super.getUploadTitle(); } @Override public int hashCode() { return 31 * super.hashCode() + Objects.hash(id, pathAlias); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj) || getClass() != obj.getClass()) return false; FlickrMedia other = (FlickrMedia) obj; return Objects.equals(id, other.id) && Objects.equals(pathAlias, other.pathAlias); } @Override public String toString() { return "FlickrMedia [" + (id != null ? "id=" + id + ", " : "") + (title != null ? "title=" + title + ", " : "") + "license=" + license + ", " + (date != null ? "date=" + date + ", " : "") + (pathAlias != null ? "pathAlias=" + pathAlias + ", " : "") + "metadata=" + metadata + "]"; } @Override public boolean isAudio() { return false; } @Override public boolean isImage() { return media == FlickrMediaType.photo; } @Override public boolean isVideo() { return media == FlickrMediaType.video; } } diff --git a/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/flickr/FlickrPhotoSet.java b/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/flickr/FlickrPhotoSet.java index a6faed21..300d6dfe 100644 --- a/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/flickr/FlickrPhotoSet.java +++ b/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/flickr/FlickrPhotoSet.java @@ -1,85 +1,84 @@ package org.wikimedia.commons.donvip.spacemedia.data.domain.flickr; import java.util.HashSet; import java.util.Objects; import java.util.Set; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Lob; import javax.persistence.ManyToMany; -import javax.validation.constraints.NotNull; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @Entity public class FlickrPhotoSet { @Id - @NotNull + @Column(nullable = false) private Long id; @Lob @Column(columnDefinition = "TEXT", nullable = false) private String title; - @NotNull + @Column(nullable = false) private String pathAlias; @ManyToMany @JsonIgnoreProperties("photosets") protected Set members = new HashSet<>(); public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Set getMembers() { return members; } public void setMembers(Set members) { this.members = members; } public String getPathAlias() { return pathAlias; } public void setPathAlias(String pathAlias) { this.pathAlias = pathAlias; } @Override public int hashCode() { return Objects.hash(id, title); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null || getClass() != obj.getClass()) return false; FlickrPhotoSet other = (FlickrPhotoSet) obj; return Objects.equals(id, other.id) && Objects.equals(title, other.title); } @Override public String toString() { return title; } } diff --git a/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/kari/KariMedia.java b/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/kari/KariMedia.java index 95bfb990..84275390 100644 --- a/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/kari/KariMedia.java +++ b/sm-legacyapp/src/main/java/org/wikimedia/commons/donvip/spacemedia/data/domain/kari/KariMedia.java @@ -1,94 +1,94 @@ package org.wikimedia.commons.donvip.spacemedia.data.domain.kari; import java.time.LocalDate; import java.util.Objects; +import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.Table; -import javax.validation.constraints.NotNull; import org.hibernate.search.annotations.Indexed; import org.wikimedia.commons.donvip.spacemedia.data.domain.Media; @Entity @Indexed @Table(indexes = { @Index(columnList = "sha1, phash") }) public class KariMedia extends Media { @Id - @NotNull + @Column(nullable = false) private Integer id; private String kariId; private LocalDate date; @Override public Integer getId() { return id; } @Override public void setId(Integer id) { this.id = id; } public String getKariId() { return kariId; } public void setKariId(String kariId) { this.kariId = kariId; } @Override public LocalDate getDate() { return date; } @Override public void setDate(LocalDate date) { this.date = date; } @Override public String toString() { return "KariMedia [id=" + id + ", " + (title != null ? "title=" + title + ", " : "") + (kariId != null ? "kariId=" + kariId + ", " : "") + (date != null ? "date=" + date + ", " : "") + (description != null ? "description=" + description + ", " : "") + "metadata=" + metadata + "]"; } @Override public int hashCode() { return 31 * super.hashCode() + Objects.hash(id, kariId); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj) || getClass() != obj.getClass()) return false; KariMedia other = (KariMedia) obj; return id == other.id && Objects.equals(kariId, other.kariId); } @Override public boolean isAudio() { return false; } @Override public boolean isImage() { return true; } @Override public boolean isVideo() { return false; } }