Package com.github.ddth.queue.impl
Class AbstractQueueFactory<T extends AbstractQueue<ID,DATA>,ID,DATA>
- java.lang.Object
-
- com.github.ddth.queue.impl.AbstractQueueFactory<T,ID,DATA>
-
- Type Parameters:
T-ID-DATA-
- All Implemented Interfaces:
IQueueFactory<ID,DATA>,AutoCloseable
- Direct Known Subclasses:
ActiveMqQueueFactory,BaseRedisQueueFactory,DisruptorQueueFactory,InmemQueueFactory,JdbcQueueFactory,KafkaQueueFactory,MongodbQueueFactory,RabbitMqQueueFactory,RocksDbQueueFactory
public abstract class AbstractQueueFactory<T extends AbstractQueue<ID,DATA>,ID,DATA> extends Object implements IQueueFactory<ID,DATA>, AutoCloseable
Abstract queue factory implementation.- Author:
- Thanh Nguyen
-
-
Constructor Summary
Constructors Constructor Description AbstractQueueFactory()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclose()protected TcreateAndInitQueue(QueueSpec spec)Create & initialize a new queue instance.protected abstract TcreateQueueInstance(QueueSpec spec)Create a new queue instance.voiddestroy()booleangetDefaultEphemeralDisabled()intgetDefaultEphemeralMaxSize()intgetDefaultMaxSize()TgetQueue(QueueSpec spec)Gets anIQueueinstance.AbstractQueueFactory<T,ID,DATA>init()protected voidinitQueue(T queue, QueueSpec spec)Initialize a newly created queue instance.booleanisDefaultEphemeralDisabled()AbstractQueueFactory<T,ID,DATA>setDefaultEphemeralDisabled(boolean defaultEphemeralDisabled)AbstractQueueFactory<T,ID,DATA>setDefaultEphemeralMaxSize(int defaultEphemeralMaxSize)AbstractQueueFactory<T,ID,DATA>setDefaultMaxSize(int defaultMaxSize)
-
-
-
Method Detail
-
isDefaultEphemeralDisabled
public boolean isDefaultEphemeralDisabled()
- Returns:
- Since:
- 0.6.2
-
getDefaultEphemeralDisabled
public boolean getDefaultEphemeralDisabled()
- Returns:
- Since:
- 0.6.2
-
setDefaultEphemeralDisabled
public AbstractQueueFactory<T,ID,DATA> setDefaultEphemeralDisabled(boolean defaultEphemeralDisabled)
- Parameters:
defaultEphemeralDisabled-- Since:
- 0.6.2
-
getDefaultMaxSize
public int getDefaultMaxSize()
- Returns:
- Since:
- 0.6.2
-
setDefaultMaxSize
public AbstractQueueFactory<T,ID,DATA> setDefaultMaxSize(int defaultMaxSize)
- Parameters:
defaultMaxSize-- Since:
- 0.6.2
-
getDefaultEphemeralMaxSize
public int getDefaultEphemeralMaxSize()
- Returns:
- Since:
- 0.6.2
-
setDefaultEphemeralMaxSize
public AbstractQueueFactory<T,ID,DATA> setDefaultEphemeralMaxSize(int defaultEphemeralMaxSize)
- Parameters:
defaultEphemeralMaxSize-- Since:
- 0.6.2
-
init
public AbstractQueueFactory<T,ID,DATA> init()
-
destroy
public void destroy()
-
close
public void close()
- Specified by:
closein interfaceAutoCloseable
-
createQueueInstance
protected abstract T createQueueInstance(QueueSpec spec)
Create a new queue instance.Called by
createAndInitQueue(QueueSpec). Sub-class is to implement this method.- Parameters:
spec-- Returns:
-
initQueue
protected void initQueue(T queue, QueueSpec spec) throws Exception
Initialize a newly created queue instance.Called by
createAndInitQueue(QueueSpec). Sub-class may override this method to implement its own business logic.- Parameters:
queue-spec-- Throws:
Exception
-
createAndInitQueue
protected T createAndInitQueue(QueueSpec spec) throws Exception
Create & initialize a new queue instance.- Parameters:
spec-- Returns:
- Throws:
Exception
-
getQueue
public T getQueue(QueueSpec spec)
Gets anIQueueinstance.- Specified by:
getQueuein interfaceIQueueFactory<T extends AbstractQueue<ID,DATA>,ID>- Parameters:
spec- concrete class defines format ofspec.- Returns:
-
-