Index: src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java =================================================================== --- src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java (revision 551886) +++ src/main/java/org/apache/openjpa/jdbc/sql/SelectImpl.java (working copy) @@ -107,7 +107,7 @@ } private final JDBCConfiguration _conf; - private final DBDictionary _dict; + protected final DBDictionary _dict; // map of variable + relation path + table keys to the correct alias index: // each relation path/table combination should have a unique alias because @@ -122,7 +122,7 @@ private SortedMap _tables = null; // combined list of selected ids and map of each id to its alias - private final Selects _selects = new Selects(); + protected final Selects _selects = newSelects(); private List _ordered = null; // flags @@ -158,14 +158,14 @@ // from select if this select selects from a tmp table created by another private SelectImpl _from = null; - private SelectImpl _outer = null; + protected SelectImpl _outer = null; // bitSet indicating if an alias is removed from parent select // bit 0 : correspond to alias 0 // bit 1 : correspond to alias 1, etc. // if the bit is set, the corresponding alias has been removed from parent // and recorded under subselect. - private BitSet _removedAliasFromParent = new BitSet(16); + protected BitSet _removedAliasFromParent = new BitSet(16); /** * Helper method to return the proper table alias for the given alias index. @@ -2670,20 +2670,24 @@ return super.toString() + " (" + _outer + "): " + _joins; } } + + protected Selects newSelects() { + return new Selects(); + } /** * Helper class to track selected columns, with fast contains method. * Acts as a list of select ids, with additional methods to manipulate * the alias of each selected id. */ - private static class Selects + protected static class Selects extends AbstractList { - private List _ids = null; - private List _idents = null; - private Map _aliases = null; - private Map _selectAs = null; - private DBDictionary _dict = null; + protected List _ids = null; + protected List _idents = null; + protected Map _aliases = null; + protected Map _selectAs = null; + protected DBDictionary _dict = null; /** * Add all aliases from another instance. Index: src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java =================================================================== --- src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java (revision 551886) +++ src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java (working copy) @@ -912,7 +912,7 @@ /** * Returns a OpenJPA 3-compatible name for an auto-assign sequence. */ - private String getOpenJPA3GeneratedKeySequenceName(Column col) { + protected String getOpenJPA3GeneratedKeySequenceName(Column col) { Table table = col.getTable(); return makeNameValid("SEQ_" + table.getName(), table.getSchema(). getSchemaGroup(), maxTableNameLength, NAME_ANY); @@ -921,7 +921,7 @@ /** * Returns a OpenJPA 3-compatible name for an auto-assign trigger. */ - private String getOpenJPA3GeneratedKeyTriggerName(Column col) { + protected String getOpenJPA3GeneratedKeyTriggerName(Column col) { Table table = col.getTable(); return makeNameValid("TRIG_" + table.getName(), table.getSchema(). getSchemaGroup(), maxTableNameLength, NAME_ANY); Index: src/main/java/org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.java =================================================================== --- src/main/java/org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.java (revision 551886) +++ src/main/java/org/apache/openjpa/jdbc/kernel/AbstractUpdateManager.java (working copy) @@ -136,7 +136,7 @@ * @param customs buffer custom mappings * @return the exceptions list */ - private Collection populateRowManager(OpenJPAStateManager sm, + protected Collection populateRowManager(OpenJPAStateManager sm, RowManager rowMgr, JDBCStore store, Collection exceps, Collection customs) { try { @@ -336,7 +336,7 @@ /** * Executes customized mapping updates. */ - private static class CustomMapping { + protected static class CustomMapping { public static final int INSERT = 0; public static final int UPDATE = 1;