Search in sources :

Example 31 with Attribute

use of com.ramussoft.common.Attribute in project ramus by Vitaliy-Yakovchuk.

the class EvalPlugin method init.

@Override
public void init(final Engine engine, AccessRules rules) {
    super.init(engine, rules);
    Qualifier qualifier = StandardAttributesPlugin.getQualifiersQualifier(engine);
    engine.setPluginProperty(getName(), "Plugin", this);
    function = getFunction(qualifier);
    if (function == null) {
        function = engine.createSystemAttribute(new AttributeType(EVAL, "Function", false));
        function.setName(FUNCTION_ATTRIBUTE);
        engine.updateAttribute(function);
        qualifier.getSystemAttributes().add(function);
        engine.updateQualifier(qualifier);
    }
    functionDependences = engine.getSystemQualifier(QUALIFIER_EVAL_FUNCTION_DEPENDENCES);
    if (functionDependences == null) {
        createEvalObjects(engine);
    } else {
        functionDependence = engine.getSystemAttribute(ATTRIBUTE_EVAL_FUNCTION_DEPENDENCE);
        functionDependenceQualifier = engine.getSystemAttribute(ATTRIBUTE_EVAL_DEPENDENCE_QUALIFIER);
        functionDependenceAttribute = engine.getSystemAttribute(ATTRIBUTE_EVAL_DEPENDENCE_ATTRIBUTE);
        functionDependenceSourceAttribute = engine.getSystemAttribute(ATTRIBUTE_EVAL_FUNCTION_DEPENDENCE_SOURCE_ATTRIBUTE);
    }
    if (!StandardAttributesPlugin.isDisableAutoupdate(engine)) {
        final Util util = Util.getUtils(engine);
        util.getScriptHolders().addFunctionsChangeListener(new FunctionsChangeListener() {

            @SuppressWarnings("unchecked")
            @Override
            public void functionsChanged(FunctionsChangeEvent event) {
                IEngine iEngine = engine.getDeligate();
                if ((iEngine != null) && (iEngine instanceof IEngineImpl)) {
                    JDBCTemplate template = ((IEngineImpl) iEngine).getTemplate();
                    String prefix = ((IEngineImpl) iEngine).getPrefix();
                    for (String function : event.getFunctionNames()) {
                        List<FunctionPersistent> list = template.query("SELECT function, qualifier_attribute_id, qualifier_table_attribute_id, autochange, attribute_id, element_id FROM " + prefix + "attribute_functions WHERE function LIKE ? AND autochange=1", new RowMapper() {

                            @Override
                            public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
                                FunctionPersistent persistent = new FunctionPersistent(rs.getString(1), rs.getLong(2), rs.getLong(3), rs.getInt(4));
                                persistent.setAttributeId(rs.getLong(5));
                                persistent.setElementId(rs.getLong(6));
                                return persistent;
                            }
                        }, new Object[] { "%" + function + "%" }, true);
                        for (FunctionPersistent fp : list) {
                            recalculateQualifierAttribute(engine, StandardAttributesPlugin.getQualifier(engine, engine.getElement(fp.getElementId())), util, fp);
                        }
                    }
                }
                for (String function : event.getFunctionNames()) {
                    for (CalculateInfo info : engine.findCalculateInfos("%" + function + "%", true)) {
                        recalculate(engine, info);
                    }
                }
            }
        });
        engine.addElementAttributeListener(null, new ElementAttributeListener() {

            @SuppressWarnings("unchecked")
            @Override
            public void attributeChanged(AttributeEvent event) {
                if (event.isJournaled())
                    return;
                if (DISABLE_RECALC)
                    return;
                if (event.getElement() == null) {
                    IEngine d = engine.getDeligate();
                    List<Element> allElements = null;
                    if ((d != null) && (d instanceof IEngineImpl)) {
                        JDBCTemplate template = ((IEngineImpl) d).getTemplate();
                        String prefix = ((IEngineImpl) d).getPrefix();
                        allElements = template.query("SELECT * FROM " + prefix + "elements WHERE qualifier_id in\n" + "(SELECT qualifier_id FROM " + prefix + "qualifiers_attributes WHERE attribute_id=?)", new RowMapper() {

                            @Override
                            public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
                                return new Element(rs.getLong("element_id"), rs.getLong("qualifier_id"), rs.getString("element_name"));
                            }
                        }, new Object[] { event.getAttribute().getId() }, true);
                    } else {
                        Attribute attribute = event.getAttribute();
                        allElements = new ArrayList<Element>();
                        for (Qualifier qualifier : engine.getQualifiers()) {
                            if (qualifier.getAttributes().indexOf(attribute) >= 0) {
                                allElements.addAll(engine.getElements(qualifier.getId()));
                            }
                        }
                    }
                    Attribute attribute = event.getAttribute();
                    for (Element element : allElements) {
                        recalculateElement(engine, new AttributeEvent(engine, element, attribute, null, null));
                    }
                } else
                    recalculateElement(engine, event);
            }

            private void recalculateElement(final Engine engine, AttributeEvent event) {
                MetaValue metaValue = new MetaValue(event.getElement().getId(), event.getAttribute().getId());
                List<MetaValue> metaValueList = hashtable.get(Thread.currentThread());
                if (metaValueList == null) {
                    metaValueList = new ArrayList<MetaValue>();
                    hashtable.put(Thread.currentThread(), metaValueList);
                } else {
                    if (metaValueList.indexOf(metaValue) >= 0)
                        return;
                }
                metaValueList.add(metaValue);
                try {
                    for (CalculateInfo info : engine.getDependences(event.getElement().getId(), event.getAttribute().getId(), true)) {
                        recalculate(engine, info);
                    }
                    List<Element> elements = engine.findElements(functionDependences.getId(), functionDependence, event.getElement().getId());
                    for (Element e : elements) {
                        Qualifier qualifier = engine.getQualifier((Long) engine.getAttribute(e, functionDependenceQualifier));
                        Attribute attribute = engine.getAttribute((Long) engine.getAttribute(e, functionDependenceAttribute));
                        if ((qualifier != null) && (attribute != null)) {
                            Element el = StandardAttributesPlugin.getElement(event.getEngine(), qualifier.getId());
                            if (el != null)
                                for (Element child : engine.getElements(qualifier.getId())) {
                                    recalculateInQualifier(engine, Util.elementIdToValue(event.getElement().getId(), event.getAttribute().getId()), null, el, child);
                                }
                        }
                    }
                    Element element = StandardAttributesPlugin.getElement(event.getEngine(), event.getElement().getQualifierId());
                    if (element == null) {
                        Qualifier qualifier = engine.getQualifier(event.getElement().getQualifierId());
                        if (StandardAttributesPlugin.isTableQualifier(qualifier)) {
                            Element parent = StandardAttributesPlugin.getElementForTableElement(engine, event.getElement());
                            if (parent == null)
                                return;
                            Qualifier main = engine.getQualifier(parent.getQualifierId());
                            Attribute tableAttribute = null;
                            for (Attribute attr : main.getAttributes()) {
                                if (StandardAttributesPlugin.getTableQualifeirName(attr).equals(qualifier.getName())) {
                                    tableAttribute = attr;
                                    break;
                                }
                            }
                            if (tableAttribute == null)
                                return;
                            element = StandardAttributesPlugin.getElement(event.getEngine(), parent.getQualifierId());
                            if (element != null) {
                                if (event.getAttribute().equals(StandardAttributesPlugin.getTableElementIdAttribute(engine)))
                                    recalculateInQualifier(engine, null, event.getElement(), element, parent);
                                else
                                    recalculateInQualifier(engine, Util.tableAttributeToValue(tableAttribute.getId(), event.getAttribute().getId()), event.getElement(), element, parent);
                            }
                        }
                        return;
                    }
                    recalculateInQualifier(engine, Util.attributeIdToValue(event.getAttribute().getId()), null, element, event.getElement());
                } finally {
                    metaValueList.remove(metaValueList.size() - 1);
                }
            }
        });
        engine.addElementListener(null, new ElementAdapter() {

            @SuppressWarnings("unchecked")
            @Override
            public void elementCreated(ElementEvent event) {
                if (event.isJournaled())
                    return;
                Element element = StandardAttributesPlugin.getElement(event.getEngine(), event.getNewElement().getQualifierId());
                if (element == null) {
                    return;
                }
                List<FunctionPersistent> list = getFunctionAttribute(engine, element);
                if (list == null)
                    return;
                Util utils = Util.getUtils(engine);
                for (FunctionPersistent fp : list) if (fp.getAutochange() != 0) {
                    Eval eval = new Eval(fp.getFunction());
                    try {
                        utils.fillAttributes(eval, engine.getQualifier(event.getNewElement().getQualifierId()), event.getNewElement(), null, null, null, true);
                        utils.fillResult(fp.getQualifierAttributeId(), eval, event.getNewElement());
                    } catch (Exception e) {
                        utils.fillResult(fp.getQualifierAttributeId(), e, event.getNewElement());
                        if (e instanceof RuntimeException)
                            throw (RuntimeException) e;
                        throw new RuntimeException(e);
                    } finally {
                    }
                }
            }

            @SuppressWarnings("unchecked")
            @Override
            public void beforeElementDeleted(final ElementEvent event) {
                if ((event.isJournaled()) || (event.getNewElement() != null))
                    return;
                Element oldElement = event.getOldElement();
                Qualifier qualifier = engine.getQualifier(oldElement.getQualifierId());
                for (Attribute attribute : qualifier.getAttributes()) {
                    removeAttributeFromCalculateInfo(engine, oldElement, attribute);
                    CalculateInfo info = engine.getCalculateInfo(oldElement.getId(), attribute.getId());
                    if (info != null) {
                        info.setFormula(null);
                        engine.setCalculateInfo(info);
                    }
                }
                List<Element> elements = engine.findElements(functionDependences.getId(), functionDependence, oldElement.getId());
                Vector<Long> qualifiers = new Vector<Long>(elements.size());
                final String start = Util.ELEMENT_PREFIX + oldElement.getId();
                for (Element element : elements) {
                    Long q = (Long) engine.getAttribute(element, functionDependenceQualifier);
                    if (qualifiers.indexOf(q) < 0) {
                        qualifiers.add(q);
                        Element qElement = StandardAttributesPlugin.getElement(engine, q.longValue());
                        List<FunctionPersistent> fpl = (List<FunctionPersistent>) engine.getAttribute(qElement, function);
                        for (FunctionPersistent fp : fpl) {
                            try {
                                Eval eval = new Eval(fp.getFunction());
                                eval.replaceValueNames(new Replacementable() {

                                    @Override
                                    public String getNewName(String oldName) {
                                        if (oldName.startsWith(start))
                                            return "NULL";
                                        return oldName;
                                    }
                                });
                                fp.setFunction(eval.toString());
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                        engine.setAttribute(qElement, function, fpl);
                    }
                // engine.deleteElement(element.getId());
                }
            }
        });
        engine.addQualifierListener(new QualifierAdapter() {

            @SuppressWarnings("unchecked")
            @Override
            public void beforeQualifierUpdated(QualifierEvent event) {
                List<Attribute> rem = new ArrayList<Attribute>();
                for (Attribute a : event.getOldQualifier().getAttributes()) {
                    if (event.getNewQualifier().getAttributes().indexOf(a) < 0)
                        rem.add(a);
                }
                if (rem.size() > 0) {
                    List<Element> list = engine.getElements(event.getOldQualifier().getId());
                    for (Attribute attribute : rem) {
                        for (Element element : list) {
                            removeAttributeFromCalculateInfo(engine, element, attribute);
                            CalculateInfo info = engine.getCalculateInfo(element.getId(), attribute.getId());
                            if (info != null) {
                                info.setFormula(null);
                                engine.setCalculateInfo(info);
                            }
                        }
                        List<Element> elements = engine.findElements(functionDependences.getId(), functionDependenceSourceAttribute, attribute.getId());
                        final String end = Util.ATTRIBUTE_PREFIX + attribute.getId();
                        for (Element element : elements) {
                            Long id = (Long) engine.getAttribute(element, functionDependence);
                            if (engine.getQualifierIdForElement(id) == event.getNewQualifier().getId()) {
                                Long qId = (Long) engine.getAttribute(element, functionDependenceQualifier);
                                Element element2 = StandardAttributesPlugin.getElement(engine, qId);
                                List<FunctionPersistent> fpl = (List<FunctionPersistent>) engine.getAttribute(element2, function);
                                for (FunctionPersistent fp : fpl) {
                                    Eval eval = new Eval(fp.getFunction());
                                    eval.replaceValueNames(new Replacementable() {

                                        @Override
                                        public String getNewName(String oldName) {
                                            if (oldName.endsWith(end)) {
                                                return "NULL";
                                            }
                                            return oldName;
                                        }
                                    });
                                    fp.setFunction(eval.toString());
                                }
                                engine.setAttribute(element2, function, fpl);
                            }
                        }
                    }
                }
            }

            @Override
            public void qualifierDeleted(QualifierEvent event) {
                Qualifier qualifier = event.getOldQualifier();
                for (Element element : engine.findElements(functionDependences.getId(), functionDependenceQualifier, qualifier.getId())) {
                    engine.deleteElement(element.getId());
                }
            }
        });
        Qualifier qq = StandardAttributesPlugin.getQualifiersQualifier(engine);
        engine.addElementAttributeListener(qq, new ElementAttributeListener() {

            @Override
            public void attributeChanged(AttributeEvent event) {
                if (event.isJournaled())
                    return;
                if (function.equals(event.getAttribute())) {
                    recalculateFunctionOfQualifier(engine, event);
                }
            }
        });
        engine.addFormulaListener(new FormulaListener() {

            @Override
            public void formulaChanged(FormulaEvent event) {
                if (event.isJournaled())
                    return;
                CalculateInfo info = event.getNewFormula();
                recalculate(engine, info);
            }
        });
    }
}
Also used : ElementAdapter(com.ramussoft.common.event.ElementAdapter) SQLException(java.sql.SQLException) Attribute(com.ramussoft.common.Attribute) ElementAttributeListener(com.ramussoft.common.event.ElementAttributeListener) Element(com.ramussoft.common.Element) IEngine(com.ramussoft.common.IEngine) ArrayList(java.util.ArrayList) Util(com.ramussoft.eval.Util) QualifierEvent(com.ramussoft.common.event.QualifierEvent) AttributeEvent(com.ramussoft.common.event.AttributeEvent) JDBCTemplate(com.ramussoft.jdbc.JDBCTemplate) AttributeType(com.ramussoft.common.AttributeType) ResultSet(java.sql.ResultSet) Qualifier(com.ramussoft.common.Qualifier) ArrayList(java.util.ArrayList) List(java.util.List) Replacementable(com.ramussoft.eval.Replacementable) FunctionPersistent(com.ramussoft.eval.FunctionPersistent) FormulaEvent(com.ramussoft.common.event.FormulaEvent) Eval(com.ramussoft.eval.Eval) Vector(java.util.Vector) Engine(com.ramussoft.common.Engine) IEngine(com.ramussoft.common.IEngine) RowMapper(com.ramussoft.jdbc.RowMapper) QualifierAdapter(com.ramussoft.common.event.QualifierAdapter) MetaValue(com.ramussoft.eval.MetaValue) ElementEvent(com.ramussoft.common.event.ElementEvent) SQLException(java.sql.SQLException) IEngineImpl(com.ramussoft.core.impl.IEngineImpl) FunctionsChangeListener(com.ramussoft.eval.event.FunctionsChangeListener) FunctionsChangeEvent(com.ramussoft.eval.event.FunctionsChangeEvent) CalculateInfo(com.ramussoft.common.CalculateInfo) FormulaListener(com.ramussoft.common.event.FormulaListener) EObject(com.ramussoft.eval.EObject)

Example 32 with Attribute

use of com.ramussoft.common.Attribute in project ramus by Vitaliy-Yakovchuk.

the class EvalPlugin method recalculateInQualifier.

@SuppressWarnings("unchecked")
private void recalculateInQualifier(final Engine engine, String attributeValue, Element tableElement2, Element element, Element resElement) {
    List<FunctionPersistent> list = getFunctionAttribute(engine, element);
    Util utils = Util.getUtils(engine);
    for (FunctionPersistent fp : list) if (fp.getAutochange() != 0) {
        Eval eval = new Eval(fp.getFunction());
        if ((attributeValue == null) || (eval.isValuePresent(attributeValue)) || (isElementPesent(eval))) {
            if (fp.getQualifierTableAttributeId() == -1l) {
                try {
                    utils.fillAttributes(eval, engine.getQualifier(resElement.getQualifierId()), resElement, null, null, null, true);
                    utils.fillResult(fp.getQualifierAttributeId(), eval, resElement);
                } catch (Exception e) {
                    utils.fillResult(fp.getQualifierAttributeId(), e, resElement);
                    if (e instanceof RuntimeException)
                        throw (RuntimeException) e;
                    throw new RuntimeException(e);
                } finally {
                }
            } else {
                Attribute tableAttribute = engine.getAttribute(fp.getQualifierAttributeId());
                Qualifier tableQualifier = StandardAttributesPlugin.getTableQualifierForAttribute(engine, tableAttribute);
                for (Element tableElement : StandardAttributesPlugin.getTableElements(engine, tableAttribute, resElement)) if ((tableElement2 == null) || (tableElement2.equals(tableElement))) {
                    try {
                        utils.fillAttributes(eval, engine.getQualifier(resElement.getQualifierId()), resElement, tableAttribute, tableQualifier, tableElement, true);
                        utils.fillResult(fp.getQualifierTableAttributeId(), eval, tableElement);
                    } catch (Exception e) {
                        utils.fillResult(fp.getQualifierAttributeId(), e, tableElement);
                        if (e instanceof RuntimeException)
                            throw (RuntimeException) e;
                        throw new RuntimeException(e);
                    } finally {
                    }
                }
            }
        }
    }
}
Also used : Attribute(com.ramussoft.common.Attribute) Element(com.ramussoft.common.Element) Util(com.ramussoft.eval.Util) Qualifier(com.ramussoft.common.Qualifier) FunctionPersistent(com.ramussoft.eval.FunctionPersistent) Eval(com.ramussoft.eval.Eval) SQLException(java.sql.SQLException)

