Class PostgresRepositoryFactory

java.lang.Object
com.cloudimpl.outstack.spring.repo.PostgresRepositoryFactory
All Implemented Interfaces:
EventRepositoryFactory

public class PostgresRepositoryFactory
extends java.lang.Object
implements EventRepositoryFactory
Author:
nuwan
  • Field Summary

    Fields inherited from interface com.cloudimpl.outstack.runtime.EventRepositoryFactory

    eventStream, mapRepos
  • Constructor Summary

    Constructors
    Constructor Description
    PostgresRepositoryFactory​(ResourceHelper helper, ComponentProvider.ProviderConfigs providerConfig)  
  • Method Summary

    Modifier and Type Method Description
    int createEntityTable​(java.sql.Connection conn, java.lang.String tableName)  
    int createEventTable​(java.sql.Connection conn, java.lang.String tableName)  
    <T extends RootEntity>
    EventRepositoy<T>
    createOrGetRepository​(java.lang.Class<T> rootType)  
    protected int deleteChildEntityByRootId​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String rootEntityType, java.lang.String rootId)  
    protected int deleteEntity​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String brn, java.lang.String entityId)  
    protected int deleteEventsByRootId​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String rootId)  
    protected int deleteEventsByTrn​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String trn, java.lang.String eventOwner, java.lang.String eventOwnerId)  
    void execute​(java.util.List<java.util.function.Function<java.sql.Connection,​java.lang.Integer>> consumer)  
    <T> T executeQuery​(java.util.function.Function<java.sql.Connection,​T> queryHandler)  
    protected ResultSet<java.lang.String> getChildEntityByType​(java.sql.Connection conn, java.lang.String tableName, java.lang.String rootEntityType, java.lang.String rootId, java.lang.String entityType, java.util.List<java.lang.String> tenantIds, java.lang.String filter, java.lang.String orderBy, int pageNum, int pageSize)  
    protected long getChildEntityByTypeCount​(java.sql.Connection conn, java.lang.String tableName, java.lang.String rootEntityType, java.lang.String rootId, java.lang.String entityType, java.util.List<java.lang.String> tenantIds, java.lang.String filter)  
    protected java.util.Optional<java.lang.String> getEntityByBrn​(java.sql.Connection conn, java.lang.String tableName, java.lang.String brn, java.lang.String tenantId)  
    protected java.util.Optional<java.lang.String> getEntityByTrn​(java.sql.Connection conn, java.lang.String tableName, java.lang.String entityType, java.lang.String id, java.lang.String tenantId)  
    protected java.util.Collection<java.lang.String> getEvents​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String trn, java.lang.String eventOwner, java.lang.String eventOwnerId, long eventSeq)  
    protected ResultSet<java.lang.String> getRootEntityByType​(java.sql.Connection conn, java.lang.String tableName, java.lang.String rootEntityType, java.util.List<java.lang.String> tenantIds, java.lang.String filter, java.lang.String orderBy, int pageNum, int pageSize)  
    protected long getRootEntityByTypeCount​(java.sql.Connection conn, java.lang.String tableName, java.lang.String rootEntityType, java.util.List<java.lang.String> tenantIds, java.lang.String filter)  
    protected int insertCheckpoint​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String brn, java.lang.String entityType, java.lang.String entityId, java.lang.String json, long lastSeq)  
    protected int insertEntity​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String rootEntityType, java.lang.String rootId, java.lang.String brn, java.lang.String entityType, java.lang.String entityId, java.lang.String json, long lastSeq)  
    protected int insertEvent​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String trn, java.lang.String eventOwner, java.lang.String eventOwnerId, java.lang.String eventType, long eventSeq, java.lang.String json)  
    protected boolean isIdExist​(java.sql.Connection conn, java.lang.String tableName, java.lang.String id, java.lang.String tenantId)  
    protected int updateEntity​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String brn, java.lang.String entityType, java.lang.String entityId, java.lang.String json, long lastSeq, long updatedSeq)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • execute

      public void execute​(java.util.List<java.util.function.Function<java.sql.Connection,​java.lang.Integer>> consumer)
    • createEntityTable

      public int createEntityTable​(java.sql.Connection conn, java.lang.String tableName)
    • createEventTable

      public int createEventTable​(java.sql.Connection conn, java.lang.String tableName)
    • executeQuery

      public <T> T executeQuery​(java.util.function.Function<java.sql.Connection,​T> queryHandler)
    • insertEntity

      protected int insertEntity​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String rootEntityType, java.lang.String rootId, java.lang.String brn, java.lang.String entityType, java.lang.String entityId, java.lang.String json, long lastSeq)
    • deleteChildEntityByRootId

      protected int deleteChildEntityByRootId​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String rootEntityType, java.lang.String rootId)
    • deleteEventsByRootId

      protected int deleteEventsByRootId​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String rootId)
    • insertCheckpoint

      protected int insertCheckpoint​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String brn, java.lang.String entityType, java.lang.String entityId, java.lang.String json, long lastSeq)
    • insertEvent

      protected int insertEvent​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String trn, java.lang.String eventOwner, java.lang.String eventOwnerId, java.lang.String eventType, long eventSeq, java.lang.String json)
    • deleteEventsByTrn

      protected int deleteEventsByTrn​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String trn, java.lang.String eventOwner, java.lang.String eventOwnerId)
    • getEvents

      protected java.util.Collection<java.lang.String> getEvents​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String trn, java.lang.String eventOwner, java.lang.String eventOwnerId, long eventSeq)
    • updateEntity

      protected int updateEntity​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String brn, java.lang.String entityType, java.lang.String entityId, java.lang.String json, long lastSeq, long updatedSeq)
    • deleteEntity

      protected int deleteEntity​(java.sql.Connection conn, java.lang.String tableName, java.lang.String tenantId, java.lang.String brn, java.lang.String entityId)
    • getEntityByBrn

      protected java.util.Optional<java.lang.String> getEntityByBrn​(java.sql.Connection conn, java.lang.String tableName, java.lang.String brn, java.lang.String tenantId)
    • getEntityByTrn

      protected java.util.Optional<java.lang.String> getEntityByTrn​(java.sql.Connection conn, java.lang.String tableName, java.lang.String entityType, java.lang.String id, java.lang.String tenantId)
    • getRootEntityByType

      protected ResultSet<java.lang.String> getRootEntityByType​(java.sql.Connection conn, java.lang.String tableName, java.lang.String rootEntityType, java.util.List<java.lang.String> tenantIds, java.lang.String filter, java.lang.String orderBy, int pageNum, int pageSize)
    • getRootEntityByTypeCount

      protected long getRootEntityByTypeCount​(java.sql.Connection conn, java.lang.String tableName, java.lang.String rootEntityType, java.util.List<java.lang.String> tenantIds, java.lang.String filter)
    • getChildEntityByTypeCount

      protected long getChildEntityByTypeCount​(java.sql.Connection conn, java.lang.String tableName, java.lang.String rootEntityType, java.lang.String rootId, java.lang.String entityType, java.util.List<java.lang.String> tenantIds, java.lang.String filter)
    • getChildEntityByType

      protected ResultSet<java.lang.String> getChildEntityByType​(java.sql.Connection conn, java.lang.String tableName, java.lang.String rootEntityType, java.lang.String rootId, java.lang.String entityType, java.util.List<java.lang.String> tenantIds, java.lang.String filter, java.lang.String orderBy, int pageNum, int pageSize)
    • isIdExist

      protected boolean isIdExist​(java.sql.Connection conn, java.lang.String tableName, java.lang.String id, java.lang.String tenantId)
    • createOrGetRepository

      public <T extends RootEntity> EventRepositoy<T> createOrGetRepository​(java.lang.Class<T> rootType)
      Specified by:
      createOrGetRepository in interface EventRepositoryFactory