Java Doc for AbstractOdalSequenceKeyGenerator.java in  » Database-ORM » ODAL » com » completex » objective » components » persistency » key » impl » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Database ORM » ODAL » com.completex.objective.components.persistency.key.impl 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   com.completex.objective.components.persistency.key.impl.AbstractKeyGenerator
      com.completex.objective.components.persistency.key.impl.AbstractOdalSequenceKeyGenerator

All known Subclasses:   com.completex.objective.components.persistency.key.impl.OdalSimpleSequenceKeyGenerator,
AbstractOdalSequenceKeyGenerator
abstract public class AbstractOdalSequenceKeyGenerator extends AbstractKeyGenerator implements ComplexSequenceKeyGenerator(Code)
Sequence Key Generator based on emulated sequence. It is table based with default table name odal_sequence.

Example (staticAttributes section describes possible attributes to set):

 // keyGenerator = {
 //      class = com.completex.objective.components.persistency.key.impl.SimpleSequenceKeyGeneratorImpl
 //       staticAttributes = {
 //          name = CONTACT_SEQ # Sequence name - either in the "table" (see the next attribute) or name of a
 //                             # database sequence when it is appropriate with accordance with the
 //                             # policy used (see "policy" attribute below).
 //          table = # Optional attribute specifying the table used for storing ODAL sequences.
 //          # If not set the default - "odal_sequence" - is used
 //          sameTransaction = # Optional attribute specifying if the sequence has to be generated in the same
 //                            # (current) transaction. If false - a separate transaction is open to generate
 //                            # a sequence from the "table" when it is appropriate with accordance with the
 //                            # policy used (see "policy" attribute below).
 //                            # Default is false.
 //          policy = # Optional attribute - policy class name
 //                   # (com.completex.objective.components.persistency.key.OdalKeyPolicy instance - assumed to have no arguments constructor) -
 //                   # if not set - com.completex.objective.components.persistency.key.impl.OdalKeyPolicyImpl
 //                   # is used
 //          }
 //      }
 

This class will generate the next sequence number according to the policy (com.completex.objective.components.persistency.key.OdalKeyPolicy) used. There are 3 possible way to generate sequence using this class - 1. Odal key table. 2. Database sequence 3. Database identity (or auto-increment) field.

Odal Key Policy determines priorities give to each of the above mentioned methods.

If all sequence generation method priorities are either disabled or not supported - exception is thrown.
Otherwise: the highest priority is calculated and the sequence generation method associated with it is used. NOTE: if the database does not support record level locks - Odal key table based sequence generation method is given the lowest priority though it is NOT considered disabled, meaning even not multi-process safe it is still may be used as the last resort.
With default Odal Key Policy, the priorities in descending order are ODAL KEY PRIORITY, SEQUENCE PRIORITY, IDENTITY PRIORITY. If the database does not support record level locks ODAL KEY PRIORITY moves to the 3rd (the lowest) position.
author:
   Gennady Krizhevsky


Inner Class :static interface ExecPriority extends Comparable
Inner Class :abstract protected class AbstractExecPriority implements ExecPriority
Inner Class :protected class OdalKeyExecPriority extends AbstractExecPriority
Inner Class :protected class SeqExecPriority extends AbstractExecPriority
Inner Class :protected class IdentityExecPriority extends AbstractExecPriority

Field Summary
final public static  StringCOL_SEQ_NAME
    
final public static  StringCOL_SEQ_VALUE
    
final public static  OdalKeyPolicyDEFAULT_ODAL_KEY_POLICY
    
final public static  StringDEFAULT_SEQ_TABLE
    
final public static  StringDISABLED_FOR_IDENTITY_KEY
    
protected  OdalKeyPolicyodalKeyPolicy
    
protected  booleansameTransaction
    
protected  AbstractKeyGeneratorsupportingKeyGenerator
     For databases that do not have explicit record level locks (like HSQLDB) but support sequences the supporting key generator can be used instead of the table one.
protected  StringtableName
    

Constructor Summary
protected  AbstractOdalSequenceKeyGenerator(String tableName, boolean sameTransaction)
    
protected  AbstractOdalSequenceKeyGenerator()
    

Method Summary
protected  ExecPriority[]extractPriorities(DatabasePolicy databasePolicy)
    
