org.apache.velocity.tools.generic

## Class ClassTool.CallableSub<T extends ClassTool.CallableSub>

- java.lang.Object
- - org.apache.velocity.tools.generic.ClassTool.Sub<T>
  - - org.apache.velocity.tools.generic.ClassTool.CallableSub<T>

All Implemented Interfaces:
  Comparable<T>

Direct Known Subclasses:
  ClassTool.ConstructorSub, ClassTool.MethodSub

Enclosing class:
  ClassTool

    public abstract static class ClassTool.CallableSub<T extends ClassTool.CallableSub>
    extends ClassTool.Sub<T>

### Field Summary

Fields
`protected String` `javadocRef`
`protected String` `signature`
`protected String` `uniqueName`

### Constructor Summary

Constructors
Constructor and Description
`CallableSub()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`String` `getJavadocRef()`
`int` `getParameterCount()` Returns the number of expected parameters.
`abstract Class[]` `getParameters()`
`String` `getSignature()` Get (and cache) inspected callable signature
`String` `getUniqueName()` Build a unique method/ctor name by appending the simple names of the expected parameter types, thereby distinguishing constructors and overloaded methods with a useful name that would still be a valid method name.
`abstract boolean` `isVarArgs()`
`protected String` `signature(boolean fullNames)` Internal method to get the inspected callable signature.
`boolean` `takesParameters()`

### Methods inherited from class org.apache.velocity.tools.generic.ClassTool.Sub

`compareTo, equals, getAnnotations, getElement, getModifiers, getName, getSubType, hashCode, isAbstract, isDeprecated, isFinal, isInterface, isNative, isPrivate, isProtected, isPublic, isStatic, isStrict, isSynchronized, isTransient, isVolatile, toString`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### uniqueName

    protected String uniqueName

#### javadocRef

    protected String javadocRef

#### signature

    protected String signature

### Constructor Detail

#### CallableSub

    public CallableSub()

### Method Detail

#### getParameters

    public abstract Class[] getParameters()

#### isVarArgs

    public abstract boolean isVarArgs()

#### takesParameters

    public boolean takesParameters()

Returns:
  whether the inspected callable takes parameters

#### getParameterCount

    public int getParameterCount()

Returns the number of expected parameters. If this method or constructor is declared with varargs, the vararg only counts as one.

Returns:
  inspected callable parameters count

#### getUniqueName

    public String getUniqueName()

Build a unique method/ctor name by appending the simple names of the expected parameter types, thereby distinguishing constructors and overloaded methods with a useful name that would still be a valid method name. This is particularly useful for generating JUnit test method names.

Specified by:
  `getUniqueName` in class `ClassTool.Sub<T extends ClassTool.CallableSub>`
Returns:
  inspected callable unique name

#### getSignature

    public String getSignature()

Get (and cache) inspected callable signature

Returns:
  inspected callable signature

#### getJavadocRef

    public String getJavadocRef()

Specified by:
  `getJavadocRef` in class `ClassTool.Sub<T extends ClassTool.CallableSub>`
Returns:
  inspected callable javadoc ref

#### signature

    protected String signature(boolean fullNames)

Internal method to get the inspected callable signature.

Parameters:
  `fullNames` - whether to use full names
Returns:
  inspected callable signature