001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.transformer.library.function;
020
021import org.xml.sax.EntityResolver;
022import org.xml.sax.InputSource;
023
024 
025
026/**
027 * Hilfsklasse fuer die FunctionLibFactory, diese Klasse definiert den DTDHandler fuer den Sax Parser. 
028 * Die Klasse laedt wenn moeglich die DTD, anhand der Public-id vom lokalen System.
029 * 
030 * @see  org.xml.sax.EntityResolver
031 */
032public final class FunctionLibEntityResolver implements EntityResolver {
033        /**
034         * Definert den DTD welche eine FLD validieren kann
035         */
036        public final static String DTD_1_0=     "/resource/dtd/web-cfmfunctionlibrary_1_0.dtd";
037                
038        /**
039         * Laedt die DTD vom lokalen System.
040         * @see org.xml.sax.EntityResolver#resolveEntity(java.lang.String, java.lang.String)
041         */
042        public InputSource resolveEntity(String publicId, String systemId) {
043                if ( publicId.equals( "-//Lucee//DTD CFML Function Library 1.0//EN" ) || publicId.equals( "-//Railo//DTD CFML Function Library 1.0//EN" ) ) {
044                        return new InputSource( getClass().getResourceAsStream(DTD_1_0) );
045                }
046                return null;
047        }
048
049 }