Package tigase.archive.unified.db
Class JDBCUnifiedArchiveRepository
- java.lang.Object
-
- tigase.archive.db.AbstractMessageArchiveRepository<Q,tigase.db.DataRepository>
-
- tigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
-
- tigase.archive.unified.db.JDBCUnifiedArchiveRepository
-
- All Implemented Interfaces:
tigase.archive.db.MessageArchiveRepository<QueryCriteria,tigase.db.DataRepository>
,UnifiedArchiveRepository<tigase.db.DataRepository>
,tigase.db.DataSourceAware<tigase.db.DataRepository>
,tigase.db.util.RepositoryVersionAware
,tigase.xmpp.mam.MAMRepository<QueryCriteria,tigase.xmpp.mam.MAMRepository.Item>
public class JDBCUnifiedArchiveRepository extends tigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria> implements UnifiedArchiveRepository<tigase.db.DataRepository>, tigase.db.util.RepositoryVersionAware
Extended JDBCMessageArchivingRepository class to add unique features required for Unified Archive to work
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
JDBCUnifiedArchiveRepository.Item
static class
JDBCUnifiedArchiveRepository.RecentItem
-
Nested classes/interfaces inherited from interface tigase.xmpp.mam.MAMRepository
tigase.xmpp.mam.MAMRepository.ItemHandler<Q extends tigase.xmpp.mam.Query,I extends tigase.xmpp.mam.MAMRepository.Item>
-
Nested classes/interfaces inherited from interface tigase.archive.db.MessageArchiveRepository
tigase.archive.db.MessageArchiveRepository.CollectionHandler<Q extends tigase.xmpp.mam.Query>, tigase.archive.db.MessageArchiveRepository.Direction
-
Nested classes/interfaces inherited from interface tigase.db.util.RepositoryVersionAware
tigase.db.util.RepositoryVersionAware.SchemaVersion
-
Nested classes/interfaces inherited from interface tigase.archive.unified.db.UnifiedArchiveRepository
UnifiedArchiveRepository.CallCondition, UnifiedArchiveRepository.Type
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
OFFLINE_STORE_KEY
-
Fields inherited from class tigase.archive.db.JDBCMessageArchiveRepository
ADD_MESSAGE_QUERY, ADD_TAG_TO_MESSAGE_QUERY, data_repo, DELETE_EXPIRED_MESSAGES_QUERY, GET_COLLECTIONS_COUNT_QUERY, GET_COLLECTIONS_QUERY, GET_MESSAGE_POSITION_QUERY, GET_MESSAGES_COUNT_QUERY, GET_MESSAGES_QUERY, GET_TAGS_FOR_USER_COUNT_QUERY, GET_TAGS_FOR_USER_QUERY, REMOVE_MESSAGES_QUERY
-
-
Constructor Summary
Constructors Constructor Description JDBCUnifiedArchiveRepository()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
addMessageAdditionalInfo(java.sql.PreparedStatement stmt, int i, java.util.Map<java.lang.String,java.lang.Object> additionalData)
void
archiveMessage(tigase.xmpp.jid.BareJID owner, tigase.xmpp.jid.JID buddy, tigase.archive.db.MessageArchiveRepository.Direction direction, java.util.Date timestamp, tigase.xml.Element msg, java.util.Set<java.lang.String> tags)
protected byte[]
generateHashOfMessage(tigase.archive.db.MessageArchiveRepository.Direction direction, tigase.xml.Element msg, java.util.Date ts, java.util.Map<java.lang.String,java.lang.Object> additionalData)
protected tigase.db.DataRepository
getDataRepository()
protected void
initPreparedStatements(tigase.db.DataRepository data_repo)
protected JDBCUnifiedArchiveRepository.Item
newItemInstance()
QueryCriteria
newQuery()
java.util.stream.Stream<? extends UnifiedArchiveRepository.Item>
queryRecents(tigase.xmpp.jid.BareJID ownerJid, java.util.Date start, java.util.Date end, java.util.Set<UnifiedArchiveRepository.Type> types, java.util.Set<UnifiedArchiveRepository.CallCondition> callConditions, tigase.xmpp.rsm.RSM rsm)
protected int
queryRecentsCount(tigase.xmpp.jid.BareJID ownerJid, java.util.Date start, java.util.Date end, java.util.Set<UnifiedArchiveRepository.Type> types, java.util.Set<UnifiedArchiveRepository.CallCondition> callConditions)
protected int
setQueryParams(java.sql.PreparedStatement stmt, QueryCriteria crit, java.lang.Boolean groupByType, int i)
-
Methods inherited from class tigase.archive.db.JDBCMessageArchiveRepository
archiveMessage, convertToTimestamp, deleteExpiredMessages, getTags, queryCollections, queryItems, removeItems, setCountQueryParams, setDataSource, setItemsQueryParams
-
Methods inherited from class tigase.archive.db.AbstractMessageArchiveRepository
calculateOffsetAndPosition
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Field Detail
-
OFFLINE_STORE_KEY
protected static final java.lang.String OFFLINE_STORE_KEY
- See Also:
- Constant Field Values
-
-
Method Detail
-
archiveMessage
public void archiveMessage(tigase.xmpp.jid.BareJID owner, tigase.xmpp.jid.JID buddy, tigase.archive.db.MessageArchiveRepository.Direction direction, java.util.Date timestamp, tigase.xml.Element msg, java.util.Set<java.lang.String> tags)
- Specified by:
archiveMessage
in interfacetigase.archive.db.MessageArchiveRepository<QueryCriteria,tigase.db.DataRepository>
- Overrides:
archiveMessage
in classtigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
-
newQuery
public QueryCriteria newQuery()
- Specified by:
newQuery
in interfacetigase.xmpp.mam.MAMRepository<QueryCriteria,tigase.xmpp.mam.MAMRepository.Item>
- Overrides:
newQuery
in classtigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
-
queryRecents
public java.util.stream.Stream<? extends UnifiedArchiveRepository.Item> queryRecents(tigase.xmpp.jid.BareJID ownerJid, java.util.Date start, java.util.Date end, java.util.Set<UnifiedArchiveRepository.Type> types, java.util.Set<UnifiedArchiveRepository.CallCondition> callConditions, tigase.xmpp.rsm.RSM rsm) throws tigase.db.TigaseDBException
- Specified by:
queryRecents
in interfaceUnifiedArchiveRepository<tigase.db.DataRepository>
- Throws:
tigase.db.TigaseDBException
-
addMessageAdditionalInfo
protected int addMessageAdditionalInfo(java.sql.PreparedStatement stmt, int i, java.util.Map<java.lang.String,java.lang.Object> additionalData) throws java.sql.SQLException
- Overrides:
addMessageAdditionalInfo
in classtigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
- Throws:
java.sql.SQLException
-
queryRecentsCount
protected int queryRecentsCount(tigase.xmpp.jid.BareJID ownerJid, java.util.Date start, java.util.Date end, java.util.Set<UnifiedArchiveRepository.Type> types, java.util.Set<UnifiedArchiveRepository.CallCondition> callConditions) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
initPreparedStatements
protected void initPreparedStatements(tigase.db.DataRepository data_repo) throws java.sql.SQLException
- Overrides:
initPreparedStatements
in classtigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
- Throws:
java.sql.SQLException
-
newItemInstance
protected JDBCUnifiedArchiveRepository.Item newItemInstance()
- Overrides:
newItemInstance
in classtigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
-
setQueryParams
protected int setQueryParams(java.sql.PreparedStatement stmt, QueryCriteria crit, java.lang.Boolean groupByType, int i) throws java.sql.SQLException
- Overrides:
setQueryParams
in classtigase.archive.db.JDBCMessageArchiveRepository<QueryCriteria>
- Throws:
java.sql.SQLException
-
getDataRepository
protected tigase.db.DataRepository getDataRepository()
-
generateHashOfMessage
protected byte[] generateHashOfMessage(tigase.archive.db.MessageArchiveRepository.Direction direction, tigase.xml.Element msg, java.util.Date ts, java.util.Map<java.lang.String,java.lang.Object> additionalData)
- Overrides:
generateHashOfMessage
in classtigase.archive.db.AbstractMessageArchiveRepository<QueryCriteria,tigase.db.DataRepository>
-
-