@PublicApi public interface

OfBizDelegator

com.atlassian.jira.ofbiz.OfBizDelegator
Known Indirect Subclasses

@PublicApi

This interface is designed for plugins to consume (call its methods).

Clients of @PublicApi can expect that programs compiled against a given version will remain binary compatible with later versions of the @PublicApi as per each product's API policy as long as the client does not implement/extend @PublicApi interfaces or classes (refer to each product's API policy for the exact guarantee---usually binary compatibility is guaranteed at least across minor versions).

Note: since @PublicApi interfaces and classes are not designed to be implemented or extended by clients, we may perform certain types of binary-incompatible changes to these classes and interfaces, but these will not affect well-behaved clients that do not extend/implement these types (in general, only classes and interfaces annotated with @PublicSpi are safe to extend/implement).

Class Overview

A wrapper around org.ofbiz.core.entity.DelegatorInterface that does not throw GenericEntityException.

Summary

Constants
String ISSUE_LINK
String ISSUE_LINK_TYPE
String PROJECT_COMPONENT
String VERSION
Public Methods
int bulkCopyColumnValuesByAnd(String entityName, Map updateColumns, Map criteria)
This can be used to perform an update on the entityName of all the rows identified by AND criteria of the fields specified by the criteria map.
int bulkUpdateByAnd(String entityName, Map<String, ?> updateValues, Map<String, ?> criteria)
This can be used to perform an update on the entityName of all the rows identified by AND criteria of the fields specified by the criteria map.
int bulkUpdateByPrimaryKey(String entityName, Map<String, ?> updateValues, List<Long> keys)
This can be used to perform an update on the entityName of all the rows identified by the keys with the values stored in the updateValues.
GenericValue createValue(String entityName, Map<StringObject> fields)
Creates a new GenericValue, and persists it.
void createValueWithoutId(String entityName, Map<StringObject> fields)
Creates a new GenericValue, and persists it without trying to automatically populate the ID column.
List<GenericValue> findAll(String s)
List<GenericValue> findAll(String s, List<String> orderBy)
List<GenericValue> findByAnd(String entityName, List<EntityCondition> expressions)
List<GenericValue> findByAnd(String entityName, Map<String, ?> fields, List<String> orderBy)
List<GenericValue> findByAnd(String entityName, Map<String, ?> fields)
Finds GenericValue records by all of the specified fields (ie: combined using AND).
List<GenericValue> findByCondition(String entityName, EntityCondition entityCondition, Collection<String> fieldsToSelect)
Finds GenericValues by the conditions specified in the EntityCondition object with no specified order.
List<GenericValue> findByCondition(String entityName, EntityCondition entityCondition, Collection<String> fieldsToSelect, List<String> orderBy)
Finds GenericValues by the conditions specified in the EntityCondition object.
List<GenericValue> findByField(String entityName, String fieldName, Object fieldValue, String orderBy)
Finds GenericValue records by the specified field value.
List<GenericValue> findByField(String entityName, String fieldName, Object fieldValue)
Finds GenericValue records by the specified field value.
GenericValue findById(String entityName, Long id)
Find a Generic Entity by its numeric ID.
List<GenericValue> findByLike(String entityName, Map<String, ?> map)
List<GenericValue> findByLike(String entityName, Map<String, ?> map, List<String> orderBy)
List<GenericValue> findByOr(String entityName, List<? extends EntityCondition> expressions, List<String> orderBy)
GenericValue findByPrimaryKey(String entityName, Long id)
Find a Generic Entity by its single numeric Primary Key.
GenericValue findByPrimaryKey(String entityName, Map<String, ?> fields)
Find a Generic Entity by its Primary Key.
OfBizListIterator findListIteratorByCondition(String entityName, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition, Collection<String> fieldsToSelect, List<String> orderBy, EntityFindOptions entityFindOptions)
Returns a new OfBizListIterator.
OfBizListIterator findListIteratorByCondition(String entityType, EntityCondition condition)
Returns a new OfBizListIterator.
long getCount(String entityName)
Runs a COUNT * query over the given entity.
long getCountByAnd(String entityName, Map<String, ?> fields)
Runs a COUNT * query over the given entity with some WHERE conditions.
DelegatorInterface getDelegatorInterface()
Returns the underlying raw Entity Engine DelegatorInterface.
ModelReader getModelReader()
Returns a model reader that can be used to retrieve all the different entitynames configured in the entitymodel.
List<GenericValue> getRelated(String relationName, GenericValue gv, List<String> orderBy)
List<GenericValue> getRelated(String relationName, GenericValue gv)
GenericValue makeValue(String entityName, Map<StringObject> fields)
Creates an Entity in the form of a GenericValue without persisting it.
GenericValue makeValue(String entityName)
Creates an Entity in the form of a GenericValue without persisting it.
void refreshSequencer()
Refreshes the sequencer that is used to retrieve unique IDs in the database.
void removeAll(List<GenericValue> genericValues)
int removeByAnd(String s, Map<String, ?> map)
int removeByCondition(String entityName, EntityCondition condition)
int removeById(String entityName, Long id)
Remove the given entity from the DB.
int removeByOr(String entityName, String entityId, List<Long> ids)
This can be used to remove rows for a given entity based on entityName and where entityId
boolean removeRelated(String relationName, GenericValue schemeGv)
Remove all the entities related to the passed generic value via the passed relationship name.
int removeValue(GenericValue value)
void store(GenericValue gv)
void storeAll(List<GenericValue> genericValues)
List<GenericValue> transform(String entityName, EntityCondition entityCondition, List<String> orderBy, String lockField, Transformation transformation)
Applies the given transformation to any entities matching the given condition.
GenericValue transformOne(String entityName, EntityCondition entityCondition, String lockField, Transformation transformation)
Applies the given transformation to the entity matching the given condition.

