1 /* 2 * reserved comment block 3 * DO NOT REMOVE OR ALTER! 4 */ 5 /* 6 * Licensed to the Apache Software Foundation (ASF) under one or more 7 * contributor license agreements. See the NOTICE file distributed with 8 * this work for additional information regarding copyright ownership. 9 * The ASF licenses this file to You under the Apache License, Version 2.0 10 * (the "License"); you may not use this file except in compliance with 11 * the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 */ 21 22 package com.sun.org.apache.xerces.internal.util; 23 24 import javax.xml.transform.Source; 25 26 import com.sun.org.apache.xerces.internal.impl.XMLEntityManager; 27 import com.sun.org.apache.xerces.internal.util.URI.MalformedURIException; 28 import com.sun.org.apache.xerces.internal.xni.parser.XMLInputSource; 29 30 /** 31 * {@link Source} that represents an {@link XMLInputSource}. 32 * 33 * <p> 34 * Ideally, we should be able to have {@link XMLInputSource} 35 * derive from {@link Source}, but the way 36 * the {@link XMLInputSource#getSystemId()} method works is 37 * different from the way {@link Source#getSystemId()} method works. 38 * 39 * <p> 40 * In a long run, we should make them consistent so that we can 41 * get rid of this awkward adaptor class. 42 * 43 * @author 44 * Kohsuke Kawaguchi 45 */ 46 public final class XMLInputSourceAdaptor implements Source { 47 /** 48 * the actual source information. 49 */ 50 public final XMLInputSource fSource; 51 52 public XMLInputSourceAdaptor( XMLInputSource core ) { 53 fSource = core; 54 } 55 56 public void setSystemId(String systemId) { 57 fSource.setSystemId(systemId); 58 } 59 60 public String getSystemId() { 61 try { 62 return XMLEntityManager.expandSystemId( 63 fSource.getSystemId(), fSource.getBaseSystemId(), false); 64 } catch (MalformedURIException e) { 65 return fSource.getSystemId(); 66 } 67 } 68 }