public static interface Resource.Factory.Registry
A registry implementation will typically delegate to the global instance, which can be used as follows
Resource.Factory.Registry.INSTANCE
.getProtocolToFactoryMap().
put("abc", resourceFactoryForURIWithAbcProtocol);
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().
put("xyz", resourceFactoryForURIWithXyzFileExtension);
A descriptor
can be used in place of an actual factory
as a value in the map.
It is used for factories registered via
plugin registration
to ensure delayed plugin load.
Clients must extend the default implementation
,
since methods can and will be added to this API.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DEFAULT_CONTENT_TYPE_IDENTIFIER
The content type identifier
"*" that matches any content type identifier. |
static java.lang.String |
DEFAULT_EXTENSION
The file extension
"*" that matches any extension. |
static Resource.Factory.Registry |
INSTANCE
The global static resource factory registry.
|
Modifier and Type | Method and Description |
---|---|
java.util.Map<java.lang.String,java.lang.Object> |
getContentTypeToFactoryMap()
Returns a map from content type identifier to
Resource.Factory
or Resource.Factory.Descriptor . |
java.util.Map<java.lang.String,java.lang.Object> |
getExtensionToFactoryMap()
|
Resource.Factory |
getFactory(URI uri)
Returns the resource factory appropriate for the given URI.
|
Resource.Factory |
getFactory(URI uri,
java.lang.String contentType)
Returns the resource factory appropriate for the given URI
with the given
content type identifier. |
java.util.Map<java.lang.String,java.lang.Object> |
getProtocolToFactoryMap()
|
static final java.lang.String DEFAULT_EXTENSION
"*"
that matches any extension.static final java.lang.String DEFAULT_CONTENT_TYPE_IDENTIFIER
"*"
that matches any content type identifier.static final Resource.Factory.Registry INSTANCE
use
by any resource set.Resource.Factory getFactory(URI uri)
An implementation will (typically) use
the URI's scheme
to search the protocol
map
the URI's file extension
to search extension
map,
and the URI's content type identifier
to search the content type
map.
It will convert
a resulting descriptor into a factory.
It may choose to provide additional mechanisms and algorithms to determine a factory appropriate for the given URI.
uri
- the URI.null
if there isn't one.ResourceSet.createResource(URI)
Resource.Factory getFactory(URI uri, java.lang.String contentType)
content type
identifier.
An implementation will (typically) use
the URI's scheme
to search the protocol
map
the URI's file extension
to search extension
map,
and the given content type identifier to search the content type
map.
It will convert
a resulting descriptor into a factory.
It may choose to provide additional mechanisms and algorithms to determine a factory appropriate for the given URI.
uri
- the URI.contentType
- the content type of the URI or null
if a content type should not be used during lookup.null
if there isn't one.ResourceSet.createResource(URI)
java.util.Map<java.lang.String,java.lang.Object> getProtocolToFactoryMap()
java.util.Map<java.lang.String,java.lang.Object> getExtensionToFactoryMap()
file extension
to
Resource.Factory
or Resource.Factory.Descriptor
.
The default
file extension "*"
can be registered as a default that matches any file extension.
This is typically reserved for a default factory that supports XMI serialization;
clients are strongly discouraged from using this feature in the global registry,
particularly those that must function effectively within an Eclipse environment.
DEFAULT_EXTENSION
java.util.Map<java.lang.String,java.lang.Object> getContentTypeToFactoryMap()
Resource.Factory
or Resource.Factory.Descriptor
.
The default
content type identifier "*"
can be registered as a default that matches any content type identifier.
This is typically reserved for a default factory that supports XMI serialization;
clients are strongly discouraged from using this feature in the global registry,
particularly those that must function effectively within an Eclipse environment.
DEFAULT_CONTENT_TYPE_IDENTIFIER