Java Doc for InternalTriggerExecutionContext.java in  » Database-DBMS » db-derby-10.2 » org » apache » derby » impl » sql » execute » 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 DBMS » db derby 10.2 » org.apache.derby.impl.sql.execute 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.apache.derby.impl.sql.execute.InternalTriggerExecutionContext

InternalTriggerExecutionContext
public class InternalTriggerExecutionContext implements TriggerExecutionContext,ExecutionStmtValidator(Code)
There is one of these beasts per INSERT/DELETE/UPDATE statement. It fulfills the contract for the externally visible trigger execution context and it validates that a statement that is about to be executed doesn't violate the restrictions placed upon what can be executed from a trigger.

Note that it is crucial that cleanup() is called once the DML has completed, cleanup() makes sure that users can't do something invalid on a tec reference that they were holding from when the trigger fired.



Field Summary
protected  CursorResultSetafterResultSet
    
protected  ExecRowafterRow
     used exclusively for InsertResultSets which have autoincrement columns.
protected  CursorResultSetbeforeResultSet
    
protected  ConnectionContextcc
    
protected  int[]changedColIds
    
protected  String[]changedColNames
    
protected  booleancleanupCalled
    
protected  intdmlType
    
protected  TriggerEventevent
    
protected  LanguageConnectionContextlcc
    
protected  StringstatementText
    
protected  UUIDtargetTableId
    
protected  StringtargetTableName
    
protected  TriggerDescriptortriggerd
    

Constructor Summary
public  InternalTriggerExecutionContext(LanguageConnectionContext lcc, ConnectionContext cc, String statementText, int dmlType, int[] changedColIds, String[] changedColNames, UUID targetTableId, String targetTableName, Vector aiCounters)
     Build me a big old nasty trigger execution context. Damnit.

About the only thing of real interest to outside observers is that it pushes itself as the trigger execution context in the lcc.


Method Summary
protected  voidcleanup()
     Cleanup the trigger execution context.
 voidclearCurrentTriggerEvent()
    
 voidclearTrigger()
    
public  voidcopyHashtableToAIHT(Hashtable from)
     Copy a hashtable of autoincrement values into the trigger execution context hashtable of autoincrement values.
public  LonggetAutoincrementValue(String identity)
    
public  StringgetEventStatementText()
     Get the text of the statement that caused the trigger to fire.
