@Override public boolean procesarExtractedInfo(ExtractedInfo extrInfo) { // verificamos la cardinalidad del contenido de la informacion extraida. Si es mayor que uno se // trata de una // colección de elementos que seran enviados al motor // Metemos en el motor el contenido de extrInfo if (extrInfo == null) return false; if (!(extrInfo.isContentACollection())) { Object msgContent = extrInfo.getContenido(); ruleEngine.assertFact(msgContent); // ruleEngine.assertFact(extrInfo); // return true; } else { ArrayList aux = (ArrayList) extrInfo.getContenido(); ExtractedInfo extrInfoEnArray; Iterator it = aux.iterator(); while (it.hasNext()) { extrInfoEnArray = (ExtractedInfo) it.next(); if (extrInfoEnArray != null) { ruleEngine.assertFact(extrInfoEnArray); ruleEngine.assertFact(extrInfoEnArray.getContenido()); } } } // Opcional se puede anadir al motor el InfoExtracted o solo su contenido. Esto se podria // configurar // ruleEngine.assertFact(extrInfo); return true; }
@Override public boolean cambiarComportamiento(String identFicheroReglasComportamiento) { InputStream reglas = this.getClass().getResourceAsStream(identFicheroReglasComportamiento); if (ruleEngine.crearKbSesionConNuevasReglas(reglas, identFicheroReglasComportamiento)) { // inicializamos la Memoria de trabajo con variables globales inicializaVariablesGlobales(); return true; } else return false; }
@Override public void arranca() { ruleEngine.fireRules(); }
public void inicializaVariablesGlobales() { ruleEngine.addGlobalVariable(NombresPredefinidos.TASK_MANAGER_GLOBAL, taskManager); ruleEngine.addGlobalVariable( NombresPredefinidos.ITFUSO_RECURSOTRAZAS_GLOBAL, NombresPredefinidos.RECURSO_TRAZAS_OBJ); ruleEngine.addGlobalVariable(NombresPredefinidos.AGENT_ID_GLOBAL, idAgente); }
@Override public Collection<Object> copiarObjetosDeMiMemoria() { return ruleEngine.getStatefulKnowledgeSession().getObjects(); }
@Override public ItfMotorDeReglas getItfMotorDeReglas() { return ruleEngine.getItfMotorDeReglas(); }
@Override public void actualizarHechoWithoutFireRules(Object fact) { ruleEngine.updateFactWithoutFireRules(fact); }
public StatefulKnowledgeSession getStatefulKnowledgeSession() { return ruleEngine.getStatefulKnowledgeSession(); }
@Override public void eliminarHechoWithoutFireRules(Object fact) { ruleEngine.retractFactWithoutFireRules(fact); }
// The three next methods do not call to fireAllRules inside its code. @Override public synchronized void insertarHechoWithoutFireRules(Object fact) { ruleEngine.assertFactWithoutFireRules(fact); }
@Override public synchronized void actualizarHecho(Object fact) { ruleEngine.updateFact(fact); }
@Override public void eliminarHecho(Object fact) { ruleEngine.retracttFact(fact); }
// The three next methods call to fireAllRules inside its code. @Override public void insertarHecho(Object fact) { ruleEngine.assertFact(fact); }