Job

public abstract class Job

This is a Job.

Fields

allClasses

static HashMap<String, Class<? extends Job>> allClasses

All known Job classes, by name (actually lowercase getSimpleName()).

Constructors

Job

protected Job()

Methods

appendJob

protected ScheduledJob appendJob(Class<? extends Job> clazz)

appendJob

protected ScheduledJob appendJob(EntityInterface entity, Class<? extends Job> clazz)

execute

public <K extends BackendTransaction> K execute(K t)

getCache

protected <S, T> HashMap<S, T> getCache(String name)

getContainer

protected TransactionContainer getContainer()

getEntity

public EntityInterface getEntity()

getEntityById

protected EntityInterface getEntityById(EntityID id)

getEntityByName

protected EntityInterface getEntityByName(String name)

getFailureSeverity

protected final JobFailureSeverity getFailureSeverity()

getJob

public static Job getJob(String job, JobFailureSeverity severiy, EntityInterface entity, Transaction<? extends TransactionContainer> transaction)

Create a Job object with the given parameters.

This static method is used by other classes to create Job objects, instead of the private constructor.

Returns:The generated Job object.

getRequestId

protected String getRequestId()

getTarget

public abstract JobTarget getTarget()

getTransaction

public Transaction<? extends TransactionContainer> getTransaction()

getTransactionStage

public TransactionStage getTransactionStage()

getUser

protected Subject getUser()

init

public final Job init(JobFailureSeverity severity, EntityInterface entity, Transaction<? extends TransactionContainer> transaction)

isSubType

protected final boolean isSubType(EntityInterface child, EntityInterface targetParent)

Check if an entity (‘child’) is a direct or indirect child of another entity (‘targetParent’).

This assumes that the parent has either an id (persistent or temporary) or a name.

If the targetParent is not in the set of parents of the child, this method iterates through the direct parents of the child.

If both entities are part of this transaction, they are resolved within this transaction. Otherwise they are fetched from the database backend or the whole evaluation takes place in the backend (if both have persistent ids and are not part of this transaction).

If both entities have the same id or name, the return value is true without any further checks.

Parameters:
  • child – the child entity
  • targetParent – the parent entity
Throws:
Returns:

true iff targetParent is a direct or indirect parent of the child or when the ids or names match.

isValidSubType

protected final boolean isValidSubType(EntityID child, EntityID parent)

isValidSubTypeNoCache

protected final boolean isValidSubTypeNoCache(EntityID child, EntityID parent)

loadDataTypeSpecificJobs

protected List<Job> loadDataTypeSpecificJobs()

loadDataTypeSpecificJobs

public List<Job> loadDataTypeSpecificJobs(EntityInterface entity, Transaction<? extends TransactionContainer> transaction)

loadJobs

public List<Job> loadJobs(EntityInterface entity, Transaction<? extends TransactionContainer> transaction)

loadPermanentContainerJobs

public static List<Job> loadPermanentContainerJobs(Transaction<?> transaction)

Return those matching jobs which are annotated with the “loadAlways” attribute.

Returns:A list with the jobs.

loadStandardJobs

public List<Job> loadStandardJobs(EntityInterface entity, Transaction<? extends TransactionContainer> transaction)

print

public void print()

resolve

protected EntityInterface resolve(EntityInterface entity)

Resolve an entity (which might only be specified by it’s name or id) to its full representation (with properties, parents and all).

Parameters:
  • entity – the entity to be resolved.
Throws:
Returns:

the resolved entity.

retrieveParentsOfValidEntity

protected EntityInterface retrieveParentsOfValidEntity(EntityInterface entity)

retrieveValidEntity

protected final EntityInterface retrieveValidEntity(EntityID id)

retrieveValidIDByName

protected final EntityID retrieveValidIDByName(String name)

retrieveValidSparseEntityById

protected final EntityInterface retrieveValidSparseEntityById(EntityID id, String version)

retrieveValidSparseEntityByName

protected final EntityInterface retrieveValidSparseEntityByName(String name)

run

protected abstract void run()

to be overridden

runJobFromSchedule

protected void runJobFromSchedule(EntityInterface entity, Class<? extends Job> jobclass)

setFailureSeverity

protected final void setFailureSeverity(JobFailureSeverity severiy)

toString

public String toString()