You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2009/09/26 01:36:14 UTC
svn commit: r819067 [1/3] - in /ofbiz/trunk/framework:
base/src/org/ofbiz/base/util/ entity/src/META-INF/services/
entity/src/org/ofbiz/entity/
Author: adrianc
Date: Fri Sep 25 23:36:13 2009
New Revision: 819067
URL: http://svn.apache.org/viewvc?rev=819067&view=rev
Log:
Refactored GenericDelegator.java based on a design proposed by Adam Heath on the dev mailing list.
DelegatorInterface.java has been replaced by Delegator.java.
Added:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java (with props)
ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory (with props)
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java (with props)
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java (with props)
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactoryImpl.java (with props)
Removed:
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorInterface.java
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java
ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java
Added: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java?rev=819067&view=auto
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java (added)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java Fri Sep 25 23:36:13 2009
@@ -0,0 +1,32 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+package org.ofbiz.base.util;
+
+/** Factory interface. */
+public interface Factory<T> {
+
+ /** Returns an instance of <code>T</code>.
+ *
+ * @param obj Optional object to be used in <code>T</code>'s construction,
+ * or to be used as a selector key
+ * @return An instance of <code>T</code>
+ */
+ public T getInstance(Object obj);
+
+}
Propchange: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java?rev=819067&r1=819066&r2=819067&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java Fri Sep 25 23:36:13 2009
@@ -23,6 +23,8 @@
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.io.InputStream;
+import java.util.Iterator;
+import javax.imageio.spi.ServiceRegistry;
/**
* UtilObject
@@ -171,4 +173,17 @@
if (o1 == null) return 0;
return o1.hashCode();
}
+
+ @SuppressWarnings("unchecked")
+ public static <T> T getObjectFromFactory(Class<T> factoryInterface, Object obj) throws ClassNotFoundException {
+ Iterator<Factory<T>> it = (Iterator<Factory<T>>) ServiceRegistry.lookupProviders(factoryInterface);
+ while (it.hasNext()) {
+ Factory<T> factory = it.next();
+ T instance = factory.getInstance(obj);
+ if (instance != null) {
+ return instance;
+ }
+ }
+ throw new ClassNotFoundException(factoryInterface.getClass().getName());
+ }
}
Added: ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory?rev=819067&view=auto
==============================================================================
--- ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory (added)
+++ ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory Fri Sep 25 23:36:13 2009
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+org.ofbiz.entity.DelegatorFactoryImpl
Propchange: ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange: ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java?rev=819067&view=auto
==============================================================================
--- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java (added)
+++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java Fri Sep 25 23:36:13 2009
@@ -0,0 +1,1843 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.ofbiz.entity;
+
+import java.net.URL;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.ofbiz.entity.cache.Cache;
+import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.datasource.GenericHelper;
+import org.ofbiz.entity.eca.EntityEcaHandler;
+import org.ofbiz.entity.model.DynamicViewEntity;
+import org.ofbiz.entity.model.ModelEntity;
+import org.ofbiz.entity.model.ModelFieldType;
+import org.ofbiz.entity.model.ModelFieldTypeReader;
+import org.ofbiz.entity.model.ModelGroupReader;
+import org.ofbiz.entity.model.ModelReader;
+import org.ofbiz.entity.util.DistributedCacheClear;
+import org.ofbiz.entity.util.EntityCrypto;
+import org.ofbiz.entity.util.EntityFindOptions;
+import org.ofbiz.entity.util.EntityListIterator;
+import org.ofbiz.entity.util.SequenceUtil;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.xml.sax.SAXException;
+
+public interface Delegator {
+
+ public void clearAllCacheLinesByDummyPK(Collection<GenericPK> dummyPKs);
+
+ public void clearAllCacheLinesByValue(Collection<GenericValue> values);
+
+ /**
+ * This method is a shortcut to completely clear all entity engine caches.
+ * For performance reasons this should not be called very often.
+ */
+ public void clearAllCaches();
+
+ public void clearAllCaches(boolean distribute);
+
+ /**
+ * Remove a CACHED Generic Entity from the cache by its primary key, does
+ * NOT check to see if the passed GenericPK is a complete primary key. Also
+ * tries to clear the corresponding all cache entry.
+ *
+ * @param primaryKey
+ * The primary key to clear by.
+ */
+ public void clearCacheLine(GenericPK primaryKey);
+
+ public void clearCacheLine(GenericPK primaryKey, boolean distribute);
+
+ /**
+ * Remove a CACHED GenericValue from as many caches as it can. Automatically
+ * tries to remove entries from the all cache, the by primary key cache, and
+ * the by and cache. This is the ONLY method that tries to clear
+ * automatically from the by and cache.
+ *
+ * @param value
+ * The GenericValue to clear by.
+ */
+ public void clearCacheLine(GenericValue value);
+
+ public void clearCacheLine(GenericValue value, boolean distribute);
+
+ /**
+ * Remove all CACHED Generic Entity (List) from the cache
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ */
+ public void clearCacheLine(String entityName);
+
+ /**
+ * Remove a CACHED Generic Entity (List) from the cache, either a PK, ByAnd,
+ * or All
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ */
+ public void clearCacheLine(String entityName, Map<String, ? extends Object> fields);
+
+ /**
+ * Remove a CACHED Generic Entity (List) from the cache, either a PK, ByAnd,
+ * or All
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ */
+ public void clearCacheLine(String entityName, Object... fields);
+
+ public void clearCacheLineByCondition(String entityName, EntityCondition condition);
+
+ public void clearCacheLineByCondition(String entityName, EntityCondition condition, boolean distribute);
+
+ /**
+ * Remove a CACHED Generic Entity from the cache by its primary key. Checks
+ * to see if the passed GenericPK is a complete primary key, if it is then
+ * the cache line will be removed from the primaryKeyCache; if it is NOT a
+ * complete primary key it will remove the cache line from the andCache. If
+ * the fields map is empty, then the allCache for the entity will be
+ * cleared.
+ *
+ * @param dummyPK
+ * The dummy primary key to clear by.
+ */
+ public void clearCacheLineFlexible(GenericEntity dummyPK);
+
+ public void clearCacheLineFlexible(GenericEntity dummyPK, boolean distribute);
+
+ public GenericDelegator cloneDelegator();
+
+ public GenericDelegator cloneDelegator(String delegatorName);
+
+ /**
+ * Creates a Entity in the form of a GenericValue and write it to the
+ * datasource
+ *
+ * @param primaryKey
+ * The GenericPK to create a value in the datasource from
+ * @return GenericValue instance containing the new instance
+ */
+ public GenericValue create(GenericPK primaryKey) throws GenericEntityException;
+
+ /**
+ * Creates a Entity in the form of a GenericValue and write it to the
+ * datasource
+ *
+ * @param primaryKey
+ * The GenericPK to create a value in the datasource from
+ * @param doCacheClear
+ * boolean that specifies whether to clear related cache entries
+ * for this primaryKey to be created
+ * @return GenericValue instance containing the new instance
+ */
+ public GenericValue create(GenericPK primaryKey, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Creates a Entity in the form of a GenericValue and write it to the
+ * datasource
+ *
+ * @param value
+ * The GenericValue to create a value in the datasource from
+ * @return GenericValue instance containing the new instance
+ */
+ public GenericValue create(GenericValue value) throws GenericEntityException;
+
+ /**
+ * Creates a Entity in the form of a GenericValue and write it to the
+ * datasource
+ *
+ * @param value
+ * The GenericValue to create a value in the datasource from
+ * @param doCacheClear
+ * boolean that specifies whether or not to automatically clear
+ * cache entries related to this operation
+ * @return GenericValue instance containing the new instance
+ */
+ public GenericValue create(GenericValue value, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Creates a Entity in the form of a GenericValue and write it to the
+ * database
+ *
+ * @return GenericValue instance containing the new instance
+ */
+ public GenericValue create(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * Creates a Entity in the form of a GenericValue and write it to the
+ * database
+ *
+ * @return GenericValue instance containing the new instance
+ */
+ public GenericValue create(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * Creates or stores an Entity
+ *
+ * @param value
+ * The GenericValue instance containing the new or existing
+ * instance
+ * @return GenericValue instance containing the new or updated instance
+ */
+ public GenericValue createOrStore(GenericValue value) throws GenericEntityException;
+
+ /**
+ * Creates or stores an Entity
+ *
+ * @param value
+ * The GenericValue instance containing the new or existing
+ * instance
+ * @param doCacheClear
+ * boolean that specifies whether or not to automatically clear
+ * cache entries related to this operation
+ * @return GenericValue instance containing the new or updated instance
+ */
+ public GenericValue createOrStore(GenericValue value, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Sets the sequenced ID (for entity with one primary key field ONLY), and
+ * then does a create in the database as normal. The reason to do it this
+ * way is that it will retry and fix the sequence if somehow the sequencer
+ * is in a bad state and returning a value that already exists.
+ *
+ * @param value
+ * The GenericValue to create a value in the datasource from
+ * @return GenericValue instance containing the new instance
+ */
+ public GenericValue createSetNextSeqId(GenericValue value) throws GenericEntityException;
+
+ /**
+ * Creates a Entity in the form of a GenericValue and write it to the
+ * database
+ *
+ * @return GenericValue instance containing the new instance
+ */
+ public GenericValue createSingle(String entityName, Object singlePkValue) throws GenericEntityException;
+
+ public void decryptFields(GenericEntity entity) throws GenericEntityException;
+
+ public void decryptFields(List<? extends GenericEntity> entities) throws GenericEntityException;
+
+ public void encryptFields(GenericEntity entity) throws GenericEntityException;
+
+ public void encryptFields(List<? extends GenericEntity> entities) throws GenericEntityException;
+
+ public Object encryptFieldValue(String entityName, Object fieldValue) throws EntityCryptoException;
+
+ /**
+ * Finds GenericValues by the conditions specified in the EntityCondition
+ * object, the the EntityCondition javadoc for more details. NOTE 20080502:
+ * 3 references
+ *
+ * @param entityName
+ * The name of the Entity as defined in the entity XML file
+ * @param whereEntityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query before any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param havingEntityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query after any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param fieldsToSelect
+ * The fields of the named entity to get from the database; if
+ * empty or null all fields will be retreived
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @param findOptions
+ * An instance of EntityFindOptions that specifies advanced query
+ * options. See the EntityFindOptions JavaDoc for more details.
+ * @return EntityListIterator representing the result of the query: NOTE
+ * THAT THIS MUST BE CLOSED (preferably in a finally block) WHEN YOU
+ * ARE DONE WITH IT, AND DON'T LEAVE IT OPEN TOO LONG BEACUSE IT
+ * WILL MAINTAIN A DATABASE CONNECTION.
+ */
+ public EntityListIterator find(String entityName, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition, Set<String> fieldsToSelect, List<String> orderBy, EntityFindOptions findOptions) throws GenericEntityException;
+
+ /**
+ * Finds all Generic entities NOTE 20080502: 14 references; all changed to
+ * findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @return List containing all Generic entities
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findAll(String entityName) throws GenericEntityException;
+
+ /**
+ * Finds all Generic entities NOTE 20080502: 10 references; all changed to
+ * findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List containing all Generic entities
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findAll(String entityName, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds all Generic entities NOTE 20080502: 0 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List containing all Generic entities
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findAll(String entityName, String... orderBy) throws GenericEntityException;
+
+ /**
+ * Find a number of Generic Value objects by their Primary Keys, all at once
+ * NOTE 20080502: 0 references
+ *
+ * @param primaryKeys
+ * A Collection of primary keys to find by.
+ * @return List of GenericValue objects corresponding to the passed
+ * primaryKey objects
+ * @deprecated
+ */
+ @Deprecated
+ public List<GenericValue> findAllByPrimaryKeys(Collection<GenericPK> primaryKeys) throws GenericEntityException;
+
+ /**
+ * Find a number of Generic Value objects by their Primary Keys, all at
+ * once; this first looks in the local cache for each PK and if there then
+ * it puts it in the return list rather than putting it in the batch to send
+ * to a given helper. NOTE 20080502: 0 references
+ *
+ * @param primaryKeys
+ * A Collection of primary keys to find by.
+ * @return List of GenericValue objects corresponding to the passed
+ * primaryKey objects
+ * @deprecated
+ */
+ @Deprecated
+ public List<GenericValue> findAllByPrimaryKeysCache(Collection<GenericPK> primaryKeys) throws GenericEntityException;
+
+ /**
+ * Finds all Generic entities, looking first in the cache NOTE 20080502: 4
+ * references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @return List containing all Generic entities
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findAllCache(String entityName) throws GenericEntityException;
+
+ /**
+ * Finds all Generic entities, looking first in the cache; uses orderBy for
+ * lookup, but only keys results on the entityName and fields NOTE 20080502:
+ * 2 references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List containing all Generic entities
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findAllCache(String entityName, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds all Generic entities, looking first in the cache; uses orderBy for
+ * lookup, but only keys results on the entityName and fields NOTE 20080502:
+ * 0 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List containing all Generic entities
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findAllCache(String entityName, String... orderBy) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified expressions (ie:
+ * combined using AND) NOTE 20080502: 11 references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param expressions
+ * The expressions to use for the lookup, each consisting of at
+ * least a field name, an EntityOperator, and a value to compare
+ * to
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public <T extends EntityCondition> List<GenericValue> findByAnd(String entityName, List<T> expressions) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified expressions (ie:
+ * combined using AND) NOTE 20080502: 24 references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param expressions
+ * The expressions to use for the lookup, each consisting of at
+ * least a field name, an EntityOperator, and a value to compare
+ * to
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public <T extends EntityCondition> List<GenericValue> findByAnd(String entityName, List<T> expressions, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using AND) NOTE 20080502: 264 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return List of GenericValue instances that match the query
+ */
+ public List<GenericValue> findByAnd(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using AND) NOTE 20080502: 72 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List of GenericValue instances that match the query
+ */
+ public List<GenericValue> findByAnd(String entityName, Map<String, ? extends Object> fields, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using AND) NOTE 20080502: 1 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return List of GenericValue instances that match the query
+ */
+ public List<GenericValue> findByAnd(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified expressions (ie:
+ * combined using AND) NOTE 20080502: 0 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param expressions
+ * The expressions to use for the lookup, each consisting of at
+ * least a field name, an EntityOperator, and a value to compare
+ * to
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public <T extends EntityCondition> List<GenericValue> findByAnd(String entityName, T... expressions) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using AND), looking first in the cache; uses orderBy for lookup, but only
+ * keys results on the entityName and fields NOTE 20080502: 91 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return List of GenericValue instances that match the query
+ */
+ public List<GenericValue> findByAndCache(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using AND), looking first in the cache; uses orderBy for lookup, but only
+ * keys results on the entityName and fields NOTE 20080502: 56 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List of GenericValue instances that match the query
+ */
+ public List<GenericValue> findByAndCache(String entityName, Map<String, ? extends Object> fields, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using AND), looking first in the cache; uses orderBy for lookup, but only
+ * keys results on the entityName and fields NOTE 20080502: 0 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByAndCache(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * Finds GenericValues by the conditions specified in the EntityCondition
+ * object, the the EntityCondition javadoc for more details. NOTE 20080502:
+ * 64 references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity model XML file
+ * @param entityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query
+ * @param fieldsToSelect
+ * The fields of the named entity to get from the database; if
+ * empty or null all fields will be retreived
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List of GenericValue objects representing the result
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByCondition(String entityName, EntityCondition entityCondition, Collection<String> fieldsToSelect, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds GenericValues by the conditions specified in the EntityCondition
+ * object, the the EntityCondition javadoc for more details. NOTE 20080502:
+ * 6 references; all changed to findList
+ *
+ * @param entityName
+ * The name of the Entity as defined in the entity XML file
+ * @param whereEntityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query before any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param havingEntityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query after any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param fieldsToSelect
+ * The fields of the named entity to get from the database; if
+ * empty or null all fields will be retreived
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @param findOptions
+ * An instance of EntityFindOptions that specifies advanced query
+ * options. See the EntityFindOptions JavaDoc for more details.
+ * @return List of GenericValue objects representing the result
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByCondition(String entityName, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition, Collection<String> fieldsToSelect, List<String> orderBy, EntityFindOptions findOptions) throws GenericEntityException;
+
+ /**
+ * Finds GenericValues by the conditions specified in the EntityCondition
+ * object, looking first in the cache, see the EntityCondition javadoc for
+ * more details. NOTE 20080502: 17 references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity model XML file
+ * @param entityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query
+ * @param fieldsToSelect
+ * The fields of the named entity to get from the database; if
+ * empty or null all fields will be retreived
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List of GenericValue objects representing the result
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByConditionCache(String entityName, EntityCondition entityCondition, Collection<String> fieldsToSelect, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * NOTE 20080502: 1 references; all changed to findList
+ *
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByLike(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * NOTE 20080502: 1 references; all changed to findList
+ *
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByLike(String entityName, Map<String, ? extends Object> fields, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * NOTE 20080502: 0 references
+ *
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByLike(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified expressions (ie:
+ * combined using OR) NOTE 20080502: 2 references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param expressions
+ * The expressions to use for the lookup, each consisting of at
+ * least a field name, an EntityOperator, and a value to compare
+ * to
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public <T extends EntityCondition> List<GenericValue> findByOr(String entityName, List<T> expressions) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified expressions (ie:
+ * combined using OR) NOTE 20080502: 0 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param expressions
+ * The expressions to use for the lookup, each consisting of at
+ * least a field name, an EntityOperator, and a value to compare
+ * to
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public <T extends EntityCondition> List<GenericValue> findByOr(String entityName, List<T> expressions, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using OR) NOTE 20080502: 1 references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByOr(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using OR) NOTE 20080502: 1 references; all changed to findList
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByOr(String entityName, Map<String, ? extends Object> fields, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified fields (ie: combined
+ * using OR) NOTE 20080502: 0 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public List<GenericValue> findByOr(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * Finds Generic Entity records by all of the specified expressions (ie:
+ * combined using OR) NOTE 20080502: 0 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param expressions
+ * The expressions to use for the lookup, each consisting of at
+ * least a field name, an EntityOperator, and a value to compare
+ * to
+ * @return List of GenericValue instances that match the query
+ * @deprecated Use findList() instead
+ */
+ @Deprecated
+ public <T extends EntityCondition> List<GenericValue> findByOr(String entityName, T... expressions) throws GenericEntityException;
+
+ /**
+ * Find a Generic Entity by its Primary Key NOTE 20080502: 15 references;
+ * all changed to findOne
+ *
+ * @param primaryKey
+ * The primary key to find by.
+ * @return The GenericValue corresponding to the primaryKey
+ * @deprecated Use findOne() instead
+ */
+ @Deprecated
+ public GenericValue findByPrimaryKey(GenericPK primaryKey) throws GenericEntityException;
+
+ /**
+ * Find a Generic Entity by its Primary Key NOTE 20080502: 550 references
+ * (20080503 521 left); needs to be deprecated, should use findOne instead,
+ * but lots of stuff to replace!
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return The GenericValue corresponding to the primaryKey
+ */
+ public GenericValue findByPrimaryKey(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * Find a Generic Entity by its Primary Key NOTE 20080502: 21 references;
+ * all changed to findOne
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return The GenericValue corresponding to the primaryKey
+ * @deprecated Use findOne() instead
+ */
+ @Deprecated
+ public GenericValue findByPrimaryKey(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * Find a CACHED Generic Entity by its Primary Key NOTE 20080502: 2
+ * references; all changed to findOne
+ *
+ * @param primaryKey
+ * The primary key to find by.
+ * @return The GenericValue corresponding to the primaryKey
+ * @deprecated Use findOne() instead
+ */
+ @Deprecated
+ public GenericValue findByPrimaryKeyCache(GenericPK primaryKey) throws GenericEntityException;
+
+ /**
+ * Find a CACHED Generic Entity by its Primary Key NOTE 20080502: 218
+ * references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return The GenericValue corresponding to the primaryKey
+ */
+ public GenericValue findByPrimaryKeyCache(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * Find a CACHED Generic Entity by its Primary Key NOTE 20080502: 2
+ * references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return The GenericValue corresponding to the primaryKey
+ */
+ public GenericValue findByPrimaryKeyCache(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * Find a CACHED Generic Entity by its Primary Key NOTE 20080502: 0
+ * references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param singlePkValue
+ * @return The GenericValue corresponding to the primaryKey
+ * @deprecated Use findOne() instead
+ */
+ @Deprecated
+ public GenericValue findByPrimaryKeyCacheSingle(String entityName, Object singlePkValue) throws GenericEntityException;
+
+ /**
+ * Find a Generic Entity by its Primary Key and only returns the values
+ * requested by the passed keys (names) NOTE 20080502: 3 references
+ *
+ * @param primaryKey
+ * The primary key to find by.
+ * @param keys
+ * The keys, or names, of the values to retrieve; only these
+ * values will be retrieved
+ * @return The GenericValue corresponding to the primaryKey
+ */
+ public GenericValue findByPrimaryKeyPartial(GenericPK primaryKey, Set<String> keys) throws GenericEntityException;
+
+ /**
+ * Find a Generic Entity by its Primary Key and only returns the values
+ * requested by the passed keys (names) NOTE 20080502: 0 references
+ *
+ * @param primaryKey
+ * The primary key to find by.
+ * @param keys
+ * The keys, or names, of the values to retrieve; only these
+ * values will be retrieved
+ * @return The GenericValue corresponding to the primaryKey
+ * @deprecated Use findByPrimaryKeyPartial(GenericPK, Set<String>) instead
+ */
+ @Deprecated
+ public GenericValue findByPrimaryKeyPartial(GenericPK primaryKey, String... keys) throws GenericEntityException;
+
+ /**
+ * Find a Generic Entity by its Primary Key NOTE 20080502: 0 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param singlePkValue
+ * @return The GenericValue corresponding to the primaryKey
+ * @deprecated Use findOne() instead
+ */
+ @Deprecated
+ public GenericValue findByPrimaryKeySingle(String entityName, Object singlePkValue) throws GenericEntityException;
+
+ /**
+ * NOTE 20080502: 3 references; all changed to findCoundByCondition
+ *
+ * @deprecated Use findCountByCondition() instead
+ */
+ @Deprecated
+ public long findCountByAnd(String entityName) throws GenericEntityException;
+
+ /**
+ * NOTE 20080502: 8 references; all changed to use findCountByCondition
+ *
+ * @deprecated Use findCountByCondition() instead
+ */
+ @Deprecated
+ public long findCountByAnd(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * NOTE 20080502: 1 references; all changed to use findCountByCondition
+ *
+ * @deprecated Use findCountByCondition() instead
+ */
+ @Deprecated
+ public long findCountByAnd(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * NOTE 20080502: 17 references; all changed to use remaining
+ * findCountByCondition
+ *
+ * @deprecated Use findCountByCondition() instead
+ */
+ @Deprecated
+ public long findCountByCondition(String entityName, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition) throws GenericEntityException;
+
+ /**
+ * NOTE 20080502: 2 references
+ */
+ public long findCountByCondition(String entityName, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition, EntityFindOptions findOptions) throws GenericEntityException;
+
+ /**
+ * Finds GenericValues by the conditions specified in the EntityCondition
+ * object, the the EntityCondition javadoc for more details. NOTE 20080502:
+ * 12 references
+ *
+ * @param entityName
+ * The name of the Entity as defined in the entity XML file
+ * @param entityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query before any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param fieldsToSelect
+ * The fields of the named entity to get from the database; if
+ * empty or null all fields will be retreived
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @param findOptions
+ * An instance of EntityFindOptions that specifies advanced query
+ * options. See the EntityFindOptions JavaDoc for more details.
+ * @return List of GenericValue objects representing the result
+ */
+ public List<GenericValue> findList(String entityName, EntityCondition entityCondition, Set<String> fieldsToSelect, List<String> orderBy, EntityFindOptions findOptions, boolean useCache) throws GenericEntityException;
+
+ /**
+ * Finds GenericValues by the conditions specified in the EntityCondition
+ * object, the the EntityCondition javadoc for more details. NOTE 20080502:
+ * 9 references
+ *
+ * @param dynamicViewEntity
+ * The DynamicViewEntity to use for the entity model for this
+ * query; generally created on the fly for limited use
+ * @param whereEntityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query before any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param havingEntityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query after any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param fieldsToSelect
+ * The fields of the named entity to get from the database; if
+ * empty or null all fields will be retreived
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @param findOptions
+ * An instance of EntityFindOptions that specifies advanced query
+ * options. See the EntityFindOptions JavaDoc for more details.
+ * @return EntityListIterator representing the result of the query: NOTE
+ * THAT THIS MUST BE CLOSED WHEN YOU ARE DONE WITH IT, AND DON'T
+ * LEAVE IT OPEN TOO LONG BEACUSE IT WILL MAINTAIN A DATABASE
+ * CONNECTION.
+ */
+ public EntityListIterator findListIteratorByCondition(DynamicViewEntity dynamicViewEntity, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition, Collection<String> fieldsToSelect, List<String> orderBy, EntityFindOptions findOptions) throws GenericEntityException;
+
+ /**
+ * Finds GenericValues by the conditions specified in the EntityCondition
+ * object, the the EntityCondition javadoc for more details. NOTE 20080502:
+ * 26 references; all changed to find
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity model XML file
+ * @param entityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query before any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param fieldsToSelect
+ * The fields of the named entity to get from the database; if
+ * empty or null all fields will be retreived
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return EntityListIterator representing the result of the query: NOTE
+ * THAT THIS MUST BE CLOSED WHEN YOU ARE DONE WITH IT, AND DON'T
+ * LEAVE IT OPEN TOO LONG BEACUSE IT WILL MAINTAIN A DATABASE
+ * CONNECTION.
+ * @deprecated Use find() instead
+ */
+ @Deprecated
+ public EntityListIterator findListIteratorByCondition(String entityName, EntityCondition entityCondition, Collection<String> fieldsToSelect, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Finds GenericValues by the conditions specified in the EntityCondition
+ * object, the the EntityCondition javadoc for more details. NOTE 20080502:
+ * 12 references; all changed to find
+ *
+ * @param entityName
+ * The name of the Entity as defined in the entity XML file
+ * @param whereEntityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query before any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param havingEntityCondition
+ * The EntityCondition object that specifies how to constrain
+ * this query after any groupings are done (if this is a view
+ * entity with group-by aliases)
+ * @param fieldsToSelect
+ * The fields of the named entity to get from the database; if
+ * empty or null all fields will be retreived
+ * @param orderBy
+ * The fields of the named entity to order the query by;
+ * optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @param findOptions
+ * An instance of EntityFindOptions that specifies advanced query
+ * options. See the EntityFindOptions JavaDoc for more details.
+ * @return EntityListIterator representing the result of the query: NOTE
+ * THAT THIS MUST BE CLOSED WHEN YOU ARE DONE WITH IT, AND DON'T
+ * LEAVE IT OPEN TOO LONG BEACUSE IT WILL MAINTAIN A DATABASE
+ * CONNECTION.
+ * @deprecated Use find() instead
+ */
+ @Deprecated
+ public EntityListIterator findListIteratorByCondition(String entityName, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition, Collection<String> fieldsToSelect, List<String> orderBy, EntityFindOptions findOptions) throws GenericEntityException;
+
+ /**
+ * Find a Generic Entity by its Primary Key NOTE 20080502: 6 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return The GenericValue corresponding to the primaryKey
+ */
+ public GenericValue findOne(String entityName, boolean useCache, Object... fields) throws GenericEntityException;
+
+ /**
+ * Find a Generic Entity by its Primary Key NOTE 20080502: 6 references
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return The GenericValue corresponding to the primaryKey
+ */
+ public GenericValue findOne(String entityName, Map<String, ? extends Object> fields, boolean useCache) throws GenericEntityException;
+
+ public Cache getCache();
+
+ public String getDelegatorName();
+
+ public EntityEcaHandler getEntityEcaHandler();
+
+ /**
+ * Gets a field type instance by name from the helper that corresponds to
+ * the specified entity
+ *
+ * @param entity
+ * The entity
+ * @param type
+ * The name of the type
+ * @return ModelFieldType instance for the named type from the helper that
+ * corresponds to the specified entity
+ */
+ public ModelFieldType getEntityFieldType(ModelEntity entity, String type) throws GenericEntityException;
+
+ /**
+ * Gets field type names from the helper that corresponds to the specified
+ * entity
+ *
+ * @param entity
+ * The entity
+ * @return Collection of field type names from the helper that corresponds
+ * to the specified entity
+ */
+ public Collection<String> getEntityFieldTypeNames(ModelEntity entity) throws GenericEntityException;
+
+ /**
+ * Gets the helper name that corresponds to this delegator and the specified
+ * entityName
+ *
+ * @param entityName
+ * The name of the entity to get the helper for
+ * @return String with the helper name that corresponds to this delegator
+ * and the specified entityName
+ */
+ public String getEntityGroupName(String entityName);
+
+ /**
+ * Gets the an instance of helper that corresponds to this delegator and the
+ * specified entity
+ *
+ * @param entity
+ * The entity to get the helper for
+ * @return GenericHelper that corresponds to this delegator and the
+ * specified entity
+ */
+ public GenericHelper getEntityHelper(ModelEntity entity) throws GenericEntityException;
+
+ /**
+ * Gets the an instance of helper that corresponds to this delegator and the
+ * specified entityName
+ *
+ * @param entityName
+ * The name of the entity to get the helper for
+ * @return GenericHelper that corresponds to this delegator and the
+ * specified entityName
+ */
+ public GenericHelper getEntityHelper(String entityName) throws GenericEntityException;
+
+ /**
+ * Gets the helper name that corresponds to this delegator and the specified
+ * entity
+ *
+ * @param entity
+ * The entity to get the helper for
+ * @return String with the helper name that corresponds to this delegator
+ * and the specified entity
+ */
+ public String getEntityHelperName(ModelEntity entity);
+
+ /**
+ * Gets the helper name that corresponds to this delegator and the specified
+ * entityName
+ *
+ * @param entityName
+ * The name of the entity to get the helper name for
+ * @return String with the helper name that corresponds to this delegator
+ * and the specified entityName
+ */
+ public String getEntityHelperName(String entityName);
+
+ public GenericValue getFromPrimaryKeyCache(GenericPK primaryKey);
+
+ /**
+ * Gets the helper name that corresponds to this delegator and the specified
+ * entityName
+ *
+ * @param groupName
+ * The name of the group to get the helper name for
+ * @return String with the helper name that corresponds to this delegator
+ * and the specified entityName
+ */
+ public String getGroupHelperName(String groupName);
+
+ /**
+ * Gets the instance of ModelEntity that corresponds to this delegator and
+ * the specified entityName
+ *
+ * @param entityName
+ * The name of the entity to get
+ * @return ModelEntity that corresponds to this delegator and the specified
+ * entityName
+ */
+ public ModelEntity getModelEntity(String entityName);
+
+ /**
+ * Gets a Map of entity name & entity model pairs that are in the named
+ * group
+ *
+ * @param groupName
+ * The name of the group
+ * @return Map of entityName String keys and ModelEntity instance values
+ */
+ public Map<String, ModelEntity> getModelEntityMapByGroup(String groupName) throws GenericEntityException;
+
+ public ModelFieldTypeReader getModelFieldTypeReader(ModelEntity entity);
+
+ /**
+ * Gets the instance of ModelGroupReader that corresponds to this delegator
+ *
+ * @return ModelGroupReader that corresponds to this delegator
+ */
+ public ModelGroupReader getModelGroupReader();
+
+ /**
+ * Gets the instance of ModelReader that corresponds to this delegator
+ *
+ * @return ModelReader that corresponds to this delegator
+ */
+ public ModelReader getModelReader();
+
+ /**
+ * Get the named Related Entity for the GenericValue from the persistent
+ * store across another Relation. Helps to get related Values in a
+ * multi-to-multi relationship. NOTE 20080502: 0 references
+ *
+ * @param relationNameOne
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file, for first relation
+ * @param relationNameTwo
+ * String containing the relation name for second relation
+ * @param value
+ * GenericValue instance containing the entity
+ * @return List of GenericValue instances as specified in the relation
+ * definition
+ * @deprecated Use getMultiRelation() instead
+ */
+ @Deprecated
+ public List<GenericValue> getMultiRelation(GenericValue value, String relationNameOne, String relationNameTwo) throws GenericEntityException;
+
+ /**
+ * Get the named Related Entity for the GenericValue from the persistent
+ * store across another Relation. Helps to get related Values in a
+ * multi-to-multi relationship. NOTE 20080502: 3 references
+ *
+ * @param relationNameOne
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file, for first relation
+ * @param relationNameTwo
+ * String containing the relation name for second relation
+ * @param value
+ * GenericValue instance containing the entity
+ * @param orderBy
+ * The fields of the named entity to order the query by; may be
+ * null; optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @return List of GenericValue instances as specified in the relation
+ * definition
+ */
+ public List<GenericValue> getMultiRelation(GenericValue value, String relationNameOne, String relationNameTwo, List<String> orderBy) throws GenericEntityException;
+
+ /**
+ * Get the next guaranteed unique seq id from the sequence with the given
+ * sequence name; if the named sequence doesn't exist, it will be created
+ *
+ * @param seqName
+ * The name of the sequence to get the next seq id from
+ * @return String with the next sequenced id for the given sequence name
+ */
+ public String getNextSeqId(String seqName);
+
+ /**
+ * Get the next guaranteed unique seq id from the sequence with the given
+ * sequence name; if the named sequence doesn't exist, it will be created
+ *
+ * @param seqName
+ * The name of the sequence to get the next seq id from
+ * @param staggerMax
+ * The maximum amount to stagger the sequenced ID, if 1 the
+ * sequence will be incremented by 1, otherwise the current
+ * sequence ID will be incremented by a value between 1 and
+ * staggerMax
+ * @return Long with the next seq id for the given sequence name
+ */
+ public String getNextSeqId(String seqName, long staggerMax);
+
+ /**
+ * Get the next guaranteed unique seq id from the sequence with the given
+ * sequence name; if the named sequence doesn't exist, it will be created
+ *
+ * @param seqName
+ * The name of the sequence to get the next seq id from
+ * @return Long with the next sequenced id for the given sequence name
+ */
+ public Long getNextSeqIdLong(String seqName);
+
+ /**
+ * Get the next guaranteed unique seq id from the sequence with the given
+ * sequence name; if the named sequence doesn't exist, it will be created
+ *
+ * @param seqName
+ * The name of the sequence to get the next seq id from
+ * @param staggerMax
+ * The maximum amount to stagger the sequenced ID, if 1 the
+ * sequence will be incremented by 1, otherwise the current
+ * sequence ID will be incremented by a value between 1 and
+ * staggerMax
+ * @return Long with the next seq id for the given sequence name
+ */
+ public Long getNextSeqIdLong(String seqName, long staggerMax);
+
+ /**
+ * Gets the name of the server configuration that corresponds to this
+ * delegator
+ *
+ * @return server configuration name
+ */
+ public String getOriginalDelegatorName();
+
+ /**
+ * Get the named Related Entity for the GenericValue from the persistent
+ * store NOTE 20080502: 1 references; all changed to use remaining
+ * getRelated
+ *
+ * @param relationName
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file
+ * @param value
+ * GenericValue instance containing the entity
+ * @return List of GenericValue instances as specified in the relation
+ * definition
+ * @deprecated Use getRelated() instead
+ */
+ @Deprecated
+ public List<GenericValue> getRelated(String relationName, GenericValue value) throws GenericEntityException;
+
+ /**
+ * Get the named Related Entity for the GenericValue from the persistent
+ * store NOTE 20080502: 5 references
+ *
+ * @param relationName
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file
+ * @param byAndFields
+ * the fields that must equal in order to keep; may be null
+ * @param orderBy
+ * The fields of the named entity to order the query by; may be
+ * null; optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @param value
+ * GenericValue instance containing the entity
+ * @return List of GenericValue instances as specified in the relation
+ * definition
+ */
+ public List<GenericValue> getRelated(String relationName, Map<String, ? extends Object> byAndFields, List<String> orderBy, GenericValue value) throws GenericEntityException;
+
+ /**
+ * Get the named Related Entity for the GenericValue from the persistent
+ * store NOTE 20080502: 1 references; all changed to use getRelated
+ *
+ * @param relationName
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file
+ * @param byAndFields
+ * the fields that must equal in order to keep; may be null
+ * @param value
+ * GenericValue instance containing the entity
+ * @return List of GenericValue instances as specified in the relation
+ * definition
+ * @deprecated Use getRelated() instead
+ */
+ @Deprecated
+ public List<GenericValue> getRelatedByAnd(String relationName, Map<String, ? extends Object> byAndFields, GenericValue value) throws GenericEntityException;
+
+ /**
+ * Get the named Related Entity for the GenericValue from the persistent
+ * store, checking first in the cache to see if the desired value is there
+ * NOTE 20080502: 4 references
+ *
+ * @param relationName
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file
+ * @param value
+ * GenericValue instance containing the entity
+ * @return List of GenericValue instances as specified in the relation
+ * definition
+ */
+ public List<GenericValue> getRelatedCache(String relationName, GenericValue value) throws GenericEntityException;
+
+ /**
+ * Get a dummy primary key for the named Related Entity for the GenericValue
+ * NOTE 20080502: 2 references
+ *
+ * @param relationName
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file
+ * @param byAndFields
+ * the fields that must equal in order to keep; may be null
+ * @param value
+ * GenericValue instance containing the entity
+ * @return GenericPK containing a possibly incomplete PrimaryKey object
+ * representing the related entity or entities
+ */
+ public GenericPK getRelatedDummyPK(String relationName, Map<String, ? extends Object> byAndFields, GenericValue value) throws GenericEntityException;
+
+ /**
+ * Get related entity where relation is of type one, uses findByPrimaryKey
+ * NOTE 20080502: 7 references
+ *
+ * @throws IllegalArgumentException
+ * if the list found has more than one item
+ */
+ public GenericValue getRelatedOne(String relationName, GenericValue value) throws GenericEntityException;
+
+ /**
+ * Get related entity where relation is of type one, uses findByPrimaryKey,
+ * checking first in the cache to see if the desired value is there NOTE
+ * 20080502: 1 references
+ *
+ * @throws IllegalArgumentException
+ * if the list found has more than one item
+ */
+ public GenericValue getRelatedOneCache(String relationName, GenericValue value) throws GenericEntityException;
+
+ /**
+ * Get the named Related Entity for the GenericValue from the persistent
+ * store NOTE 20080502: 1 references; all changed to use getRelated
+ *
+ * @param relationName
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file
+ * @param orderBy
+ * The fields of the named entity to order the query by; may be
+ * null; optionally add a " ASC" for ascending or " DESC" for
+ * descending
+ * @param value
+ * GenericValue instance containing the entity
+ * @return List of GenericValue instances as specified in the relation
+ * definition
+ * @deprecated Use getRelated() instead
+ */
+ @Deprecated
+ public List<GenericValue> getRelatedOrderBy(String relationName, List<String> orderBy, GenericValue value) throws GenericEntityException;
+
+ public void initEntityEcaHandler();
+
+ public GenericPK makePK(Element element);
+
+ /** Creates a Primary Key in the form of a GenericPK without persisting it */
+ public GenericPK makePK(String entityName);
+
+ /** Creates a Primary Key in the form of a GenericPK without persisting it */
+ public GenericPK makePK(String entityName, Map<String, ? extends Object> fields);
+
+ /** Creates a Primary Key in the form of a GenericPK without persisting it */
+ public GenericPK makePK(String entityName, Object... fields);
+
+ /** Creates a Primary Key in the form of a GenericPK without persisting it */
+ public GenericPK makePKSingle(String entityName, Object singlePkValue);
+
+ public GenericDelegator makeTestDelegator(String delegatorName);
+
+ /**
+ * Creates a Entity in the form of a GenericValue without persisting it;
+ * only valid fields will be pulled from the fields Map
+ */
+ public GenericValue makeValidValue(String entityName, Map<String, ? extends Object> fields);
+
+ /**
+ * Creates a Entity in the form of a GenericValue without persisting it;
+ * only valid fields will be pulled from the fields Map
+ */
+ public GenericValue makeValidValue(String entityName, Object... fields);
+
+ public GenericValue makeValue(Element element);
+
+ /** Creates a Entity in the form of a GenericValue without persisting it */
+ public GenericValue makeValue(String entityName);
+
+ /** Creates a Entity in the form of a GenericValue without persisting it */
+ public GenericValue makeValue(String entityName, Map<String, ? extends Object> fields);
+
+ /** Creates a Entity in the form of a GenericValue without persisting it */
+ public GenericValue makeValue(String entityName, Object... fields);
+
+ public List<GenericValue> makeValues(Document document);
+
+ /** Creates a Entity in the form of a GenericValue without persisting it */
+ public GenericValue makeValueSingle(String entityName, Object singlePkValue);
+
+ public void putAllInPrimaryKeyCache(List<GenericValue> values);
+
+ public void putInPrimaryKeyCache(GenericPK primaryKey, GenericValue value);
+
+ // ======= XML Related Methods ========
+ public List<GenericValue> readXmlDocument(URL url) throws SAXException, ParserConfigurationException, java.io.IOException;
+
+ /**
+ * Refresh the Entity for the GenericValue from the persistent store
+ *
+ * @param value
+ * GenericValue instance containing the entity to refresh
+ */
+ public void refresh(GenericValue value) throws GenericEntityException;
+
+ /**
+ * Refresh the Entity for the GenericValue from the persistent store
+ *
+ * @param value
+ * GenericValue instance containing the entity to refresh
+ * @param doCacheClear
+ * boolean that specifies whether or not to automatically clear
+ * cache entries related to this operation
+ */
+ public void refresh(GenericValue value, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Refresh the Entity for the GenericValue from the cache
+ *
+ * @param value
+ * GenericValue instance containing the entity to refresh
+ */
+ public void refreshFromCache(GenericValue value) throws GenericEntityException;
+
+ /** Refreshes the ID sequencer clearing all cached bank values. */
+ public void refreshSequencer();
+
+ /**
+ * Remove the Entities from the List from the persistent store. <br/>The
+ * List contains GenericEntity objects, can be either GenericPK or
+ * GenericValue. <br/>If a certain entity contains a complete primary key,
+ * the entity in the datasource corresponding to that primary key will be
+ * removed, this is like a removeByPrimary Key. <br/>On the other hand, if a
+ * certain entity is an incomplete or non primary key, if will behave like
+ * the removeByAnd method. <br/>These updates all happen in one transaction,
+ * so they will either all succeed or all fail, if the data source supports
+ * transactions.
+ *
+ * @param dummyPKs
+ * Collection of GenericEntity instances containing the entities
+ * or by and fields to remove
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeAll(List<? extends GenericEntity> dummyPKs) throws GenericEntityException;
+
+ /**
+ * Remove the Entities from the List from the persistent store. <br/>The
+ * List contains GenericEntity objects, can be either GenericPK or
+ * GenericValue. <br/>If a certain entity contains a complete primary key,
+ * the entity in the datasource corresponding to that primary key will be
+ * removed, this is like a removeByPrimary Key. <br/>On the other hand, if a
+ * certain entity is an incomplete or non primary key, if will behave like
+ * the removeByAnd method. <br/>These updates all happen in one transaction,
+ * so they will either all succeed or all fail, if the data source supports
+ * transactions.
+ *
+ * @param dummyPKs
+ * Collection of GenericEntity instances containing the entities
+ * or by and fields to remove
+ * @param doCacheClear
+ * boolean that specifies whether or not to automatically clear
+ * cache entries related to this operation
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeAll(List<? extends GenericEntity> dummyPKs, boolean doCacheClear) throws GenericEntityException;
+
+ public int removeAll(String entityName) throws GenericEntityException;
+
+ /**
+ * Removes/deletes Generic Entity records found by all of the specified
+ * fields (ie: combined using AND)
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param doCacheClear
+ * boolean that specifies whether to clear cache entries for this
+ * value to be removed
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeByAnd(String entityName, boolean doCacheClear, Object... fields) throws GenericEntityException;
+
+ /**
+ * Removes/deletes Generic Entity records found by all of the specified
+ * fields (ie: combined using AND)
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeByAnd(String entityName, Map<String, ? extends Object> fields) throws GenericEntityException;
+
+ /**
+ * Removes/deletes Generic Entity records found by all of the specified
+ * fields (ie: combined using AND)
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @param doCacheClear
+ * boolean that specifies whether to clear cache entries for this
+ * value to be removed
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeByAnd(String entityName, Map<String, ? extends Object> fields, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Removes/deletes Generic Entity records found by all of the specified
+ * fields (ie: combined using AND)
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param fields
+ * The fields of the named entity to query by with their
+ * corresponding values
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeByAnd(String entityName, Object... fields) throws GenericEntityException;
+
+ /**
+ * Removes/deletes Generic Entity records found by the condition
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param condition
+ * The condition used to restrict the removing
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeByCondition(String entityName, EntityCondition condition) throws GenericEntityException;
+
+ /**
+ * Removes/deletes Generic Entity records found by the condition
+ *
+ * @param entityName
+ * The Name of the Entity as defined in the entity XML file
+ * @param condition
+ * The condition used to restrict the removing
+ * @param doCacheClear
+ * boolean that specifies whether to clear cache entries for this
+ * value to be removed
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeByCondition(String entityName, EntityCondition condition, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Remove a Generic Entity corresponding to the primaryKey
+ *
+ * @param primaryKey
+ * The primary key of the entity to remove.
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeByPrimaryKey(GenericPK primaryKey) throws GenericEntityException;
+
+ /**
+ * Remove a Generic Entity corresponding to the primaryKey
+ *
+ * @param primaryKey
+ * The primary key of the entity to remove.
+ * @param doCacheClear
+ * boolean that specifies whether to clear cache entries for this
+ * primaryKey to be removed
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeByPrimaryKey(GenericPK primaryKey, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Remove the named Related Entity for the GenericValue from the persistent
+ * store
+ *
+ * @param relationName
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file
+ * @param value
+ * GenericValue instance containing the entity
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeRelated(String relationName, GenericValue value) throws GenericEntityException;
+
+ /**
+ * Remove the named Related Entity for the GenericValue from the persistent
+ * store
+ *
+ * @param relationName
+ * String containing the relation name which is the combination
+ * of relation.title and relation.rel-entity-name as specified in
+ * the entity XML definition file
+ * @param value
+ * GenericValue instance containing the entity
+ * @param doCacheClear
+ * boolean that specifies whether to clear cache entries for this
+ * value to be removed
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeRelated(String relationName, GenericValue value, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Remove a Generic Value from the database
+ *
+ * @param value
+ * The GenericValue object of the entity to remove.
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeValue(GenericValue value) throws GenericEntityException;
+
+ /**
+ * Remove a Generic Value from the database
+ *
+ * @param value
+ * The GenericValue object of the entity to remove.
+ * @param doCacheClear
+ * boolean that specifies whether to clear cache entries for this
+ * value to be removed
+ * @return int representing number of rows effected by this operation
+ */
+ public int removeValue(GenericValue value, boolean doCacheClear) throws GenericEntityException;
+
+ public void rollback();
+
+ public void setDistributedCacheClear(DistributedCacheClear distributedCacheClear);
+
+ public void setEntityCrypto(EntityCrypto crypto);
+
+ public void setEntityEcaHandler(EntityEcaHandler entityEcaHandler);
+
+ /**
+ * Look at existing values for a sub-entity with a sequenced secondary ID,
+ * and get the highest plus 1
+ */
+ public void setNextSubSeqId(GenericValue value, String seqFieldName, int numericPadding, int incrementBy);
+
+ /**
+ * Allows you to pass a SequenceUtil class (possibly one that overrides the
+ * getNextSeqId method); if null is passed will effectively refresh the
+ * sequencer.
+ */
+ public void setSequencer(SequenceUtil sequencer);
+
+ /**
+ * Store the Entity from the GenericValue to the persistent store
+ *
+ * @param value
+ * GenericValue instance containing the entity
+ * @return int representing number of rows effected by this operation
+ */
+ public int store(GenericValue value) throws GenericEntityException;
+
+ /**
+ * Store the Entity from the GenericValue to the persistent store
+ *
+ * @param value
+ * GenericValue instance containing the entity
+ * @param doCacheClear
+ * boolean that specifies whether or not to automatically clear
+ * cache entries related to this operation
+ * @return int representing number of rows effected by this operation
+ */
+ public int store(GenericValue value, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Store the Entities from the List GenericValue instances to the persistent
+ * store. <br/>This is different than the normal store method in that the
+ * store method only does an update, while the storeAll method checks to see
+ * if each entity exists, then either does an insert or an update as
+ * appropriate. <br/>These updates all happen in one transaction, so they
+ * will either all succeed or all fail, if the data source supports
+ * transactions. This is just like to othersToStore feature of the
+ * GenericEntity on a create or store.
+ *
+ * @param values
+ * List of GenericValue instances containing the entities to
+ * store
+ * @return int representing number of rows effected by this operation
+ */
+ public int storeAll(List<GenericValue> values) throws GenericEntityException;
+
+ /**
+ * Store the Entities from the List GenericValue instances to the persistent
+ * store. <br/>This is different than the normal store method in that the
+ * store method only does an update, while the storeAll method checks to see
+ * if each entity exists, then either does an insert or an update as
+ * appropriate. <br/>These updates all happen in one transaction, so they
+ * will either all succeed or all fail, if the data source supports
+ * transactions. This is just like to othersToStore feature of the
+ * GenericEntity on a create or store.
+ *
+ * @param values
+ * List of GenericValue instances containing the entities to
+ * store
+ * @param doCacheClear
+ * boolean that specifies whether or not to automatically clear
+ * cache entries related to this operation
+ * @return int representing number of rows effected by this operation
+ */
+ public int storeAll(List<GenericValue> values, boolean doCacheClear) throws GenericEntityException;
+
+ /**
+ * Store the Entities from the List GenericValue instances to the persistent
+ * store. <br/>This is different than the normal store method in that the
+ * store method only does an update, while the storeAll method checks to see
+ * if each entity exists, then either does an insert or an update as
+ * appropriate. <br/>These updates all happen in one transaction, so they
+ * will either all succeed or all fail, if the data source supports
+ * transactions. This is just like to othersToStore feature of the
+ * GenericEntity on a create or store.
+ *
+ * @param values
+ * List of GenericValue instances containing the entities to
+ * store
+ * @param doCacheClear
+ * boolean that specifies whether or not to automatically clear
+ * cache entries related to this operation
+ * @param createDummyFks
+ * boolean that specifies whether or not to automatically create
+ * "dummy" place holder FKs
+ * @return int representing number of rows effected by this operation
+ */
+ public int storeAll(List<GenericValue> values, boolean doCacheClear, boolean createDummyFks) throws GenericEntityException;
+
+ /**
+ * Store a group of values
+ *
+ * @param entityName
+ * The name of the Entity as defined in the entity XML file
+ * @param fieldsToSet
+ * The fields of the named entity to set in the database
+ * @param condition
+ * The condition that restricts the list of stored values
+ * @return int representing number of rows effected by this operation
+ * @throws GenericEntityException
+ */
+ public int storeByCondition(String entityName, Map<String, ? extends Object> fieldsToSet, EntityCondition condition) throws GenericEntityException;
+
+ /**
+ * Store a group of values
+ *
+ * @param entityName
+ * The name of the Entity as defined in the entity XML file
+ * @param fieldsToSet
+ * The fields of the named entity to set in the database
+ * @param condition
+ * The condition that restricts the list of stored values
+ * @param doCacheClear
+ * boolean that specifies whether to clear cache entries for
+ * these values
+ * @return int representing number of rows effected by this operation
+ * @throws GenericEntityException
+ */
+ public int storeByCondition(String entityName, Map<String, ? extends Object> fieldsToSet, EntityCondition condition, boolean doCacheClear) throws GenericEntityException;
+
+}
Re: svn commit: r819067 [1/3] - in /ofbiz/trunk/framework: base/src/org/ofbiz/base/util/
entity/src/META-INF/services/ entity/src/org/ofbiz/entity/
Posted by Adam Heath <do...@brainfood.com>.
Adrian Crum wrote:
> I understand what you're suggesting. But if the intention is to replace
>
> GenericDelegator delegator = GenericDelegator.getDelegator(delegatorName);
>
> with
>
> Delegator delegator = (Delegator)
> UtilObject.getObjectFromFactory(DelegatorFactory.class, delegatorName);
>
> then the Delegator interface will need to support the same methods as
> GenericDelegator.
Nope. Leave GenericDelegator.getDelegator, which returns
GenericDelegator. This way, all existing code continues to work, no
changes at all. Then, existing scripts can be modified one at a time.
Base helper methods should be modified first, so that they take a
Delegator instead of a GenericDelegator. This will just require a
recompile(as calling code will still be using a GenericDelegator,
which implements Delegator).
Basically, find all methods that have an incoming GenericDelegator
object, but do *not* forward it on to any other method(be careful
about services that call out). Modify those methods first. Then move
slowly up the chain.
Re: svn commit: r819067 [1/3] - in /ofbiz/trunk/framework: base/src/org/ofbiz/base/util/
entity/src/META-INF/services/ entity/src/org/ofbiz/entity/
Posted by Adrian Crum <ad...@hlmksw.com>.
I understand what you're suggesting. But if the intention is to replace
GenericDelegator delegator = GenericDelegator.getDelegator(delegatorName);
with
Delegator delegator = (Delegator)
UtilObject.getObjectFromFactory(DelegatorFactory.class, delegatorName);
then the Delegator interface will need to support the same methods as
GenericDelegator.
-Adrian
Adam Heath wrote:
> Adrian Crum wrote:
>> Adam,
>>
>> Thanks for the tips!
>>
>> The public modifier and @Deprecated in the Delegator interface are
>> carried over from GenericDelegator.java. I used Eclipse to extract the
>> interface - hence the public modifier. David Jones deprecated the
>> methods - not me. We can remove the deprecated methods when they are no
>> longer used.
>
> Nono.
>
> You've added a *new* interface. Adding immediately deprecated methods
> to a *new* interface or class is stupid.
>
> I'm not suggesting removing the methods from GenericDelegator. Just
> the definitions from the interface.
>
Re: svn commit: r819067 [1/3] - in /ofbiz/trunk/framework: base/src/org/ofbiz/base/util/
entity/src/META-INF/services/ entity/src/org/ofbiz/entity/
Posted by Adam Heath <do...@brainfood.com>.
Adrian Crum wrote:
> Adam,
>
> Thanks for the tips!
>
> The public modifier and @Deprecated in the Delegator interface are
> carried over from GenericDelegator.java. I used Eclipse to extract the
> interface - hence the public modifier. David Jones deprecated the
> methods - not me. We can remove the deprecated methods when they are no
> longer used.
Nono.
You've added a *new* interface. Adding immediately deprecated methods
to a *new* interface or class is stupid.
I'm not suggesting removing the methods from GenericDelegator. Just
the definitions from the interface.
Re: svn commit: r819067 [1/3] - in /ofbiz/trunk/framework: base/src/org/ofbiz/base/util/
entity/src/META-INF/services/ entity/src/org/ofbiz/entity/
Posted by Adrian Crum <ad...@hlmksw.com>.
Adam,
Thanks for the tips!
The public modifier and @Deprecated in the Delegator interface are
carried over from GenericDelegator.java. I used Eclipse to extract the
interface - hence the public modifier. David Jones deprecated the
methods - not me. We can remove the deprecated methods when they are no
longer used.
-Adrian
Adam Heath wrote:
> adrianc@apache.org wrote:
>> Author: adrianc
>> Date: Fri Sep 25 23:36:13 2009
>> New Revision: 819067
>>
>> URL: http://svn.apache.org/viewvc?rev=819067&view=rev
>> Log:
>> Refactored GenericDelegator.java based on a design proposed by Adam Heath on the dev mailing list.
>>
>> DelegatorInterface.java has been replaced by Delegator.java.
>>
>>
>> Added:
>> ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java (with props)
>> ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory (with props)
>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java (with props)
>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java (with props)
>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactoryImpl.java (with props)
>> Removed:
>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorInterface.java
>> Modified:
>> ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java
>> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java
>>
>> Added: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java?rev=819067&view=auto
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java (added)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java Fri Sep 25 23:36:13 2009
>> @@ -0,0 +1,32 @@
>> +package org.ofbiz.base.util;
>> +
>> +/** Factory interface. */
>> +public interface Factory<T> {
>
> public interface Factory<T, O>
>
>> +
>> + /** Returns an instance of <code>T</code>.
>> + *
>> + * @param obj Optional object to be used in <code>T</code>'s construction,
>> + * or to be used as a selector key
>> + * @return An instance of <code>T</code>
>> + */
>> + public T getInstance(Object obj);
>
> public T getInstance(O obj);
>
>> +
>> +}
>>
>> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java?rev=819067&r1=819066&r2=819067&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java (original)
>> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java Fri Sep 25 23:36:13 2009
>> @@ -23,6 +23,8 @@
>> import java.io.IOException;
>> import java.io.ObjectOutputStream;
>> import java.io.InputStream;
>> +import java.util.Iterator;
>> +import javax.imageio.spi.ServiceRegistry;
>>
>> /**
>> * UtilObject
>> @@ -171,4 +173,17 @@
>> if (o1 == null) return 0;
>> return o1.hashCode();
>> }
>> +
>> + @SuppressWarnings("unchecked")
>> + public static <T> T getObjectFromFactory(Class<T> factoryInterface, Object obj) throws ClassNotFoundException {
>
> public static <T, O> getObjectFromFactory(Class<Factory<T, O>>
> factoryInterface, O obj), then remove the cast below, and then
> @SuppressWarnings.
>
>> + Iterator<Factory<T>> it = (Iterator<Factory<T>>) ServiceRegistry.lookupProviders(factoryInterface);
>> + while (it.hasNext()) {
>> + Factory<T> factory = it.next();
>> + T instance = factory.getInstance(obj);
>> + if (instance != null) {
>> + return instance;
>> + }
>> + }
>> + throw new ClassNotFoundException(factoryInterface.getClass().getName());
>> + }
>> }
>>
>> Added: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java?rev=819067&view=auto
>> ==============================================================================
>> --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java (added)
>> +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java Fri Sep 25 23:36:13 2009
>> +public interface Delegator {
>> + /**
>> + * Finds all Generic entities NOTE 20080502: 14 references; all changed to
>> + * findList
>> + *
>> + * @param entityName
>> + * The Name of the Entity as defined in the entity XML file
>> + * @return List containing all Generic entities
>> + * @deprecated Use findList() instead
>> + */
>> + @Deprecated
>> + public List<GenericValue> findAll(String entityName) throws GenericEntityException;
>
> Don't add @Deprecated methods to *new* interfaces or classes. That
> makes no sense.
>
> Also, interfaces don't need the public keyword attached to methods;
> it's superflous.
>
>
Re: svn commit: r819067 [1/3] - in /ofbiz/trunk/framework: base/src/org/ofbiz/base/util/
entity/src/META-INF/services/ entity/src/org/ofbiz/entity/
Posted by Adam Heath <do...@brainfood.com>.
adrianc@apache.org wrote:
> Author: adrianc
> Date: Fri Sep 25 23:36:13 2009
> New Revision: 819067
>
> URL: http://svn.apache.org/viewvc?rev=819067&view=rev
> Log:
> Refactored GenericDelegator.java based on a design proposed by Adam Heath on the dev mailing list.
>
> DelegatorInterface.java has been replaced by Delegator.java.
>
>
> Added:
> ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java (with props)
> ofbiz/trunk/framework/entity/src/META-INF/services/org.ofbiz.entity.DelegatorFactory (with props)
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java (with props)
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactory.java (with props)
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorFactoryImpl.java (with props)
> Removed:
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/DelegatorInterface.java
> Modified:
> ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java
> ofbiz/trunk/framework/entity/src/org/ofbiz/entity/GenericDelegator.java
>
> Added: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java?rev=819067&view=auto
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java (added)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Factory.java Fri Sep 25 23:36:13 2009
> @@ -0,0 +1,32 @@
> +package org.ofbiz.base.util;
> +
> +/** Factory interface. */
> +public interface Factory<T> {
public interface Factory<T, O>
> +
> + /** Returns an instance of <code>T</code>.
> + *
> + * @param obj Optional object to be used in <code>T</code>'s construction,
> + * or to be used as a selector key
> + * @return An instance of <code>T</code>
> + */
> + public T getInstance(Object obj);
public T getInstance(O obj);
> +
> +}
>
> Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java?rev=819067&r1=819066&r2=819067&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java (original)
> +++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilObject.java Fri Sep 25 23:36:13 2009
> @@ -23,6 +23,8 @@
> import java.io.IOException;
> import java.io.ObjectOutputStream;
> import java.io.InputStream;
> +import java.util.Iterator;
> +import javax.imageio.spi.ServiceRegistry;
>
> /**
> * UtilObject
> @@ -171,4 +173,17 @@
> if (o1 == null) return 0;
> return o1.hashCode();
> }
> +
> + @SuppressWarnings("unchecked")
> + public static <T> T getObjectFromFactory(Class<T> factoryInterface, Object obj) throws ClassNotFoundException {
public static <T, O> getObjectFromFactory(Class<Factory<T, O>>
factoryInterface, O obj), then remove the cast below, and then
@SuppressWarnings.
> + Iterator<Factory<T>> it = (Iterator<Factory<T>>) ServiceRegistry.lookupProviders(factoryInterface);
> + while (it.hasNext()) {
> + Factory<T> factory = it.next();
> + T instance = factory.getInstance(obj);
> + if (instance != null) {
> + return instance;
> + }
> + }
> + throw new ClassNotFoundException(factoryInterface.getClass().getName());
> + }
> }
>
> Added: ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java?rev=819067&view=auto
> ==============================================================================
> --- ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java (added)
> +++ ofbiz/trunk/framework/entity/src/org/ofbiz/entity/Delegator.java Fri Sep 25 23:36:13 2009
> +public interface Delegator {
> + /**
> + * Finds all Generic entities NOTE 20080502: 14 references; all changed to
> + * findList
> + *
> + * @param entityName
> + * The Name of the Entity as defined in the entity XML file
> + * @return List containing all Generic entities
> + * @deprecated Use findList() instead
> + */
> + @Deprecated
> + public List<GenericValue> findAll(String entityName) throws GenericEntityException;
Don't add @Deprecated methods to *new* interfaces or classes. That
makes no sense.
Also, interfaces don't need the public keyword attached to methods;
it's superflous.