com.caucho.jsp.java.JspText Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of resin Show documentation
Show all versions of resin Show documentation
Resin Java Application Server
/*
* Copyright (c) 1998-2018 Caucho Technology -- all rights reserved
*
* This file is part of Resin(R) Open Source
*
* Each copy or derived work must preserve the copyright notice and this
* notice unmodified.
*
* Resin Open Source is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Resin Open Source is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
* of NON-INFRINGEMENT. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License
* along with Resin Open Source; if not, write to the
*
* Free Software Foundation, Inc.
* 59 Temple Place, Suite 330
* Boston, MA 02111-1307 USA
*
* @author Scott Ferguson
*/
package com.caucho.jsp.java;
import com.caucho.jsp.JspParseException;
import com.caucho.util.CharBuffer;
import com.caucho.vfs.WriteStream;
import java.io.IOException;
import java.util.ArrayList;
/**
* Represents static text.
*/
public class JspText extends JspNode {
private ArrayList _children = new ArrayList();
public JspText()
{
}
/**
* Adds text to the scriptlet.
*/
public JspNode addText(String text)
{
JspNode node = new StaticText(_gen, text, this);
_children.add(node);
return node;
}
/**
* Adds a child node.
*/
public void addChild(JspNode node)
throws JspParseException
{
if (node.getTagName().equals("resin-c:out"))
_children.add(node);
else
super.addChild(node);
}
/**
* Gets the text.
*/
/*
public String getText()
{
throw newreturn (String) _children.get(0);
}
*/
/**
* sets the text.
*/
/*
public void setText(String text)
{
addText(text);
}
*/
/**
* Return true if the node only has static text.
*/
public boolean isStatic()
{
for (int i = 0; i < _children.size(); i++)
if (! _children.get(i).isStatic())
return false;
return true;
}
/**
* Returns the static text.
*/
public void getStaticText(CharBuffer cb)
{
for (int i = 0; i < _children.size(); i++)
_children.get(i).getStaticText(cb);
}
/**
* Returns true if whitespace.
*/
public boolean isWhitespace()
{
for (int i = 0; i < _children.size(); i++) {
JspNode child = _children.get(i);
if (! (child instanceof StaticText))
return false;
if (! ((StaticText) child).isWhitespace())
return false;
}
return true;
}
/**
* Generates the XML text representation for the tag validation.
*
* @param os write stream to the generated XML.
*/
public void printXml(WriteStream os)
throws IOException
{
os.print("");
for (int i = 0; i < _children.size(); i++)
_children.get(i).printXml(os);
os.print(" ");
}
/**
* Generates the start location.
*/
public void generateStartLocation(JspJavaWriter out)
throws IOException
{
}
/**
* Generates the code for the static text
*
* @param out the output writer for the generated java.
*/
public void generate(JspJavaWriter out)
throws Exception
{
for (int i = 0; i < _children.size(); i++)
_children.get(i).generate(out);
}
//jsp/0416
@Override
public void generatePrologue(JspJavaWriter out)
throws Exception
{
if (_children == null)
return;
for (int i = 0; i < _children.size(); i++) {
JspNode child = _children.get(i);
child.generatePrologue(out);
}
}
//jsp/0416
@Override
public void generateTagStateChildren(JspJavaWriter out)
throws Exception
{
if (_children != null) {
for (int i = 0; i < _children.size(); i++) {
JspNode child = _children.get(i);
child.generateTagState(out);
}
}
}
//jsp/0416
@Override
public boolean hasCustomTag()
{
for (int i = 0; _children != null && i < _children.size(); i++) {
JspNode child = _children.get(i);
if (child instanceof CustomTag)
return true;
if (child.hasCustomTag())
return true;
}
return false;
}
/**
* Generates the code for the static text
*
* @param out the output writer for the generated java.
*/
public void generateStatic(JspJavaWriter out)
throws Exception
{
for (int i = 0; i < _children.size(); i++) {
_children.get(i).generateStatic(out);
}
}
}