Example 33 with Attribute

use of com.ramussoft.common.Attribute in project ramus by Vitaliy-Yakovchuk.

the class EvalPlugin method recalculateQualifierAttribute.

private void recalculateQualifierAttribute(final Engine engine, Qualifier q, Util utils, FunctionPersistent fp) {
    Eval eval = new Eval(fp.getFunction());
    if (fp.getQualifierTableAttributeId() == -1l) {
        List<Attribute> attributes = utils.getAttributes(q, eval);
        Hashtable<Element, Object[]> data = engine.getElements(q, attributes);
        for (Entry<Element, Object[]> entry : data.entrySet()) {
            Object[] objects = entry.getValue();
            Element element = entry.getKey();
            for (int i = 0; i < objects.length; i++) {
                eval.setValue(utils.toValue(attributes.get(i).getId()), new EObject(objects[i], element, attributes.get(i), engine));
            }
            utils.fillMetaValues(eval);
            try {
                utils.fillResult(fp.getQualifierAttributeId(), eval, element);
            } catch (Exception e) {
                utils.fillResult(fp.getQualifierAttributeId(), e, element);
            }
        }
    } else {
        List<Attribute> attributes = utils.getAttributes(q, eval);
        Hashtable<Element, Object[]> data = engine.getElements(q, attributes);
        for (Entry<Element, Object[]> entry : data.entrySet()) {
            Object[] objects = entry.getValue();
            Element element = entry.getKey();
            for (int i = 0; i < objects.length; i++) {
                eval.setValue(utils.toValue(attributes.get(i).getId()), new EObject(objects[i], element, attributes.get(i), engine));
            }
            utils.fillMetaValues(eval);
            Qualifier tableQualifier = StandardAttributesPlugin.getTableQualifierForAttribute(engine, fp.getQualifierAttributeId());
            List<Element> table = StandardAttributesPlugin.getTableElements(engine, engine.getAttribute(fp.getQualifierAttributeId()), element);
            List<Attribute> tableAttributes = utils.getTableAttributes(tableQualifier, fp.getQualifierAttributeId(), eval);
            for (Element tableElement : table) try {
                for (Attribute tableAttribute : tableAttributes) {
                    Object value = engine.getAttribute(tableElement, tableAttribute);
                    eval.setValue(Util.tableAttributeToValue(fp.getQualifierAttributeId(), tableAttribute.getId()), new EObject(value, tableElement, tableAttribute, engine));
                }
                utils.fillResult(fp.getQualifierTableAttributeId(), eval, tableElement);
            } catch (Exception e) {
                utils.fillResult(fp.getQualifierTableAttributeId(), e, tableElement);
            }
        }
    }
}
Also used : Attribute(com.ramussoft.common.Attribute) Element(com.ramussoft.common.Element) SQLException(java.sql.SQLException) EObject(com.ramussoft.eval.EObject) EObject(com.ramussoft.eval.EObject) Qualifier(com.ramussoft.common.Qualifier) Eval(com.ramussoft.eval.Eval)

