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