/** * Create a new model. * @param name The name. */ public OAVTypeModel(String name, ClassLoader classloader, OAVTypeModel[] subtypemodels) { this.name = name; this.types = new HashMap(); this.classloader = classloader; if(subtypemodels!=null) { for(int i=0; i<subtypemodels.length; i++) { addTypeModel(subtypemodels[i]); } } }
/** * Create a new model. * @param name The name. */ public OAVTypeModel(String name, ClassLoader classloader, OAVTypeModel[] subtypemodels) { this.name = name; this.types = new HashMap(); this.classloader = classloader; if(subtypemodels!=null) { for(int i=0; i<subtypemodels.length; i++) { addTypeModel(subtypemodels[i]); } } }
/** * Create a component instance. * @param adapter The component adapter. * @param model The component model. * @param config The name of the configuration (or null for default configuration) * @param arguments The arguments for the agent as name/value pairs. * @param parent The parent component (if any). * @return An instance of a component. */ public Tuple2<IComponentInstance, IComponentAdapter> createComponentInstance(IComponentDescription desc, IComponentAdapterFactory factory, OAVAgentModel amodel, String config, Map<String, Object> arguments, IExternalAccess parent, RequiredServiceBinding[] bindings, boolean copy, boolean realtime, IIntermediateResultListener<Tuple2<String, Object>> resultlistener, Future<Void> ret) { // Create type model for agent instance (e.g. holding dynamically loaded java classes). OAVTypeModel tmodel = new OAVTypeModel(desc.getName().getLocalName()+"_typemodel", amodel.getState().getTypeModel().getClassLoader()); // OAVTypeModel tmodel = new OAVTypeModel(model.getName()+"_typemodel", ((OAVAgentModel)model).getTypeModel().getClassLoader()); tmodel.addTypeModel(amodel.getState().getTypeModel()); tmodel.addTypeModel(OAVBDIRuntimeModel.bdi_rt_model); IOAVState state = OAVStateFactory.createOAVState(tmodel); state.addSubstate(amodel.getState()); // BDIInterpreter bdii = new BDIInterpreter(desc, factory, state, amodel, config, arguments, parent, bindings, getPropertyMap(), copy, realtime, resultlistener, ret); BDIInterpreter bdii = new BDIInterpreter(desc, factory, state, amodel, config, arguments, parent, bindings, myprops, copy, realtime, resultlistener, ret); return new Tuple2<IComponentInstance, IComponentAdapter>(bdii, bdii.getAgentAdapter()); }
public void customResultAvailable(ClassLoader cl) { try { // OAVAgentModel amodel = (OAVAgentModel)model; OAVAgentModel amodel = (OAVAgentModel)loader.loadModel(modelinfo.getFilename(), null, cl, new Object[]{modelinfo.getResourceIdentifier(), root}); // Create type model for agent instance (e.g. holding dynamically loaded java classes). OAVTypeModel tmodel = new OAVTypeModel(desc.getName().getLocalName()+"_typemodel", amodel.getState().getTypeModel().getClassLoader()); // OAVTypeModel tmodel = new OAVTypeModel(model.getName()+"_typemodel", ((OAVAgentModel)model).getTypeModel().getClassLoader()); tmodel.addTypeModel(amodel.getState().getTypeModel()); tmodel.addTypeModel(OAVBDIRuntimeModel.bdi_rt_model); IOAVState state = OAVStateFactory.createOAVState(tmodel); state.addSubstate(amodel.getState()); // BDIInterpreter bdii = new BDIInterpreter(desc, factory, state, amodel, config, arguments, parent, bindings, getPropertyMap(), copy, realtime, resultlistener, init); BDIInterpreter bdii = new BDIInterpreter(desc, factory, state, amodel, config, arguments, parent, bindings, myprops, copy, realtime, resultlistener, init); ret.setResult(new Tuple2<IComponentInstance, IComponentAdapter>(bdii, bdii.getAgentAdapter())); } catch(Exception e) { ret.setException(e); } } });
tmodel.addTypeModel(amodel.getState().getTypeModel()); tmodel.addTypeModel(OAVBDIRuntimeModel.bdi_rt_model); IOAVState state = OAVStateFactory.createOAVState(tmodel); state.addSubstate(amodel.getState());
helloworld_type_model.addTypeModel(OAVJavaType.java_type_model); /*OAVObjectType message_type = */helloworld_type_model.createJavaType(Message.class,OAVJavaType.KIND_BEAN);
helloworld_type_model.addTypeModel(OAVJavaType.java_type_model); OAVObjectType message_type = helloworld_type_model.createType("message"); final OAVAttributeType message_has_text = message_type.createAttributeType("message_has_text", OAVJavaType.java_string_type);
fibonacci_type_model.addTypeModel(OAVJavaType.java_type_model); final OAVObjectType fibo_type = fibonacci_type_model.createType("fibo_type"); final OAVAttributeType fibo_has_value = fibo_type.createAttributeType("fibo_has_value", OAVJavaType.java_long_type);
typemodel.addTypeModel(OAVBDIRuntimeModel.bdi_rt_model); final IOAVState state = OAVStateFactory.createOAVState(typemodel);
fibonacci_type_model.addTypeModel(OAVJavaType.java_type_model); final OAVJavaType fibo_type = fibonacci_type_model.createJavaType(FibonacciNumber.class, OAVJavaType.KIND_BEAN);