org.pentaho.di.job.entries.job
Class JobEntryJob

java.lang.Object
  extended by org.pentaho.di.job.entry.JobEntryBase
      extended by org.pentaho.di.job.entries.job.JobEntryJob
All Implemented Interfaces:
Cloneable, CheckResultSourceInterface, LoggingObjectInterface, VariableSpace, JobEntryInterface, ResourceHolderInterface

public class JobEntryJob
extends JobEntryBase
implements Cloneable, JobEntryInterface

Recursive definition of a Job. This step means that an entire Job has to be executed. It can be the same Job, but just make sure that you don't get an endless loop. Provide an escape routine using JobEval.

Since:
01-10-2003, Rewritten on 18-06-2004
Author:
Matt

Field Summary
 boolean addDate
           
 boolean addTime
           
 boolean argFromPrevious
           
 String[] arguments
           
 boolean createParentFolder
           
static LogLevel DEFAULT_LOG_LEVEL
           
 boolean execPerRow
           
 boolean followingAbortRemotely
           
 String logext
           
 String logfile
           
 LogLevel logFileLevel
           
 boolean parallel
           
 String[] parameterFieldNames
           
 String[] parameters
           
 String[] parameterValues
           
 boolean paramsFromPrevious
           
 boolean passingAllParameters
           
 boolean setAppendLogfile
           
 boolean setLogfile
           
 boolean waitingToFinish
           
 
Constructor Summary
JobEntryJob()
           
JobEntryJob(String name)
           
 
Method Summary
 void check(List<CheckResultInterface> remarks, JobMeta jobMeta)
          Support for overrides not having to put in a check method.
 void clear()
          Clears all variable values
 Object clone()
          This method is called when a job entry is duplicated in Spoon.
 boolean evaluates()
          This method must return true if the job entry supports the true/false outgoing hops.
 Result execute(Result result, int nr)
          Execute the job entry.
 String exportResources(VariableSpace space, Map<String,ResourceDefinition> definitions, ResourceNamingInterface namingInterface, Repository repository)
          We're going to load the transformation meta data referenced here.
 String getDirectory()
           
 String getFilename()
          Gets the filename of the job entry.
 String getFileName()
          Deprecated. use getFilename() instead.
 Job getJob()
           
 JobMeta getJobMeta(Repository rep, VariableSpace space)
           
 String getJobName()
           
 ObjectId getJobObjectId()
           
 String getLogFilename()
           
 String getRealFilename()
          Gets the real filename of the job entry, by substituting any environment variables present in the filename.
 String getRemoteSlaveServerName()
           
 List<ResourceReference> getResourceDependencies(JobMeta jobMeta)
          Gets a list of all the resource dependencies that the step is depending on.
 ObjectLocationSpecificationMethod getSpecificationMethod()
           
 List<SQLStatement> getSQLStatements(Repository repository)
          Gets the SQL statements needed by this job entry to execute successfully.
 List<SQLStatement> getSQLStatements(Repository repository, VariableSpace space)
          Gets the SQL statements needed by this job entry to execute successfully, given a set of variables.
 String getXML()
          This method is called by PDI whenever a job entry needs to serialize its settings to XML.
 boolean hasRepositoryReferences()
          Checks whether the job entry has repository references.
 boolean isExecPerRow()
           
 boolean isFollowingAbortRemotely()
           
 boolean isPassingAllParameters()
           
 boolean isPassingExport()
           
 boolean isUnconditional()
          This method must return true if the job entry supports the unconditional outgoing hop.
 boolean isWaitingToFinish()
           
 void loadRep(Repository rep, ObjectId id_jobentry, List<DatabaseMeta> databases, List<SlaveServer> slaveServers)
          Load the jobentry from repository
 void loadXML(Node entrynode, List<DatabaseMeta> databases, List<SlaveServer> slaveServers, Repository rep)
          This method is called by PDI whenever a job entry needs to read its settings from XML.
 void lookupRepositoryReferences(Repository repository)
          Look up the references after import
static void main(String[] args)
           
 void saveRep(Repository rep, ObjectId id_job)
          This method is called by PDI whenever a job entry needs to save its settings to a PDI repository.
 void setDirectory(String directory)
           
 void setExecPerRow(boolean runEveryResultRow)
           
 void setFileName(String n)
           
 void setFollowingAbortRemotely(boolean followingAbortRemotely)
           
 void setJobName(String jobname)
           
 void setJobObjectId(ObjectId jobObjectId)
           
 void setPassingAllParameters(boolean passingAllParameters)
           
 void setPassingExport(boolean passingExport)
           
 void setRemoteSlaveServerName(String remoteSlaveServerName)
           
 void setSpecificationMethod(ObjectLocationSpecificationMethod specificationMethod)
           
 void setWaitingToFinish(boolean waitingToFinish)
           
 
