if (restriction.getConditions().size() == 0) {
if (restriction.getConditionsDescriptor() == null) {
    protected void init(Element action) {        try {            setId(Integer.parseInt(action.getAttribute("id")));        } catch (Exception ex) {            throw new IllegalArgumentException("Invalid action id value " + action.getAttribute("id"));        }        this.name = action.getAttribute("name");        this.view = action.getAttribute("view");        this.autoExecute = "true".equals(action.getAttribute("auto"));        this.finish = "true".equals(action.getAttribute("finish"));        NodeList children = action.getChildNodes();        for (int i = 0; i < children.getLength(); i++) {            Node child = (Node) children.item(i);            if (child.getNodeName().equals("meta")) {                Element meta = (Element) child;                String value = XMLUtil.getText(meta);                this.metaAttributes.put(meta.getAttribute("name"), value);            }        }        // set up validators - OPTIONAL        Element v = XMLUtil.getChildElement(action, "validators");        if (v != null) {            List validators = XMLUtil.getChildElements(v, "validator");            for (int k = 0; k < validators.size(); k++) {                Element validator = (Element) validators.get(k);                ValidatorDescriptor validatorDescriptor = new ValidatorDescriptor(validator);                validatorDescriptor.setParent(this);                this.validators.add(validatorDescriptor);            }        }        // set up pre-functions - OPTIONAL        Element pre = XMLUtil.getChildElement(action, "pre-functions");        if (pre != null) {            List preFunctions = XMLUtil.getChildElements(pre, "function");            for (int k = 0; k < preFunctions.size(); k++) {                Element preFunction = (Element) preFunctions.get(k);                FunctionDescriptor functionDescriptor = new FunctionDescriptor(preFunction);                functionDescriptor.setParent(this);                this.preFunctions.add(functionDescriptor);            }        }        // set up results - REQUIRED        Element resultsElememt = XMLUtil.getChildElement(action, "results");        List results = XMLUtil.getChildElements(resultsElememt, "result");        for (int k = 0; k < results.size(); k++) {            Element result = (Element) results.get(k);            ConditionalResultDescriptor conditionalResultDescriptor = new ConditionalResultDescriptor(result);            conditionalResultDescriptor.setParent(this);            this.conditionalResults.add(conditionalResultDescriptor);        }        Element unconditionalResult = XMLUtil.getChildElement(resultsElememt, "unconditional-result");        this.unconditionalResult = new ResultDescriptor(unconditionalResult);        this.unconditionalResult.setParent(this);        // set up post-functions - OPTIONAL        Element post = XMLUtil.getChildElement(action, "post-functions");        if (post != null) {            List postFunctions = XMLUtil.getChildElements(post, "function");            for (int k = 0; k < postFunctions.size(); k++) {                Element postFunction = (Element) postFunctions.get(k);                FunctionDescriptor functionDescriptor = new FunctionDescriptor(postFunction);                functionDescriptor.setParent(this);                this.postFunctions.add(functionDescriptor);            }        }        // set up restrict-to - OPTIONAL        Element restrictElement = XMLUtil.getChildElement(action, "restrict-to");        if (restrictElement != null) {            restriction = new RestrictionDescriptor(restrictElement);            if (restriction.getConditions().size() == 0) {                restriction = null;            } else {                restriction.setParent(this);            }        }    }