opendap/src/main/java/opendap/servers/SDList.java
public void printVal(PrintWriter os, String space, boolean print_decl_p) {
        if (!isProject())
            return;

        PrimitiveVector pv = getPrimitiveVector();

        if (pv instanceof BaseTypePrimitiveVector) {

            BaseTypePrimitiveVector vals = (BaseTypePrimitiveVector) pv;

            if (print_decl_p) {
                printDecl(os, space, false, true);
                os.print(" = ");
            }

            os.print("{ ");
            //vals.printVal(os, "");

            ServerMethods sm;
            int len = vals.getLength();
            for (int i = 0; i < len - 1; i++) {
                sm = (ServerMethods) vals.getValue(i);
                if (sm.isProject()) {
                    ((BaseType) sm).printVal(os, "", false);
                    os.print(", ");
                }
            }
            // print last value, if any, without trailing comma
            if (len > 0) {
                sm = (ServerMethods) vals.getValue(len - 1);
                if (sm.isProject()) {
                    ((BaseType) sm).printVal(os, "", false);
                }
            }


            os.print("}");

            if (print_decl_p)
                os.println(";");
        } else {
            super.printVal(os, space, print_decl_p);
        }
    }
public void printVal(PrintWriter os, String space, boolean print_decl_p) {
        if (!isProject())
            return;

        PrimitiveVector pv = getPrimitiveVector();

        if (pv instanceof BaseTypePrimitiveVector) {

            BaseTypePrimitiveVector vals = (BaseTypePrimitiveVector) pv;

            if (print_decl_p) {
                printDecl(os, space, false, true);
                os.print(" = ");
            }

            os.print("{ ");
            //vals.printVal(os, "");

            ServerMethods sm;
            int len = vals.getLength();
            for (int i = 0; i < len - 1; i++) {
                sm = (ServerMethods) vals.getValue(i);
                if (sm.isProject()) {
                    ((BaseType) sm).printVal(os, "", false);
                    os.print(", ");
                }
            }
            // print last value, if any, without trailing comma
            if (len > 0) {
                sm = (ServerMethods) vals.getValue(len - 1);
                if (sm.isProject()) {
                    ((BaseType) sm).printVal(os, "", false);
                }
            }


            os.print("}");

            if (print_decl_p)
                os.println(";");
        } else {
            super.printVal(os, space, print_decl_p);
        }
    }
Prints the value of the variable, with its declaration.  This
function is primarily intended for debugging OPeNDAP applications and
text-based clients such as geturl.
<p/>
<h2> Important Note</h2>
This method overrides the BaseType method of the same name and
type signature and it significantly changes the behavior for all versions
of <code>printVal()</code> for this type:
<b><i> All the various versions of printVal() will only
print a value, or a value with declaration, if the variable is
in the projection.</i></b>
<br>
<br>In other words, if a call to
<code>isProject()</code> for a particular variable returns
<code>true</code> then <code>printVal()</code> will print a value
(or a declaration and a value).
<br>
<br>If <code>isProject()</code> for a particular variable returns
<code>false</code> then <code>printVal()</code> is basically a No-Op.
<br>
<br>

@param os           the <code>PrintWriter</code> on which to print the value.
@param space        this value is passed to the <code>printDecl</code> method,
and controls the leading spaces of the output.
@param print_decl_p a boolean value controlling whether the
variable declaration is printed as well as the value.
@see BaseType#printVal(PrintWriter, String, boolean)
@see ServerMethods#isProject()