Package org.eclipse.emf.cdo.view

# Interface CDOFetchRuleManager

public interface CDOFetchRuleManager
Collects and updates `fetch rules` for `revisions`, usually based on `feature analyzer` statistics.

Since:
  2.0
Author:
  Simon McDuff
No Implement
  This interface is not intended to be implemented by clients.
No Extend
  This interface is not intended to be extended by clients.

## Method Summary

Modifier and Type
Method
Description
`default CDOCollectionLoadingPolicy`
`getCollectionLoadingPolicy()`
Returns the collection loading policy that should be used when loading collections.
`CDOID`
`getContext()`
Returns the context ID for which this fetch rule manager is collecting statistics.
`List<CDOFetchRule>`
`getFetchRules(Collection<CDOID> ids)`
Returns the fetch rules for the given object IDs.

## Method Details

### getContext

CDOID getContext()
Returns the context ID for which this fetch rule manager is collecting statistics.

A context-specific fetch rule manager collects statistics only for the objects that are associated with the given context ID. A context ID is typically the ID of a root object. A fetch rule manager that is not context-specific returns `CDOID.NULL`.

Returns:
  the context ID, or `CDOID.NULL` if this fetch rule manager is not context-specific.

### getFetchRules

List<CDOFetchRule> getFetchRules(Collection<CDOID> ids)
Returns the fetch rules for the given object IDs.

The fetch rules are usually based on statistics collected by one or more `feature analyzers`. The fetch rules may be context-specific, that is, they may be based only on statistics collected for objects that are associated with the context ID returned by `getContext()`.

The returned list of fetch rules must not contain multiple rules for the same `EClass`. If multiple rules for the same EClass are applicable to an object, the first applicable rule in the list is used.

If no fetch rules are applicable to an object, the view's default fetch rule is used.

The returned list must not be modified by the caller.

Parameters:
  `ids` - the IDs of the objects for which fetch rules are requested; note that the objects may not exist or be accessible.
Returns:
  the fetch rules for the given object IDs, or `null` if no fetch rules are applicable. The list may be empty.

### getCollectionLoadingPolicy

default CDOCollectionLoadingPolicy getCollectionLoadingPolicy()
Returns the collection loading policy that should be used when loading collections.

Returns:
  the collection loading policy; or `null` to use `CDORevision.UNCHUNKED`.