///////////////////////////////////////////////////////////////////////////// // Copyright (c) 1999, COAS, Oregon State University // ALL RIGHTS RESERVED. U.S. Government Sponsorship acknowledged. // // Please read the full copyright notice in the file COPYRIGHT // in this directory. // // Author: Nathan Potter (ndp@oce.orst.edu) // // College of Oceanic and Atmospheric Scieneces // Oregon State University // 104 Ocean. Admin. Bldg. // Corvallis, OR 97331-5503 // ///////////////////////////////////////////////////////////////////////////// package dods.servers.ascii; import java.io.*; import dods.dap.*; /** */ public class asciiString extends DString implements toASCII { private static boolean _Debug = false; /** Constructs a new <code>asciiString</code>. */ public asciiString() { this(null); } /** * Constructs a new <code>asciiString</code> with name <code>n</code>. * @param n the name of the variable. */ public asciiString(String n) { super(n); } /** * Returns a string representation of the variables value. This * is really foreshadowing functionality for Server types, but * as it may come in useful for clients it is added here. Simple * types (example: DFloat32) will return a single value. DConstuctor * and DVector types will be flattened. DStrings and DURL's will * have double quotes around them. * * @param addName is a flag indicating if the variable name should * appear at the begining of the returned string. */ public void toASCII(PrintWriter pw, boolean addName, String rootName, boolean newLine){ rootName = toASCIIAddRootName(pw,addName, rootName); if(addName) pw.print(", "); String s = getValue(); // Get rid of null terminations on strings if( (s.length() > 0) && s.charAt(s.length() - 1) == ((char)0)) { // jc mod if(_Debug) System.out.println("Removing null termination from string \""+ getName() + "\"."); char cArray[] = s.toCharArray(); s = new String(cArray,0,cArray.length - 1); } pw.print("\"" + s + "\""); if(newLine) pw.print("\n"); } public String toASCIIAddRootName(PrintWriter pw, boolean addName, String rootName){ if(addName){ rootName = toASCIIFlatName(rootName); pw.print(rootName); } return(rootName); } public String toASCIIFlatName(String rootName){ String s; if(rootName != null){ s = rootName + "." + getName(); } else { s = getName(); } return(s); } }