org.jmock.lib

## Class JavaReflectionImposteriser

- java.lang.Object
- - org.jmock.lib.JavaReflectionImposteriser

All Implemented Interfaces:
  Imposteriser

    public class JavaReflectionImposteriser
    extends Object
    implements Imposteriser

An `Imposteriser` that uses the `Proxy` class of the Java Reflection API.

Author:
  npryce

### Field Summary

Fields
`static Imposteriser` `INSTANCE`

### Constructor Summary

Constructors
Constructor and Description
`JavaReflectionImposteriser()`

### Method Summary

Methods
`boolean` `canImposterise(Class<?> type)` Reports if the Imposteriser is able to imposterise a given type.
`<T> T` `imposterise(Invokable mockObject, Class<T> mockedType, Class<?>... ancilliaryTypes)` Creates an imposter for a given type that forwards `Invocation`s to an `Invokable` object.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### INSTANCE

    public static final Imposteriser INSTANCE

### Constructor Detail

#### JavaReflectionImposteriser

    public JavaReflectionImposteriser()

### Method Detail

#### canImposterise

    public boolean canImposterise(Class<?> type)

Description copied from interface: `Imposteriser`
Reports if the Imposteriser is able to imposterise a given type.

Specified by:
  `canImposterise` in interface `Imposteriser`
Parameters:
  `type` - The type in question.
Returns:
  True if this imposteriser can imposterise type, false otherwise.

#### imposterise

    public <T> T imposterise(Invokable mockObject,
                    Class<T> mockedType,
                    Class<?>... ancilliaryTypes)

Description copied from interface: `Imposteriser`
Creates an imposter for a given type that forwards `Invocation`s to an `Invokable` object.

Specified by:
  `imposterise` in interface `Imposteriser`
Type Parameters:
  `T` - The static type of the imposter that is created.
Parameters:
  `mockObject` - The object that is to receive invocations forwarded from the imposter.
  `mockedType` - The class representing the static type of the imposter.
  `ancilliaryTypes` - Other types for the imposter. It must be possible to dynamically cast the imposter to these types. These types must all be interfaces because Java only allows single inheritance of classes.
Returns:
  A new imposter. The imposter must implement the mockedType and all the ancialliaryTypes.