/** Create the outer join operator for this platform */
 protected ExpressionOperator operatorOuterJoin() {
   ExpressionOperator result = new ExpressionOperator();
   result.setSelector(ExpressionOperator.EqualOuterJoin);
   Vector v = oracle.toplink.internal.helper.NonSynchronizedVector.newInstance(2);
   v.addElement(" (+) = ");
   result.printsAs(v);
   result.bePostfix();
   result.setNodeClass(RelationExpression.class);
   return result;
 }
 /** INTERNAL: Allow the use of XMLType operators on this platform. */
 protected void initializePlatformOperators() {
   super.initializePlatformOperators();
   addOperator(ExpressionOperator.extract());
   addOperator(ExpressionOperator.extractValue());
   addOperator(ExpressionOperator.existsNode());
   addOperator(ExpressionOperator.isFragment());
   addOperator(ExpressionOperator.getStringVal());
   addOperator(ExpressionOperator.getNumberVal());
   addOperator(SpatialExpressionOperators.withinDistance());
   addOperator(SpatialExpressionOperators.relate());
   addOperator(SpatialExpressionOperators.filter());
   addOperator(SpatialExpressionOperators.nearestNeighbor());
 }
 /** Initialize any platform-specific operators */
 protected void initializePlatformOperators() {
   super.initializePlatformOperators();
   addOperator(ExpressionOperator.simpleTwoArgumentFunction(ExpressionOperator.Concat, "CONCAT"));
   addOperator(operatorOuterJoin());
   addOperator(ExpressionOperator.ifNull());
 }