Package org.jibx.binding.classes
Class ClassItem
- java.lang.Object
-
- org.jibx.binding.classes.ClassItem
-
public class ClassItem extends Object
Wrapper for field or method information. Provides the information needed for access to either existing or added methods in existing classes.- Author:
- Dennis M. Sosnoski
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ClassItemfindStaticMethod(String name, String[] sigs)Get static method by fully qualified name.static ClassItemfindVirtualMethod(String name, String[] sigs)Get virtual method by fully qualified name.intgetAccessFlags()Get access flags.intgetArgumentCount()Get number of arguments for method.StringgetArgumentType(int index)Get argument type as fully qualified class name.String[]getArgumentTypes()Get argument types as array of fully qualified class names.ClassFilegetClassFile()Get owning class information.String[]getExceptions()Get names of exceptions thrown by method.StringgetFullName()Get fully-qualified class and method name.StringgetGenericsSignature()Get the generics signature information for item.StringgetName()Get item name.StringgetParameterName(int index)Get method parameter name.static String[]getParametersFromSignature(String sig)Get parameter type names from method signature.static StringgetPrimitiveSignature(String type)Get the signature for a primitive.StringgetSignature()Get method signature.static String[]getSignatureVariants(String name)Get all variant signatures for a fully qualified class name.static StringgetTypeFromSignature(String sig)Get return type names from method signature.StringgetTypeName()Get item type as fully qualified class name.static booleanisAssignable(String from, String to)Check if a value of one type can be directly assigned to another type.booleanisInitializer()Check if item is an initializer.booleanisMethod()Check if item is a method.static booleanisPrimitive(String type)Check if type is a primitive.booleanisStatic()Check if item is a static.voidmakeAccessible(ClassFile src)Make accessible item.voidsetAccessFlags(int flags)Set access flags.static org.apache.bcel.generic.TypetypeFromName(String name)Create type from name.
-
-
-
Method Detail
-
getClassFile
public ClassFile getClassFile()
Get owning class information.- Returns:
- owning class information
-
getName
public String getName()
Get item name.- Returns:
- item name
-
getFullName
public String getFullName()
Get fully-qualified class and method name.- Returns:
- fully-qualified class and method name
-
getTypeName
public String getTypeName()
Get item type as fully qualified class name.- Returns:
- item type name
-
getArgumentCount
public int getArgumentCount()
Get number of arguments for method.- Returns:
- argument count for method, or zero if not a method
-
getArgumentType
public String getArgumentType(int index)
Get argument type as fully qualified class name.- Parameters:
index- argument number- Returns:
- argument type name
-
getParameterName
public String getParameterName(int index)
Get method parameter name.- Parameters:
index- parameter index- Returns:
- parameter name
-
getArgumentTypes
public String[] getArgumentTypes()
Get argument types as array of fully qualified class names.- Returns:
- array of argument types
-
getAccessFlags
public int getAccessFlags()
Get access flags.- Returns:
- flags for access type of field or method
-
setAccessFlags
public void setAccessFlags(int flags)
Set access flags.- Parameters:
flags- access flags for field or method
-
makeAccessible
public void makeAccessible(ClassFile src)
Make accessible item. Check if this field or method is accessible from another class, and if not decreases the access restrictions to make it accessible.- Parameters:
src- class file for required access
-
isStatic
public boolean isStatic()
Check if item is a static.- Returns:
trueif a static,falseif member
-
getSignature
public String getSignature()
Get method signature.- Returns:
- encoded method signature
-
isMethod
public boolean isMethod()
Check if item is a method.- Returns:
trueif a method,falseif a field
-
isInitializer
public boolean isInitializer()
Check if item is an initializer.- Returns:
trueif an initializer,falseif a field or normal method
-
getExceptions
public String[] getExceptions()
Get names of exceptions thrown by method.- Returns:
- array of exceptions thrown by method, or
nullif a field
-
getGenericsSignature
public String getGenericsSignature()
Get the generics signature information for item.- Returns:
- generics signature (
nullif none)
-
isPrimitive
public static boolean isPrimitive(String type)
Check if type is a primitive.- Parameters:
type- to check- Returns:
trueif a primitive,falseif not
-
getPrimitiveSignature
public static String getPrimitiveSignature(String type)
Get the signature for a primitive.- Parameters:
type- to check- Returns:
- signature for a primitive type
-
getParametersFromSignature
public static String[] getParametersFromSignature(String sig)
Get parameter type names from method signature.- Parameters:
sig- method signature to be decoded- Returns:
- array of argument type names
-
getTypeFromSignature
public static String getTypeFromSignature(String sig)
Get return type names from method signature.- Parameters:
sig- method signature to be decoded- Returns:
- return type name
-
typeFromName
public static org.apache.bcel.generic.Type typeFromName(String name)
Create type from name.- Parameters:
name- fully qualified type name- Returns:
- corresponding type
-
findVirtualMethod
public static ClassItem findVirtualMethod(String name, String[] sigs) throws org.jibx.runtime.JiBXException
Get virtual method by fully qualified name. This splits the class name from the method name, finds the class, and then tries to find a matching method name in that class or a superclass.- Parameters:
name- fully qualified class and method namesigs- possible method signatures- Returns:
- information for the method, or
nullif not found - Throws:
org.jibx.runtime.JiBXException- if configuration error
-
findStaticMethod
public static ClassItem findStaticMethod(String name, String[] sigs) throws org.jibx.runtime.JiBXException
Get static method by fully qualified name. This splits the class name from the method name, finds the class, and then tries to find a matching method name in that class.- Parameters:
name- fully qualified class and method namesigs- possible method signatures- Returns:
- information for the method, or
nullif not found - Throws:
org.jibx.runtime.JiBXException- if configuration error
-
getSignatureVariants
public static String[] getSignatureVariants(String name) throws org.jibx.runtime.JiBXException
Get all variant signatures for a fully qualified class name. The returned array gives all signatures (for interfaces or classes) which instances of the class can match.- Parameters:
name- fully qualified class name- Returns:
- possible signature variations for instances of the class
- Throws:
org.jibx.runtime.JiBXException- if configuration error
-
isAssignable
public static boolean isAssignable(String from, String to) throws org.jibx.runtime.JiBXException
Check if a value of one type can be directly assigned to another type. This is basically the equivalent of the instanceof operator, but with application to primitive types as well as object types.- Parameters:
from- fully qualified class name of initial typeto- fully qualified class name of assignment type- Returns:
trueif assignable,falseif not- Throws:
org.jibx.runtime.JiBXException- if configuration error
-
-