Constants

public static final String ISSUE_LINK

Constant Value: "IssueLink"

public static final String ISSUE_LINK_TYPE

Constant Value: "IssueLinkType"

public static final String PROJECT_COMPONENT

Constant Value: "Component"

public static final String VERSION

Constant Value: "Version"

Public Methods

public int bulkCopyColumnValuesByAnd (String entityName, Map updateColumns, Map criteria)

This can be used to perform an update on the entityName of all the rows identified by AND criteria of the fields specified by the criteria map.

Parameters
entityName table na,e
updateColumns map of update to - update from columns
criteria map of column names and their values that will create WHERE clause
Returns
  • the number of rows updated
Throws
DataAccessException If an error occurs in the persistence layer.

public int bulkUpdateByAnd (String entityName, Map<String, ?> updateValues, Map<String, ?> criteria)

This can be used to perform an update on the entityName of all the rows identified by AND criteria of the fields specified by the criteria map.

Parameters
entityName identifies the table to perform the update on.
updateValues is a map where the key is the fieldName and the value is the value to update the column to.
criteria map of field to value mapping that will be used to generate the where clause of the update SQL statement. Multiple entries in the map are joined using the AND operator.
Returns
  • the number of rows updated
Throws
DataAccessException If an error occurs in the persistence layer.

public int bulkUpdateByPrimaryKey (String entityName, Map<String, ?> updateValues, List<Long> keys)

This can be used to perform an update on the entityName of all the rows identified by the keys with the values stored in the updateValues.

Parameters
entityName identifies the table to perform the update on.
updateValues is a map where the key is the fieldName and the value is the value to update the column to.
keys is a list of Long values that represent the primary keys of the the where clause.
Returns
  • the number of rows updated
Throws
DataAccessException If an error occurs in the persistence layer.

public GenericValue createValue (String entityName, Map<StringObject> fields)

Creates a new GenericValue, and persists it.

If there is no "id" in the field values, one is created using the entity sequence.

Parameters
entityName the entity name.
fields field values
Returns
  • The new GenericValue.
Throws
DataAccessException if an error occurs in the Database layer

public void createValueWithoutId (String entityName, Map<StringObject> fields)

Creates a new GenericValue, and persists it without trying to automatically populate the ID column.

Use this for entities that don't have a numeric ID column.

Parameters
entityName the entity name.
fields field values
Throws
DataAccessException if an error occurs in the Database layer

public List<GenericValue> findAll (String s)

public List<GenericValue> findAll (String s, List<String> orderBy)

public List<GenericValue> findByAnd (String entityName, List<EntityCondition> expressions)

public List<GenericValue> findByAnd (String entityName, Map<String, ?> fields, List<String> orderBy)

public List<GenericValue> findByAnd (String entityName, Map<String, ?> fields)

Finds GenericValue records by all of the specified fields (ie: combined using AND).

Parameters
entityName The Name of the Entity as defined in the entity XML file
fields The fields of the named entity to query by with their corresponding values
Returns
  • List of GenericValue instances that match the query
Throws
DataAccessException If an error occurs in the persistence layer.

