abbot.script
Class Script

java.lang.Object
  extended byabbot.script.Step
      extended byabbot.script.Sequence
          extended byabbot.script.Script
All Implemented Interfaces:
Resolver, Serializable, XMLConstants, XMLifiable

public class Script
extends Sequence
implements Resolver

Provide a structure to encapsulate actions invoked on GUI components and tests performed on those components. Scripts need to be short and concise (and therefore easy to read/write). Extensions don't have to be.

This takes a single filename as a constructor argument.

Use ScriptTestCase and ScriptTestSuite to generate a suite (auto-generate the collection).

See Also:
Serialized Form

Field Summary
static String INTERPRETER
           
static String UNTITLED_FILE
           
(package private) static boolean validate
           
 
Fields inherited from interface abbot.script.XMLConstants
TAG_ACTION, TAG_APPLETVIEWER, TAG_ARCHIVE, TAG_ARGS, TAG_ASSERT, TAG_AWT, TAG_AWTTESTSCRIPT, TAG_BORDER_TITLE, TAG_CALL, TAG_CLASS, TAG_CLASSPATH, TAG_CODE, TAG_CODEBASE, TAG_COMMENT, TAG_COMPONENT, TAG_COUNT, TAG_DELEGATE, TAG_DESC, TAG_DOCBASE, TAG_EVENT, TAG_EXPR, TAG_FILENAME, TAG_FORKED, TAG_HEIGHT, TAG_HORDER, TAG_ICON, TAG_ID, TAG_INDEX, TAG_INVERT, TAG_INVOKER, TAG_KEYCHAR, TAG_KEYCODE, TAG_KIND, TAG_LABEL, TAG_LAUNCH, TAG_METHOD, TAG_MODIFIERS, TAG_NAME, TAG_PARAMS, TAG_PARENT, TAG_POLL_INTERVAL, TAG_PROPERTY, TAG_ROOT, TAG_SAMPLE, TAG_SCRIPT, TAG_SEQUENCE, TAG_SLOW, TAG_STOP_ON_ERROR, TAG_STOP_ON_FAILURE, TAG_TAG, TAG_TERMINATE, TAG_TEXT, TAG_THREADED, TAG_TIMEOUT, TAG_TITLE, TAG_TRIGGER, TAG_TYPE, TAG_VALUE, TAG_VMARGS, TAG_VORDER, TAG_WAIT, TAG_WEIGHTED, TAG_WIDTH, TAG_WINDOW, TAG_X, TAG_Y
 
Constructor Summary
Script()
          Deprecated. Use an explicit hierarchy instead.
Script(Hierarchy h)
           
Script(Resolver parent, Map attributes)
           
Script(String filename)
          Deprecated. Use an explicit hierarchy instead.
Script(String filename, Hierarchy h)
          Create a script.
 
Method Summary
 ComponentReference addComponent(Component comp)
          Add a new component reference for the given component.
 void addComponentReference(ComponentReference ref)
          Add a component reference directly, replacing any existing one with the same ID.
(package private)  ComponentReference addComponentReference(org.jdom.Element el)
          Add a new component reference to the script.
 org.jdom.Element addContent(org.jdom.Element el)
          Save component references in addition to everything else.
 void addStep(int index, Step step)
          Inserts a step at the given index in the sequence.
 void addStep(Step step)
          Adds a step to the end of the sequence.
 void changeFile(File file)
          Deprecated. Use #setFile(File).
 void clear()
          Set up a blank script, discarding any current state.
static int countLines(Sequence seq, int index)
          Return the number of XML lines in the given sequence that precede the given index.
 Map getAttributes()
          Provide XML attributes for this Step.
 ComponentReference getComponentReference(Component comp)
          Return the reference for the given component, or null if none yet exists.
 ComponentReference getComponentReference(String name)
          Convert the given reference ID into a component reference.
 Collection getComponentReferences()
          Returns a sorted collection of ComponentReferences.
 String getContext(Step step)
          Return a meaningful description of where the Step came from.
 ClassLoader getContextClassLoader()
          Return the class loader for use in this context.
 String getDefaultDescription()
          Return a reasonable default description for this script step.
 File getDirectory()
          All relative files should be accessed relative to this directory, which is the directory where the script resides.
 File getFile()
          Return the file where this script is saved.
static File getFile(Step step)
          Return the file which defines the given step.
 String getFilename()
          Return the (possibly relative) path to this script.
 Hierarchy getHierarchy()
          Get Hierarchy used by this Resolver.
 Launch getLaunchStep()
           