Methods inherited from class org.pentaho.di.job.entry.JobEntryBase
copyVariablesFrom, environmentSubstitute, environmentSubstitute, equals, getBooleanValueOfVariable, getContainerObjectId, getDescription, getDialogClassName, getHolderType, getLogChannel, getLogChannelId, getLogLevel, getName, getObjectCopy, getObjectId, getObjectName, getObjectRevision, getObjectType, getParent, getParentJob, getParentVariableSpace, getPluginId, getRegistrationDate, getRepository, getRepositoryDirectory, getTypeDesc, getTypeId, getUsedDatabaseConnections, getVariable, getVariable, hasChanged, initializeVariablesFrom, injectVariables, isBasic, isDebug, isDetailed, isDummy, isEvaluation, isFTP, isHTTP, isJob, isMail, isRowlevel, isSFTP, isShell, isSpecial, isStart, isTransformation, listVariables, loadXML, logBasic, logBasic, logDebug, logDebug, logDetailed, logDetailed, logError, logError, logError, logMinimal, logMinimal, logRowlevel, logRowlevel, parseRepositoryObjects, resetErrorsBeforeExecution, setChanged, setChanged, setContainerObjectId, setDescription, setID, setLogLevel, setName, setObjectId, setParentJob, setParentVariableSpace, setPluginId, setRepository, setTypeId, setVariable, shareVariablesWith, toString
 
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.pentaho.di.job.entry.JobEntryInterface
getDescription, getDialogClassName, getLogChannel, getName, getObjectId, getParentJob, getPluginId, getTypeId, getUsedDatabaseConnections, hasChanged, isDummy, isEvaluation, isJob, isMail, isShell, isSpecial, isStart, isTransformation, resetErrorsBeforeExecution, setChanged, setChanged, setDescription, setName, setObjectId, setParentJob, setPluginId, setRepository
 

Field Detail

arguments

public String[] arguments

argFromPrevious

public boolean argFromPrevious

paramsFromPrevious

public boolean paramsFromPrevious

execPerRow

public boolean execPerRow

parameters

public String[] parameters

parameterFieldNames

public String[] parameterFieldNames

parameterValues

public String[] parameterValues

setLogfile

public boolean setLogfile

logfile

public String logfile

logext

public String logext

addDate

public boolean addDate

addTime

public boolean addTime

logFileLevel

public LogLevel logFileLevel

parallel

public boolean parallel

setAppendLogfile

public boolean setAppendLogfile

createParentFolder

public boolean createParentFolder

waitingToFinish

public boolean waitingToFinish

followingAbortRemotely

public boolean followingAbortRemotely

passingAllParameters

public boolean passingAllParameters

DEFAULT_LOG_LEVEL

public static final LogLevel DEFAULT_LOG_LEVEL
Constructor Detail

JobEntryJob

public JobEntryJob(String name)

JobEntryJob

public JobEntryJob()
Method Detail

clone

public Object clone()
Description copied from class: JobEntryBase
This method is called when a job entry is duplicated in Spoon. It needs to return a deep copy of this job entry object. It is essential that the implementing class creates proper deep copies if the job entry configuration is stored in modifiable objects, such as lists or custom helper objects.

Specified by:
clone in interface JobEntryInterface
Overrides:
clone in class JobEntryBase
Returns:
a clone of the object

setFileName

public void setFileName(String n)

getFileName

public String getFileName()
Deprecated. use getFilename() instead.

Returns:
the filename

getFilename

public String getFilename()
Description copied from class: JobEntryBase
Gets the filename of the job entry. For JobEntryBase, this method always returns null

Specified by:
getFilename in interface LoggingObjectInterface
Specified by:
getFilename in interface JobEntryInterface
Overrides:
getFilename in class JobEntryBase
Returns:
null
See Also:
LoggingObjectInterface.getFilename()

getRealFilename

public String getRealFilename()
Description copied from class: JobEntryBase
Gets the real filename of the job entry, by substituting any environment variables present in the filename. For JobEntryBase, this method always returns null

Specified by:
getRealFilename in interface JobEntryInterface
Overrides:
getRealFilename in class JobEntryBase
Returns:
null

setJobName

public void setJobName(String jobname)

getJobName

public String getJobName()

getDirectory

public String getDirectory()

