Package com.sun.faces.config.beans

Examples of com.sun.faces.config.beans.PropertyBean


                                       digester.getMatch() +
                                       "} Push " + CLASS_NAME);
        }
        Class clazz =
            digester.getClassLoader().loadClass(CLASS_NAME);
        PropertyBean pb = (PropertyBean) clazz.newInstance();
        digester.push(pb);

    }


     * @exception IllegalStateException if the popped object is not
     *  of the correct type
     */
    public void end(String namespace, String name) throws Exception {

        PropertyBean top = null;
        try {
            top = (PropertyBean) digester.pop();
        } catch (Exception e) {
            throw new IllegalStateException("Popped object is not a " +
                                            CLASS_NAME + " instance");
        }
        PropertyHolder ah = (PropertyHolder) digester.peek();
        PropertyBean old = ah.getProperty(top.getPropertyName());
        if (old == null) {
            if (digester.getLogger().isDebugEnabled()) {
                digester.getLogger().debug("[PropertyRule]{" +
                                           digester.getMatch() +
                                           "} New(" +


    // Merge "top" into "old"
    static void mergeProperties(PropertyHolder top, PropertyHolder old) {

        PropertyBean pb[] = top.getProperties();
        for (int i = 0; i < pb.length; i++) {
            PropertyBean pbo = old.getProperty(pb[i].getPropertyName());
            if (pbo == null) {
                old.addProperty(pb[i]);
            } else {
                mergeProperty(pb[i], pbo);
            }

        // Generate "setProperties" method contents from component properties
        //
        PropertyBean[] properties = component.getProperties();
        for (int i = 0, len = properties.length; i < len; i++) {
            PropertyBean property = properties[i];

            if (property == null) {
                continue;
            }
            if (!property.isTagAttribute()) {
                continue;
            }

            String propertyName = property.getPropertyName();          

            // SPECIAL - Don't generate these properties
            if ("binding".equals(propertyName) ||
                "id".equals(propertyName) ||
                "rendered".equals(propertyName) ||
                "converter".equals(propertyName)) {
                continue;
            }
            String ivar = mangle(propertyName);          
            String comp =
                GeneratorUtil.stripJavaxFacesPrefix(componentType).toLowerCase();
            String capPropName = capitalize(propertyName);

            if (property.isValueExpressionEnabled()) {
                writer.fwrite("if (" + ivar + " != null) {\n");
                writer.indent();
                writer.fwrite(comp);
                if ("_for".equals(ivar)) {
                    writer.write(".setValueExpression(\"for\", " +
                                 ivar + ");\n");
                } else {
                    writer.write(".setValueExpression(\"" + ivar + "\", " +
                                 ivar + ");\n");
                }
                writer.outdent();
                writer.fwrite("}\n");
            } else if (property.isMethodExpressionEnabled()) {
                if ("action".equals(ivar)) {
                    writer.fwrite("if (" + ivar + " != null) {\n");
                    writer.indent();

                    writer.fwrite(comp + ".setActionExpression(" + ivar +

        writer.fwrite("}\n");
        writer.fwrite("_values[0] = super.saveState(_context);\n");

        int n = 1; // Index into values array
        for (int i = 0; i < properties.size(); i++) {
            PropertyBean pb = properties.get(i);
            String name = mangle(pb.getPropertyName());
            writer.fwrite("_values[");
            writer.write(String.valueOf(n++));
            writer.write("] = ");
            writer.write(name);
            writer.write(";\n");
        }
        writer.fwrite("return _values;\n");
        writer.outdent();
        writer.write("}\n\n\n");

        // Generate the restoreState() method
        writer.fwrite(
            "public void restoreState(FacesContext _context, Object _state) {\n");
        writer.indent();
        writer.fwrite("_values = (Object[]) _state;\n");
        writer.fwrite("super.restoreState(_context, _values[0]);\n");
        n = 1;
        for (int i = 0, size = properties.size(); i < size; i++) {
            PropertyBean pb = properties.get(i);
            String name = mangle(pb.getPropertyName());
            String type = pb.getPropertyClass();
            writer.fwrite("this.");
            writer.write(name);
            writer.write(" = ");

            writer.write("(");

                writer.indent();
                writer.indent();
                PropertyBean[] props = comp.getProperties();
                boolean attributeWritten = false;
                for (int ii = 0, llen = props.length; ii < llen; ii++) {
                    PropertyBean aBean = props[ii];
                    // The RI doesn't use any JS for the command button, so
                    // treat
                    if (key.contains("Button") && "onclick".equals(aBean.getPropertyName())) {
                        aBean.setPassThrough(true);
                    }
                    if (aBean.isPassThrough()) {
                        if ((key.contains("Radio") || "SelectManyCheckbox".equals(key))
                            && ("style".equals(aBean.getPropertyName())
                                || ("border".equals(aBean.getPropertyName())))) {
                            continue;
                        }                       
                        writer.fwrite("\"");
                        writer.write(aBean.getPropertyName());
                        writer.write("\"");
                        attributeWritten = true;
                        if (attributeWritten) {
                            writer.write(",\n");
                        }
                    }
                    if (key.contains("Button") && "onclick".equals(aBean.getPropertyName())) {
                        // reset to the original state
                        aBean.setPassThrough(false);
                    }

                }
                writer.outdent();
                writer.outdent();

                                       digester.getMatch() +
                                       "} Push " + CLASS_NAME);
        }
        Class clazz =
            digester.getClassLoader().loadClass(CLASS_NAME);
        PropertyBean pb = (PropertyBean) clazz.newInstance();
        digester.push(pb);

    }

     * @exception IllegalStateException if the popped object is not
     *  of the correct type
     */
    public void end(String namespace, String name) throws Exception {

        PropertyBean top = null;
        try {
            top = (PropertyBean) digester.pop();
        } catch (Exception e) {
            throw new IllegalStateException("Popped object is not a " +
                                            CLASS_NAME + " instance");
        }
        PropertyHolder ah = (PropertyHolder) digester.peek();
        PropertyBean old = ah.getProperty(top.getPropertyName());
        if (old == null) {
            if (digester.getLogger().isDebugEnabled()) {
                digester.getLogger().debug("[PropertyRule]{" +
                                           digester.getMatch() +
                                           "} New(" +


    // Merge "top" into "old"
    static void mergeProperties(PropertyHolder top, PropertyHolder old) {

        PropertyBean pb[] = top.getProperties();
        for (int i = 0; i < pb.length; i++) {
            PropertyBean pbo = old.getProperty(pb[i].getPropertyName());
            if (pbo == null) {
                old.addProperty(pb[i]);
            } else {
                mergeProperty(pb[i], pbo);
            }

        // Generate from component properties
        //
        PropertyBean[] properties = component.getProperties();
        for (int i = 0, len = properties.length; i < len; i++) {
            PropertyBean property = properties[i];
            if (property == null) {
                continue;
            }

            if (!property.isTagAttribute()) {
                continue;
            }

            String propertyName = property.getPropertyName();
            String propertyType = property.getPropertyClass();

            // SPECIAL - Don't generate these properties
            if ("binding".equals(propertyName)
                || "id".equals(propertyName)
                || "rendered".equals(propertyName)) {
                continue;
            }

            String ivar = mangle(propertyName);
            writer.fwrite("this." + ivar + " = ");
            if (primitive(propertyType) && !(property.isValueExpressionEnabled()
                || property.isMethodExpressionEnabled())) {
                writer.write(TYPE_DEFAULTS.get(propertyType));
            } else {
                writer.write("null");
            }
            writer.write(";\n");

TOP

Related Classes of com.sun.faces.config.beans.PropertyBean

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.