ptolemy.domains.ptera.lib
Class ListDirectory
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.domains.modal.kernel.State
ptolemy.domains.ptera.kernel.Event
ptolemy.domains.ptera.lib.ListDirectory
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Initializable, ConfigurableEntity, Changeable, Configurable, Debuggable, DebugListener, Derivable, DropTargetHandler, Flowable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class ListDirectory
- extends Event
An event to list all the files matching a filter in a directory. Each time it
is fired, it updates its files
parameter to contain names of all the
files (and/or directories) in the specified directory. A filter can be defined
to filter the included file names.
- Since:
- Ptolemy II 8.0
- Version:
- $Id: ListDirectory.java 57044 2010-01-27 22:41:05Z cxh $
- Author:
- Thomas Huining Feng
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Nested Class Summary |
static class |
ListDirectory.RecursiveFileFilter
A file name filter that can recursively list files in a directory,
including those in subdirectories. |
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Constructor Summary |
ListDirectory(CompositeEntity container,
java.lang.String name)
Construct an event with the given name contained by the specified
composite entity. |
Methods inherited from class ptolemy.domains.ptera.kernel.Event |
_getParserScope, _isActiveRefinement, addInitializable, attributeChanged, clone, getController, initialize, isEndingEvent, isFinalEvent, isInitialEvent, preinitialize, refire, removeInitializable, scheduleEvents, stop, wrapup |
Methods inherited from class ptolemy.domains.modal.kernel.State |
_exportMoMLContents, configure, dropObject, getConfigurer, getConfigureSource, getConfigureText, getIncomingPort, getObjectInRefinement, getOutgoingPort, getRefinement, nonpreemptiveTransitionList, preemptiveTransitionList |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_addPort, _adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, newPort, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
_description, _removePort, _validateSettables, connectedPortList, connectedPorts, connectionsChanged, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, attributeTypeChanged, clone, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
directory
public FileParameter directory
- The director in which files are to be listed.
files
public Parameter files
- A parameter with an ArrayToken containing strings that are names of the
files matching the given filter in the specified directory. It is
updated every time this event is fired.
filter
public StringParameter filter
- The filter that all the included file names must match.
includeDirectories
public Parameter includeDirectories
- Whether directory names should be included.
includeFiles
public Parameter includeFiles
- Whether file names should be included.
recursive
public Parameter recursive
- Whether files in the subdirectories should be searched as well.
ListDirectory
public ListDirectory(CompositeEntity container,
java.lang.String name)
throws IllegalActionException,
NameDuplicationException
- Construct an event with the given name contained by the specified
composite entity. The container argument must not be null, or a
NullPointerException will be thrown. This event will use the
workspace of the container for synchronization and version counts.
If the name argument is null, then the name is set to the empty
string.
Increment the version of the workspace.
This constructor write-synchronizes on the workspace.
- Parameters:
container
- The container.name
- The name of the state.
- Throws:
IllegalActionException
- If the state cannot be contained
by the proposed container.
NameDuplicationException
- If the name coincides with
that of an entity already in the container.
fire
public Event.RefiringData fire(Token arguments)
throws IllegalActionException
- Process this event with the given arguments. The number of arguments
provided must be equal to the number of formal parameters defined for
this event, and their types must match. The actions of this event are
executed.
- Overrides:
fire
in class Event
- Parameters:
arguments
- The arguments used to process this event, which must be
either an ArrayToken or a RecordToken.
- Returns:
- A refiring data structure that contains a non-negative double
number if refire() should be called after that amount of model time, or
null if refire() need not be called.
- Throws:
IllegalActionException
- If the number of the arguments or
their types do not match, the actions cannot be executed, or any
expression (such as guards and arguments to the next events) cannot be
evaluated.- See Also:
Event.refire(Token, RefiringData)
setContainer
public void setContainer(CompositeEntity container)
throws IllegalActionException,
NameDuplicationException
- Specify the container, adding the entity to the list
of entities in the container. If the container already contains
an entity with the same name, then throw an exception and do not make
any changes. Similarly, if the container is not in the same
workspace as this entity, throw an exception. If this entity is
a class element and the proposed container does not match
the current container, then also throw an exception.
If the entity is already contained by the container, do nothing.
If this entity already has a container, remove it
from that container first. Otherwise, remove it from
the directory of the workspace, if it is present.
If the argument is null, then unlink the ports of the entity
from any relations and remove it from its container.
It is not added to the workspace directory, so this could result in
this entity being garbage collected.
Derived classes may further constrain the container
to subclasses of CompositeEntity by overriding the protected
method _checkContainer(). This method validates all
deeply contained instances of Settable, since they may no longer
be valid in the new context. This method is write-synchronized
to the workspace and increments its version number.
- Overrides:
setContainer
in class Event
- Parameters:
container
- The proposed container.
- Throws:
IllegalActionException
- If the action would result in a
recursive containment structure, or if
this entity and container are not in the same workspace, or
if the protected method _checkContainer() throws it, or if
a contained Settable becomes invalid and the error handler
throws it.
NameDuplicationException
- If the name of this entity
collides with a name already in the container.- See Also:
ComponentEntity.getContainer()