public List<GenericValue> findByCondition (String entityName, EntityCondition entityCondition, Collection<String> fieldsToSelect)

Finds GenericValues by the conditions specified in the EntityCondition object with no specified order.

Convenience method for calling findByCondition(String, EntityCondition, Collection, List) with an empty orderBy list.

Parameters
entityName The Name of the Entity as defined in the entity model XML file
entityCondition The EntityCondition object that specifies how to constrain this query
fieldsToSelect The fields of the named entity to get from the database; if empty or null all fields will be retreived
Returns
  • List of GenericValue objects representing the search results
Throws
DataAccessException If an error occurs in the persistence layer.

public List<GenericValue> findByCondition (String entityName, EntityCondition entityCondition, Collection<String> fieldsToSelect, List<String> orderBy)

Finds GenericValues by the conditions specified in the EntityCondition object.

Parameters
entityName The Name of the Entity as defined in the entity model XML file
entityCondition The EntityCondition object that specifies how to constrain this query
fieldsToSelect The fields of the named entity to get from the database; if empty or null all fields will be retreived
orderBy The fields of the named entity to order the query by; optionally add a " ASC" for ascending or " DESC" for descending
Returns
  • List of GenericValue objects representing the search results
Throws
DataAccessException If an error occurs in the persistence layer.

public List<GenericValue> findByField (String entityName, String fieldName, Object fieldValue, String orderBy)

Finds GenericValue records by the specified field value.

Parameters
entityName The Name of the Entity as defined in the entity XML file
fieldName The field to do filtering by.
fieldValue The desired value for the filtering field.
orderBy Single field to order by.
Returns
  • List of GenericValue instances that match the query
Throws
DataAccessException If an error occurs in the persistence layer.

public List<GenericValue> findByField (String entityName, String fieldName, Object fieldValue)

Finds GenericValue records by the specified field value.

Parameters
entityName The Name of the Entity as defined in the entity XML file
fieldName The field to do filtering by.
fieldValue The desired value for the filtering field.
Returns
  • List of GenericValue instances that match the query
Throws
DataAccessException If an error occurs in the persistence layer.

public GenericValue findById (String entityName, Long id)

Find a Generic Entity by its numeric ID.

This method is a synonym for findByPrimaryKey(String, Long)

Parameters
entityName The Name of the Entity as defined in the entity XML file
id The numeric "id" field value that is the primary key of this entity.
Returns
  • The GenericValue corresponding to the ID
Throws
DataAccessException DataAccessException

public List<GenericValue> findByLike (String entityName, Map<String, ?> map)

public List<GenericValue> findByLike (String entityName, Map<String, ?> map, List<String> orderBy)

public List<GenericValue> findByOr (String entityName, List<? extends EntityCondition> expressions, List<String> orderBy)

public GenericValue findByPrimaryKey (String entityName, Long id)

Find a Generic Entity by its single numeric Primary Key.

This method is a convenience for entities with a numeric primary key on single field called "id". This is the case for most JIRA entities.

Parameters
entityName The Name of the Entity as defined in the entity XML file
id The numeric "id" field value that is the primary key of this entity.
Returns
  • The GenericValue corresponding to the primary key
Throws
DataAccessException DataAccessException

public GenericValue findByPrimaryKey (String entityName, Map<String, ?> fields)

Find a Generic Entity by its Primary Key.

Parameters
entityName The Name of the Entity as defined in the entity XML file
fields The field/value pairs of the primary key (in JIRA, mostly just a single field "id")
Returns
  • The GenericValue corresponding to the primary key
Throws
DataAccessException DataAccessException

public OfBizListIterator findListIteratorByCondition (String entityName, EntityCondition whereEntityCondition, EntityCondition havingEntityCondition, Collection<String> fieldsToSelect, List<String> orderBy, EntityFindOptions entityFindOptions)

Returns a new OfBizListIterator.

IMPORTANT: the returned iterator needs to be properly closed in a finally block to avoid connection leaks.

public OfBizListIterator findListIteratorByCondition (String entityType, EntityCondition condition)

Returns a new OfBizListIterator.

IMPORTANT: the returned iterator needs to be properly closed in a finally block to avoid connection leaks.

public long getCount (String entityName)

Runs a COUNT * query over the given entity.

Ensure that there is a view-entity defined in entitymodel.xml and entitygroup.xml for the entity you are calling this method with, and that the view-entity is named correctly! The view-entity must be named the name of the normal entity with "Count" appended. For example, for the "Issue" entity, the view-entity must be called "IssueCount". Otherwise an exception will be thrown.

