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 void
close()
protected T
createAndInitQueue(QueueSpec spec)
Create & initialize a new queue instance.protected abstract T
createQueueInstance(QueueSpec spec)
Create a new queue instance.void
destroy()
boolean
getDefaultEphemeralDisabled()
int
getDefaultEphemeralMaxSize()
int
getDefaultMaxSize()
T
getQueue(QueueSpec spec)
Gets anIQueue
instance.AbstractQueueFactory<T,ID,DATA>
init()
protected void
initQueue(T queue, QueueSpec spec)
Initialize a newly created queue instance.boolean
isDefaultEphemeralDisabled()
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:
close
in 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 anIQueue
instance.- Specified by:
getQueue
in interfaceIQueueFactory<T extends AbstractQueue<ID,DATA>,ID>
- Parameters:
spec
- concrete class defines format ofspec
.- Returns:
-
-