Class ExtensionPoint
java.lang.Object
java.util.AbstractMap
java.util.HashMap
java.util.LinkedHashMap
org.gvsig.utils.extensionPointsOld.ExtensionPoint
- All Implemented Interfaces:
Serializable,Cloneable,Map,SequencedMap
Esta clase permite registrar extensiones para un punto de extension.
La clase se comporta como un Map que mantiene el orden de insercion de los elementos, para que puedan ser recorridos en ese orden.
Ademas de registrar las extensiones para un punto de extension, presenta metodos para facilitar la creacion de la extension.
A la hora de registrar una extension, mediante el metodo put, podremos suministrarle una clase o una instancia que implemente el interface IExtensionBuilder. Si le suministramos una clase, cuando queramos crear la extension mediante el metodo create, se creara una instancia de la clase y se retornara. Si lo que se suministro fue una instancia que implementa el interface IExtensionBuilder, se invocara al metodo create de esta para crear la extension.
La clase se comporta como un Map que mantiene el orden de insercion de los elementos, para que puedan ser recorridos en ese orden.
Ademas de registrar las extensiones para un punto de extension, presenta metodos para facilitar la creacion de la extension.
A la hora de registrar una extension, mediante el metodo put, podremos suministrarle una clase o una instancia que implemente el interface IExtensionBuilder. Si le suministramos una clase, cuando queramos crear la extension mediante el metodo create, se creara una instancia de la clase y se retornara. Si lo que se suministro fue una instancia que implementa el interface IExtensionBuilder, se invocara al metodo create de esta para crear la extension.
- Author:
- jjdelcerro
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K, V> -
Constructor Summary
ConstructorsConstructorDescriptionExtensionPoint(String extensionPointName) Construye un punto de extension.ExtensionPoint(String extensionPointName, String description) Construye un punto de extension. -
Method Summary
Modifier and TypeMethodDescriptionvoidCrea un alias para una extension registrada.Crea una extension.Crea una extension.Retorna la descripcion asociada al punto de extension.Retorna la descripcion asociada a una extension.getName()Retorna el nombre de punto de extension.Añade una extension antes de la indicada con beforeKey, con su descripcion asociadaAñade una extension con su descripcion asociadavoidsetDescripcion(String description) Asocia una descripcion al punto de extension.voidsetExtensionDescription(String key, String description) Asocia una descripcion a una extension registrada.Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, newLinkedHashMap, putFirst, putLast, removeEldestEntry, replaceAll, reversed, sequencedEntrySet, sequencedKeySet, sequencedValues, valuesMethods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, newHashMap, put, putAll, putIfAbsent, remove, remove, replace, replace, sizeMethods inherited from class java.util.AbstractMap
equals, hashCode, toStringMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, sizeMethods inherited from interface java.util.SequencedMap
firstEntry, lastEntry, pollFirstEntry, pollLastEntry
-
Constructor Details
-
ExtensionPoint
Construye un punto de extension.- Parameters:
extensionPointName- Nombre del punto de extension.
-
ExtensionPoint
Construye un punto de extension.- Parameters:
extensionPointName- Nombre del punto de extensiondescription- Descripcion del punto de extension
-
-
Method Details
-
getName
Retorna el nombre de punto de extension.- Returns:
- Nombre del punto de extension
-
getDescription
Retorna la descripcion asociada al punto de extension.- Returns:
- descripcion del punto de extension
-
setDescripcion
Asocia una descripcion al punto de extension.- Parameters:
description-
-
getExtensionDescription
Retorna la descripcion asociada a una extension.- Parameters:
key-- Returns:
- descripcion del punto de extension
-
setExtensionDescription
Asocia una descripcion a una extension registrada.- Parameters:
key- Nombre de la extensiondescription-
-
put
Añade una extension con su descripcion asociada- Parameters:
key- clave de la extensionvalue- extensiondecription- descripcion de la extension
-
insert
Añade una extension antes de la indicada con beforeKey, con su descripcion asociada- Parameters:
key- clave de la extensionvalue- extensiondecription- descripcion de la extension
-
create
Crea una extension.
Dado un nombre de extension asociada a este punto de extension, crea el objeto registrado para manejar la extension.
Si el objeto registrado para esa extension implementa el interface IExtensionBuilder, se invoca al metodo create para crear la instancia de la extension.
Si no implementa este interface, debera ser una clase, y se creara una instancia de esa clase.- Parameters:
name- Nombre de la extension a crear.- Returns:
- La instancia creada de la extension.
- Throws:
InstantiationExceptionIllegalAccessException
-
create
public Object create(String name, Object[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException Crea una extension.
Dado un nombre de extension asociada a este punto de extension, crea el objeto registrado para manejar la extension.
A la hora de crear la instancia de la extension, le pasara los parametros indicados en args.
Debido a que los argumentos se pasan como un array de objetos, no es posible pasar al constructor de la extension parametros de tipos basicos como int o long. Se deberan pasar como objetos y existir un constructor de la clase que los pueda recibir de esta manera.- Parameters:
name- Nombre de la extension a crear.args- Array de objetos a pasar como parametros en la construccion de la instancia de la extension.- Returns:
- La instancia creada de la extension.
- Throws:
SecurityExceptionNoSuchMethodExceptionIllegalArgumentExceptionInstantiationExceptionIllegalAccessExceptionInvocationTargetException
-
create
public Object create(String name, Map args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException -
addAlias
Crea un alias para una extension registrada.- Parameters:
item- Nombre de la extension registrada.alias- alias a añadir.- Throws:
KeyException
-