/** * 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's subordinate filters. * * @return The node filter object's contained filters. */ public NodeFilter[] getSubNodeFilters() { NodeFilter filter; NodeFilter[] ret; filter = mFilter.getChildFilter(); if (null != filter) ret = new NodeFilter[] {filter}; else ret = new NodeFilter[0]; 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); }