Class FieldHandler
- java.lang.Object
-
- org.apache.felix.scr.impl.inject.field.FieldHandler
-
public class FieldHandler extends java.lang.ObjectHandler for field references
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classFieldHandler.METHOD_TYPEprivate static classFieldHandler.NotFoundFinal state of field couldn't be found or errors occurred.private static classFieldHandler.NotResolvedInitial state.static classFieldHandler.ReferenceMethodImplprivate static classFieldHandler.ResolvedFinal state of field could be found and is valid.private static interfaceFieldHandler.StateInternal state interface.
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<?>componentClassThe component class.private java.lang.reflect.FieldfieldThe field used for the injection.private ReferenceMetadatametadataThe reference metadata.private FieldHandler.StatestateState handling.private ValueUtils.ValueTypevalueTypeValue type.
-
Constructor Summary
Constructors Constructor Description FieldHandler(ReferenceMetadata metadata, java.lang.Class<?> componentClass)Create a new field handler
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanfieldExists(ComponentLogger logger)ReferenceMethodgetBind()private java.lang.ObjectgetFieldValue(java.lang.Object componentInstance)InitReferenceMethodgetInit()private java.util.Collection<java.lang.Object>getReplaceCollection(BindParameters bp)ReferenceMethodgetUnbind()ReferenceMethodgetUpdated()private booleaninitField(java.lang.Object componentInstance, ComponentLogger logger)private voidsetFieldValue(java.lang.Object componentInstance, java.lang.Object value)(package private) voidsetSearchResult(FieldUtils.FieldSearchResult result, ComponentLogger logger)private MethodResultupdateField(FieldHandler.METHOD_TYPE mType, java.lang.Object componentInstance, BindParameters bp)
-
-
-
Field Detail
-
metadata
private final ReferenceMetadata metadata
The reference metadata.
-
componentClass
private final java.lang.Class<?> componentClass
The component class.
-
field
private volatile java.lang.reflect.Field field
The field used for the injection.
-
valueType
private volatile ValueUtils.ValueType valueType
Value type.
-
state
private volatile FieldHandler.State state
State handling.
-
-
Constructor Detail
-
FieldHandler
public FieldHandler(ReferenceMetadata metadata, java.lang.Class<?> componentClass)
Create a new field handler- Parameters:
fieldName- name of the fieldcomponentClass- component classreferenceClassName- service class name
-
-
Method Detail
-
initField
private boolean initField(java.lang.Object componentInstance, ComponentLogger logger)
-
getReplaceCollection
private java.util.Collection<java.lang.Object> getReplaceCollection(BindParameters bp)
-
updateField
private MethodResult updateField(FieldHandler.METHOD_TYPE mType, java.lang.Object componentInstance, BindParameters bp) throws java.lang.reflect.InvocationTargetException
- Throws:
java.lang.reflect.InvocationTargetException
-
setFieldValue
private void setFieldValue(java.lang.Object componentInstance, java.lang.Object value) throws java.lang.reflect.InvocationTargetException- Throws:
java.lang.reflect.InvocationTargetException
-
getFieldValue
private java.lang.Object getFieldValue(java.lang.Object componentInstance) throws java.lang.reflect.InvocationTargetException- Throws:
java.lang.reflect.InvocationTargetException
-
fieldExists
public boolean fieldExists(ComponentLogger logger)
-
setSearchResult
void setSearchResult(FieldUtils.FieldSearchResult result, ComponentLogger logger)
-
getBind
public ReferenceMethod getBind()
-
getUnbind
public ReferenceMethod getUnbind()
-
getUpdated
public ReferenceMethod getUpdated()
-
getInit
public InitReferenceMethod getInit()
-
-