001 /* 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 /* 019 * $Id: DOM.java 468648 2006-10-28 07:00:06Z minchau $ 020 */ 021 022 package org.apache.xalan.xsltc; 023 024 import org.apache.xalan.xsltc.runtime.Hashtable; 025 import org.apache.xml.dtm.DTMAxisIterator; 026 027 import org.w3c.dom.Node; 028 import org.w3c.dom.NodeList; 029 030 import org.apache.xml.serializer.SerializationHandler; 031 032 /** 033 * @author Jacek Ambroziak 034 * @author Santiago Pericas-Geertsen 035 */ 036 public interface DOM { 037 public final static int FIRST_TYPE = 0; 038 039 public final static int NO_TYPE = -1; 040 041 // 0 is reserved for NodeIterator.END 042 public final static int NULL = 0; 043 044 // used by some node iterators to know which node to return 045 public final static int RETURN_CURRENT = 0; 046 public final static int RETURN_PARENT = 1; 047 048 // Constants used by getResultTreeFrag to indicate the types of the RTFs. 049 public final static int SIMPLE_RTF = 0; 050 public final static int ADAPTIVE_RTF = 1; 051 public final static int TREE_RTF = 2; 052 053 /** returns singleton iterator containg the document root */ 054 public DTMAxisIterator getIterator(); 055 public String getStringValue(); 056 057 public DTMAxisIterator getChildren(final int node); 058 public DTMAxisIterator getTypedChildren(final int type); 059 public DTMAxisIterator getAxisIterator(final int axis); 060 public DTMAxisIterator getTypedAxisIterator(final int axis, final int type); 061 public DTMAxisIterator getNthDescendant(int node, int n, boolean includeself); 062 public DTMAxisIterator getNamespaceAxisIterator(final int axis, final int ns); 063 public DTMAxisIterator getNodeValueIterator(DTMAxisIterator iter, int returnType, 064 String value, boolean op); 065 public DTMAxisIterator orderNodes(DTMAxisIterator source, int node); 066 public String getNodeName(final int node); 067 public String getNodeNameX(final int node); 068 public String getNamespaceName(final int node); 069 public int getExpandedTypeID(final int node); 070 public int getNamespaceType(final int node); 071 public int getParent(final int node); 072 public int getAttributeNode(final int gType, final int element); 073 public String getStringValueX(final int node); 074 public void copy(final int node, SerializationHandler handler) 075 throws TransletException; 076 public void copy(DTMAxisIterator nodes, SerializationHandler handler) 077 throws TransletException; 078 public String shallowCopy(final int node, SerializationHandler handler) 079 throws TransletException; 080 public boolean lessThan(final int node1, final int node2); 081 public void characters(final int textNode, SerializationHandler handler) 082 throws TransletException; 083 public Node makeNode(int index); 084 public Node makeNode(DTMAxisIterator iter); 085 public NodeList makeNodeList(int index); 086 public NodeList makeNodeList(DTMAxisIterator iter); 087 public String getLanguage(int node); 088 public int getSize(); 089 public String getDocumentURI(int node); 090 public void setFilter(StripFilter filter); 091 public void setupMapping(String[] names, String[] urisArray, int[] typesArray, String[] namespaces); 092 public boolean isElement(final int node); 093 public boolean isAttribute(final int node); 094 public String lookupNamespace(int node, String prefix) 095 throws TransletException; 096 public int getNodeIdent(final int nodehandle); 097 public int getNodeHandle(final int nodeId); 098 public DOM getResultTreeFrag(int initialSize, int rtfType); 099 public DOM getResultTreeFrag(int initialSize, int rtfType, boolean addToDTMManager); 100 public SerializationHandler getOutputDomBuilder(); 101 public int getNSType(int node); 102 public int getDocument(); 103 public String getUnparsedEntityURI(String name); 104 public Hashtable getElementsWithIDs(); 105 }