Only (definstance <template> <instance>) should or will work.
I think Mikael Rundqvist (ERA) wrote: [Charset iso-8859-1 unsupported, filtering to ASCII...] > Hi again, > out of curiosity what syntax did you use when trying to assert the ordered fact? > The one below? > (assert <instance of bean>) > or > (definstance <templateExtendedFromBean> <instance of bean> dynamic) > > /best regards Mikael > > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED]] > Sent: Thursday, September 27, 2001 7:55 PM > To: Mikael Rundqvist (ERA) > Cc: '[EMAIL PROTECTED]' > Subject: Re: JESS: Inheritance and initialization from java-bean to > ordered fact > > > Hi, > > I definitely intended for this to be possible, but actually, it looks > as though it doesn't work. It -almost- works if you do it backwards: > have the defclass extend the regular deftemplate. Unfortunately, Jess > still throws an exception while constructing the shadow fact. I think > the fix for this would be easy -- look for this to work properly in > Jess 6.0 final. Thanks for the report. > > > I think Mikael Rundqvist (ERA) wrote: > [Charset iso-8859-1 unsupported, filtering to ASCII...] > > Hi, > > is it possible to do the following: > > 1 Make a deftemplate and inheriting from a dynamic java-bean and in the process >adding some slots. > > (This works fine thru what is described in section 2.7.2 (deftemplate ><deftemplate-name> [extends <classname>] [<doc-comment>] [(slot <slot-name> [(default >| default-dynamic <value>)] [(type <typespec>))]*) > > 2. ASSERT an ordered fact which is an instance of the deftemplate in 1 but which >has all slots, but the ones created in the deftemplate, initialized using an instance >of the java-bean. > > > > Example: > > > > package SE.ericsson.epk.NAM.DataTranscriptGeneratorPackage; > > import java.awt.*; > > > > > > /** > > * Java-bean style class to map between a table name and the corresponding > > * prefix when setting upp the table in MML. > > */ > > public class MMLPrefixBean extends java.lang.Object implements Cloneable > > { > > > > /** > > * Default constructor necessary for a bean. > > */ > > public MMLPrefixBean() > > { > > } > > > > /** > > * Setter method for the prefix attribute. > > * > > * @param prefix a three character wide string specifying the prefix to use >when > > * configuring the table. > > * If a wider string is used as input the prefix will be shortened through cut. > > */ > > public void setPrefix(String prefix)throws MMLSyntaxException { > > String oldValue=getPrefix(); > > String newValue=null; > > if (prefix!=null) { > > newValue=new String(prefix.substring(0, 3)); > > } > > if (prefix.length()==3) { > > if (oldValue!=newValue) { > > this.prefix=newValue; > > changes.firePropertyChange("prefix", oldValue, newValue); > > } > > } else { > > MMLSyntaxException MMLExc=new MMLSyntaxException(); > > this.prefix=newValue; > > changes.firePropertyChange("prefix", oldValue, newValue); > > throw MMLExc; > > } > > } > > > > > > public java.lang.String getPrefix() > > { > > return this.prefix; > > } > > > > public void setDescription(java.lang.String description) > > { > > String oldValue=this.getDescription(); > > String newValue=description; > > if (oldValue!=newValue) { > > this.description=newValue; > > changes.firePropertyChange("description", oldValue, >newValue); > > } > > } > > > > public java.lang.String getDescription() > > { > > return this.description; > > } > > > > public void setTable(java.lang.String table) > > { > > String oldValue=this.getTable(); > > String newValue=table; > > if (oldValue!=newValue) { > > this.table=newValue; > > changes.firePropertyChange("table", oldValue, newValue); > > } > > } > > > > public java.lang.String getTable() > > { > > return this.table; > > } > > > > public String toString() { > > return( this.getPrefix() + " : " + this.getTable() + " : " + >this.getDescription()); > > } > > > > public Object clone() { > > MMLPrefixBean copy=null; > > try { > > copy=new MMLPrefixBean(); > > copy.setDescription(this.getDescription()); > > copy.setPrefix(this.getPrefix()); > > copy.setTable(this.getTable()); > > } > > catch(MMLSyntaxException e) { > > System.out.println("Exception in MMLPrefixBean.clone(): "); > > } > > return copy; > > } > > > > public boolean equals (Object object){ > > MMLPrefixBean otherBean=null; > > if (this.getClass()==object.getClass()) { > > otherBean=(MMLPrefixBean)object; > > return this.getPrefix().equals(otherBean.getPrefix()) && > > this.getDescription().equals(otherBean.getDescription()) && > > this.getTable().equals(otherBean.getTable()); > > } else { > > return false; > > } > > } > > > > public void addPropertyChangeListener(java.beans.PropertyChangeListener pcl) > > { > > changes.addPropertyChangeListener(pcl); > > } > > > > public void removePropertyChangeListener(java.beans.PropertyChangeListener pcl) > > { > > changes.removePropertyChangeListener(pcl); > > } > > > > protected java.lang.String prefix = ""; > > protected java.lang.String table = ""; > > protected java.lang.String description = ""; > > private symantec.itools.beans.PropertyChangeSupport changes = new >symantec.itools.beans.PropertyChangeSupport(this); > > > > public static void main(String[] args) { > > MMLPrefixBean anMMLPrefixBean=null; > > MMLPrefixBean anotherMMLPrefixBean=null; > > try { > > anMMLPrefixBean=new MMLPrefixBean(); > > anMMLPrefixBean.setPrefix("PNB"); > > anMMLPrefixBean.setDescription("Prefix for PRE-ANALYSIS OF NUMBER >INFORMATION FOR B-NUMBER "); > > anMMLPrefixBean.setTable("B-number Pre-analysis"); > > System.out.println(anMMLPrefixBean); > > anMMLPrefixBean=new MMLPrefixBean(); > > anMMLPrefixBean.setPrefix("ANB"); > > anMMLPrefixBean.setDescription("Prefix for ANALYSIS OF B-NUMBER "); > > anMMLPrefixBean.setTable("B-number analysis"); > > System.out.println(anMMLPrefixBean); > > anotherMMLPrefixBean=(MMLPrefixBean)anMMLPrefixBean.clone(); > > if (anMMLPrefixBean.equals(anotherMMLPrefixBean)) { > > System.out.println("Clone and equal works!"); > > } > > anMMLPrefixBean=new MMLPrefixBean(); > > anMMLPrefixBean.setDescription("Prefix which is wrong "); > > anMMLPrefixBean.setTable("Z-nummer analysis"); > > anMMLPrefixBean.setPrefix("ANBQ"); > > System.out.println(anMMLPrefixBean); > > > > } > > catch (MMLSyntaxException MMLExc) { > > System.out.println("Fick ett MML Exception"); > > System.out.println(anMMLPrefixBean); > > } > > } > > } > > > > > > (defclass MMLPrefixBean >SE.ericsson.epk.NAM.DataTranscriptGeneratorPackage.MMLPrefixBean) > > (deftemplate myprefixtemplate extends MMLPrefixBean > > (slot foo) > > > > (bind ?anMMLPrefixBean (call >SE.ericsson.epk.NAM.DataTranscriptGeneratorPackage.Control.getDefaultMMLPrefixBean)) >;retrieves a prefix-bean with all attributes set to default values. > > > > (definstance MyExtendedPrefixBean ?anMMLPrefixBean dynamic) ;this leads to the >following error > > Jess reported an error in routine DefinstanceList.definstance > > while executing (definstance MyExtendedPrefixBean ?anMMLPrefixBean dynamic). > > Message: Unknown object class MyExtendedPrefixBean. > > Program text: ( definstance MyExtendedPrefixBean ?anMMLPrefixBean dynamic ) at >line 23. > > > > (assert ?anMMLPrefixBean) ;this leads to the following error > > Jess reported an error in routine Value.factValue > > while executing Jess reported an error in routine Variable.resolveValue. > > Message: Null context for anMMLPrefixBean.. > > Message: Not a fact: >"<External-Address:SE.ericsson.epk.NAM.DataTranscriptGeneratorPackage.MMLPrefixBean>" >(type = EXTERNAL_ADDRESS). > > > > I think I understand what I do wrong in both cases but is there a simple >possiblility to assert a fact and have all the field initialized from the bean. > > /Mikael Rundqvist > > > > --------------------------------------------------------------------- > > To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' > > in the BODY of a message to [EMAIL PROTECTED], NOT to the > > list (use your own address!) List problems? Notify [EMAIL PROTECTED] > > --------------------------------------------------------------------- > > > > > > --------------------------------------------------------- > Ernest Friedman-Hill > Distributed Systems Research Phone: (925) 294-2154 > Sandia National Labs FAX: (925) 294-2234 > Org. 8920, MS 9012 [EMAIL PROTECTED] > PO Box 969 http://herzberg.ca.sandia.gov > Livermore, CA 94550 > > --------------------------------------------------------------------- > To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' > in the BODY of a message to [EMAIL PROTECTED], NOT to the > list (use your own address!) List problems? Notify [EMAIL PROTECTED] > --------------------------------------------------------------------- > --------------------------------------------------------- Ernest Friedman-Hill Distributed Systems Research Phone: (925) 294-2154 Sandia National Labs FAX: (925) 294-2234 Org. 8920, MS 9012 [EMAIL PROTECTED] PO Box 969 http://herzberg.ca.sandia.gov Livermore, CA 94550 --------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]' in the BODY of a message to [EMAIL PROTECTED], NOT to the list (use your own address!) List problems? Notify [EMAIL PROTECTED] ---------------------------------------------------------------------
