Class 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
Direct Known Subclasses:
Group, Program, Segment

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 Groups are an extension, which implies e.g. that things like a GroupType.PLAYLIST may themselves have similar metadata, though they basically represent groups of other MediaObjects, and are not themselves associated with actual audio or video.

But also Programs themselves can function as a group and therefor have 'members' (e.g. such a member may be a ProgramType.PROMO).

Segments are a special kind of members of only Programs, and represent a 'segment' from a larger 'program' only.

The purpose of a mediaobject is

  1. Be a full representation of meta data related to one entity
  2. 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'
  3. 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 Editors of Accountable. For this the object is annotated with some annotation from javax.xml and com.fasterxml.jackson
  4. The JSON version is basically also the representation used in Elasticsearch (only with Views.Publisher enabled)
Author:
roekoe
See Also: