001 /** 002 * 003 * Copyright 2005 The Apache Software Foundation 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.geronimo.kernel.classloader; 018 019 import java.net.URL; 020 import java.util.Enumeration; 021 022 /** 023 * Abstraction of resource searching policy. Given resource name, the resource 024 * finder performs implementation-specific lookup, and, if it is able to locate 025 * the resource, returns the {@link AbstractResourceHandle handle(s)} or URL(s) of it. 026 * 027 * @version $Rev: 410741 $ $Date: 2006-05-31 21:35:48 -0700 (Wed, 31 May 2006) $ 028 */ 029 public interface ResourceFinder { 030 /** 031 * Find the resource by name and return URL of it if found. 032 * 033 * @param name the resource name 034 * @return resource URL or null if resource was not found 035 */ 036 public URL findResource(String name); 037 038 /** 039 * Find all resources with given name and return enumeration of their URLs. 040 * 041 * @param name the resource name 042 * @return enumeration of resource URLs (possibly empty). 043 */ 044 public Enumeration findResources(String name); 045 046 /** 047 * Get the resource by name and, if found, open connection to it and return 048 * the {@link AbstractResourceHandle handle} of it. 049 * 050 * @param name the resource name 051 * @return resource handle or null if resource was not found 052 */ 053 public ResourceHandle getResource(String name); 054 055 }