xslelementnode.java

来自「RESIN 3.2 最新源码」· Java 代码 · 共 149 行

JAVA
149
字号
/* * Copyright (c) 1998-2008 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 SoftwareFoundation, Inc. *   59 Temple Place, Suite 330 *   Boston, MA 02111-1307  USA * * @author Scott Ferguson */package com.caucho.xsl.java;import com.caucho.java.JavaWriter;import com.caucho.xml.QName;import com.caucho.xsl.JavaGenerator;import com.caucho.xsl.XslParseException;/** * Represents any XSL node from the stylesheet. */public class XslElementNode extends XslNode {  private static final QName _useAttributeSets =    new QName("xsl", "use-attribute-sets", JavaGenerator.XSLNS);    private QName _name;  public XslElementNode(QName name)  {    _name = name;  }  /**   * Returns the name of the tag.   */  public String getTagName()  {    return _name.getName();  }  /**   * Adds an attribute.   */  public void addAttribute(QName name, String value)    throws XslParseException  {    if (_useAttributeSets.equals(name)) {      XslUseAttributeSets attr = new XslUseAttributeSets(value);            attr.setGenerator(_gen);          addChild(attr);    }    else if (name.getName().startsWith("xmlns")) {      super.addAttribute(name, value);            if (! JavaGenerator.XSLNS.equals(value) &&	  ! JavaGenerator.XTPNS.equals(value)) {	XslNamespaceNode attr = new XslNamespaceNode(name, value);	attr.setParent(this);	attr.setGenerator(_gen);		addChild(attr);      }    }    else if (JavaGenerator.XSLNS.equals(name.getNamespaceURI())) {    }    else if (JavaGenerator.XTPNS.equals(name.getNamespaceURI())) {    }    else {      XslAttributeNode attr = new XslAttributeNode(name, value);      attr.setParent(this);      attr.setGenerator(_gen);          addChild(attr);    }  }  /**   * Generates the code for the tag   *   * @param out the output writer for the generated java.   */  public void generate(JavaWriter out)    throws Exception  {    String namespace = _name.getNamespaceURI();    String prefix = _name.getPrefix();    String local = _name.getLocalName();    String name = _name.getName();    _gen.printLocation(_systemId, _filename, _startLine);    String []postPrefix = _gen.getNamespaceAlias(namespace);    if (postPrefix != null) {      prefix = postPrefix[0];      namespace = postPrefix[1];      if (prefix == null || prefix.equals(""))        name = local;      else        name = prefix + ":" + local;    }    /*    if (_excludedNamespaces.get(namespace) != null)      namespace = null;    */        //if (_namespace != null) {      out.print("out.pushElement(");      out.print(namespace == null ? "\"\"" : ("\"" + namespace + "\""));      out.print(prefix == null ? ", null" : (", \"" + prefix + "\""));      out.print(local == null ? ", null" : (", \"" + local + "\""));      out.print(name == null ? ", null" : (", \"" + name + "\""));      out.println(");");      /*    }    else {      out.print("out.pushElement(");      out.print(name == null ? "null" : ("\"" + name + "\""));      out.println(");");    }      */    generateChildren(out);    out.println("out.popElement();");  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?