Example 34 with Attribute

use of com.ramussoft.common.Attribute in project ramus by Vitaliy-Yakovchuk.

the class IEngineImpl method getAttributeByName.

@Override
public Attribute getAttributeByName(String attributeName) {
    final long branch = getActiveBranchId();
    Attribute attribute = (Attribute) template.queryForObjects("SELECT * FROM " + prefix + "attributes WHERE ATTRIBUTE_NAME=? AND attribute_system=FALSE AND removed_branch_id>?", new AttributeRowMapper(branch), new Object[] { attributeName, branch }, true);
    if (attribute != null && !attributeName.equals(getAttribute(attribute.getId()).getName()))
        attribute = null;
    if (branch > 0l) {
        Long l = (Long) template.queryForObjects("SELECT ATTRIBUTE_ID FROM " + prefix + "attributes_history qh WHERE ATTRIBUTE_NAME=? AND created_branch_id IN (" + "SELECT MAX(created_branch_id) FROM " + prefix + "attributes_history WHERE ATTRIBUTE_NAME=qh.ATTRIBUTE_NAME AND created_branch_id<=?)", new RowMapper() {

            @Override
            public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
                return rs.getLong(1);
            }
        }, new Object[] { attributeName, branch }, false);
        if (l != null)
            return getAttribute(l);
    }
    return attribute;
}
Also used : Attribute(com.ramussoft.common.Attribute) ResultSet(java.sql.ResultSet) FindObject(com.ramussoft.common.attribute.FindObject) RowMapper(com.ramussoft.jdbc.RowMapper)

