public interface WGDatabaseCore
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 |
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.
|
WGDocumentCore |
createStructEntry(java.lang.Object key,
WGDocument reference,
WGContentType contentType)
Creates a struct entry.
|
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<WGDocumentCore> |
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.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.
|
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 sourceContentClass,
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.
|
WGDocumentCore |
getParentEntry(WGStructEntry entry)
Retrieves the parent struct enty for the given entry.
|
java.lang.Comparable |
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
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<WGUpdateLog> |
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.
|
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 |
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 credentials,
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.
|
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.
|
WGUserAccess open(WGDatabase db, java.lang.String path, java.lang.String user, java.lang.String pwd, boolean prepareOnly) throws WGAPIException
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 openingWGAPIException
WGUserAccess openSession(AuthenticationSession authSession, java.lang.Object credentials, boolean master) throws WGAPIException
authSession
- The authentication session of the current user. If there is no authentication module configured this is of type BackendAuthSession
credentials
- The credentials that the user gave for authenticatingmaster
- States, that the used login is the master loginWGAPIException
void close() throws WGAPIException
WGAPIException
void closeSession() throws WGAPIException
WGAPIException
java.lang.String getTitle() throws WGBackendException
WGBackendException
java.lang.String getTypeName()
java.lang.Comparable getRevision() throws WGAPIException
WGAPIException
java.util.Date getRevisionDate(java.lang.Comparable lastChanged) throws WGAPIException, WGWrongRevisionException
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.lastChanged
- A revision indicator returned by getRevision()
WGAPIException
WGWrongRevisionException
- if the given revision is no revision of the current databasejava.lang.Object getExtensionData(java.lang.String name) throws WGAPIException
name
- The name of the field.WGAPIException
java.util.List<java.lang.String> getExtensionDataNames() throws WGAPIException
WGAPIException
void writeExtensionData(java.lang.String name, java.lang.Object value) throws WGAPIException
name
- The name of the field.value
- The value to storeWGAPIException
void removeExtensionData(java.lang.String name) throws WGAPIException
name
- The name of the field to removeWGAPIException
java.util.List getRoles()
boolean hasFeature(java.lang.String feature)
feature
- The requested feature. The constants WGDatabase.FEATURE_... are used here.java.util.Iterator<WGDocumentCore> getChildEntries(WGStructEntry structEntry, WGPageOrderSet order) throws WGAPIException
structEntry
- The struct entry, whose children are to be retrievedorder
- Instructions about the desired orderWGAPIException
java.util.Iterator<WGDocumentCore> getRootEntries(WGArea area, WGPageOrderSet pageOrder) throws WGAPIException
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)WGAPIException
WGDocumentCore getStructEntryByKey(java.lang.Object key) throws WGAPIException
key
- WGAPIException
WGDocumentCore getParentEntry(WGStructEntry entry) throws WGAPIException
entry
- The struct entry, whose parent is to be retrievedWGAPIException
java.util.List<WGDocumentCore> getAllContent(WGStructEntry structEntry, boolean includeArchived) throws WGAPIException
structEntry
- The struct entry, whose content is to be retrieved.includeArchived
- Decides, if archived documents should be also retrievedWGAPIException
WGDocumentCore getContentByKey(WGContentKey key) throws WGAPIException
key
- The content keyWGAPIException
WGDocumentCore getContentByName(java.lang.String strName, java.lang.String strLanguage) throws WGAPIException
strName
- The unique namestrLanguage
- The language name (i.e. short code). If null, the default language of the content store is to be used.WGAPIException
WGDocumentCore getStructEntryByName(java.lang.String strName) throws WGAPIException
strName
- The unique nameWGAPIException
WGDocumentCore getDummyContent(java.lang.String language) throws WGAPIException
WGAPIException
WGResultSetCore query(java.lang.String type, java.lang.String query, java.util.Map parameters) throws WGAPIException
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.WGAPIException
WGDocumentCore fastAccess(int type, java.lang.Object key) throws WGAPIException
key
- The fast access key, that the document core provided, when it was instantiated the first time.WGAPIException
java.lang.Object parseStructKey(java.lang.String key) throws WGAPIException
key
- The string representation of the struct keyWGAPIException
WGDocumentCore createDesignDocument(int type, java.lang.String name, java.lang.String mediaKey) throws WGAPIException
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 moduleWGAPIException
WGDocumentCore createStructEntry(java.lang.Object key, WGDocument reference, WGContentType contentType) throws WGAPIException
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 entryWGAPIException
WGDocumentCore createContent(WGStructEntry structEntry, WGLanguage language, java.lang.String title, int version) throws WGAPIException
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.WGAPIException
java.lang.Class getDedicatedWorkflowEngine()
boolean isMemberOfUserList(java.util.List userList) throws WGAPIException
userList
- WGAPIException
WGDocumentCore createCopy(WGDocumentCore original) throws WGAPIException
original
- WGAPIException
boolean beginTransaction()
boolean rollbackTransaction()
boolean commitTransaction()
java.lang.String getServerName() throws WGAPIException
WGAPIException
double getContentStoreVersion() throws WGAPIException
WGAPIException
int getContentStorePatchLevel() throws WGAPIException
WGAPIException
WGACLCore getACL()
java.lang.Object getNativeObject() throws WGBackendException
WGBackendException
boolean resultIsTrue(java.lang.Object result, WGDocument doc)
result
- The expression result, retrieved by a call to evaluateExpressiondoc
- The document, against which the expression was evaluatedboolean resultIsFalse(java.lang.Object result, WGDocument doc)
result
- The expression result, retrieved by a call to evaluateExpressiondoc
- The document, against which the expression was evaluatedvoid refresh() throws WGAPIException
WGAPIException
void clearSessionCache() throws WGAPIException
WGClosedSessionException
- If currently no session is openWGAPIException
boolean moveStructEntry(WGStructEntry entry, WGDocument newParent) throws WGAPIException
entry
- The entry to movenewParent
- The new parent document, which can be either an WGStructEntry or a WGArea objectWGAPIException
int getContentCount(WGStructEntry entry) throws WGNotSupportedException, WGBackendException
entry
- The entry to testWGNotSupportedException
- If the database implementation does not support this operationWGBackendException
- On all other backend related errorsvoid setCurrentSession(WGSessionContext context)
context
- java.util.List getDesignObjects(int type) throws WGAPIException
type
- The doc class. See constants WGDocument.FDC_...WGAPIException
WGDocumentCore getDesignObject(int type, java.lang.String name, java.lang.String strMediaKey) throws WGAPIException
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 retrievedWGAPIException
java.lang.String convertFileNameForAttaching(java.lang.String name)
name
- java.util.List getAllContentKeys(boolean includeArchived) throws WGAPIException
includeArchived
- Specifies if archived content should be included in the listWGContentKey
WGAPIException
void beginUpdate() throws WGBackendException
WGBackendException
java.util.List<WGUpdateLog> getUpdateLogs(java.lang.Comparable cutoff) throws WGAPIException
cutoff
- WGUpdateLog
WGAPIException
java.util.List<WGRelationData> getIncomingRelations(java.lang.Object structKey, java.lang.String language, java.lang.String sourceContentClass, java.lang.String relName, java.lang.String relGroupName, java.lang.Boolean includeUnreleased, WGColumnSet order) throws WGAPIException
structKey
- The structkey of the contentlanguage
- The language of the contentsourceContentClass
- 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
boolean isContentTypeUsed(WGContentType ct) throws WGAPIException
ct
- The content type to testWGAPIException
boolean isLanguageUsed(WGLanguage lang) throws WGAPIException
lang
- The language to testWGAPIException
boolean isBackendServiceSupported(java.lang.String serviceName)
serviceName
- Name of the servicejava.lang.Object callBackendService(java.lang.String serviceName, java.lang.Object[] params) throws WGAPIException
serviceName
- The service name. Use WGDatabase.BACKENDSERVICE_*params
- The matching parameters for the called serviceWGAPIException