org.pentaho.di.trans.steps.excelinput
Class ExcelInputMeta
java.lang.Object
org.pentaho.di.trans.step.BaseStepMeta
org.pentaho.di.trans.steps.excelinput.ExcelInputMeta
- All Implemented Interfaces:
- Cloneable, StepAttributesInterface, StepMetaInterface
public class ExcelInputMeta
- extends BaseStepMeta
- implements StepMetaInterface
Meta data for the Excel step.
Method Summary |
void |
allocate(int nrfiles,
int nrsheets,
int nrfields)
|
void |
check(List<CheckResultInterface> remarks,
TransMeta transMeta,
StepMeta stepMeta,
RowMetaInterface prev,
String[] input,
String[] output,
RowMetaInterface info)
Checks the settings of this step and puts the findings in a remarks List. |
Object |
clone()
Make an exact copy of this step, make sure to explicitly copy Collections etc. |
String |
exportResources(VariableSpace space,
Map<String,ResourceDefinition> definitions,
ResourceNamingInterface resourceNamingInterface,
Repository repository)
Since the exported transformation that runs this will reside in a ZIP file, we can't reference files relatively. |
String |
getAcceptingField()
|
StepMeta |
getAcceptingStep()
|
String |
getAcceptingStepName()
|
String |
getBadLineFilesExtension()
|
RowMetaInterface |
getEmptyFields()
|
String |
getEncoding()
|
String |
getErrorFilesDestinationDirectory()
|
String |
getErrorFilesExtension()
|
String[] |
getExludeFileMask()
|
String |
getExtensionField()
|
ExcelInputField[] |
getField()
|
void |
getFields(RowMetaInterface row,
String name,
RowMetaInterface[] info,
StepMeta nextStep,
VariableSpace space)
Get the fields that are emitted by this step |
String |
getFileField()
|
FileInputList |
getFileList(VariableSpace space)
|
String[] |
getFileMask()
|
String[] |
getFileName()
|
String[] |
getFilePaths(VariableSpace space)
|
String[] |
getFileRequired()
|
String[] |
getIncludeSubFolders()
|
String[] |
getInfoSteps()
|
String |
getLastModificationDateField()
|
String |
getLineNumberFilesDestinationDirectory()
|
String |
getLineNumberFilesExtension()
|
String |
getLookupStepname()
|
String |
getPathField()
|
String |
getRequiredFilesCode(String tt)
|
String |
getRequiredFilesDesc(String tt)
|
String |
getRootUriField()
|
long |
getRowLimit()
|
String |
getRowNumberField()
|
String |
getSheetField()
|
String[] |
getSheetName()
|
String |
getSheetRowNumberField()
|
String |
getShortFileNameField()
|
String |
getSizeField()
|
SpreadSheetType |
getSpreadSheetType()
|
int[] |
getStartColumn()
|
int[] |
getStartRow()
|
StepInterface |
getStep(StepMeta stepMeta,
StepDataInterface stepDataInterface,
int cnr,
TransMeta transMeta,
Trans trans)
Get the executing step, needed by Trans to launch a step. |
StepDataInterface |
getStepData()
Get a new instance of the appropriate data class. |
StepMetaInjectionInterface |
getStepMetaInjectionInterface()
|
static int |
getTrimTypeByCode(String tt)
|
static int |
getTrimTypeByDesc(String tt)
|
static String |
getTrimTypeCode(int i)
|
static String |
getTrimTypeDesc(int i)
|
String |
getUriField()
|
String[] |
getUsedLibraries()
|
String |
getWarningFilesDestinationDirectory()
|
String |
getXML()
Produces the XML string that describes this step's information. |
boolean |
ignoreEmptyRows()
|
boolean |
isAcceptingFilenames()
|
boolean |
isAddResultFile()
|
boolean |
isErrorIgnored()
|
boolean |
isErrorLineSkipped()
|
String |
isHiddenField()
|
boolean |
isStrictTypes()
|
void |
loadXML(Node stepnode,
List<DatabaseMeta> databases,
Map<String,Counter> counters)
Load the values for this step from an XML Node |
boolean |
readAllSheets()
Read all sheets if the sheet names are left blank. |
void |
readRep(Repository rep,
ObjectId id_step,
List<DatabaseMeta> databases,
Map<String,Counter> counters)
Read the steps information from a Kettle repository |
void |
saveRep(Repository rep,
ObjectId id_transformation,
ObjectId id_step)
Save the steps data into a Kettle repository |
void |
searchInfoAndTargetSteps(List<StepMeta> steps)
Change step names into step objects to allow them to be name-changed etc. |
void |
setAcceptingField(String acceptingField)
|
void |
setAcceptingFilenames(boolean acceptingFilenames)
|
void |
setAcceptingStep(StepMeta acceptingStep)
|
void |
setAcceptingStepName(String acceptingStepName)
|
void |
setAddResultFile(boolean isaddresult)
|
void |
setBadLineFilesExtension(String badLineFilesExtension)
|
void |
setDefault()
Set default values |
void |
setEncoding(String encoding)
|
void |
setErrorFilesDestinationDirectory(String errorLineFilesDestinationDirectory)
|
void |
setErrorFilesExtension(String errorLineFilesExtension)
|
void |
setErrorIgnored(boolean errorIgnored)
|
void |
setErrorLineSkipped(boolean errorLineSkipped)
|
void |
setExcludeFileMask(String[] excludeFileMask)
|
void |
setExtensionField(String field)
|
void |
setField(ExcelInputField[] fields)
|
void |
setFileField(String fileField)
|
void |
setFileMask(String[] fileMask)
|
void |
setFileName(String[] fileName)
|
void |
setFileRequired(String[] fileRequiredin)
|
void |
setIgnoreEmptyRows(boolean ignoreEmptyRows)
|
void |
setIncludeSubFolders(String[] includeSubFoldersin)
|
void |
setIsHiddenField(String field)
|
void |
setLastModificationDateField(String field)
|
void |
setLineNumberFilesDestinationDirectory(String lineNumberFilesDestinationDirectory)
|
void |
setLineNumberFilesExtension(String lineNumberFilesExtension)
|
void |
setPathField(String field)
|
void |
setRootUriField(String field)
|
void |
setRowLimit(long rowLimit)
|
void |
setRowNumberField(String rowNumberField)
|
void |
setSheetField(String sheetField)
|
void |
setSheetName(String[] sheetName)
|
void |
setSheetRowNumberField(String rowNumberField)
|
void |
setShortFileNameField(String field)
|
void |
setSizeField(String field)
|
void |
setSpreadSheetType(SpreadSheetType spreadSheetType)
|
void |
setStartColumn(int[] startColumn)
|
void |
setStartRow(int[] startRow)
|
void |
setStartsWithHeader(boolean startsWithHeader)
|
void |
setStopOnEmpty(boolean stopOnEmpty)
|
void |
setStrictTypes(boolean strictTypes)
|
void |
setUriField(String field)
|
void |
setWarningFilesDestinationDirectory(String badLineFilesDestinationDirectory)
|
boolean |
startsWithHeader()
|
boolean |
stopOnEmpty()
|
Methods inherited from class org.pentaho.di.trans.step.BaseStepMeta |
analyseImpact, cancelQueries, excludeFromCopyDistributeVerification, excludeFromRowLayoutVerification, findAttribute, findParent, getDescription, getDialogClassName, getLog, getLogChannelId, getName, getObjectCopy, getObjectId, getObjectRevision, getObjectType, getOptionalStreams, getParent, getParentStepMeta, getRepCode, getRepositoryDirectory, getRequiredFields, getRequiredFields, getResourceDependencies, getSQLStatements, getStepInjectionMetadataEntries, getStepIOMeta, getSupportedTransformationTypes, getTableFields, getTooltip, getUsedArguments, getUsedDatabaseConnections, getXmlCode, handleStreamSelection, hasChanged, hasRepositoryReferences, isBasic, isDebug, isDetailed, isRowLevel, logBasic, logBasic, logDebug, logDebug, logDetailed, logDetailed, logError, logError, logError, logMinimal, logMinimal, logRowlevel, logRowlevel, lookupRepositoryReferences, resetStepIoMeta, setChanged, setChanged, setParentStepMeta, supportsErrorHandling |
Methods inherited from interface org.pentaho.di.trans.step.StepMetaInterface |
analyseImpact, cancelQueries, excludeFromCopyDistributeVerification, excludeFromRowLayoutVerification, getDialogClassName, getOptionalStreams, getParentStepMeta, getRequiredFields, getResourceDependencies, getSQLStatements, getStepIOMeta, getSupportedTransformationTypes, getTableFields, getUsedArguments, getUsedDatabaseConnections, handleStreamSelection, hasRepositoryReferences, lookupRepositoryReferences, resetStepIoMeta, setParentStepMeta, supportsErrorHandling |
RequiredFilesDesc
public static final String[] RequiredFilesDesc
RequiredFilesCode
public static final String[] RequiredFilesCode
TYPE_TRIM_NONE
public static final int TYPE_TRIM_NONE
- See Also:
- Constant Field Values
TYPE_TRIM_LEFT
public static final int TYPE_TRIM_LEFT
- See Also:
- Constant Field Values
TYPE_TRIM_RIGHT
public static final int TYPE_TRIM_RIGHT
- See Also:
- Constant Field Values
TYPE_TRIM_BOTH
public static final int TYPE_TRIM_BOTH
- See Also:
- Constant Field Values
type_trim_code
public static final String[] type_trim_code
type_trim_desc
public static final String[] type_trim_desc
STRING_SEPARATOR
public static final String STRING_SEPARATOR
- See Also:
- Constant Field Values
ExcelInputMeta
public ExcelInputMeta()
getShortFileNameField
public String getShortFileNameField()
- Returns:
- Returns the shortFileFieldName.
setShortFileNameField
public void setShortFileNameField(String field)
- Parameters:
field
- The shortFileFieldName to set.
getPathField
public String getPathField()
- Returns:
- Returns the pathFieldName.
setPathField
public void setPathField(String field)
- Parameters:
field
- The pathFieldName to set.
isHiddenField
public String isHiddenField()
- Returns:
- Returns the hiddenFieldName.
setIsHiddenField
public void setIsHiddenField(String field)
- Parameters:
field
- The hiddenFieldName to set.
getLastModificationDateField
public String getLastModificationDateField()
- Returns:
- Returns the lastModificationTimeFieldName.
setLastModificationDateField
public void setLastModificationDateField(String field)
- Parameters:
field
- The lastModificationTimeFieldName to set.
getUriField
public String getUriField()
- Returns:
- Returns the uriNameFieldName.
setUriField
public void setUriField(String field)
- Parameters:
field
- The uriNameFieldName to set.
getRootUriField
public String getRootUriField()
- Returns:
- Returns the uriNameFieldName.
setRootUriField
public void setRootUriField(String field)
- Parameters:
field
- The rootUriNameFieldName to set.
getExtensionField
public String getExtensionField()
- Returns:
- Returns the extensionFieldName.
setExtensionField
public void setExtensionField(String field)
- Parameters:
field
- The extensionFieldName to set.
getSizeField
public String getSizeField()
- Returns:
- Returns the sizeFieldName.
setSizeField
public void setSizeField(String field)
- Parameters:
field
- The sizeFieldName to set.
getField
public ExcelInputField[] getField()
- Returns:
- Returns the fieldLength.
setField
public void setField(ExcelInputField[] fields)
- Parameters:
fields
- The excel input fields to set.
getFileField
public String getFileField()
- Returns:
- Returns the fileField.
setFileField
public void setFileField(String fileField)
- Parameters:
fileField
- The fileField to set.
getFileMask
public String[] getFileMask()
- Returns:
- Returns the fileMask.
setFileMask
public void setFileMask(String[] fileMask)
- Parameters:
fileMask
- The fileMask to set.
getExludeFileMask
public String[] getExludeFileMask()
- Returns:
- Returns the excludeFileMask.
setExcludeFileMask
public void setExcludeFileMask(String[] excludeFileMask)
- Parameters:
excludeFileMask
- The excludeFileMask to set.
getIncludeSubFolders
public String[] getIncludeSubFolders()
setIncludeSubFolders
public void setIncludeSubFolders(String[] includeSubFoldersin)
getRequiredFilesCode
public String getRequiredFilesCode(String tt)
getRequiredFilesDesc
public String getRequiredFilesDesc(String tt)
getFileName
public String[] getFileName()
- Returns:
- Returns the fileName.
setFileName
public void setFileName(String[] fileName)
- Parameters:
fileName
- The fileName to set.
ignoreEmptyRows
public boolean ignoreEmptyRows()
- Returns:
- Returns the ignoreEmptyRows.
setIgnoreEmptyRows
public void setIgnoreEmptyRows(boolean ignoreEmptyRows)
- Parameters:
ignoreEmptyRows
- The ignoreEmptyRows to set.
getRowLimit
public long getRowLimit()
- Returns:
- Returns the rowLimit.
setRowLimit
public void setRowLimit(long rowLimit)
- Parameters:
rowLimit
- The rowLimit to set.
getRowNumberField
public String getRowNumberField()
- Returns:
- Returns the rowNumberField.
setRowNumberField
public void setRowNumberField(String rowNumberField)
- Parameters:
rowNumberField
- The rowNumberField to set.
getSheetRowNumberField
public String getSheetRowNumberField()
- Returns:
- Returns the sheetRowNumberField.
setSheetRowNumberField
public void setSheetRowNumberField(String rowNumberField)
- Parameters:
rowNumberField
- The rowNumberField to set.
getSheetField
public String getSheetField()
- Returns:
- Returns the sheetField.
setSheetField
public void setSheetField(String sheetField)
- Parameters:
sheetField
- The sheetField to set.
getSheetName
public String[] getSheetName()
- Returns:
- Returns the sheetName.
setSheetName
public void setSheetName(String[] sheetName)
- Parameters:
sheetName
- The sheetName to set.
getStartColumn
public int[] getStartColumn()
- Returns:
- Returns the startColumn.
setStartColumn
public void setStartColumn(int[] startColumn)
- Parameters:
startColumn
- The startColumn to set.
getStartRow
public int[] getStartRow()
- Returns:
- Returns the startRow.
setStartRow
public void setStartRow(int[] startRow)
- Parameters:
startRow
- The startRow to set.
startsWithHeader
public boolean startsWithHeader()
- Returns:
- Returns the startsWithHeader.
setStartsWithHeader
public void setStartsWithHeader(boolean startsWithHeader)
- Parameters:
startsWithHeader
- The startsWithHeader to set.
stopOnEmpty
public boolean stopOnEmpty()
- Returns:
- Returns the stopOnEmpty.
setStopOnEmpty
public void setStopOnEmpty(boolean stopOnEmpty)
- Parameters:
stopOnEmpty
- The stopOnEmpty to set.
loadXML
public void loadXML(Node stepnode,
List<DatabaseMeta> databases,
Map<String,Counter> counters)
throws KettleXMLException
- Description copied from interface:
StepMetaInterface
- Load the values for this step from an XML Node
- Specified by:
loadXML
in interface StepMetaInterface
- Parameters:
stepnode
- the Node to get the info fromdatabases
- The available list of databases to reference tocounters
- Counters to reference.
- Throws:
KettleXMLException
- When an unexpected XML error occurred. (malformed etc.)
clone
public Object clone()
- Description copied from interface:
StepMetaInterface
- Make an exact copy of this step, make sure to explicitly copy Collections etc.
- Specified by:
clone
in interface StepMetaInterface
- Overrides:
clone
in class BaseStepMeta
- Returns:
- an exact copy of this step
allocate
public void allocate(int nrfiles,
int nrsheets,
int nrfields)
setDefault
public void setDefault()
- Description copied from interface:
StepMetaInterface
- Set default values
- Specified by:
setDefault
in interface StepMetaInterface
getFields
public void getFields(RowMetaInterface row,
String name,
RowMetaInterface[] info,
StepMeta nextStep,
VariableSpace space)
throws KettleStepException
- Description copied from interface:
StepMetaInterface
- Get the fields that are emitted by this step
- Specified by:
getFields
in interface StepMetaInterface
- Overrides:
getFields
in class BaseStepMeta
- Parameters:
row
- The fields that are entering the step. These are changed to reflect the output metadata.name
- The name of the step to be used as origininfo
- The input rows metadata that enters the step through the specified channels in the same order as in method getInfoSteps(). The step metadata can then choose what to do with it: ignore it or not.
Interesting is also that in case of database lookups, the layout of the target database table is put in info[0]nextStep
- if this is a non-null value, it's the next step in the transformation. The one who's asking, the step where the data is targetted towards.space
- TODO
- Throws:
KettleStepException
- when an error occurred searching for the fields.
getXML
public String getXML()
- Description copied from class:
BaseStepMeta
- Produces the XML string that describes this step's information.
- Specified by:
getXML
in interface StepMetaInterface
- Overrides:
getXML
in class BaseStepMeta
- Returns:
- String containing the XML describing this step.
readRep
public void readRep(Repository rep,
ObjectId id_step,
List<DatabaseMeta> databases,
Map<String,Counter> counters)
throws KettleException
- Description copied from interface:
StepMetaInterface
- Read the steps information from a Kettle repository
- Specified by:
readRep
in interface StepMetaInterface
- Parameters:
rep
- The repository to read fromid_step
- The step IDdatabases
- The databases to referencecounters
- The counters to reference
- Throws:
KettleException
- When an unexpected error occurred (database, network, etc)
saveRep
public void saveRep(Repository rep,
ObjectId id_transformation,
ObjectId id_step)
throws KettleException
- Description copied from interface:
StepMetaInterface
- Save the steps data into a Kettle repository
- Specified by:
saveRep
in interface StepMetaInterface
- Parameters:
rep
- The Kettle repository to save toid_transformation
- The transformation IDid_step
- The step ID
- Throws:
KettleException
- When an unexpected error occurred (database, network, etc)
getTrimTypeByCode
public static final int getTrimTypeByCode(String tt)
getTrimTypeByDesc
public static final int getTrimTypeByDesc(String tt)
getTrimTypeCode
public static final String getTrimTypeCode(int i)
getTrimTypeDesc
public static final String getTrimTypeDesc(int i)
getFilePaths
public String[] getFilePaths(VariableSpace space)
getFileList
public FileInputList getFileList(VariableSpace space)
getLookupStepname
public String getLookupStepname()
searchInfoAndTargetSteps
public void searchInfoAndTargetSteps(List<StepMeta> steps)
- Description copied from class:
BaseStepMeta
- Change step names into step objects to allow them to be name-changed etc.
- Specified by:
searchInfoAndTargetSteps
in interface StepMetaInterface
- Overrides:
searchInfoAndTargetSteps
in class BaseStepMeta
- Parameters:
steps
- the steps to reference
getInfoSteps
public String[] getInfoSteps()
check
public void check(List<CheckResultInterface> remarks,
TransMeta transMeta,
StepMeta stepMeta,
RowMetaInterface prev,
String[] input,
String[] output,
RowMetaInterface info)
- Description copied from interface:
StepMetaInterface
- Checks the settings of this step and puts the findings in a remarks List.
- Specified by:
check
in interface StepMetaInterface
- Parameters:
remarks
- The list to put the remarks in @see org.pentaho.di.core.CheckResultstepMeta
- The stepMeta to help checkingprev
- The fields coming from the previous stepinput
- The input step namesoutput
- The output step namesinfo
- The fields that are used as information by the step
getEmptyFields
public RowMetaInterface getEmptyFields()
getStep
public StepInterface getStep(StepMeta stepMeta,
StepDataInterface stepDataInterface,
int cnr,
TransMeta transMeta,
Trans trans)
- Description copied from interface:
StepMetaInterface
- Get the executing step, needed by Trans to launch a step.
- Specified by:
getStep
in interface StepMetaInterface
- Parameters:
stepMeta
- The step infostepDataInterface
- the step data interface linked to this step. Here the step can store temporary data, database connections, etc.cnr
- The copy nr to gettransMeta
- The transformation infotrans
- The launching transformation
getStepData
public StepDataInterface getStepData()
- Description copied from interface:
StepMetaInterface
- Get a new instance of the appropriate data class.
This data class implements the StepDataInterface.
It basically contains the persisting data that needs to live on, even if a worker thread is terminated.
- Specified by:
getStepData
in interface StepMetaInterface
- Returns:
- The appropriate StepDataInterface class.
getWarningFilesDestinationDirectory
public String getWarningFilesDestinationDirectory()
setWarningFilesDestinationDirectory
public void setWarningFilesDestinationDirectory(String badLineFilesDestinationDirectory)
getBadLineFilesExtension
public String getBadLineFilesExtension()
setBadLineFilesExtension
public void setBadLineFilesExtension(String badLineFilesExtension)
isErrorIgnored
public boolean isErrorIgnored()
setErrorIgnored
public void setErrorIgnored(boolean errorIgnored)
getErrorFilesDestinationDirectory
public String getErrorFilesDestinationDirectory()
setErrorFilesDestinationDirectory
public void setErrorFilesDestinationDirectory(String errorLineFilesDestinationDirectory)
getErrorFilesExtension
public String getErrorFilesExtension()
setErrorFilesExtension
public void setErrorFilesExtension(String errorLineFilesExtension)
getLineNumberFilesDestinationDirectory
public String getLineNumberFilesDestinationDirectory()
setLineNumberFilesDestinationDirectory
public void setLineNumberFilesDestinationDirectory(String lineNumberFilesDestinationDirectory)
getLineNumberFilesExtension
public String getLineNumberFilesExtension()
setLineNumberFilesExtension
public void setLineNumberFilesExtension(String lineNumberFilesExtension)
isErrorLineSkipped
public boolean isErrorLineSkipped()
setErrorLineSkipped
public void setErrorLineSkipped(boolean errorLineSkipped)
isStrictTypes
public boolean isStrictTypes()
setStrictTypes
public void setStrictTypes(boolean strictTypes)
getFileRequired
public String[] getFileRequired()
setFileRequired
public void setFileRequired(String[] fileRequiredin)
getAcceptingField
public String getAcceptingField()
- Returns:
- Returns the acceptingField.
setAcceptingField
public void setAcceptingField(String acceptingField)
- Parameters:
acceptingField
- The acceptingField to set.
isAcceptingFilenames
public boolean isAcceptingFilenames()
- Returns:
- Returns the acceptingFilenames.
setAcceptingFilenames
public void setAcceptingFilenames(boolean acceptingFilenames)
- Parameters:
acceptingFilenames
- The acceptingFilenames to set.
getAcceptingStep
public StepMeta getAcceptingStep()
- Returns:
- Returns the acceptingStep.
setAcceptingStep
public void setAcceptingStep(StepMeta acceptingStep)
- Parameters:
acceptingStep
- The acceptingStep to set.
getAcceptingStepName
public String getAcceptingStepName()
- Returns:
- Returns the acceptingStepName.
setAcceptingStepName
public void setAcceptingStepName(String acceptingStepName)
- Parameters:
acceptingStepName
- The acceptingStepName to set.
getUsedLibraries
public String[] getUsedLibraries()
- Specified by:
getUsedLibraries
in interface StepMetaInterface
- Overrides:
getUsedLibraries
in class BaseStepMeta
- Returns:
- the libraries that this step or plug-in uses.
getEncoding
public String getEncoding()
- Returns:
- the encoding
setEncoding
public void setEncoding(String encoding)
- Parameters:
encoding
- the encoding to set
setAddResultFile
public void setAddResultFile(boolean isaddresult)
- Parameters:
isaddresult
- The isaddresult to set.
isAddResultFile
public boolean isAddResultFile()
- Returns:
- Returns isaddresult.
readAllSheets
public boolean readAllSheets()
- Read all sheets if the sheet names are left blank.
- Returns:
- true if all sheets are read.
exportResources
public String exportResources(VariableSpace space,
Map<String,ResourceDefinition> definitions,
ResourceNamingInterface resourceNamingInterface,
Repository repository)
throws KettleException
- Since the exported transformation that runs this will reside in a ZIP file, we can't reference files relatively.
So what this does is turn the name of files into absolute paths OR it simply includes the resource in the ZIP file.
For now, we'll simply turn it into an absolute path and pray that the file is on a shared drive or something like that.
TODO: create options to configure this behavior
- Specified by:
exportResources
in interface StepMetaInterface
- Overrides:
exportResources
in class BaseStepMeta
- Parameters:
space
- the variable space to userepository
- The repository to optionally load other resources from (to be converted to XML)
- Returns:
- the filename of the exported resource
- Throws:
KettleException
getSpreadSheetType
public SpreadSheetType getSpreadSheetType()
setSpreadSheetType
public void setSpreadSheetType(SpreadSheetType spreadSheetType)
getStepMetaInjectionInterface
public StepMetaInjectionInterface getStepMetaInjectionInterface()
- Specified by:
getStepMetaInjectionInterface
in interface StepMetaInterface
- Overrides:
getStepMetaInjectionInterface
in class BaseStepMeta
- Returns:
- Optional interface that allows an external program to inject step metadata in a standardized fasion.
This method will return null if the interface is not available for this step.