@Override public boolean apply(RuleBaseElementId input) { return input.getPackageName().equals(packageName); } });
public RuleBaseElement(RuleBaseElementId id) { name = id.getName(); packageName = id.getPackageName(); type = id.getType(); }
String packageName = id.getPackageName(); StringBuffer packageString = getPackageString(packageName); String code = manager.get(id); String packageName = id.getPackageName(); StringBuffer packageString = getPackageString(packageName); String code = manager.get(id);
@Override public void delete(RuleBaseElementId name) throws RuleBaseException { try { persistence.delete(new RuleBaseElement(name)); } catch (PersistenceException e) { throw new RuleBaseException(e); } builder.reloadPackage(name.getPackageName()); }
@Override public void update(RuleBaseElementId name, String newCode) throws RuleBaseException { RuleBaseElement oldBean = new RuleBaseElement(name); RuleBaseElement newBean = new RuleBaseElement(name, newCode); try { persistence.update(oldBean, newBean); } catch (PersistenceException e) { throw new RuleBaseException(e); } builder.reloadPackage(name.getPackageName()); }
@Override public void add(RuleBaseElementId name, String code) throws RuleBaseException { List<RuleBaseElement> existingRules = persistence.query(new RuleBaseElement(name)); if (!existingRules.isEmpty()) { throw new RuleBaseException("rule already exists"); } RuleBaseElement objectToPersist = new RuleBaseElement(name, code); try { persistence.create(objectToPersist); } catch (PersistenceException e) { throw new RuleBaseException(e); } try { builder.reloadPackage(name.getPackageName()); } catch (RuleBaseException e) { try { persistence.delete(objectToPersist); throw e; } catch (PersistenceException e1) { throw new RuntimeException("could not remove previously added rule, that broke the rulebase", e1); } } }