org.jomc.tools
Class JavaClasses

Package class diagram package JavaClasses
java.lang.Object
  extended by org.jomc.tools.JomcTool
      extended by org.jomc.tools.JavaClasses

public class JavaClasses
extends JomcTool

Manages Java classes.

Use cases

Version:
$Id: JavaClasses.java 992 2009-11-19 00:11:06Z schulte2005 $
Author:
Christian Schulte
See Also:
JomcTool.getModules(), ModelManager.getContext(java.lang.ClassLoader), ModelManager.getMarshaller(java.lang.ClassLoader), ModelManager.getUnmarshaller(java.lang.ClassLoader), ModelObjectValidationReport.isModelObjectValid()

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jomc.tools.JomcTool
JomcTool.Listener
 
Constructor Summary
JavaClasses()
          Creates a new JavaClasses instance.
JavaClasses(JavaClasses tool)
          Creates a new JavaClasses instance taking a JavaClasses instance to initialize the instance with.
 
Method Summary
 void commitClasses(org.jomc.model.Implementation implementation, javax.xml.bind.Marshaller marshaller, File classesDirectory)
          Commits meta-data of a given implementation of the modules of the instance to compiled Java classes.
 void commitClasses(javax.xml.bind.Marshaller marshaller, File classesDirectory)
          Commits meta-data of the modules of the instance to compiled Java classes.
 void commitClasses(org.jomc.model.Module module, javax.xml.bind.Marshaller marshaller, File classesDirectory)
          Commits meta-data of a given module of the modules of the instance to compiled Java classes.
 void commitClasses(org.jomc.model.Specification specification, javax.xml.bind.Marshaller marshaller, File classesDirectory)
          Commits meta-data of a given specification of the modules of the instance to compiled Java classes.
<T extends org.jomc.model.ModelObject>
T
decodeModelObject(javax.xml.bind.Unmarshaller unmarshaller, byte[] bytes, Class<T> type)
          Decodes a model object from a byte array.
 byte[] encodeModelObject(javax.xml.bind.Marshaller marshaller, javax.xml.bind.JAXBElement<? extends org.jomc.model.ModelObject> modelObject)
          Encodes a model object to a byte array.
 byte[] getClassfileAttribute(org.apache.bcel.classfile.JavaClass clazz, String attributeName)
          Gets an attribute from a java class.
 org.apache.bcel.classfile.JavaClass getJavaClass(File classFile)
          Parses a class file.
 org.apache.bcel.classfile.JavaClass getJavaClass(InputStream stream, String className)
          Parses a class file.
 org.apache.bcel.classfile.JavaClass getJavaClass(URL url, String className)
          Parses a class file.
 void setClassfileAttribute(org.apache.bcel.classfile.JavaClass clazz, String attributeName, byte[] data)
          Adds or updates an attribute in a java class.
 void transformClasses(org.jomc.model.Implementation implementation, javax.xml.bind.Marshaller marshaller, javax.xml.bind.Unmarshaller unmarshaller, org.apache.bcel.classfile.JavaClass javaClass, List<Transformer> transformers)
          Transforms committed meta-data of compiled Java classes of a given implementation of the modules of the instance.
 void transformClasses(javax.xml.bind.Marshaller marshaller, javax.xml.bind.Unmarshaller unmarshaller, File classesDirectory, List<Transformer> transformers)
          Transforms committed meta-data of compiled Java classes of the modules of the instance.
 void transformClasses(org.jomc.model.Module module, javax.xml.bind.Marshaller marshaller, javax.xml.bind.Unmarshaller unmarshaller, File classesDirectory, List<Transformer> transformers)
          Transforms committed meta-data of compiled Java classes of a given module of the modules of the instance.
 void transformClasses(org.jomc.model.Specification specification, javax.xml.bind.Marshaller marshaller, javax.xml.bind.Unmarshaller unmarshaller, org.apache.bcel.classfile.JavaClass javaClass, List<Transformer> transformers)
          Transforms committed meta-data of compiled Java classes of a given specification of the modules of the instance.
 org.jomc.model.ModelObjectValidationReport validateClasses(org.jomc.model.Implementation implementation, javax.xml.bind.Unmarshaller unmarshaller, org.apache.bcel.classfile.JavaClass javaClass)
          Validates compiled Java classes against a given implementation of the modules of the instance.
 org.jomc.model.ModelObjectValidationReport validateClasses(org.jomc.model.Module module, javax.xml.bind.Unmarshaller unmarshaller, ClassLoader classLoader)
          Validates compiled Java classes against a given module of the modules of the instance.
 org.jomc.model.ModelObjectValidationReport validateClasses(org.jomc.model.Module module, javax.xml.bind.Unmarshaller unmarshaller, File classesDirectory)
          Validates compiled Java classes against a given module of the modules of the instance.
 org.jomc.model.ModelObjectValidationReport validateClasses(org.jomc.model.Specification specification, javax.xml.bind.Unmarshaller unmarshaller, org.apache.bcel.classfile.JavaClass javaClass)
          Validates compiled Java classes against a given specification of the modules of the instance.
 org.jomc.model.ModelObjectValidationReport validateClasses(javax.xml.bind.Unmarshaller unmarshaller, ClassLoader classLoader)
          Validates compiled Java classes against the modules of the instance.
 org.jomc.model.ModelObjectValidationReport validateClasses(javax.xml.bind.Unmarshaller unmarshaller, File classesDirectory)
          Validates compiled Java classes against the modules of the instance.
 
