"Obfuscate Class Suffix Exclude Parameter" Window
Contents:
Use this dialog to create or modify a class suffix exclusion parameter.
The finished parameter will appear in the Obfuscate Name Exclusion window's "Exclusion parameter" list.
A class suffix exclusion parameter is a relatively complex and specialized exclusion parameter. It works in two stages.
If a class matches a class suffix exclusion parameter then
- its specified suffix is excluded from being renamed
- if a class X can be found that has an unqualified 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 class X.
Its operation is best explained with an example.
Consider a class suffix exclude parameter specifying the suffix "_Stub".
A hypothetical class named "Class1_Stub" matches the parameter so the suffix part of the name will be retained.
The non-suffix part of the matching class name "Class1_Stub" is "Class1".
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".
A class suffix exclusion parameter can be thought of as consisting of the following components (mandatory components in bold):
- package qualifiers
- suffix
- extends clause
- implements clause
For a class to match a given exclusion parameter, it must match all the components of the parameter.
You can modify the package qualifier component of the parameter by selecting the "Containing package" tab.
All the other components can be modified by selecting the "Class" tab.
Enter the package name. You may use the "*" wildcard. For example:
Parameter
|
Matches
|
*
|
any package name
|
pack1.pack2
|
only pack1.pack2
|
pack1.p*
|
any subpackages of pack1 that start with "p "
|
Enter the suffix to the class name that you wish to exclude from being removed when the class is renamed. An example of a suffix is "_Stub".
However, note that the standard RMI and java beans suffixes are handled automatically by
the default exclusions with which Zelix KlassMasterTM is initially shipped.
Optional. Enter the fully qualified class name that a matching class must directly or indirectly extend. You cannot use wildcards.
Optional. Enter the fully qualified interface names that a matching class must directly or indirectly implement.
If you specifiy more than one interface name then you must separate the names with commas. You cannot use wildcards.
Optional. Enter the fully qualified class name of an annotation that a matching class must have. You can use the "*" wildcard. Do not include the "@" character.
Displays the exclusion parameter specified so far in "ZKM Script" syntax.
Displays a plain language explanation of the effect of the exclusion parameter specified so far.
© 2019 Zelix Pty Ltd