An effigy represents model metadata, and is contained by the
model directory or by another effigy. The effigy, for example,
keeps track of where the model originated (from a URI or file)
and whether the model has been modified since the URI or file was
read. In design automation, such information is often called
"metadata." When we began to design this class, we called it
ModelModel, because it was a model of a Ptolemy II model.
However, this name seemed awkward, so we changed it to Effigy.
We also considered the name Proxy for the class. We rejected that
name because of the common use of the word "proxy" in distributed
object-oriented models.
<p>
The Effigy class extends CompositeEntity, so an instance of Effigy
can contain entities. By convention, an effigy contains all
open instances of Tableau associated with the model. It also
contains a string attribute named "identifier" with a value that
uniquely identifies the model. A typical choice (which depends on
the configuration) is the canonical URI for a MoML file that
describes the model. In the case of an effigy contained by another,
a typical choice is the URI of the parent effigy, a pound sign "#",
and a name.
<p>
An effigy may contain other effigies. The master effigy
in such a containment hierarchy is typically associated with a
URI or file.
Contained effigies are associated with the same file, and represent
structured data within the top-level representation in the file.
The masterEffigy() method returns that master effigy.
The topEffigy() method in this base class returns the same
master effigy. However, in derived classes, a master effigy
may be contained by another effigy, so the top effigy is not
the same as the master effigy. The top effigy is directly contained
by the ModelDirectory in the Configuration.
<p>
NOTE: It might seem more natural for the identifier to match the name
of the effigy rather than recording the identifier in a string attribute.
But in Ptolemy II, an entity name cannot have periods in it, and a URI
typically does have periods in it.
<p> To determine the Effigy of a NamedObj, use
<a href="../../../ptolemy/actor/gui/Configuration.html#findEffigy">findEffigy(NamedObj)</a>.
Steve Neuendorffer and Edward A. Lee
$Id: Effigy.java 70398 2014-10-22 23:44:32Z cxh $
Ptolemy II 1.0
Green (eal)
Yellow (celaine)
The identifier for the effigy. The default value is "Unnamed".