Class Suffix Exclude Parameter
|
|
The Class Suffix Exclude Parameter dialog has two facets:
- the specification of the class whose name ends with the suffix and
- the specification of the package that contains the class
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
- 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 X .
For example, for a class suffix exclude parameter <link>_Stub , the suffix _Stub
will be excluded from being renamed in a hypothetical class named Class1_Stub . If there is a class in the same package
named Class1 and if when obfuscating, Class1 is renamed to abc , then the class Class1_Stub
will be renamed to abc_Stub .
The class suffix exclude parameter is useful for situations in the:
- RMI (e.g. the
_Stub and _Skel suffixes) and
- Java Beans (e.g. the
BeanInfo and 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.
|
|
|
An example
The specification:
@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
pack2.MyAnnotation0
- have a name the ends in
_Stub
- extend
java.rmi.server.RemoteStub
- are contained in a package that matches "*"
|