public class Store extends java.lang.Object implements StoreConstants
Modifier and Type | Field and Description |
---|---|
static boolean |
DEFAULT_HANDLER_FLAG |
static java.lang.String |
REVISION |
java.lang.Object |
storeAccessLock |
ARRAY_FLAG, CLEANING_STATE, COLLECTION_FLAG, CREATE_OP, DELETE_OP, IDLE_STATE, INNER_LOGS, INNER_MILESTONE, INNER_PREFIX, INNER_SYNC, ITEM_ESCAPE_CHAR, ITEM_SEPARATOR, LOADING_STATE, MAP_ASSIGN, MAP_CHARS_TO_ESCAPE, MAP_CLASS_SEPARATOR, MAP_FLAG, NAMESPACE, SH_SUFFIX, STORING_STATE, UPDATE_OP
Constructor and Description |
---|
Store(java.lang.String logFilename)
Create a new Store which does not support precompiled store
handlers nor in-memory parsing.
|
Store(java.lang.String logFilename,
boolean areHandlersEnabled)
Create a new Store which does not support precompiled store handlers.
|
Store(java.lang.String logFilename,
boolean areHandlersEnabled,
java.lang.String urid,
boolean useNIO)
Create a new Store
|
Modifier and Type | Method and Description |
---|---|
void |
addClassTag(java.lang.String tag,
java.lang.Class<?> clazz)
Binds a tag name with a Storable class.
|
void |
addExtraDeleteAttribute(java.lang.String attName)
Adds an attribute which will be stored when a storable is deleted.
|
void |
addStoreListener(StoreListener listener,
boolean repeat) |
void |
addStoreListener(StoreListener listener,
java.lang.Class<?> clazz,
boolean repeat) |
void |
appendAndProcessSuffix(java.util.List<? extends LogEntry> logEntryList)
Appends the given LogEntries in the store.xml file and process each of them.
|
void |
appendMilestone(java.util.Map<java.lang.String,java.lang.String> map)
Appends a milestone in the store.
|
void |
appendMilestone(java.lang.String text)
Appends a milestone in the store.
|
void |
appendSync(java.util.Date date)
Appends a sync tag in the store.
|
boolean |
backupStore(java.io.File backupFile)
Backup the store.
|
void |
close()
Close all Store resources when ending.
|
void |
create(Storable storable)
Create a storable, set storable id to stamp value.
|
void |
create(Storable storable,
boolean overrideId)
Create a storable, if overrideId is false and storable have an id then do not override id.
|
void |
delete(Storable storable)
Delete a storable (even if references remain on it).
|
void |
delete(Storable storable,
boolean force)
Delete a storable.
|
int |
generateDelta(java.io.OutputStream out,
Stamp startStamp,
boolean includeStart)
Ouput in a given stream all the log operations having a stamp greater that the given one.
|
void |
generateLogFromMemory(java.lang.String backupFilename)
Cleans the log.
|
java.lang.Class<?> |
getClassFromTag(java.lang.String tag)
Returns the class binded with a specified tag name
If the class was not registered the class associated
to the name is returned |
int |
getCreationLineNumber(java.lang.String id)
Returns the line number in the store file of the creation.
|
java.util.TreeSet<? extends Storable> |
getDeletedSet(java.lang.Class<?> clazz)
Get the latest version of the deleted Storable for a given class.
|
java.util.Set<java.lang.String> |
getExtraDeleteAttributeSet()
Returns the list of attributes stored when a storable is deleted.
|
LoadReport |
getLoadReport()
Return the load report
|
LogCleaner |
getLogCleaner()
Returns the LogCleaner.
|
java.lang.String |
getLogFilename()
Return the name of the log file.
|
java.util.List<InnerLogEntry> |
getMilestoneList()
Returns the list of milestones.
|
Stamp |
getProgressStamp()
Return the greatest stamp of this urid
|
Stamp |
getProgressStamp(java.lang.String urid)
Return the greatest stamp of the given urid
|
StampTable |
getProgressTable()
Return the progressTable
|
int |
getSize()
Return the size of the store.
|
Stamp |
getStamp()
Return a new stamp.
|
int |
getStampLineNumber(Stamp stamp)
Returns the line number in the store file of the given stamp.
|
int |
getState()
Return the current state of the store (see StoreConstants).
|
Storable |
getStorable(java.lang.String id)
Return the storable given its id
|
java.util.Map<java.lang.Class<?>,java.util.Set<StoreListener>> |
getStoreClassListeners(boolean repeat) |
java.util.Set<StoreListener> |
getStoreListeners(boolean repeat) |
SyncManager |
getSyncManager()
Return the SyncManager
|
java.lang.String |
getTagFromClass(java.lang.Class<?> clazz)
Returns the tag name binded with a specified class
|
java.lang.String |
getUrid() |
java.util.List<? extends Storable> |
getVersionList(Storable storable)
Get all the version of a given Storable
|
java.util.List<? extends Storable> |
getVersionList(java.lang.String id)
Get all the version of a given Storable ID
|
boolean |
isReferrenced(Storable storable) |
boolean |
isRegistered(Storable storable) |
boolean |
isRegistered(java.lang.String id) |
java.util.Iterator<Storable> |
iterator()
Return an iterator on the storables registered in the swizzler
|
void |
load()
Load and process the log
|
void |
load(boolean processStorable,
boolean processInner)
Load and process the log
|
void |
parseLog(LogManagerHandler handler)
Parse the store with the given handler
|
boolean |
parseLog(LogManagerHandler handler,
int startLine)
Parse the store with the given handler from the given line number
|
void |
parseLog(LogManagerHandler handler,
Stamp stamp)
Parse the store with the given handler from the given stamp
|
void |
printMemoryToLog(java.io.OutputStream out)
Prints a cleaned version of the log.
|
void |
processInnerLogEntry(InnerLogEntry logEntry) |
void |
processLogEntry(LogEntry logEntry) |
void |
processStorableLogEntry(StorableLogEntry sle) |
void |
removeStoreListener(StoreListener listener) |
void |
removeStoreListener(StoreListener listener,
java.lang.Class<?> clazz) |
void |
replaceSuffix(java.util.TreeSet<StorableLogEntry> newSuffix,
LogEntry startLogEntry,
boolean includeStart) |
void |
setClassLoader(java.lang.ClassLoader classLoader)
Set the classLoader
|
void |
setReplaceSuffixLimit(int replaceSuffixLimit)
A store suffix replacement starting before the limit will be rejected.
|
void |
setUrid(java.lang.String urid)
Set the current urid value
|
void |
update(Storable storable,
java.util.Map<java.lang.String,java.lang.String> attributes)
Update a storable.
|
void |
update(Storable storable,
Storable updated)
Update a storable.
|
void |
update(java.lang.String id,
java.util.Map<java.lang.String,java.lang.String> attributes)
Update a storable.
|
void |
update(java.lang.String id,
Storable updated)
Update a storable.
|
void |
updateStamp(Stamp stamp)
Update the current stamp value (and the progress table)
|
void |
updateStamp(Stamp stamp,
boolean updatePT)
Update the current stamp value
|
boolean |
verifyLastStampIndex()
Verify if the last (highest) stamp is correctly indexed.
|
boolean |
verifyStampLineMap()
Verify if the stamps are correctly indexed.
|
public static final java.lang.String REVISION
public static final boolean DEFAULT_HANDLER_FLAG
public java.lang.Object storeAccessLock
public Store(java.lang.String logFilename) throws java.io.IOException
logFilename
- the name of the file which contains the logjava.io.IOException
public Store(java.lang.String logFilename, boolean areHandlersEnabled) throws java.io.IOException
logFilename
- the name of the file which contains the logareHandlersEnabled
- specify if the precompiled store handlers are supported.java.io.IOException
public Store(java.lang.String logFilename, boolean areHandlersEnabled, java.lang.String urid, boolean useNIO) throws java.io.IOException
logFilename
- the name of the file which contains the logareHandlersEnabled
- specify if the precompiled store handlers are supported.urid
- the URIDuseNIO
- specify if the NIO must be used (faster store access)java.io.IOException
public void addExtraDeleteAttribute(java.lang.String attName)
attName
- the attribute namepublic java.util.Set<java.lang.String> getExtraDeleteAttributeSet()
public void setClassLoader(java.lang.ClassLoader classLoader)
classLoader
- the classLoader to usepublic void addClassTag(java.lang.String tag, java.lang.Class<?> clazz)
tag
- the nam of the tagclazz
- the classpublic java.lang.String getTagFromClass(java.lang.Class<?> clazz)
clazz
- the classpublic java.lang.Class<?> getClassFromTag(java.lang.String tag) throws java.lang.ClassNotFoundException
tag
- the tag namejava.lang.ClassNotFoundException
public Storable getStorable(java.lang.String id)
id
- the storable idpublic boolean isReferrenced(Storable storable)
storable
- the storable to checkpublic boolean isRegistered(Storable storable)
storable
- the storable to checkpublic boolean isRegistered(java.lang.String id)
id
- the storable idpublic java.util.List<? extends Storable> getVersionList(Storable storable)
storable
- the storablepublic java.util.List<? extends Storable> getVersionList(java.lang.String id)
id
- the ID of storablepublic java.util.TreeSet<? extends Storable> getDeletedSet(java.lang.Class<?> clazz)
clazz
- the searched classpublic int generateDelta(java.io.OutputStream out, Stamp startStamp, boolean includeStart) throws LogException
out
- the outputstream to use to output the operationsstartStamp
- the stamp to start the copyLogException
public void parseLog(LogManagerHandler handler) throws LogException
handler
- the handler used to parse the storeLogException
public void parseLog(LogManagerHandler handler, Stamp stamp) throws LogException
handler
- the handler used to parse the storestamp
- the stamp to start the parsingLogException
public boolean parseLog(LogManagerHandler handler, int startLine)
handler
- the handler used to parse the storestartLine
- the line number to start the parsingpublic void replaceSuffix(java.util.TreeSet<StorableLogEntry> newSuffix, LogEntry startLogEntry, boolean includeStart) throws java.io.IOException
java.io.IOException
LogManager.replaceSuffix(java.util.TreeSet,com.jalios.jstore.LogEntry,boolean,boolean)
public void appendAndProcessSuffix(java.util.List<? extends LogEntry> logEntryList) throws java.io.IOException
logEntryList
- the list of logEntry. It assumes the logEntries are sorted according their stampsjava.io.IOException
public java.util.Iterator<Storable> iterator()
public int getSize()
public int getState()
public java.lang.String getUrid()
StampManager.getUrid()
public void setUrid(java.lang.String urid)
StampManager.setUrid(String)
public void updateStamp(Stamp stamp)
stamp
- the stamp to be addedupdateStamp(Stamp, boolean)
public void updateStamp(Stamp stamp, boolean updatePT)
stamp
- the stamp to be addedupdatePT
- if true use this stamp to update the progress tableStampManager.update(com.jalios.jstore.Stamp,boolean)
public Stamp getStamp()
StampManager.getStamp()
public StampTable getProgressTable()
StampManager.getProgressTable()
public Stamp getProgressStamp()
StampManager.getProgressStamp(String)
public Stamp getProgressStamp(java.lang.String urid)
urid
- the uridStampManager.getProgressStamp(String)
public SyncManager getSyncManager()
public void load() throws LogException
LogException
public void load(boolean processStorable, boolean processInner) throws LogException
processStorable
- if true the storable operations are processed. If false only the stamps information are processed.processInner
- if true the storable operations are processed. If false only the stamps information are processed.LogException
public void processLogEntry(LogEntry logEntry)
public void processInnerLogEntry(InnerLogEntry logEntry)
public void processStorableLogEntry(StorableLogEntry sle)
public void create(Storable storable) throws java.io.IOException
storable
- the storable to create.java.io.IOException
public void create(Storable storable, boolean overrideId) throws java.io.IOException
storable
- overrideId
- java.io.IOException
public void update(java.lang.String id, java.util.Map<java.lang.String,java.lang.String> attributes) throws java.io.IOException
id
- the id of the storable to updateattributes
- the map that contains the new attributes valuesjava.io.IOException
public void update(Storable storable, java.util.Map<java.lang.String,java.lang.String> attributes) throws java.io.IOException
storable
- the storable to updateattributes
- the map that contains the new attributes valuesjava.io.IOException
public void update(java.lang.String id, Storable updated) throws java.io.IOException, NoUpdateException
storable
and updated
.id
- the id of the storable to updateupdated
- the updated storablejava.io.IOException
NoUpdateException
public void update(Storable storable, Storable updated) throws java.io.IOException, NoUpdateException
storable
and updated
.storable
- the storable to updateupdated
- the updated storableNoUpdateException
- on error, for example when given objects are same instancejava.io.IOException
public void delete(Storable storable) throws java.io.IOException
storable
- the storable to deletejava.io.IOException
public void delete(Storable storable, boolean force) throws java.io.IOException
storable
- the storable to deleteforce
- if true the referenced storable attributes are
deletedjava.io.IOException
public java.util.List<InnerLogEntry> getMilestoneList()
public void appendMilestone(java.lang.String text) throws java.io.IOException
text
- the text of the milestone.java.io.IOException
public void appendMilestone(java.util.Map<java.lang.String,java.lang.String> map) throws java.io.IOException
map
- the map of attributes.java.io.IOException
public void appendSync(java.util.Date date) throws java.io.IOException
date
- the date of the sync.java.io.IOException
public void generateLogFromMemory(java.lang.String backupFilename) throws java.io.IOException
printCleanedLog
method. If a backup filename is provided (i.e. not null
), the current log file is copy into before to
be cleaned.backupFilename
- the name of the file to backup the current logjava.io.IOException
public void printMemoryToLog(java.io.OutputStream out) throws java.lang.Exception
out
- the OutputStream in which to print the cleaned logjava.lang.Exception
public LogCleaner getLogCleaner()
public java.lang.String getLogFilename()
public LoadReport getLoadReport()
public int getStampLineNumber(Stamp stamp)
stamp
- the stamp to get the line numberpublic boolean verifyStampLineMap()
public boolean verifyLastStampIndex()
public int getCreationLineNumber(java.lang.String id)
id
- the id of the storablepublic boolean backupStore(java.io.File backupFile)
backupFile
- the backup file.LogManager.backupStore(File)
public void setReplaceSuffixLimit(int replaceSuffixLimit)
replaceSuffixLimit
- the limit (in number of lines).public java.util.Set<StoreListener> getStoreListeners(boolean repeat)
public java.util.Map<java.lang.Class<?>,java.util.Set<StoreListener>> getStoreClassListeners(boolean repeat)
public void addStoreListener(StoreListener listener, boolean repeat)
public void addStoreListener(StoreListener listener, java.lang.Class<?> clazz, boolean repeat)
public void removeStoreListener(StoreListener listener)
public void removeStoreListener(StoreListener listener, java.lang.Class<?> clazz)
public void close()
Copyright © 2001-2010 Jalios SA. All Rights Reserved.