/* * Copyright 2002-2010 the original author or authors. * * Licensed 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.springframework.core.io.support; import java.io.IOException; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Proxy; import java.net.URL; import org.springframework.core.io.VfsUtils; /** * Artificial class used for accessing the {@link VfsUtils} methods * without exposing them to the entire world. * * @author Costin Leau * @since 3.0.3 */ abstract class VfsPatternUtils extends VfsUtils { static Object getVisitorAttribute() { return doGetVisitorAttribute(); } static String getPath(Object resource) { return doGetPath(resource); } static Object findRoot(URL url) throws IOException { return getRoot(url); } static void visit(Object resource, InvocationHandler visitor) throws IOException { Object visitorProxy = Proxy.newProxyInstance( VIRTUAL_FILE_VISITOR_INTERFACE.getClassLoader(), new Class<?>[] {VIRTUAL_FILE_VISITOR_INTERFACE}, visitor); invokeVfsMethod(VIRTUAL_FILE_METHOD_VISIT, resource, visitorProxy); } }