setDirectory

public void setDirectory(String directory)

isPassingExport

public boolean isPassingExport()

setPassingExport

public void setPassingExport(boolean passingExport)

getLogFilename

public String getLogFilename()

getXML

public String getXML()
Description copied from class: JobEntryBase
This method is called by PDI whenever a job entry needs to serialize its settings to XML. It is called when saving a job in Spoon. The method returns an XML string, containing the serialized settings. The string contains a series of XML tags, typically one tag per setting. The helper class org.pentaho.di.core.xml.XMLHandler is typically used to construct the XML string.

Specified by:
getXML in interface JobEntryInterface
Overrides:
getXML in class JobEntryBase
Returns:
the xml representation of the job entry

loadXML

public void loadXML(Node entrynode,
                    List<DatabaseMeta> databases,
                    List<SlaveServer> slaveServers,
                    Repository rep)
             throws KettleXMLException
Description copied from interface: JobEntryInterface
This method is called by PDI whenever a job entry needs to read its settings from XML. The XML node containing the job entry�s settings is passed in as an argument. Again, the helper class org.pentaho.di.core.xml.XMLHandler is typically used to conveniently read the settings from the XML node.

Specified by:
loadXML in interface JobEntryInterface
Parameters:
entrynode - the top-level XML node
databases - the list of databases
slaveServers - the list of slave servers
rep - the repository object
Throws:
KettleXMLException - if any errors occur during the loading of the XML

loadRep

public void loadRep(Repository rep,
                    ObjectId id_jobentry,
                    List<DatabaseMeta> databases,
                    List<SlaveServer> slaveServers)
             throws KettleException
Load the jobentry from repository

Specified by:
loadRep in interface JobEntryInterface
Overrides:
loadRep in class JobEntryBase
Parameters:
rep - the repository object
id_jobentry - the id of the job entry
databases - the list of databases
slaveServers - the list of slave servers
Throws:
KettleException - if any errors occur during the load

saveRep

public void saveRep(Repository rep,
                    ObjectId id_job)
             throws KettleException
Description copied from class: JobEntryBase
This method is called by PDI whenever a job entry needs to save its settings to a PDI repository. For JobEntryBase, this method performs no operations

Specified by:
saveRep in interface JobEntryInterface
Overrides:
saveRep in class JobEntryBase
Parameters:
rep - the repository object
id_job - the id_job
Throws:
KettleException - if any errors occur during the save

execute

public Result execute(Result result,
                      int nr)
               throws KettleException
Description copied from interface: JobEntryInterface
Execute the job entry. The previous result and number of rows are provided to the method for the purpose of chaining job entries, transformations, etc.

Specified by:
execute in interface JobEntryInterface
Parameters:
result - the previous result
nr - the number of rows
Returns:
the Result object from execution of this job entry
Throws:
KettleException - if any Kettle exceptions occur

clear

public void clear()
Description copied from class: JobEntryBase
Clears all variable values

Specified by:
clear in interface JobEntryInterface
Overrides:
clear in class JobEntryBase

evaluates

public boolean evaluates()
Description copied from class: JobEntryBase
This method must return true if the job entry supports the true/false outgoing hops. For JobEntryBase, this method always returns false

Specified by:
evaluates in interface JobEntryInterface
Overrides:
evaluates in class JobEntryBase
Returns:
false

isUnconditional

public boolean isUnconditional()
Description copied from class: JobEntryBase
This method must return true if the job entry supports the unconditional outgoing hop. For JobEntryBase, this method always returns true

Specified by:
isUnconditional in interface JobEntryInterface
Overrides:
isUnconditional in class JobEntryBase
Returns:
true

getSQLStatements

public List<SQLStatement> getSQLStatements(Repository repository)
                                    throws KettleException
Description copied from class: JobEntryBase
Gets the SQL statements needed by this job entry to execute successfully.

Specified by:
getSQLStatements in interface JobEntryInterface
Overrides:
getSQLStatements in class JobEntryBase
Parameters:
repository - the repository
Returns:
a list of SQL statements
Throws:
KettleException - if any errors occur during the generation of SQL statements

getSQLStatements

public List<SQLStatement> getSQLStatements(Repository repository,
                                           VariableSpace space)
                                    throws KettleException
Description copied from class: JobEntryBase
Gets the SQL statements needed by this job entry to execute successfully, given a set of variables. For JobEntryBase, this method returns an empty list.

Specified by:
getSQLStatements in interface JobEntryInterface
Overrides:
getSQLStatements in class JobEntryBase
Parameters:
repository - the repository object
space - a variable space object containing variable bindings
Returns:
an empty list
Throws:
KettleException - if any errors occur during the generation of SQL statements

