/*
*
* * Copyright (c) 2016. David Sowerby
* *
* * 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 uk.q3c.krail.util;
import javax.annotation.Nonnull;
import java.io.File;
/**
* Created by David Sowerby on 03 Jan 2016
*/
public interface ResourceUtils {
/**
* Returns the base directory path for the application if there is a VaadinService is running, or throws a {@link
* IllegalStateException} if no service is running
*
* @return the base directory path for the application
*/
String applicationBasePath();
/**
* Returns the base directory path for the application if there is a VaadinService is running, or throws a {@link
* IllegalStateException} if no service is running
*
* @return File representing the base directory path for the application
*/
File applicationBaseDirectory();
/**
* a convenience method creating a {@link File} object referencing {user.home}/temp
*
* @return a {@link File} object referencing {user.home}/temp
*/
File userTempDirectory();
/**
* a convenience method equivalent to creating a {@link File} object using the System property 'user.home'
*
* @return a {@link File} object using the System property 'user.home'
*/
File userHomeDirectory();
/**
* The same as {@link #webInfDirectory()}
*/
File configurationDirectory();
/**
* Returns a File object for the WEB-INF directory
*
* @return a File object for the WEB-INF directory
*/
File webInfDirectory();
/**
* Returns a File object for a file name resident within the resources directory
*
* @param fileName the name of the file
* @return a File object for a file name resident within the resources directory
*/
File resourcePath(@Nonnull String fileName);
}