Class Suffix Exclude Parameter
The Class Suffix Exclude Parameter dialog has two facets:
For a class to match a class suffix exclude parameter it must match the full specification.
If a class matches a class suffix exclude parameter
- the specification of the class whose name ends with the suffix and
- the specification of the package that contains the class
For example, for a class suffix exclude parameter
- its specified suffix is excluded from being renamed
- if a class
X can be found that has a name matching the non-suffix part of the matching class's name
then the non-suffix part of the matching class's name will be renamed to the new name of that the class
<link>_Stub, the suffix
will be excluded from being renamed in a hypothetical class named
Class1_Stub. If there is a class in the same package
Class1 and if when obfuscating,
Class1 is renamed to
abc, then the class
will be renamed to
The class suffix exclude parameter is useful for situations in the:
- RMI (e.g. the
_Skel suffixes) and
- Java Beans (e.g. the
Customizer suffixes) scenarios.
The class itself
In specifying the class whose suffix is to be excluded, you can specify:
- its suffix
- the fully qualified name of its superclass
- a comma separated list of fully qualified interface names that it implements.
The containing package
To specify the containing package, click the Containing package tab.
The dialog basically works the same way as the Package Exclude Parameter dialog.
The difference is that you are now specifying the package qualifiers of the class whose suffix is to be excluded.
If you clear the Name input field then you are specifying that the class is in the default package.
@pack2.MyAnnotation0 *.<link>_Stub extends java.rmi.server.RemoteStub
means exclude the suffix and link the non-suffix part of the names of classes that:
- are annotated by a class matching
- have a name the ends in
- are contained in a package that matches "*"