FileDocCategorySizeDatePackage
StringLiteral.javaAPI DocGlassfish v2 API5639Sat May 05 19:17:28 BST 2007org.apache.taglibs.standard.lang.jstl

StringLiteral

public class StringLiteral extends Literal

An expression representing a String literal value.

author
Nathan Abramson - Art Technology Group
version
$Change: 181177 $$DateTime: 2001/06/26 08:45:09 $$Author: tcfujii $

Fields Summary
Constructors Summary
StringLiteral(Object pValue)
Constructor

    super (pValue);
  
Methods Summary
public static org.apache.taglibs.standard.lang.jstl.StringLiteralfromLiteralValue(java.lang.String pValue)
Returns a StringLiteral with the given string value

    return new StringLiteral (pValue);
  
public static org.apache.taglibs.standard.lang.jstl.StringLiteralfromToken(java.lang.String pToken)
Returns a StringLiteral parsed from the given token (enclosed by single or double quotes)

    return new StringLiteral (getValueFromToken (pToken));
  
public java.lang.StringgetExpressionString()
Returns the expression in the expression language syntax

    return toStringToken ((String) getValue ());
  
public static java.lang.StringgetValueFromToken(java.lang.String pToken)
Parses the given token into the literal value

    StringBuffer buf = new StringBuffer ();
    int len = pToken.length () - 1;
    boolean escaping = false;
    for (int i = 1; i < len; i++) {
      char ch = pToken.charAt (i);
      if (escaping) {
	buf.append (ch);
	escaping = false;
      }
      else if (ch == '\\") {
	escaping = true;
      }
      else {
	buf.append (ch);
      }
    }
    return buf.toString ();
  
static booleanisJavaIdentifier(java.lang.String pValue)
Returns true if the specified value is a legal java identifier

    int len = pValue.length ();
    if (len == 0) {
      return false;
    }
    else {
      if (!Character.isJavaIdentifierStart (pValue.charAt (0))) {
	return false;
      }
      else {
	for (int i = 1; i < len; i++) {
	  if (!Character.isJavaIdentifierPart (pValue.charAt (i))) {
	    return false;
	  }
	}
	return true;
      }
    }
  
public static java.lang.StringtoIdentifierToken(java.lang.String pValue)
Converts the specified value to an identifier token, escaping it as a string literal if necessary.

    // See if it's a valid java identifier
    if (isJavaIdentifier (pValue)) {
      return pValue;
    }

    // Return as a String literal
    else {
      return toStringToken (pValue);
    }
  
public static java.lang.StringtoStringToken(java.lang.String pValue)
Converts the specified value to a String token, using " as the enclosing quotes and escaping any characters that need escaping.

    // See if any escaping is needed
    if (pValue.indexOf ('\"") < 0 &&
	pValue.indexOf ('\\") < 0) {
      return "\"" + pValue + "\"";
    }

    // Escaping is needed
    else {
      StringBuffer buf = new StringBuffer ();
      buf.append ('\"");
      int len = pValue.length ();
      for (int i = 0; i < len; i++) {
	char ch = pValue.charAt (i);
	if (ch == '\\") {
	  buf.append ('\\");
	  buf.append ('\\");
	}
	else if (ch == '\"") {
	  buf.append ('\\");
	  buf.append ('\"");
	}
	else {
	  buf.append (ch);
	}
      }
      buf.append ('\"");
      return buf.toString ();
    }