Class ScriptCondition
- java.lang.Object
-
- com.norconex.importer.handler.condition.AbstractCharStreamCondition
-
- com.norconex.importer.handler.condition.AbstractStringCondition
-
- com.norconex.importer.handler.condition.impl.ScriptCondition
-
- All Implemented Interfaces:
IXMLConfigurable
,IImporterCondition
public class ScriptCondition extends AbstractStringCondition
A condition formulated using a scripting language. The default script engine is
JavaScript
.Refer to
ScriptRunner
for more information on using a scripting language with Norconex Importer.How to create a condition with scripting:
The following are variables made available to your script for each document:
- reference: Document unique reference as a string.
- content: Document content, as a string
(of
maxReadSize
length). - metadata: Document metadata as a
Properties
object. - parsed: Whether the document was already parsed, as a boolean.
- sectionIndex: Content section index (integer) if it had to be split because it was too large.
The expected return value from your script is a boolean indicating whether the document was matched or not.
XML configuration usage:
<condition class="com.norconex.importer.handler.condition.impl.ScriptCondition" maxReadSize="(max characters to read at once)" sourceCharset="(character encoding)" engineName="(script engine name)"> (your script) </condition>
XML usage example:
<!-- Javascript: --> <condition class="ScriptCondition"> <![CDATA[ var isAppleDoc = metadata.getString('fruit') == 'apple' || content.indexOf('Apple') > -1; // Return value: isAppleDoc; ]]> </condition> <!-- Lua: --> <condition class="ScriptCondition" engineName="lua"> <![CDATA[ local isAppleDoc = metadata:getString('fruit') == 'apple' and content:find('Apple') ~= nil; return isAppleDoc; ]]> </condition>
- Since:
- 3.0.0
- Author:
- Pascal Essiembre
- See Also:
ScriptRunner
-
-
Constructor Summary
Constructors Constructor Description ScriptCondition()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object other)
String
getEngineName()
String
getScript()
int
hashCode()
protected void
loadStringConditionFromXML(XML xml)
Loads configuration settings specific to the implementing class.protected void
saveStringConditionToXML(XML xml)
Saves configuration settings specific to the implementing class.void
setEngineName(String engineName)
void
setScript(String script)
protected boolean
testDocument(HandlerDoc doc, String input, ParseState parseState, int sectionIndex)
String
toString()
-
Methods inherited from class com.norconex.importer.handler.condition.AbstractStringCondition
getMaxReadSize, loadCharStreamConditionFromXML, saveCharStreamConditionToXML, setMaxReadSize, testDocument
-
Methods inherited from class com.norconex.importer.handler.condition.AbstractCharStreamCondition
getSourceCharset, loadFromXML, saveToXML, setSourceCharset, testDocument
-
-
-
-
Method Detail
-
getEngineName
public String getEngineName()
-
setEngineName
public void setEngineName(String engineName)
-
getScript
public String getScript()
-
setScript
public void setScript(String script)
-
testDocument
protected boolean testDocument(HandlerDoc doc, String input, ParseState parseState, int sectionIndex) throws ImporterHandlerException
- Specified by:
testDocument
in classAbstractStringCondition
- Throws:
ImporterHandlerException
-
loadStringConditionFromXML
protected void loadStringConditionFromXML(XML xml)
Description copied from class:AbstractStringCondition
Loads configuration settings specific to the implementing class.- Specified by:
loadStringConditionFromXML
in classAbstractStringCondition
- Parameters:
xml
- XML configuration
-
saveStringConditionToXML
protected void saveStringConditionToXML(XML xml)
Description copied from class:AbstractStringCondition
Saves configuration settings specific to the implementing class. The parent tag along with the "class" attribute are already written. Implementors must not close the writer.- Specified by:
saveStringConditionToXML
in classAbstractStringCondition
- Parameters:
xml
- the XML
-
equals
public boolean equals(Object other)
- Overrides:
equals
in classAbstractStringCondition
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classAbstractStringCondition
-
toString
public String toString()
- Overrides:
toString
in classAbstractStringCondition
-
-