Package org.apache.calcite.rel.metadata
Interface MetadataHandlerProvider
- All Known Implementing Classes:
JaninoRelMetadataProvider
,ProxyingMetadataHandlerProvider
public interface MetadataHandlerProvider
Provides
MetadataHandler
call sites for
RelMetadataQuery
. The handlers provided are responsible for
updating the cache stored in RelMetadataQuery
.-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic class
Exception that indicates there there should be a handler for this class but there is not. -
Method Summary
Modifier and TypeMethodDescription<MH extends MetadataHandler<?>>
MHProvide a handler for the requested metadata class.default <MH extends MetadataHandler<?>>
MHRevise the handler for a given kind of metadata.
-
Method Details
-
handler
Provide a handler for the requested metadata class.- Type Parameters:
MH
- The metadata type the handler relates to.- Parameters:
handlerClass
- The handler interface expected- Returns:
- The handler implementation.
-
revise
Revise the handler for a given kind of metadata.Should be invoked if the existing handler throws a
MetadataHandlerProvider.NoHandler
exception.- Type Parameters:
MH
- The type metadata the handler provides.- Parameters:
handlerClass
- The type of class to revise.- Returns:
- A new handler that should be used instead of any previous handler provided.
-