this.keywords = keywords;
    public TemplateQuery(String name, String description, String category, PathQuery query,                         boolean important, String keywords) {        if (description != null) {            this.description = description;        }        if (category != null) {            this.category = category;        }        if (name != null) {            this.name = name;        }        this.query = query;        this.important = important;        this.keywords = keywords;        // Find the editable constraints in the query.        Iterator iter = query.getNodes().entrySet().iterator();        while (iter.hasNext()) {            Map.Entry entry = (Map.Entry) iter.next();            PathNode node = (PathNode) entry.getValue();            Iterator citer = node.getConstraints().iterator();            while (citer.hasNext()) {                Constraint c = (Constraint) citer.next();                if (c.isEditable()) {                    List ecs = (List) constraints.get(node);                    if (ecs == null) {                        ecs = new ArrayList();                        nodes.add(node);                        constraints.put(node, ecs);                    }                    ecs.add(c);                }            }        }    }