Package nl.vpro.domain.media
Class MemberRef
- java.lang.Object
-
- nl.vpro.domain.media.MemberRef
-
- All Implemented Interfaces:
Serializable
,Comparable<MemberRef>
,Identifiable<Long>
,ParentChildRelation
,RecursiveParentChildRelation
,nl.vpro.domain.media.support.MutableOwnable
,nl.vpro.domain.media.support.Ownable
@Entity public class MemberRef extends Object implements Identifiable<Long>, Comparable<MemberRef>, Serializable, nl.vpro.domain.media.support.MutableOwnable, RecursiveParentChildRelation
Expresses an association between MediaObjects. MediaObjects can become a member or episode of other MediaObjects. The member is the member of this relation which references the aggregating owner.
Members or episodes can have an ordering if they are a part of an ordered Group. In that case a MemberRef gets an number value denoting its position in the group. In all other cases this number should retain a null value.
Incoming XML has a member-/episodeof element for each member and references the owner by its URN. The urnRef field holds a temporary reference just for this purpose and should never be persisted.
- Author:
- roekoe
- See Also:
MediaObject.memberOf
,Program.episodeOf
, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MemberRef.Builder
-
Field Summary
Fields Modifier and Type Field Description protected Instant
added
protected String
cridRef
protected MediaObject
group
protected @NotNull(message="nl.vpro.constraints.NotNull") Boolean
highlighted
protected MediaObject
member
protected String
midRef
protected @Min(0L) Integer
number
protected MediaType
typeOfGroup
protected String
urnRef
-
Constructor Summary
Constructors Constructor Description MemberRef()
MemberRef(Long id, MediaObject member, MediaObject parent, Integer number, nl.vpro.domain.media.support.OwnerType owner)
MemberRef(String mid)
MemberRef(String mid, Integer number)
MemberRef(MediaObject member, MediaObject parent, Integer number, nl.vpro.domain.media.support.OwnerType owner)
MemberRef(MemberRef source)
MemberRef(MemberRef source, MediaObject member, nl.vpro.domain.media.support.OwnerType owner)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static @NonNull MemberRef.Builder
builder()
int
compareTo(@NonNull MemberRef memberRef)
static MemberRef
copy(MemberRef source)
static MemberRef
copy(MemberRef source, MediaObject member)
boolean
equals(Object object)
Instant
getAdded()
String
getChildMid()
String
getCridRef()
SortedSet<RecursiveMemberRef>
getEpisodeOf()
@Nullable MediaObject
getGroup()
Returns the representing the 'group' role in this member-ref-relation.Long
getId()
String
getMediaRef()
Reference to the parent.MediaObject
getMember()
SortedSet<RecursiveMemberRef>
getMemberOf()
String
getMidRef()
The 'parent' of this relationInteger
getNumber()
@NonNull nl.vpro.domain.media.support.OwnerType
getOwner()
MemberRefType
getRefType()
RecursiveMemberRef
getSegmentOf()
MediaType
getType()
The type of the parentString
getUrnRef()
Retrieves a reference to the owning object and parent of the association by name.int
hashCode()
Boolean
isHighlighted()
boolean
isVirtual()
The object is not serialized to the database, onlygetMediaRef()
andgetMidRef()
are filled.boolean
ownerEqualsOnRef(MemberRef that)
void
prePersist()
void
setAdded(Instant added)
void
setCridRef(String crid)
void
setEpisodeOf(SortedSet<RecursiveMemberRef> episodeOfList)
void
setGroup(MediaObject owner)
MemberRef
setHighlighted(Boolean highlighted)
void
setMediaRef(String mediaRef)
void
setMember(MediaObject member)
void
setMemberOf(SortedSet<RecursiveMemberRef> memberOfList)
void
setMidRef(String midRef)
void
setNumber(Integer number)
void
setOwner(@NonNull nl.vpro.domain.media.support.OwnerType owner)
void
setSegmentOf(RecursiveMemberRef segmentOf)
void
setType(MediaType type)
void
setUrnRef(String value)
Set a reference to the owner by name.String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface nl.vpro.domain.media.ParentChildRelation
getParentMid
-
Methods inherited from interface nl.vpro.domain.media.RecursiveParentChildRelation
getOrCreate, getOrCreateEpisodeOf, getOrCreateMemberOf
-
-
-
-
Field Detail
-
member
protected MediaObject member
-
group
protected MediaObject group
-
urnRef
protected String urnRef
-
cridRef
protected String cridRef
-
midRef
protected String midRef
-
typeOfGroup
protected MediaType typeOfGroup
-
number
@Min(0L) protected @Min(0L) Integer number
-
added
protected Instant added
-
highlighted
@NotNull(message="nl.vpro.constraints.NotNull") protected @NotNull(message="nl.vpro.constraints.NotNull") Boolean highlighted
-
-
Constructor Detail
-
MemberRef
public MemberRef()
-
MemberRef
public MemberRef(MediaObject member, MediaObject parent, Integer number, nl.vpro.domain.media.support.OwnerType owner)
-
MemberRef
public MemberRef(Long id, MediaObject member, MediaObject parent, Integer number, nl.vpro.domain.media.support.OwnerType owner)
-
MemberRef
public MemberRef(String mid)
-
MemberRef
public MemberRef(MemberRef source)
-
MemberRef
public MemberRef(MemberRef source, MediaObject member, nl.vpro.domain.media.support.OwnerType owner)
-
-
Method Detail
-
copy
public static MemberRef copy(MemberRef source, MediaObject member)
-
ownerEqualsOnRef
public boolean ownerEqualsOnRef(MemberRef that)
-
getId
public Long getId()
- Specified by:
getId
in interfaceIdentifiable<Long>
-
getMember
public MediaObject getMember()
-
setMember
public void setMember(MediaObject member)
-
getGroup
public @Nullable MediaObject getGroup()
Returns the representing the 'group' role in this member-ref-relation. Note that this likely, but not necessarily is aGroup
object, since anyMediaObject
may take members.
-
setGroup
public void setGroup(MediaObject owner)
-
getMediaRef
public String getMediaRef()
Reference to the parent. The first non null ofgetMidRef()
,getCridRef()
,getUrnRef()
In the API this is equivalent togetMidRef()
-
setMediaRef
public void setMediaRef(String mediaRef)
-
getUrnRef
public String getUrnRef()
Retrieves a reference to the owning object and parent of the association by name. This method is primarily here for marshaling purposes. In XML documents a MemberRef element contains an urnRef attribute referencing the owner. First this method tries to construct an urnRef based on the URN of the owner. When this fails, it tries to construct a reference bases on a CRID from the owner.- Returns:
- reference to the owner by name or null
-
setUrnRef
public void setUrnRef(String value)
Set a reference to the owner by name. A reference might consist of an URN of a CRID identifying the owner. This method should only be used when unmarshalling from XML. When importing XML the import service should retrieve the owner with this name and properly initialise this association.- Parameters:
value
- a valid URN or CRID
-
getCridRef
public String getCridRef()
-
setCridRef
public void setCridRef(String crid)
-
getMidRef
public String getMidRef()
The 'parent' of this relation- Specified by:
getMidRef
in interfaceParentChildRelation
-
getChildMid
public String getChildMid()
- Specified by:
getChildMid
in interfaceParentChildRelation
-
setMidRef
public void setMidRef(String midRef)
-
getType
public MediaType getType()
Description copied from interface:ParentChildRelation
The type of the parent- Specified by:
getType
in interfaceParentChildRelation
-
setType
public void setType(MediaType type)
-
getNumber
public Integer getNumber()
-
setNumber
public void setNumber(Integer number)
-
getAdded
public Instant getAdded()
-
setAdded
public void setAdded(Instant added)
-
isHighlighted
public Boolean isHighlighted()
-
isVirtual
public boolean isVirtual()
The object is not serialized to the database, onlygetMediaRef()
andgetMidRef()
are filled.
-
getMemberOf
public SortedSet<RecursiveMemberRef> getMemberOf()
- Specified by:
getMemberOf
in interfaceRecursiveParentChildRelation
- Since:
- 5.13
-
setMemberOf
public void setMemberOf(SortedSet<RecursiveMemberRef> memberOfList)
- Specified by:
setMemberOf
in interfaceRecursiveParentChildRelation
-
getEpisodeOf
public SortedSet<RecursiveMemberRef> getEpisodeOf()
- Specified by:
getEpisodeOf
in interfaceRecursiveParentChildRelation
- Since:
- 5.13
-
setEpisodeOf
public void setEpisodeOf(SortedSet<RecursiveMemberRef> episodeOfList)
- Specified by:
setEpisodeOf
in interfaceRecursiveParentChildRelation
-
getSegmentOf
public RecursiveMemberRef getSegmentOf()
- Specified by:
getSegmentOf
in interfaceRecursiveParentChildRelation
- Since:
- 5.13
-
setSegmentOf
public void setSegmentOf(RecursiveMemberRef segmentOf)
- Specified by:
setSegmentOf
in interfaceRecursiveParentChildRelation
-
compareTo
public int compareTo(@NonNull MemberRef memberRef)
- Specified by:
compareTo
in interfaceComparable<MemberRef>
-
prePersist
public void prePersist()
-
getOwner
public @NonNull nl.vpro.domain.media.support.OwnerType getOwner()
- Specified by:
getOwner
in interfacenl.vpro.domain.media.support.Ownable
-
setOwner
public void setOwner(@NonNull nl.vpro.domain.media.support.OwnerType owner)
- Specified by:
setOwner
in interfacenl.vpro.domain.media.support.MutableOwnable
-
builder
public static @NonNull MemberRef.Builder builder()
-
getRefType
public MemberRefType getRefType()
-
-