org.apache.jdo.tck.util.signature
Class SignatureVerifier

java.lang.Object
  extended byorg.apache.jdo.tck.util.signature.SignatureVerifier

public class SignatureVerifier
extends java.lang.Object

Tests classes for correct signatures.

Author:
Martin Zaun

Nested Class Summary
protected  class SignatureVerifier.Parser
          For parsing of signature descriptor files.
 
Field Summary
protected  java.lang.ClassLoader classLoader
          The classloader to be used for loading types.
protected  java.lang.Class cls
          The currently tested Class.
static java.util.List descrFileNames
          Command line arguments
protected  java.io.PrintWriter log
          A writer for standard output.
protected  java.util.Set members
          All untested, declared members of the current class.
protected static java.lang.String NL
          The new-line character on this system.
protected static java.io.PrintWriter out
          A writer for standard output.
protected  SignatureVerifier.Parser parser
          The parse to be used for parsing signature descriptor files.
 
Constructor Summary
SignatureVerifier(java.lang.ClassLoader loader, java.io.PrintWriter log, boolean quiet, boolean verbose)
          Constructs a test instance.
SignatureVerifier(java.io.PrintWriter log, boolean quiet, boolean verbose)
          Constructs a test instance.
 
Method Summary
protected  void checkClass(int mods, java.lang.String name, java.lang.String[] ext, java.lang.String[] impl)
          Validates a class declaration against a prescribed signature.
protected  void checkConstructor(int mods, java.lang.String[] params, java.lang.String[] excepts)
          Validates a constructor against a prescribed signature.
protected  void checkField(int mods, java.lang.String type, java.lang.String name, java.lang.String value)
          Validates a field against a prescribed signature.
protected  void checkMethod(int mods, java.lang.String result, java.lang.String name, java.lang.String[] params, java.lang.String[] excepts)
          Validates a method against a prescribed signature.
protected  java.lang.Class getClass(java.lang.String userTypeName)
          Returns the class object for a given (Java) user type name.
protected  java.lang.Class[] getClasses(java.lang.String[] userTypeName)
          Returns the class objects for given (Java) user type names.
protected  void handleMatch(java.lang.String msg, java.lang.String fnd)
          Handles a perfect feature match.
protected  void handleMismatch(java.lang.String msg, java.lang.String exp, java.lang.String fnd)
          Handles non-matching features.
protected  void handleMissing(java.lang.String msg, java.lang.String exp)
          Handles missing members.
protected  void handleNonStandard(java.lang.String msg, java.lang.String fnd)
          Handles public non-standard features.
protected  void handleNotLoading(java.lang.Throwable t)
          Handles class loading problems.
protected  void handleProblem(java.lang.String msg, java.lang.String exp)
          Handles other problems.
protected  void logError(java.lang.String msg)
          Prints an error message.
protected  void logInfo(java.lang.String msg)
          Prints an info message.
protected  void logVerbose(java.lang.String msg)
          Prints a verbose message.
static void main(java.lang.String[] args)
          Runs the signature test and exits with a status code.
static int parseArgs(java.lang.String[] args)
          Parses command line arguments.
protected  void postCheckClass()
          Runs checks on a class after its members have been validated.
static void printUsage()
          Prints the CLI usage.
 void report()
          Reports the results of the last signature test run.
 int test(java.util.List descrFileNames)
          Tests the signature of classes (in the specified classloader) against a list of signature descriptor files; returns with a status code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NL

protected static final java.lang.String NL
The new-line character on this system.


log

protected final java.io.PrintWriter log
A writer for standard output.


parser

protected final SignatureVerifier.Parser parser
The parse to be used for parsing signature descriptor files.


classLoader

protected final java.lang.ClassLoader classLoader
The classloader to be used for loading types.


cls

protected java.lang.Class cls
The currently tested Class.


members

protected final java.util.Set members
All untested, declared members of the current class.


out

protected static java.io.PrintWriter out
A writer for standard output.


descrFileNames

public static final java.util.List descrFileNames
Command line arguments

Constructor Detail

SignatureVerifier

public SignatureVerifier(java.lang.ClassLoader loader,
                         java.io.PrintWriter log,
                         boolean quiet,
                         boolean verbose)
Constructs a test instance.


SignatureVerifier

public SignatureVerifier(java.io.PrintWriter log,
                         boolean quiet,
                         boolean verbose)
Constructs a test instance.

Method Detail

logError

protected void logError(java.lang.String msg)
Prints an error message.


logInfo

protected void logInfo(java.lang.String msg)
Prints an info message.


logVerbose

protected void logVerbose(java.lang.String msg)
Prints a verbose message.


test

public int test(java.util.List descrFileNames)
         throws java.io.IOException,
                java.text.ParseException
Tests the signature of classes (in the specified classloader) against a list of signature descriptor files; returns with a status code.

Parameters:
descrFileNames - list of signature descriptor file names
Returns:
zero if all tests have passed and no problems were detected
Throws:
java.io.IOException
java.text.ParseException

report

public void report()
Reports the results of the last signature test run.


handleNotLoading

protected void handleNotLoading(java.lang.Throwable t)
Handles class loading problems.


handleMissing

protected void handleMissing(java.lang.String msg,
                             java.lang.String exp)
Handles missing members.


handleMismatch

protected void handleMismatch(java.lang.String msg,
                              java.lang.String exp,
                              java.lang.String fnd)
Handles non-matching features.


handleNonStandard

protected void handleNonStandard(java.lang.String msg,
                                 java.lang.String fnd)
Handles public non-standard features.


handleProblem

protected void handleProblem(java.lang.String msg,
                             java.lang.String exp)
Handles other problems.


handleMatch

protected void handleMatch(java.lang.String msg,
                           java.lang.String fnd)
Handles a perfect feature match.


getClasses

protected java.lang.Class[] getClasses(java.lang.String[] userTypeName)
Returns the class objects for given (Java) user type names.


getClass

protected java.lang.Class getClass(java.lang.String userTypeName)
Returns the class object for a given (Java) user type name.


checkField

protected void checkField(int mods,
                          java.lang.String type,
                          java.lang.String name,
                          java.lang.String value)
Validates a field against a prescribed signature.


checkConstructor

protected void checkConstructor(int mods,
                                java.lang.String[] params,
                                java.lang.String[] excepts)
Validates a constructor against a prescribed signature.


checkMethod

protected void checkMethod(int mods,
                           java.lang.String result,
                           java.lang.String name,
                           java.lang.String[] params,
                           java.lang.String[] excepts)
Validates a method against a prescribed signature.


checkClass

protected void checkClass(int mods,
                          java.lang.String name,
                          java.lang.String[] ext,
                          java.lang.String[] impl)
Validates a class declaration against a prescribed signature.


postCheckClass

protected void postCheckClass()
Runs checks on a class after its members have been validated.


printUsage

public static void printUsage()
Prints the CLI usage.


parseArgs

public static int parseArgs(java.lang.String[] args)
Parses command line arguments.


main

public static void main(java.lang.String[] args)
Runs the signature test and exits with a status code.



Copyright © 2005-2007 Apache Software Foundation. All Rights Reserved.