Methods Summary |
---|
public void | addCondition(java.lang.String alias, java.lang.String[] columns, java.lang.String condition)
for ( int i = 0; i < columns.length; i++ ) {
afterWhere.append( " and " )
.append( alias )
.append( '." )
.append( columns[i] )
.append( condition );
}
|
public void | addCondition(java.lang.String alias, java.lang.String[] fkColumns, java.lang.String[] pkColumns)
throw new UnsupportedOperationException();
|
public boolean | addCondition(java.lang.String condition)
return addCondition( afterWhere, condition );
|
public void | addCrossJoin(java.lang.String tableName, java.lang.String alias)
afterFrom.append( ", " )
.append( tableName )
.append( ' " )
.append( alias );
|
public void | addFromFragmentString(java.lang.String fromFragmentString)
afterFrom.append( fromFragmentString );
|
public void | addJoin(java.lang.String tableName, java.lang.String alias, java.lang.String[] fkColumns, java.lang.String[] pkColumns, int joinType)
addCrossJoin( tableName, alias );
for ( int j = 0; j < fkColumns.length; j++ ) {
setHasThetaJoins( true );
afterWhere.append( " and " )
.append( fkColumns[j] );
if ( joinType == RIGHT_OUTER_JOIN || joinType == FULL_JOIN ) afterWhere.append( "(+)" );
afterWhere.append( '=" )
.append( alias )
.append( '." )
.append( pkColumns[j] );
if ( joinType == LEFT_OUTER_JOIN || joinType == FULL_JOIN ) afterWhere.append( "(+)" );
}
|
public void | addJoin(java.lang.String tableName, java.lang.String alias, java.lang.String[] fkColumns, java.lang.String[] pkColumns, int joinType, java.lang.String on)
//arbitrary on clause ignored!!
addJoin( tableName, alias, fkColumns, pkColumns, joinType );
if ( joinType == JoinFragment.INNER_JOIN ) {
addCondition( on );
}
else if ( joinType == JoinFragment.LEFT_OUTER_JOIN ) {
addLeftOuterJoinCondition( on );
}
else {
throw new UnsupportedOperationException( "join type not supported by OracleJoinFragment (use Oracle9Dialect)" );
}
|
public void | addJoins(java.lang.String fromFragment, java.lang.String whereFragment)
afterFrom.append( fromFragment );
afterWhere.append( whereFragment );
|
private void | addLeftOuterJoinCondition(java.lang.String on)This method is a bit of a hack, and assumes
that the column on the "right" side of the
join appears on the "left" side of the
operator, which is extremely wierd if this
was a normal join condition, but is natural
for a filter.
StringBuffer buf = new StringBuffer( on );
for ( int i = 0; i < buf.length(); i++ ) {
char character = buf.charAt( i );
boolean isInsertPoint = OPERATORS.contains( new Character( character ) ) ||
( character == ' " && buf.length() > i + 3 && "is ".equals( buf.substring( i + 1, i + 4 ) ) );
if ( isInsertPoint ) {
buf.insert( i, "(+)" );
i += 3;
}
}
addCondition( buf.toString() );
|
public JoinFragment | copy()
OracleJoinFragment copy = new OracleJoinFragment();
copy.afterFrom = new StringBuffer( afterFrom.toString() );
copy.afterWhere = new StringBuffer( afterWhere.toString() );
return copy;
|
public java.lang.String | toFromFragmentString()
return afterFrom.toString();
|
public java.lang.String | toWhereFragmentString()
return afterWhere.toString();
|