Annotation Type Depends


  • @Retention(RUNTIME)
    @Target({FIELD,METHOD})
    public @interface Depends
    Declares that a property depends on other one(s).

    Applies to properties.

    OpenXava uses this info in order to know when to recalculate values of a property in the user interface.
    Example:

      @Depends("unitPrice")   
      public BigDecimal getUnitPriceInPesetas() {
        if (unitPrice == null) return null;
        return unitPrice.multiply(new BigDecimal("166.386")).setScale(0, BigDecimal.ROUND_HALF_UP);
      }
     
    In this case if the unitPrice changes in the user interface, the value of unitPriceInPesetas is recalculated and redisplayed.
    To define several properties, separate them using commas. To depend on a reference, use the qualified name of the key property (that is, for subfamily, use subfamily.number). Like this:
      @ManyToOne
      private Subfamily subfamily;
     
      @ManyToOne
      private Subfamily subfamilyTo;
     
      @Depends("subfamily.number, subfamilyTo.number") 
      public String getRangeDescription() {           
        int subfamilyNumber = getSubfamily() == null ? 0 : getSubfamily().getNumber();
        int subfamilyToNumber = getSubfamilyTo() == null ? 0 : getSubfamilyTo().getNumber();
        return "FROM SUBFAMILY " + subfamilyNumber + " TO SUBFAMILY " + subfamilyToNumber;
      }
     
    Since version 7.5.3, it is possible to indicate just the reference names, without the key. So, the above @Depends could also be written in this way:
      @Depends("subfamily, subfamilyTo") 
      public String getRangeDescription() {           
     
    Note: Since 7.5.3, we can use subfamily instead of subfamily.number for references.
    Author:
    Javier Paniza
    • Required Element Summary

      Required Elements 
      Modifier and Type Required Element Description
      java.lang.String value
      Comma separated list of the properties this property depend on.
    • Element Detail

      • value

        java.lang.String value
        Comma separated list of the properties this property depend on.