if ( filter.isLeaf() )
{
if ( filter instanceof EqualityNode)
{
EqualityNode node = ( ( EqualityNode ) filter );
Value<?> value = node.getValue();
Value<?> newValue = convert( node.getAttributeType(), value );
if ( newValue != null )
{
node.setValue( newValue );
}
}
else if ( ( filter instanceof SubstringNode ) ||
( filter instanceof PresenceNode ) ||
( filter instanceof AssertionNode ) ||
( filter instanceof ScopeNode ) )
{
// Nothing to do
}
else if ( filter instanceof GreaterEqNode )
{
GreaterEqNode node = ( (GreaterEqNode) filter );
Value<?> value = node.getValue();
Value<?> newValue = convert( node.getAttributeType(), value );
if ( newValue != null )
{
node.setValue( newValue );
}
}
else if ( filter instanceof LessEqNode )
{
LessEqNode node = ( ( LessEqNode ) filter );
Value<?> value = node.getValue();
Value<?> newValue = convert( node.getAttributeType(), value );
if ( newValue != null )
{
node.setValue( newValue );
}
}
else if ( filter instanceof ExtensibleNode)
{
ExtensibleNode node = ( ( ExtensibleNode ) filter );
}
else if ( filter instanceof ApproximateNode )
{
ApproximateNode node = ( (ApproximateNode) filter );
Value<?> value = node.getValue();
Value<?> newValue = convert( node.getAttributeType(), value );
if ( newValue != null )
{
node.setValue( newValue );
}
}
}
else
{