- java.lang.Object
-
- com.erudika.para.core.Tag
-
- All Implemented Interfaces:
Linkable,ParaObject,Votable,Serializable
public class Tag extends Object implements ParaObject
A tag. Must not be null or empty.- Author:
- Alex Bogdanovski [alex@erudika.com]
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.erudika.para.core.Votable
Votable.VoteValue
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LongcountChildren(String type)Count the total number of child objects for this object.LongcountLinks(String type2)Count the total number of links between this object and another type of object.Stringcreate()Stores this object in the data store.voiddecrementCount()Decrements the count when a new object is untagged.voiddelete()Deletes the object permanently by removing it from the data store.voiddeleteChildren(String type)Deletes all child objects permanently.booleanequals(Object obj)booleanexists()Checks if an object is stored in the data store.<P extends ParaObject>
List<P>findChildren(String type, String query, Pager... pager)Search through all child objects.<P extends ParaObject>
List<P>findLinkedObjects(String type, String field, String query, Pager... pager)Similar toLinkable.findChildren(java.lang.String, java.lang.String, com.erudika.para.core.utils.Pager...)but for many-to-many relationships.StringgetAppid()The application name.BooleangetCached()Boolean flag which controls whether this object is cached.<P extends ParaObject>
List<P>getChildren(String type, Pager... pager)Returns all child objects linked to this object.<P extends ParaObject>
List<P>getChildren(String type, String field, String term, Pager... pager)Returns all child objects linked to this object.IntegergetCount()The number of objects tagged with this tag.StringgetCreatorid()The id of the user who created this.StringgetId()The id of an object.BooleangetIndexed()Boolean flag which controls whether this object is indexed by the search engine.<P extends ParaObject>
List<P>getLinkedObjects(String type, Pager... pager)Similar toLinkable.getChildren(java.lang.String, com.erudika.para.core.utils.Pager...)but for many-to-many relationships.List<Linker>getLinks(String type2, Pager... pager)Returns all links between this type object and another type of object.StringgetName()The name of the object.StringgetObjectURI()The URI of this object.StringgetParentid()The id of the parent object.StringgetPlural()The plural name of the object.BooleangetStored()Boolean flag which controls whether this object is stored in the database or not.StringgetTag()The tag value.List<String>getTags()The tags associated with this object.LonggetTimestamp()The time when the object was created, in milliseconds.StringgetType()The name of the object's class.LonggetUpdated()The last time this object was updated.LonggetVersion()Returns the version number for this object.IntegergetVotes()Returns the total sum of all votes for this object.inthashCode()voidincrementCount()Increments the count when a new object is tagged.booleanisLinked(ParaObject toObj)Checks if a given object is linked to this one.booleanisLinked(String type2, String id2)Checks if this object is linked to another.Stringlink(String id2)Links an object to this one in a many-to-many relationship.voidsetAppid(String appid)Sets a new app name.voidsetCached(Boolean cached)Sets the "isCached" flag.voidsetCount(Integer count)Sets the number of objects tagged with this tag.voidsetCreatorid(String creatorid)Sets a new creator id.voidsetId(String id)Sets a new id.voidsetIndexed(Boolean indexed)Sets the "isIndexed" flag.voidsetName(String name)Sets a new name.voidsetParentid(String parentid)Sets a new parent id.voidsetStored(Boolean stored)Sets the "isStored" flag.voidsetTag(String tag)Sets the tag value.voidsetTags(List<String> tags)Merges the given tags with existing tags.voidsetTimestamp(Long timestamp)Sets the timestamp.voidsetType(String type)Sets a new object type.voidsetUpdated(Long updated)Sets the last updated timestamp.voidsetVersion(Long version)Sets the version of this object.voidsetVotes(Integer votes)Sets the total votes for this object.StringtoString()voidunlink(String type, String id2)Unlinks an object from this one.voidunlinkAll()Unlinks all objects that are linked to this one.voidupdate()Updates the object permanently.booleanvoteDown(String userid)Downvotes the object.booleanvoteUp(String userid)Upvotes the object.
-
-
-
Constructor Detail
-
Tag
public Tag()
No-args constructor.
-
Tag
public Tag(String id)
Default constructor.- Parameters:
id- the tag name
-
-
Method Detail
-
setId
public final void setId(String id)
Description copied from interface:ParaObjectSets a new id. Must not be null or empty.- Specified by:
setIdin interfaceParaObject- Parameters:
id- the new id
-
getObjectURI
public String getObjectURI()
Description copied from interface:ParaObjectThe URI of this object. For example: /users/123- Specified by:
getObjectURIin interfaceParaObject- Returns:
- the URI
- See Also:
Utils.getObjectURI(com.erudika.para.core.ParaObject, boolean, boolean)
-
getCount
public Integer getCount()
The number of objects tagged with this tag.- Returns:
- the number of times this tag is used
-
setCount
public void setCount(Integer count)
Sets the number of objects tagged with this tag.- Parameters:
count- a new count
-
getTag
public String getTag()
The tag value.- Returns:
- the tag itself
-
setTag
public void setTag(String tag)
Sets the tag value.- Parameters:
tag- a tag. Must not be null or empty.
-
incrementCount
public void incrementCount()
Increments the count when a new object is tagged.
-
decrementCount
public void decrementCount()
Decrements the count when a new object is untagged.
-
getId
public final String getId()
Description copied from interface:ParaObjectThe id of an object. Usually an autogenerated unique string of numbers.- Specified by:
getIdin interfaceParaObject- Returns:
- the id
-
getType
public final String getType()
Description copied from interface:ParaObjectThe name of the object's class. This is equivalent toClass.getSimpleName().toLowerCase()- Specified by:
getTypein interfaceParaObject- Returns:
- the simple name of the class
-
setType
public final void setType(String type)
Description copied from interface:ParaObjectSets a new object type. Must not be null or empty.- Specified by:
setTypein interfaceParaObject- Parameters:
type- a new type
-
getAppid
public String getAppid()
Description copied from interface:ParaObjectThe application name. Added to support multiple separate apps. Every object must belong to an app.- Specified by:
getAppidin interfaceParaObject- Returns:
- the app id (name). default: para
-
setAppid
public void setAppid(String appid)
Description copied from interface:ParaObjectSets a new app name. Must not be null or empty.- Specified by:
setAppidin interfaceParaObject- Parameters:
appid- the new app id (name)
-
getTags
public List<String> getTags()
Description copied from interface:ParaObjectThe tags associated with this object. Tags must not be null or empty.- Specified by:
getTagsin interfaceParaObject- Returns:
- a set of tags, or an empty set
- See Also:
Tag
-
setTags
public void setTags(List<String> tags)
Description copied from interface:ParaObjectMerges the given tags with existing tags.- Specified by:
setTagsin interfaceParaObject- Parameters:
tags- the additional tags, or clears all tags if set to null
-
getStored
public Boolean getStored()
Description copied from interface:ParaObjectBoolean flag which controls whether this object is stored in the database or not. Default is true.- Specified by:
getStoredin interfaceParaObject- Returns:
- true if this object is stored in DB.
-
setStored
public void setStored(Boolean stored)
Description copied from interface:ParaObjectSets the "isStored" flag.- Specified by:
setStoredin interfaceParaObject- Parameters:
stored- when set to true, object is stored in DB.
-
getIndexed
public Boolean getIndexed()
Description copied from interface:ParaObjectBoolean flag which controls whether this object is indexed by the search engine. Default is true.- Specified by:
getIndexedin interfaceParaObject- Returns:
- true if this object is indexed
-
setIndexed
public void setIndexed(Boolean indexed)
Description copied from interface:ParaObjectSets the "isIndexed" flag.- Specified by:
setIndexedin interfaceParaObject- Parameters:
indexed- when set to true, object is indexed.
-
getCached
public Boolean getCached()
Description copied from interface:ParaObjectBoolean flag which controls whether this object is cached. Default is true.- Specified by:
getCachedin interfaceParaObject- Returns:
- true if this object is cached on update() and create().
-
setCached
public void setCached(Boolean cached)
Description copied from interface:ParaObjectSets the "isCached" flag.- Specified by:
setCachedin interfaceParaObject- Parameters:
cached- when set to true, object is cached.
-
getTimestamp
public Long getTimestamp()
Description copied from interface:ParaObjectThe time when the object was created, in milliseconds.- Specified by:
getTimestampin interfaceParaObject- Returns:
- the timestamp of creation
-
setTimestamp
public void setTimestamp(Long timestamp)
Description copied from interface:ParaObjectSets the timestamp.- Specified by:
setTimestampin interfaceParaObject- Parameters:
timestamp- a new timestamp in milliseconds.
-
getCreatorid
public String getCreatorid()
Description copied from interface:ParaObjectThe id of the user who created this. Should point to aUserid.- Specified by:
getCreatoridin interfaceParaObject- Returns:
- the id or null
-
setCreatorid
public void setCreatorid(String creatorid)
Description copied from interface:ParaObjectSets a new creator id. Must not be null or empty.- Specified by:
setCreatoridin interfaceParaObject- Parameters:
creatorid- a new id
-
getName
public final String getName()
Description copied from interface:ParaObjectThe name of the object. Can be anything.- Specified by:
getNamein interfaceParaObject- Returns:
- the name. default: [type id]
-
setName
public final void setName(String name)
Description copied from interface:ParaObjectSets a new name. Must not be null or empty.- Specified by:
setNamein interfaceParaObject- Parameters:
name- the new name
-
getPlural
public String getPlural()
Description copied from interface:ParaObjectThe plural name of the object. For example: user - users- Specified by:
getPluralin interfaceParaObject- Returns:
- the plural name
-
getParentid
public String getParentid()
Description copied from interface:ParaObjectThe id of the parent object.- Specified by:
getParentidin interfaceParaObject- Returns:
- the id of the parent or null
-
setParentid
public void setParentid(String parentid)
Description copied from interface:ParaObjectSets a new parent id. Must not be null or empty.- Specified by:
setParentidin interfaceParaObject- Parameters:
parentid- a new id
-
getUpdated
public Long getUpdated()
Description copied from interface:ParaObjectThe last time this object was updated. Timestamp in ms.- Specified by:
getUpdatedin interfaceParaObject- Returns:
- timestamp in milliseconds
-
setUpdated
public void setUpdated(Long updated)
Description copied from interface:ParaObjectSets the last updated timestamp.- Specified by:
setUpdatedin interfaceParaObject- Parameters:
updated- a new timestamp
-
create
public String create()
Description copied from interface:ParaObjectStores this object in the data store.- Specified by:
createin interfaceParaObject- Returns:
- the id of the object (a new id if object is new)
- See Also:
Stored,DAO.create(com.erudika.para.core.ParaObject)
-
update
public void update()
Description copied from interface:ParaObjectUpdates the object permanently. Changes toLockedfields are ignored.- Specified by:
updatein interfaceParaObject- See Also:
Locked,DAO.update(com.erudika.para.core.ParaObject)
-
delete
public void delete()
Description copied from interface:ParaObjectDeletes the object permanently by removing it from the data store.- Specified by:
deletein interfaceParaObject- See Also:
DAO.delete(com.erudika.para.core.ParaObject)
-
exists
public boolean exists()
Description copied from interface:ParaObjectChecks if an object is stored in the data store.- Specified by:
existsin interfaceParaObject- Returns:
- true if the object is persisted to the data store.
- See Also:
DAO.read(java.lang.String)
-
voteUp
public boolean voteUp(String userid)
Description copied from interface:VotableUpvotes the object.
-
voteDown
public boolean voteDown(String userid)
Description copied from interface:VotableDownvotes the object.
-
getVotes
public Integer getVotes()
Description copied from interface:VotableReturns the total sum of all votes for this object. For example: (+6) + (-4) = 2
-
setVotes
public void setVotes(Integer votes)
Description copied from interface:VotableSets the total votes for this object.
-
getVersion
public Long getVersion()
Description copied from interface:ParaObjectReturns the version number for this object. Used primarily for optimistic locking.- Specified by:
getVersionin interfaceParaObject- Returns:
- a positive number,
0if unused or-1, indicating a failed update.
-
setVersion
public void setVersion(Long version)
Description copied from interface:ParaObjectSets the version of this object. This value should come from the database.- Specified by:
setVersionin interfaceParaObject- Parameters:
version- a positive number, different than the current value of the version field
-
countLinks
public Long countLinks(String type2)
Description copied from interface:LinkableCount the total number of links between this object and another type of object.- Specified by:
countLinksin interfaceLinkable- Parameters:
type2- the other type of object- Returns:
- the number of links
-
getLinks
public List<Linker> getLinks(String type2, Pager... pager)
Description copied from interface:LinkableReturns all links between this type object and another type of object.
-
getLinkedObjects
public <P extends ParaObject> List<P> getLinkedObjects(String type, Pager... pager)
Description copied from interface:LinkableSimilar toLinkable.getChildren(java.lang.String, com.erudika.para.core.utils.Pager...)but for many-to-many relationships.- Specified by:
getLinkedObjectsin interfaceLinkable- Type Parameters:
P- type of linked objects- Parameters:
type- type of linked objects to look forpager- aPager- Returns:
- a list of linked objects
-
findLinkedObjects
public <P extends ParaObject> List<P> findLinkedObjects(String type, String field, String query, Pager... pager)
Description copied from interface:LinkableSimilar toLinkable.findChildren(java.lang.String, java.lang.String, com.erudika.para.core.utils.Pager...)but for many-to-many relationships. Searches through all linked objects connected to this via aLinkerobject.- Specified by:
findLinkedObjectsin interfaceLinkable- Type Parameters:
P- type of linked objects- Parameters:
type- type of linked objects to look forfield- the name of the field to target (within a nested field "nstd")query- a query stringpager- aPager- Returns:
- a list of linked objects matching the search query
-
isLinked
public boolean isLinked(String type2, String id2)
Description copied from interface:LinkableChecks if this object is linked to another.
-
isLinked
public boolean isLinked(ParaObject toObj)
Description copied from interface:LinkableChecks if a given object is linked to this one.
-
link
public String link(String id2)
Description copied from interface:LinkableLinks an object to this one in a many-to-many relationship. Only a link is created. Objects are left untouched. The type of the second object is automatically determined on read.
-
unlink
public void unlink(String type, String id2)
Description copied from interface:LinkableUnlinks an object from this one. Only a link is deleted. Objects are left untouched.
-
unlinkAll
public void unlinkAll()
Description copied from interface:LinkableUnlinks all objects that are linked to this one. Deletes allLinkerobjects. Only the links are deleted. Objects are left untouched.
-
countChildren
public Long countChildren(String type)
Description copied from interface:LinkableCount the total number of child objects for this object.- Specified by:
countChildrenin interfaceLinkable- Parameters:
type- the other type of object- Returns:
- the number of links
-
getChildren
public <P extends ParaObject> List<P> getChildren(String type, Pager... pager)
Description copied from interface:LinkableReturns all child objects linked to this object.- Specified by:
getChildrenin interfaceLinkable- Type Parameters:
P- the type of children- Parameters:
type- the type of children to look forpager- aPager- Returns:
- a list of
ParaObjectin a one-to-many relationship with this object
-
getChildren
public <P extends ParaObject> List<P> getChildren(String type, String field, String term, Pager... pager)
Description copied from interface:LinkableReturns all child objects linked to this object.- Specified by:
getChildrenin interfaceLinkable- Type Parameters:
P- the type of children- Parameters:
type- the type of children to look forfield- the field name to use as filterterm- the field value to use as filterpager- aPager- Returns:
- a list of
ParaObjectin a one-to-many relationship with this object
-
findChildren
public <P extends ParaObject> List<P> findChildren(String type, String query, Pager... pager)
Description copied from interface:LinkableSearch through all child objects. Only searches child objects directly connected to this parent via theparentidfield.- Specified by:
findChildrenin interfaceLinkable- Type Parameters:
P- the type of children- Parameters:
type- the type of children to look forquery- a query stringpager- aPager- Returns:
- a list of
ParaObjectin a one-to-many relationship with this object
-
deleteChildren
public void deleteChildren(String type)
Description copied from interface:LinkableDeletes all child objects permanently.- Specified by:
deleteChildrenin interfaceLinkable- Parameters:
type- the children's type.
-
-