public  intgetEventType()
     Get the type for the event that caused the trigger to fire. the event type (e.g.
public  String[]getModifiedColumns()
     Get the columns that have been modified by the statement that caused this trigger to fire.
public  java.sql.ResultSetgetNewRow()
     Like getAfterResultSet(), but returns a result set positioned on the first row of the before result set.
public  java.sql.ResultSetgetNewRowSet()
     Returns a result set row the new images of the changed rows. For a row trigger, the result set will have a single row.
public  java.sql.ResultSetgetOldRow()
     Like getBeforeResultSet(), but returns a result set positioned on the first row of the before result set.
public  java.sql.ResultSetgetOldRowSet()
     Returns a result set row the old images of the changed rows. For a row trigger, the result set will have a single row.
public  UUIDgetTargetTableId()
     Get the target table UUID upon which the trigger event is declared.
public  StringgetTargetTableName()
     Get the target table name upon which the trigger event is declared.
public  voidresetAICounters(boolean begin)
     Reset Autoincrement counters to the beginning or the end.
Parameters:
  begin - if True, reset the AutoincremnetCounter to thebeginning-- used to reset the counters for thenext trigger.
 voidsetAfterResultSet(CursorResultSet rs)
    
 voidsetBeforeResultSet(CursorResultSet rs)
    
 voidsetCurrentTriggerEvent(TriggerEvent event)
    
 voidsetTrigger(TriggerDescriptor triggerd)
    
public  StringtoString()
    
public  voidupdateAICounters()
     Update Autoincrement Counters from the last row inserted.
public  voidvalidateStatement(ConstantAction constantAction)
     Make sure that whatever statement is about to be executed is ok from the context of this trigger.
public  booleanwasColumnModified(String columnName)
    
public  booleanwasColumnModified(int columnNumber)
    

Field Detail
afterResultSet
protected CursorResultSet afterResultSet(Code)



afterRow
protected ExecRow afterRow(Code)
used exclusively for InsertResultSets which have autoincrement columns.



beforeResultSet
protected CursorResultSet beforeResultSet(Code)



cc
protected ConnectionContext cc(Code)



changedColIds
protected int[] changedColIds(Code)



changedColNames
protected String[] changedColNames(Code)



cleanupCalled
protected boolean cleanupCalled(Code)



dmlType
protected int dmlType(Code)



event
protected TriggerEvent event(Code)



lcc
protected LanguageConnectionContext lcc(Code)



statementText
protected String statementText(Code)



targetTableId
protected UUID targetTableId(Code)



targetTableName
protected String targetTableName(Code)



triggerd
protected TriggerDescriptor triggerd(Code)




Constructor Detail
InternalTriggerExecutionContext
public InternalTriggerExecutionContext(LanguageConnectionContext lcc, ConnectionContext cc, String statementText, int dmlType, int[] changedColIds, String[] changedColNames, UUID targetTableId, String targetTableName, Vector aiCounters) throws StandardException(Code)
Build me a big old nasty trigger execution context. Damnit.

About the only thing of real interest to outside observers is that it pushes itself as the trigger execution context in the lcc. Be sure to call cleanup() when you are done, or you will be flogged like the reprobate that you are.
Parameters:
  lcc - the lcc
Parameters:
  statementText - the text of the statement that caused thetrigger to fire. may be null if we are replicating
Parameters:
  changedColIds - the list of columns that changed. Nullfor all columns or INSERT/DELETE.
Parameters:
  changedColNames - the names that correspond to changedColIds
Parameters:
  targetTableId - the UUID of the table upon which the triggerfired
Parameters:
  targetTableName - the name of the table upon which the triggerfired
Parameters:
  aiCounters - A vector of AutoincrementCounters to keep stateof the ai columns in this insert trigger.a
exception:
  StandardException - on error





Method Detail
cleanup
protected void cleanup() throws StandardException(Code)
Cleanup the trigger execution context. MUST be called when the caller is done with the trigger execution context.

We go to somewhat exaggerated lengths to free up all our resources here because a user may hold on to a TEC after it is valid, so we clean everything up to be on the safe side.
exception:
  StandardException - on unexpected error




clearCurrentTriggerEvent
void clearCurrentTriggerEvent()(Code)



clearTrigger
void clearTrigger() throws StandardException(Code)



copyHashtableToAIHT
public void copyHashtableToAIHT(Hashtable from)(Code)
Copy a hashtable of autoincrement values into the trigger execution context hashtable of autoincrement values.



getAutoincrementValue
public Long getAutoincrementValue(String identity)(Code)



getEventStatementText
public String getEventStatementText()(Code)
Get the text of the statement that caused the trigger to fire. the statement text



getEventType
public int getEventType()(Code)
Get the type for the event that caused the trigger to fire. the event type (e.g. UPDATE_EVENT)



getModifiedColumns
public String[] getModifiedColumns()(Code)
Get the columns that have been modified by the statement that caused this trigger to fire. If all columns are modified, will return null (e.g. for INSERT or DELETE will return null). an array of Strings



getNewRow
public java.sql.ResultSet getNewRow() throws SQLException(Code)
Like getAfterResultSet(), but returns a result set positioned on the first row of the before result set. Used as a convenience to get a column for a row trigger. Equivalent to getAfterResultSet() followed by next(). the ResultSet positioned on the new row image.
exception:
  SQLException - if called after the triggering event hascompleted



getNewRowSet
public java.sql.ResultSet getNewRowSet() throws SQLException(Code)
Returns a result set row the new images of the changed rows. For a row trigger, the result set will have a single row. For a statement trigger, this result set has every row that has changed or will change. If a statement trigger does not affect a row, then the result set will be empty (i.e. ResultSet.next() will return false). the ResultSet containing after images of the rows changed by the triggering event.
exception:
  SQLException - if called after the triggering event hascompleted



getOldRow
public java.sql.ResultSet getOldRow() throws SQLException(Code)
Like getBeforeResultSet(), but returns a result set positioned on the first row of the before result set. Used as a convenience to get a column for a row trigger. Equivalent to getBeforeResultSet() followed by next(). the ResultSet positioned on the old row image.
exception:
  SQLException - if called after the triggering event hascompleted



getOldRowSet
public java.sql.ResultSet getOldRowSet() throws SQLException(Code)
Returns a result set row the old images of the changed rows. For a row trigger, the result set will have a single row. For a statement trigger, this result set has every row that has changed or will change. If a statement trigger does not affect a row, then the result set will be empty (i.e. ResultSet.next() will return false). the ResultSet containing before images of the rows changed by the triggering event.
exception:
  SQLException - if called after the triggering event hascompleted



getTargetTableId
public UUID getTargetTableId()(Code)
Get the target table UUID upon which the trigger event is declared. the uuid of the target table



getTargetTableName
public String getTargetTableName()(Code)
Get the target table name upon which the trigger event is declared. the target table



resetAICounters
public void resetAICounters(boolean begin)(Code)
Reset Autoincrement counters to the beginning or the end.
Parameters:
  begin - if True, reset the AutoincremnetCounter to thebeginning-- used to reset the counters for thenext trigger. If false, reset it to the end--this sets up the counter appropriately for aAFTER STATEMENT trigger.



setAfterResultSet
void setAfterResultSet(CursorResultSet rs) throws StandardException(Code)



setBeforeResultSet
void setBeforeResultSet(CursorResultSet rs)(Code)



setCurrentTriggerEvent
void setCurrentTriggerEvent(TriggerEvent event)(Code)



setTrigger
void setTrigger(TriggerDescriptor triggerd)(Code)



toString
public String toString()(Code)



updateAICounters
public void updateAICounters() throws StandardException(Code)
Update Autoincrement Counters from the last row inserted.



validateStatement
public void validateStatement(ConstantAction constantAction) throws StandardException(Code)
Make sure that whatever statement is about to be executed is ok from the context of this trigger.

Note that we are sub classed in replication for checks for replication specific language.
Parameters:
  constantAction - the constant action of the actionthat we are to validate
exception:
  StandardException - on error




wasColumnModified
public boolean wasColumnModified(String columnName)(Code)
Find out of a column was changed, by column name
Parameters:
  columnName - the column to check true if the column was modified by this statement.Note that this will always return true for INSERTand DELETE regardless of the column name passed in.



wasColumnModified
public boolean wasColumnModified(int columnNumber)(Code)
Find out of a column was changed, by column number
Parameters:
  columnNumber - the column to check true if the column was modified by this statement.Note that this will always return true for INSERTand DELETE regardless of the column name passed in.



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)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.