public void activate() { injector = RulesStandaloneSetup.getInjector(); triggerManager = injector.getInstance(RuleTriggerManager.class); if (!isEnabled()) { logger.info("Rule engine is disabled."); return; } logger.debug("Started rule engine"); // read all rule files Iterable<String> ruleModelNames = modelRepository.getAllModelNamesOfType("rules"); ArrayList<String> clonedList = Lists.newArrayList(ruleModelNames); for (String ruleModelName : clonedList) { EObject model = modelRepository.getModel(ruleModelName); if (model instanceof RuleModel) { RuleModel ruleModel = (RuleModel) model; triggerManager.addRuleModel(ruleModel); } } // register us on all items which are already available in the registry for (Item item : itemRegistry.getItems()) { internalItemAdded(item); } scheduleStartupRules(); }
private void dispatchBindingsPerType(BindingConfigReader reader, String[] bindingTypes) { if (modelRepository != null) { for (String modelName : modelRepository.getAllModelNamesOfType("items")) { ItemModel model = (ItemModel) modelRepository.getModel(modelName); if (model != null) { for (ModelItem modelItem : model.getItems()) { for (ModelBinding modelBinding : modelItem.getBindings()) { for (String bindingType : bindingTypes) { if (bindingType.equals(modelBinding.getType())) { Item item = createItemFromModelItem(modelItem); if (item != null) { internalDispatchBindings(reader, modelName, item, modelItem.getBindings()); } } } } } } else { logger.debug("Model repository returned NULL for model named '{}'", modelName); } } } else { logger.warn("ModelRepository is NULL > dispatch bindings aborted!"); } }
public void unsetModelRepository(ModelRepository modelRepository) { modelRepository.removeModelRepositoryChangeListener(this); for (String modelName : modelRepository.getAllModelNamesOfType("persist")) { stopEventHandling(modelName); } this.modelRepository = null; }
/** {@inheritDoc} */ @Override public Collection<Item> getAll() { List<Item> items = new ArrayList<Item>(); stateDescriptions.clear(); for (String name : modelRepository.getAllModelNamesOfType("items")) { items.addAll(getItemsFromModel(name)); } return items; }
public void setModelRepository(ModelRepository modelRepository) { this.modelRepository = modelRepository; modelRepository.addModelRepositoryChangeListener(this); for (String modelName : modelRepository.getAllModelNamesOfType("persist")) { String serviceName = modelName.substring(0, modelName.length() - ".persist".length()); stopEventHandling(serviceName); startEventHandling(serviceName); } }