package jadex.bdi.model.impl.flyweights; import jadex.bdi.model.IMConfigBelief; import jadex.bdi.model.IMConfigBeliefSet; import jadex.bdi.model.IMConfigElement; import jadex.bdi.model.IMConfiguration; import jadex.bdi.model.IMInitialCapability; import jadex.bdi.model.OAVBDIMetaModel; import jadex.bdi.model.editable.IMEConfigBelief; import jadex.bdi.model.editable.IMEConfigBeliefSet; import jadex.bdi.model.editable.IMEConfigElement; import jadex.bdi.model.editable.IMEConfiguration; import jadex.rules.state.IOAVState; import java.util.Collection; import java.util.Iterator; /** * Flyweight for configuration model element. */ public class MConfigurationFlyweight extends MElementFlyweight implements IMConfiguration, IMEConfiguration { //-------- constructors -------- /** * Create a new element flyweight. */ public MConfigurationFlyweight(IOAVState state, Object scope, Object handle) { super(state, scope, handle); } //-------- methods -------- /** * Get the initial capabilities. * @return The initial capabilities. */ public IMInitialCapability[] getInitialCapabilities() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialcapabilities); IMInitialCapability[] ret = new IMInitialCapability[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MInitialCapabilityFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMInitialCapability[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialcapabilities); IMInitialCapability[] ret = new IMInitialCapability[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MInitialCapabilityFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the initial beliefs. * @return The initial beliefs. */ public IMConfigBelief[] getInitialBeliefs() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialbeliefs); IMConfigBelief[] ret = new IMConfigBelief[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigBeliefFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigBelief[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialbeliefs); IMConfigBelief[] ret = new IMConfigBelief[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigBeliefFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the initial belief sets. * @return The initial belief sets. */ public IMConfigBeliefSet[] getInitialBeliefSets() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialbeliefsets); IMConfigBeliefSet[] ret = new IMConfigBeliefSet[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigBeliefSetFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigBeliefSet[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialbeliefsets); IMConfigBeliefSet[] ret = new IMConfigBeliefSet[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigBeliefSetFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the initial goals. * @return The initial goals. */ public IMConfigElement[] getInitialGoals() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialgoals); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigElement[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialgoals); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the end goals. * @return The end goals. */ public IMConfigElement[] getEndGoals() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_endgoals); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigElement[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_endgoals); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the initial plans. * @return The initial plans. */ public IMConfigElement[] getInitialPlans() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialplans); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigElement[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialplans); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the end plans. * @return The end plans. */ public IMConfigElement[] getEndPlans() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_endplans); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigElement[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_endplans); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the initial internal events. * @return The initial internal events. */ public IMConfigElement[] getInitialInternalEvents() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialinternalevents); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigElement[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialinternalevents); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the end internal events. * @return The end internal events. */ public IMConfigElement[] getEndInternalEvents() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_endinternalevents); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigElement[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_endinternalevents); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the initial message events. * @return The initial message events. */ public IMConfigElement[] getInitialMessageEvents() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialmessageevents); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigElement[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_initialmessageevents); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Get the end message events. * @return The end message events. */ public IMConfigElement[] getEndMessageEvents() { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_endmessageevents); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } object = ret; } }; return (IMConfigElement[])invoc.object; } else { Collection elems = (Collection)getState().getAttributeValue(getScope(), OAVBDIMetaModel.configuration_has_endmessageevents); IMConfigElement[] ret = new IMConfigElement[elems==null? 0: elems.size()]; if(elems!=null) { int i=0; for(Iterator it=elems.iterator(); it.hasNext(); ) { ret[i++] = new MConfigElementFlyweight(getState(), getScope(), it.next()); } } return ret; } } /** * Create an initial capability. * @param ref The referenced capability name. * @param conf The name of configuration to use. */ public void createInitialCapability(final String ref, final String conf) { if(isExternalThread()) { new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.initialcapability_type); getState().setAttributeValue(elem, OAVBDIMetaModel.initialcapability_has_ref, ref); getState().setAttributeValue(elem, OAVBDIMetaModel.initialcapability_has_configuration, conf); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialcapabilities, elem); } }; } else { Object elem = getState().createObject(OAVBDIMetaModel.initialcapability_type); getState().setAttributeValue(elem, OAVBDIMetaModel.initialcapability_has_ref, ref); getState().setAttributeValue(elem, OAVBDIMetaModel.initialcapability_has_configuration, conf); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialcapabilities, elem); } } /** * Create an initial belief. * @param ref The referenced element name. */ public IMEConfigBelief createInitialBelief(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configbelief_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configbelief_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialbeliefs, elem); object = new MConfigBeliefFlyweight(getState(), getScope(), elem); } }; return (IMEConfigBelief)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configbelief_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configbelief_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialbeliefs, elem); return new MConfigBeliefFlyweight(getState(), getScope(), elem); } } /** * Create an initial belief set. * @param ref The referenced element name. */ public IMEConfigBeliefSet createInitialBeliefSet(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configbeliefset_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configbeliefset_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialbeliefsets, elem); object = new MConfigBeliefSetFlyweight(getState(), getScope(), elem); } }; return (IMEConfigBeliefSet)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configbeliefset_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configbeliefset_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialbeliefsets, elem); return new MConfigBeliefSetFlyweight(getState(), getScope(), elem); } } /** * Create an initial goal. * @param ref The referenced element name. */ public IMEConfigElement createInitialGoal(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialgoals, elem); object = new MConfigElementFlyweight(getState(), getScope(), elem); } }; return (IMEConfigElement)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialgoals, elem); return new MConfigElementFlyweight(getState(), getScope(), elem); } } /** * Create an end goal. * @param ref The goal reference. * @return The end goal. */ public IMEConfigElement createEndGoal(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_endgoals, elem); object = new MConfigElementFlyweight(getState(), getScope(), elem); } }; return (IMEConfigElement)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_endgoals, elem); return new MConfigElementFlyweight(getState(), getScope(), elem); } } /** * Create an initial plan. * @param ref The plan reference. * @return The initial plan. */ public IMEConfigElement createInitialPlan(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialplans, elem); object = new MConfigElementFlyweight(getState(), getScope(), elem); } }; return (IMEConfigElement)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialplans, elem); return new MConfigElementFlyweight(getState(), getScope(), elem); } } /** * Create an end plan. * @param ref The plan reference. * @return The end plan. */ public IMEConfigElement createEndPlan(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_endplans, elem); object = new MConfigElementFlyweight(getState(), getScope(), elem); } }; return (IMEConfigElement)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_endplans, elem); return new MConfigElementFlyweight(getState(), getScope(), elem); } } /** * Create an initial internal event. * @param ref The event reference. * @return The initial internal event. */ public IMEConfigElement createInitialInternalEvent(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialinternalevents, elem); object = new MConfigElementFlyweight(getState(), getScope(), elem); } }; return (IMEConfigElement)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialinternalevents, elem); return new MConfigElementFlyweight(getState(), getScope(), elem); } } /** * Create an end internal event. * @param ref The event reference. * @return The end internal event. */ public IMEConfigElement createEndInternalEvent(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_endinternalevents, elem); object = new MConfigElementFlyweight(getState(), getScope(), elem); } }; return (IMEConfigElement)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_endinternalevents, elem); return new MConfigElementFlyweight(getState(), getScope(), elem); } } /** * Create an initial message event. * @param ref The event reference. * @return The initial message event. */ public IMEConfigElement createInitialMessageEvent(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialmessageevents, elem); object = new MConfigElementFlyweight(getState(), getScope(), elem); } }; return (IMEConfigElement)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_initialmessageevents, elem); return new MConfigElementFlyweight(getState(), getScope(), elem); } } /** * Create an end message event. * @param ref The event reference. * @return The end message event. */ public IMEConfigElement createEndMessageEvent(final String ref) { if(isExternalThread()) { AgentInvocation invoc = new AgentInvocation() { public void run() { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_endmessageevents, elem); object = new MConfigElementFlyweight(getState(), getScope(), elem); } }; return (IMEConfigElement)invoc.object; } else { Object elem = getState().createObject(OAVBDIMetaModel.configelement_type); getState().setAttributeValue(elem, OAVBDIMetaModel.configelement_has_ref, ref); getState().addAttributeValue(getHandle(), OAVBDIMetaModel.configuration_has_endmessageevents, elem); return new MConfigElementFlyweight(getState(), getScope(), elem); } } }