getJobMeta

public JobMeta getJobMeta(Repository rep,
                          VariableSpace space)
                   throws KettleException
Throws:
KettleException

isExecPerRow

public boolean isExecPerRow()
Returns:
Returns the runEveryResultRow.

setExecPerRow

public void setExecPerRow(boolean runEveryResultRow)
Parameters:
runEveryResultRow - The runEveryResultRow to set.

getResourceDependencies

public List<ResourceReference> getResourceDependencies(JobMeta jobMeta)
Description copied from class: JobEntryBase
Gets a list of all the resource dependencies that the step is depending on. In JobEntryBase, this method returns an empty resource dependency list.

Specified by:
getResourceDependencies in interface JobEntryInterface
Overrides:
getResourceDependencies in class JobEntryBase
Returns:
an empty list of ResourceReferences
See Also:
ResourceReference

exportResources

public String exportResources(VariableSpace space,
                              Map<String,ResourceDefinition> definitions,
                              ResourceNamingInterface namingInterface,
                              Repository repository)
                       throws KettleException
We're going to load the transformation meta data referenced here. Then we're going to give it a new filename, modify that filename in this entries. The parent caller will have made a copy of it, so it should be OK to do so.

Specified by:
exportResources in interface JobEntryInterface
Overrides:
exportResources in class JobEntryBase
Parameters:
space - The variable space to resolve (environment) variables with.
definitions - The map containing the filenames and content
namingInterface - The resource naming interface allows the object to be named appropriately
repository - The repository to load resources from
Returns:
The filename for this object. (also contained in the definitions map)
Throws:
KettleException - in case something goes wrong during the export

check

public void check(List<CheckResultInterface> remarks,
                  JobMeta jobMeta)
Description copied from class: JobEntryBase
Support for overrides not having to put in a check method. For JobEntryBase, this method performs no operations.

Specified by:
check in interface JobEntryInterface
Overrides:
check in class JobEntryBase
Parameters:
remarks - CheckResults from checking the job entry
jobMeta - JobMeta information letting threading back to the JobMeta possible

main

public static void main(String[] args)

getRemoteSlaveServerName

public String getRemoteSlaveServerName()
Returns:
the remote slave server name

setRemoteSlaveServerName

public void setRemoteSlaveServerName(String remoteSlaveServerName)
Parameters:
remoteSlaveServerName - the remoteSlaveServer to set

isWaitingToFinish

public boolean isWaitingToFinish()
Returns:
the waitingToFinish

setWaitingToFinish

public void setWaitingToFinish(boolean waitingToFinish)
Parameters:
waitingToFinish - the waitingToFinish to set

isFollowingAbortRemotely

public boolean isFollowingAbortRemotely()
Returns:
the followingAbortRemotely

setFollowingAbortRemotely

public void setFollowingAbortRemotely(boolean followingAbortRemotely)
Parameters:
followingAbortRemotely - the followingAbortRemotely to set

isPassingAllParameters

public boolean isPassingAllParameters()
Returns:
the passingAllParameters

setPassingAllParameters

public void setPassingAllParameters(boolean passingAllParameters)
Parameters:
passingAllParameters - the passingAllParameters to set

getJob

public Job getJob()

getJobObjectId

public ObjectId getJobObjectId()
Returns:
the jobObjectId

setJobObjectId

public void setJobObjectId(ObjectId jobObjectId)
Parameters:
jobObjectId - the jobObjectId to set

getSpecificationMethod

public ObjectLocationSpecificationMethod getSpecificationMethod()
Returns:
the specificationMethod

setSpecificationMethod

public void setSpecificationMethod(ObjectLocationSpecificationMethod specificationMethod)
Parameters:
specificationMethod - the specificationMethod to set

hasRepositoryReferences

public boolean hasRepositoryReferences()
Description copied from class: JobEntryBase
Checks whether the job entry has repository references. For JobEntryBase, this method always returns false

Specified by:
hasRepositoryReferences in interface JobEntryInterface
Overrides:
hasRepositoryReferences in class JobEntryBase
Returns:
false

lookupRepositoryReferences

public void lookupRepositoryReferences(Repository repository)
                                throws KettleException
Look up the references after import

Specified by:
lookupRepositoryReferences in interface JobEntryInterface
Overrides:
lookupRepositoryReferences in class JobEntryBase
Parameters:
repository - the repository to reference.
Throws:
KettleException - if any errors occur during the lookup