Previous | Next | WireHose Developers Guide |
The best way to handle multiple affiliates in your code is to not make any assumptions about whether or not subentities are available. This section provides some techniques you should follow in your own code.
To model an entity which may become the parent of affiliate-based subentities, set the entity so it is not abstract and does not have a restricting qualifier on the affiliate property. WireHose will add the appropriate restricting qualifier to the parent entity when creating the first subentity.
WHEnterpriseObject provides the
createAndInsertInstance(EOEditingContext, String entityName,
String affiliateName)
utility method, which functions
similarly to the one defined in EOUtilities. The WireHose version
provides an additional parameter, affiliateName, which is used to
specify the affiliate the newly created instance should belong
to.
If there is an affiliate-based subentity available for the specified entity, then the returned object will be of that entity, otherwise it will be of the specified entity. In either case, the affiliate property will be set on the newly created object if the entity has a class property named "affiliate".
If you are fetching objects which belong to a specific affiliate, check for the existence of an affiliate-based subentity like this:
EOEditingContext ec; // assume exists EOFetchSpecification fetchSpec; // assume exists String affiliateName = "MyAffiliate"; String entityName = "SomeEntity"; String entityToFetch = WHEnterpriseObject.subEntityNameForAffiliate(entityName, affiliateName); if (EOUtilities.modelGroup(ec).entityNamed(entityToFetch) == null) { entityToFetch = entityName; } fetchSpec.setEntity(entityToFetch); NSArray objs = ec.objectsWithFetchSpecification(fetchSpec);
Copyright ©2000-2003 Gary Teter. All rights reserved. WireHose is a trademark of Gary Teter.