ozone core API

org.ozoneDB.tools.OPP.srcgen.direct
Class ReflectionClassDirector

java.lang.Object
  extended byorg.ozoneDB.tools.OPP.srcgen.direct.ReflectionClassDirector
All Implemented Interfaces:
ClassDirector

public class ReflectionClassDirector
extends java.lang.Object
implements ClassDirector

This ClassDirector uses reflection as the foundation of directs. In order to determine the LockLevel of the different methods the Director can be paired with an UpdateMethodResolver..

Author:
Joakim Ohlrogge

Field Summary
private  java.lang.Class filterInterface
           
private  MessageWriter msgWriter
           
private  java.util.Set processedMethods
           
private  MethodResolver resolver
           
 
Constructor Summary
ReflectionClassDirector(MessageWriter msgListener, MethodResolver resolver)
           
ReflectionClassDirector(MessageWriter msgListener, MethodResolver resolver, java.lang.Class filterInterface)
           
 
Method Summary
 void build(java.lang.String fullClassName, ClassBuilder builder)
           
private  void buildMethodsDeep(java.lang.Class itf, ClassBuilder builder, java.util.Map updateMethods)
           
private  java.lang.String[] getClassNames(java.lang.Class[] types)
           
private  ClassBuilder.Parameter[] getParameters(java.lang.Class[] parameterTypes)
           
private  java.lang.String getSourcecodeClassName(java.lang.String cl)
          Returns the name of the class in the way it is used within resolver code.
private  boolean isProcessedAndMarkMethod(java.lang.reflect.Method method)
           
protected  java.lang.String typecodeForClass(java.lang.Class cl)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

resolver

private MethodResolver resolver

filterInterface

private java.lang.Class filterInterface

processedMethods

private java.util.Set processedMethods

msgWriter

private MessageWriter msgWriter
Constructor Detail

ReflectionClassDirector

public ReflectionClassDirector(MessageWriter msgListener,
                               MethodResolver resolver)

ReflectionClassDirector

public ReflectionClassDirector(MessageWriter msgListener,
                               MethodResolver resolver,
                               java.lang.Class filterInterface)
Method Detail

build

public void build(java.lang.String fullClassName,
                  ClassBuilder builder)
           throws BuilderException
Specified by:
build in interface ClassDirector
Throws:
BuilderException

buildMethodsDeep

private void buildMethodsDeep(java.lang.Class itf,
                              ClassBuilder builder,
                              java.util.Map updateMethods)
                       throws BuilderException
Throws:
BuilderException

isProcessedAndMarkMethod

private boolean isProcessedAndMarkMethod(java.lang.reflect.Method method)

getSourcecodeClassName

private java.lang.String getSourcecodeClassName(java.lang.String cl)
Returns the name of the class in the way it is used within resolver code. This is similar to the internal class name with the exception that names of inner classes separate between class levels not by '$' but by '.'.


getClassNames

private java.lang.String[] getClassNames(java.lang.Class[] types)

typecodeForClass

protected java.lang.String typecodeForClass(java.lang.Class cl)

getParameters

private ClassBuilder.Parameter[] getParameters(java.lang.Class[] parameterTypes)

ozone core API

Copyright (C) The Ozone Database Project - www.ozone-db.org. All rights reserved.