Methods inherited from class org.jomc.tools.JomcTool
getDefaultLogLevel, getDisplayLanguage, getInputEncoding, getJavaClasspathLocation, getJavaClasspathLocation, getJavadocComment, getJavaGetterMethodName, getJavaGetterMethodName, getJavaGetterMethodName, getJavaInterfaceNames, getJavaModifierName, getJavaModifierName, getJavaModifierName, getJavaPackageName, getJavaPackageName, getJavaPackageName, getJavaString, getJavaTypeName, getJavaTypeName, getJavaTypeName, getJavaTypeName, getJavaTypeName, getJavaTypeName, getListeners, getLogLevel, getLongDate, getLongDateTime, getLongTime, getModules, getOutputEncoding, getProfile, getShortDate, getShortDateTime, getShortTime, getTemplateEncoding, getVelocityContext, getVelocityEngine, getVelocityTemplate, getYears, isJavaClassDeclaration, isJavaClassDeclaration, isJavaDefaultPackage, isJavaDefaultPackage, isJavaPrimitiveType, isLoggable, log, setDefaultLogLevel, setInputEncoding, setLogLevel, setModules, setOutputEncoding, setProfile, setTemplateEncoding, setVelocityEngine
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaClasses

public JavaClasses()
Creates a new JavaClasses instance.


JavaClasses

public JavaClasses(JavaClasses tool)
Creates a new JavaClasses instance taking a JavaClasses instance to initialize the instance with.

Parameters:
tool - The instance to initialize the new instance with,
Method Detail

commitClasses

public void commitClasses(javax.xml.bind.Marshaller marshaller,
                          File classesDirectory)
                   throws IOException
Commits meta-data of the modules of the instance to compiled Java classes.

Parameters:
marshaller - The marshaller to use for committing the classes.
classesDirectory - The directory holding the compiled class files.
Throws:
NullPointerException - if marshaller or classesDirectory is null.
IOException - if committing meta-data fails.
See Also:
commitClasses(org.jomc.model.Module, javax.xml.bind.Marshaller, java.io.File)

commitClasses

public void commitClasses(org.jomc.model.Module module,
                          javax.xml.bind.Marshaller marshaller,
                          File classesDirectory)
                   throws IOException
Commits meta-data of a given module of the modules of the instance to compiled Java classes.

Parameters:
module - The module to process.
marshaller - The marshaller to use for committing the classes.
classesDirectory - The directory holding the compiled class files.
Throws:
NullPointerException - if module, marshaller or classesDirectory is null.
IOException - if committing meta-data fails.
See Also:
commitClasses(org.jomc.model.Specification, javax.xml.bind.Marshaller, java.io.File), commitClasses(org.jomc.model.Implementation, javax.xml.bind.Marshaller, java.io.File)

commitClasses

