# Interface IMemoryRenderingBindingsProvider

All Known Subinterfaces:
  `IMemoryRenderingManager`

All Known Implementing Classes:
  `AbstractMemoryRenderingBindingsProvider`

public interface IMemoryRenderingBindingsProvider
A rendering bindings provider provides rendering type bindings for a memory block.

By default, bindings for a memory block are provided by the memory rendering manager. However, a client can provide dynamic renderings for a memory block by contributing a dynamic rendering binding in the `renderingBindings` element of a `memoryRenderings` extension.

Clients contributing dynamic rendering bindings are intended to implement this interface.

Since:
  3.1

## Method Summary

Modifier and Type
Method
Description
`void`
`addListener(IMemoryRenderingBindingsListener listener)`
Adds a listener to this binding provider.
`IMemoryRenderingType[]`
`getDefaultRenderingTypes(IMemoryBlock block)`
Returns default rendering types bound to the given memory block, possibly empty.
`IMemoryRenderingType`
`getPrimaryRenderingType(IMemoryBlock block)`
Returns the primary rendering type bound to the given memory block, or `null` if none.
`IMemoryRenderingType[]`
`getRenderingTypes(IMemoryBlock block)`
Returns all rendering types bound to the given memory block.
`void`
`removeListener(IMemoryRenderingBindingsListener listener)`
Removes a listener from this binding provider.

## Method Details

### getRenderingTypes

IMemoryRenderingType[] getRenderingTypes(IMemoryBlock block)
Returns all rendering types bound to the given memory block. This includes default and primary rendering types.

Parameters:
  `block` - memory block
Returns:
  all rendering types bound to the given memory block

### getDefaultRenderingTypes

IMemoryRenderingType[] getDefaultRenderingTypes(IMemoryBlock block)
Returns default rendering types bound to the given memory block, possibly empty.

Parameters:
  `block` - memory block
Returns:
  default rendering types bound to the given memory block, possibly empty

### getPrimaryRenderingType

IMemoryRenderingType getPrimaryRenderingType(IMemoryBlock block)
Returns the primary rendering type bound to the given memory block, or `null` if none.

Parameters:
  `block` - memory block
Returns:
  the primary rendering type bound to the given memory block, or `null` if none

### addListener

void addListener(IMemoryRenderingBindingsListener listener)
Adds a listener to this binding provider. The listener will be notified when rendering bindings change.

Has no effect if an identical listener is already registered.

Parameters:
  `listener` - listener to add

### removeListener

void removeListener(IMemoryRenderingBindingsListener listener)
Removes a listener from this binding provider.

Has no effect if an identical listener is not already registered.

Parameters:
  `listener` - listener to remove