Class BaseJsonBo

    • Field Detail

      • cacheJsonObjs

        protected java.util.Map<java.lang.String,​com.fasterxml.jackson.databind.JsonNode> cacheJsonObjs
    • Constructor Detail

      • BaseJsonBo

        public BaseJsonBo()
    • Method Detail

      • setAttribute

        public BaseJsonBo setAttribute​(java.lang.String attrName,
                                       java.lang.Object value)
        Set a BO's attribute.
        Overrides:
        setAttribute in class BaseBo
        Returns:
        Since:
        0.10.0
      • setAttribute

        public BaseJsonBo setAttribute​(java.lang.String attrName,
                                       java.lang.Object value,
                                       boolean triggerChange)
        Set a BO's attribute.
        Overrides:
        setAttribute in class BaseBo
        triggerChange - if set to true BaseBo.triggerChange(String) will be called
        Returns:
        Since:
        0.10.0
      • getAttribute

        public com.fasterxml.jackson.databind.JsonNode getAttribute​(java.lang.String attrName)
        Get a BO's attribute.
        Overrides:
        getAttribute in class BaseBo
        Returns:
      • getAttribute

        public <T> T getAttribute​(java.lang.String attrName,
                                  java.lang.Class<T> clazz)
        Get a BO's attribute.
        Overrides:
        getAttribute in class BaseBo
        Returns:
      • getAttributeOptional

        public <T> java.util.Optional<T> getAttributeOptional​(java.lang.String attrName,
                                                              java.lang.Class<T> clazz)
        Get a BO's attribute.
        Overrides:
        getAttributeOptional in class BaseBo
        Returns:
      • getAttributeAsDate

        public java.util.Date getAttributeAsDate​(java.lang.String attrName,
                                                 java.lang.String dateTimeFormat)
        Get a BO's attribute as a date. If the attribute value is a string, parse it as a Date using the specified date-time format.
        Overrides:
        getAttributeAsDate in class BaseBo
        Returns:
      • getSubAttr

        public com.fasterxml.jackson.databind.JsonNode getSubAttr​(java.lang.String attrName,
                                                                  java.lang.String dPath)
        Get a sub-attribute using d-path.
        Parameters:
        attrName -
        dPath -
        Returns:
        See Also:
        DPathUtils
      • getSubAttr

        public <T> T getSubAttr​(java.lang.String attrName,
                                java.lang.String dPath,
                                java.lang.Class<T> clazz)
        Get a sub-attribute using d-path.
        Parameters:
        attrName -
        dPath -
        clazz -
        Returns:
        See Also:
        DPathUtils
      • getSubAttrOptional

        public <T> java.util.Optional<T> getSubAttrOptional​(java.lang.String attrName,
                                                            java.lang.String dPath,
                                                            java.lang.Class<T> clazz)
        Get a sub-attribute using d-path.
        Parameters:
        attrName -
        dPath -
        clazz -
        Returns:
        Since:
        0.8.0
      • getSubAttrAsDate

        public java.util.Date getSubAttrAsDate​(java.lang.String attrName,
                                               java.lang.String dPath,
                                               java.lang.String dateTimeFormat)
        Get a sub-attribute as a date using d-path. If sub-attr's value is a string, parse it as a Date using the specified date-time format.
        Parameters:
        attrName -
        dPath -
        dateTimeFormat -
        Returns:
      • setSubAttr

        public BaseJsonBo setSubAttr​(java.lang.String attrName,
                                     java.lang.String dPath,
                                     java.lang.Object value)
        Set a sub-attribute.
        Parameters:
        attrName -
        value -
        Returns:
      • removeSubAttr

        public BaseJsonBo removeSubAttr​(java.lang.String attrName,
                                        java.lang.String dPath)
        Remove a sub-attribute.
        Parameters:
        attrName -
        dPath -
        Returns:
      • triggerChange

        protected void triggerChange​(java.lang.String attrName)
        Called when one of BO's attributes is changed (added, updated or removed).
        Overrides:
        triggerChange in class BaseBo
      • triggerPopulate

        protected void triggerPopulate()
        Called when the BO's entire attribute set are (re)populated.
        Overrides:
        triggerPopulate in class BaseBo
      • checksum

        protected long checksum()
        Sub-class may override this method to implement its own business logic.

        This method is called by BaseBo.calcChecksum(), no need to implement lock/synchronization

        Overrides:
        checksum in class BaseBo
        Returns:
        Since:
        0.10.0