[kepler-dev] difference between moml class and entity
Edward A. Lee
eal at eecs.berkeley.edu
Mon Dec 12 13:00:19 PST 2005
I don't think there is a direct mechanism to create MoML for an instance
from the class. You could create an instance and then export MoML...
The principle here is that exportMoML() gives a description of the
object doing the exporting... It's not meant to serve as a mechanism
to create an instance. The method for doing that is instantiate().
Edward
At 09:33 AM 12/12/2005 -0800, Chad Berkley wrote:
>right, so i have a class, and i want to export an instance. can I do
>that? it seems to me the way ptII gets around this problem is to hard
>code the <entity> into the actor library. If I don't want to hard code
>it, how can I get an entity? The only information I have a priori is the
>name of the class (i.e. ptolemy.actor.lib.Sinewave). I don't even know
>that it's a moml class instead of a java class.
>
>chad
>
>Edward A. Lee wrote:
>>The way the library works is that when you drag something into
>>a model, the entity in the library is treated as a template.
>>The drag-and-drop code asks the template to exportMoML(), and
>>then interprets that MoML in the context of the drop destination.
>>Thus, if the template is a class, then you will get a class
>>in the drop destination. If the template is an instance, then
>>you will get an instance.
>>The Sinewave actor in the library is an instance of a class
>>defined in a separate file. In the library it is defined as:
>><entity name="Sinewave" class="ptolemy.actor.lib.Sinewave"/>
>>There is a file $PTII/ptolemy/actor/lib/Sinewave.xml that contains
>><class name="Sinewave" extends="ptolemy.actor.TypedCompositeActor">
>> ...
>></class>
>>
>>Hope this helps...
>>Edward
>>At 03:08 PM 12/9/2005 -0800, Chad Berkley wrote:
>>
>>>exportMoML() is what i meant by serialize. When i'm adding a moml class
>>>to the library, i get a class exported, but that seems problematic
>>>because the class is actually an instance (if that makes any sense). The
>>>question i've been wondering about is, why is Sinewave declared (in the
>>>actor library) as an entity when it is, in fact, defined as a class (in
>>>it's moml definition); and how can i programatically do that if that is
>>>required to create an instance?
>>>
>>>I feel like i'm missing something here, but I'm not sure what.
>>>
>>>chad
>>>
>>>Edward A. Lee wrote:
>>>
>>>>
>>>>I'm confused... What do you mean by "serialize"?
>>>>If I do exportMoML() on an instance, I will get an instance.
>>>>If I do exportMoML() on a class, I will get a class...
>>>>Seems right to me...
>>>>Edward
>>>>
>>>>At 10:24 AM 12/9/2005 -0800, Chad Berkley wrote:
>>>>
>>>>>Hi,
>>>>>
>>>>>I've run into a problem when trying to differentiate whether a composite
>>>>>should be serialized to moml as a <class> or as an <entity>. In PTII, a
>>>>>Composite is defined as a <class> within its own moml file. Take
>>>>>Sinewave (ptolemy/actor/lib/Sinewave.xml) for example:
>>>>>
>>>>><class name="Sinewave" extends="ptolemy.actor.TypedCompositeActor">
>>>>>....</class>
>>>>>
>>>>>However, within the actor library CompositeEntity, Sinewave is refered
>>>>>to as an entity (/ptolemy/actor/lib/sequencesources.xml):
>>>>>
>>>>><entity name="Sinewave" class="ptolemy.actor.lib.Sinewave"/>
>>>>>
>>>>>Programmatically, if I serialize Sinewave's moml, the momlParser returns
>>>>>a class element. This is problematic because I'm altering the actor
>>>>>library programmatically. When I do a
>>>>>Sinewave.setContainer("actorLibrary"), it serializes as a class. This
>>>>>wouldn't be bad, except that when you drag it onto the canvas, it is
>>>>>then interpreted as a class that needs to be instantiated instead of as
>>>>>an instance (i.e. the purple box is drawn around it).
>>>>>
>>>>>Is there a way to tell it to give me the instance moml instead of the
>>>>>class moml?
>>>>>
>>>>>thanks,
>>>>>chad
>>>>>_______________________________________________
>>>>>Kepler-dev mailing list
>>>>>Kepler-dev at ecoinformatics.org
>>>>>http://mercury.nceas.ucsb.edu/ecoinformatics/mailman/listinfo/kepler-dev
>>>>
>>>>
>>>>------------
>>>>Edward A. Lee
>>>>Professor, Chair of the EE Division, Associate Chair of EECS
>>>>231 Cory Hall, UC Berkeley, Berkeley, CA 94720
>>>>phone: 510-642-0253 or 510-642-0455, fax: 510-642-2845
>>>>eal at eecs.Berkeley.EDU, http://ptolemy.eecs.berkeley.edu/~eal
>>
>>------------
>>Edward A. Lee
>>Professor, Chair of the EE Division, Associate Chair of EECS
>>231 Cory Hall, UC Berkeley, Berkeley, CA 94720
>>phone: 510-642-0253 or 510-642-0455, fax: 510-642-2845
>>eal at eecs.Berkeley.EDU, http://ptolemy.eecs.berkeley.edu/~eal
------------
Edward A. Lee
Professor, Chair of the EE Division, Associate Chair of EECS
231 Cory Hall, UC Berkeley, Berkeley, CA 94720
phone: 510-642-0253 or 510-642-0455, fax: 510-642-2845
eal at eecs.Berkeley.EDU, http://ptolemy.eecs.berkeley.edu/~eal
More information about the Kepler-dev
mailing list