Class Location

All Implemented Interfaces:
Serializable, Comparable<Location>, Accountable, Changeable, Child<MediaObject>, Embargo, Identifiable<Long>, nl.vpro.domain.media.support.MutableOwnable, nl.vpro.domain.media.support.Ownable, TrackableObject, MutableEmbargo<Location>, MutableEmbargoDeprecated<Location>, Publishable<Location>, Trackable

@Entity public class Location extends PublishableObject<Location> implements nl.vpro.domain.media.support.MutableOwnable, Comparable<Location>, Child<MediaObject>
A location is a wrapper around a url together with some metadata about it, and basically should be somehow actually playable. It may e.g. represent a downloadable MP3 file. But it can also represent an url with a scheme that can only be understood by a specific NPO player.

A MediaObject can have more than one location which should differ in URL and owner.

The location owner describes an origin of the location. Several media suppliers provide their own locations. To prevent conflicts while updating for incoming data, locations for those suppliers are kept in parallel.

Note that this class confirms to a natural ordering not consistent with equals.

Since:
0.4
Author:
Roelof Jan Koekoek
See Also: