ERXEOControlUtilities Class Reference

Collaboration diagram for ERXEOControlUtilities:

Collaboration graph
[legend]

List of all members.

Static Public Member Functions

static Object _aggregateFunctionWithQualifier (EOEditingContext ec, String entityName, String attributeName, String function, Class valueClass, String valueType, EOQualifier qualifier)
static Object _aggregateFunctionWithQualifierAndAggregateAttribute (EOEditingContext ec, String entityName, EOQualifier qualifier, EOAttribute aggregateAttribute)
static String _stringForPrimaryKey (Object pk)
static void addObjectToObjectOnBothSidesOfRelationshipWithKey (EOEnterpriseObject addedObject, EOEnterpriseObject referenceObject, String key)
static Number aggregateFunctionWithQualifier (EOEditingContext ec, String entityName, String attributeName, String function, EOQualifier qualifier)
static Number aggregateFunctionWithQualifier (EOEditingContext ec, String entityName, String attributeName, String function, String fetchSpecificationName, NSDictionary bindings)
static NSTimestamp aggregateTimestampWithQualifier (EOEditingContext ec, String entityName, String attributeName, String function, EOQualifier qualifier)
static EOQualifier andQualifier (EOQualifier q1, EOQualifier q2)
static NSArray arrayFromDataSource (EODataSource dataSource)
static NSDictionary< String,
Integer > 
changedRegisteredObjectCount (NSDictionary< String, Integer > currentCounts, NSDictionary< String, Integer > oldCounts)
static void clearSnapshotForRelationshipNamed (EOEnterpriseObject eo, String relationshipName)
static void clearSnapshotForRelationshipNamedInDatabase (EOEnterpriseObject eo, String relationshipName, EODatabase database)
static Object convertEOtoGID (Object obj)
static Object convertGIDtoEO (EOEditingContext editingContext, Object obj)
static EOEnterpriseObject createAndAddObjectToRelationship (EOEditingContext editingContext, EOEnterpriseObject source, String relationshipName, String destinationEntityName, NSDictionary objectInfo)
static EOEnterpriseObject createAndInsertObject (EOEditingContext editingContext, String entityName, NSDictionary objectInfo)
static EOEnterpriseObject createAndInsertObject (EOEditingContext editingContext, String entityName)
static
< TextendsEOEnterpriseObject >
createAndInsertObject (EOEditingContext ec, Class< T > eoClass)
static EOArrayDataSource dataSourceForArray (EOEditingContext ec, String entityName, NSArray array)
static EOArrayDataSource dataSourceForArray (NSArray<?extends EOEnterpriseObject > array)
static EODetailDataSource dataSourceForObjectAndKey (EOEnterpriseObject object, String key)
static NSMutableArray deletedObjects (EOEditingContext editingContext, NSArray< String > entityNames, EOQualifier qualifier)
static String destinationEntityNameForKeyPath (EOEnterpriseObject eo, String keyPath)
static< T > NSArray< T > distinctValuesForKeyPath (EOEditingContext editingContext, String entityName, String keyPath, EOQualifier qualifier, NSArray< EOSortOrdering > sortOrderings)
static
< TextendsEOEnterpriseObject >
editableInstanceOfObject (T eo, boolean createNestedContext)
static boolean eoEquals (EOEnterpriseObject firstEO, EOEnterpriseObject secondEO)
static NSArray faultsForGlobalIDs (EOEditingContext ec, NSArray gids)
static NSArray faultsForRawRowsFromEntity (EOEditingContext ec, NSArray primKeys, String entityName)
static EOFetchSpecification fetchSpecificationNamedWithBindings (String entityName, String fetchSpecificationName, NSDictionary bindings)
static NSArray filteredObjectsWithQualifier (EOEditingContext editingContext, NSArray objectsToFilter, String entityName, EOQualifier qualifier, NSArray sortOrderings, boolean usesDistinct, boolean isDeep, boolean includeNewObjects, boolean includeNewObjectsInParentEditingContext, boolean filterUpdatedObjects, boolean removeDeletedObjects)
static EOGlobalID globalIDForString (EOEditingContext ec, String entityName, String string)
static NSArray globalIDsForObjects (NSArray eos)
static NSMutableArray insertedObjects (EOEditingContext editingContext, NSArray< String > entityNames, EOQualifier qualifier)
static boolean isNewObject (EOEnterpriseObject eo)
static
< TextendsEOEnterpriseObject >
localInstanceOfObject (EOEditingContext ec, T eo)
static EOQualifier localInstancesInQualifier (EOEditingContext ec, EOQualifier q)
static
< TextendsEOEnterpriseObject >
NSArray< T > 
localInstancesOfObjects (EOEditingContext ec, NSArray< T > eos)
static void makeQualifierTrue (EOQualifier qualifier, Object obj)
static NSDictionary< String,
Object > 
newPrimaryKeyDictionaryForEntityNamed (EOEditingContext ec, String entityName)
static NSDictionary< String,
Object > 
newPrimaryKeyDictionaryForObject (EOEnterpriseObject eo)
static NSDictionary< String,
Object > 
newPrimaryKeyDictionaryForObjectFromClassProperties (EOEnterpriseObject eo)
static Integer objectCountUniqueWithQualifierAndAttribute (EOEditingContext ec, String entityName, EOQualifier qualifier, String attributeName)
static Integer objectCountWithQualifier (EOEditingContext ec, String entityName, EOQualifier qualifier)
static NSArray objectsForFaults (EOEditingContext ec, NSArray possibleFaults)
static NSArray objectsForFaultWithSortOrderings (EOEditingContext ec, NSArray possibleFaults, NSArray sortOrderings)
static NSArray objectsForGlobalIDs (final EOEditingContext ec, final NSArray globalIDs)
static
< TextendsEOEnterpriseObject >
NSArray< T > 
objectsInRange (EOEditingContext ec, EOFetchSpecification spec, int start, int end, boolean rawRowsForCustomQueries)
static
< TextendsEOEnterpriseObject >
NSArray< T > 
objectsInRange (EOEditingContext ec, EOFetchSpecification spec, int start, int end)
static NSArray objectsWithQualifier (EOEditingContext editingContext, String entityName, EOQualifier qualifier, NSArray prefetchKeyPaths, NSArray sortOrderings, int fetchLimit, boolean usesDistinct, boolean isDeep, NSDictionary hints, boolean includeNewObjects, boolean includeNewObjectsInParentEditingContext, boolean filterUpdatedObjects, boolean removeDeletedObjects)
static NSArray objectsWithQualifier (EOEditingContext editingContext, String entityName, EOQualifier qualifier, NSArray prefetchKeyPaths, NSArray sortOrderings, boolean usesDistinct, boolean isDeep, NSDictionary hints, boolean includeNewObjects, boolean includeNewObjectsInParentEditingContext, boolean filterUpdatedObjects, boolean removeDeletedObjects)
static NSArray objectsWithQualifier (EOEditingContext editingContext, String entityName, EOQualifier qualifier, NSArray prefetchKeyPaths, boolean includeNewObjects, boolean includeNewObjectsInParentEditingContext, boolean filterUpdatedObjects, boolean removeDeletedObjects)
static NSArray objectsWithQualifier (EOEditingContext _editingContext, String _entityName, EOQualifier _qualifier, NSArray _prefetchKeyPaths, boolean _includeNewObjects, boolean _includeNewObjectsInParentEditingContext)
static NSArray objectsWithQualifier (EOEditingContext ec, String entityName, EOQualifier qualifier, NSArray prefetchKeyPaths, boolean includeNewObjects)
static NSArray objectsWithQualifierFormat (EOEditingContext ec, String entityName, String qualifierFormat, NSArray args, NSArray prefetchKeyPaths, boolean includeNewObjects, boolean includeNewObjectsInParentEditingContexts)
static NSArray objectsWithQualifierFormat (EOEditingContext ec, String entityName, String qualifierFormat, NSArray args, NSArray prefetchKeyPaths, boolean includeNewObjects)
static EOEnterpriseObject objectWithPrimaryKeyValue (EOEditingContext ec, String entityName, Object primaryKeyValue, NSArray prefetchingKeyPaths, boolean refreshRefetchedObjects)
static EOEnterpriseObject objectWithPrimaryKeyValue (EOEditingContext ec, String entityName, Object primaryKeyValue, NSArray prefetchingKeyPaths)
static EOEnterpriseObject objectWithQualifier (EOEditingContext editingContext, String entityName, EOQualifier qualifier)
static EOQualifier orQualifier (EOQualifier q1, EOQualifier q2)
static EOQualifier orQualifierForKeyPaths (NSArray keyPaths, NSSelector selector, NSArray values)
static EOQualifier orQualifierForKeyPaths (NSArray keyPaths, NSSelector selector, Object value)
static NSArray primaryKeyArrayForObject (EOEnterpriseObject obj)
static NSDictionary< String,
Object > 
primaryKeyDictionaryForString (EOEditingContext ec, String entityName, String string)
static EOFetchSpecification primaryKeyFetchSpecificationForEntity (EOEditingContext ec, String entityName, EOQualifier eoqualifier, NSArray< EOSortOrdering > sortOrderings, NSArray< String > additionalKeys)
static Object primaryKeyObjectForObject (EOEnterpriseObject eo)
static NSArray primaryKeysMatchingQualifier (EOEditingContext ec, String entityName, EOQualifier eoqualifier, NSArray< EOSortOrdering > sortOrderings)
static String primaryKeyStringForGlobalID (EOKeyGlobalID gid)
static String primaryKeyStringForObject (EOEnterpriseObject eo)
static NSArray primaryKeyValuesInRange (EOEditingContext ec, EOFetchSpecification spec, int start, int end)
static EOQualifier qualifierMatchingAnyKey (NSArray keys, NSSelector selector, Object value)
static void refaultObject (EOEnterpriseObject eo)
static NSDictionary< String,
Integer > 
registeredObjectCount (EOEditingContext ec)
static EOEnterpriseObject requiredObjectWithQualifier (EOEditingContext editingContext, String entityName, EOQualifier qualifier)
static EOEntity rootEntity (EOEnterpriseObject eo)
static String rootEntityName (EOEnterpriseObject eo)
static EOFetchSpecification schemaBasedFetchSpecification (EOEditingContext ec, EOFetchSpecification fetchSpecification)
static EOQualifier schemaBasedQualifier (EOEditingContext ec, String entityName, EOQualifier qualifier)
static EOEnterpriseObject sharedObjectMatchingKeyAndValue (String entityName, String key, Object value)
static NSArray sharedObjectsForEntityNamed (String entityName)
static NSArray sharedObjectsMatchingKeyAndValue (String entityName, String key, Object value)
static NSArray sharedObjectsWithFetchSpecificationNamed (String entityName, String fetchSpecName)
static EOEnterpriseObject sharedObjectWithFetchSpec (String entityName, String fetchSpec)
static EOEnterpriseObject sharedObjectWithPrimaryKey (String entityName, Object primaryKey)
static synchronized NSArray stringAttributeListForEntityNamed (EOEditingContext ec, String entityName)
static void trimSpaces (EOEnterpriseObject object)
static NSMutableArray updatedObjects (EOEditingContext editingContext, NSArray< String > entityNames, EOQualifier qualifier)
static void validateUniquenessOf (String entityName, EOEnterpriseObject eo, String...keys)
static void validateUniquenessOf (EOEnterpriseObject eo, String...keys)
static void validateUniquenessOf (EOEnterpriseObject eo, EOQualifier restrictingQualifier, String...keys)
static void validateUniquenessOf (String entityName, EOEnterpriseObject eo, EOQualifier restrictingQualifier, String...keys)

