## org.exist.source
Interface Source

All Known Implementing Classes:
  AbstractSource

public interface Source

A general interface for access to external or internal sources. This is mainly used as an abstraction for loading XQuery scripts and modules, but can also be applied to other use cases.

Author:
  wolf

Field Summary
`static int` `INVALID`
`static int` `UNKNOWN`
`static int` `VALID`

Method Summary
`long` `getCacheTimestamp()`
`java.lang.String` `getContent()`
`java.lang.Object` `getKey()` Returns a unique key to identify the source, usually an URI.
`java.io.Reader` `getReader()` Returns a `Reader` to read the contents of the source.
`int` `isValid(DBBroker broker)` Is this source object still valid? Returns `UNKNOWN` if the validity of the source cannot be determined.
`int` `isValid(Source other)` Checks if the source object is still valid by comparing it to another version of the same source.
`void` `setCacheTimestamp(long timestamp)` Set a timestamp for this source.

Field Detail

### VALID

    public static final int VALID

See Also:
  Constant Field Values

### INVALID

    public static final int INVALID

See Also:
  Constant Field Values

### UNKNOWN

    public static final int UNKNOWN

See Also:
  Constant Field Values

Method Detail

### getKey

    public java.lang.Object getKey()

  Returns a unique key to identify the source, usually an URI.

### isValid

    public int isValid(DBBroker broker)

  Is this source object still valid? Returns `UNKNOWN` if the validity of the source cannot be determined. The `DBBroker` parameter is required by some implementations as they have to read resources from the database.

  Parameters:
    `broker` -

### isValid

    public int isValid(Source other)

  Checks if the source object is still valid by comparing it to another version of the same source. It depends on the concrete implementation how the sources are compared. Use this method if `isValid(DBBroker)` return `UNKNOWN`.

  Parameters:
    `other` -

### getReader

    public java.io.Reader getReader()
                             throws java.io.IOException

  Returns a `Reader` to read the contents of the source.

  Throws:
    `java.io.IOException`

### getContent

    public java.lang.String getContent()
                                throws java.io.IOException

  Throws:
    `java.io.IOException`

### setCacheTimestamp

    public void setCacheTimestamp(long timestamp)

  Set a timestamp for this source. This is used by `XQueryPool` to check if a source has timed out.

  Parameters:
    `timestamp` -

### getCacheTimestamp

    public long getCacheTimestamp()

Copyright (C) Wolfgang Meier. All rights reserved.