Basic Customization > Windchill Customization Basics > Customization Overview > Windchill Customization Points
  
Windchill Customization Points
Windchill is composed of thousands of Java classes. To help you focus your customization efforts, certain Windchill Java classes have been designated as belonging to the Windchill Supported API. To customize Windchill, you should interact only with the classes in the Windchill Supported API. The Javadoc provided with Windchill defines the Supported API.
Windchill Supported API
The Windchill Supported API includes those classes that customizers are meant to work with directly. A class might be in the Supported API because it is meant to be extended by customizers or, more likely, because it has some methods for customizers to call. Programming elements that are part of the Supported API will not be changed without notification and a deprecation period, whenever possible. The deprecation period for a particular supported API begins with release that the Javadoc for that element first declares that it is deprecated. The deprecation period ends when support for that release ends. For Windchill release maintenance information, see the PTC product calendar at this URL:
http://www.ptc.com/cs/product_calendar/PTC_Product_Calendar.htm
Classes, methods, and other programming elements that are not part of the Supported API should not be used directly by customizers. Those elements are subject to change without notification or a deprecation period.
To determine if a class, or one of its methods, is part of the Supported API, consult the Javadoc for that class. For each class, the Javadoc contains a Supported flag, and an Extendable flag. Individual methods within a Supported class may also be flagged as Supported.
If a class (or method) is flagged as Supported: true, it indicates that the class or method may be referenced by customized code. If a class is flagged as Extendable: true, it indicates that the class may be extended. For example, WTPart is both Supported and Extendable, as shown in the following illustration.
The fact that a class is part of the Supported API indicates that some part of it is meant to be used, or at least understood by customizers. The Javadoc for some classes is distributed for information purposes (and if that is the case, it should be clear from the Javadoc). A class is meant to be extended only if its Javadoc contains the line indicating “Extendable: true”. (Classes that can be extended are listed in Appendix B, Extendable Classes in the Windchill Supported API.)
Methods and other programming elements may also have a “Supported API” line in their Javadoc. If a class is not part of the Supported API, then neither are any of its methods. If a class is part of the Supported API, that does not indicate that its methods are, too. For a method to be part of the Supported API, its Javadoc must also state “Supported API: true”.