public void commitClasses(org.jomc.model.Specification specification,
                          javax.xml.bind.Marshaller marshaller,
                          File classesDirectory)
                   throws IOException
Commits meta-data of a given specification of the modules of the instance to compiled Java classes.

Parameters:
specification - The specification to process.
marshaller - The marshaller to use for committing the classes.
classesDirectory - The directory holding the compiled class files.
Throws:
NullPointerException - if specification, marshaller or classesDirectory is null.
IOException - if committing meta-data fails.

commitClasses

public void commitClasses(org.jomc.model.Implementation implementation,
                          javax.xml.bind.Marshaller marshaller,
                          File classesDirectory)
                   throws IOException
Commits meta-data of a given implementation of the modules of the instance to compiled Java classes.

Parameters:
implementation - The implementation to process.
marshaller - The marshaller to use for committing the classes.
classesDirectory - The directory holding the compiled class files.
Throws:
NullPointerException - if implementation, marshaller or classesDirectory is null.
IOException - if committing meta-data fails.

validateClasses

public org.jomc.model.ModelObjectValidationReport validateClasses(javax.xml.bind.Unmarshaller unmarshaller,
                                                                  File classesDirectory)
                                                           throws IOException
Validates compiled Java classes against the modules of the instance.

Parameters:
unmarshaller - The unmarshaller to use for validating classes.
classesDirectory - The directory holding the compiled class files.
Returns:
The report of the validation.
Throws:
NullPointerException - if unmarshaller or classesDirectory is null.
IOException - if reading class files fails.
See Also:
validateClasses(org.jomc.model.Module, javax.xml.bind.Unmarshaller, java.io.File)

validateClasses

public org.jomc.model.ModelObjectValidationReport validateClasses(javax.xml.bind.Unmarshaller unmarshaller,
                                                                  ClassLoader classLoader)
                                                           throws IOException
Validates compiled Java classes against the modules of the instance.

Parameters:
unmarshaller - The unmarshaller to use for validating classes.
classLoader - The class loader to search for classes.
Returns:
The report of the validation.
Throws:
NullPointerException - if unmarshaller or classLoader is null.
IOException - if reading class files fails.
See Also:
validateClasses(org.jomc.model.Module, javax.xml.bind.Unmarshaller, java.lang.ClassLoader)

validateClasses

public org.jomc.model.ModelObjectValidationReport validateClasses(org.jomc.model.Module module,
                                                                  javax.xml.bind.Unmarshaller unmarshaller,
                                                                  File classesDirectory)
                                                           throws IOException
Validates compiled Java classes against a given module of the modules of the instance.

Parameters:
module - The module to process.
unmarshaller - The unmarshaller to use for validating classes.
classesDirectory - The directory holding the compiled class files.
Returns:
The report of the validation.
Throws:
NullPointerException - if module, unmarshaller or classesDirectory is null.
IOException - if reading class files fails.
See Also:
validateClasses(org.jomc.model.Specification, javax.xml.bind.Unmarshaller, org.apache.bcel.classfile.JavaClass), validateClasses(org.jomc.model.Implementation, javax.xml.bind.Unmarshaller, org.apache.bcel.classfile.JavaClass)

validateClasses

public org.jomc.model.ModelObjectValidationReport validateClasses(org.jomc.model.Module module,
                                                                  javax.xml.bind.Unmarshaller unmarshaller,
                                                                  ClassLoader classLoader)
                                                           throws IOException
Validates compiled Java classes against a given module of the modules of the instance.

Parameters:
module - The module to process.
unmarshaller - The unmarshaller to use for validating classes.
classLoader - The class loader to search for classes.
Returns:
The report of the validation.
Throws:
NullPointerException - if module, unmarshaller or classLoader is null.
IOException - if reading class files fails.
See Also:
validateClasses(org.jomc.model.Specification, javax.xml.bind.Unmarshaller, org.apache.bcel.classfile.JavaClass), validateClasses(org.jomc.model.Implementation, javax.xml.bind.Unmarshaller, org.apache.bcel.classfile.JavaClass)

validateClasses