Static Public Attributes

static final Logger log = Logger.getLogger(ERXEOControlUtilities.class)

Static Private Member Functions

static Object __aggregateFunctionWithQualifierAndAggregateAttribute (EODatabaseContext databaseContext, EOEditingContext ec, String entityName, EOQualifier qualifier, EOAttribute aggregateAttribute)
static void ensureSortOrdering (EOEditingContext ec, NSArray<?extends EOGlobalID > gids, NSMutableArray<?extends EOEnterpriseObject > objects)

Static Private Attributes

static NSMutableDictionary _attributeKeysPerEntityName = new NSMutableDictionary()


Detailed Description

Collection of EOF utility method centered around EOControl.

EOControl provides infrastructure for creating and managing enterprise objects.


Member Function Documentation

static Object __aggregateFunctionWithQualifierAndAggregateAttribute ( EODatabaseContext  databaseContext,
EOEditingContext  ec,
String  entityName,
EOQualifier  qualifier,
EOAttribute  aggregateAttribute 
) [static, private]

static Object _aggregateFunctionWithQualifier ( EOEditingContext  ec,
String  entityName,
String  attributeName,
String  function,
Class  valueClass,
String  valueType,
EOQualifier  qualifier 
) [static]

static Object _aggregateFunctionWithQualifierAndAggregateAttribute ( EOEditingContext  ec,
String  entityName,
EOQualifier  qualifier,
EOAttribute  aggregateAttribute 
) [static]

Returns the number of objects in the database with the qualifier and counting attribute. This implementation queries the database directly without loading the objects into memory.

Parameters:
ec the editing context
entityName the name of the entity
qualifier the qualifier to filter with
aggregateAttribute the attribute that contains the "count(*)" definition
Returns:
the number of objects

static String _stringForPrimaryKey ( Object  pk  )  [static]

Returns the propertylist-encoded string representation of the primary key for a given object. Made public only for ERXGenericRecord.

Parameters:
pk the primary key
Returns:
string representation of the primary key.

static void addObjectToObjectOnBothSidesOfRelationshipWithKey ( EOEnterpriseObject  addedObject,
EOEnterpriseObject  referenceObject,
String  key 
) [static]

Adds an object to another objects relationship. Has the advantage of ensuring that the added object is in the same editing context as the reference object.

Parameters:
addedObject object to be added to the relationship
referenceObject object that has the relationship
key relationship key

static Number aggregateFunctionWithQualifier ( EOEditingContext  ec,
String  entityName,
String  attributeName,
String  function,
EOQualifier  qualifier 
) [static]

Computes an aggregate function for a given attribute restricted by a given qualifier. For instance select MAX(AGE) from User where name like 'M*'

Parameters:
ec editing context used for the fetch
entityName name of the entity
attributeName attribute for the function to be performed on
function name, ie MAX, MIN, AVG, etc.
qualifier to restrict data set
Returns:
aggregate result of the fuction call

static Number aggregateFunctionWithQualifier ( EOEditingContext  ec,
String  entityName,
String  attributeName,
String  function,
String  fetchSpecificationName,
NSDictionary  bindings 
) [static]

Computes an aggregate function for a given attribute restricted by a given qualifier. For instance select MAX(AGE) from User where name like 'M*'

Parameters:
ec editing context used for the fetch
entityName name of the entity
attributeName attribute for the function to be performed on
function name, ie MAX, MIN, AVG, etc.
Returns:
aggregate result of the fuction call

static NSTimestamp aggregateTimestampWithQualifier ( EOEditingContext  ec,
String  entityName,
String  attributeName,
String  function,
EOQualifier  qualifier 
) [static]

Computes an aggregate function for a given attribute restricted by a given qualifier. For instance select MAX(AGE) from User where name like 'M*'

Parameters:
ec editing context used for the fetch
entityName name of the entity
attributeName attribute for the function to be performed on
function name, ie MAX, MIN, AVG, etc.
qualifier to restrict data set
Returns:
aggregate result of the fuction call

static EOQualifier andQualifier ( EOQualifier  q1,
EOQualifier  q2 
) [static]

Joins the given qualifiers with an AND. One or both arguments may be null, if both are null, null is returned.

Parameters:
q1 
q2 

static NSArray arrayFromDataSource ( EODataSource  dataSource  )  [static]

Converts a datasource into an array.

Parameters:
dataSource data source to be converted
Returns:
array of objects that the data source represents

static NSDictionary<String, Integer> changedRegisteredObjectCount ( NSDictionary< String, Integer >  currentCounts,
NSDictionary< String, Integer >  oldCounts 
) [static]

Returns the changes in count registered objects in the EC grouped by entity name, which is useful for memory debugging.

Parameters:
currentCounts current count of objects
oldCounts previous count of objects
Returns:
dictionary of counts

static void clearSnapshotForRelationshipNamed ( EOEnterpriseObject  eo,
String  relationshipName 
) [static]

Clears snapshot the relaationship of a given enterprise so it will be read again when next accessed.

Parameters:
eo enterprise object
relationshipName relationship name

static void clearSnapshotForRelationshipNamedInDatabase ( EOEnterpriseObject  eo,
String  relationshipName,
EODatabase  database 
) [static]

Clears snapshot the relationship of a given enterprise so it will be read again when next accessed.

Parameters:
eo enterprise object
relationshipName relationship name

static Object convertEOtoGID ( Object  obj  )  [static]

Given a dictionary, array, set, EO, etc, this will recursively turn EO's into GID's. You should lock the editingContext before calling this.

Parameters:
obj the object to recursively turn EO's into GID's for
Returns:
the GIDful object

static Object convertGIDtoEO ( EOEditingContext  editingContext,
Object  obj 
) [static]

Given a dictionary, array, set, EO, etc, this will recursively turn GID's into EO's. You should lock the editingContext before calling this.

Parameters:
obj the object to recursively turn GID's into EO's for
Returns:
the EOful object

static EOEnterpriseObject createAndAddObjectToRelationship ( EOEditingContext  editingContext,
EOEnterpriseObject  source,
String  relationshipName,
String  destinationEntityName,
NSDictionary  objectInfo 
) [static]

Creates an object using the utility method createEO from this utility class. After creating the enterprise object it is added to the relationship of the enterprise object passed in. For instance:
createAndAddObjectToRelationship(ec, foo, "toBars", "Bar", dictValues);

will create an instance of Bar, set all of the key-value pairs from the dictValues dictionary, insert it into an editing context and then add it to both sides of the realtionship "toBars" off of the enterprise object foo.

Parameters:
editingContext editing context to create the object in
source enterprise object to whose relationship the newly created object will be added.
relationshipName relationship name of the enterprise object that is passed in to which the newly created eo should be added.
destinationEntityName name of the entity of the object to be created.
objectInfo dictionary of values to be set on the newly created object before it is inserted into the editing context.
Returns:
the newly created enterprise object

static EOEnterpriseObject createAndInsertObject ( EOEditingContext  editingContext,
String  entityName,
NSDictionary  objectInfo 
) [static]

Creates an enterprise object for the given entity name by first looking up the class description of the entity to create the enterprise object. The object is then inserted into the editing context and returned.

Parameters:
editingContext editingContext to insert the created object into
entityName name of the entity to be created.
objectInfo dictionary of values pushed onto the object before being inserted into the editing context.
Returns:
created and inserted enterprise object

static EOEnterpriseObject createAndInsertObject ( EOEditingContext  editingContext,
String  entityName 
) [static]

Creates an enterprise object for the given entity name by first looking up the class description of the entity to create the enterprise object. The object is then inserted into the editing context and returned.

Parameters:
editingContext editingContext to insert the created object into
entityName name of the entity to be created.
Returns:
created and inserted enterprise object

static <TextendsEOEnterpriseObject> T createAndInsertObject ( EOEditingContext  ec,
Class< T >  eoClass 
) [static]

Creates an enterprise object for the given entity name by first looking up the class description of the entity to create the enterprise object. The object is then inserted into the editing context and returned.

Parameters:
<T> The enterprise object type
ec editingContext to insert the created object into
eoClass class of the enterprise object to be created
Returns:
created and inserted enterprise object of type T

static EOArrayDataSource dataSourceForArray ( EOEditingContext  ec,
String  entityName,
NSArray  array 
) [static]

Simple utility method that will convert an array of enterprise objects into an EOArrayDataSource.

Note that the datasource that is constructed uses the class description and editing context of the first object of the array.

Parameters:
array collection of objects to be turned into a datasource
Returns:
an array datasource corresponding to the array of objects passed in.

static EOArrayDataSource dataSourceForArray ( NSArray<?extends EOEnterpriseObject >  array  )  [static]

