|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.glassfish.hk2.utilities.DescriptorImpl
com.sun.hk2.component.AbstractInhabitantImpl<T>
com.sun.hk2.component.EventPublishingInhabitant<T>
@Deprecated public class EventPublishingInhabitant<T>
An inhabitant that implements InhabitantEventPublisher, and maintains a list of listeners to notify for interesting changes of the underlying delegate.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface com.sun.hk2.component.Holder |
---|
Holder.Impl<T> |
Field Summary | |
---|---|
protected Inhabitant<T> |
real
Deprecated. Real Inhabitant object. |
Fields inherited from class com.sun.hk2.component.AbstractInhabitantImpl |
---|
descriptor, logger |
Constructor Summary | |
---|---|
EventPublishingInhabitant(ServiceLocator serviceLocator,
Descriptor descriptor)
Deprecated. |
|
EventPublishingInhabitant(ServiceLocator serviceLocator,
Inhabitant<?> delegate)
Deprecated. |
|
EventPublishingInhabitant(ServiceLocator serviceLocator,
Inhabitant<?> delegate,
InhabitantListener listener)
Deprecated. |
Method Summary | |
---|---|
void |
addInhabitantListener(InhabitantListener listener)
Deprecated. |
boolean |
equals(Object o)
Deprecated. |
protected void |
fetch()
Deprecated. |
T |
get(Inhabitant onBehalfOf)
Deprecated. Returns the instance of this inhabitant. |
ServiceLocator |
getServiceLocator()
Deprecated. |
int |
hashCode()
Deprecated. |
boolean |
isActive()
Deprecated. Returns true if the component has been instantiated. |
Map<String,List<String>> |
metadata()
Deprecated. Gets the metadata associated with this inhabitant. |
protected void |
notify(InhabitantListener.EventType eventType)
Deprecated. |
void |
release()
Deprecated. Called to orderly shutdown ServiceLocator . |
boolean |
removeInhabitantListener(InhabitantListener listener)
Deprecated. |
String |
toString()
Deprecated. |
Class<? extends T> |
type()
Deprecated. Type of the inhabitant. |
String |
typeName()
Deprecated. The short-cut for type().getName()
but this allows us to defer loading the actual types. |
Methods inherited from class com.sun.hk2.component.AbstractInhabitantImpl |
---|
companions, dispose, get, getAnnotation, getAnnotation, getAnnotations, getByType, getDescriptor, getDescriptorFor, getProvider, getProvider, getSerializedMetadata, getSerializedMetadata, lead, matches, setCompanions |
Methods inherited from class org.glassfish.hk2.utilities.DescriptorImpl |
---|
addAdvertisedContract, addMetadata, addQualifier, getAdvertisedContracts, getBaseDescriptor, getDescriptorType, getImplementation, getLoader, getLocatorId, getMetadata, getName, getQualifiers, getRanking, getScope, getServiceId, pretty, readObject, removeAdvertisedContract, removeAllMetadata, removeMetadata, removeQualifier, setBaseDescriptor, setDescriptorType, setImplementation, setLoader, setLocatorId, setName, setRanking, setScope, setServiceId, writeObject |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.glassfish.hk2.api.Descriptor |
---|
getAdvertisedContracts, getBaseDescriptor, getDescriptorType, getImplementation, getLoader, getLocatorId, getMetadata, getName, getQualifiers, getRanking, getScope, getServiceId, setRanking |
Field Detail |
---|
protected volatile Inhabitant<T> real
Inhabitant
object.
Constructor Detail |
---|
public EventPublishingInhabitant(ServiceLocator serviceLocator, Descriptor descriptor)
public EventPublishingInhabitant(ServiceLocator serviceLocator, Inhabitant<?> delegate)
public EventPublishingInhabitant(ServiceLocator serviceLocator, Inhabitant<?> delegate, InhabitantListener listener)
Method Detail |
---|
public String typeName()
Inhabitant
type().getName()
but this allows us to defer loading the actual types.
public Map<String,List<String>> metadata()
Inhabitant
This data is usually used by a sub-system of HK2, and not really meant to
be used by applications. (At least for now.)
The main benefit of metadata is that it's available right away
as soon as the ServiceLocator
is properly initialized, even before
component classes are loaded. In contrast, accessing annotations would require
classes to be loaded and resolved.
Service.metadata()
public void release()
Inhabitant
ServiceLocator
.
The expected behavior is for objects to get its PreDestroy
callback invoked, and its reference released. For singleton
objects, this method is expected to dispose that object.
For scoped objects, those are released when ScopeInstance.release()
is invoked.
public boolean isActive()
Provider
public Class<? extends T> type()
Inhabitant
The only binding contract that needs to be honored is that the Inhabitant.get()
method returns an instance assignable to this type. That is,
get().getClass()==type()
doesn't necessarily have to hold,
but type().isInstance(get())
must.
This is particularly true when Factory
is involved, as in such
case HK2 has no way of knowing the actual type.
That said, this method is not designed for the semantics of
contract/implementation split --- implementations of a contract
should return the concrete type from this method, and use
habitat index
to support look-up by contract.
public T get(Inhabitant onBehalfOf)
Inhabitant
THIS METHOD SHOULD BE ONLY USED BY HK2 IMPLEMENTATION.
Inhabitant
s are often used with the decorator pattern
(see AbstractCreatorInhabitantImpl
for example), yet during
the object initializtion inside the Inhabitant.get()
method, we often
need the reference to the outer-most Inhabitant
registered to
the ServiceLocator
(for example so that we can request the injection
of {link Inhabita} that represents itself, or to inject companions.)
So this overloaded version of the get method takes the outer-most
Inhabitant
. This method is only invoked from within HK2
where the decorator pattern is used.
protected void fetch()
public void addInhabitantListener(InhabitantListener listener)
public boolean removeInhabitantListener(InhabitantListener listener)
protected void notify(InhabitantListener.EventType eventType)
public ServiceLocator getServiceLocator()
public int hashCode()
hashCode
in class DescriptorImpl
public boolean equals(Object o)
equals
in class DescriptorImpl
public String toString()
toString
in class AbstractInhabitantImpl<T>
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |