/*
* 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.activity;
import java.io.File;
/**
* An installed activity's file system.
*
* @author Keith M. Hughes
*/
public interface ActivityFilesystem {
/**
* Get the directory where the contents of the deployed activity are
* installed.
*
* @return the directory where the activity is installed
*/
File getInstallDirectory();
/**
* Get a file in the installation directory.
*
* @param relative
* the pathname of the file relative to the activity install
* directory
*
* @return the file
*/
File getInstallFile(String relative);
/**
* Get the directory where the activity can permanently store data.
*
* <p>
* This directory will be removed if the activity is uninstalled, but
* otherwise will stay around.
*
* @return the directory where the activity can permanently store data
*/
File getPermanentDataDirectory();
/**
* Get a file in the permanent data directory.
*
* <p>
* This file will be removed if the activity is uninstalled, but otherwise
* will stay around.
*
* @param relative
* path relative to the permanent data directory for the file
*
* @return the file
*/
File getPermanentDataFile(String relative);
/**
* Clean the directory where the activity can permanently store data.
*/
void cleanPermanentDataDirectory();
/**
* Get the directory where the activity can temporarily store data.
*
* <p>
* This directory is temporary and could be removed at any time. The activity
* should assume it will not disappear while the activity is running.
*
* @return the directory where the activity can temporarily store data
*/
File getTempDataDirectory();
/**
* Get a file for temporarily storing data.
*
* <p>
* This file is temporary and could be removed at any time. The activity
* should assume it will not disappear while the activity is running.
*
* @param relative
* path relative to the temporary data directory for the file
*
* @return the directory where the activity can temporarily store data
*/
File getTempDataFile(String relative);
/**
* Clean the directory where the activity can temporarily store data.
*/
void cleanTempDataDirectory();
/**
* Get the directory where the activity stores logs.
*
* @return the directory where the activity stores logs
*/
File getLogDirectory();
}