static int getLine(Step step)
          Return the approximate line number of the given step.
 String getName()
           
 Object getProperty(String name)
          Provide retrieval of values from temporary storage.
 File getRelativeTo()
          By default, all pathnames are relative to the current working directory.
 String getUsage()
          Returns a string describing the proper XML usage for this class.
 String getVMArgs()
           
 String getXMLTag()
          Define the XML tag to use for this script step.
 boolean hasLaunch()
           
 boolean hasTerminate()
           
 boolean isAWTMode()
           
 boolean isDirty()
          Has this script changed since the last save.
 boolean isForked()
           
static boolean isScript(File file)
          Return whether the given file looks like a valid AWT script.
 boolean isSlowPlayback()
           
 void load()
          Read the script from the currently set file.
 void load(Reader reader)
          Loads the XML test script.
protected  void parseAttributes(Map map)
          Parse XML attributes for the Script.
protected  void parseChild(org.jdom.Element el)
           
protected  void runStep(StepRunner runner)
          Process each event in our list, using the given runner.
 void save()
          Write the script to file.
 void save(Writer writer)
          Write the current state of the script to file.
 void setAWTMode(boolean awt)
           
 void setFile(File file)
          Set the file system basis for this script object.
 void setForked(boolean fork)
           
 void setHierarchy(Hierarchy h)
           
 void setProperty(String name, Object value)
          Provide temporary storage of String values.
 void setRelativeTo(File dir)
          Indicate that when invoking toXML, a path relative to the given one should be shown.
 void setSlowPlayback(boolean slow)
           
 void setStep(int index, Step step)
          Replaces the step at the given index.
 void setVMArgs(String args)
           
 String toEditableString()
          Only thing directly editable on a script is its file path.
 String toString()
          Return a description of this script step.
 
Methods inherited from class abbot.script.Sequence
getStep, indexOf, parseChildren, removeStep, removeStep, runStep, size, steps
 
Methods inherited from class abbot.script.Step
addAttributes, createAttributeMap, createStep, createStep, getDescription, getResolver, parseStepAttributes, resolveClass, resolveTester, run, setDescription, setScriptError, simpleClassName, toXML, toXMLString, usage, usage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INTERPRETER

public static final String INTERPRETER
See Also:
Constant Field Values

validate

static boolean validate

UNTITLED_FILE

public static final String UNTITLED_FILE
Constructor Detail

Script

public Script()
Deprecated. Use an explicit hierarchy instead.

Create a new, empty script. Used as a temporary resolver, uses the default hierarchy.


Script

public Script(String filename)
Deprecated. Use an explicit hierarchy instead.

Create a script from the given filename. Uses the default hierarchy.


Script

public Script(Hierarchy h)

Script

public Script(String filename,
              Hierarchy h)
Create a script. Actual reading of the script is deferred.


Script

public Script(Resolver parent,
              Map attributes)
Method Detail

setHierarchy

public void setHierarchy(Hierarchy h)

getName

public String getName()

setForked

public void setForked(boolean fork)

isForked

public boolean isForked()

setVMArgs

public void setVMArgs(String args)

getVMArgs

public String getVMArgs()

isSlowPlayback

public boolean isSlowPlayback()

setSlowPlayback

public void setSlowPlayback(boolean slow)

isAWTMode

public boolean isAWTMode()

setAWTMode

public void setAWTMode(boolean awt)

getFile

public File getFile()
Return the file where this script is saved. Will always be an absolute path.


changeFile

public void changeFile(File file)
Deprecated. Use #setFile(File).

Change the file system basis for the current script. Does not affect the script contents.


setFile

public void setFile(File file)
Set the file system basis for this script object. Use this to set the file from which the existing script will be loaded.


save

public void save(Writer writer)
          throws IOException
Write the current state of the script to file.

Throws:
IOException

toEditableString

public String toEditableString()
Only thing directly editable on a script is its file path.

Specified by:
toEditableString in interface XMLifiable
Overrides:
toEditableString in class Sequence

isDirty

public boolean isDirty()
Has this script changed since the last save.


save

public void save()
          throws IOException
Write the script to file. Note that this differs from the toXML for the script, which simply indicates the file on which it is based.

Throws:
IOException

parseChild

protected void parseChild(org.jdom.Element el)
                   throws InvalidScriptException
Overrides:
parseChild in class Sequence
Throws:
InvalidScriptException

parseAttributes

protected void parseAttributes(Map map)
Parse XML attributes for the Script.


load

public void load(Reader reader)
          throws InvalidScriptException,
                 IOException
Loads the XML test script. Performs a check against the XML schema.

Parameters:
reader - Provides the script data
Throws:
InvalidScriptException
IOException

addStep

public void addStep(int index,
                    Step step)
Description copied from class: Sequence
Inserts a step at the given index in the sequence.

Overrides:
addStep in class Sequence

addStep

