# Package org.eclipse.core.resources

Provides basic support for managing a workspace and its resources.

## Package Specification

This package specifies the principal API for the Resources plug-in. The resources plug-in defines the notions of `Workspaces` and `Resources`. The workspace's resource model is very similar to a file system. All resources are backed by a real file or directory in some backing file system. They are stored in their native form (i.e., no extra bytes or markup) using their normal names.

In addition to basic resource management, the Resources plug-in supports various workspace lifecycle events such as save and snapshot, and resource change events.

Interface Summary
IBuildConfiguration: Build Configurations provide a mechanism for orthogonal configuration specific builds within a single project.
IBuildContext: Stores information about the context in which a builder was called.
ICommand: A builder command names a builder and supplies a table of name-value argument pairs.
IContainer: Interface for resources which may contain other resources (termed its members).
IDynamicReferenceProvider: Implementations of this interface are capable of determining a set of projects which a given project depends upon.
IEncodedStorage: A storage that knows how its contents are encoded.
IFile: Files are leaf resources which contain data.
IFileModificationValidator: Deprecated. clients should subclass `FileModificationValidator` instead of implementing this interface
IFileState: A previous state of a file stored in the workspace's local history.
IFilterMatcherDescriptor: A filter descriptor contains information about a filter type obtained from the plug-in manifest (`plugin.xml`) files.
IFolder: Folders may be leaf or non-leaf resources and may contain files and/or other folders.
IIncrementalProjectBuilder2: This interfaces extends `IncrementalProjectBuilder`.
IMarker: Markers are a general mechanism for associating notes and meta-data with resources.
IMarkerDelta: A marker delta describes the change to a single marker.
IPathVariableChangeEvent: Describes a change in a path variable.
IPathVariableChangeListener: An interface to be implemented by objects interested in path variable creation, removal and value change events.
IPathVariableManager: Manages a collection of path variables and resolves paths containing a variable reference.
IProject: A project is a type of resource which groups resources into buildable, reusable units.
IProjectDescription: A project description contains the meta-data required to define a project.
IProjectNature: Interface for project nature runtime classes.
IProjectNatureDescriptor: A project nature descriptor contains information about a project nature obtained from the plug-in manifest (`plugin.xml`) file.
IResource: The workspace analog of file system files and directories.
IResourceChangeEvent: Resource change events describe changes to resources.
IResourceChangeListener: A resource change listener is notified of changes to resources in the workspace.
IResourceDelta: A resource delta represents changes in the state of a resource tree between two discrete points in time.
IResourceDeltaVisitor: An objects that visits resource deltas.
IResourceFilterDescription: A description of a resource filter.
IResourceProxy: A lightweight interface for requesting information about a resource.
IResourceProxyVisitor: This interface is implemented by objects that visit resource trees.
IResourceRuleFactory: A resource rule factory returns scheduling rules for API methods that modify the workspace.
IResourceStatus: Represents status related to resources in the Resources plug-in and defines the relevant status code constants.
IResourceVisitor: This interface is implemented by objects that visit resource trees.
ISaveContext: A context for workspace `save` operations.
ISavedState: A data structure returned by `IWorkspace.addSaveParticipant(org.eclipse.core.runtime.Plugin, ISaveParticipant)` containing a save number and an optional resource delta.
ISaveParticipant: A participant in the saving of the workspace.
IStorage: A storage object represents a set of bytes which can be accessed.
ISynchronizer: A synchronizer which maintains a list of registered partners and, on behalf of each partner, it keeps resource level synchronization information (a byte array).
IWorkspace: Workspaces are the basis for Eclipse Platform resource management.
IWorkspaceDescription: A workspace description represents the workspace preferences.
IWorkspaceRoot: A root resource represents the top of the resource hierarchy in a workspace.
IWorkspaceRunnable: This interface is structurally equivalent to `ICoreRunnable`.

Class Summary
FileInfoMatcherDescription: A description of a file info matcher.
IncrementalProjectBuilder: The abstract base class for all incremental project builders.
IWorkspace.ProjectOrder: Data structure for holding the multi-part outcome of `IWorkspace.computeProjectOrder`.
ProjectScope: Object representing the project scope in the Eclipse preferences hierarchy.
ResourceAttributes: This class represents platform specific attributes of files.
ResourcesPlugin: The plug-in runtime class for the Resources plug-in.
WorkspaceJob: A job that makes an atomic modification to the workspace.