- java.lang.Object
-
- com.erudika.para.core.Sysprop
-
- All Implemented Interfaces:
Linkable,ParaObject,Votable,Serializable
- Direct Known Subclasses:
Webhook
public class Sysprop extends Object implements ParaObject, Serializable
A generic system class for storing data. It is essentially a map of keys and values.- 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 SyspropaddProperty(String name, Object value)Adds a new key/value pair to the map.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.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.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.Map<String,Object>getProperties()A map of all properties (key/values).ObjectgetProperty(String name)Returns the value of a property for a given key.BooleangetStored()Boolean flag which controls whether this object is stored in the database or not.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()booleanhasProperty(String name)Checks for the existence of a property.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.SyspropremoveProperty(String name)Removes a property from the map.voidsetAppid(String appid)Sets a new app name.voidsetCached(Boolean cached)Sets the "isCached" flag.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.voidsetProperties(Map<String,Object> properties)Overwrites the map.voidsetStored(Boolean stored)Sets the "isStored" flag.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
-
Sysprop
public Sysprop()
No-args constructor.
-
Sysprop
public Sysprop(String id)
The default constructor.- Parameters:
id- the object id
-
-
Method Detail
-
addProperty
public Sysprop addProperty(String name, Object value)
Adds a new key/value pair to the map.- Parameters:
name- a keyvalue- a value- Returns:
- this
-
getProperty
public Object getProperty(String name)
Returns the value of a property for a given key.- Parameters:
name- the key- Returns:
- the value
-
removeProperty
public Sysprop removeProperty(String name)
Removes a property from the map.- Parameters:
name- the key- Returns:
- this
-
hasProperty
public boolean hasProperty(String name)
Checks for the existence of a property.- Parameters:
name- the key- Returns:
- true if a property with this key exists
-
getProperties
public Map<String,Object> getProperties()
A map of all properties (key/values).- Returns:
- a map
-
setProperties
public void setProperties(Map<String,Object> properties)
Overwrites the map.- Parameters:
properties- a new map
-
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
-
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
-
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)
-
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)
-
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.
-
-