#created on: 4/11/2008 package org.openiaml.model.drools.rules.base #list any import classes here. import org.openiaml.model.drools.*; import org.openiaml.model.inference.*; import org.openiaml.model.model.*; import org.openiaml.model.model.impl.*; import org.openiaml.model.model.wires.*; import org.openiaml.model.model.visual.*; import org.openiaml.model.model.operations.*; import org.openiaml.model.model.scopes.*; import org.openiaml.model.model.domain.*; #declare any global variables here global EcoreCreateElementsHelper handler; global DroolsInsertionQueue queue; global DroolsHelperFunctions functions; rule "Create empty domain store" when #conditions a : InternetApplication ( name == "test" ) not (DomainStore( name=="test domain store") from a.domainStores) // how do we know when not to create the domainstore? then #actions // DomainStore ds = (DomainStore) handler.createElement( a, ModelPackage.eINSTANCE.getDomainStore(), ModelPackage.eINSTANCE.getInternetApplication_DomainStores() ); // ds.setIsGenerated(true); // ds.setGeneratedBy(a); DomainStore ds = handler.generatedDomainStore( a, a ); handler.setName(ds, "test domain store"); queue.add(ds, drools); // possibly infer new knowledge (this is necessary) end /** * @inference InputTextField,ApplicationElementProperty A {@model InputTextField} * contains a {@model ApplicationElementProperty property} named 'fieldValue'. */ rule "Create field value for input text field" when f : InputTextField( overridden == false ) not (ApplicationElementProperty( eContainer == f, name=="fieldValue" )) then ApplicationElementProperty fieldValue = handler.generatedApplicationElementProperty(f, f); handler.setName(fieldValue, "fieldValue"); queue.add(fieldValue, drools); end /** * @inference DomainAttribute,ApplicationElementProperty A {@model DomainAttribute} * contains a {@model ApplicationElementProperty property} named 'fieldValue'. */ rule "Create field value for domain attribute" when f : DomainAttribute( overridden == false ) not (ApplicationElementProperty( eContainer == f, name=="fieldValue" )) then ApplicationElementProperty fieldValue = handler.generatedApplicationElementProperty(f, f); handler.setName(fieldValue, "fieldValue"); queue.add(fieldValue, drools); end