/** * Convert this filter into Java code. Output whatever text necessary and return the variable * name. * * @param out The output buffer. * @param context Three integers as follows: * <li>indent level - the number of spaces to insert at the beginning of each line * <li>filter number - the next available filter number * <li>filter array number - the next available array of filters number * @return The variable name to use when referencing this filter (usually "filter" + context[1]++) */ public String toJavaCode(StringBuffer out, int[] context) { String name; String ret; if (null != mFilter.getChildFilter()) name = ((Filter) mFilter.getChildFilter()).toJavaCode(out, context); else name = null; ret = "filter" + context[1]++; spaces(out, context[0]); out.append("HasChildFilter "); out.append(ret); out.append(" = new HasChildFilter ();"); newline(out); spaces(out, context[0]); out.append(ret); out.append(".setRecursive ("); out.append(mFilter.getRecursive() ? "true" : "false"); out.append(");"); newline(out); if (null != name) { spaces(out, context[0]); out.append(ret); out.append(".setChildFilter ("); out.append(name); out.append(");"); newline(out); } return (ret); }
/** * Get the underlying node filter object. * * @return The node filter object suitable for serialization. */ public NodeFilter getNodeFilter() { NodeFilter filter; HasChildFilter ret; ret = new HasChildFilter(); ret.setRecursive(mFilter.getRecursive()); filter = mFilter.getChildFilter(); if (null != filter) ret.setChildFilter(((Filter) filter).getNodeFilter()); return (ret); }
/** Create a wrapper over a new HasChildFilter. */ public HasChildFilterWrapper() { mFilter = new HasChildFilter(); // add the recursive flag mRecursive = new JCheckBox("Recursive"); add(mRecursive); mRecursive.addActionListener(this); mRecursive.setSelected(mFilter.getRecursive()); // add the subfilter container mContainer = new SubFilterList(this, "Child Filter", 1); add(mContainer); }
/** * Assign the underlying node filter for this wrapper. * * @param filter The filter to wrap. * @param context The parser to use for conditioning this filter. Some filters need contextual * information to provide to the user, i.e. for tag names or attribute names or values, so the * Parser context is provided. */ public void setNodeFilter(NodeFilter filter, Parser context) { mFilter = (HasChildFilter) filter; mRecursive.setSelected(mFilter.getRecursive()); }