# Class e.c.c.m.MetadataCapability(Capability):

Part of elisa.core.components.metadata_capability View In Hierarchy

Known subclasses: elisa.core.tests.test_metadata_manager.FlexibleMeta, elisa.plugins.amazon.metadata.AmazonCovers, elisa.plugins.tutorials.amazon.metadata.AmazonCovers

A metadata capability is a special type of capability that provides metadata retrieval services on top of a given resource provider.

For example, this could be a music album cover retriever built on top of the Amazon resource provider.

A metadata capability has a rank that determines the level of confidence the metadata manager should give it when retrieving metadata. It allows to give a capability a higher priority over another one.

Class Variables | rank | the rank of the capability for the metadata manager (type: positive `int` )

Line # | Kind | Name | Docs
--- | --- | --- | ---
50 | Method | able_to_handle | Test whether the capability is able to handle a metadata request on the
64 | Method | get_metadata | Try to retrieve metadata and populate the model with it.

Inherited from Component (via Capability):

Line # | Kind | Name | Docs
--- | --- | --- | ---
85 | Class | PathDescriptor | Undocumented
97 | Class Method | create | Create and initialize the component.
130 | Method | initialize | Initialize the component.
142 | Method | clean | Clean the component.

Inherited from Loggable (via Capability, Component):

Line # | Kind | Name | Docs
--- | --- | --- | ---
81 | Method | __init__ | Undocumented

def able_to_handle(self, model):
overridden in elisa.core.tests.test_metadata_manager.FlexibleMeta, elisa.plugins.amazon.metadata.AmazonCovers, elisa.plugins.tutorials.amazon.metadata.AmazonCovers
Test whether the capability is able to handle a metadata request on the given model.

Parameters | model | the model for which metadata is requested (type: a subclass of `elisa.core.components.model.Model` )
Returns | True if the capability is able to handle the given model, False otherwise (type: `bool` )

def get_metadata(self, model):
overridden in elisa.core.tests.test_metadata_manager.FlexibleMeta, elisa.plugins.amazon.metadata.AmazonCovers, elisa.plugins.tutorials.amazon.metadata.AmazonCovers
Try to retrieve metadata and populate the model with it.

Parameters | model | the model that should be populated with the metadata (type: a subclass of `elisa.core.components.model.Model` )
Returns | a deferred fired when the metadata retrieval is complete (type: `twisted.internet.defer.Deferred` )