This interface represents a concrete source of a metadata item. A concrete
source is able to read the item from a file (embedded in a JPEG, or from
a XMP file, etc...) or a database or another persistence facility.
Metadata item providers can provide any kind of object following these
rules:
- they must comply with the JavaBean specifications (events and listeners)
(but see notes below);
- for each provided property, a special "available" property must be defined;
While the returned object must be compliant with JavaBeans specifications, it
is not necessary that they are directly implemented in the original class;
instead, they can be dynamically provided by bytecode manipulation - see
it.tidalwave.metadata.spi.MetadataItemEnhancer.
For instance, this is a valid class for representing a metadata item:
public class ExampleMetadataItem implements Serializable
{
private String name;
private boolean nameAvailable;
public void setName (final String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public boolean isNameAvailable()
{
return nameAvailable;
}
public void setNameAvailable (final boolean nameAvailable)
{
this.nameAvailable = nameAvailable;
}
}