Simple utility method that will convert an array of enterprise objects into an EOArrayDataSource.

Note that the datasource that is constructed uses the class description and editing context of the first object of the array.

Parameters:
array collection of objects to be turned into a datasource
Returns:
an array datasource corresponding to the array of objects passed in.

static EODetailDataSource dataSourceForObjectAndKey ( EOEnterpriseObject  object,
String  key 
) [static]

Creates a detail data source for a given enterprise object and a relationship key. These types of datasources can be very handy when you are displaying a list of objects a la D2W style and then some objects are added or removed from the relationship. If an array datasource were used then the list would not reflect the changes made, however the detail data source will reflect changes made to the relationship.
Note: the relationship key does not have to be an eo relationship, instead it just has to return an array of enterprise objects.

Parameters:
object that has the relationship
key relationship key
Returns:
detail data source for the given object-key pair.

static NSMutableArray deletedObjects ( EOEditingContext  editingContext,
NSArray< String entityNames,
EOQualifier  qualifier 
) [static]

Returns:
the array of objects of the given type that have been deleted from the editing context and match the given qualifier. Returns an empty array if no objects match.
Parameters:
editingContext the editing context to look in
entityNames the names of the entity to look for
qualifier the qualifier to restrict by

static String destinationEntityNameForKeyPath ( EOEnterpriseObject  eo,
String  keyPath 
) [static]

Convenience to get the destination entity name from a key path of an object. Returns null if no destination found.

Parameters:
eo 
keyPath 

static <T> NSArray<T> distinctValuesForKeyPath ( EOEditingContext  editingContext,
String  entityName,
String  keyPath,
EOQualifier  qualifier,
NSArray< EOSortOrdering >  sortOrderings 
) [static]

Returns an NSArray of distinct values available for the given entity and key path. The result can be narrowed by an optional qualifier and optionally sorted with sort orderings

Parameters:
<T> type of values for the key path
editingContext editingContext
entityName entityName
keyPath keyPath
qualifier restricting qualifier (optional)
sortOrderings sortOrderings to be applied (optional)
Returns:
array of values
Author:
th

static <TextendsEOEnterpriseObject> T editableInstanceOfObject ( eo,
boolean  createNestedContext 
) [static]

Creates a new, editable instance of the supplied object. Takes into account if the object is newly inserted, lives in a shared context and can either create a peer or nested context.

Parameters:
eo object for the new instance
createNestedContext true, if we should create a nested context (otherwise we create a peer context)
Returns:
new EO in new editing context

static void ensureSortOrdering ( EOEditingContext  ec,
NSArray<?extends EOGlobalID >  gids,
NSMutableArray<?extends EOEnterpriseObject >  objects 
) [static, private]

Ensures the array of objects follow the same order than the array of globalIDs returned by the first fetch.

Parameters:
ec an editingContext
gids the array of globalIDs ordered as expected
objects the array of objects to be ordered based on the array of gids

static boolean eoEquals ( EOEnterpriseObject  firstEO,
EOEnterpriseObject  secondEO 
) [static]

Determines if two EOs are equal by comparing their EOGlobalIDs. This does not require the two EOs to be in the same EOEditingContext and will be safe when either is or both are null. This does not test the two EOs for content equality.

Parameters:
firstEO first EO to compare
secondEO second EO to compare
Returns:
true if firstEO and secondEO correspond to the same object or if both are null. false otherwise.

static NSArray faultsForGlobalIDs ( EOEditingContext  ec,
NSArray  gids 
) [static]

returns a NSArray containing EOEnterpriseObjects (actually faults...) for the provided EOGlobalIDs.

Parameters:
ec the EOEditingContext in which the EOEnterpriseObjects should be faulted
gids the EOGlobalIDs
Returns:
a NSArray of EOEnterpriseObjects

static NSArray faultsForRawRowsFromEntity ( EOEditingContext  ec,
NSArray  primKeys,
String  entityName 
) [static]

static EOFetchSpecification fetchSpecificationNamedWithBindings ( String  entityName,
String  fetchSpecificationName,
NSDictionary  bindings 
) [static]

Gets a fetch specification from a given entity. If qualifier binding variables are passed in then the fetchspecification is cloned and the binding variables are substituted returning a fetch specification that can be used.

Parameters:
entityName name of the entity that the fetch specification is bound to
fetchSpecificationName name of the fetch specification
bindings dictionary of qualifier bindings
Returns:
fetch specification identified by name and potentially with the qualifier bindings replaced.

static NSArray filteredObjectsWithQualifier ( EOEditingContext  editingContext,
NSArray  objectsToFilter,
String  entityName,
EOQualifier  qualifier,
NSArray  sortOrderings,
boolean  usesDistinct,
boolean  isDeep,
boolean  includeNewObjects,
boolean  includeNewObjectsInParentEditingContext,
boolean  filterUpdatedObjects,
boolean  removeDeletedObjects 
) [static]

Utility method used to filter an array of objects given a qualifier. Also has support for filtering the newly inserted, updated, and deleted objects in the passed editing context or any parent editing contexts as well as specifying prefetching key paths. Note that only NEW objects are supported in parent editing contexts.

Parameters:
editingContext editing context to fetch it into
objectsToFilter objects to filter
entityName name of the entity
qualifier qualifier
prefetchKeyPaths prefetching key paths
sortOrderings the sort orderings to use on the results
fetchLimit the fetch limit to use
usesDistinct whether or not to distinct the results
isDeep whether or not to fetch deeply
hints fetch hints to apply
includeNewObjects option to include newly inserted objects in the result set
includeNewObjectsInParentEditingContext option to include newly inserted objects in parent editing contexts. if true, the editing context lineage is explored, any newly-inserted objects matching the qualifier are collected and faulted down through all parent editing contexts of ec.
filterUpdatedObjects option to include updated objects that now match the qualifier or remove updated objects thats no longer match the qualifier
removeDeletedObjects option to remove objects that have been deleted
Returns:
array of objects matching the constructed qualifier

static EOGlobalID globalIDForString ( EOEditingContext  ec,
String  entityName,
String  string 
) [static]

Returns the decoded global id for an propertylist encoded string representation of the primary key for a given object.

static NSArray globalIDsForObjects ( NSArray  eos  )  [static]

returns a NSArray containing EOGlobalIDs from the provided eos.

Parameters:
eos the NSArray of EOEnterpriseObjects
Returns:
a NSArray of EOGlobalIDs

static NSMutableArray insertedObjects ( EOEditingContext  editingContext,
NSArray< String entityNames,
EOQualifier  qualifier 
) [static]

Returns:
the array of objects of the given type that have been inserted into the editing context and match the given qualifier. Yes, it's odd that it returns NSMutableArray -- it's an optimization specifically for objectsWithQualifier. Returns an empty array if no objects match.
Parameters:
editingContext the editing context to look in
entityNames the names of the entity to look for
qualifier the qualifier to restrict by

static boolean isNewObject ( EOEnterpriseObject  eo  )  [static]

Determines if an enterprise object is a new object and hasn't been saved to the database yet.


Note: An object that has been deleted will have it's editing context set to null which means this method would report true for an object that has been deleted from the database.

Parameters:
eo enterprise object to check
Returns:
true or false depending on if the object is a new object.

static <TextendsEOEnterpriseObject> T localInstanceOfObject ( EOEditingContext  ec,
eo 
) [static]

This has one advantage over the standard EOUtilites method of first checking if the editingcontexts are equal before creating a fault for the object in the editing context.

Parameters:
ec editing context to get a local instance of the object in
eo object to get a local copy of
Returns:
enterprise object local to the passed in editing contex

static EOQualifier localInstancesInQualifier ( EOEditingContext  ec,
EOQualifier  q 
) [static]

faults every EO in the qualifiers into the specified editingContext. This is important for in memory filtering and eo comparision

Parameters:
ec 
q 

static <TextendsEOEnterpriseObject> NSArray<T> localInstancesOfObjects ( EOEditingContext  ec,
NSArray< T >  eos 
) [static]

Provides the same functionality as the equivalent method in EOUtilities except it will use the localInstanceOfObject method from this utilities class which has a few enhancements.

Parameters:
ec editing context to pull local object copies
eos array of enterprise objects
Returns:
an array of copies of local objects

static void makeQualifierTrue ( EOQualifier  qualifier,
Object  obj 
) [static]

Given a qualifier of EOAndQualifiers and EOKVQualifiers, make then evaluate to true on the given object.

Parameters:
qualifier the qualifier to apply to the object
obj the object to make qualifier evaluate to true for

static NSDictionary<String, Object> newPrimaryKeyDictionaryForEntityNamed ( EOEditingContext  ec,
String  entityName 
) [static]

Utility method to generate a new primary key dictionary using the adaptor for a given entity. This is can be handy if you need to have a primary key for an object before it is saved to the database. This method uses the same method that EOF uses by default for generating primary keys. See ERXGeneratesPrimaryKeyInterface for more information about using a newly created dictionary as the primary key for an enterprise object.

Parameters:
ec editing context
entityName name of the entity to generate the primary key dictionary for.
Returns:
a dictionary containing a new primary key for the given entity.

static NSDictionary<String, Object> newPrimaryKeyDictionaryForObject ( EOEnterpriseObject  eo  )  [static]

Utility method to generate a new primary key for an object. Calls newPrimaryKeyForObjectFromClassProperties(EOEnterpriseObject) and if that returns null, newPrimaryKeyDictionaryForEntityNamed(EOEditingContext, String)

Returns:
new primary key dictionary or null if a failure occured.

static NSDictionary<String, Object> newPrimaryKeyDictionaryForObjectFromClassProperties ( EOEnterpriseObject  eo  )  [static]

Utility method to generate a new primary key dictionary using the objects class properties. Use it when your PKs are class properties.

Parameters:
eo object in question
Returns:
new primary key dictionary or null if one of the properties is null or one of the primary key attributes is not a class property.

static Integer objectCountUniqueWithQualifierAndAttribute ( EOEditingContext  ec,
String  entityName,
EOQualifier  qualifier,
String  attributeName 
) [static]

Returns the number of unique objects matching the given qualifier for a given entity name. Implementation wise this method will generate the correct sql to only perform a count, i.e. all of the objects wouldn't be pulled into memory.

Parameters:
ec editing context to use for the count qualification
entityName name of the entity to fetch
qualifier to find the matching objects
attributeName name of attribute in same entity to consider in order to determine uniqueness
Returns:
number of matching objects

static Integer objectCountWithQualifier ( EOEditingContext  ec,
String  entityName,
EOQualifier  qualifier 
) [static]

Returns the number of objects matching the given qualifier for a given entity name. Implementation wise this method will generate the correct sql to only perform a count, i.e. all of the objects wouldn't be pulled into memory.

Parameters:
ec editing context to use for the count qualification
entityName name of the entity to fetch
qualifier to find the matching objects
Returns:
number of matching objects

static NSArray objectsForFaults ( EOEditingContext  ec,
NSArray  possibleFaults 
) [static]

Triggers all faults in an efficient manner.

Parameters:
ec 
possibleFaults globalIDs

static NSArray objectsForFaultWithSortOrderings ( EOEditingContext  ec,
NSArray  possibleFaults,
NSArray  sortOrderings 
) [static]

Uses ERXEOControlUtilities.objectForFaults to turn the faults into objects, then does in memory ordering with EOSortOrdering.EOSortOrdering.sortedArrayUsingKeyOrderArray()

Parameters:
ec 
possibleFaults 
sortOrderings 
Returns:
sorted array of EOs (no faults)

static NSArray objectsForGlobalIDs ( final EOEditingContext  ec,
final NSArray  globalIDs 
) [static]

Aggregate method for EOEditingContext.objectForGlobalID(). NOTE: this only returns objects that are already registered, if you need all objects from the GIDs, use faultsForGlobalIDs(EOEditingContext, NSArray).

See also:
com.webobjects.eocontrol.EOEditingContext.objectForGlobalID(EOGlobalID)

static <TextendsEOEnterpriseObject> NSArray<T> objectsInRange ( EOEditingContext  ec,
EOFetchSpecification  spec,
int  start,
int  end,
boolean  rawRowsForCustomQueries 
) [static]

Returns an NSArray containing the objects from the resulting rows starting at start and stopping at end using a custom SQL, derived from the SQL which the EOFetchSpecification would use normally setHints()

Parameters:
ec editingcontext to fetch objects into
spec fetch specification for the fetch
start 
end 
rawRowsForCustomQueries if true, raw rows will be returned from the fetch when there is a custom query
Returns:
objects in the given range

static <TextendsEOEnterpriseObject> NSArray<T> objectsInRange ( EOEditingContext  ec,
EOFetchSpecification  spec,
int  start,
int  end 
) [static]

Returns an NSArray containing the objects from the resulting rows starting at start and stopping at end using a custom SQL, derived from the SQL which the EOFetchSpecification would use normally setHints()

Parameters:
ec editingcontext to fetch objects into
spec fetch specification for the fetch
start 
end 
Returns:
objects in the given range

static NSArray objectsWithQualifier ( EOEditingContext  editingContext,
String  entityName,
EOQualifier  qualifier,
NSArray  prefetchKeyPaths,
NSArray  sortOrderings,
int  fetchLimit,
boolean  usesDistinct,
boolean  isDeep,
NSDictionary  hints,
boolean  includeNewObjects,
boolean  includeNewObjectsInParentEditingContext,
boolean  filterUpdatedObjects,
boolean  removeDeletedObjects 
) [static]

