Package nl.vpro.domain.media
Class Segment
- All Implemented Interfaces:
Serializable
,Comparable<Segment>
,Accountable
,Changeable
,Child<Program>
,Embargo
,Identifiable<Long>
,LocalizedObject<Title,
,Description, Website, TwitterRef, MediaObject> Media<MediaObject>
,MediaIdentifiable
,MidIdentifiable
,nl.vpro.domain.media.support.MutableOwnable
,nl.vpro.domain.media.support.Ownable
,TrackableMedia
,TrackableObject
,MutableEmbargo<MediaObject>
,MutableEmbargoDeprecated<MediaObject>
,Publishable<MediaObject>
,TextualObject<Title,
,Description, MediaObject> TextualObjectUpdate<Title,
,Description, MediaObject> Trackable
,NicamRated
@Entity
@SegmentValidation
public final class Segment
extends MediaObject
implements Comparable<Segment>, Child<Program>, nl.vpro.domain.media.support.MutableOwnable
A segment is a view on a program, representing a part of if starting at a given
getStart()
after the beginning of the program (and with a shorter MediaObject.getDuration()
. It cannot exist alone, and always has a getParent()
, which always is a Program
.- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface nl.vpro.domain.media.MediaIdentifiable
MediaIdentifiable.Correlation
-
Field Summary
Fields inherited from class nl.vpro.domain.media.MediaObject
ageRating, avAttributes, avType, awards, broadcasters, contentRatings, countries, credits, crids, DELETED_FILTER, descriptions, duration, email, EMBARGO_FILTER, genres, geoLocations, geoRestrictions, images, intentions, INVERSE_DELETED_FILTER, INVERSE_EMBARGO_FILTER, INVERSE_PUBLICATION_FILTER, isDubbed, isEmbeddable, languages, locations, memberOf, mid, ORGANIZATION_FILTER, portalRestrictions, portals, predictions, PUBLICATION_FILTER, relations, releaseYear, repubDate, repubDestinations, repubReason, sortInstant, source, tags, targetGroups, teletext, thirdParties, titles, topics, twitterRefs, version, 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
ConstructorDescriptionSegment()
Segment
(String mid, Program program, Duration start, AuthorizedDuration duration) Segment
(AVType avType, Duration start, AuthorizedDuration duration) Segment
(Program program, String midRef, Duration start, AuthorizedDuration duration) Segment
(Program program, Duration start, AuthorizedDuration duration) -
Method Summary
Modifier and TypeMethodDescriptionstatic MediaBuilder.SegmentBuilder
builder()
The correlation id of a segment currently is the correlation id of its _parent_.int
static Segment
protected void
findAncestry
(MediaObject ancestor, List<MediaObject> ancestors) nl.vpro.domain.media.support.OwnerType
getOwner()
Returns the parentProgram
of this segment.getStart()
@NotNull SegmentType
getType()
protected String
boolean
hasAncestor
(MediaObject ancestor) boolean
isActivation
(Instant now) boolean
isDeactivation
(Instant now) boolean
If a segment is member of a mergedProgram
then its workflow will becomeWorkflow.MERGED
, to indicate that.boolean
isMerged()
A segment is considered merged if its parent is.boolean
isRevocable
(Instant now) void
setMediaType
(MediaType type) void
void
setOwner
(nl.vpro.domain.media.support.OwnerType owner) void
void
setSegmentOf
(RecursiveMemberRef parentRef) void
void
setType
(SegmentType segmentType) void
Methods inherited from class nl.vpro.domain.media.MediaObject
addAllImages, addAward, addBroadcaster, addContentRating, addCountry, addCountry, addCountry, addCrid, addDescription, addDescription, addEmail, addEmail, addGenre, addGeoRestriction, addImage, addImage, addLanguage, addLocation, addName, addPerson, addPortal, addPortalRestriction, addRelation, addThirdParty, addTitle, addTitle, calcCRC32, clearPortals, clearThirdParties, equals, findAncestry, findCredit, findGeoRestriction, findImage, findImage, findImage, findImages, findLocation, findLocation, findLocation, findMemberOfRef, findMemberOfRef, findMemberOfRef, findName, findOrCreatePrediction, findOrCreatePrediction, findPerson, findPerson, findPortalRestriction, findRelation, findRelation, get_Locations, get_Relations, getAbbreviatedTitle, getAgeRating, getAuthority, getAvailableSubtitles, getAvAttributes, getAVType, getAwards, getBroadcasters, getContentRatings, getCorrelation, getCountries, getCredits, getCrids, getDescendantOf, getDescriptions, getDuration, getEmail, getExpandedGeoLocations, getExpandedIntentions, getExpandedTargetGroups, getExpandedTitles, getExpandedTopics, getGenres, getGeoLocations, getGeoRestrictions, getImage, getImage, getImage, getImages, getIntentions, getJsonCredits, getLanguages, getLexicoTitle, getLocation, getLocations, getMainBroadcaster, getMainDescription, getMainEmail, getMainImage, getMainTitle, getMediaType, getMemberOf, getMergedTo, getMergedToRef, getMid, getModifiableStreamingPlatformStatus, getOriginalTitle, getOwnedDescriptionCreator, getOwnedTitleCreator, getPersons, getPortalRestrictions, getPortals, getPrediction, getPredictions, getPredictionsForXml, getPresentationOrderLocations, getRelations, getReleaseYear, getRepubDestinations, getRepubReason, getShortDescription, getShortTitle, getSortDate, getSortInstant, getSource, getStreamingPlatformStatus, getSubDescription, getSubTitle, getTags, getTargetGroups, getTeletext, getThirdParties, getTitles, getTopics, getTwitterRefs, getVersion, getVirtualMemberRefs, getWebsites, getWorkTitle, giveCredits, hasAuthorizedDuration, hasDescendant, hasDescriptions, hasEpisode, hashCode, hasInternetVodAuthority, hasMember, hasSubtitles, hasTitles, invalidateSortDate, isDubbed, isEmbeddable, isHasSubtitles, isLocationAuthorityUpdate, isMember, isMemberOf, isMemberOf, mergeImages, removeBroadcaster, removeCrid, removeDescription, removeGeoRestriction, removeImage, removeImage, removeImages, removeLocation, removeLocation, removeName, removePerson, removePerson, removePortal, removePortalRestriction, removePrediction, removeRelation, removeThirdParty, removeTitle, revokeLocations, serializeForCalcCRC32, set_Locations, set_Relations, setAgeRating, setAvailableSubtitles, setAvAttributes, setAVType, setAwards, setBroadcasters, setContentRatings, setCountries, setCreationInstant, setCredits, setCrids, setDescriptions, setDuration, setEmail, setEmbeddable, setGenres, setGeoLocations, setGeoRestrictions, setHasSubtitles, setImages, setIntentions, setIsDubbed, setJsonCredits, setLanguages, setLocationAuthorityUpdate, setLocations, setMemberOf, setMergedTo, setMergedToRef, setMid, setPersons, setPortalRestrictions, setPortals, setPredictions, setPredictionsForXml, setPublishStartInstant, setPublishStopInstant, setRelations, setReleaseYear, setRepubDestinations, setRepubReason, setSource, setTags, setTargetGroups, setTeletext, setTitles, setTopics, setTwitterRefs, setWebsites, setWorkflow, toString
Methods inherited from class nl.vpro.domain.media.support.PublishableObject
acceptChanges, beforeUnmarshal, getHash, getWorkflow, hasChanges
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
getWorkflow, isPublishable, isPublishable
-
Constructor Details
-
Segment
public Segment() -
Segment
-
Segment
-
Segment
-
Segment
-
Segment
-
Segment
-
Segment
-
Segment
-
Segment
-
Segment
-
-
Method Details
-
builder
-
copy
-
isActivation
- Overrides:
isActivation
in classPublishableObject<MediaObject>
-
isDeactivation
- Overrides:
isDeactivation
in classPublishableObject<MediaObject>
-
isRevocable
- Specified by:
isRevocable
in interfaceTrackableObject
-
isMerged
public boolean isMerged()A segment is considered merged if its parent is.Note that generally it won't have
MediaObject.getMergedTo()
- Specified by:
isMerged
in interfaceTrackableObject
- Overrides:
isMerged
in classMediaObject
- See Also:
-
isDeleted
public boolean isDeleted()If a segment is member of a mergedProgram
then its workflow will becomeWorkflow.MERGED
, to indicate that. But this will in all cases be consideredPublishableObject.isDeleted()
E.g. if such on object is requested from the API it should result 404.
- Overrides:
isDeleted
in classPublishableObject<MediaObject>
-
getParent
Returns the parentProgram
of this segment. Not that this does not work directly after a simple unmarshall of an individual segment because the full program object simply is not available then.Use
getMidRef()
for the mid, and obtain it separately.- Specified by:
getParent
in interfaceChild<Program>
- Specified by:
getParent
in interfaceTrackableObject
- Returns:
- a trackable parent, null when a parent is not set or no parent-child relation exists
- See Also:
-
setParent
-
getUrnRef
-
setUrnRef
-
getMidRef
- Since:
- 1.9
-
setMidRef
- Since:
- 1.9
-
getUrnPrefix
- Specified by:
getUrnPrefix
in classMediaObject
-
getStart
-
setStart
-
getAncestors
- Overrides:
getAncestors
in classMediaObject
-
hasAncestor
- Overrides:
hasAncestor
in classMediaObject
-
findAncestry
- Overrides:
findAncestry
in classMediaObject
-
compareTo
- Specified by:
compareTo
in interfaceComparable<Segment>
-
getType
- Specified by:
getType
in classMediaObject
-
setMediaType
- Specified by:
setMediaType
in classMediaObject
-
setType
-
calcCorrelation
The correlation id of a segment currently is the correlation id of its _parent_.I forgot why this is important, but I think it may give problems when a segment is converted to a clip and/or vice versa.
For 7.1 release we'll leave it
- Overrides:
calcCorrelation
in classMediaObject
-
getSegmentOf
-
setSegmentOf
-
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
-