|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.ops4j.pax.reflector.impl.ReflectorImpl
public final class ReflectorImpl
The Reflector Implementation is capable of digging through any Java application that is added as a root object.
Method Summary | |
---|---|
void |
addRootObject(String name,
Object obj)
Adds a Root Object to the Reflector instance. |
void |
addTypeHandler(TypeHandler handler)
Adds a TypeHandler. |
String |
append(Object container,
String containerpart,
String namepart)
Appends the name to the container name. |
void |
dispose()
|
String |
extractContainerPart(String objectname)
Returns the container part of the objectname. |
String |
extractNamePart(String objectname)
Returns the Name part of the objectname. |
String[] |
getAllRootNames()
|
String |
getMember(String object)
Returns the human readable form of the object instance traversed from the objectname argument. |
Class |
getMemberClass(Object container,
String memberName)
Returns the Class of the member identified by the membername in the provided
container . |
Class |
getMemberClass(String name)
Returns the Class of the member identified by the membername argument. |
String |
getMemberClassName(Object container,
String memberName)
Returns the name of the Class of the member identified by the membername in the provided
container . |
String |
getMemberClassName(String name)
Returns the name of the Class of the member identified by the objectname argument. |
String[] |
getMemberNames(Object container)
Returns all the membernames found in the object . |
String[] |
getMemberNames(String object)
Returns all the membernames found in the member identified by membername argument. |
Object |
getMemberObject(Object container,
String memberName)
Returns the object of the member by the given membername, starting at the provided container. |
Object |
getMemberObject(String object)
Returns the object of the member by the given membername. |
Object |
getRootObject(String name)
|
Map |
getRootObjects()
|
List<TypeHandler> |
getTypeHandlers()
|
boolean |
isMemberSettable(Object container,
String memberName)
Checks with the member of the given membername can be set to a value. |
boolean |
isMemberSettable(String name)
Checks with the member of the given objectname can be set to a value. |
static ReflectorImpl |
newInstance()
|
void |
removeRootObject(String name)
Removes the root object with registered under the provided name. |
void |
removeTypeHandler(TypeHandler handler)
Removes a TypeHandler from the ReflectorProvider. |
void |
setMember(String object,
String value)
Assigns the value to the member identified by the membername argument. |
void |
setMemberObject(Object container,
String member,
Object value)
Assigns the value to the member identified by the membername starting at the
container object. |
void |
setMemberObject(String objectname,
Object object)
Assigns the value to the member identified by the membername argument. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Method Detail |
---|
public static ReflectorImpl newInstance()
public List<TypeHandler> getTypeHandlers()
public void addTypeHandler(TypeHandler handler)
ReflectorProvider
TypeHandlers must be added in the priority order with the least high priority first, such as the default ObjectTypeHandler, and highly specialized type handlers last.
There is no support for adding a lower priority TypeHandler after a higher priority one.
addTypeHandler
in interface ReflectorProvider
handler
- The TypeHandler to be added.public void removeTypeHandler(TypeHandler handler)
ReflectorProvider
removeTypeHandler
in interface ReflectorProvider
handler
- The TypeHandler instance to be removed.public void addRootObject(String name, Object obj)
ReflectorService
The name must also be unique and no other root object may have been registered with the same name. The ReflectorService will hold on to the root objects with a hard reference, so it is imperative that objects are removed explicitly with a removeRootObject() method call.
addRootObject
in interface ReflectorService
name
- The name of the Root Object. The name may only contain valid Java characters, as
reported by Character.isJavaIdentifierPart(char ch).obj
- The object instance to be registered at the provided name.public void removeRootObject(String name)
ReflectorService
If there is no root object registered under the provided name, this method will simply return.
removeRootObject
in interface ReflectorService
name
- The name under which the root object was previously registered.public Object getRootObject(String name)
public Map getRootObjects()
public String[] getAllRootNames()
public String[] getMemberNames(String object) throws ReflectionException
ReflectorService
membername
argument.
If the membername
is an empty string, all root object names are returned.
getMemberNames
in interface ReflectorService
object
- The name of the member to query for its members.
membername
.
ReflectionException
- If the member identified by the membername
does not exist.public String[] getMemberNames(Object container)
ReflectorService
object
.
getMemberNames
in interface ReflectorService
container
- The Java instance to query for its members.
object
.public String getMember(String object) throws ReflectionException
ReflectorService
objectname
argument.
getMember
in interface ReflectorService
object
- The name of the object of interested.
ReflectionException
- if the member does not exist.public void setMember(String object, String value) throws ReflectionException
ReflectorService
value
to the member identified by the membername
argument.
setMember
in interface ReflectorService
object
- The name of the member to be assigned a value.value
- The value to be assigned to the member. For primitives, the value is converted according to
normal Java rules, but additionally a fully-qualified classname can be given, in which case
the reflector will try to instantiate such class through the default constructor, and if
successful assign the instance to the member.
ReflectionException
- If the value is not assignable to the member type or the member does not exist.public Object getMemberObject(String object) throws ReflectionException
ReflectorService
getMemberObject
in interface ReflectorService
object
- The name of the object to traverse to and return.
ReflectionException
- if the member does not exist.public Object getMemberObject(Object container, String memberName) throws ReflectionException
ReflectorService
getMemberObject
in interface ReflectorService
container
- The object which has a member of the memberName.memberName
- The name of the object to traverse to and return.
ReflectionException
- if the member does not exist.public void setMemberObject(String objectname, Object object) throws ReflectionException
ReflectorService
value
to the member identified by the membername
argument.
setMemberObject
in interface ReflectorService
objectname
- The name of the member to be assigned a value.object
- The value to be assigned to the member.
ReflectionException
- If the value is not assignable to the member type.public void setMemberObject(Object container, String member, Object value) throws ReflectionException
ReflectorService
value
to the member identified by the membername
starting at the
container
object.
setMemberObject
in interface ReflectorService
container
- The object which has a member of the memberName.member
- The name of the member to be assigned a value.value
- The value to be assigned to the member.
ReflectionException
- If the value is not assignable to the member type.public String extractContainerPart(String objectname)
ReflectorService
This method must correctly return the container part of the full objectname. For instance; getContainerPart( "someRoot.Abc.Def" ), must return "someRoot.Abc", getContainerPart( "someRoot.Abc['Def']" ), must return "someRoot.Abc", and getContainerPart( "someRoot.Abc['Def'].Rst" ), must return "someRoot.Abc['Def']".
extractContainerPart
in interface ReflectorService
objectname
- The objectname to be worked upon.
objectname
.public String extractNamePart(String objectname)
ReflectorService
This method must correctly return the Name part of the full objectname. For instance; getContainerPart( "someRoot.Abc.Def" ), must return "Def", getContainerPart( "someRoot.Abc['Def']" ), must return "['Def']", and getContainerPart( "someRoot.Abc['Def'].Rst" ), must return "Rst".
extractNamePart
in interface ReflectorService
objectname
- The objectname to be worked upon.
objectname
.public String append(Object container, String containerpart, String namepart)
ReflectorService
append
in interface ReflectorService
container
- The actual container so that the type can be determined.containerpart
- The name of the container.namepart
- The name part to append to the containerpart.
public String getMemberClassName(String name) throws ReflectionException
ReflectorService
objectname
argument.
getMemberClassName
in interface ReflectorService
name
- The name of the member to query for its Class.
ReflectionException
- if the named object does not exist.public String getMemberClassName(Object container, String memberName) throws ReflectionException
ReflectorService
membername
in the provided
container
.
getMemberClassName
in interface ReflectorService
container
- The object which has a member of the memberName.memberName
- The name of the member of the container
to query for its Class.
objectname
in the container
.
ReflectionException
- if the objectname
does not exist as a member in the container
.public Class getMemberClass(String name) throws ReflectionException
ReflectorService
membername
argument.
getMemberClass
in interface ReflectorService
name
- The name of the object to query for its Class.
ReflectionException
- if the named object does not exist.public Class getMemberClass(Object container, String memberName) throws ReflectionException
ReflectorService
membername
in the provided
container
.
getMemberClass
in interface ReflectorService
container
- The object which has a member of the memberName.memberName
- The name of the member of the container
to query for its Class.
ReflectionException
- if the named object does not exist.public boolean isMemberSettable(String name) throws ReflectionException
ReflectorService
isMemberSettable
in interface ReflectorService
name
- The member to be tested if it can be set by a setMemberObject() method call.
objectname
can be set.
ReflectionException
- if the objectname
does not identify an existing object reference.public boolean isMemberSettable(Object container, String memberName) throws ReflectionException
ReflectorService
isMemberSettable
in interface ReflectorService
container
- The container from where we should test if a member can be set to a value, by calling the
setMemberObject() method.memberName
- The member in the provided container to be tested if it can be set by a setMemberObject()
method call.
membername
can be set in the container
.
ReflectionException
- if the membername
does not exist as a member in the container.public void dispose()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |