Copyright (c) 2000, 2015 IBM Corporation and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
IBM Corporation - initial API and implementation
/*******************************************************************************
* Copyright (c) 2000, 2015 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.core.resources;
import java.io.InputStream;
import org.eclipse.core.runtime.*;
A previous state of a file stored in the workspace's local history.
Certain methods for updating, deleting, or moving a file cause the
"before" contents of the file to be copied to an internal area of the
workspace called the local history area thus providing
a limited history of earlier states of a file.
Moving or copying a file will cause a copy of its local history to appear
at the new location as well as at the original location. Subsequent
changes to either file will only affect the local history of the file
changed. Deleting a file and creating another one at the
same path does not affect the history. If the original file had
history, that same history will be available for the new one.
The local history does not track resource properties.
File states are volatile; the platform does not guarantee that a
certain state will always be in the local history.
File state objects implement the IAdaptable
interface;
extensions are managed by the platform's adapter manager.
See Also: @noimplement This interface is not intended to be implemented by clients. @noextend This interface is not intended to be extended by clients.
/**
* A previous state of a file stored in the workspace's local history.
* <p>
* Certain methods for updating, deleting, or moving a file cause the
* "before" contents of the file to be copied to an internal area of the
* workspace called the <b>local history area</b> thus providing
* a limited history of earlier states of a file.
* </p>
* <p>
* Moving or copying a file will cause a copy of its local history to appear
* at the new location as well as at the original location. Subsequent
* changes to either file will only affect the local history of the file
* changed. Deleting a file and creating another one at the
* same path does not affect the history. If the original file had
* history, that same history will be available for the new one.
* </p>
* <p>
* The local history does not track resource properties.
* File states are volatile; the platform does not guarantee that a
* certain state will always be in the local history.
* </p>
* <p>
* File state objects implement the <code>IAdaptable</code> interface;
* extensions are managed by the platform's adapter manager.
* </p>
*
* @see IFile
* @see IStorage
* @see Platform#getAdapterManager()
* @noimplement This interface is not intended to be implemented by clients.
* @noextend This interface is not intended to be extended by clients.
*/
public interface IFileState extends IEncodedStorage, IAdaptable {
Returns whether this file state still exists in the local history.
Returns: true
if this state exists, and false
if it does not
/**
* Returns whether this file state still exists in the local history.
*
* @return <code>true</code> if this state exists, and <code>false</code>
* if it does not
*/
boolean exists();
Returns an open input stream on the contents of this file state.
This refinement of the corresponding
IStorage
method returns an open input stream
on the contents this file state represents.
The client is responsible for closing the stream when finished.
Throws: - CoreException – if this method fails. Reasons include:
- This state does not exist.
Returns: an input stream containing the contents of the file
/**
* Returns an open input stream on the contents of this file state.
* This refinement of the corresponding
* <code>IStorage</code> method returns an open input stream
* on the contents this file state represents.
* The client is responsible for closing the stream when finished.
*
* @return an input stream containing the contents of the file
* @exception CoreException if this method fails. Reasons include:
* <ul>
* <li> This state does not exist.</li>
* </ul>
*/
@Override InputStream getContents() throws CoreException;
Returns the full path of this file state.
This refinement of the corresponding IStorage
method specifies that IFileState
s always have a
path and that path is the full workspace path of the file represented by this state.
See Also: - getFullPath.getFullPath()
- IStorage.getFullPath()
/**
* Returns the full path of this file state.
* This refinement of the corresponding <code>IStorage</code>
* method specifies that <code>IFileState</code>s always have a
* path and that path is the full workspace path of the file represented by this state.
*
* @see IResource#getFullPath()
* @see IStorage#getFullPath()
*/
@Override IPath getFullPath();
Returns the modification time of the file. If you create a file at
9:00 and modify it at 11:00, the file state added to the history
at 11:00 will have 9:00 as its modification time.
Note that is used only to give the user a general idea of how
old this file state is.
Returns: the time of last modification, in milliseconds since
January 1, 1970, 00:00:00 GMT.
/**
* Returns the modification time of the file. If you create a file at
* 9:00 and modify it at 11:00, the file state added to the history
* at 11:00 will have 9:00 as its modification time.
* <p>
* Note that is used only to give the user a general idea of how
* old this file state is.
*
* @return the time of last modification, in milliseconds since
* January 1, 1970, 00:00:00 GMT.
*/
long getModificationTime();
Returns the name of this file state.
This refinement of the corresponding IStorage
method specifies that IFileState
s always have a
name and that name is equivalent to the last segment of the full path
of the resource represented by this state.
See Also: - getName.getName()
- IStorage.getName()
/**
* Returns the name of this file state.
* This refinement of the corresponding <code>IStorage</code>
* method specifies that <code>IFileState</code>s always have a
* name and that name is equivalent to the last segment of the full path
* of the resource represented by this state.
*
* @see IResource#getName()
* @see IStorage#getName()
*/
@Override String getName();
Returns whether this file state is read-only.
This refinement of the corresponding
IStorage
method restricts IFileState
s to
always be read-only.
See Also: - IStorage
/**
* Returns whether this file state is read-only.
* This refinement of the corresponding
* <code>IStorage</code> method restricts <code>IFileState</code>s to
* always be read-only.
*
* @see IStorage
*/
@Override boolean isReadOnly();
}