Project Wonder 5.0

er.rest
Class ERXFilteredQualifierTraversal

java.lang.Object
  extended by er.extensions.qualifiers.ERXQualifierTraversal
      extended by er.rest.ERXFilteredQualifierTraversal

public class ERXFilteredQualifierTraversal
extends ERXQualifierTraversal

ERXFilteredQualifierTraversal performs a security check on a qualifier, throwing a SecurityException if a qualifier is found that attempts to qualify a key that isn't permitted by a given ERXKeyFilter. This prevents people from doing things like "employee.salary > 100000" when employee.salary is an excluded key in your filter.

Author:
mschrag

Field Summary
 
Fields inherited from class er.extensions.qualifiers.ERXQualifierTraversal
log
 
Constructor Summary
protected ERXFilteredQualifierTraversal(com.webobjects.eoaccess.EOEntity entity, ERXKeyFilter filter)
          Constructs a new ERXFilteredQualifierTraversal.
 
Method Summary
protected  void checkKey(java.lang.String key)
          Checks the given key and throws an exception if the filter does not match it.
static void checkQualifierForEntityWithFilter(com.webobjects.eocontrol.EOQualifier qualifier, com.webobjects.eoaccess.EOEntity entity, ERXKeyFilter filter)
          Traverses the given qualifier, checking each keypath against the given filter, evaluated against the given entity.
protected  boolean traverseKeyComparisonQualifier(com.webobjects.eocontrol.EOKeyComparisonQualifier q)
          Should traverse key comparison qualifier?
protected  boolean traverseKeyValueQualifier(com.webobjects.eocontrol.EOKeyValueQualifier q)
          Should traverse a key value qualifier?
protected  boolean traverseUnknownQualifier(com.webobjects.eocontrol.EOQualifierEvaluation q)
          Should traverse unknown qualifier? Logs an error.
static ERXKey.Type typeForKeyInEntity(java.lang.String key, com.webobjects.eoaccess.EOEntity entity)
          Returns the ERXKey.Type for a keypath on a particular entity.
 
Methods inherited from class er.extensions.qualifiers.ERXQualifierTraversal
traverse, traverse, traverseAndQualifier, traverseNotQualifier, traverseOrQualifier, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ERXFilteredQualifierTraversal

protected ERXFilteredQualifierTraversal(com.webobjects.eoaccess.EOEntity entity,
                                        ERXKeyFilter filter)
Constructs a new ERXFilteredQualifierTraversal.

Parameters:
entity - the entity to resolve keypaths on
filter - the filter to check against
Method Detail

checkKey

protected void checkKey(java.lang.String key)
                 throws java.lang.SecurityException
Checks the given key and throws an exception if the filter does not match it.

Parameters:
key - the key to check
Throws:
java.lang.SecurityException - if the key does not match

traverseKeyComparisonQualifier

protected boolean traverseKeyComparisonQualifier(com.webobjects.eocontrol.EOKeyComparisonQualifier q)
Description copied from class: ERXQualifierTraversal
Should traverse key comparison qualifier?

Overrides:
traverseKeyComparisonQualifier in class ERXQualifierTraversal
Parameters:
q - the qualifier to process
Returns:
should traverse key comparison qualifier

traverseKeyValueQualifier

protected boolean traverseKeyValueQualifier(com.webobjects.eocontrol.EOKeyValueQualifier q)
Description copied from class: ERXQualifierTraversal
Should traverse a key value qualifier?

Overrides:
traverseKeyValueQualifier in class ERXQualifierTraversal
Parameters:
q - the qualifier to process
Returns:
should traverse key value qualifier

traverseUnknownQualifier

protected boolean traverseUnknownQualifier(com.webobjects.eocontrol.EOQualifierEvaluation q)
Description copied from class: ERXQualifierTraversal
Should traverse unknown qualifier? Logs an error.

Overrides:
traverseUnknownQualifier in class ERXQualifierTraversal
Parameters:
q - the qualifier to process
Returns:
should traverse boolean qualifier

typeForKeyInEntity

public static ERXKey.Type typeForKeyInEntity(java.lang.String key,
                                             com.webobjects.eoaccess.EOEntity entity)
Returns the ERXKey.Type for a keypath on a particular entity. This should probably be in a more generic utility class. I can't put it on ERXKey because it would break JavaClient people when they use eogenerated classes with ERXKey properties.

Parameters:
key - the key to lookup
entity - the entity to resolve the keypath on
Returns:
the ERXKey.Type for the given keypath, or null if there is no matching key

checkQualifierForEntityWithFilter

public static void checkQualifierForEntityWithFilter(com.webobjects.eocontrol.EOQualifier qualifier,
                                                     com.webobjects.eoaccess.EOEntity entity,
                                                     ERXKeyFilter filter)
                                              throws java.lang.SecurityException
Traverses the given qualifier, checking each keypath against the given filter, evaluated against the given entity.

Parameters:
qualifier - the qualifier to check
entity - the entity to resolve keypaths against
filter - the filter to evaluate with
Throws:
java.lang.SecurityException - if a keypath is not matched by the filter

Last updated: Tue, Feb 21, 2017 • 05:45 PM CET

Copyright © 2002 – 2007 Project Wonder.