
org.enhydra.xml.lazydom.LazyDOMInfoPrinter Maven / Gradle / Ivy
The newest version!
/*
* Enhydra Java Application Server Project
*
* The contents of this file are subject to the Enhydra Public License
* Version 1.1 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License on
* the Enhydra web site ( http://www.enhydra.org/ ).
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
* the License for the specific terms governing rights and limitations
* under the License.
*
* The Initial Developer of the Enhydra Application Server is Lutris
* Technologies, Inc. The Enhydra Application Server and portions created
* by Lutris Technologies, Inc. are Copyright Lutris Technologies, Inc.
* All Rights Reserved.
*
* Contributor(s):
*
* $Id: LazyDOMInfoPrinter.java,v 1.2 2005/01/26 08:29:24 jkjome Exp $
*/
package org.enhydra.xml.lazydom;
import java.io.PrintWriter;
import org.enhydra.xml.dom.DOMInfoPrinter;
import org.enhydra.xml.dom.DOMTraversal;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
/**
* LazyDOM DOMInfo traversal handler.
*/
final public class LazyDOMInfoPrinter extends DOMInfoPrinter {
/**
* Constructor.
*/
public LazyDOMInfoPrinter(int options,
DOMTraversal traverser,
PrintWriter out) {
super(options, traverser, out);
}
/**
* Print node name, add template indicator if a template node.
*/
protected void printNodeName(Node node) {
super.printNodeName(node);
if (((LazyNode)node).isTemplateNode()) {
fOut.print("%[T]");
}
}
/**
* Determine if an element has attributes that are to be printed, This
* overrides the DOMInfoPrinter method and handles switching from instance
* to template nodes.
*/
protected boolean hasPrintAttributes(Element element) {
LazyElement lazyElement = (LazyElement)element;
if (lazyElement.isTemplateNode()) {
// attribute are all template if node is template
return super.hasPrintAttributes(lazyElement);
} else if (lazyElement.areAttributesExpanded()) {
// expand instance attributes, handle as normal
return super.hasPrintAttributes(lazyElement);
} else {
// switch to template
return super.hasPrintAttributes(lazyElement.getTemplateElement());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy