Class MediaObject
- java.lang.Object
-
- nl.vpro.domain.DomainObject
-
- nl.vpro.domain.AbstractPublishableObject<T>
-
- nl.vpro.domain.media.support.PublishableObject<MediaObject>
-
- nl.vpro.domain.media.MediaObject
-
- All Implemented Interfaces:
Serializable
,Accountable
,Changeable
,Embargo
,Identifiable<Long>
,LocalizedObject<Title,Description,Website,TwitterRef,MediaObject>
,Media<MediaObject>
,MediaIdentifiable
,MidIdentifiable
,TrackableMedia
,TrackableObject
,MutableEmbargo<MediaObject>
,MutableEmbargoDeprecated<MediaObject>
,Publishable<MediaObject>
,TextualObject<Title,Description,MediaObject>
,TextualObjectUpdate<Title,Description,MediaObject>
,Trackable
,NicamRated
@Entity public abstract class MediaObject extends PublishableObject<MediaObject> implements Media<MediaObject>
Base objects for programs, groups and segments.Media objects are the most central objects of POMS. A media object represents one document of meta-information, with all titles, descriptions, tags and all other fields that are associated with 'media' in general.
Also
Group
s are an extension, which implies e.g. that things like aGroupType.PLAYLIST
may themselves have similar meta data, though they basicly represent groups of otherMediaObject
s, and are not themselves associated with actual audio or video.But also
Program
s themselves can function as a group and therefor have 'members' (e.g. such a member may be aProgramType.PROMO
).Segment
s are a special kind of members of onlyProgram
s, and represent a 'segment' from a larger 'program' only.The purpose of a mediaobject is
- Be a full representation of meta data related to one entity
- Be also its database representation. Therefore e.g.
javax.persistence
annotations are present. These are optional, and are probably only relevant in the realm of 'poms backend application' - Be also the XML/Json representation of most of this data. For a few fields it doesn't make sense to be exposed in that way, like for example the
Editor
s ofAccountable
. For this the object is annoated with some annotation fromjavax.xml
andcom.fasterxml.jackson
- The JSON version is basicly also the representation used in Elasticsearch (only with
Views.Publisher
enabled)
- Author:
- roekoe
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface nl.vpro.domain.media.MediaIdentifiable
MediaIdentifiable.Correlation
-
-
Field Summary
Fields Modifier and Type Field Description protected @NotNull(groups=nl.vpro.validation.WarningValidatorGroup.class) @MustDisplay(groups=nl.vpro.validation.PomsValidatorGroup.class) @Nullable AgeRating
ageRating
protected AVAttributes
avAttributes
protected @NotNull(message="avType: {nl.vpro.constraints.NotNull}") @Nullable AVType
avType
protected List<@NotNull String>
awards
protected @Valid @Size(min=0,message="{nl.vpro.constraints.Size.min}") List<@NotNull Broadcaster>
broadcasters
protected List<@NotNull ContentRating>
contentRatings
protected List<@PomsValidCountry org.meeuw.i18n.regions.Region>
countries
protected List<@NotNull @Valid Credits>
credits
protected List<@NotNull @CRID String>
crids
static String
DELETED_FILTER
protected @Valid Set<@NotNull Description>
descriptions
protected @Valid @Nullable AuthorizedDuration
duration
protected List<@NotNull @Email(message="{nl.vpro.constraints.Email.message}",groups=nl.vpro.validation.PomsValidatorGroup.class) String>
email
static String
EMBARGO_FILTER
protected @Valid Set<@NotNull Genre>
genres
protected SortedSet<@NotNull @Valid GeoLocations>
geoLocations
protected @Valid Set<@NotNull GeoRestriction>
geoRestrictions
protected List<@NotNull @Valid Image>
images
protected @Valid SortedSet<@NotNull Intentions>
intentions
static String
INVERSE_DELETED_FILTER
static String
INVERSE_EMBARGO_FILTER
static String
INVERSE_PUBLICATION_FILTER
protected Boolean
isDubbed
protected boolean
isEmbeddable
protected List<@PomsValidCountry @Language(mayContainCountry=true) Locale>
languages
protected SortedSet<@NotNull @Valid Location>
locations
protected Set<@NotNull @Valid MemberRef>
memberOf
protected @Size(max=255,min=4) @Pattern(regexp="^[a-zA-Z0-9][ .a-zA-Z0-9_-]*$",flags=CASE_INSENSITIVE,message="{nl.vpro.constraints.mid}") @NotNull(groups=nl.vpro.validation.PrePersistValidatorGroup.class) @MonotonicNonNull String
mid
protected @Valid List<@NotNull PortalRestriction>
portalRestrictions
protected @Valid @Nullable List<@NotNull Portal>
portals
protected Set<@NonNull @Valid Prediction>
predictions
static String
PUBLICATION_FILTER
protected Set<@NotNull @Valid Relation>
relations
protected Short
releaseYear
protected Instant
repubDate
protected String
repubDestinations
protected @Pattern(regexp="[^\u241e\u241f]*") String
repubReason
protected Instant
sortInstant
protected String
source
protected @Valid Set<@NotNull Tag>
tags
protected @Valid SortedSet<@NotNull TargetGroups>
targetGroups
protected Short
teletext
protected @Valid List<@NotNull ThirdParty>
thirdParties
protected @Valid @Size(min=1,message="{nl.vpro.constraints.collection.Size.min}",groups=nl.vpro.validation.PomsValidatorGroup.class) Set<@NotNull Title>
titles
protected SortedSet<@NotNull @Valid Topics>
topics
protected List<@NotNull @Valid TwitterRef>
twitterRefs
protected Integer
version
protected List<@NotNull @Valid Website>
websites
-
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
-
Fields inherited from interface nl.vpro.domain.TextualObject
DEFAULT_OWNER
-
-
Constructor Summary
Constructors Constructor Description MediaObject()
MediaObject(long id)
MediaObject(MediaObject source)
-
Method Summary
-
Methods inherited from class nl.vpro.domain.media.support.PublishableObject
acceptChanges, beforeUnmarshal, getCreationDate, getHash, getLastModified, getLastPublished, getWorkflow, hasChanges, isActivation, isDeactivation, isDeleted, isInAllowedPublicationWindow, setCreationDate, setLastModified, setLastPublished
-
Methods inherited from class nl.vpro.domain.AbstractPublishableObject
getCreatedBy, getCreationInstant, getLastModifiedBy, getLastModifiedInstant, getLastPublishedInstant, getPublishStartInstant, getPublishStopInstant, getUrn, setCreatedBy, 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.LocalizedObject
addTag, addTwitterRef, addWebsite, addWebsite, findWebsite, findWebsite, getMainWebsite, getWebsite, removeTag, removeWebsite, removeWebsite
-
Methods inherited from interface nl.vpro.domain.media.MediaIdentifiable
getCorrelationId, getId, getMainIdentifier
-
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.nicam.NicamRated
isNicamRated
-
Methods inherited from interface nl.vpro.domain.TextualObject
addDescription, addTitle, findDescription, findTitle, getDescriptionCreator, getTitleCreator, removeDescription, removeDescriptionsForOwner, removeTitle, removeTitlesForOwner, setDescription, setTitle
-
Methods inherited from interface nl.vpro.domain.TextualObjectUpdate
findDescription, findTitle, getLanguage, getLongDescription, removeDescription, self, setDescription, setDescription, setLongDescription, setMainDescription, setMainTitle, setTitle, setTitle
-
Methods inherited from interface nl.vpro.domain.Trackable
getCreationInstant, getLastModifiedInstant
-
Methods inherited from interface nl.vpro.domain.media.TrackableObject
getParent, getWorkflow, isPublishable, isPublishable, isRevocable
-
-
-
-
Field Detail
-
DELETED_FILTER
public static final String DELETED_FILTER
- See Also:
- Constant Field Values
-
INVERSE_DELETED_FILTER
public static final String INVERSE_DELETED_FILTER
- See Also:
- Constant Field Values
-
PUBLICATION_FILTER
public static final String PUBLICATION_FILTER
- See Also:
- Constant Field Values
-
INVERSE_PUBLICATION_FILTER
public static final String INVERSE_PUBLICATION_FILTER
- See Also:
- Constant Field Values
-
EMBARGO_FILTER
public static final String EMBARGO_FILTER
- See Also:
- Constant Field Values
-
INVERSE_EMBARGO_FILTER
public static final String INVERSE_EMBARGO_FILTER
- See Also:
- Constant Field Values
-
mid
@Size(max=255, min=4) @Pattern(regexp="^[a-zA-Z0-9][ .a-zA-Z0-9_-]*$", flags=CASE_INSENSITIVE, message="{nl.vpro.constraints.mid}") @NotNull(groups=nl.vpro.validation.PrePersistValidatorGroup.class) protected @Size(max=255,min=4) @Pattern(regexp="^[a-zA-Z0-9][ .a-zA-Z0-9_-]*$",flags=CASE_INSENSITIVE,message="{nl.vpro.constraints.mid}") @NotNull(groups=nl.vpro.validation.PrePersistValidatorGroup.class) @MonotonicNonNull String mid
-
version
protected Integer version
-
crids
@StringList(maxLength=255) protected List<@NotNull @CRID String> crids
-
broadcasters
@Valid @Size(min=0, message="{nl.vpro.constraints.Size.min}") protected @Valid @Size(min=0,message="{nl.vpro.constraints.Size.min}") List<@NotNull Broadcaster> broadcasters
-
thirdParties
@Valid protected @Valid List<@NotNull ThirdParty> thirdParties
-
portalRestrictions
@Valid protected @Valid List<@NotNull PortalRestriction> portalRestrictions
-
geoRestrictions
@Valid protected @Valid Set<@NotNull GeoRestriction> geoRestrictions
-
titles
@Valid @Size(min=1, message="{nl.vpro.constraints.collection.Size.min}", groups=nl.vpro.validation.PomsValidatorGroup.class) protected @Valid @Size(min=1,message="{nl.vpro.constraints.collection.Size.min}",groups=nl.vpro.validation.PomsValidatorGroup.class) Set<@NotNull Title> titles
-
descriptions
@Valid protected @Valid Set<@NotNull Description> descriptions
-
intentions
@Valid @NoDuplicateOwner protected @Valid SortedSet<@NotNull Intentions> intentions
-
targetGroups
@Valid @NoDuplicateOwner protected @Valid SortedSet<@NotNull TargetGroups> targetGroups
-
source
protected String source
-
countries
protected List<@PomsValidCountry org.meeuw.i18n.regions.Region> countries
-
languages
protected List<@PomsValidCountry @Language(mayContainCountry=true) Locale> languages
-
avType
@NotNull(message="avType: {nl.vpro.constraints.NotNull}") protected @NotNull(message="avType: {nl.vpro.constraints.NotNull}") @Nullable AVType avType
-
avAttributes
protected AVAttributes avAttributes
-
releaseYear
protected Short releaseYear
-
duration
@Valid protected @Valid @Nullable AuthorizedDuration duration
-
geoLocations
@NoDuplicateOwner protected SortedSet<@NotNull @Valid GeoLocations> geoLocations
-
ageRating
@NotNull(groups=nl.vpro.validation.WarningValidatorGroup.class) @MustDisplay(groups=nl.vpro.validation.PomsValidatorGroup.class) protected @NotNull(groups=nl.vpro.validation.WarningValidatorGroup.class) @MustDisplay(groups=nl.vpro.validation.PomsValidatorGroup.class) @Nullable AgeRating ageRating
-
contentRatings
protected List<@NotNull ContentRating> contentRatings
-
email
@StringList(maxLength=255) protected List<@NotNull @Email(message="{nl.vpro.constraints.Email.message}",groups=nl.vpro.validation.PomsValidatorGroup.class) String> email
-
twitterRefs
protected List<@NotNull @Valid TwitterRef> twitterRefs
-
teletext
protected Short teletext
-
isDubbed
protected Boolean isDubbed
-
predictions
protected Set<@NonNull @Valid Prediction> predictions
-
isEmbeddable
protected boolean isEmbeddable
-
sortInstant
protected Instant sortInstant
-
repubDate
protected Instant repubDate
-
repubReason
@Pattern(regexp="[^\u241e\u241f]*") protected @Pattern(regexp="[^\u241e\u241f]*") String repubReason
-
repubDestinations
protected String repubDestinations
-
-
Constructor Detail
-
MediaObject
public MediaObject()
-
MediaObject
public MediaObject(long id)
-
MediaObject
public MediaObject(MediaObject source)
-
-
Method Detail
-
getMid
public String getMid()
- Specified by:
getMid
in interfaceMidIdentifiable
-
setMid
public void setMid(String mid)
-
getAvailableSubtitles
public List<AvailableSubtitles> getAvailableSubtitles()
Return the available subtitles. These subtitles may not be published.In the publisher this list is explicitly cleared before publishing to the API if there are no published locations This is kind of a hack. May be it is better to have the workflow in AvailableSubtitles also.
-
getCrids
public List<String> getCrids()
- Specified by:
getCrids
in interfaceMediaIdentifiable
-
addCrid
public MediaObject addCrid(@CRID @CRID String crid)
-
removeCrid
public MediaObject removeCrid(String crid)
-
getBroadcasters
public List<Broadcaster> getBroadcasters()
-
setBroadcasters
public void setBroadcasters(List<Broadcaster> broadcasters)
-
addBroadcaster
public MediaObject addBroadcaster(@NonNull @NonNull Broadcaster broadcaster)
-
removeBroadcaster
public boolean removeBroadcaster(Broadcaster broadcaster)
-
getMainBroadcaster
public Broadcaster getMainBroadcaster()
-
addPortal
public MediaObject addPortal(Portal portal)
-
removePortal
public boolean removePortal(Portal portal)
-
clearPortals
public void clearPortals()
-
getThirdParties
public List<ThirdParty> getThirdParties()
-
addThirdParty
public MediaObject addThirdParty(ThirdParty thirdParty)
-
removeThirdParty
public boolean removeThirdParty(ThirdParty thirdParty)
-
clearThirdParties
public void clearThirdParties()
-
getPortalRestrictions
public List<PortalRestriction> getPortalRestrictions()
-
setPortalRestrictions
public void setPortalRestrictions(List<PortalRestriction> portalRestrictions)
-
removePortalRestriction
public boolean removePortalRestriction(PortalRestriction restriction)
-
findPortalRestriction
public @Nullable PortalRestriction findPortalRestriction(Long id)
-
addPortalRestriction
public void addPortalRestriction(PortalRestriction restriction)
-
getGeoRestrictions
public SortedSet<GeoRestriction> getGeoRestrictions()
-
setGeoRestrictions
public void setGeoRestrictions(Set<GeoRestriction> geoRestrictions)
-
findGeoRestriction
public @Nullable GeoRestriction findGeoRestriction(Long id)
-
addGeoRestriction
public void addGeoRestriction(GeoRestriction geoRestriction)
-
removeGeoRestriction
public boolean removeGeoRestriction(GeoRestriction restriction)
-
getTitles
public SortedSet<Title> getTitles()
- Specified by:
getTitles
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
setTitles
public void setTitles(SortedSet<Title> titles)
- Specified by:
setTitles
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getExpandedTitles
public SortedSet<Title> getExpandedTitles()
For NPA-403, to provide to ES the needed mapping.The result can be calculated from other fields, so this is not available in XML, nor in the default json view.
Only in the
Views.Publisher
version of the json.
-
addTitle
public MediaObject addTitle(Title title)
- Specified by:
addTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
removeTitle
public boolean removeTitle(Title title)
- Specified by:
removeTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getOwnedTitleCreator
public org.meeuw.functional.TriFunction<String,nl.vpro.domain.media.support.OwnerType,TextualType,Title> getOwnedTitleCreator()
- Specified by:
getOwnedTitleCreator
in interfaceTextualObject<Title,Description,MediaObject>
-
addTitle
public MediaObject addTitle(@NonNull String title, @NonNull nl.vpro.domain.media.support.OwnerType owner, @NonNull TextualType type)
- Specified by:
addTitle
in interfaceTextualObject<Title,Description,MediaObject>
-
hasTitles
public boolean hasTitles()
Description copied from interface:TextualObjectUpdate
Default implementation based onTextualObjectUpdate.getTitles()
, you may want to override this, if getTitles may modify the object (it is e.g. required by jaxb that this will never returnnull
- Specified by:
hasTitles
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
hasDescriptions
public boolean hasDescriptions()
Description copied from interface:TextualObjectUpdate
Default implementation based onTextualObjectUpdate.getDescriptions()
, you may want to override this, if getDescriptions may modify the object (it is e.g. required by hibernate that this will never returnnull
- Specified by:
hasDescriptions
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getDescriptions
public SortedSet<Description> getDescriptions()
- Specified by:
getDescriptions
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
setDescriptions
public void setDescriptions(SortedSet<Description> descriptions)
- Specified by:
setDescriptions
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
addDescription
public MediaObject addDescription(Description description)
- Specified by:
addDescription
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
removeDescription
public boolean removeDescription(Description description)
- Specified by:
removeDescription
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getOwnedDescriptionCreator
public org.meeuw.functional.TriFunction<String,nl.vpro.domain.media.support.OwnerType,TextualType,Description> getOwnedDescriptionCreator()
- Specified by:
getOwnedDescriptionCreator
in interfaceTextualObject<Title,Description,MediaObject>
-
addDescription
public MediaObject addDescription(@Nullable String description, @NonNull nl.vpro.domain.media.support.OwnerType owner, @NonNull TextualType type)
- Specified by:
addDescription
in interfaceTextualObject<Title,Description,MediaObject>
-
addGenre
public MediaObject addGenre(@NonNull @NonNull Genre genre)
-
getTags
public SortedSet<Tag> getTags()
- Specified by:
getTags
in interfaceLocalizedObject<Title,Description,Website,TwitterRef,MediaObject>
-
setTags
public void setTags(Set<Tag> tags)
Consider using nl.vpro.domain.media.TagService#findOrCreate() first.- Specified by:
setTags
in interfaceLocalizedObject<Title,Description,Website,TwitterRef,MediaObject>
-
getGeoLocations
public @NonNull SortedSet<GeoLocations> getGeoLocations()
-
setGeoLocations
public void setGeoLocations(@NonNull SortedSet<GeoLocations> newGeoLocations)
-
getExpandedGeoLocations
public SortedSet<GeoLocations> getExpandedGeoLocations()
-
getIntentions
public @NonNull SortedSet<Intentions> getIntentions()
-
getExpandedIntentions
public SortedSet<Intentions> getExpandedIntentions()
-
setIntentions
public void setIntentions(SortedSet<@NonNull Intentions> newIntentions)
-
getTargetGroups
public @NonNull SortedSet<TargetGroups> getTargetGroups()
-
getExpandedTargetGroups
public SortedSet<TargetGroups> getExpandedTargetGroups()
-
setTargetGroups
public void setTargetGroups(SortedSet<@NonNull TargetGroups> newTargetGroups)
-
getSource
public String getSource()
-
setSource
public void setSource(String source)
-
getCountries
public List<@PomsValidCountry org.meeuw.i18n.regions.Region> getCountries()
The production location
-
setCountries
public void setCountries(List<org.meeuw.i18n.regions.Region> countries)
-
addCountry
public MediaObject addCountry(String code)
-
addCountry
public MediaObject addCountry(@NonNull com.neovisionaries.i18n.CountryCode country)
-
addCountry
public MediaObject addCountry(@NonNull org.meeuw.i18n.regions.Region country)
-
addLanguage
public MediaObject addLanguage(@NonNull @NonNull Locale language)
-
getAVType
public @Nullable AVType getAVType()
-
setAVType
public void setAVType(AVType avType)
-
getAvAttributes
public AVAttributes getAvAttributes()
-
setAvAttributes
public void setAvAttributes(AVAttributes avAttributes)
-
getReleaseYear
public Short getReleaseYear()
-
setReleaseYear
public void setReleaseYear(Short releaseYear)
-
getDuration
public AuthorizedDuration getDuration()
-
setDuration
public void setDuration(@Nullable Duration duration) throws ModificationException
UseAuthorizedDuration.get()
in combination withgetDuration()
to get the java.time.Duration- Throws:
ModificationException
- If you may not set the duration
-
setDurationWithDate
@Deprecated public void setDurationWithDate(Date duration) throws ModificationException
Deprecated.- Throws:
ModificationException
-
getDurationAsDate
@Deprecated public @Nullable Date getDurationAsDate()
Deprecated.
-
hasAuthorizedDuration
public boolean hasAuthorizedDuration()
-
getJsonCredits
protected List<Credits> getJsonCredits()
This method just exists to contain the json annotations. Putting them ongetCredits()
complicates matters, because we basicly configured jackson to use jaxb annotations.
-
getPersons
public List<Person> getPersons()
Returns only thegetCredits()
that arePerson
-
setPersons
@Deprecated public void setPersons(@Nullable List<Person> persons)
Deprecated.UsesetCredits(List)
-
removePerson
public boolean removePerson(Person person)
-
removePerson
public boolean removePerson(Long id)
-
addPerson
public MediaObject addPerson(Person person)
-
addName
public MediaObject addName(Name name)
-
removeName
public boolean removeName(Name name)
-
giveCredits
public MediaObject giveCredits(Credits credit)
- Since:
- 5.12
-
addAward
public MediaObject addAward(String award)
-
getDescendantOf
public SortedSet<DescendantRef> getDescendantOf()
-
isMember
public boolean isMember()
-
isMemberOf
public boolean isMemberOf(MediaObject owner)
-
isMemberOf
public boolean isMemberOf(MediaObject owner, Integer number)
-
hasMember
public boolean hasMember(MediaObject member)
-
findMemberOfRef
public @Nullable MemberRef findMemberOfRef(MediaObject owner)
-
findMemberOfRef
public @Nullable MemberRef findMemberOfRef(MediaObject owner, Integer number)
-
getAgeRating
public AgeRating getAgeRating()
- Specified by:
getAgeRating
in interfaceNicamRated
-
setAgeRating
public void setAgeRating(@Nullable AgeRating ageRating)
-
getContentRatings
public List<ContentRating> getContentRatings()
- Specified by:
getContentRatings
in interfaceNicamRated
-
setContentRatings
public MediaObject setContentRatings(List<ContentRating> contentRatings)
-
addContentRating
public MediaObject addContentRating(ContentRating rating)
-
getMainEmail
public @Nullable String getMainEmail()
-
addEmail
public MediaObject addEmail(String email)
-
getWebsites
public List<Website> getWebsites()
- Specified by:
getWebsites
in interfaceLocalizedObject<Title,Description,Website,TwitterRef,MediaObject>
-
setWebsites
public MediaObject setWebsites(List<Website> websites)
- Specified by:
setWebsites
in interfaceLocalizedObject<Title,Description,Website,TwitterRef,MediaObject>
-
getTwitterRefs
public List<TwitterRef> getTwitterRefs()
- Specified by:
getTwitterRefs
in interfaceLocalizedObject<Title,Description,Website,TwitterRef,MediaObject>
-
setTwitterRefs
public void setTwitterRefs(List<@NonNull TwitterRef> twitterRefs)
- Specified by:
setTwitterRefs
in interfaceLocalizedObject<Title,Description,Website,TwitterRef,MediaObject>
-
getTeletext
public Short getTeletext()
-
setTeletext
public void setTeletext(Short teletext)
-
hasSubtitles
public Boolean hasSubtitles()
-
isDubbed
public Boolean isDubbed()
-
isHasSubtitles
protected Boolean isHasSubtitles()
-
setHasSubtitles
protected void setHasSubtitles(Boolean hasSubtitles)
-
hasEpisode
public boolean hasEpisode(Program episode)
-
hasAncestor
public boolean hasAncestor(MediaObject ancestor)
-
findAncestry
public List<MediaObject> findAncestry(MediaObject ancestor)
-
findAncestry
protected void findAncestry(MediaObject ancestor, List<MediaObject> ancestors)
-
hasDescendant
public boolean hasDescendant(MediaObject descendant)
-
getAncestors
public SortedSet<MediaObject> getAncestors()
-
getStreamingPlatformStatus
public StreamingStatus getStreamingPlatformStatus()
Returns (a copy of, since you have no bussines setting it) theStreamingStatus
.- Since:
- 5.11
-
getModifiableStreamingPlatformStatus
protected StreamingStatusImpl getModifiableStreamingPlatformStatus()
-
getPredictions
public @NonNull SortedSet<Prediction> getPredictions()
-
setPredictions
public void setPredictions(Collection<Prediction> predictions)
-
getPredictionsForXml
protected List<Prediction> getPredictionsForXml()
We don't return 'non announced' predictions in the xml.
-
setPredictionsForXml
protected void setPredictionsForXml(List<Prediction> predictions)
-
getPrediction
public Prediction getPrediction(Platform platform)
-
getAuthority
public Authority getAuthority(Platform platform)
seePrediction.getAuthority()
()} or User, if no such prediction record.
-
removePrediction
public boolean removePrediction(Platform platform)
-
findOrCreatePrediction
public Prediction findOrCreatePrediction(Platform platform)
-
findOrCreatePrediction
protected Prediction findOrCreatePrediction(Platform platform, Embargo embargo)
-
getLocations
public @NonNull SortedSet<Location> getLocations()
Returns the locations inLocation.PRESENTATION_ORDER
-
getPresentationOrderLocations
public SortedSet<Location> getPresentationOrderLocations()
Returns the locations inLocation.PRESENTATION_ORDER
- Since:
- 5.12 (in 5.11
getLocations()
behaved like this)
-
findLocation
public @Nullable Location findLocation(String url, nl.vpro.domain.media.support.OwnerType owner)
-
addLocation
public MediaObject addLocation(Location location)
-
removeLocation
public boolean removeLocation(Location location)
-
removeLocation
public boolean removeLocation(Long locationId)
-
revokeLocations
public void revokeLocations(Platform platform)
-
get_Relations
protected SortedSet<Relation> get_Relations()
Property used for marshalling/unmarshalling, avoiding theRelation.copy(nl.vpro.domain.media.Relation)
(which disappears the id)
-
addRelation
public MediaObject addRelation(@NonNull @NonNull Relation relation)
-
removeRelation
public boolean removeRelation(Long id)
-
getImage
public @Nullable Image getImage(int index)
-
getMainImage
public @Nullable Image getMainImage()
-
addImage
public MediaObject addImage(Image image)
-
addImage
public MediaObject addImage(Image image, int index)
-
findImage
public @Nullable Image findImage(String url, nl.vpro.domain.media.support.OwnerType owner)
-
removeImage
public boolean removeImage(Image image)
-
removeImage
public boolean removeImage(Long imageId)
-
isEmbeddable
public boolean isEmbeddable()
What does it mean to be 'embeddable'?
-
setEmbeddable
public void setEmbeddable(boolean embeddable)
-
isLocationAuthorityUpdate
public boolean isLocationAuthorityUpdate()
When true Ceres/Pluto needs a restriction update. The underlying field is managed by Hibernate, and not accessible.
-
setLocationAuthorityUpdate
public void setLocationAuthorityUpdate(Boolean ceresUpdate)
-
setPublishStartInstant
public @NonNull MediaObject setPublishStartInstant(Instant publishStart)
- Specified by:
setPublishStartInstant
in interfaceMutableEmbargo<MediaObject>
- Overrides:
setPublishStartInstant
in classAbstractPublishableObject<MediaObject>
-
setPublishStopInstant
public @NonNull MediaObject setPublishStopInstant(Instant publishStop)
- Specified by:
setPublishStopInstant
in interfaceMutableEmbargo<MediaObject>
- Overrides:
setPublishStopInstant
in classAbstractPublishableObject<MediaObject>
-
hasInternetVodAuthority
protected boolean hasInternetVodAuthority()
-
setCreationInstant
public void setCreationInstant(Instant creationInstant)
- Specified by:
setCreationInstant
in interfaceChangeable
- Overrides:
setCreationInstant
in classAbstractPublishableObject<MediaObject>
-
setWorkflow
protected void setWorkflow(Workflow workflow)
- Overrides:
setWorkflow
in classPublishableObject<MediaObject>
-
getSortDate
@Deprecated public final Date getSortDate()
Deprecated.Returns the sortDate for this MediaObject. The default behaviour for this field falls back to other available fields in order:- First ScheduleEvent
- Publication start
- Creation date
- Since:
- 1.5
-
getSortInstant
public Instant getSortInstant()
-
invalidateSortDate
protected void invalidateSortDate()
-
isMerged
public boolean isMerged()
Description copied from interface:TrackableObject
If the sub class supports being merged, this can be overriden.- Specified by:
isMerged
in interfaceTrackableObject
-
getMergedTo
public @Nullable MediaObject getMergedTo()
-
setMergedTo
public void setMergedTo(@Nullable MediaObject mergedTo)
-
getMergedToRef
public String getMergedToRef()
-
setMergedToRef
public void setMergedToRef(@Nullable String mergedToRef)
-
getType
public abstract SubMediaType getType()
-
setMediaType
public abstract void setMediaType(MediaType type)
- Since:
- 5.8
-
getMediaType
@NotNull public final @NotNull MediaType getMediaType()
- Specified by:
getMediaType
in interfaceMidIdentifiable
- Since:
- 3.2
-
equals
public boolean equals(Object o)
- Overrides:
equals
in classDomainObject
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classDomainObject
-
getUrnPrefix
protected abstract String getUrnPrefix()
- Specified by:
getUrnPrefix
in classAbstractPublishableObject<MediaObject>
-
getMainTitle
public String getMainTitle()
Overridden to help hibernate search (see MediaSearchMappingFactory) Probably has to to with JDK-8071693
- Specified by:
getMainTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getSubTitle
public String getSubTitle()
Overriden to help hibernate search (see MediaSearchMappingFactory) Probably has to to with https://bugs.openjdk.java.net/browse/JDK-8071693
Retrieves the first sub- or episode title. MIS distributes episode titles. For internal use this episode title is handled as a subtitle.- Specified by:
getSubTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
- Returns:
- - the first subtitle
-
getMainDescription
public String getMainDescription()
Overriden to help hibernate search (see MediaSearchMappingFactory) Probably has to to with https://bugs.openjdk.java.net/browse/JDK-8071693
Returns the first available description. Probably the 'MAIN' description.- Specified by:
getMainDescription
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getShortTitle
public String getShortTitle()
Overriden to help FTL. See https://issues.apache.org/jira/browse/FREEMARKER-24
- Specified by:
getShortTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getOriginalTitle
public String getOriginalTitle()
Overriden to help FTL. See https://issues.apache.org/jira/browse/FREEMARKER-24
- Specified by:
getOriginalTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getWorkTitle
public String getWorkTitle()
Overriden to help FTL. See https://issues.apache.org/jira/browse/FREEMARKER-24
- Specified by:
getWorkTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getLexicoTitle
public String getLexicoTitle()
Overriden to help FTL. See https://issues.apache.org/jira/browse/FREEMARKER-24
Return the 'lexicographic title'. This is the title where the object normally would be sorted on. This defaults toTextualObjectUpdate.getMainTitle()
if no explicit value was set. If an explicit value is set, it may e.g. be the same asTextualObjectUpdate.getMainTitle()
but with leading articles ommitted.- Specified by:
getLexicoTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getAbbreviatedTitle
public String getAbbreviatedTitle()
Overriden to help FTL. See https://issues.apache.org/jira/browse/FREEMARKER-24
- Specified by:
getAbbreviatedTitle
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getSubDescription
public String getSubDescription()
Overriden to help FTL. See https://issues.apache.org/jira/browse/FREEMARKER-24
- Specified by:
getSubDescription
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
getShortDescription
public String getShortDescription()
Overriden to help FTL. See https://issues.apache.org/jira/browse/FREEMARKER-24
- Specified by:
getShortDescription
in interfaceTextualObjectUpdate<Title,Description,MediaObject>
-
mergeImages
public void mergeImages(MediaObject incoming, nl.vpro.domain.media.support.OwnerType owner)
-
removeImages
public void removeImages()
-
serializeForCalcCRC32
protected byte[] serializeForCalcCRC32()
- Overrides:
serializeForCalcCRC32
in classPublishableObject<MediaObject>
-
calcCRC32
protected CRC32 calcCRC32()
Description copied from class:PublishableObject
We keep track of a CRC32 hash to determin if an object is 'changed', in the sense that it would need republication.- Overrides:
calcCRC32
in classPublishableObject<MediaObject>
-
getCorrelation
public final MediaIdentifiable.Correlation getCorrelation()
Description copied from interface:MediaIdentifiable
The correlation of thisMediaIdentifiable
is the best id currently available. Oftentimes that will be theMidIdentifiable.getMid()
, but in certain situation that is not (yet) available, and it may fall back to (the first)MediaIdentifiable.getCrids()
.- Specified by:
getCorrelation
in interfaceMediaIdentifiable
- Specified by:
getCorrelation
in interfaceMidIdentifiable
-
calcCorrelation
protected MediaIdentifiable.Correlation calcCorrelation()
-
toString
public final String toString()
- Overrides:
toString
in classPublishableObject<MediaObject>
-
getVersion
public Integer getVersion()
-
setIsDubbed
public void setIsDubbed(Boolean isDubbed)
-
getRepubReason
protected String getRepubReason()
-
setRepubReason
protected void setRepubReason(String repubReason)
-
getRepubDestinations
protected String getRepubDestinations()
-
setRepubDestinations
protected void setRepubDestinations(String repubDestinations)
-
setAvailableSubtitles
public void setAvailableSubtitles(List<@NonNull AvailableSubtitles> availableSubtitles)
-
-