ptolemy.hsif
Class HSIFEffigyFactory

java.lang.Object
  extended by ptolemy.kernel.util.NamedObj
      extended by ptolemy.kernel.InstantiableNamedObj
          extended by ptolemy.kernel.Entity
              extended by ptolemy.kernel.ComponentEntity
                  extended by ptolemy.kernel.CompositeEntity
                      extended by ptolemy.actor.gui.EffigyFactory
                          extended by ptolemy.hsif.HSIFEffigyFactory
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

public class HSIFEffigyFactory
extends EffigyFactory

An object that can create a new Effigy from an HSIF file. An HSIF filename can end with either .xml or .hsif

Since:
Ptolemy II 2.2
Version:
$Id: HSIFEffigyFactory.java 57040 2010-01-27 20:52:32Z cxh $
Author:
Haiyang Zheng, Edward A. Lee, Christopher Hylands
See Also:
Configuration, Effigy, Serialized Form
Accepted Rating:
Red (cxh)
Proposed Rating:
Yellow (eal)

Nested Class Summary
 
Nested classes/interfaces inherited from class ptolemy.kernel.CompositeEntity
CompositeEntity.ContainedObjectsIterator
 
Field Summary
private  boolean _inCreateEffigy
           
 
Fields inherited from class ptolemy.kernel.CompositeEntity
_levelCrossingLinks
 
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
HSIFEffigyFactory(CompositeEntity container, java.lang.String name)
          Create a factory with the given name and container.
 
Method Summary
 boolean canCreateBlankEffigy()
          Return false, indicating that this effigy factory is not capable of creating an effigy without a URL being specified.
 Effigy createEffigy(CompositeEntity container, java.net.URL base, java.net.URL input)
          Create a new effigy in the given container by reading the specified URL, which must end with either .xml or .hsif.
 
Methods inherited from class ptolemy.actor.gui.EffigyFactory
checkForDTD, createEffigy, getExtension
 
Methods inherited from class ptolemy.kernel.CompositeEntity
_addEntity, _addRelation, _adjustDeferrals, _deepOpaqueEntityList, _description, _exportMoMLContents, _finishedAddEntity, _recordDecoratedAttributes, _removeEntity, _removeRelation, _validateSettables, allAtomicEntityList, allCompositeEntityList, allowLevelCrossingConnect, classDefinitionList, clone, connect, connect, containedObjectsIterator, deepEntityList, deepGetEntities, deepOpaqueEntityList, deepRelationSet, entityList, entityList, exportLinks, exportMoML, getAttribute, getEntities, getEntity, getPort, getRelation, getRelations, isAtomic, isOpaque, lazyAllAtomicEntityList, lazyAllCompositeEntityList, lazyClassDefinitionList, lazyDeepEntityList, lazyEntityList, lazyRelationList, newRelation, numberOfEntities, numberOfRelations, numEntities, numRelations, relationList, removeAllEntities, removeAllRelations, setClassDefinition, setContainer, statistics, uniqueName
 
Methods inherited from class ptolemy.kernel.ComponentEntity
_addPort, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, newPort, propagateExistence, setName
 
Methods inherited from class ptolemy.kernel.Entity
_removePort, connectedPortList, connectedPorts, connectionsChanged, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts
 
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
 
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeChanged, 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
 
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
 
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getDisplayName, getFullName, getName, getName
 

Field Detail

_inCreateEffigy

private boolean _inCreateEffigy
Constructor Detail

HSIFEffigyFactory

public HSIFEffigyFactory(CompositeEntity container,
                         java.lang.String name)
                  throws IllegalActionException,
                         NameDuplicationException
Create a factory with the given name and container.

Parameters:
container - The container.
name - The name.
Throws:
IllegalActionException - If the container is incompatible with this entity.
NameDuplicationException - If the name coincides with an entity already in the container.
Method Detail

canCreateBlankEffigy

public boolean canCreateBlankEffigy()
Return false, indicating that this effigy factory is not capable of creating an effigy without a URL being specified.

Overrides:
canCreateBlankEffigy in class EffigyFactory
Returns:
False.

createEffigy

public Effigy createEffigy(CompositeEntity container,
                           java.net.URL base,
                           java.net.URL input)
                    throws java.lang.Exception
Create a new effigy in the given container by reading the specified URL, which must end with either .xml or .hsif. If the first 20 lines of the file contain the string "HSIF.dtd", then the specified URL refers to an HSIF file. If the URL is an HSIF file, then invok the HSIF to MoML translator to create a MoML temporary file, and then delegate to the container of this effigy factory to open that file. If the specified file is not HSIF, return null.

Overrides:
createEffigy in class EffigyFactory
Parameters:
container - The container for the effigy.
base - The base for relative file references, or null if there are no relative file references.
input - The input URL.
Returns:
A new effigy.
Throws:
java.lang.Exception - If the stream cannot be read, or if the data is malformed in some way.