|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--gate.util.AbstractFeatureBearer | +--gate.persist.JDBCDataStore | +--gate.persist.OracleDataStore
Nested Class Summary | |
private class |
OracleDataStore.Feature
|
private class |
OracleDataStore.RestrictionComepator
|
Field Summary | |
private static boolean |
DEBUG
Debug flag |
private static String |
DS_COMMENT
Name of this resource |
private static String |
DS_ICON_NAME
the icon for this resource |
private static int |
INTERNAL_BUFFER_SIZE
read buffer size (for reading CLOBs) |
private static int |
ORACLE_FALSE
"false" value for Oracle (supports no boolean type) |
private static int |
ORACLE_TRUE
"true" value for Oracle (supports no boolean type) |
private static int |
ORACLE_VARCHAR_LIMIT_BYTES
the size in bytes if varchar2 column in Oracle when a String is stored in Oracle it may be too long for a varchar2 value, and then CLOB will be used Note that the limit is in bytes, not in characters, so in the worst case this will limit the string to 4000/3 characters |
private static int |
ORACLE_VARCHAR_MAX_SYMBOLS
maximum number of characters per string stored as varchar2 if longer then stored as CLOB |
private static int |
UTF_BYTES_PER_CHAR_MAX
maximum number of bytes that represent a char in UTF8 database |
private static int |
VARRAY_SIZE
size of the Oracle varrays used for bulc inserts |
Fields inherited from class gate.persist.JDBCDataStore |
ac, datastoreComment, dbSchema, dbType, dependentResources, iconName, jdbcConn, name, session |
Fields inherited from class gate.util.AbstractFeatureBearer |
features |
Fields inherited from interface gate.DataStore |
DATASTORE_FEATURE_NAME, LR_ID_FEATURE_NAME |
Constructor Summary | |
OracleDataStore()
default constructor - just call the super constructor (may change in the future) |
Method Summary | |
private Long |
_createFeature(Long entityID,
int entityType,
String key,
Object value,
int valueType,
CallableStatement stmt)
creates a feature of the specified type/value/valueType/key for the specified entity Entity is one of: LR, Annotation Value types are: boolean, int, long, string, float, Object |
private void |
_createFeatureBulk(Vector features,
CallableStatement stmt,
oracle.sql.ArrayDescriptor adNumber,
oracle.sql.ArrayDescriptor adString)
creates a feature of the specified type/value/valueType/key for the specified entity Entity is one of: LR, Annotation Value types are: boolean, int, long, string, float, Object |
private boolean |
_lockLr(Long lrID)
helper for lockLR() never call directly |
protected void |
_syncDocumentContent(Document doc)
helper for sync() - never call directly |
protected void |
_syncDocumentHeader(Document doc)
helper for sync() - never call directly |
protected void |
_syncFeatures(LanguageResource lr)
helper for sync() - never call directly |
protected void |
_syncLR(LanguageResource lr)
helper for sync() NEVER call directly |
protected void |
_syncRemovedDocumentsFromCorpus(List docLRIDs,
Long corpLRID)
helper for sync() - never call directly |
private void |
_updateFeatureLOB(Long featID,
Object value,
int valueType)
updates the value of a feature where the value is string (>4000 bytes, stored as CLOB) or Object (stored as BLOB) |
protected void |
addDocumentToCorpus(Long docID,
Long corpID)
adds document to corpus in the database if the document is already part of the corpus nothing changes |
protected boolean |
canAccessLR(Long lrID,
int mode)
Checks if the user (identified by the sessionID) has some access (read/write) to the LR |
void |
close()
Close the data store. |
void |
create()
Create a new data store. |
protected void |
createAnnotationSet(Long lrID,
AnnotationSet aset)
creates an entry for annotation set in the database |
protected Long |
createDoc(Long _lrID,
URL _docURL,
String _docEncoding,
Long _docStartOffset,
Long _docEndOffset,
Boolean _docIsMarkupAware,
Long _corpusID)
helper for adopt never call directly |
private void |
createFeature(Long entityID,
int entityType,
String key,
Object value,
CallableStatement stmt)
creates a feature with the specified type/key/value for the specified entity entitties are either LRs ot Annotations valid values are: boolean, int, long, string, float, Object, boolean List, int List, long List, string List, float List, Object List |
protected void |
createFeatures(Long entityID,
int entityType,
FeatureMap features)
helper metod iterates a FeatureMap and creates all its features in the database |
protected void |
createFeaturesBulk(Long entityID,
int entityType,
FeatureMap features)
helper metod iterates a FeatureMap and creates all its features in the database since it uses Oracle VARRAYs the roundtrips between the client and the server are minimized make sure the two types STRING_ARRAY and INT_ARRAY have the same name in the PL/SQL files also when referencing the types always use the schema owner in upper case because the jdbc driver is buggy (see MetaLink note if u care) |
protected Long |
createLR(String lrType,
String lrName,
SecurityInfo si,
Long lrParentID)
helper for adopt() never call directly |
protected void |
deleteCorpus(Long lrId)
helper method for delete() never call it directly beause proper events will not be fired |
protected void |
deleteDocument(Long lrId)
helper method for delete() never call it directly beause proper events will not be fired |
boolean |
equals(Object obj)
checks if two databases are identical |
List |
findDocIdsByAnn(List constraints,
int limitcount)
|
List |
findLrIds(List constraints)
Get a list of LRs that satisfy some set or restrictions |
List |
findLrIds(List constraints,
String lrType)
Get a list of LRs IDs that satisfy some set or restrictions and are of a particular type |
List |
findLrIds(List constraints,
String lrType,
List orderByConstraints,
int limitcount)
Get a list of LRs IDs that satisfy some set or restrictions and are of a particular type |
private boolean |
fitsInVarchar2(String s)
checks if a String should be stores as VARCHAR2 or CLOB because the VARCHAR2 in Oracle is limited to 4000 bytes, not all the strings fit there. |
private String |
getEndPartOfJoin(List orderByFilter,
String lrType,
Vector sqlValues)
|
private String |
getIntersectionPart(List filter,
Vector sqlValues)
|
private String |
getJoinQuery(List orderByFilter,
Vector sqlValues)
|
long |
getLrsCount(List constraints,
String lrType)
Return count of LRs which matches the constraints. |
private String |
getNumberExpresion(Restriction restr,
Vector sqlValues)
|
private String |
getRestrictionPartOfQuery(List list,
Vector sqlValues)
|
private String |
getSQLQuery(List filter,
String lrType,
boolean count,
List orderByFilter,
int limitcount,
Vector sqlValues)
|
private String |
getSQLQueryAnn(List constraints,
int limitcount,
Vector sqlValues)
|
String |
getStorageUrl()
Get the URL for the underlying storage mechanism. |
boolean |
isAutoSaving()
Get the autosaving behaviour of the LR. |
boolean |
lockLr(LanguageResource lr)
Try to acquire exlusive lock on a resource from the persistent store. |
private Vector |
normalizeFeature(Long entityID,
int entityType,
String key,
Object value)
splits complex features (Lists) into a vector of Feature entries each entry contains the entity id, entity type, feature key feature value value type |
void |
open()
Open a connection to the data store. |
static Object |
readBLOB(Blob src)
reads the content of the specified BLOB object and returns the object contained. |
static void |
readCLOB(Clob src,
StringBuffer dest)
reads the content of a CLOB into the specified StringBuffer |
protected FeatureMap |
readFeatures(Long entityID,
int entityType)
reads the features of an entity entities are of type LR or Annotation |
void |
setAutoSaving(boolean autoSaving)
Set method for the autosaving behaviour of the data store. |
void |
setSecurityInfo(LanguageResource lr,
SecurityInfo si)
set security information for LR . |
void |
setStorageUrl(String storageUrl)
Set the URL for the underlying storage mechanism. |
Long |
timestamp()
Gets a timestamp marker that will be used for all changes made in the database so that subsequent calls to deleteSince() could restore (partly) the database state as it was before the update. |
void |
unlockLr(LanguageResource lr)
Releases the exlusive lock on a resource from the persistent store. |
protected void |
updateDocumentContent(Long docID,
DocumentContent content)
updates the content of the document if it is binary or a long string (that does not fit into VARCHAR2) |
static void |
writeBLOB(Object src,
Blob dest)
writes the specified object into the BLOB NOTE: the object should be serializable |
static void |
writeCLOB(StringBuffer src,
Clob dest)
writes the content of a StringBuffer into the specified CLOB object |
static void |
writeCLOB(String src,
Clob dest)
writes the content of a String into the specified CLOB object |
Methods inherited from class gate.util.AbstractFeatureBearer |
getFeatures, setFeatures |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface gate.util.FeatureBearer |
getFeatures, setFeatures |
Field Detail |
private static final String DS_COMMENT
private static final String DS_ICON_NAME
private static final boolean DEBUG
private static final int ORACLE_TRUE
private static final int ORACLE_FALSE
private static final int VARRAY_SIZE
private static final int ORACLE_VARCHAR_LIMIT_BYTES
private static final int UTF_BYTES_PER_CHAR_MAX
private static final int ORACLE_VARCHAR_MAX_SYMBOLS
private static final int INTERNAL_BUFFER_SIZE
Constructor Detail |
public OracleDataStore()
Method Detail |
public void setStorageUrl(String storageUrl) throws PersistenceException
setStorageUrl
in interface DataStore
setStorageUrl
in class JDBCDataStore
PersistenceException
public String getStorageUrl()
getStorageUrl
in interface DataStore
getStorageUrl
in class JDBCDataStore
public void create() throws PersistenceException, UnsupportedOperationException
create
in interface DataStore
create
in class JDBCDataStore
PersistenceException
UnsupportedOperationException
public void open() throws PersistenceException
open
in interface DataStore
open
in class JDBCDataStore
PersistenceException
public void close() throws PersistenceException
close
in interface DataStore
close
in class JDBCDataStore
PersistenceException
protected void deleteDocument(Long lrId) throws PersistenceException
deleteDocument
in class JDBCDataStore
PersistenceException
protected void deleteCorpus(Long lrId) throws PersistenceException
deleteCorpus
in class JDBCDataStore
PersistenceException
public void setAutoSaving(boolean autoSaving) throws UnsupportedOperationException, PersistenceException
setAutoSaving
in interface DataStore
setAutoSaving
in class JDBCDataStore
UnsupportedOperationException
PersistenceException
public boolean isAutoSaving()
isAutoSaving
in interface DataStore
isAutoSaving
in class JDBCDataStore
protected Long createLR(String lrType, String lrName, SecurityInfo si, Long lrParentID) throws PersistenceException, SecurityException
createLR
in class JDBCDataStore
PersistenceException
SecurityException
protected void updateDocumentContent(Long docID, DocumentContent content) throws PersistenceException
updateDocumentContent
in class JDBCDataStore
PersistenceException
protected Long createDoc(Long _lrID, URL _docURL, String _docEncoding, Long _docStartOffset, Long _docEndOffset, Boolean _docIsMarkupAware, Long _corpusID) throws PersistenceException
createDoc
in class JDBCDataStore
PersistenceException
protected void createAnnotationSet(Long lrID, AnnotationSet aset) throws PersistenceException
createAnnotationSet
in class JDBCDataStore
PersistenceException
public Long timestamp() throws PersistenceException
timestamp
in interface DatabaseDataStore
timestamp
in class JDBCDataStore
PersistenceException
protected boolean canAccessLR(Long lrID, int mode) throws PersistenceException, SecurityException
canAccessLR
in class JDBCDataStore
PersistenceException
SecurityException
public static void readCLOB(Clob src, StringBuffer dest) throws SQLException, IOException
SQLException
IOException
public static void writeCLOB(String src, Clob dest) throws SQLException, IOException
SQLException
IOException
public static void writeCLOB(StringBuffer src, Clob dest) throws SQLException, IOException
SQLException
IOException
public static Object readBLOB(Blob src) throws SQLException, IOException, ClassNotFoundException
SQLException
IOException
ClassNotFoundException
public static void writeBLOB(Object src, Blob dest) throws SQLException, IOException
SQLException
IOException
private Long _createFeature(Long entityID, int entityType, String key, Object value, int valueType, CallableStatement stmt) throws PersistenceException
PersistenceException
private void _createFeatureBulk(Vector features, CallableStatement stmt, oracle.sql.ArrayDescriptor adNumber, oracle.sql.ArrayDescriptor adString) throws PersistenceException
PersistenceException
private void _updateFeatureLOB(Long featID, Object value, int valueType) throws PersistenceException
PersistenceException
private void createFeature(Long entityID, int entityType, String key, Object value, CallableStatement stmt) throws PersistenceException
PersistenceException
private Vector normalizeFeature(Long entityID, int entityType, String key, Object value) throws PersistenceException
PersistenceException
private boolean fitsInVarchar2(String s)
ORACLE_VARCHAR_LIMIT_BYTES
protected void createFeatures(Long entityID, int entityType, FeatureMap features) throws PersistenceException
createFeatures
in class JDBCDataStore
PersistenceException
protected void createFeaturesBulk(Long entityID, int entityType, FeatureMap features) throws PersistenceException
createFeaturesBulk
in class JDBCDataStore
PersistenceException
public void setSecurityInfo(LanguageResource lr, SecurityInfo si) throws PersistenceException, SecurityException
PersistenceException
SecurityException
protected FeatureMap readFeatures(Long entityID, int entityType) throws PersistenceException
readFeatures
in class JDBCDataStore
PersistenceException
public boolean equals(Object obj)
equals
in class Object
NOTE: the same database may be represented by different OracleDataStore instances
but the IDs will be the same
protected void _syncLR(LanguageResource lr) throws PersistenceException, SecurityException
_syncLR
in class JDBCDataStore
PersistenceException
SecurityException
protected void _syncDocumentHeader(Document doc) throws PersistenceException
_syncDocumentHeader
in class JDBCDataStore
PersistenceException
protected void _syncDocumentContent(Document doc) throws PersistenceException
_syncDocumentContent
in class JDBCDataStore
PersistenceException
protected void _syncRemovedDocumentsFromCorpus(List docLRIDs, Long corpLRID) throws PersistenceException
_syncRemovedDocumentsFromCorpus
in class JDBCDataStore
PersistenceException
protected void _syncFeatures(LanguageResource lr) throws PersistenceException
_syncFeatures
in class JDBCDataStore
PersistenceException
public boolean lockLr(LanguageResource lr) throws PersistenceException, SecurityException
PersistenceException
SecurityException
private boolean _lockLr(Long lrID) throws PersistenceException, SecurityException
PersistenceException
SecurityException
public void unlockLr(LanguageResource lr) throws PersistenceException, SecurityException
PersistenceException
SecurityException
protected void addDocumentToCorpus(Long docID, Long corpID) throws PersistenceException, SecurityException
addDocumentToCorpus
in class JDBCDataStore
PersistenceException
SecurityException
public List findLrIds(List constraints) throws PersistenceException
findLrIds
in interface DataStore
findLrIds
in class JDBCDataStore
constraints
- list of Restriction objects
PersistenceException
public List findLrIds(List constraints, String lrType) throws PersistenceException
findLrIds
in interface DataStore
findLrIds
in class JDBCDataStore
constraints
- list of Restriction objectslrType
- type of Lrs. DBHelper.DOCUMENT_CLASS or DBHelper.CORPUS_CLASS
PersistenceException
public List findLrIds(List constraints, String lrType, List orderByConstraints, int limitcount) throws PersistenceException
constraints
- list of Restriction objectslrType
- type of Lrs. DBHelper.DOCUMENT_CLASS or DBHelper.CORPUS_CLASSorderByConstraints
- liat of OrderByRestriction objectslimitcount
- limit returning objects -1 for unlimited
PersistenceException
public long getLrsCount(List constraints, String lrType) throws PersistenceException
constraints
- list of Restriction objectslrType
- type of Lrs. DBHelper.DOCUMENT_CLASS or DBHelper.CORPUS_CLASS
PersistenceException
private String getSQLQuery(List filter, String lrType, boolean count, List orderByFilter, int limitcount, Vector sqlValues)
private String getIntersectionPart(List filter, Vector sqlValues)
private String getRestrictionPartOfQuery(List list, Vector sqlValues)
private String getNumberExpresion(Restriction restr, Vector sqlValues)
private String getJoinQuery(List orderByFilter, Vector sqlValues)
private String getEndPartOfJoin(List orderByFilter, String lrType, Vector sqlValues)
public List findDocIdsByAnn(List constraints, int limitcount) throws PersistenceException
PersistenceException
private String getSQLQueryAnn(List constraints, int limitcount, Vector sqlValues)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |