Eclipse Platform
Release 3.0

org.eclipse.core.runtime.content
Interface IContentType


public interface IContentType

Content types represent and provide information on file types, such as associated file names/extensions, default charset, etc.

This interface is not intended to be implemented by clients.

Since:
3.0

Field Summary
static int FILE_EXTENSION_SPEC
          File spec type constant, indicating a file extension specification.
static int FILE_NAME_SPEC
          File spec type constant, indicating a file name specification.
static int IGNORE_PRE_DEFINED
          File spec type flag constant, indicating that pre-defined file specifications should not be taken into account.
static int IGNORE_USER_DEFINED
          File spec type flag constant, indicating that user-defined file specifications should not be taken into account.
 
Method Summary
 void addFileSpec(String fileSpec, int type)
          Adds a user-defined file specification to this content type.
 IContentType getBaseType()
          Returns a reference to this content type's base type.
 String getDefaultCharset()
          Returns the default charset for this content type if one has been defined, null otherwise.
 IContentDescription getDescriptionFor(InputStream contents, QualifiedName[] options)
          Tries to obtain a description for the given contents.
 IContentDescription getDescriptionFor(Reader contents, QualifiedName[] options)
          Tries to obtain a description for the given contents.
 String[] getFileSpecs(int type)
          Returns file specifications from this content type.
 String getId()
          Returns this content type's unique identifier.
 String getName()
          Returns a user-friendly name for this content type.
 boolean isAssociatedWith(String fileName)
          Returns whether this content type is associated with the given file name.
 boolean isKindOf(IContentType another)
          Returns whether this content type is a kind of the given content type.
 void removeFileSpec(String fileSpec, int type)
          Removes a user-defined file specification from this content type.
 void setDefaultCharset(String userCharset)
          Sets the default charset for this content type.
 

Field Detail

IGNORE_PRE_DEFINED

public static final int IGNORE_PRE_DEFINED
File spec type flag constant, indicating that pre-defined file specifications should not be taken into account.

See Also:
Constant Field Values

IGNORE_USER_DEFINED

public static final int IGNORE_USER_DEFINED
File spec type flag constant, indicating that user-defined file specifications should not be taken into account.

See Also:
Constant Field Values

FILE_NAME_SPEC

public static final int FILE_NAME_SPEC
File spec type constant, indicating a file name specification.

See Also:
Constant Field Values

FILE_EXTENSION_SPEC

public static final int FILE_EXTENSION_SPEC
File spec type constant, indicating a file extension specification.

See Also:
Constant Field Values
Method Detail

addFileSpec

public void addFileSpec(String fileSpec,
                        int type)
                 throws CoreException
Adds a user-defined file specification to this content type. Has no effect if the given file specification has already been added by either user or provider.

Parameters:
fileSpec - the file specification
type - the type of the file specification. One of FILE_NAME_SPEC, FILE_EXTENSION_SPEC.
Throws:
IllegalArgumentException - if the type bit mask is incorrect
CoreException - if this method fails. Reasons include:
  • An error occurred persisting this setting.
See Also:
FILE_NAME_SPEC, FILE_EXTENSION_SPEC

removeFileSpec

public void removeFileSpec(String fileSpec,
                           int type)
                    throws CoreException
Removes a user-defined file specification from this content type. Has no effect if the given file specification does not exist, or was not defined by the user.

Parameters:
fileSpec - the file specification
type - the type of the file specification. One of FILE_NAME_SPEC, FILE_EXTENSION_SPEC.
Throws:
IllegalArgumentException - if the type bit mask is incorrect
CoreException - if this method fails. Reasons include:
  • An error occurred persisting this setting.
See Also:
FILE_NAME_SPEC, FILE_EXTENSION_SPEC

getBaseType

public IContentType getBaseType()
Returns a reference to this content type's base type. If this content type does not have a base type (it is a root type), returns null.

Returns:
this content type's base type, or null

getDescriptionFor

public IContentDescription getDescriptionFor(InputStream contents,
                                             QualifiedName[] options)
                                      throws IOException
Tries to obtain a description for the given contents.

Any IOExceptions that may occur while reading the given input stream will flow to the caller. The input stream will not be closed by this operation.

Parameters:
contents - the contents to be interpreted
options - an array of keys for all properties that should be described
Returns:
a content description if one could be obtained, or null
Throws:
IOException - if an error occurs while reading the contents
See Also:
IContentDescription

getDescriptionFor

public IContentDescription getDescriptionFor(Reader contents,
                                             QualifiedName[] options)
                                      throws IOException
Tries to obtain a description for the given contents.

Any IOExceptions that may occur while reading the given reader will flow to the caller. The reader will not be closed by this operation.

Parameters:
contents - the contents to be interpreted
options - an array of keys for all properties that should be described
Returns:
a content description if one could be obtained, or null
Throws:
UnsupportedOperationException - if this content type has a describer that does not implement ITextContentDescriber
IOException - if an error occurs while reading the contents
See Also:
IContentDescription

getDefaultCharset

public String getDefaultCharset()
Returns the default charset for this content type if one has been defined, null otherwise.

Returns:
the default charset, or null

getFileSpecs

public String[] getFileSpecs(int type)
Returns file specifications from this content type. The type mask is a bit-wise or of file specification type constants indicating the file specification types of interest.

Parameters:
type - a bit-wise or of file specification type constants. Valid flags are:
  • one of FILE_EXTENSION_SPEC or FILE_NAME_SPEC
  • and optionally, one of IGNORE_PRE_DEFINED or IGNORE_USER_DEFINED
Returns:
the file specification
See Also:
FILE_NAME_SPEC, FILE_EXTENSION_SPEC, IGNORE_PRE_DEFINED, IGNORE_USER_DEFINED

getId

public String getId()
Returns this content type's unique identifier. Each content type has an identifier by which they can be retrieved from the content type catalog.

Returns:
this content type's unique identifier

getName

public String getName()
Returns a user-friendly name for this content type.

Returns:
this content type's name

isAssociatedWith

public boolean isAssociatedWith(String fileName)
Returns whether this content type is associated with the given file name.

Parameters:
fileName - the file name
Returns:
true if this content type is associated with the given file name, false otherwise

isKindOf

public boolean isKindOf(IContentType another)
Returns whether this content type is a kind of the given content type. A content type A is a kind of a content type B if:
  1. A and B are the same content type, or
  2. A's base type is B, or
  3. A's base type is a kind of B.

Parameters:
another - a content type
Returns:
true if this content type is a kind of the given content type, false otherwise

setDefaultCharset

public void setDefaultCharset(String userCharset)
                       throws CoreException
Sets the default charset for this content type. If null is provided, restores the pre-defined default charset.

Parameters:
userCharset - the new charset for this content type, or null
Throws:
CoreException - if this method fails. Reasons include:
  • An error occurred persisting this setting.

Eclipse Platform
Release 3.0

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.