Package net.sourceforge.temply.base.rules

Examples of net.sourceforge.temply.base.rules.Resolve


                    Rule anchestor = getRule(_xmlRules.get(anchestorName));
                    for (Var var : anchestor.getVars()) {
                        rule.add(var);
                    }
                    for (Resolve resolve : anchestor.getResolves()) {
                        rule.add(new Resolve(rule, resolve.getRule(), resolve.getCategory(), resolve.getVar(), resolve.getValue()));
                    }
                    for (RuleValidator validator : anchestor.getValidators()) {
                        rule.add(validator);
                    }
                }
            }
           
            for (XMLVar xmlVar : xmlRule.getXMLVar()) {
                rule.add(new Var(xmlVar.getName(), VarType.valueOf(xmlVar
                        .getType().toString()), xmlVar.getDefault()));
            }
           
            for (XMLResolve xmlResolve : xmlRule.getXMLResolve()) {
                Rule varRule = getRule(_xmlRules.get(xmlResolve.getRule()));
                if (varRule == null) {
                    log.error("Unknown rule " + xmlResolve.getRule()
                            + " referred in " + rule);
                    continue;
                }
                Var var = varRule.getVar(xmlResolve.getVar());
                if (var == null) {
                    log.error("Unknown var " + xmlResolve.getVar()
                            + " in rule " + xmlResolve.getRule()
                            + " referred in " + rule);
                    continue;
                }
                rule.add(new Resolve(rule, varRule, xmlResolve.getCategory(), var, xmlResolve.getValue()));
            }
            for (XMLRuleValidator xmlRuleValidator : xmlRule.getXMLRuleValidator()) {
                rule.add(new RuleValidator(rule, xmlRuleValidator.getValue()));
            }
            _rules.put(xmlRule.getName(), rule);
View Full Code Here


        Rule resolveRule = _project.getRepository().getRule(resolveRuleName);
        if (resolveRule == null) {
            throw new IllegalArgumentException("Cannot find rule \"" + resolveRuleName + "\".");
        }
        Rule rule = addManualRule(null);
        Resolve resolve = new Resolve(rule, resolveRule, category, resolveRule.getVar(varName),
                value);
        rule.add(resolve);
        return rule;
    }
View Full Code Here

         */
        public Collection<ResolveNode> getResolveNodes() {
            Collection<ResolveNode> result = new ArrayList<InputNode.VarExpNode.ResolveNode>();
            Collection<Category> interCat = Utils.intersectCategories(_categories, _varExpression.getCategories());
            for (Rule rule : _rules) {
                Resolve resolve = rule.getResolve(_varExpression.getRule(), _varExpression.getVar(), interCat);
                if (resolve != null) {
                    result.add(new ResolveNode(resolve, interCat));
//                    // I must add even the resolves
//                    for (RuleValidator validator: rule.getValidators()) {
//                        for (VarExpression varExp : _finder.find(validator.getValue())) {
//                            for (ResolveNode resolveNode : new VarExpNode(varExp, interCat).getResolveNodes()) {
//                                result.add(resolveNode);
//                            }
//                        }
//                    }
//
                }
            }
            if (result.isEmpty()) {
                if (_varExpression.getVar().getDefault() != null) {
                    result.add(new ResolveNode(new Resolve(null, _varExpression.getRule(), null, _varExpression.getVar(),
                            _varExpression.getVar().getDefault()), interCat));
                }
            }
            return result;
        }
View Full Code Here

TOP

Related Classes of net.sourceforge.temply.base.rules.Resolve

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.