Annotation Interface InverseRelationShadowVariable


@Target({METHOD,FIELD}) @Retention(RUNTIME) public @interface InverseRelationShadowVariable
Specifies that a bean property (or a field) is the inverse of a PlanningVariable, which implies it's a shadow variable.

It is specified on a getter of a java bean property (or a field) of a PlanningEntity class.

  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    In a bidirectional relationship, the shadow side (= the follower side) uses this property (and nothing else) to declare for which PlanningVariable (= the leader side) it is a shadow.
  • Element Details

    • sourceVariableName

      String sourceVariableName
      In a bidirectional relationship, the shadow side (= the follower side) uses this property (and nothing else) to declare for which PlanningVariable (= the leader side) it is a shadow.

      Both sides of a bidirectional relationship should be consistent: if A points to B, then B must point to A.

      When the Solver changes a genuine variable, it adjusts the shadow variable accordingly. In practice, the Solver ignores shadow variables (except for consistency housekeeping).

      Returns:
      the variable property name on the opposite end of this bidirectional relationship