protected  ObjectgenerateSequenceFromOdalTable(Transaction transaction, Persistency persistency, String objectName)
    
protected  ObjectgenerateSequenceFromSupportingKeyGenerator(Transaction transaction, Persistency persistency, String objectName)
    
protected  ExecPrioritygetIdentityPriority(DatabasePolicy databasePolicy)
    
public  ObjectgetNextKeyPlain(Transaction transaction, Persistency persistency, String objectName)
    
public  OdalKeyPolicygetOdalKeyPolicy()
    
protected  ExecPrioritygetOdalKeyPriority(DatabasePolicy databasePolicy)
    
protected  ExecPrioritygetSequencePriority(DatabasePolicy databasePolicy)
    
public  StringgetTableName()
    
public  voidinsertValue(Transaction transaction, Persistency persistency, PersistentEntry persistentEntry)
    
protected  booleanisInsertConditionSatisfied0(PersistentEntry persistentEntry)
    
public  booleanisSameTransaction()
    
protected  voidpostExecPriority(Object id, ExecPriority priotity)
    
public  voidsetOdalKeyPolicy(OdalKeyPolicy odalKeyPolicy)
    
public  voidsetSameTransaction(boolean sameTransaction)
    
public  voidsetStaticParameters(Object staticParameters)
    
public  voidsetTableName(String tableName)
    
protected  voidsortPriorities(ExecPriority[] priotities)
    
public  voidupdateValue(Transaction transaction, Persistency persistency, PersistentEntry persistentEntry, boolean complexDirty)
    
protected  voidvalidatePrioritiesEnabled(ExecPriority[] priotities)
    

Field Detail
COL_SEQ_NAME
final public static String COL_SEQ_NAME(Code)



COL_SEQ_VALUE
final public static String COL_SEQ_VALUE(Code)



DEFAULT_ODAL_KEY_POLICY
final public static OdalKeyPolicy DEFAULT_ODAL_KEY_POLICY(Code)



DEFAULT_SEQ_TABLE
final public static String DEFAULT_SEQ_TABLE(Code)



DISABLED_FOR_IDENTITY_KEY
final public static String DISABLED_FOR_IDENTITY_KEY(Code)



odalKeyPolicy
protected OdalKeyPolicy odalKeyPolicy(Code)



sameTransaction
protected boolean sameTransaction(Code)



supportingKeyGenerator
protected AbstractKeyGenerator supportingKeyGenerator(Code)
For databases that do not have explicit record level locks (like HSQLDB) but support sequences the supporting key generator can be used instead of the table one.



tableName
protected String tableName(Code)




Constructor Detail
AbstractOdalSequenceKeyGenerator
protected AbstractOdalSequenceKeyGenerator(String tableName, boolean sameTransaction)(Code)



AbstractOdalSequenceKeyGenerator
protected AbstractOdalSequenceKeyGenerator()(Code)




Method Detail
extractPriorities
protected ExecPriority[] extractPriorities(DatabasePolicy databasePolicy)(Code)



generateSequenceFromOdalTable
protected Object generateSequenceFromOdalTable(Transaction transaction, Persistency persistency, String objectName) throws OdalPersistencyException(Code)



generateSequenceFromSupportingKeyGenerator
protected Object generateSequenceFromSupportingKeyGenerator(Transaction transaction, Persistency persistency, String objectName) throws OdalPersistencyException(Code)



getIdentityPriority
protected ExecPriority getIdentityPriority(DatabasePolicy databasePolicy)(Code)



getNextKeyPlain
public Object getNextKeyPlain(Transaction transaction, Persistency persistency, String objectName) throws OdalPersistencyException(Code)

See Also:   AbstractKeyGenerator.getNextKeyPlain(com.completex.objective.components.persistency.transact.Transactioncom.completex.objective.components.persistency.PersistencyString)



getOdalKeyPolicy
public OdalKeyPolicy getOdalKeyPolicy()(Code)



getOdalKeyPriority
protected ExecPriority getOdalKeyPriority(DatabasePolicy databasePolicy)(Code)



getSequencePriority
protected ExecPriority getSequencePriority(DatabasePolicy databasePolicy)(Code)



getTableName
public String getTableName()(Code)
tableName



