com.atlassian.jira.entity
Class EntityEngineImpl

java.lang.Object
  extended by com.atlassian.jira.entity.EntityEngineImpl
All Implemented Interfaces:
EntityEngine

public class EntityEngineImpl
extends Object
implements 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
EntityEngineImpl(OfBizDelegator ofBizDelegator)
           
 
Method Summary
<E> E
createValue(EntityFactory<E> entityFactory, E value)
           
 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)
           
<E> EntityEngine.SelectFromContext<E>
selectFrom(EntityFactory<E> entity)
          Starts a dialog to run a SELECT query against EntityEngine.
<E> void
updateValue(EntityFactory<E> entityFactory, E newValue)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EntityEngineImpl

public EntityEngineImpl(OfBizDelegator ofBizDelegator)
Method Detail

createValue

public <E> E createValue(EntityFactory<E> entityFactory,
                         E value)
Specified by:
createValue in interface EntityEngine

updateValue

public <E> void updateValue(EntityFactory<E> entityFactory,
                            E newValue)
Specified by:
updateValue in interface EntityEngine

execute

public int execute(Update.WhereContext updateContext)
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 interface EntityEngine
Parameters:
updateContext - build up a fluent UPDATE statement here. Should start with Update.into(
Returns:
the number of entities / DB rows deleted.

delete

public int delete(Delete.DeleteWhereContext deleteContext)
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 interface EntityEngine
Parameters:
deleteContext - build up a fluent DELETE statement here. Should start with Delete.from(
Returns:
the number of entities / DB rows deleted.

run

public <E> SelectQuery.ExecutionContext<E> run(SelectQuery<E> selectQuery)
Specified by:
run in interface EntityEngine

removeValue

public <E> int removeValue(EntityFactory<E> entityFactory,
                           Long id)
Description copied from interface: EntityEngine
Remove the given entity from the DB.

Specified by:
removeValue in interface EntityEngine
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

public <E> EntityEngine.SelectFromContext<E> selectFrom(EntityFactory<E> entity)
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 interface EntityEngine
Type Parameters:
E - Entity Data Object type.
Parameters:
entity - that can convert GenericValues into Entity data objects. See Entity for existing factories.
Returns:
The context that begins a fluent dialog to run a SELECT query.
See Also:
Entity


Copyright © 2002-2014 Atlassian. All Rights Reserved.