Package com.atlassian.jira.entity
Class EntityEngineImpl
java.lang.Object
com.atlassian.jira.entity.EntityEngineImpl
- All Implemented Interfaces:
EntityEngine
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.atlassian.jira.entity.EntityEngine
EntityEngine.SelectFromContext<E>, EntityEngine.WhereContext<E>, EntityEngine.WhereEqualAndContext<E>, EntityEngine.WhereEqualContext<E>, EntityEngine.WhereInContext<E>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<E> E
createValue
(EntityFactory<E> entityFactory, E value) Creates a new Entity and auto populates the ID if no ID is explicitly set.<E> void
createValueWithoutId
(EntityFactory<E> entityFactory, E value) Creates a new Entity without trying to automatically populate the ID column.int
delete
(Delete.DeleteWhereContext deleteContext) Allows you to execute an SQL DELETE using a fluent interface.int
execute
(Update.WhereContext updateContext) Allows you to execute an UPDATE statement using a fluent interface.<E> int
removeValue
(EntityFactory<E> entityFactory, Long id) Remove the given entity from the DB.<E> SelectQuery.ExecutionContext<E>
run
(SelectQuery<E> selectQuery) selectFrom
(EntityFactory<E> entity) Starts a dialog to run a SELECT query against EntityEngine.<E> void
updateValue
(EntityFactory<E> entityFactory, E newValue)
-
Constructor Details
-
EntityEngineImpl
-
-
Method Details
-
createValue
Description copied from interface:EntityEngine
Creates a new Entity and auto populates the ID if no ID is explicitly set.Use this for entities that include an ID column (most of them).
- Specified by:
createValue
in interfaceEntityEngine
- Type Parameters:
E
- entity type- Parameters:
entityFactory
- the EntityFactoryvalue
- the entity to be created.- Returns:
- the newly created value (with the newly populated ID in it).
- See Also:
-
createValueWithoutId
Description copied from interface:EntityEngine
Creates a new Entity without trying to automatically populate the ID column.Use this for entities that don't have a numeric ID column.
- Specified by:
createValueWithoutId
in interfaceEntityEngine
- Type Parameters:
E
- entity type- Parameters:
entityFactory
- the EntityFactoryvalue
- the entity to be created.- See Also:
-
updateValue
- Specified by:
updateValue
in interfaceEntityEngine
-
execute
Description copied from interface:EntityEngine
Allows you to execute an UPDATE statement using a fluent interface.See the
Update
class for an example.- Specified by:
execute
in interfaceEntityEngine
- Parameters:
updateContext
- build up a fluent UPDATE statement here. Should start withUpdate.into(
- Returns:
- the number of entities / DB rows deleted.
-
delete
Description copied from interface:EntityEngine
Allows you to execute an SQL DELETE using a fluent interface.You should call this using code that looks like:
entityEngine.delete(Delete.from(Entity.ISSUE_SECURITY_LEVEL).whereIdEquals(securityLevelId));
or:entityEngine.delete( Delete.from(Entity.ISSUE_SECURITY_LEVEL) .whereEqual("scheme", schemeId) .andEqual("name", name) );
- Specified by:
delete
in interfaceEntityEngine
- Parameters:
deleteContext
- build up a fluent DELETE statement here. Should start withDelete.from(
- Returns:
- the number of entities / DB rows deleted.
-
run
- Specified by:
run
in interfaceEntityEngine
-
removeValue
Description copied from interface:EntityEngine
Remove the given entity from the DB.- Specified by:
removeValue
in interfaceEntityEngine
- Parameters:
entityFactory
- represents the entity type (ie TABLE)id
- the id of the row to delete.- Returns:
- number of rows effected by this operation
-
selectFrom
Description copied from interface:EntityEngine
Starts a dialog to run a SELECT query against EntityEngine.e.g. to run "SELECT * FROM remotelink WHERE id = ?" (and return a single entity value) you could write:
RemoteIssueLink link = entityEngine.selectFrom(Entity.REMOTE_ISSUE_LINK) .whereEqual("id", remoteIssueLinkId) .singleValue();
e.g. to run "SELECT * FROM remotelink WHERE issueid = ? AND app = ? ORDER BY type" you could write:List
remoteIssueLinks = entityEngine.selectFrom(Entity.REMOTE_ISSUE_LINK) .whereEqual("issueid", issueId) .andEqual("app", app) .orderBy("type"); - Specified by:
selectFrom
in interfaceEntityEngine
- Type Parameters:
E
- Entity Data Object type.- Parameters:
entity
- that can convert GenericValues into Entity data objects. SeeEntity
for existing factories.- Returns:
- The context that begins a fluent dialog to run a SELECT query.
- See Also:
-