|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.sun.hk2.component.AbstractInhabitantImpl<T>
public abstract class AbstractInhabitantImpl<T>
Partial implementation of Inhabitant that defines methods whose
semantics is fixed by Habitat.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface com.sun.hk2.component.Holder |
|---|
Holder.Impl<T> |
| Field Summary | |
|---|---|
protected Descriptor |
descriptor
|
protected static Logger |
logger
|
| Constructor Summary | |
|---|---|
AbstractInhabitantImpl(Descriptor descriptorOfSelf)
|
|
| Method Summary | ||
|---|---|---|
Collection<Inhabitant> |
companions()
Returns the companion inhabitants associated with this inhabitant. |
|
protected void |
dispose(T object)
|
|
T |
get()
Returns the instance of this inhabitant. |
|
static
|
getAnnotation(Class<?> annotated,
Class<V> annotation,
boolean walkParentChain)
FOR INTERNAL USE TO HK2 |
|
|
getAnnotation(Class<V> annotation)
|
|
Collection<Annotation> |
getAnnotations()
|
|
Descriptor |
getDescriptor()
|
|
protected static Descriptor |
getDescriptorFor(Inhabitant<?> i)
|
|
Provider<T> |
getProvider()
|
|
Provider<T> |
getProvider(Context ctx)
|
|
|
getSerializedMetadata(Class<T> type)
Obtains the metadata serialized into String. |
|
|
getSerializedMetadata(Class<T> type,
String key)
Obtains the serialized metadata. |
|
Inhabitant |
lead()
If this inhabitant is a companion to another inhabitant (called "lead"), This method returns that inhabitant. |
|
boolean |
matches(Descriptor matchTo)
|
|
void |
setCompanions(Collection<Inhabitant> companions)
This method is only meant to be invoked by Habitat. |
|
String |
toString()
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface org.jvnet.hk2.component.Inhabitant |
|---|
get, metadata, release, type, typeName |
| Methods inherited from interface org.glassfish.hk2.ManagedComponentProvider |
|---|
isActive |
| Field Detail |
|---|
protected static final Logger logger
protected final Descriptor descriptor
| Constructor Detail |
|---|
public AbstractInhabitantImpl(Descriptor descriptorOfSelf)
| Method Detail |
|---|
protected static Descriptor getDescriptorFor(Inhabitant<?> i)
public Provider<T> getProvider(Context ctx)
getProvider in interface Binding<T>public Provider<T> getProvider()
getProvider in interface Binding<T>public boolean matches(Descriptor matchTo)
public Descriptor getDescriptor()
getDescriptor in interface Binding<T>public String toString()
toString in class Objectpublic final T get()
Inhabitant
Some Inhabitants return the same instance for multiple
invocations (AKA singleton), but
the method may return different instances to invocations from different
context (AKA scope.) The extreme case is where the each invocation
returns a different object.
get in interface Factory<T>get in interface Provider<T>get in interface Inhabitant<T>
public <T> T getSerializedMetadata(Class<T> type,
String key)
Inhabitant
This method is a wrapper around Inhabitant.metadata() and useful for
defining a highly structured metadata that doesn't easily fit
a simple string representation.
The implementation of this method is to obtain the value associated with
this key as metadata().getOne(key), and if that exists, treat
the value as base64-encoded binary, and deserializes it and returns the object.
The classes used in the serialization need to be available during the build time (normally during the HK2 compile mojo runs) so that the metadata can be serialized. The evolution of these classes need to be careful done, otherwise the deserialization of the metadata may fail unexpectedly.
getSerializedMetadata in interface Inhabitant<T>public final <T> T getSerializedMetadata(Class<T> type)
Inhabitant
This is a convenient short-cut that does getSerializedMetadata(type,type.getName())
getSerializedMetadata in interface Inhabitant<T>public Inhabitant lead()
Inhabitant
lead in interface Inhabitant<T>public final Collection<Inhabitant> companions()
Inhabitant
This method works with the Inhabitant.lead() method in pairs, such
that the following condition always holds:
x.companions().contains(y) <-> y.lead()==x
companions in interface Inhabitant<T>public final void setCompanions(Collection<Inhabitant> companions)
InhabitantHabitat.
setCompanions in interface Inhabitant<T>protected final void dispose(T object)
public <V extends Annotation> V getAnnotation(Class<V> annotation)
public static <V extends Annotation> V getAnnotation(Class<?> annotated,
Class<V> annotation,
boolean walkParentChain)
public Collection<Annotation> getAnnotations()
getAnnotations in interface Provider<T>
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||