Package org.jibx.util
Class DummyClassLocator.DummyClassInfo
- java.lang.Object
-
- org.jibx.util.DummyClassLocator.DummyClassInfo
-
- All Implemented Interfaces:
IClass
- Enclosing class:
- DummyClassLocator
private class DummyClassLocator.DummyClassInfo extends java.lang.Object implements IClass
(Very) partial implementation of class information interface, used as a place holder for classes.
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
m_name
private java.lang.String
m_package
private java.lang.String
m_signature
private IClass
m_superclass
-
Constructor Summary
Constructors Constructor Description DummyClassInfo(java.lang.String name, IClass sclas)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IClassItem
getBestMethod(java.lang.String name, java.lang.String type, java.lang.String[] args)
Get information for best matching method.ClassFile
getClassFile()
Get class file information.IClassItem
getDirectField(java.lang.String name)
Get information for field.IClassItem
getField(java.lang.String name)
Get information for field.IClassItem[]
getFields()
Get all fields of class.IClassItem
getInitializerMethod(java.lang.String sig)
Get information for initializer.java.lang.String[]
getInstanceSigs()
Get signatures for all types of which instances of this type are instances.java.lang.String[]
getInterfaces()
Get names of all interfaces implemented directly by class.java.lang.String
getJavaDoc()
Get the JavaDoc comment for this class.IClassLocator
getLocator()
Get the locator which provided this class.IClassItem
getMethod(java.lang.String name, java.lang.String sig)
Get information for method without respect to potential trailing arguments or return value.IClassItem
getMethod(java.lang.String name, java.lang.String[] sigs)
Get information for method matching one of several possible signatures.IClassItem[]
getMethods()
Get all methods of class.java.lang.String
getName()
Get fully qualified class name.java.lang.String
getPackage()
Get package name.java.lang.String
getSignature()
Get signature for class as type.IClassItem
getStaticMethod(java.lang.String name, java.lang.String sig)
Get information for static method without respect to return value.IClass
getSuperClass()
Get superclass.boolean
isAbstract()
Check if class is abstract.boolean
isAccessible(IClassItem item)
Check accessible method.boolean
isAssignable(IClass other)
Check if a value of this type can be directly assigned to another type.boolean
isImplements(java.lang.String sig)
Check if class implements an interface.boolean
isInterface()
Check if class is an interface.boolean
isModifiable()
Check if class is modifiable.boolean
isSuperclass(java.lang.String name)
Check if another class is a superclass of this one.java.lang.Class
loadClass()
Load class in executable form.
-
-
-
Field Detail
-
m_name
private final java.lang.String m_name
-
m_package
private final java.lang.String m_package
-
m_signature
private final java.lang.String m_signature
-
m_superclass
private final IClass m_superclass
-
-
Constructor Detail
-
DummyClassInfo
public DummyClassInfo(java.lang.String name, IClass sclas)
-
-
Method Detail
-
getBestMethod
public IClassItem getBestMethod(java.lang.String name, java.lang.String type, java.lang.String[] args)
Description copied from interface:IClass
Get information for best matching method. This tries to find a method which matches the specified name, return type, and argument types. If an exact match is not found it looks for a method with a return type that is extended or implemented by the specified type and arguments that are extended or implemented by the specified types. If no match is found for this class superclasses are checked. TODO: make this work with both static and member methods- Specified by:
getBestMethod
in interfaceIClass
- Parameters:
name
- method nametype
- return value type name (null
if indeterminant)args
- argument value type names (null
if indeterminant)- Returns:
- method information, or
null
if method not found
-
getClassFile
public ClassFile getClassFile()
Description copied from interface:IClass
Get class file information. TODO: eliminate this sucker- Specified by:
getClassFile
in interfaceIClass
- Returns:
- class file information
-
getDirectField
public IClassItem getDirectField(java.lang.String name)
Description copied from interface:IClass
Get information for field. This only checks for fields that are actually members of the class (not superclasses). TODO: make this work with both static and member fields- Specified by:
getDirectField
in interfaceIClass
- Parameters:
name
- field name- Returns:
- field information, or
null
if field not found
-
getField
public IClassItem getField(java.lang.String name)
Description copied from interface:IClass
Get information for field. If the field is not found directly, superclasses are checked for inherited fields matching the supplied name. TODO: make this work with both static and member fields
-
getFields
public IClassItem[] getFields()
Description copied from interface:IClass
Get all fields of class.
-
getInitializerMethod
public IClassItem getInitializerMethod(java.lang.String sig)
Description copied from interface:IClass
Get information for initializer. Only the class itself is checked for an initializer matching the argument list signature.- Specified by:
getInitializerMethod
in interfaceIClass
- Parameters:
sig
- encoded argument list signature- Returns:
- method information, or
null
if method not found
-
getInstanceSigs
public java.lang.String[] getInstanceSigs()
Description copied from interface:IClass
Get signatures for all types of which instances of this type are instances.- Specified by:
getInstanceSigs
in interfaceIClass
- Returns:
- all signatures supported by instances
-
getInterfaces
public java.lang.String[] getInterfaces()
Description copied from interface:IClass
Get names of all interfaces implemented directly by class.- Specified by:
getInterfaces
in interfaceIClass
- Returns:
- names of all interfaces implemented directly by class
(non-
null
, empty array if none)
-
getJavaDoc
public java.lang.String getJavaDoc()
Description copied from interface:IClass
Get the JavaDoc comment for this class.- Specified by:
getJavaDoc
in interfaceIClass
- Returns:
- comment text, or
null
if none or no source available
-
getLocator
public IClassLocator getLocator()
Description copied from interface:IClass
Get the locator which provided this class.- Specified by:
getLocator
in interfaceIClass
- Returns:
- locator
-
getMethod
public IClassItem getMethod(java.lang.String name, java.lang.String sig)
Description copied from interface:IClass
Get information for method without respect to potential trailing arguments or return value. If the method is not found directly, superclasses are checked for inherited methods matching the supplied name. This compares the supplied partial signature against the actual method signature, and considers it a match if the actual sigature starts with the supplied signature. TODO: make this work with both static and member methods
-
getMethod
public IClassItem getMethod(java.lang.String name, java.lang.String[] sigs)
Description copied from interface:IClass
Get information for method matching one of several possible signatures. If a match is not found directly, superclasses are checked for inherited methods matching the supplied name and signatures. The signature variations are checked in the order supplied. TODO: make this work with both static and member methods
-
getMethods
public IClassItem[] getMethods()
Description copied from interface:IClass
Get all methods of class.- Specified by:
getMethods
in interfaceIClass
- Returns:
- methods
-
getName
public java.lang.String getName()
Description copied from interface:IClass
Get fully qualified class name.
-
getPackage
public java.lang.String getPackage()
Description copied from interface:IClass
Get package name.- Specified by:
getPackage
in interfaceIClass
- Returns:
- package name for class
-
getSignature
public java.lang.String getSignature()
Description copied from interface:IClass
Get signature for class as type.- Specified by:
getSignature
in interfaceIClass
- Returns:
- signature for class used as type
-
getStaticMethod
public IClassItem getStaticMethod(java.lang.String name, java.lang.String sig)
Description copied from interface:IClass
Get information for static method without respect to return value. Only the class itself is checked for a method matching the supplied name and argument list signature.- Specified by:
getStaticMethod
in interfaceIClass
- Parameters:
name
- method namesig
- encoded argument list signature- Returns:
- method information, or
null
if method not found
-
getSuperClass
public IClass getSuperClass()
Description copied from interface:IClass
Get superclass.- Specified by:
getSuperClass
in interfaceIClass
- Returns:
- superclass information
-
isAbstract
public boolean isAbstract()
Description copied from interface:IClass
Check if class is abstract.- Specified by:
isAbstract
in interfaceIClass
- Returns:
true
if class is abstract,false
if not
-
isAccessible
public boolean isAccessible(IClassItem item)
Description copied from interface:IClass
Check accessible method. Check if a field or method in another class is accessible from within this class.- Specified by:
isAccessible
in interfaceIClass
- Parameters:
item
- field or method information- Returns:
true
if accessible,false
if not
-
isAssignable
public boolean isAssignable(IClass other)
Description copied from interface:IClass
Check if a value of this type can be directly assigned to another type. This is basically the equivalent of the instanceof operator.- Specified by:
isAssignable
in interfaceIClass
- Parameters:
other
- type to be assigned to- Returns:
true
if assignable,false
if not
-
isImplements
public boolean isImplements(java.lang.String sig)
Description copied from interface:IClass
Check if class implements an interface.- Specified by:
isImplements
in interfaceIClass
- Parameters:
sig
- signature of interface to be checked- Returns:
true
if interface is implemented by class,false
if not
-
isInterface
public boolean isInterface()
Description copied from interface:IClass
Check if class is an interface.- Specified by:
isInterface
in interfaceIClass
- Returns:
true
if class is an interface,false
if not
-
isModifiable
public boolean isModifiable()
Description copied from interface:IClass
Check if class is modifiable.- Specified by:
isModifiable
in interfaceIClass
- Returns:
true
if class is modifiable,false
if not
-
isSuperclass
public boolean isSuperclass(java.lang.String name)
Description copied from interface:IClass
Check if another class is a superclass of this one.- Specified by:
isSuperclass
in interfaceIClass
- Parameters:
name
- potential superclass to be checked- Returns:
true
if named class is a superclass of this one,false
if not
-
-