public class WGDatabaseImpl extends java.lang.Object implements WGDatabaseCore
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
COPTION_CACHE_LATENCY |
Constructor and Description |
---|
WGDatabaseImpl() |
Modifier and Type | Method and Description |
---|---|
boolean |
beginTransaction()
Called when a transaction should begin.
|
void |
beginUpdate()
Notifies the backend database that the session will update data from now on.
|
java.lang.Object |
callBackendService(java.lang.String serviceName,
java.lang.Object[] params)
Calls a backend service whose support is optional.
|
void |
cleanup() |
void |
clearSessionCache()
Is called when the cache of the current WGAPI session is cleared.
|
void |
close()
Called when a database implementation is completely closed and all cached data of it is dropped.
|
void |
closeSession()
Called when a database session is closed, i.e. the current thread/user stops working with this database for the logged in user.
|
boolean |
commitTransaction()
Called when a running transaction should get submitted
Needed when database supports feature WGDatabase.FEATURE_TRANSACTIONS.
|
java.lang.String |
convertFileNameForAttaching(java.lang.String name)
Returns a file name like it would be converted when a file of this name got attached to a document.
|
WGDocumentCore |
createContent(WGStructEntry structEntry,
WGLanguage language,
java.lang.String title,
int version)
Called to create a content document.
|
WGDocumentCore |
createCopy(WGDocumentCore original)
Create a copy of the given doc core.
|
WGDocumentCore |
createDesignDocument(int type,
java.lang.String name,
java.lang.String mediaKey)
Create a design document of the given type and keys.
|
WGFileDerivateMetaData |
createFileDerivate(WGDocumentCore doc,
java.lang.String originalFileName,
java.lang.String creator,
java.lang.String derivateName,
java.io.InputStream in,
java.util.Map<java.lang.String,java.lang.Object> customMdFields) |
WGDocumentCore |
createStructEntry(java.lang.Object key,
WGDocument reference,
WGContentType contentType)
Creates a struct entry.
|
WGDocumentCore |
createUserProfile(java.lang.String name,
int type) |
java.lang.Object |
execProcedure(java.lang.String procName,
java.util.List args) |
WGDocumentCore |
fastAccess(int type,
java.lang.Object key)
Called for fast re-retrieval of a document core, if that core on first instantiation specified a fast access key.
|
WGACLCore |
getACL()
Retrieves the ACL if implementation supports WGDatabase.FEATURE_ACL_MANAGEABLE
|
java.util.List |
getAllContent(WGStructEntry structEntry,
boolean includeArchived)
Retrieves a list of all content unter the specified struct entry.
|
java.util.List |
getAllContentKeys(boolean includeArchived)
Retrieves all content keys of all contents in this database as list.
|
java.lang.Class[] |
getAllowedCredentialClasses() |
java.util.Iterator<WGDocumentCore> |
getChildEntries(WGStructEntry structEntry,
WGPageOrderSet order)
Retrieves all child struct entries for the provided struct entry.
|
WGDocumentCore |
getContentByKey(WGContentKey key)
Retrieves the content for the provided content key.
|
WGDocumentCore |
getContentByName(java.lang.String strName,
java.lang.String strLanguage)
Retrieves a content by it's unique name for the given language.
|
int |
getContentCount(WGStructEntry entry)
Returns the number of total contents on this struct entry, including those that are not visible to the user.
|
int |
getContentStorePatchLevel()
Returns the patch level of the storage format of this WGA Content Store.
|
double |
getContentStoreVersion()
Returns the version of WGA Content Store that this backend represents.
|
java.lang.Class |
getDedicatedWorkflowEngine()
Retrieves the class of a dedicated workflow engine for this implementation.
|
java.util.Set |
getDeletions(java.util.Set contentKeys) |
WGDocumentCore |
getDesignObject(int type,
java.lang.String name,
java.lang.String strMediaKey)
Retrieves a design object by it's doc class and unique name.
|
java.util.List |
getDesignObjects(int type)
Retrieves all design objects of the given doc class.
|
WGDocumentCore |
getDummyContent(java.lang.String language)
Creates a "dummy content" object, that is used, when rendering WebTML without a content context.
|
java.lang.Object |
getExtensionData(java.lang.String name)
Retrieves the value of an extension data field stored in this database.
|
java.util.List<java.lang.String> |
getExtensionDataNames()
Retrieves names of all extension data fields stored in this database.
|
java.util.List<WGRelationData> |
getIncomingRelations(java.lang.Object structKey,
java.lang.String language,
java.lang.String contentClass,
java.lang.String relName,
java.lang.String relGroupName,
java.lang.Boolean includeUnreleased,
WGColumnSet order)
Must Return the relations that point to the given released content document
|
java.lang.Object |
getNativeObject()
Retrieves the native backend object for this database if there is any.
|
java.util.List |
getNewDesignsSince(java.util.Date date) |
WGDocumentCore |
getParentEntry(WGStructEntry entry)
Retrieves the parent struct enty for the given entry.
|
java.util.Date |
getRevision()
Returns an revision indicator of the last change done to this database
This may be a anything that indicates the revision of the current database, like some java.util.Date or a sequence number.
|
java.util.Date |
getRevisionDate(java.lang.Comparable lastChanged)
Returns a date object corresponding to the given revision indicator
Use this method to get concrete dates for the revisions returned by
WGDatabaseCore.getRevision() . |
java.util.List |
getRoles()
Returns the roles that this database complies.
|
java.util.Iterator<WGDocumentCore> |
getRootEntries(WGArea area,
WGPageOrderSet pageOrder)
Retrieves the root entries (i.e. entries without parents) of the given area.
|
java.lang.String |
getServerName()
Returns the name of the server for the backend database (if there is one)
|
WGDocumentCore |
getStructEntryByKey(java.lang.Object key)
Retrieves a struct entry for the given struct key
|
WGDocumentCore |
getStructEntryByName(java.lang.String strName)
Returns a struct entry by it's unique name
|
java.lang.String |
getTitle()
Retrieves a descriptive database title.
|
java.lang.String |
getTypeName()
Returns a description of this core implementation type.
|
java.util.List |
getUpdatedDocumentsSince(java.util.Date cutoff) |
java.util.List |
getUpdateLogs(java.lang.Comparable cutoff)
Retrieves list of update logs - i.e. the operations done on documents - since a cutoff revision in ascending order of operation times.
|
WGDocumentCore |
getUserProfile(java.lang.String name) |
boolean |
hasFeature(java.lang.String feature)
Returns information on specific features, that this database implements.
|
boolean |
isBackendServiceSupported(java.lang.String serviceName)
Returns if a backend service is supported
|
boolean |
isContentTypeUsed(WGContentType ct)
Tests if the given content type is still in usage, i.e. if there are struct entries referencing it
|
boolean |
isLanguageUsed(WGLanguage lang)
Tests if the given language is still in usage, i.e. if there are contents referencing it
|
boolean |
isMemberOfUserList(java.util.List userList)
Determines if the currently logged in user is a member of the given user/group/role list.
|
boolean |
isStructEntryKey(java.lang.Object key) |
boolean |
moveStructEntry(WGStructEntry entry,
WGDocument newParent)
Moves a struct entry to a new parent document, either another struct entry of an area.
|
WGUserAccess |
open(WGDatabase db,
java.lang.String path,
java.lang.String user,
java.lang.String pwd,
boolean prepareOnly)
Opens a database initially.
|
WGUserAccess |
openSession(AuthenticationSession authSession,
java.lang.Object pwd,
boolean master)
Opens a session for the given user/thread.
|
java.lang.Object |
parseStructKey(java.lang.String key)
Parses the string representation of a struct key (as used in URLs) to the implementation specific format.
|
WGResultSetCore |
query(java.lang.String type,
java.lang.String query,
java.util.Map parameters)
Queries the database for content.
|
java.util.List |
queryUserProfileNames(java.lang.String type,
java.lang.String query,
java.util.Map params) |
void |
refresh()
Is called when a database refresh is performed
The core should perform necessary cleanups of cached data and held resources
If the database supports WGAPI transactions it should reduce the impact of this method to the current session while in a transaction
|
void |
removeExtensionData(java.lang.String name)
Removes an extension data field from this database
|
boolean |
resultIsFalse(java.lang.Object result,
WGDocument doc)
Tests, if an native expression result equals false in the native expression language.
|
boolean |
resultIsTrue(java.lang.Object result,
WGDocument doc)
Tests, if an native expression result equals true in the native expression language.
|
boolean |
rollbackTransaction()
Called when a started transaction should be rolled back.
|
void |
setCurrentSession(WGSessionContext context)
Method to inject the current session context to the core.
|
void |
writeExtensionData(java.lang.String name,
java.lang.Object value)
Writes an extension data field to in this database.
|
public static final java.lang.String COPTION_CACHE_LATENCY
public WGUserAccess open(WGDatabase db, java.lang.String path, java.lang.String user, java.lang.String pwd, boolean prepareOnly) throws WGInvalidDatabaseException, WGIllegalDataException
WGDatabaseCore
open
in interface WGDatabaseCore
db
- The WGDatabase object, that will wrap this database core.path
- The path of the database, that should be opened. Interpretation of the path is up to the specific database coreuser
- The user name for opening the initial session.pwd
- The password for the given usernameprepareOnly
- Flag if the database should only be prepared for openingWGInvalidDatabaseException
WGIllegalDataException
public WGUserAccess openSession(AuthenticationSession authSession, java.lang.Object pwd, boolean master) throws WGIllegalDataException
WGDatabaseCore
openSession
in interface WGDatabaseCore
authSession
- The authentication session of the current user. If there is no authentication module configured this is of type BackendAuthSession
pwd
- The credentials that the user gave for authenticatingmaster
- States, that the used login is the master loginWGIllegalDataException
public void close()
WGDatabaseCore
close
in interface WGDatabaseCore
public void closeSession()
WGDatabaseCore
closeSession
in interface WGDatabaseCore
public java.lang.String getTitle()
WGDatabaseCore
getTitle
in interface WGDatabaseCore
public java.lang.String getTypeName()
WGDatabaseCore
getTypeName
in interface WGDatabaseCore
public java.util.Date getRevision()
WGDatabaseCore
getRevision
in interface WGDatabaseCore
public java.lang.Object getExtensionData(java.lang.String name)
WGDatabaseCore
getExtensionData
in interface WGDatabaseCore
name
- The name of the field.public java.util.List getRoles()
WGDatabaseCore
getRoles
in interface WGDatabaseCore
public boolean hasFeature(java.lang.String feature)
WGDatabaseCore
hasFeature
in interface WGDatabaseCore
feature
- The requested feature. The constants WGDatabase.FEATURE_... are used here.public java.util.Iterator<WGDocumentCore> getChildEntries(WGStructEntry structEntry, WGPageOrderSet order)
WGDatabaseCore
getChildEntries
in interface WGDatabaseCore
structEntry
- The struct entry, whose children are to be retrievedorder
- Instructions about the desired orderpublic java.util.Iterator<WGDocumentCore> getRootEntries(WGArea area, WGPageOrderSet pageOrder)
WGDatabaseCore
getRootEntries
in interface WGDatabaseCore
area
- The area, whose root entries are to be retrievedpageOrder
- Order set denoting the order in which entries should be served, null for default order (position, title, both ascending)public WGDocumentCore getStructEntryByKey(java.lang.Object key)
WGDatabaseCore
getStructEntryByKey
in interface WGDatabaseCore
public WGDocumentCore getParentEntry(WGStructEntry entry)
WGDatabaseCore
getParentEntry
in interface WGDatabaseCore
entry
- The struct entry, whose parent is to be retrievedpublic java.util.List getAllContent(WGStructEntry structEntry, boolean includeArchived)
WGDatabaseCore
getAllContent
in interface WGDatabaseCore
structEntry
- The struct entry, whose content is to be retrieved.includeArchived
- Decides, if archived documents should be also retrievedpublic WGDocumentCore getContentByKey(WGContentKey key)
WGDatabaseCore
getContentByKey
in interface WGDatabaseCore
key
- The content keypublic WGDocumentCore getContentByName(java.lang.String strName, java.lang.String strLanguage)
WGDatabaseCore
getContentByName
in interface WGDatabaseCore
strName
- The unique namestrLanguage
- The language name (i.e. short code). If null, the default language of the content store is to be used.public WGDocumentCore getDummyContent(java.lang.String language)
WGDatabaseCore
getDummyContent
in interface WGDatabaseCore
public WGResultSetCore query(java.lang.String type, java.lang.String query, java.util.Map parameters) throws WGQueryException
WGDatabaseCore
query
in interface WGDatabaseCore
type
- Type of query. Interpretation is up to the specific core implementation.query
- The queryparameters
- Query options as Map influencing the query result. See WGDatabase.QUERYOPTION_... for options keys.WGQueryException
public java.util.List getDesignObjects(int type)
WGDatabaseCore
getDesignObjects
in interface WGDatabaseCore
type
- The doc class. See constants WGDocument.FDC_...public WGDocumentCore getDesignObject(int type, java.lang.String name, java.lang.String strMediaKey)
WGDatabaseCore
getDesignObject
in interface WGDatabaseCore
type
- The doc class of the design object. See Constants under WGDocument.FDC_...name
- The unique name of the designstrMediaKey
- For media key specific design objects (e.g. WebTML-Modules), the media key of the design object to be retrievedpublic java.util.List getNewDesignsSince(java.util.Date date)
public WGDocumentCore getUserProfile(java.lang.String name)
public WGDocumentCore createUserProfile(java.lang.String name, int type)
public WGDocumentCore fastAccess(int type, java.lang.Object key)
WGDatabaseCore
fastAccess
in interface WGDatabaseCore
key
- The fast access key, that the document core provided, when it was instantiated the first time.public boolean isStructEntryKey(java.lang.Object key)
public java.lang.Object parseStructKey(java.lang.String key)
WGDatabaseCore
parseStructKey
in interface WGDatabaseCore
key
- The string representation of the struct keypublic void cleanup()
public WGDocumentCore createDesignDocument(int type, java.lang.String name, java.lang.String mediaKey)
WGDatabaseCore
createDesignDocument
in interface WGDatabaseCore
type
- Design document type. Use constants WGDocument.TYPE_...name
- Unique name of design object. Use only A-Z,a-z,0-9 and _mediaKey
- Media key, if the document type is a TML modulepublic WGDocumentCore createStructEntry(java.lang.Object key, WGDocument reference, WGContentType contentType)
WGDatabaseCore
createStructEntry
in interface WGDatabaseCore
key
- Key of the struct entry if the implementation supports using explicit keys. Leave null otherwise.reference
- Reference document, which can be an WGArea (struct will be root in this area) or another WGStructEntry (struct will be child of that)contentType
- Content type for this struct entrypublic WGDocumentCore createContent(WGStructEntry structEntry, WGLanguage language, java.lang.String title, int version)
WGDatabaseCore
createContent
in interface WGDatabaseCore
structEntry
- The structentry for the contentlanguage
- The language of the contenttitle
- The title of the contentversion
- The version of the content if this should explicitly be set (only in clone creation!). Leave null for normal creation.public java.lang.Class getDedicatedWorkflowEngine()
WGDatabaseCore
getDedicatedWorkflowEngine
in interface WGDatabaseCore
public boolean isMemberOfUserList(java.util.List userList)
WGDatabaseCore
isMemberOfUserList
in interface WGDatabaseCore
public WGDocumentCore createCopy(WGDocumentCore original)
WGDatabaseCore
createCopy
in interface WGDatabaseCore
public boolean beginTransaction()
WGDatabaseCore
beginTransaction
in interface WGDatabaseCore
public boolean commitTransaction()
WGDatabaseCore
commitTransaction
in interface WGDatabaseCore
public boolean rollbackTransaction()
WGDatabaseCore
rollbackTransaction
in interface WGDatabaseCore
public java.lang.Object execProcedure(java.lang.String procName, java.util.List args) throws WGProcedureException
WGProcedureException
public java.lang.String getServerName()
WGDatabaseCore
getServerName
in interface WGDatabaseCore
public boolean resultIsTrue(java.lang.Object result, WGDocument doc)
WGDatabaseCore
resultIsTrue
in interface WGDatabaseCore
result
- The expression result, retrieved by a call to evaluateExpressiondoc
- The document, against which the expression was evaluatedpublic boolean resultIsFalse(java.lang.Object result, WGDocument doc)
WGDatabaseCore
resultIsFalse
in interface WGDatabaseCore
result
- The expression result, retrieved by a call to evaluateExpressiondoc
- The document, against which the expression was evaluatedpublic WGACLCore getACL()
WGDatabaseCore
getACL
in interface WGDatabaseCore
public java.lang.Object getNativeObject()
WGDatabaseCore
getNativeObject
in interface WGDatabaseCore
public void refresh()
WGDatabaseCore
refresh
in interface WGDatabaseCore
public java.util.List getUpdatedDocumentsSince(java.util.Date cutoff)
public boolean moveStructEntry(WGStructEntry entry, WGDocument newParent)
WGDatabaseCore
moveStructEntry
in interface WGDatabaseCore
entry
- The entry to movenewParent
- The new parent document, which can be either an WGStructEntry or a WGArea objectpublic int getContentCount(WGStructEntry entry) throws WGNotSupportedException
WGDatabaseCore
getContentCount
in interface WGDatabaseCore
entry
- The entry to testWGNotSupportedException
- If the database implementation does not support this operationpublic void setCurrentSession(WGSessionContext context)
WGDatabaseCore
setCurrentSession
in interface WGDatabaseCore
public java.lang.String convertFileNameForAttaching(java.lang.String name)
WGDatabaseCore
convertFileNameForAttaching
in interface WGDatabaseCore
public java.lang.Class[] getAllowedCredentialClasses()
public java.util.List queryUserProfileNames(java.lang.String type, java.lang.String query, java.util.Map params)
public java.util.Set getDeletions(java.util.Set contentKeys) throws WGAPIException
WGAPIException
public java.util.List getAllContentKeys(boolean includeArchived) throws WGAPIException
WGDatabaseCore
getAllContentKeys
in interface WGDatabaseCore
includeArchived
- Specifies if archived content should be included in the listWGContentKey
WGAPIException
public void beginUpdate()
WGDatabaseCore
beginUpdate
in interface WGDatabaseCore
public WGDocumentCore getStructEntryByName(java.lang.String strName) throws WGAPIException
WGDatabaseCore
getStructEntryByName
in interface WGDatabaseCore
strName
- The unique nameWGAPIException
public java.util.Date getRevisionDate(java.lang.Comparable lastChanged) throws WGAPIException
WGDatabaseCore
WGDatabaseCore.getRevision()
.
This method is obliged to throw a WGWrongRevisionException
if the revision type does not match this database
of the given revision is not known.getRevisionDate
in interface WGDatabaseCore
lastChanged
- A revision indicator returned by WGDatabaseCore.getRevision()
WGAPIException
WGWrongRevisionException
- if the given revision is no revision of the current databasepublic java.util.List getUpdateLogs(java.lang.Comparable cutoff) throws WGAPIException
WGDatabaseCore
getUpdateLogs
in interface WGDatabaseCore
WGUpdateLog
WGAPIException
public double getContentStoreVersion() throws WGAPIException
WGDatabaseCore
getContentStoreVersion
in interface WGDatabaseCore
WGAPIException
public int getContentStorePatchLevel() throws WGAPIException
WGDatabaseCore
getContentStorePatchLevel
in interface WGDatabaseCore
WGAPIException
public void writeExtensionData(java.lang.String name, java.lang.Object value) throws WGAPIException
WGDatabaseCore
writeExtensionData
in interface WGDatabaseCore
name
- The name of the field.value
- The value to storeWGAPIException
public void removeExtensionData(java.lang.String name) throws WGAPIException
WGDatabaseCore
removeExtensionData
in interface WGDatabaseCore
name
- The name of the field to removeWGAPIException
public java.util.List<java.lang.String> getExtensionDataNames() throws WGAPIException
WGDatabaseCore
getExtensionDataNames
in interface WGDatabaseCore
WGAPIException
public java.util.List<WGRelationData> getIncomingRelations(java.lang.Object structKey, java.lang.String language, java.lang.String contentClass, java.lang.String relName, java.lang.String relGroupName, java.lang.Boolean includeUnreleased, WGColumnSet order) throws WGAPIException
WGDatabaseCore
getIncomingRelations
in interface WGDatabaseCore
structKey
- The structkey of the contentlanguage
- The language of the contentcontentClass
- content class of the content owning the relation. null for contents of all content classesrelName
- Name of the relation coming in. null should retrieve relations of all namesrelGroupName
- Group name of the relation coming in. null should retrieve relations of all groupsincludeUnreleased
- Specify true to also retrieve documents in draft or approval state. False will retrieve only published documents.order
- Optionally order in which to return relations, evaluated against the relation source documents, null for no orderWGAPIException
public boolean isContentTypeUsed(WGContentType ct) throws WGAPIException
WGDatabaseCore
isContentTypeUsed
in interface WGDatabaseCore
ct
- The content type to testWGAPIException
public boolean isLanguageUsed(WGLanguage lang) throws WGAPIException
WGDatabaseCore
isLanguageUsed
in interface WGDatabaseCore
lang
- The language to testWGAPIException
public boolean isBackendServiceSupported(java.lang.String serviceName)
WGDatabaseCore
isBackendServiceSupported
in interface WGDatabaseCore
serviceName
- Name of the servicepublic java.lang.Object callBackendService(java.lang.String serviceName, java.lang.Object[] params) throws WGAPIException
WGDatabaseCore
callBackendService
in interface WGDatabaseCore
serviceName
- The service name. Use WGDatabase.BACKENDSERVICE_*params
- The matching parameters for the called serviceWGAPIException
public void clearSessionCache() throws WGAPIException
WGDatabaseCore
clearSessionCache
in interface WGDatabaseCore
WGClosedSessionException
- If currently no session is openWGAPIException
public WGFileDerivateMetaData createFileDerivate(WGDocumentCore doc, java.lang.String originalFileName, java.lang.String creator, java.lang.String derivateName, java.io.InputStream in, java.util.Map<java.lang.String,java.lang.Object> customMdFields) throws WGAPIException
WGAPIException