1 /* 2 * reserved comment block 3 * DO NOT REMOVE OR ALTER! 4 */ 5 /* 6 * Copyright 2005 The Apache Software Foundation. 7 * 8 * Licensed under the Apache License, Version 2.0 (the "License"); 9 * you may not use this file except in compliance with the License. 10 * You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 */ 20 21 package com.sun.org.apache.xerces.internal.util; 22 23 import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource; 24 import org.w3c.dom.Node; 25 26 /** 27 * <p>An <code>XMLInputSource</code> analogue to <code>javax.xml.transform.dom.DOMSource</code>.</p> 28 * 29 */ 30 public final class DOMInputSource extends XMLInputSource { 31 32 private Node fNode; 33 34 public DOMInputSource() { 35 this(null); 36 } 37 38 public DOMInputSource(Node node) { 39 super(null, getSystemIdFromNode(node), null); 40 fNode = node; 41 } 42 43 public DOMInputSource(Node node, String systemId) { 44 super(null, systemId, null); 45 fNode = node; 46 } 47 48 public Node getNode() { 49 return fNode; 50 } 51 52 public void setNode(Node node) { 53 fNode = node; 54 } 55 56 private static String getSystemIdFromNode(Node node) { 57 if (node != null) { 58 try { 59 return node.getBaseURI(); 60 } 61 // If the DOM implementation is DOM Level 2 62 // then a NoSuchMethodError will be thrown. 63 // Just ignore it. 64 catch (NoSuchMethodError e) { 65 return null; 66 } 67 // There was a failure for some other reason 68 // Ignore it as well. 69 catch (Exception e) { 70 return null; 71 } 72 } 73 return null; 74 } 75 76 } // DOMInputSource