## org.eclipse.jst.jsf.context
Interface IDelegatingFactory

All Known Implementing Classes:
  AbstractDelegatingFactory, AbstractStructuredDocumentContextFactory, StructuredDocumentSymbolResolverFactory

    public interface IDelegatingFactory

Defines a type of factory that can have delegate factories to help it create an appropriate instance type. The general contract for implementors is: 1) You must follow the isValidDelegate contract. 2) You should try to create an instance yourself and only delegate if cannot do it yourself. Deviations from this rule must be clearly documented to ensure clients understand how the factory works. Clients may NOT implement this interface. Extend AbstractDelegatingFactory instead.

Method Summary
`void` `addFactoryDelegate(IAdaptable delegate)` Adds delgate to the end of the list of factory delegates if the list does not already contain it.
`java.util.List<java.lang.Class>` `getValidDelegateTypes()`
`boolean` `isValidDelegate(IAdaptable delegate)` The return value of this method should conform to the following contract: Let v = getValidDelegates.
`boolean` `removeFactoryDelegate(IAdaptable delegate)`

Method Detail

### addFactoryDelegate

    void addFactoryDelegate(IAdaptable delegate)

  Adds delgate to the end of the list of factory delegates if the list does not already contain it.

  Parameters:
    `delegate` -
  Throws:
    `java.lang.ClassCastException` - if delegate does not implement an expected interface. Each implementor can define what delegates are valid based on the isValidDelegate() and getValidDelegates contracts

### removeFactoryDelegate

    boolean removeFactoryDelegate(IAdaptable delegate)

  Parameters:
    `delegate` -
  Returns:
    true if delegate was removed, false if delegate wasn't in the list of delegates

### getValidDelegateTypes

    java.util.List<java.lang.Class> getValidDelegateTypes()

  Returns:
    a list of Class objects that represent the interfaces that may be passed to addFactoryDelegate. Implementor should return at least one supported class.

### isValidDelegate

    boolean isValidDelegate(IAdaptable delegate)

  The return value of this method should conform to the following contract: Let v = getValidDelegates. Then isValidDelegate should return true only if the set of v contains a Class for which delegate.getAdapter(Class) returns a non-null value.

  Parameters:
    `delegate` -
  Returns:
    true if delegate is supported, false otherwise.