/* (non-Javadoc) * @see ie.deri.wsmx.asm.State#add(org.omwg.logicalexpression.MembershipMolecule) */ public void add(MembershipMolecule fact) { logger.info("Adding membership molecule " + fact); // TODO write this more elegant once factory convenience creators are fixed Set<MembershipMolecule> mms = new HashSet<MembershipMolecule>(); mms.add(fact); facts.add(cFactory.facts.createMoleculeFact(mms, new HashSet<AttributeValueMolecule>())); Axiom axiom = factory.createAxiom( factory.createIRI( "http://www.wsmx.org/choreography/state/membership" + membershipCounter++)); axiom.addDefinition(fact); try { logger.debug("Adding MM axiom: " + fact); state.addAxiom(axiom); } catch (SynchronisationException e) { logger.warn("Failed to add membership molecule to state.", e); } catch (InvalidModelException e) { logger.warn("Failed to add membership molecule to state.", e); } for (StateModificationListener listener : listeners) { listener.addedMembership(this, fact); } }
/* (non-Javadoc) * @see ie.deri.wsmx.asm.State#add(org.omwg.logicalexpression.AttributeValueMolecule) */ public void add(AttributeValueMolecule fact) { facts.add( cFactory.facts.createMoleculeFact( new HashSet<MembershipMolecule>(), new HashSet<AttributeValueMolecule>( Arrays.asList(new AttributeValueMolecule[] {fact})))); Axiom axiom = factory.createAxiom( factory.createIRI( "http://www.wsmx.org/choreography/state/attribute" + attributeCounter++)); axiom.addDefinition(fact); try { logger.debug("Adding AVM axiom: " + fact); axioms.put(fact, axiom); state.addAxiom(axiom); } catch (SynchronisationException e) { logger.warn("Failed to add attribute value to state.", e); } catch (InvalidModelException e) { logger.warn("Failed to add attribute value to state.", e); } for (StateModificationListener listener : listeners) { listener.addedAttribute(this, fact); } }