/* * Copyright (C) 2012 Google Inc. * * 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 interactivespaces.system; import java.io.File; /** * File system for a full Interactive Spaces installation. * * @author Keith M. Hughes */ public interface InteractiveSpacesFilesystem { /** * Get the installation directory where Interactive Spaces was installed. * * @return the installation directory */ File getInstallDirectory(); /** * Get the system bootstrap directory for Interactive Spaces. * * @return the bootstrap directory */ File getSystemBootstrapDirectory(); /** * Get the user library bootstrap directory for Interactive Spaces. * * @return the bootstrap directory */ File getUserBootstrapDirectory(); /** * Get the system log directory for Interactive Spaces. * * @return the log directory */ File getLogsDirectory(); /** * Get the root library directory. This contains libraries for the various * supported scripting languages. * * @return the root library directory */ File getLibraryDirectory(); /** * Get a library directory relative to {@link #getLibraryDirectory()}. * * <p> * If the directory doesn't exist, it will be created. If it does exist, it * will be checked if it is readable. * * @param subdir * the relative portion of the filename * * @return the subdir of the library directory */ File getLibraryDirectory(String subdir); /** * Get the root Interactive Spaces-wide data directory. This is for activities * on the controller sharing data. * * @return the root data directory */ File getDataDirectory(); /** * Get a directory relative to {@link #getDataDirectory()}. * * <p> * If the directory doesn't exist, it will be created. If it does exist, it * will be checked if it is writeable. * * @param subdir * the relative portion of the filename * * @return the requested subdirectory in the data directory */ File getDataDirectory(String subdir); /** * Get the EInteractive Spaces-wide directory used for writing temporary * files. * * @return the temporary directory */ File getTempDirectory(); /** * Get a temp directory relative to {@link #getTempDirectory()}. * * <p> * If the directory doesn't exist, it will be created. If it does exist, it * will be checked if it is writeable. * * @param subdir * the relative portion of the filename * * @return the requested subdirectory in the temp directory */ File getTempDirectory(String subdir); }