# Package org.apache.tapestry5.plastic

package org.apache.tapestry5.plastic
Plastic, Tapestry's component class transformation library based on ASM

- Related Packages
  Package
  Description
  org.apache.tapestry5
  Root package for Tapestry, containing common interfaces and data types used throughout the framework.
- Class
  Description
  AnnotationAccess
  Interface implemented by members that may hold annotations.
  ClassInstantiator<T>
  The end result of a class transformation is a ClassInstantiator that can be used to instantiate an instance of the transformed class.
  ClassType
  Identifies the type of class referenced in a `PlasticClassEvent`.
  ComputedValue<T>
  Provides an indirect, or computed, value.
  Condition
  Condition used with `InstructionBuilder.when(Condition, WhenCallback)`.
  ConstructorCallback
  Supplies construction-time logic for the class' constructor.
  FieldConduit<T>
  A `FieldConduit` is an object that effectively replaces the field in the instantiated object.
  FieldHandle
  Allows read/write access directly to a field (bypassing accessors).
  FieldValueProvider
  Interface that can be implemented to provide access to field values based on their name.
  InstanceContext
  Defines per-instance context values for a transformed PlasticClass.
  InstructionBuilder
  Simplifies the generation of method instructions for a particular method (or constructor), allowing bytecode to be created with a friendlier API that focuses on Java type names (names as they would appear in Java source) rather than JVM descriptors or internal names.
  InstructionBuilderCallback
  Used in various places to allow some code to be constructed under controlled circumstances.
  LocalVariable
  Variable available inside a `LocalVariableCallback`.
  LocalVariableCallback
  A callback for generating code where a local variable is in effect.
  MethodAdvice
  MethodAdvice is a special callback that is threaded into the implementation of a method.
  MethodAlreadyExistsException
  Exception raised when there's an attempt to create a method which already exists in a class.
  MethodDescription
  Describes a `PlasticMethod` in terms of a method name, a set of modifiers (public, private, static, final, etc.), a return type, types of method arguments, and types of checked exceptions.
  MethodHandle
  Similiar to `Method`, this allows a method of a Plastic class to be invoked regardless of visibility.
  MethodInvocation
  A representation of the invocation of a method that allows the behavior of the method to be advised: either by changing parameter values, or by changing the return value, or by catch or throwing different exceptions.
  MethodInvocationResult
  The result of a method invocation, which encapsulates the actual return value (if any), as well as any checked exception.
  MethodParameter
  Access to the parameters of a method, in particular, any visible annotations on that method.
  Opcodes
  Used to document the `InstructionBuilder` and `TryCatchBlock`
  PlasticClass
  The representation of a class while it is being instrumented and transformed.
  PlasticClassEvent
  Describes a transformed class about to be loaded.
  PlasticClassListener
  Allows a listener to be notified about classes about to be loaded by the manager's class loader.
  PlasticClassListenerHub
  Methods for adding and removing `PlasticClassListener`s .
  PlasticClassTransformation<T>
  A wrapper around a `PlasticClass` that allows the class to be converted into a concrete class, once all transformations are complete.
  PlasticClassTransformer
  Interface for defining how a `PlasticClass` is transformed.
  PlasticConstants
  PlasticField
  Represents a field of a class being transformed.
  PlasticManager
  Manages the internal class loaders and other logics necessary to load and transform existing classes, or to create new classes dynamically at runtime.
  PlasticManager.PlasticManagerBuilder
  A builder object for configuring the PlasticManager before instantiating it.
  PlasticManagerDelegate
  Delegate to the `PlasticManager` that performs the actual transformations of the class.
  PlasticMethod
  A method of a transformed class.
  PlasticUtils
  Utilities for user code making use of Plastic.
  PlasticUtils.FieldInfo
  Class used to represent a field name and its type for PlasticUtils.implementFieldValueProvider(PlasticClass, Set).
  PropertyAccessType
  Used when converting a field into a property (that is, adding accessor methods for the field) to identify which method(s) to create (a getter to access the value and/or a mutator to modify the value).
  PropertyValueProvider
  Interface that can be implemented to provide access to field values based on their name.
  SwitchBlock
  Support for building the equivalent of a Java switch statement.
  SwitchCallback
  A callback used by a `SwitchBlock` to manage the generation of code.
  TransformationOption
  Options used when transforming classes.
  TryCatchBlock
  Allows a portion of a method to be marked so that exception and finally handlers can be provided.
  TryCatchCallback
  A callback used with `InstructionBuilder.startTryCatch(TryCatchCallback)`.
  WhenCallback
  Used with `InstructionBuilder.when(Condition, WhenCallback)`.
  WhileCallback
  Callback used with `InstructionBuilder.doWhile(Condition, WhileCallback)`.