insertValue
public void insertValue(Transaction transaction, Persistency persistency, PersistentEntry persistentEntry) throws OdalPersistencyException(Code)

See Also:   AbstractKeyGenerator.insertValue(com.completex.objective.components.persistency.transact.Transactioncom.completex.objective.components.persistency.Persistencycom.completex.objective.components.persistency.PersistentEntry)



isInsertConditionSatisfied0
protected boolean isInsertConditionSatisfied0(PersistentEntry persistentEntry)(Code)



isSameTransaction
public boolean isSameTransaction()(Code)
true if the sequence is taken in current transaction



postExecPriority
protected void postExecPriority(Object id, ExecPriority priotity)(Code)



setOdalKeyPolicy
public void setOdalKeyPolicy(OdalKeyPolicy odalKeyPolicy)(Code)
Sets Odal Key Policy
Parameters:
  odalKeyPolicy -
See Also:   OdalKeyPolicy



setSameTransaction
public void setSameTransaction(boolean sameTransaction)(Code)
Set flag that indicates if the sequence is to be taken in current transaction
Parameters:
  sameTransaction - static attributes



setStaticParameters
public void setStaticParameters(Object staticParameters)(Code)



setTableName
public void setTableName(String tableName)(Code)

Parameters:
  tableName -



sortPriorities
protected void sortPriorities(ExecPriority[] priotities)(Code)



updateValue
public void updateValue(Transaction transaction, Persistency persistency, PersistentEntry persistentEntry, boolean complexDirty) throws OdalPersistencyException(Code)

See Also:   AbstractKeyGenerator.updateValue(com.completex.objective.components.persistency.transact.Transactioncom.completex.objective.components.persistency.Persistencycom.completex.objective.components.persistency.PersistentEntryboolean)



validatePrioritiesEnabled
protected void validatePrioritiesEnabled(ExecPriority[] priotities) throws OdalPersistencyException(Code)



Fields inherited from com.completex.objective.components.persistency.key.impl.AbstractKeyGenerator
final public static String SEQ_KEY(Code)(Java Doc)
final public static String SEQ_SAME_TRANSACTION_KEY(Code)(Java Doc)
final public static String SEQ_TABLE_KEY(Code)(Java Doc)
final protected Object lock(Code)(Java Doc)

Methods inherited from com.completex.objective.components.persistency.key.impl.AbstractKeyGenerator
protected void closeAll(Transaction transaction, ResultSet resultSet, PreparedStatement stmt) throws OdalPersistencyException(Code)(Java Doc)
public DatabasePolicy getDatabasePolicy()(Code)(Java Doc)
public Log getLogger()(Code)(Java Doc)
abstract public Object getNextKey(Transaction transaction, Persistency persistency, Record record) throws OdalPersistencyException(Code)(Java Doc)
abstract public Object getNextKey(Transaction transaction, Persistency persistency, Record record, Object dynamicParameters) throws OdalPersistencyException(Code)(Java Doc)
abstract public Object getNextKeyPlain(Transaction transaction, Persistency persistency, String objectName) throws OdalPersistencyException(Code)(Java Doc)
public String getSeqName()(Code)(Java Doc)
public Object getStaticParameters()(Code)(Java Doc)
abstract public void insertValue(Transaction transaction, Persistency persistency, PersistentEntry persistentEntry) throws OdalPersistencyException(Code)(Java Doc)
protected PreparedStatement prepareStatement(Transaction transaction, String sql) throws SQLException(Code)(Java Doc)
protected void releaseStatement(Transaction transaction, PreparedStatement statement) throws SQLException(Code)(Java Doc)
public void setDatabasePolicy(DatabasePolicy databasePolicy)(Code)(Java Doc)
public void setLogger(Log log)(Code)(Java Doc)
public void setSeqName(String seqName)(Code)(Java Doc)
public void setStaticParameters(Object staticParameters)(Code)(Java Doc)
public static Object toConventional(PersistentEntry persistentEntry, Object value)(Code)(Java Doc)
abstract public void updateValue(Transaction transaction, Persistency persistency, PersistentEntry persistentEntry, boolean complexDirty) throws OdalPersistencyException(Code)(Java Doc)
protected void validate(Transaction transaction)(Code)(Java Doc)

Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

ww___w__.___j__a__v__a__2_s___.c___o__m | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.