Package tigase.mongodb.pubsub
Class PubSubDAOMongo
- java.lang.Object
-
- tigase.pubsub.repository.PubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>
-
- tigase.mongodb.pubsub.PubSubDAOMongo
-
- All Implemented Interfaces:
tigase.db.DataSourceAware<MongoDataSource>,tigase.db.util.RepositoryVersionAware,MongoRepositoryVersionAware,tigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>
public class PubSubDAOMongo extends tigase.pubsub.repository.PubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query> implements MongoRepositoryVersionAware
- Author:
- andrzej
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringPUBSUB_AFFILIATIONSstatic java.lang.StringPUBSUB_ITEMSstatic java.lang.StringPUBSUB_MAMstatic java.lang.StringPUBSUB_NODESstatic java.lang.StringPUBSUB_SERVICE_JIDSstatic java.lang.StringPUBSUB_SUBSCRIPTIONS
-
Constructor Summary
Constructors Constructor Description PubSubDAOMongo()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMAMItem(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String uuid, tigase.xml.Element message, java.lang.String itemId)org.bson.types.ObjectIdcreateNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, tigase.xmpp.jid.BareJID ownerJid, tigase.pubsub.AbstractNodeConfig nodeConfig, tigase.pubsub.NodeType nodeType, org.bson.types.ObjectId collectionId, boolean autocreate)voidcreateService(tigase.xmpp.jid.BareJID serviceJid, boolean isPublic)voiddeleteItem(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String id)voiddeleteNode(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId)voiddeleteService(tigase.xmpp.jid.BareJID serviceJid)java.lang.String[]getAllNodesList(tigase.xmpp.jid.BareJID serviceJid)java.lang.String[]getChildNodes(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)tigase.pubsub.repository.IItems.IItemgetItem(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String id)java.util.List<tigase.pubsub.repository.IItems.IItem>getItems(tigase.xmpp.jid.BareJID serviceJid, java.util.List<org.bson.types.ObjectId> nodeIds, java.util.Date afterDate, java.util.Date beforeDate, tigase.xmpp.rsm.RSM rsm, tigase.pubsub.CollectionItemsOrdering collectionItemsOrdering)java.lang.String[]getItemsIds(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, tigase.pubsub.CollectionItemsOrdering order)java.lang.String[]getItemsIdsSince(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, tigase.pubsub.CollectionItemsOrdering order, java.util.Date since)java.util.List<tigase.pubsub.repository.IItems.ItemMeta>getItemsMeta(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String nodeName)java.util.Map<tigase.xmpp.jid.BareJID,tigase.pubsub.repository.stateless.UsersAffiliation>getNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId)tigase.pubsub.repository.INodeMeta<org.bson.types.ObjectId>getNodeMeta(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)longgetNodesCount(tigase.xmpp.jid.BareJID serviceJid)java.lang.String[]getNodesList(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName)java.util.Map<tigase.xmpp.jid.BareJID,tigase.pubsub.repository.stateless.UsersSubscription>getNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId)java.util.List<tigase.xmpp.jid.BareJID>getServices(tigase.xmpp.jid.BareJID bareJID, java.lang.Boolean isPublic)java.util.Map<java.lang.String,tigase.pubsub.repository.stateless.UsersAffiliation>getUserAffiliations(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID jid)java.util.Map<java.lang.String,tigase.pubsub.repository.stateless.UsersSubscription>getUserSubscriptions(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID jid)voidqueryItems(tigase.pubsub.modules.mam.Query query, org.bson.types.ObjectId nodeId, tigase.xmpp.mam.MAMRepository.ItemHandler<tigase.pubsub.modules.mam.Query,tigase.xmpp.mam.MAMRepository.Item> itemHandler)protected <T> java.util.List<T>readAllValuesForField(com.mongodb.client.MongoCollection<org.bson.Document> collection, java.lang.String field, org.bson.conversions.Bson filter)protected <T> java.util.List<T>readAllValuesForField(com.mongodb.client.MongoCollection<org.bson.Document> collection, java.lang.String field, org.bson.conversions.Bson filter, org.bson.conversions.Bson sort)voidremoveAllFromRootCollection(tigase.xmpp.jid.BareJID serviceJid)voidremoveNodeSubscription(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, tigase.xmpp.jid.BareJID jid)voidsetDataSource(MongoDataSource dataSource)voidupdateNodeAffiliation(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String nodeName, tigase.pubsub.repository.stateless.UsersAffiliation userAffiliation)voidupdateNodeConfig(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String serializedNodeConfig, org.bson.types.ObjectId collectionId)voidupdateNodeSubscription(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String nodeName, tigase.pubsub.repository.stateless.UsersSubscription userSubscription)tigase.db.util.SchemaLoader.ResultupdateSchema(java.util.Optional<tigase.util.Version> oldVersion, tigase.util.Version newVersion)voidwriteItem(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, long timeInMilis, java.lang.String id, java.lang.String publisher, tigase.xml.Element item, java.lang.String uuid)-
Methods inherited from class tigase.pubsub.repository.PubSubDAO
calculateOffsetAndPosition, destroy, getNodeConfig, getUserRoster, itemDataToElement, itemDataToElement, parseConfig, parseConfigForm
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface tigase.mongodb.MongoRepositoryVersionAware
getVersion
-
-
-
-
Field Detail
-
PUBSUB_AFFILIATIONS
public static final java.lang.String PUBSUB_AFFILIATIONS
- See Also:
- Constant Field Values
-
PUBSUB_ITEMS
public static final java.lang.String PUBSUB_ITEMS
- See Also:
- Constant Field Values
-
PUBSUB_MAM
public static final java.lang.String PUBSUB_MAM
- See Also:
- Constant Field Values
-
PUBSUB_NODES
public static final java.lang.String PUBSUB_NODES
- See Also:
- Constant Field Values
-
PUBSUB_SERVICE_JIDS
public static final java.lang.String PUBSUB_SERVICE_JIDS
- See Also:
- Constant Field Values
-
PUBSUB_SUBSCRIPTIONS
public static final java.lang.String PUBSUB_SUBSCRIPTIONS
- See Also:
- Constant Field Values
-
-
Method Detail
-
createNode
public org.bson.types.ObjectId createNode(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName, tigase.xmpp.jid.BareJID ownerJid, tigase.pubsub.AbstractNodeConfig nodeConfig, tigase.pubsub.NodeType nodeType, org.bson.types.ObjectId collectionId, boolean autocreate) throws tigase.component.exceptions.RepositoryException- Specified by:
createNodein interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
createService
public void createService(tigase.xmpp.jid.BareJID serviceJid, boolean isPublic) throws tigase.component.exceptions.RepositoryException- Specified by:
createServicein interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
deleteItem
public void deleteItem(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String id) throws tigase.component.exceptions.RepositoryException- Specified by:
deleteItemin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
deleteNode
public void deleteNode(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId) throws tigase.component.exceptions.RepositoryException- Specified by:
deleteNodein interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getAllNodesList
public java.lang.String[] getAllNodesList(tigase.xmpp.jid.BareJID serviceJid) throws tigase.component.exceptions.RepositoryException- Specified by:
getAllNodesListin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getChildNodes
public java.lang.String[] getChildNodes(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
getChildNodesin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getItem
public tigase.pubsub.repository.IItems.IItem getItem(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String id) throws tigase.component.exceptions.RepositoryException- Specified by:
getItemin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getItems
public java.util.List<tigase.pubsub.repository.IItems.IItem> getItems(tigase.xmpp.jid.BareJID serviceJid, java.util.List<org.bson.types.ObjectId> nodeIds, java.util.Date afterDate, java.util.Date beforeDate, tigase.xmpp.rsm.RSM rsm, tigase.pubsub.CollectionItemsOrdering collectionItemsOrdering) throws tigase.component.exceptions.RepositoryException- Specified by:
getItemsin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getItemsIds
public java.lang.String[] getItemsIds(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, tigase.pubsub.CollectionItemsOrdering order) throws tigase.component.exceptions.RepositoryException- Specified by:
getItemsIdsin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getItemsIdsSince
public java.lang.String[] getItemsIdsSince(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, tigase.pubsub.CollectionItemsOrdering order, java.util.Date since) throws tigase.component.exceptions.RepositoryException- Specified by:
getItemsIdsSincein interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getItemsMeta
public java.util.List<tigase.pubsub.repository.IItems.ItemMeta> getItemsMeta(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
getItemsMetain interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeAffiliations
public java.util.Map<tigase.xmpp.jid.BareJID,tigase.pubsub.repository.stateless.UsersAffiliation> getNodeAffiliations(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId) throws tigase.component.exceptions.RepositoryException- Specified by:
getNodeAffiliationsin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeMeta
public tigase.pubsub.repository.INodeMeta<org.bson.types.ObjectId> getNodeMeta(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
getNodeMetain interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getNodeSubscriptions
public java.util.Map<tigase.xmpp.jid.BareJID,tigase.pubsub.repository.stateless.UsersSubscription> getNodeSubscriptions(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId) throws tigase.component.exceptions.RepositoryException- Specified by:
getNodeSubscriptionsin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getNodesCount
public long getNodesCount(tigase.xmpp.jid.BareJID serviceJid) throws tigase.component.exceptions.RepositoryException- Specified by:
getNodesCountin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getNodesList
public java.lang.String[] getNodesList(tigase.xmpp.jid.BareJID serviceJid, java.lang.String nodeName) throws tigase.component.exceptions.RepositoryException- Specified by:
getNodesListin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getUserAffiliations
public java.util.Map<java.lang.String,tigase.pubsub.repository.stateless.UsersAffiliation> getUserAffiliations(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID jid) throws tigase.component.exceptions.RepositoryException- Specified by:
getUserAffiliationsin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getUserSubscriptions
public java.util.Map<java.lang.String,tigase.pubsub.repository.stateless.UsersSubscription> getUserSubscriptions(tigase.xmpp.jid.BareJID serviceJid, tigase.xmpp.jid.BareJID jid) throws tigase.component.exceptions.RepositoryException- Specified by:
getUserSubscriptionsin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
addMAMItem
public void addMAMItem(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String uuid, tigase.xml.Element message, java.lang.String itemId) throws tigase.component.exceptions.RepositoryException- Specified by:
addMAMItemin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
queryItems
public void queryItems(tigase.pubsub.modules.mam.Query query, org.bson.types.ObjectId nodeId, tigase.xmpp.mam.MAMRepository.ItemHandler<tigase.pubsub.modules.mam.Query,tigase.xmpp.mam.MAMRepository.Item> itemHandler) throws tigase.component.exceptions.RepositoryException- Specified by:
queryItemsin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
readAllValuesForField
protected <T> java.util.List<T> readAllValuesForField(com.mongodb.client.MongoCollection<org.bson.Document> collection, java.lang.String field, org.bson.conversions.Bson filter) throws com.mongodb.MongoException- Throws:
com.mongodb.MongoException
-
readAllValuesForField
protected <T> java.util.List<T> readAllValuesForField(com.mongodb.client.MongoCollection<org.bson.Document> collection, java.lang.String field, org.bson.conversions.Bson filter, org.bson.conversions.Bson sort) throws com.mongodb.MongoException- Throws:
com.mongodb.MongoException
-
removeAllFromRootCollection
public void removeAllFromRootCollection(tigase.xmpp.jid.BareJID serviceJid) throws tigase.component.exceptions.RepositoryException- Throws:
tigase.component.exceptions.RepositoryException
-
removeNodeSubscription
public void removeNodeSubscription(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, tigase.xmpp.jid.BareJID jid) throws tigase.component.exceptions.RepositoryException- Specified by:
removeNodeSubscriptionin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
deleteService
public void deleteService(tigase.xmpp.jid.BareJID serviceJid) throws tigase.component.exceptions.RepositoryException- Specified by:
deleteServicein interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
getServices
public java.util.List<tigase.xmpp.jid.BareJID> getServices(tigase.xmpp.jid.BareJID bareJID, java.lang.Boolean isPublic) throws tigase.component.exceptions.RepositoryException- Specified by:
getServicesin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
setDataSource
public void setDataSource(MongoDataSource dataSource)
- Specified by:
setDataSourcein interfacetigase.db.DataSourceAware<MongoDataSource>
-
updateNodeAffiliation
public void updateNodeAffiliation(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String nodeName, tigase.pubsub.repository.stateless.UsersAffiliation userAffiliation) throws tigase.component.exceptions.RepositoryException- Specified by:
updateNodeAffiliationin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
updateNodeConfig
public void updateNodeConfig(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String serializedNodeConfig, org.bson.types.ObjectId collectionId) throws tigase.component.exceptions.RepositoryException- Specified by:
updateNodeConfigin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
updateNodeSubscription
public void updateNodeSubscription(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, java.lang.String nodeName, tigase.pubsub.repository.stateless.UsersSubscription userSubscription) throws tigase.component.exceptions.RepositoryException- Specified by:
updateNodeSubscriptionin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
updateSchema
public tigase.db.util.SchemaLoader.Result updateSchema(java.util.Optional<tigase.util.Version> oldVersion, tigase.util.Version newVersion) throws tigase.component.exceptions.RepositoryException- Specified by:
updateSchemain interfacetigase.db.util.RepositoryVersionAware- Throws:
tigase.component.exceptions.RepositoryException
-
writeItem
public void writeItem(tigase.xmpp.jid.BareJID serviceJid, org.bson.types.ObjectId nodeId, long timeInMilis, java.lang.String id, java.lang.String publisher, tigase.xml.Element item, java.lang.String uuid) throws tigase.component.exceptions.RepositoryException- Specified by:
writeItemin interfacetigase.pubsub.repository.IPubSubDAO<org.bson.types.ObjectId,MongoDataSource,tigase.pubsub.modules.mam.Query>- Throws:
tigase.component.exceptions.RepositoryException
-
-