For JIRA core developers, see EntityEngine's Select factory for a more flexible alternative, including the ability to terminate queries with .count() instead of .asList() to accomplish a count without creating a special view entity for that purpose. For add-on developers, this can only be done directly through the lower level DelegatorInterface at this time.

Parameters
entityName entity name
Returns
  • count
Throws
DataAccessException if data access problems occur

public long getCountByAnd (String entityName, Map<String, ?> fields)

Runs a COUNT * query over the given entity with some WHERE conditions.

In addition to the restrictions given for getCount(String), the view-entity will need to define any columns that you wish to use in the where clause.

Parameters
entityName entity name
fields The fields of the named entity to query by with their corresponding values
Returns
  • count
Throws
DataAccessException if data access problems occur
See Also

public DelegatorInterface getDelegatorInterface ()

Returns the underlying raw Entity Engine DelegatorInterface.

Returns
  • the underlying raw Entity Engine DelegatorInterface.

public ModelReader getModelReader ()

Returns a model reader that can be used to retrieve all the different entitynames configured in the entitymodel.

Returns
  • a ModelReader

public List<GenericValue> getRelated (String relationName, GenericValue gv, List<String> orderBy)

public List<GenericValue> getRelated (String relationName, GenericValue gv)

public GenericValue makeValue (String entityName, Map<StringObject> fields)

Creates an Entity in the form of a GenericValue without persisting it.

Parameters
entityName the entity name.
fields initial field values
Returns
  • The new GenericValue.

public GenericValue makeValue (String entityName)

Creates an Entity in the form of a GenericValue without persisting it.

Parameters
entityName the entity name.
Returns
  • The new GenericValue.

public void refreshSequencer ()

Refreshes the sequencer that is used to retrieve unique IDs in the database.

public void removeAll (List<GenericValue> genericValues)

public int removeByAnd (String s, Map<String, ?> map)

public int removeByCondition (String entityName, EntityCondition condition)

public int removeById (String entityName, Long id)

Remove the given entity from the DB.

Parameters
entityName the entity type (ie TABLE)
id the id of the row to delete.
Returns
  • number of rows effected by this operation

public int removeByOr (String entityName, String entityId, List<Long> ids)

This can be used to remove rows for a given entity based on entityName and where entityId

Parameters
entityName identifies the table to perform the remove on.
entityId the Ofbiz fieldName to be used for the identifier, eg WHERE fieldName IN (...). Must be the same case as that found in entitymodel.xml.
ids a list of entity IDs of the rows to be removed
Returns
  • number of rows removed
Throws
GenericModelException if the given entityId is not valid for the given entity
DataAccessException if there are problems executing/accessing the data store

public boolean removeRelated (String relationName, GenericValue schemeGv)

Remove all the entities related to the passed generic value via the passed relationship name.

Parameters
relationName the name of the relationship.
schemeGv the gv at the start of the relationship.
Returns
  • true the database was changed, false otherwise.

public int removeValue (GenericValue value)

public void store (GenericValue gv)

public void storeAll (List<GenericValue> genericValues)

public List<GenericValue> transform (String entityName, EntityCondition entityCondition, List<String> orderBy, String lockField, Transformation transformation)

Applies the given transformation to any entities matching the given condition.

Parameters
entityName the type of entity to transform (required)
entityCondition the condition that selects the entities to transform (null means transform all)
orderBy the order in which the entities should be selected for updating (null means no ordering)
lockField the entity field to use for optimistic locking; the value of this field will be read between the SELECT and the UPDATE to determine whether another process has updated one of the target records in the meantime; if so, the transformation will be reapplied and another UPDATE attempted
transformation the transformation to apply (required)
Returns
  • the transformed entities in the order they were selected (never null)

public GenericValue transformOne (String entityName, EntityCondition entityCondition, String lockField, Transformation transformation)

Applies the given transformation to the entity matching the given condition.

Parameters
entityName the type of entity to transform (required)
entityCondition the condition that selects the entity to transform (must select one entity)
lockField the entity field to use for optimistic locking; the value of this field will be read between the SELECT and the UPDATE to determine whether another process has updated one of the target records in the meantime; if so, the transformation will be reapplied and another UPDATE attempted
transformation the transformation to apply (required)
Returns
  • the transformed entity (never null)
Throws
IllegalArgumentException if the given condition selects more than one entity