Class FieldHandler
- java.lang.Object
-
- org.apache.felix.scr.impl.inject.field.FieldHandler
-
public class FieldHandler extends java.lang.Object
Handler for field references
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
FieldHandler.METHOD_TYPE
private static class
FieldHandler.NotFound
Final state of field couldn't be found or errors occurred.private static class
FieldHandler.NotResolved
Initial state.static class
FieldHandler.ReferenceMethodImpl
private static class
FieldHandler.Resolved
Final state of field could be found and is valid.private static interface
FieldHandler.State
Internal state interface.
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<?>
componentClass
The component class.private java.lang.reflect.Field
field
The field used for the injection.private ReferenceMetadata
metadata
The reference metadata.private FieldHandler.State
state
State handling.private ValueUtils.ValueType
valueType
Value 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 boolean
fieldExists(ComponentLogger logger)
ReferenceMethod
getBind()
private java.lang.Object
getFieldValue(java.lang.Object componentInstance)
InitReferenceMethod
getInit()
private java.util.Collection<java.lang.Object>
getReplaceCollection(BindParameters bp)
ReferenceMethod
getUnbind()
ReferenceMethod
getUpdated()
private boolean
initField(java.lang.Object componentInstance, ComponentLogger logger)
private void
setFieldValue(java.lang.Object componentInstance, java.lang.Object value)
(package private) void
setSearchResult(FieldUtils.FieldSearchResult result, ComponentLogger logger)
private MethodResult
updateField(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()
-
-