Example 35 with Attribute

use of com.ramussoft.common.Attribute in project ramus by Vitaliy-Yakovchuk.

the class IEngineImpl method getSystemAttribute.

@Override
public Attribute getSystemAttribute(String attributeName) {
    Attribute a = (Attribute) template.queryForObjects("SELECT * FROM " + prefix + "attributes WHERE ATTRIBUTE_NAME=? AND attribute_system=TRUE", new AttributeRowMapper(getActiveBranchId()), new Object[] { attributeName }, true);
    if (a != null)
        return a;
    final long branch = getActiveBranchId();
    Attribute attribute = (Attribute) template.queryForObjects("SELECT * FROM " + prefix + "attributes WHERE ATTRIBUTE_NAME=? AND attribute_system=TRUE AND removed_branch_id>?", new AttributeRowMapper(branch), new Object[] { attributeName, branch }, true);
    if (attribute != null && !attributeName.equals(getAttribute(attribute.getId()).getName()))
        attribute = null;
    if (branch > 0l) {
        Long l = (Long) template.queryForObjects("SELECT ATTRIBUTE_ID FROM " + prefix + "attributes_history qh WHERE ATTRIBUTE_NAME=? AND created_branch_id IN (" + "SELECT MAX(created_branch_id) FROM " + prefix + "attributes_history WHERE ATTRIBUTE_NAME=qh.ATTRIBUTE_NAME AND created_branch_id <=?)", new RowMapper() {

            @Override
            public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
                return rs.getLong(1);
            }
        }, new Object[] { attributeName, branch }, false);
        if (l != null)
            return getAttribute(l);
    }
    return attribute;
}
Also used : Attribute(com.ramussoft.common.Attribute) ResultSet(java.sql.ResultSet) FindObject(com.ramussoft.common.attribute.FindObject) RowMapper(com.ramussoft.jdbc.RowMapper)

Aggregations

Attribute (com.ramussoft.common.Attribute)203 Qualifier (com.ramussoft.common.Qualifier)72 Element (com.ramussoft.common.Element)70 ArrayList (java.util.ArrayList)53 Engine (com.ramussoft.common.Engine)32 List (java.util.List)20 Row (com.ramussoft.database.common.Row)19 Hashtable (java.util.Hashtable)19 SQLException (java.sql.SQLException)16 AttributeType (com.ramussoft.common.AttributeType)15 FindObject (com.ramussoft.common.attribute.FindObject)11 AttributeEvent (com.ramussoft.common.event.AttributeEvent)11 ResultSet (java.sql.ResultSet)11 AttributePlugin (com.ramussoft.gui.common.AttributePlugin)10 AccessRules (com.ramussoft.common.AccessRules)9 Transaction (com.ramussoft.common.persistent.Transaction)9 HierarchicalPersistent (com.ramussoft.core.attribute.simple.HierarchicalPersistent)9 RowMapper (com.ramussoft.jdbc.RowMapper)9 Row (com.ramussoft.pb.Row)9 ImageIcon (javax.swing.ImageIcon)9