public void addStep(Step step)
Description copied from class: Sequence
Adds a step to the end of the sequence.

Overrides:
addStep in class Sequence

setStep

public void setStep(int index,
                    Step step)
Replaces the step at the given index.

Overrides:
setStep in class Sequence

load

public void load()
          throws IOException,
                 InvalidScriptException
Read the script from the currently set file.

Throws:
IOException
InvalidScriptException

getXMLTag

public String getXMLTag()
Description copied from class: Step
Define the XML tag to use for this script step.

Overrides:
getXMLTag in class Sequence

addContent

public org.jdom.Element addContent(org.jdom.Element el)
Save component references in addition to everything else.

Overrides:
addContent in class Sequence

getFilename

public String getFilename()
Return the (possibly relative) path to this script.


getAttributes

public Map getAttributes()
Provide XML attributes for this Step. This class adds its filename.

Overrides:
getAttributes in class Step

runStep

protected void runStep(StepRunner runner)
                throws Throwable
Description copied from class: Sequence
Process each event in our list, using the given runner.

Overrides:
runStep in class Sequence
Throws:
Throwable

clear

public void clear()
Set up a blank script, discarding any current state.

Overrides:
clear in class Sequence

getUsage

public String getUsage()
Description copied from class: Sequence
Returns a string describing the proper XML usage for this class.

Overrides:
getUsage in class Sequence

getDefaultDescription

public String getDefaultDescription()
Description copied from class: Step
Return a reasonable default description for this script step. This value is used in the absence of an explicit description.

Overrides:
getDefaultDescription in class Sequence

toString

public String toString()
Description copied from class: Step
Return a description of this script step.

Overrides:
toString in class Step

hasLaunch

public boolean hasLaunch()

hasTerminate

public boolean hasTerminate()

getRelativeTo

public File getRelativeTo()
By default, all pathnames are relative to the current working directory.


setRelativeTo

public void setRelativeTo(File dir)
Indicate that when invoking toXML, a path relative to the given one should be shown. Note that this is a runtime setting only and never shows up in saved XML.


isScript

public static boolean isScript(File file)
Return whether the given file looks like a valid AWT script.


getLaunchStep

public Launch getLaunchStep()

getDirectory

public File getDirectory()
All relative files should be accessed relative to this directory, which is the directory where the script resides. It will always return an absolute path.

Specified by:
getDirectory in interface Resolver

getComponentReferences

public Collection getComponentReferences()
Returns a sorted collection of ComponentReferences.

Specified by:
getComponentReferences in interface Resolver

addComponentReference

public void addComponentReference(ComponentReference ref)
Add a component reference directly, replacing any existing one with the same ID.

Specified by:
addComponentReference in interface Resolver

addComponent

public ComponentReference addComponent(Component comp)
Add a new component reference for the given component.

Specified by:
addComponent in interface Resolver

addComponentReference

ComponentReference addComponentReference(org.jdom.Element el)
                                   throws InvalidScriptException
Add a new component reference to the script. For use only when parsing a script.

Throws:
InvalidScriptException

getComponentReference

public ComponentReference getComponentReference(Component comp)
Return the reference for the given component, or null if none yet exists.

Specified by:
getComponentReference in interface Resolver

getComponentReference

public ComponentReference getComponentReference(String name)
Convert the given reference ID into a component reference. If it's not in the Script's list, returns null.

Specified by:
getComponentReference in interface Resolver

setProperty

public void setProperty(String name,
                        Object value)
Description copied from interface: Resolver
Provide temporary storage of String values.

Specified by:
setProperty in interface Resolver

getProperty

public Object getProperty(String name)
Description copied from interface: Resolver
Provide retrieval of values from temporary storage.

Specified by:
getProperty in interface Resolver

getContextClassLoader

public ClassLoader getContextClassLoader()
Description copied from interface: Resolver
Return the class loader for use in this context.

Specified by:
getContextClassLoader in interface Resolver

getHierarchy

public Hierarchy getHierarchy()
Description copied from interface: Resolver
Get Hierarchy used by this Resolver.

Specified by:
getHierarchy in interface Resolver

getContext

public String getContext(Step step)
Return a meaningful description of where the Step came from.

Specified by:
getContext in interface Resolver

getFile

public static File getFile(Step step)
Return the file which defines the given step.


getLine

public static int getLine(Step step)
Return the approximate line number of the given step. File lines are one-based (there is no line zero).


countLines

public static int countLines(Sequence seq,
                             int index)
Return the number of XML lines in the given sequence that precede the given index. If the index is -1, return the number of XML lines used by the whole sequence.



Copyright © 2002-2004 Timothy Wall. All Rights Reserved.
Abbot is hosted on

SourceForge