Utility method used to fetch an array of objects given a qualifier. Also has support for filtering the newly inserted, updated, and deleted objects in the passed editing context or any parent editing contexts as well as specifying prefetching key paths. Note that only NEW objects are supported in parent editing contexts.

Parameters:
editingContext editing context to fetch it into
entityName name of the entity
qualifier qualifier
prefetchKeyPaths prefetching key paths
sortOrderings the sort orderings to use on the results
fetchLimit the fetch limit to use
usesDistinct whether or not to distinct the results
isDeep whether or not to fetch deeply
hints fetch hints to apply
includeNewObjects option to include newly inserted objects in the result set
includeNewObjectsInParentEditingContext option to include newly inserted objects in parent editing contexts. if true, the editing context lineage is explored, any newly-inserted objects matching the qualifier are collected and faulted down through all parent editing contexts of ec.
filterUpdatedObjects option to include updated objects that now match the qualifier or remove updated objects thats no longer match the qualifier
removeDeletedObjects option to remove objects that have been deleted
Returns:
array of objects matching the constructed qualifier

static NSArray objectsWithQualifier ( EOEditingContext  editingContext,
String  entityName,
EOQualifier  qualifier,
NSArray  prefetchKeyPaths,
NSArray  sortOrderings,
boolean  usesDistinct,
boolean  isDeep,
NSDictionary  hints,
boolean  includeNewObjects,
boolean  includeNewObjectsInParentEditingContext,
boolean  filterUpdatedObjects,
boolean  removeDeletedObjects 
) [static]

Utility method used to fetch an array of objects given a qualifier. Also has support for filtering the newly inserted, updateed, and deleted objects in the passed editing context or any parent editing contexts as well as specifying prefetching key paths. Note that only NEW objects are supported in parent editing contexts.

Parameters:
editingContext editing context to fetch it into
entityName name of the entity
qualifier qualifier
prefetchKeyPaths prefetching key paths
sortOrderings the sort orderings to use on the results
usesDistinct whether or not to distinct the results
isDeep whether or not to fetch deeply
hints fetch hints to apply
includeNewObjects option to include newly inserted objects in the result set
includeNewObjectsInParentEditingContext option to include newly inserted objects in parent editing contexts. if true, the editing context lineage is explored, any newly-inserted objects matching the qualifier are collected and faulted down through all parent editing contexts of ec.
filterUpdatedObjects option to include updated objects that now match the qualifier or remove updated objects thats no longer match the qualifier
removeDeletedObjects option to remove objects that have been deleted
Returns:
array of objects matching the constructed qualifier

static NSArray objectsWithQualifier ( EOEditingContext  editingContext,
String  entityName,
EOQualifier  qualifier,
NSArray  prefetchKeyPaths,
boolean  includeNewObjects,
boolean  includeNewObjectsInParentEditingContext,
boolean  filterUpdatedObjects,
boolean  removeDeletedObjects 
) [static]

Utility method used to fetch an array of objects given a qualifier. Also has support for filtering the newly inserted, updated, and deleted objects in the passed editing context or any parent editing contexts as well as specifying prefetching key paths. Note that only NEW objects are supported in parent editing contexts.

Parameters:
editingContext editing context to fetch it into
entityName name of the entity
qualifier qualifier
prefetchKeyPaths prefetching key paths
includeNewObjects option to include newly inserted objects in the result set
includeNewObjectsInParentEditingContext option to include newly inserted objects in parent editing contexts. if true, the editing context lineage is explored, any newly-inserted objects matching the qualifier are collected and faulted down through all parent editing contexts of ec.
filterUpdatedObjects option to include updated objects that now match the qualifier or remove updated objects thats no longer match the qualifier
removeDeletedObjects option to remove objects that have been deleted
Returns:
array of objects matching the constructed qualifier

static NSArray objectsWithQualifier ( EOEditingContext  _editingContext,
String  _entityName,
EOQualifier  _qualifier,
NSArray  _prefetchKeyPaths,
boolean  _includeNewObjects,
boolean  _includeNewObjectsInParentEditingContext 
) [static]

static NSArray objectsWithQualifier ( EOEditingContext  ec,
String  entityName,
EOQualifier  qualifier,
NSArray  prefetchKeyPaths,
boolean  includeNewObjects 
) [static]

Calls objectsWithQualifier(ec, entityName, qualifier, prefetchKeyPaths, includeNewObjects, false).

That is, passes false for includeNewObjectsInParentEditingContexts. This method exists to maintain API compatability.

static NSArray objectsWithQualifierFormat ( EOEditingContext  ec,
String  entityName,
String  qualifierFormat,
NSArray  args,
NSArray  prefetchKeyPaths,
boolean  includeNewObjects,
boolean  includeNewObjectsInParentEditingContexts 
) [static]

Enhanced version of the utility method found in EOUtilities. Adds support for including newly created objects in the fetch as well as prefetching key paths.

Parameters:
ec editing context to fetch it into
entityName name of the entity
qualifierFormat format of the qualifier string
args qualifier arguments
prefetchKeyPaths prefetching key paths
includeNewObjects option to include newly inserted objects in the result set
includeNewObjectsInParentEditingContexts option to include newly inserted objects in parent editing contexts
Returns:
array of objects matching the constructed qualifier

static NSArray objectsWithQualifierFormat ( EOEditingContext  ec,
String  entityName,
String  qualifierFormat,
NSArray  args,
NSArray  prefetchKeyPaths,
boolean  includeNewObjects 
) [static]

Calls objectsWithQualifierFormat(ec, entityName, qualifierFormat, args, prefetchKeyPaths, includeNewObjects, false)

That is, passes false for includeNewObjectsInParentEditingContexts. This method exists to maintain API compatability.

static EOEnterpriseObject objectWithPrimaryKeyValue ( EOEditingContext  ec,
String  entityName,
Object  primaryKeyValue,
NSArray  prefetchingKeyPaths,
boolean  refreshRefetchedObjects 
) [static]

Fetches an enterprise object based on a given primary key value. This method has an advantage over the standard EOUtilities method in that you can specify prefetching key paths as well as refreshing the snapshot of the given object

Parameters:
ec editing context to fetch into
entityName name of the entity
primaryKeyValue primary key value. Compound primary keys are given as NSDictionaries.
prefetchingKeyPaths key paths to fetch off of the eo
refreshRefetchedObjects if true, the object will be refetched and refreshed
Returns:
enterprise object matching the given value or null if none is foudn
Exceptions:
IllegalStateException if the entity has a compound key and only one key is provided or if more than one object is found matching the value.

static EOEnterpriseObject objectWithPrimaryKeyValue ( EOEditingContext  ec,
String  entityName,
Object  primaryKeyValue,
NSArray  prefetchingKeyPaths 
) [static]

