Annotation Interface GenAsUnPersistable


@Retention(CLASS) @Target(TYPE) @Documented public @interface GenAsUnPersistable
Provides basic generation support for properties. This annotation exists primarily to support interfaces that are themselves not Persistable but are implemented by both persistent and non-persistent classes, but it is also used by non-persistent classes that are Evolvable to assist in implementing evolvability.

Notes:

  • A compiler error will be issued if an annotated class extends/implements ObjectMappable/Persistable
  • If a class implements an interface that is GenAsUnPersistable but is not GenAsUnPersistable itself, the properties will not be generated into the class
  • If a Persistable class implements an interface that is GenAsUnPersistable, the properties of the interface will be persisted (unless false is specified for ColumnProperties.persistent())
  • ClassInfo files will be generated for interfaces and classes annotated by this annotation.

Supported API: true

  • Element Details

    • superClass

      Class superClass
      The parent class for this class. This class would normally be the class designated by the extends statement and is needed because the annotated class must extend "_"+classname" (for example public MyClass extends _MyClass).

      Note: you need only specify a parent if you're a "real", non-persistent class extending a base class and implementing a GenAsUnPersistable interface and you want the accessors generated for you. This should rarely occur.

      Rose conversion note: Corresponds to Class Specification -> Relations -> Specialize Class (where the specialized class is the single (non-interface) parent class).

      Supported API: true

      Default:
      java.lang.Object.class
    • interfaces

      Class[] interfaces
      The interfaces this class/interface extends/implements. These interfaces would normally be present in the extends clause (for an interface) or the implements clause (for a class), but must, instead, be present in this property because of the manner in which Java treats static final fields.

      Rose conversion note: Corresponds to Class Specification -> Relations -> Specialize Class (where the specialized class is the single (non-interface) parent class).

      Supported API: true

      Default:
      {}
    • properties

      GeneratedProperty[] properties
      A list of properties to generate. These properties will be generated into the interface and/or concrete class.

      Rose conversion note: Corresponds to Class Specification -> Attributes.

      Supported API: true

      Default:
      {}
    • derivedProperties

      DerivedProperty[] derivedProperties
      Derived properties of this unpersistable. May refer to any of the properties ( GeneratedProperty) of this unpersistable or interfaces/parent classes.

      Supported API: true

      Default:
      {}
    • serializable

      Serialization serializable
      Indicates how/if the annotated class should be serialized.

      Rose conversion note: Corresponds to Class Specification -> Windchill -> Serializable.

      Supported API: true

      Default:
      EXTERNALIZABLE_BASIC
    • extendable

      boolean extendable
      Indicates whether this class is supported for customization. Note that this property is validated during customization compilation: customers will get a compilation error if they attempt to extend a non-extendable class.

      Supported API: true

      Default:
      false
    • versions

      long[] versions
      A list of externalization version UIDs needed to support deserialization of old versions of this class.

      Supported API: true

      Default:
      {}
    • tableProperties

      TableProperties tableProperties
      Specifies table's name, table space, and size as well as indexes and unique indexes.

      Rose conversion note: Corresponds to Class Specification -> Windchill -> Datastore properties.

      Supported API: true

      Default:
      @com.ptc.windchill.annotations.metadata.TableProperties