Class AuditApplication


  • public class AuditApplication
    extends java.lang.Object
    Helper class that wraps the audit application. Once wrapped, client code doesn't need access to any of the generated model-driven classes.
    Since:
    3.2
    Author:
    Derek Hulley
    • Field Detail

      • AUDIT_APPLICATION_PREFIX_FOR_PRE_DATA

        public static final java.lang.String AUDIT_APPLICATION_PREFIX_FOR_PRE_DATA
        See Also:
        Constant Field Values
      • AUDIT_PATH_SEPARATOR

        public static final java.lang.String AUDIT_PATH_SEPARATOR
        See Also:
        Constant Field Values
      • AUDIT_KEY_PATTERN

        public static final java.util.regex.Pattern AUDIT_KEY_PATTERN
      • AUDIT_PATH_PATTERN

        public static final java.util.regex.Pattern AUDIT_PATH_PATTERN
      • AUDIT_INVALID_PATH_COMP_CHAR_PATTERN

        public static final java.util.regex.Pattern AUDIT_INVALID_PATH_COMP_CHAR_PATTERN
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getApplicationName

        public java.lang.String getApplicationName()
        Get the application name
      • getApplicationKey

        public java.lang.String getApplicationKey()
        Get the key (root path) for the application
      • getApplicationId

        public java.lang.Long getApplicationId()
        Get the database ID for this application
      • getDisabledPathsId

        public java.lang.Long getDisabledPathsId()
        Get the property representing the set of disabled paths for the application
        Returns:
        Returns an ID of disabled paths
      • checkPath

        public void checkPath​(java.lang.String path)
        Helper method to check that a path is correct for this application instance
        Parameters:
        path - the path in format /app-key/x/y/z
        Throws:
        AuditModelException - if the path is invalid
        See Also:
        AUDIT_PATH_PATTERN
      • checkPathFormat

        public static void checkPathFormat​(java.lang.String path)
        Helper method to check that a path is correct for this application instance
        Parameters:
        path - the path in format /app-key/x/y/z
        Throws:
        AuditModelException - if the path is invalid
        See Also:
        AUDIT_PATH_PATTERN
      • buildPath

        public static java.lang.String buildPath​(java.lang.String... pathComponents)
        Compile a path or part of a path into a single string which always starts with the AUDIT_PATH_SEPARATOR. This can be a relative path so need not always start with the application root key.

        If the path separator is present at the beginning of a path component, then it is not added, so "/a", "b", "/c" becomes "/a/b/c" allowing path to be appended to other paths.

        The final result is checked against a regular expression to ensure it is valid.

        Parameters:
        pathComponents - the elements of the path e.g. "a", "b", "c".
        Returns:
        Returns the compiled path e.g "/a/b/c".
      • getRootKey

        public static java.lang.String getRootKey​(java.lang.String path)
        Parameters:
        path - the audit path for form /abc/def
        Returns:
        the root key of form abc
      • getDataExtractors

        public java.util.List<AuditApplication.DataExtractorDefinition> getDataExtractors()
        Get all data extractors applicable to this application.
        Returns:
        Returns all data extractors contained in the application
      • getDataGenerators

        public java.util.Map<java.lang.String,​DataGenerator> getDataGenerators​(java.lang.String path)
        Get all data generators applicable to a given path and scope.
        Parameters:
        path - the audit path
        Returns:
        Returns all data generators mapped to their key-path
      • getDataGenerators

        public java.util.Map<java.lang.String,​DataGenerator> getDataGenerators​(java.util.Set<java.lang.String> paths)
        Get all data generators applicable to a given path and scope.
        Parameters:
        paths - the audit paths
        Returns:
        Returns all data generators mapped to their key-path
      • isApplicationJustGeneratingPreCallData

        public boolean isApplicationJustGeneratingPreCallData()
        Returns true if the application name has a prefix of "PreCallData" that indicates that the only purpose of the Application is to generate data to be passed to a post call audit application. In this situation the application's audit data is not audited. This allows the post audit application to have access to 'before' values including those created by extractors and generators. Some of which will not be available (for example the node has been deleted) or will have changed as a result of the call.