Class JobEntryFileCompare
- java.lang.Object
-
- org.pentaho.di.job.entry.JobEntryBase
-
- org.pentaho.di.job.entries.filecompare.JobEntryFileCompare
-
- All Implemented Interfaces:
Cloneable
,org.pentaho.di.core.AttributesInterface
,org.pentaho.di.core.CheckResultSourceInterface
,org.pentaho.di.core.ExtensionDataInterface
,org.pentaho.di.core.logging.LoggingObjectInterface
,org.pentaho.di.core.logging.LoggingObjectLifecycleInterface
,org.pentaho.di.core.variables.VariableSpace
,JobEntryInterface
,ResourceHolderInterface
public class JobEntryFileCompare extends JobEntryBase implements Cloneable, JobEntryInterface
This defines a 'file compare' job entry. It will compare 2 files in a binary way, and will either follow the true flow upon the files being the same or the false flow otherwise.- Since:
- 01-02-2007
- Author:
- Sven Boden
-
-
Field Summary
-
Fields inherited from class org.pentaho.di.job.entry.JobEntryBase
attributesMap, containerObjectId, entryStepSetVariablesMap, extensionDataMap, log, metaStore, parentJob, rep, variables
-
-
Constructor Summary
Constructors Constructor Description JobEntryFileCompare()
JobEntryFileCompare(String n)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
check(List<org.pentaho.di.core.CheckResultInterface> remarks, JobMeta jobMeta, org.pentaho.di.core.variables.VariableSpace space, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore)
Allows JobEntry objects to check themselves for consistencyObject
clone()
This method is called when a job entry is duplicated in Spoon.protected boolean
equalFileContents(org.apache.commons.vfs2.FileObject file1, org.apache.commons.vfs2.FileObject file2)
Check whether 2 files have the same contents.boolean
evaluates()
This method must return true if the job entry supports the true/false outgoing hops.org.pentaho.di.core.Result
execute(org.pentaho.di.core.Result previousResult, int nr)
Execute the job entry.String
getFilename1()
String
getFilename2()
JobMeta
getParentJobMeta()
Return Gets the parent jobMeta.String
getRealFilename1()
String
getRealFilename2()
List<ResourceReference>
getResourceDependencies(JobMeta jobMeta)
Gets a list of all the resource dependencies that the step is depending on.String
getXML()
This method is called by PDI whenever a job entry needs to serialize its settings to XML.boolean
isAddFilenameToResult()
void
loadRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_jobentry, List<org.pentaho.di.core.database.DatabaseMeta> databases, List<SlaveServer> slaveServers)
This method is called by PDI whenever a job entry needs to read its configuration from a PDI repository.void
loadXML(Node entrynode, List<org.pentaho.di.core.database.DatabaseMeta> databases, List<SlaveServer> slaveServers, Repository rep, org.pentaho.metastore.api.IMetaStore metaStore)
This method is called by PDI whenever a job entry needs to read its settings from XML.void
saveRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_job)
This method is called by PDI whenever a job entry needs to save its settings to a PDI repository.void
setAddFilenameToResult(boolean addFilenameToResult)
void
setFilename1(String filename)
void
setFilename2(String filename)
void
setParentJobMeta(JobMeta parentJobMeta)
At save and run time, the system will attempt to set the jobMeta so that it can be accessed by the jobEntries if necessary.-
Methods inherited from class org.pentaho.di.job.entry.JobEntryBase
addDatetimeToFilename, check, clear, copyVariablesFrom, environmentSubstitute, environmentSubstitute, equals, exportResources, exportResources, fieldSubstitute, getAttribute, getAttributes, getAttributesMap, getBooleanValueOfVariable, getContainerObjectId, getDescription, getDialogClassName, getEntryStepSetVariable, getEntryStepSetVariablesMap, getExtensionDataMap, getFilename, getHolderType, getLogChannel, getLogChannelId, getLogLevel, getMetaStore, getName, getObjectCopy, getObjectId, getObjectName, getObjectRevision, getObjectType, getParent, getParentJob, getParentVariableSpace, getPluginId, getRealFilename, getReferencedObjectDescriptions, getRegistrationDate, getRepository, getRepositoryDirectory, getSQLStatements, getSQLStatements, getSQLStatements, getTypeDesc, getTypeId, getUsedDatabaseConnections, getVariable, getVariable, getVariables, hasChanged, hashCode, hasRepositoryReferences, initializeVariablesFrom, injectVariables, isBasic, isDebug, isDetailed, isDummy, isEvaluation, isForcingSeparateLogging, isFTP, isGatheringMetrics, isHTTP, isJob, isLoggingObjectInUse, isMail, isReferencedObjectEnabled, isRowlevel, isSFTP, isShell, isSpecial, isStart, isTransformation, isUnconditional, listVariables, loadReferencedObject, loadReferencedObject, loadRep, loadXML, loadXML, logBasic, logBasic, logDebug, logDebug, logDetailed, logDetailed, logError, logError, logError, logMinimal, logMinimal, logRowlevel, logRowlevel, lookupRepositoryReferences, parseRepositoryObjects, resetErrorsBeforeExecution, saveRep, setAttribute, setAttributes, setAttributesMap, setChanged, setChanged, setContainerObjectId, setDescription, setEntryStepSetVariable, setForcingSeparateLogging, setGatheringMetrics, setID, setLoggingObjectInUse, setLogLevel, setMetaStore, setName, setObjectId, setParentJob, setParentVariableSpace, setPluginId, setRepository, setTypeId, setVariable, shareVariablesWith, toString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.pentaho.di.job.entry.JobEntryInterface
check, clear, exportResources, exportResources, getDescription, getDialogClassName, getFilename, getLogChannel, getName, getObjectId, getParentJob, getPluginId, getRealFilename, getReferencedObjectDescriptions, getSQLStatements, getSQLStatements, getSQLStatements, getTypeId, getUsedDatabaseConnections, hasChanged, hasRepositoryReferences, isDummy, isEvaluation, isJob, isMail, isReferencedObjectEnabled, isShell, isSpecial, isStart, isTransformation, isUnconditional, loadReferencedObject, loadReferencedObject, loadRep, loadXML, lookupRepositoryReferences, resetErrorsBeforeExecution, saveRep, setChanged, setChanged, setDescription, setMetaStore, setName, setObjectId, setParentJob, setPluginId, setRepository
-
-
-
-
Constructor Detail
-
JobEntryFileCompare
public JobEntryFileCompare(String n)
-
JobEntryFileCompare
public JobEntryFileCompare()
-
-
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 interfaceJobEntryInterface
- Overrides:
clone
in classJobEntryBase
- Returns:
- a clone of the object
-
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 interfaceJobEntryInterface
- Overrides:
getXML
in classJobEntryBase
- Returns:
- the xml representation of the job entry
-
loadXML
public void loadXML(Node entrynode, List<org.pentaho.di.core.database.DatabaseMeta> databases, List<SlaveServer> slaveServers, Repository rep, org.pentaho.metastore.api.IMetaStore metaStore) throws org.pentaho.di.core.exception.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 interfaceJobEntryInterface
- Overrides:
loadXML
in classJobEntryBase
- Parameters:
entrynode
- the top-level XML nodedatabases
- the list of databasesslaveServers
- the list of slave serversrep
- the repository objectmetaStore
- The metaStore to optionally load from.- Throws:
org.pentaho.di.core.exception.KettleXMLException
- if any errors occur during the loading of the XML
-
loadRep
public void loadRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_jobentry, List<org.pentaho.di.core.database.DatabaseMeta> databases, List<SlaveServer> slaveServers) throws org.pentaho.di.core.exception.KettleException
Description copied from interface:JobEntryInterface
This method is called by PDI whenever a job entry needs to read its configuration from a PDI repository. The job entry id given in the arguments should be used as the identifier when using the repository's serialization methods.- Specified by:
loadRep
in interfaceJobEntryInterface
- Overrides:
loadRep
in classJobEntryBase
- Parameters:
rep
- the repository objectmetaStore
- the MetaStore to useid_jobentry
- the id of the job entrydatabases
- the list of databasesslaveServers
- the list of slave servers- Throws:
org.pentaho.di.core.exception.KettleException
- if any errors occur during the load
-
saveRep
public void saveRep(Repository rep, org.pentaho.metastore.api.IMetaStore metaStore, org.pentaho.di.repository.ObjectId id_job) throws org.pentaho.di.core.exception.KettleException
Description copied from interface:JobEntryInterface
This method is called by PDI whenever a job entry needs to save its settings to a PDI repository. The repository object passed in as the first argument provides a convenient set of methods for serializing job entry settings. When calling repository serialization methods, job id and job entry id are required. The job id is passed in to saveRep() as an argument, and the job entry id can be obtained by a call to getObjectId() inherited from the base class.- Specified by:
saveRep
in interfaceJobEntryInterface
- Overrides:
saveRep
in classJobEntryBase
- Parameters:
rep
- the repositorymetaStore
- the MetaStore to useid_job
- the id_job- Throws:
org.pentaho.di.core.exception.KettleException
- if any errors occur during the save
-
getRealFilename1
public String getRealFilename1()
-
getRealFilename2
public String getRealFilename2()
-
equalFileContents
protected boolean equalFileContents(org.apache.commons.vfs2.FileObject file1, org.apache.commons.vfs2.FileObject file2) throws org.pentaho.di.core.exception.KettleFileException
Check whether 2 files have the same contents.- Parameters:
file1
- first file to comparefile2
- second file to compare- Returns:
- true if files are equal, false if they are not
- Throws:
IOException
- upon IO problemsorg.pentaho.di.core.exception.KettleFileException
-
execute
public org.pentaho.di.core.Result execute(org.pentaho.di.core.Result previousResult, int nr)
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 interfaceJobEntryInterface
- Parameters:
previousResult
- the previous resultnr
- the number of rows- Returns:
- the Result object from execution of this job entry
-
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 interfaceJobEntryInterface
- Overrides:
evaluates
in classJobEntryBase
- Returns:
- false
-
setFilename1
public void setFilename1(String filename)
-
getFilename1
public String getFilename1()
-
setFilename2
public void setFilename2(String filename)
-
getFilename2
public String getFilename2()
-
isAddFilenameToResult
public boolean isAddFilenameToResult()
-
setAddFilenameToResult
public void setAddFilenameToResult(boolean addFilenameToResult)
-
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 interfaceJobEntryInterface
- Overrides:
getResourceDependencies
in classJobEntryBase
- Returns:
- an empty list of ResourceReferences
- See Also:
ResourceReference
-
check
public void check(List<org.pentaho.di.core.CheckResultInterface> remarks, JobMeta jobMeta, org.pentaho.di.core.variables.VariableSpace space, Repository repository, org.pentaho.metastore.api.IMetaStore metaStore)
Description copied from class:JobEntryBase
Allows JobEntry objects to check themselves for consistency- Specified by:
check
in interfaceJobEntryInterface
- Overrides:
check
in classJobEntryBase
- Parameters:
remarks
- List of CheckResult objects indicating consistency statusjobMeta
- the metadata object for the job entryspace
- the variable space to resolve string expressions with variables withrepository
- the repository to load Kettle objects frommetaStore
- the MetaStore to load common elements from
-
getParentJobMeta
public JobMeta getParentJobMeta()
Description copied from interface:JobEntryInterface
Return Gets the parent jobMeta. This default method will throw an exception if a job entry attempts to call the getter when not implemented.- Specified by:
getParentJobMeta
in interfaceJobEntryInterface
- Overrides:
getParentJobMeta
in classJobEntryBase
- Returns:
- The parent jobMeta at save and during execution.
-
setParentJobMeta
public void setParentJobMeta(JobMeta parentJobMeta)
Description copied from class:JobEntryBase
At save and run time, the system will attempt to set the jobMeta so that it can be accessed by the jobEntries if necessary.- Specified by:
setParentJobMeta
in interfaceJobEntryInterface
- Overrides:
setParentJobMeta
in classJobEntryBase
- Parameters:
parentJobMeta
- the JobMeta to which this JobEntryInterface belongs
-
-