Package nl.vpro.domain.media.support
Class Image
- java.lang.Object
-
- nl.vpro.domain.DomainObject
-
- nl.vpro.domain.AbstractPublishableObject<T>
-
- nl.vpro.domain.media.support.PublishableObject<Image>
-
- nl.vpro.domain.media.support.Image
-
- All Implemented Interfaces:
Serializable
,Accountable
,Changeable
,Child<MediaObject>
,Embargo
,Identifiable<Long>
,Metadata
,MutableMetadata<Image>
,nl.vpro.domain.media.support.MutableOwnable
,nl.vpro.domain.media.support.Ownable
,TrackableObject
,MutableEmbargo<Image>
,MutableEmbargoDeprecated<Image>
,Publishable<Image>
,Trackable
@Entity public class Image extends PublishableObject<Image> implements MutableMetadata<Image>, nl.vpro.domain.media.support.MutableOwnable, Child<MediaObject>
A
MediaObject
can have more than one images. But among themgetImageUri()
/getType()
is unique.The image owner describes an origin of the image. Several media suppliers provide there own images. To prevent conflicts while updating for incoming data, images for those suppliers are kept in parallel.
TODO: I think we may elaborate a bit on image uniqueness.
equals(Object)
implements what is said above. But why e.g. a differentgetOwner()
would not make a different image?- Since:
- 0.4
- Author:
- Roelof Jan Koekoek
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Image.Builder
-
Nested classes/interfaces inherited from interface nl.vpro.domain.image.Metadata
Metadata.LombokBuilder<SELF extends Metadata.LombokBuilder<SELF>>
-
-
Field Summary
Fields Modifier and Type Field Description static String
BASE_URN
protected List<@NotNull @CRID String>
crids
protected Duration
offset
static Pattern
SERVER_URI_PATTERN
-
Fields inherited from class nl.vpro.domain.media.support.PublishableObject
PUBLISH_WORKFLOW, workflow
-
Fields inherited from class nl.vpro.domain.AbstractPublishableObject
createdBy, creationInstant, lastModified, lastModifiedBy, lastPublished, publishStart, publishStop
-
Fields inherited from class nl.vpro.domain.DomainObject
id
-
-
Constructor Summary
Constructors Modifier Constructor Description Image()
Image(Image source)
Image(nl.vpro.domain.media.support.OwnerType owner)
Image(nl.vpro.domain.media.support.OwnerType owner, String imageUri)
Image(nl.vpro.domain.media.support.OwnerType owner, ImageType type, String imageUri)
protected
Image(nl.vpro.domain.media.support.OwnerType owner, ImageType type, String imageUri, String title, String description, Long id, String credits, nl.vpro.domain.support.License license, String source, Integer height, Integer width, Duration offset, String date, Instant publishStart, Instant publishStop, Instant creationInstant, Instant lastModified, List<String> crids)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static @NonNull Image.Builder
builder()
static Image
copy(Image source)
ChangeReport
copyFrom(@NonNull MutableMetadata<?> metadata)
boolean
equals(Object obj)
String
getCredits()
List<@NotNull @CRID String>
getCrids()
String
getDate()
String
getDescription()
Integer
getHeight()
static @Nullable Long
getIdFromImageUri(@Nullable String imageUri)
Long
getImageId()
String
getImageUri()
The 'uri' of the image on the image server This means a string of the form urn:vpro:image:<id> where id is the database id of the image in the image database.nl.vpro.domain.support.License
getLicense()
Duration
getOffset()
nl.vpro.domain.media.support.OwnerType
getOwner()
MediaObject
getParent()
Implementations can optionally become child of a trackable parent where the parents track-ability decides on this child's track-ability.String
getSource()
String
getSourceName()
String
getTitle()
ImageType
getType()
String
getUrnPrefix()
For images in the media database it is "urn:vpro:media:image:"Integer
getWidth()
int
hashCode()
static Long
idFromUrn(String urn)
Boolean
isHighlighted()
static Image
of(@NonNull BackendImageMetadata<?> metaData)
void
setCredits(String credits)
void
setCrids(List<@NotNull @CRID String> crids)
void
setDate(String date)
void
setDescription(String description)
void
setHeight(Integer height)
Image
setHighlighted(Boolean highlighted)
Image
setImageUri(String uri)
void
setLicense(nl.vpro.domain.support.License license)
Image
setOffset(Duration offset)
void
setOwner(nl.vpro.domain.media.support.OwnerType owner)
void
setParent(MediaObject mediaObject)
@NonNull Image
setPublishStartInstant(Instant publishStart)
@NonNull Image
setPublishStopInstant(Instant publishStop)
void
setSource(String source)
void
setSourceName(String sourceName)
void
setTitle(String title)
void
setType(ImageType type)
void
setWidth(Integer width)
@NonNull Image.Builder
toBuilder()
String
toString()
static @NonNull Image
update(@NonNull Image from, @NonNull Image to)
-
Methods inherited from class nl.vpro.domain.media.support.PublishableObject
acceptChanges, beforeUnmarshal, calcCRC32, getHash, getWorkflow, hasChanges, isActivation, isDeactivation, isDeleted, serializeForCalcCRC32, setWorkflow
-
Methods inherited from class nl.vpro.domain.AbstractPublishableObject
getCreatedBy, getCreationInstant, getLastModifiedBy, getLastModifiedInstant, getLastPublishedInstant, getPublishStartInstant, getPublishStopInstant, getUrn, setCreatedBy, setCreationInstant, setLastModifiedBy, setLastModifiedInstant, setLastPublishedInstant, setUrn
-
Methods inherited from class nl.vpro.domain.DomainObject
getId, isPersisted, setId
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface nl.vpro.domain.Embargo
asRange, getPublishStartInstant, getPublishStopInstant, inPublicationWindow, inPublicationWindow, isUnderEmbargo, isUnderEmbargo, wasUnderEmbargo, wasUnderEmbargo, willBePublished, willBePublished, willBeUnderEmbargo, willBeUnderEmbargo
-
Methods inherited from interface nl.vpro.domain.image.Metadata
getAlternative, getAlternativeOrTitle, getAreaOfInterest, getDimension
-
Methods inherited from interface nl.vpro.domain.MutableEmbargo
set
-
Methods inherited from interface nl.vpro.domain.MutableEmbargoDeprecated
getPublishStart, getPublishStop, setPublishStart, setPublishStop
-
Methods inherited from interface nl.vpro.domain.image.MutableMetadata
copyFrom, copyFromIfSourceSet, copyFromIfTargetUnset, setDate, setLastModifiedInstant
-
Methods inherited from interface nl.vpro.domain.Trackable
getCreationInstant, getLastModifiedInstant
-
Methods inherited from interface nl.vpro.domain.media.TrackableObject
isMerged, isPublishable, isPublishable, isRevocable
-
-
-
-
Field Detail
-
SERVER_URI_PATTERN
public static final Pattern SERVER_URI_PATTERN
-
BASE_URN
public static final String BASE_URN
- See Also:
- Constant Field Values
-
offset
protected Duration offset
-
crids
@StringList(maxLength=255) protected List<@NotNull @CRID String> crids
-
-
Constructor Detail
-
Image
public Image()
-
Image
public Image(nl.vpro.domain.media.support.OwnerType owner)
-
Image
public Image(nl.vpro.domain.media.support.OwnerType owner, String imageUri)
-
Image
protected Image(nl.vpro.domain.media.support.OwnerType owner, ImageType type, String imageUri, String title, String description, Long id, String credits, nl.vpro.domain.support.License license, String source, Integer height, Integer width, Duration offset, String date, Instant publishStart, Instant publishStop, Instant creationInstant, Instant lastModified, List<String> crids)
-
Image
public Image(Image source)
-
-
Method Detail
-
setTitle
public void setTitle(String title)
- Specified by:
setTitle
in interfaceMutableMetadata<Image>
-
setLicense
public void setLicense(nl.vpro.domain.support.License license)
- Specified by:
setLicense
in interfaceMutableMetadata<Image>
-
setDescription
public void setDescription(String description)
- Specified by:
setDescription
in interfaceMutableMetadata<Image>
-
setSource
public void setSource(String source)
- Specified by:
setSource
in interfaceMutableMetadata<Image>
-
setSourceName
public void setSourceName(String sourceName)
- Specified by:
setSourceName
in interfaceMutableMetadata<Image>
-
getImageUri
public String getImageUri()
The 'uri' of the image on the image server This means a string of the form urn:vpro:image:<id> where id is the database id of the image in the image database.Several image may share this image uri, if they represent the exact same image (but may vary in meta data)
- Specified by:
getImageUri
in interfaceMutableMetadata<Image>
-
getImageId
public Long getImageId()
-
isHighlighted
public Boolean isHighlighted()
-
setCredits
public void setCredits(String credits)
- Specified by:
setCredits
in interfaceMutableMetadata<Image>
-
setDate
public void setDate(String date)
- Specified by:
setDate
in interfaceMutableMetadata<Image>
-
setPublishStopInstant
public @NonNull Image setPublishStopInstant(Instant publishStop)
- Specified by:
setPublishStopInstant
in interfaceMutableEmbargo<Image>
- Overrides:
setPublishStopInstant
in classAbstractPublishableObject<Image>
-
setPublishStartInstant
public @NonNull Image setPublishStartInstant(Instant publishStart)
- Specified by:
setPublishStartInstant
in interfaceMutableEmbargo<Image>
- Overrides:
setPublishStartInstant
in classAbstractPublishableObject<Image>
-
getParent
public MediaObject getParent()
Description copied from interface:TrackableObject
Implementations can optionally become child of a trackable parent where the parents track-ability decides on this child's track-ability.- Specified by:
getParent
in interfaceChild<MediaObject>
- Specified by:
getParent
in interfaceTrackableObject
- Returns:
- a trackable parent, null when a parent is not set or no parent-child relation exists
- See Also:
getParent()
,Location.getParent()
,Segment.getParent()
-
setParent
public void setParent(MediaObject mediaObject)
- Specified by:
setParent
in interfaceChild<MediaObject>
-
getUrnPrefix
public String getUrnPrefix()
For images in the media database it is "urn:vpro:media:image:"- Specified by:
getUrnPrefix
in classAbstractPublishableObject<Image>
-
toString
public String toString()
- Overrides:
toString
in classPublishableObject<Image>
-
equals
public boolean equals(Object obj)
- Overrides:
equals
in classDomainObject
-
of
public static Image of(@NonNull BackendImageMetadata<?> metaData)
-
copyFrom
public ChangeReport copyFrom(@NonNull MutableMetadata<?> metadata)
- Specified by:
copyFrom
in interfaceMutableMetadata<Image>
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classDomainObject
-
builder
public static @NonNull Image.Builder builder()
-
toBuilder
public @NonNull Image.Builder toBuilder()
-
getOwner
public nl.vpro.domain.media.support.OwnerType getOwner()
- Specified by:
getOwner
in interfacenl.vpro.domain.media.support.Ownable
-
setOwner
public void setOwner(nl.vpro.domain.media.support.OwnerType owner)
- Specified by:
setOwner
in interfacenl.vpro.domain.media.support.MutableOwnable
-
setType
public void setType(ImageType type)
- Specified by:
setType
in interfaceMutableMetadata<Image>
-
getDescription
public String getDescription()
- Specified by:
getDescription
in interfaceMetadata
-
getOffset
public Duration getOffset()
-
setWidth
public void setWidth(Integer width)
- Specified by:
setWidth
in interfaceMutableMetadata<Image>
-
setHeight
public void setHeight(Integer height)
- Specified by:
setHeight
in interfaceMutableMetadata<Image>
-
getCredits
public String getCredits()
- Specified by:
getCredits
in interfaceMetadata
-
getSourceName
public String getSourceName()
- Specified by:
getSourceName
in interfaceMetadata
-
getLicense
public nl.vpro.domain.support.License getLicense()
- Specified by:
getLicense
in interfaceMetadata
-
getDate
public String getDate()
- Specified by:
getDate
in interfaceMutableMetadata<Image>
-
-