Fetches an enterprise object based on a given primary key value. This method has an advantage over the standard EOUtilities method in that you can specify prefetching key paths as well as refreshing the snapshot of the given object

Parameters:
ec editing context to fetch into
entityName name of the entity
primaryKeyValue primary key value. Compound primary keys are given as NSDictionaries.
prefetchingKeyPaths key paths to fetch off of the eo
Returns:
enterprise object matching the given value

static EOEnterpriseObject objectWithQualifier ( EOEditingContext  editingContext,
String  entityName,
EOQualifier  qualifier 
) [static]

Returns the single object of the given type matching the qualifier.

Parameters:
editingContext the editing context to look in
entityName the name of the entity to look for
qualifier the qualifier to restrict by
Returns:
the single object of the given type matching the qualifier or null if no matching object found
Exceptions:
MoreThanOneException if more than one object matches the qualifier

static EOQualifier orQualifier ( EOQualifier  q1,
EOQualifier  q2 
) [static]

Joins the given qualifiers with an OR. One or both arguments may be null, if both are null, null is returned.

Parameters:
q1 
q2 

static EOQualifier orQualifierForKeyPaths ( NSArray  keyPaths,
NSSelector  selector,
NSArray  values 
) [static]

Creates an OR qualifier with the given selector for all the given key paths and all the given serach terms. If you want LIKE matches, you need to the add "*" yourself.

Parameters:
keyPaths 
selector 
values 

static EOQualifier orQualifierForKeyPaths ( NSArray  keyPaths,
NSSelector  selector,
Object  value 
) [static]

Creates an OR qualifier with the given selector for all the given key paths. If you want LIKE matches, you need to the add "*" yourself.

Parameters:
keyPaths 
selector 
value 

static NSArray primaryKeyArrayForObject ( EOEnterpriseObject  obj  )  [static]

Gives the primary key array for a given enterprise object. This has the advantage of not firing the fault of the object, unlike the method in EOUtilities.

Parameters:
obj enterprise object to get the primary key array from.
Returns:
array of all the primary key values for the object.

static NSDictionary<String, Object> primaryKeyDictionaryForString ( EOEditingContext  ec,
String  entityName,
String  string 
) [static]

Returns the decoded dictionary for an propertylist encoded string representation of the primary key for a given object.

Returns:
string representation of the primary key of the object.

static EOFetchSpecification primaryKeyFetchSpecificationForEntity ( EOEditingContext  ec,
String  entityName,
EOQualifier  eoqualifier,
NSArray< EOSortOrdering >  sortOrderings,
NSArray< String additionalKeys 
) [static]

Constructs a fetch specification that will only fetch the primary keys for a given qualifier.

Parameters:
ec editing context, only used to determine the entity
entityName name of the entity, only used to determine the entity
eoqualifier to construct the fetch spec with
sortOrderings array of sort orderings to sort the result set with.
additionalKeys array of additional key paths to construct the raw rows key paths to fetch.
Returns:
fetch specification that can be used to fetch primary keys for a given qualifier and sort orderings.

static Object primaryKeyObjectForObject ( EOEnterpriseObject  eo  )  [static]

Returns either the single object the PK consist of or the NSArray of its values if the key is compound.

Parameters:
eo object to get the primary key for.
Returns:
single object or NSArray

static NSArray primaryKeysMatchingQualifier ( EOEditingContext  ec,
String  entityName,
EOQualifier  eoqualifier,
NSArray< EOSortOrdering >  sortOrderings 
) [static]

Fetches an array of primary keys matching a given qualifier and sorted with a given array of sort orderings.

Parameters:
ec editing context to fetch into
entityName name of the entity
eoqualifier to restrict matching primary keys
sortOrderings array of sort orders to sort result set
Returns:
array of primary keys matching a given qualifier

static String primaryKeyStringForGlobalID ( EOKeyGlobalID  gid  )  [static]

Returns the propertylist-encoded string representation of the global ID.

Parameters:
gid the global id of the oject to get the primary key for.
Returns:
string representation of the primary key of the object.

static String primaryKeyStringForObject ( EOEnterpriseObject  eo  )  [static]

Returns the propertylist-encoded string representation of the primary key for a given object.

Parameters:
eo object to get the primary key for.
Returns:
string representation of the primary key of the object.

static NSArray primaryKeyValuesInRange ( EOEditingContext  ec,
EOFetchSpecification  spec,
int  start,
int  end 
) [static]

Returns an NSArray containing the primary keys from the resulting rows starting at start and stopping at end using a custom SQL, derived from the SQL which the EOFetchSpecification would use normally setHints()

Parameters:
ec editingcontext to fetch objects into
spec fetch specification for the fetch
start 
end 
Returns:
primary keys in the given range

static EOQualifier qualifierMatchingAnyKey ( NSArray  keys,
NSSelector  selector,
Object  value 
) [static]

Creates an OR qualifier of EOKeyValueQualifiers for every keypath in the given array of keys. This is useful when trying to find a string in a set of attributes.

Parameters:
keys 
selector 
value 
Author:
ak

static void refaultObject ( EOEnterpriseObject  eo  )  [static]

Turns a given enterprise object back into a fault.

Parameters:
eo enterprise object to refault

static NSDictionary<String, Integer> registeredObjectCount ( EOEditingContext  ec  )  [static]

Returns the count of registered objects in the EC grouped by entity name, which is useful for memory debugging. Put this in a log on session.sleep() for example.

Parameters:
ec editing context to get count of
Returns:
dictionary of counts

static EOEnterpriseObject requiredObjectWithQualifier ( EOEditingContext  editingContext,
String  entityName,
EOQualifier  qualifier 
) [static]

Returns the single object of the given type matching the qualifier.

Parameters:
editingContext the editing context to look in
entityName the name of the entity to look for
qualifier the qualifier to restrict by
Returns:
he single object of the given type matching the qualifier
Exceptions:
EOObjectNotAvailableException if no objects match the qualifier
MoreThanOneException if more than one object matches the qualifier

static EOEntity rootEntity ( EOEnterpriseObject  eo  )  [static]

Returns the root entity from the EOEnterpriseObject

Parameters:
eo the EOEnterpriseObject from which to the the root entity
Returns:
the root entity from the EOEnterpriseObject

static String rootEntityName ( EOEnterpriseObject  eo  )  [static]

Returns the name from the root entity from the EOEnterpriseObject

Parameters:
eo the EOEnterpriseObject from which to the the root entity
Returns:
the name from the root entity from the EOEnterpriseObject

static EOFetchSpecification schemaBasedFetchSpecification ( EOEditingContext  ec,
EOFetchSpecification  fetchSpecification 
) [static]

Useful for ensuring a fetch specification is safe to pass around between threads and not having to be concerned about references to EOs in the qualifier.

