Clarify syntax for specifying parameter types in XML

Description

In 8.1.1.4 we currently say:

The parameter types are specified using their fully qualified name; If the default-package element is configured for the mapping file, any unqualified class names will be resolved using the given default package. Primitive types (int, long etc.) are referenced by specifying the corresponding keyword of the Java language.

This seems a bit vague when it comes to executables with array-typed arguments and var args parameters.

Proposal:

The parameter types are specified by their fully qualified name, using the syntax described in the documentation of java.lang.Class#getName(). Some examples:

  • "java.lang.String" must be specified for a parameter of type java.lang.String

  • "long" must be specified for a parameter of the primitive type long

  • "[Ljava.lang.Object;" must be specified for a parameter of the type java.lang.Object[]

Var args parameters are specified using the corresponding array type, e.g. a parameter "String..." must be specified as "[Ljava.lang.String;"

If the default-package element is configured for the mapping file, any unqualified class names will be resolved using the given default package.

TODO: Should we allow default-package for array types? That would require to parse and expand the given values.

Environment

None

Assignee

Emmanuel Bernard

Reporter

Gunnar Morling

Labels

None

Feedback Requested

None

Feedback Requested By

None

backPortable

None

Suitable for new contributors

None

Pull Request

None

backportDecision

None

backportReEvaluate

None

Components

Fix versions

Affects versions

Priority

Major
Configure