| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.cocoon.environment; |
| |
| import org.apache.excalibur.source.SourceException; |
| import org.apache.avalon.framework.component.ComponentException; |
| import org.apache.avalon.framework.component.ComponentManager; |
| import org.apache.cocoon.ProcessingException; |
| import org.apache.cocoon.components.source.URLSource; |
| import org.apache.cocoon.components.url.URLFactory; |
| import org.xml.sax.ContentHandler; |
| import org.xml.sax.SAXException; |
| |
| import java.io.IOException; |
| import java.net.MalformedURLException; |
| import java.net.URL; |
| import java.util.Map; |
| |
| /** |
| * A <code>SourceResolver</code> based on a <code>URLFactory</code>. |
| * @deprecated by the new source resolving |
| * |
| * @author <a href="mailto:sylvain@apache.org">Sylvain Wallez</a> |
| * @version CVS $Id$ |
| */ |
| |
| public class URLFactorySourceResolver implements SourceResolver { |
| |
| /** The component manager */ |
| protected ComponentManager manager; |
| |
| /** The URL factory */ |
| protected URLFactory urlFactory; |
| |
| /** |
| * Creates an <code>URLFactorySourceResolver</code> with a component manager. |
| * The <code>URLFactory</code> is looked up in the component manager. |
| */ |
| public URLFactorySourceResolver(ComponentManager manager) |
| throws ComponentException { |
| this.manager = manager; |
| this.urlFactory = (URLFactory)manager.lookup(URLFactory.ROLE); |
| } |
| |
| /** |
| * Creates an <code>URLFactorySourceResolver</code> with a component manager and |
| * a <code>URLFactory</code> that will be used to resolve URLs. |
| */ |
| public URLFactorySourceResolver(URLFactory factory, ComponentManager manager) { |
| this.urlFactory = factory; |
| this.manager = manager; |
| } |
| |
| /** |
| * Resolve the source. |
| * |
| * @param systemID This is either a system identifier |
| * (<code>java.net.URL</code>) or a local file. |
| */ |
| public Source resolve(String systemID) |
| throws ProcessingException, SAXException, IOException { |
| |
| URL url = this.urlFactory.getURL(systemID); |
| return new URLSource(url, this.manager); |
| } |
| |
| /** |
| * Get a <code>Source</code> object. |
| */ |
| public org.apache.excalibur.source.Source resolveURI(final String location) |
| throws MalformedURLException, IOException, SourceException |
| { |
| return this.resolveURI(location, null, null); |
| } |
| |
| /** |
| * Get a <code>Source</code> object. |
| */ |
| public org.apache.excalibur.source.Source resolveURI(final String location, |
| String baseURI, |
| final Map parameters) |
| throws MalformedURLException, IOException, SourceException { |
| throw new RuntimeException("URLFactorySourceResolver.resolveURI() is not implemented yet."); |
| } |
| |
| /** |
| * Releases a resolved resource |
| */ |
| public void release( final org.apache.excalibur.source.Source source ) { |
| throw new RuntimeException("URLFactorySourceResolver.release() is not implemented yet."); |
| } |
| |
| /** |
| * Generates SAX events from the given source |
| * <b>NOTE</b> : if the implementation can produce lexical events, care should be taken |
| * that <code>handler</code> can actually |
| * directly implement the LexicalHandler interface! |
| * @param source the data |
| * @throws ProcessingException if no suitable converter is found |
| */ |
| public void toSAX( org.apache.excalibur.source.Source source, |
| ContentHandler handler ) |
| throws SAXException, IOException, ProcessingException { |
| throw new RuntimeException("ProcessingException.toSAX() is not implemented yet."); |
| } |
| |
| /** |
| * Generates SAX events from the given source |
| * <b>NOTE</b> : if the implementation can produce lexical events, care should be taken |
| * that <code>handler</code> can actually |
| * directly implement the LexicalHandler interface! |
| * @param source the data |
| * @throws ProcessingException if no suitable converter is found |
| */ |
| public void toSAX( org.apache.excalibur.source.Source source, |
| String mimeTypeHint, |
| ContentHandler handler ) |
| throws SAXException, IOException, ProcessingException { |
| throw new RuntimeException("ProcessingException.toSAX() is not implemented yet."); |
| } |
| } |