Parameters:
ec a locked EOEditingContext that can be used for getting the entity
fetchSpecification 
Returns:
a clone of the fetchSpecification with the EOQualifier converted to a schema-based qualifier, or the original fetchSpec if the fetchSpec has no qualifier

static EOQualifier schemaBasedQualifier ( EOEditingContext  ec,
String  entityName,
EOQualifier  qualifier 
) [static]

Useful for ensuring a qualifier is safe to pass around between threads and not having to be concerned about references to EOs in it. Also handy to verify that an EOQualifier can be used in a database fetch.

Parameters:
ec a locked EOEditingContext that can be used for getting the entity
entityName the entity being qualified
qualifier original qualifier
Returns:
a schema based qualifier that contains no references to EOEnterpriseObjects

static EOEnterpriseObject sharedObjectMatchingKeyAndValue ( String  entityName,
String  key,
Object  value 
) [static]

Finds an object in the shared editing context matching a key and value. This has the benifit of not requiring a database round trip if the entity is shared.

Parameters:
entityName name of the shared entity
key to match against
value value to match
Returns:
matching shared object

static NSArray sharedObjectsForEntityNamed ( String  entityName  )  [static]

Gets all of the shared objects for a given entity name. Note that if the shared objects for the corresponding model have not been loaded yet, this method will trigger their loading (unless automatic loading has been disabled via a call to com.webobjects.eoaccess.EODatabaseContext#setSharedObjectLoadingEnabled(boolean)). Returns an empty array if no shared objects were found.

Parameters:
entityName name of the shared entity
Returns:
array of bound shared objects for the given entity name, or an empty array

static NSArray sharedObjectsMatchingKeyAndValue ( String  entityName,
String  key,
Object  value 
) [static]

Finds objects in the shared editing context matching a key and value. This has the benifit of not requiring a database round trip if the entity is shared.

Parameters:
entityName name of the shared entity
key to match against
value value to match
Returns:
array of shared objects matching key and value

static NSArray sharedObjectsWithFetchSpecificationNamed ( String  entityName,
String  fetchSpecName 
) [static]

static EOEnterpriseObject sharedObjectWithFetchSpec ( String  entityName,
String  fetchSpec 
) [static]

Fetches a shared enterprise object for a given fetch specification from the default shared editing context.

Parameters:
fetchSpec name of the fetch specification on the shared object.
entityName name of the shared entity
Returns:
the shared enterprise object fetch by the fetch spec named.

static EOEnterpriseObject sharedObjectWithPrimaryKey ( String  entityName,
Object  primaryKey 
) [static]

Gets the shared enterprise object with the given primary from the default shared editing context. This has the advantage of not requiring a roundtrip to the database to lookup the object. But, it will fetch if the object is not found in the default shared editing context.

Parameters:
entityName name of the entity
primaryKey primary key of object to be found
Returns:
the shared object registered in the default shared editing context

static synchronized NSArray stringAttributeListForEntityNamed ( EOEditingContext  ec,
String  entityName 
) [static]

Calculates all of the EOAttributes of a given entity that are mapped to String objects.

Returns:
array of all attribute names that are mapped to String objects.

static void trimSpaces ( EOEnterpriseObject  object  )  [static]

Trims all values from string attributes from the given EO.

Parameters:
object 

static NSMutableArray updatedObjects ( EOEditingContext  editingContext,
NSArray< String entityNames,
EOQualifier  qualifier 
) [static]

Returns:
the array of objects of the given type that have been updated in the editing context and match the given qualifier. Returns an empty array if no objects match.
Parameters:
editingContext the editing context to look in
entityNames the names of the entity to look for
qualifier the qualifier to restrict by

static void validateUniquenessOf ( String  entityName,
EOEnterpriseObject  eo,
String...  keys 
) [static]

Convinience method which passes null for restrictingQualifier.

Parameters:
eo the EOEnterpriseObject to validate
keys an arbitrary number of keyPaths to validate.
entityName the name of the entity to check. Defaults to eo.entityName(). It can be necessary to set this to the name of the parent entity when using single table inheritance.
Author:
th

static void validateUniquenessOf ( EOEnterpriseObject  eo,
String...  keys 
) [static]

Convinience method which passes null for restrictingQualifier and entityName.

Parameters:
eo the EOEnterpriseObject to validate
keys an arbitrary number of keyPaths to validate.
Author:
th

static void validateUniquenessOf ( EOEnterpriseObject  eo,
EOQualifier  restrictingQualifier,
String...  keys 
) [static]

Convinience method which passes null for entityName.

Parameters:
eo the EOEnterpriseObject to validate
restrictingQualifier an optional resticting qualifier to exclude certain objects from the check
keys an arbitrary number of keyPaths to validate.
Author:
th

static void validateUniquenessOf ( String  entityName,
EOEnterpriseObject  eo,
EOQualifier  restrictingQualifier,
String...  keys 
) [static]

Validates whether the values of the specified keyPaths are unique for an Entity. Throws a ERXValidationException if there is already an EO with the same values on the given key paths.

Should be combined with a constraint on the corresponding database columns.

Based on Zak Burke's idea he posted to WOCode a while ago.

Use in validateForSave like this:

       ...
       public class WikiPage extends _WikiPage {
       ...
       	public void validateForSave() throws ValidationException {
       		super.validateForSave();
       		ERXEOControlUtilities.validateUniquenessOf(null, this, ERXQ.equals("active", true), "title", "wiki");
       	}
       ...
       }
 

Combine with entries in ValidationTemplate.strings like:

 "WikiPage.title,space.UniquenessViolationNewObject" = "The page cannot be created. There is already a page named <b>@value.title@</b> in Wiki <b>@value.wiki.name@</b>.";
 "WikiPage.title,space.UniquenessViolationExistingObject" = "The page cannot be changed this way. There is already a page named <b>@value.title@</b> in Wiki <b>@value.wiki.name@</b>.";
 

Parameters:
eo the EOEnterpriseObject to validate
keys an arbitrary number of keyPaths to validate.
restrictingQualifier an optional resticting qualifier to exclude certain objects from the check
entityName the name of the entity to check. Defaults to eo.entityName(). It can be necessary to set this to the name of the parent entity when using single table inheritance.
Exceptions:
ERXValidationException if an EO with the same property values already exists. If you specify more than one keyPath to validate, the 'key' property will be a comma separated string of the provided keyPaths. 'value' will be a dictionary with the supplied keyPaths as keys and the values corresponding to these keys in the supplied eo as values.
Author:
th


Member Data Documentation

Caches the string attribute keys on a per entity name basis

final Logger log = Logger.getLogger(ERXEOControlUtilities.class) [static]

logging support


The documentation for this class was generated from the following file:

Generated on Sat May 26 06:43:10 2012 for Project Wonder by  doxygen 1.5.8