# Class FileContentLocation

java.lang.Object
org.pentaho.reporting.libraries.repository.file.FileContentEntity
org.pentaho.reporting.libraries.repository.file.FileContentLocation

All Implemented Interfaces:
  `Serializable, ContentEntity, ContentLocation`

public class FileContentLocation extends FileContentEntity implements ContentLocation
A content-location that uses a directory as backend.

Author:
  Thomas Morgner
See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`FileContentLocation(ContentLocation parent, File backend)`
Creates a new location for the given parent and directory.
`FileContentLocation(Repository repository, File backend)`
Creates a new root-location for the given repository and directory.

## Method Summary

Modifier and Type
Method
Description
`ContentItem`
`createItem(String name)`
Creates a new data item in the current location.
`ContentLocation`
`createLocation(String name)`
Creates a new content location in the current location.
`boolean`
`exists(String name)`
Checks, whether an content entity with the given name exists in this content location.
`ContentEntity`
`getEntry(String name)`
Returns the content entity with the given name.
`ContentEntity[]`
`listContents()`
Lists all content entities stored in this content-location.

### Methods inherited from class FileContentEntity

`delete, getAttribute, getContentId, getName, getParent, getRepository, setAttribute`

### Methods inherited from class Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface ContentEntity

`delete, getAttribute, getContentId, getName, getParent, getRepository, setAttribute`

## Constructor Details

### FileContentLocation

public FileContentLocation(ContentLocation parent, File backend) throws ContentIOException
Creates a new location for the given parent and directory.

Parameters:
  `parent` - the parent location.
  `backend` - the backend.
Throws:
  `ContentIOException` - if an error occured or the file did not point to a directory.

### FileContentLocation

public FileContentLocation(Repository repository, File backend) throws ContentIOException
Creates a new root-location for the given repository and directory.

Parameters:
  `repository` - the repository for which a location should be created.
  `backend` - the backend.
Throws:
  `ContentIOException` - if an error occured or the file did not point to a directory.

## Method Details

### listContents

public ContentEntity[] listContents() throws ContentIOException
Lists all content entities stored in this content-location. This method filters out all files that have an invalid name (according to the repository rules).

Specified by:
  `listContents` in interface `ContentLocation`
Returns:
  the content entities for this location.
Throws:
  `ContentIOException` - if an repository error occured.

### getEntry

public ContentEntity getEntry(String name) throws ContentIOException
Returns the content entity with the given name. If the entity does not exist, an Exception will be raised.

Specified by:
  `getEntry` in interface `ContentLocation`
Parameters:
  `name` - the name of the entity to be retrieved.
Returns:
  the content entity for this name, never null.
Throws:
  `ContentIOException` - if an repository error occured.

### createItem

public ContentItem createItem(String name) throws ContentCreationException
Creates a new data item in the current location. This method must never return null. This method will fail if an entity with the same name exists in this location.

Specified by:
  `createItem` in interface `ContentLocation`
Parameters:
  `name` - the name of the new entity.
Returns:
  the newly created entity, never null.
Throws:
  `ContentCreationException` - if the item could not be created.

### createLocation

public ContentLocation createLocation(String name) throws ContentCreationException
Creates a new content location in the current location. This method must never return null. This method will fail if an entity with the same name exists in this location.

Specified by:
  `createLocation` in interface `ContentLocation`
Parameters:
  `name` - the name of the new entity.
Returns:
  the newly created entity, never null.
Throws:
  `ContentCreationException` - if the item could not be created.

### exists

public boolean exists(String name)
Checks, whether an content entity with the given name exists in this content location. This method will report invalid filenames as non-existent.

Specified by:
  `exists` in interface `ContentLocation`
Parameters:
  `name` - the name of the new entity.
Returns:
  true, if an entity exists with this name, false otherwise.