All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.directwebremoting.extend.ArrayOutboundVariable Maven / Gradle / Ivy

package org.directwebremoting.extend;

/**
 * An OutboundVariable that declares a JavaScript array
 * @author Joe Walker [joe at getahead dot ltd dot uk]
 */
public class ArrayOutboundVariable extends NestedOutboundVariable
{

    public ArrayOutboundVariable(OutboundContext context)
    {
        super(context);
    }

    public String getDeclareCode()
    {
        if (isInline())
        {
            return getChildDeclareCodes();
        }
        else
        {
            return getChildDeclareCodes() + "var " + getVariableName() + "=[];";
        }
    }

    public String getBuildCode()
    {
        if (isInline())
        {
            return getChildBuildCodes();
        }
        else
        {
            StringBuffer buffer = new StringBuffer(getChildBuildCodes());

            int i = 0;
            String variableName = getVariableName();
            for (OutboundVariable child : getChildren())
            {
                if (child != null)
                {
                    buffer.append(variableName);
                    buffer.append('[');
                    buffer.append(i);
                    buffer.append("]=");
                    buffer.append(child.getAssignCode());
                    buffer.append(';');
                }

                i++;
            }
            buffer.append("\r\n");

            return buffer.toString();
        }
    }

    public String getAssignCode()
    {
        if (isInline())
        {
            StringBuffer buffer = new StringBuffer();

            buffer.append("[");

            boolean first = true;
            for (OutboundVariable child : getChildren())
            {
                if (!first)
                {
                    buffer.append(',');
                }

                buffer.append(child.getAssignCode());

                first = false;
            }
            buffer.append("]");

            return buffer.toString();
        }
        else
        {
            return getVariableName();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy