Zelix KlassMaster - Documentation

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.
Class Suffix Exclude Parameter - Class itself

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.
Class Suffix Exclude Parameter - Containing 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 "*"
Method Exclude Parameter Exclude Parameter Type