public org.jomc.model.ModelObjectValidationReport validateClasses(org.jomc.model.Specification specification,
                                                                  javax.xml.bind.Unmarshaller unmarshaller,
                                                                  org.apache.bcel.classfile.JavaClass javaClass)
                                                           throws IOException
Validates compiled Java classes against a given specification of the modules of the instance.

Parameters:
specification - The specification to process.
unmarshaller - The unmarshaller to use for validating classes.
javaClass - The class to validate.
Returns:
The report of the validation.
Throws:
NullPointerException - if specification, unmarshaller or javaClass is null.
IOException - if reading class files fails.

validateClasses

public org.jomc.model.ModelObjectValidationReport validateClasses(org.jomc.model.Implementation implementation,
                                                                  javax.xml.bind.Unmarshaller unmarshaller,
                                                                  org.apache.bcel.classfile.JavaClass javaClass)
                                                           throws IOException
Validates compiled Java classes against a given implementation of the modules of the instance.

Parameters:
implementation - The implementation to process.
unmarshaller - The unmarshaller to use for validating classes.
javaClass - The class to validate.
Returns:
The report of the validation.
Throws:
NullPointerException - if implementation, unmarshaller or javaClass is null.
IOException - if reading class files fails.

transformClasses

public void transformClasses(javax.xml.bind.Marshaller marshaller,
                             javax.xml.bind.Unmarshaller unmarshaller,
                             File classesDirectory,
                             List<Transformer> transformers)
                      throws IOException,
                             TransformerException
Transforms committed meta-data of compiled Java classes of the modules of the instance.

Parameters:
marshaller - The marshaller to use for transforming classes.
unmarshaller - The unmarshaller to use for transforming classes.
classesDirectory - The directory holding the compiled class files.
transformers - The transformers to use for transforming the classes.
Throws:
NullPointerException - if marshaller, unmarshaller, classesDirectory or transformers is null.
IOException - if accessing class files fails.
TransformerException - if transforming class files fails.
See Also:
transformClasses(org.jomc.model.Module, javax.xml.bind.Marshaller, javax.xml.bind.Unmarshaller, java.io.File, java.util.List)

transformClasses

public void transformClasses(org.jomc.model.Module module,
                             javax.xml.bind.Marshaller marshaller,
                             javax.xml.bind.Unmarshaller unmarshaller,
                             File classesDirectory,
                             List<Transformer> transformers)
                      throws IOException,
                             TransformerException
Transforms committed meta-data of compiled Java classes of a given module of the modules of the instance.

Parameters:
module - The module to process.
marshaller - The marshaller to use for transforming classes.
unmarshaller - The unmarshaller to use for transforming classes.
classesDirectory - The directory holding the compiled class files.
transformers - The transformers to use for transforming the classes.
Throws:
NullPointerException - if module, marshaller, unmarshaller, classesDirectory or transformers is null.
IOException - if accessing class files fails.
TransformerException - if transforming class files fails.
See Also:
transformClasses(org.jomc.model.Specification, javax.xml.bind.Marshaller, javax.xml.bind.Unmarshaller, org.apache.bcel.classfile.JavaClass, java.util.List), transformClasses(org.jomc.model.Implementation, javax.xml.bind.Marshaller, javax.xml.bind.Unmarshaller, org.apache.bcel.classfile.JavaClass, java.util.List)

transformClasses

public void transformClasses(org.jomc.model.Specification specification,
                             javax.xml.bind.Marshaller marshaller,
                             javax.xml.bind.Unmarshaller unmarshaller,
                             org.apache.bcel.classfile.JavaClass javaClass,
                             List<Transformer> transformers)
                      throws IOException,
                             TransformerException
Transforms committed meta-data of compiled Java classes of a given specification of the modules of the instance.

Parameters:
specification - The specification to process.
marshaller - The marshaller to use for transforming classes.
unmarshaller - The unmarshaller to use for transforming classes.
javaClass - The java class to process.
transformers - The transformers to use for transforming the classes.
Throws:
NullPointerException - if specification, marshaller, unmarshaller, javaClass or transformers is null.
IOException - if accessing class files fails.
TransformerException - if transforming class files fails.

transformClasses

public void transformClasses(org.jomc.model.Implementation implementation,
                             javax.xml.bind.Marshaller marshaller,
                             javax.xml.bind.Unmarshaller unmarshaller,
                             org.apache.bcel.classfile.JavaClass javaClass,
                             List<Transformer> transformers)
                      throws TransformerException,
                             IOException
Transforms committed meta-data of compiled Java classes of a given implementation of the modules of the instance.

Parameters:
implementation - The implementation to process.
marshaller - The marshaller to use for transforming classes.
unmarshaller - The unmarshaller to use for transforming classes.
javaClass - The java class to process.
transformers - The transformers to use for transforming the classes.
Throws:
NullPointerException - if implementation, marshaller, unmarshaller, javaClass or transformers is null.
IOException - if accessing class files fails.
TransformerException - if transforming class files fails.

getJavaClass

public org.apache.bcel.classfile.JavaClass getJavaClass(File classFile)
                                                 throws IOException
Parses a class file.

Parameters:
classFile - The class file to parse.
Returns:
The parsed class file.
Throws:
NullPointerException - if classFile is null.
IOException - if parsing classFile fails.
See Also:
JavaClass

getJavaClass

public org.apache.bcel.classfile.JavaClass getJavaClass(URL url,
                                                        String className)
                                                 throws IOException
Parses a class file.

Parameters:
url - The URL of the class file to parse.
className - The name of the class at url.
Returns:
The parsed class file.
Throws:
NullPointerException - if url or className is null.
IOException - if parsing fails.
See Also:
JavaClass

getJavaClass

public org.apache.bcel.classfile.JavaClass getJavaClass(InputStream stream,
                                                        String className)
                                                 throws IOException
Parses a class file.

Parameters:
stream - The stream to read the class file from.
className - The name of the class to read from stream.
Returns:
The parsed class file.
Throws:
NullPointerException - if stream or className is null.
IOException - if parsing fails.
See Also:
JavaClass

getClassfileAttribute

public byte[] getClassfileAttribute(org.apache.bcel.classfile.JavaClass clazz,
                                    String attributeName)
                             throws IOException
Gets an attribute from a java class.

Parameters:
clazz - The java class to get an attribute from.
attributeName - The name of the attribute to get.
Returns:
The value of attribute attributeName of clazz or null if no such attribute exists.
Throws:
NullPointerException - if clazz or attributeName is null.
IOException - if getting the attribute fails.
See Also:
JavaClass.getAttributes()

setClassfileAttribute

public void setClassfileAttribute(org.apache.bcel.classfile.JavaClass clazz,
                                  String attributeName,
                                  byte[] data)
                           throws IOException
Adds or updates an attribute in a java class.

Parameters:
clazz - The class to update.
attributeName - The name of the attribute to update.
data - The new data of the attribute to update the classFile with.
Throws:
NullPointerException - if clazz or attributeName is null.
IOException - if updating the class file fails.
See Also:
JavaClass.getAttributes()

encodeModelObject

public byte[] encodeModelObject(javax.xml.bind.Marshaller marshaller,
                                javax.xml.bind.JAXBElement<? extends org.jomc.model.ModelObject> modelObject)
                         throws IOException
Encodes a model object to a byte array.

Parameters:
marshaller - The marshaller to use for encoding the object.
modelObject - The model object to encode.
Returns:
GZIP compressed XML document for modelObject.
Throws:
NullPointerException - if marshaller or modelObject is null.
IOException - if encoding modelObject fails.

decodeModelObject

public <T extends org.jomc.model.ModelObject> T decodeModelObject(javax.xml.bind.Unmarshaller unmarshaller,
                                                                  byte[] bytes,
                                                                  Class<T> type)
                                                       throws IOException
Decodes a model object from a byte array.

Type Parameters:
T - The type of the decoded model object.
Parameters:
unmarshaller - The unmarshaller to use for decoding the object.
bytes - The encoded model object to decode.
type - The type of the encoded model object.
Returns:
Model object decoded from bytes.
Throws:
NullPointerException - if unmarshaller, bytes or type is null.
IOException - if decoding bytes fails.


Copyright © 2005-2009 The JOMC Project. All Rights Reserved.