Class Violation

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<Violation>

    public final class Violation
    extends java.lang.Object
    implements java.lang.Comparable<Violation>, java.io.Serializable
    Represents a violation that can be localised. The translations come from message.properties files. The underlying implementation uses java.text.MessageFormat.
    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Violation.Utf8Control
      Custom ResourceBundle.Control implementation which allows explicitly read the properties files as UTF-8.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.Object[] args
      Arguments for MessageFormat.
      private java.lang.String bundle
      Name of the resource bundle to get violations from.
      private static java.util.Map<java.lang.String,​java.util.ResourceBundle> BUNDLE_CACHE
      A cache that maps bundle names to ResourceBundles.
      private int columnCharIndex
      The column char index.
      private int columnNo
      The column number.
      private java.lang.String customMessage
      A custom violation overriding the default violation from the bundle.
      private static SeverityLevel DEFAULT_SEVERITY
      The default severity level if one is not specified.
      private java.lang.String key
      Key for the violation format.
      private int lineNo
      The line number.
      private java.lang.String moduleId
      The id of the module generating the violation.
      private static long serialVersionUID
      A unique serial version identifier.
      private SeverityLevel severityLevel
      The severity level.
      private static java.util.Locale sLocale
      The locale to localise violations to.
      private java.lang.Class<?> sourceClass
      Class of the source for this Violation.
      private int tokenType
      The token type constant.
    • Constructor Summary

      Constructors 
      Constructor Description
      Violation​(int lineNo, int columnNo, int columnCharIndex, int tokenType, java.lang.String bundle, java.lang.String key, java.lang.Object[] args, SeverityLevel severityLevel, java.lang.String moduleId, java.lang.Class<?> sourceClass, java.lang.String customMessage)
      Creates a new Violation instance.
      Violation​(int lineNo, int columnNo, int tokenType, java.lang.String bundle, java.lang.String key, java.lang.Object[] args, SeverityLevel severityLevel, java.lang.String moduleId, java.lang.Class<?> sourceClass, java.lang.String customMessage)
      Creates a new Violation instance.
      Violation​(int lineNo, int columnNo, java.lang.String bundle, java.lang.String key, java.lang.Object[] args, SeverityLevel severityLevel, java.lang.String moduleId, java.lang.Class<?> sourceClass, java.lang.String customMessage)
      Creates a new Violation instance.
      Violation​(int lineNo, int columnNo, java.lang.String bundle, java.lang.String key, java.lang.Object[] args, java.lang.String moduleId, java.lang.Class<?> sourceClass, java.lang.String customMessage)
      Creates a new Violation instance.
      Violation​(int lineNo, java.lang.String bundle, java.lang.String key, java.lang.Object[] args, SeverityLevel severityLevel, java.lang.String moduleId, java.lang.Class<?> sourceClass, java.lang.String customMessage)
      Creates a new Violation instance.
      Violation​(int lineNo, java.lang.String bundle, java.lang.String key, java.lang.Object[] args, java.lang.String moduleId, java.lang.Class<?> sourceClass, java.lang.String customMessage)
      Creates a new Violation instance.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static void clearCache()
      Clears the cache.
      int compareTo​(Violation other)  
      boolean equals​(java.lang.Object object)
      Indicates whether some other object is "equal to" this one.
      private java.util.ResourceBundle getBundle​(java.lang.String bundleName)
      Find a ResourceBundle for a given bundle name.
      int getColumnCharIndex()
      Gets the column char index.
      int getColumnNo()
      Gets the column number.
      private java.lang.String getCustomViolation()
      Returns the formatted custom violation if one is configured.
      java.lang.String getKey()
      Returns the violation key to locate the translation, can also be used in IDE plugins to map audit event violations to corrective actions.
      int getLineNo()
      Gets the line number.
      java.lang.String getModuleId()
      Returns id of module.
      SeverityLevel getSeverityLevel()
      Gets the severity level.
      java.lang.String getSourceName()
      Gets the name of the source for this Violation.
      int getTokenType()
      Gets the token type.
      java.lang.String getViolation()
      Gets the translated violation.
      int hashCode()  
      static void setLocale​(java.util.Locale locale)
      Sets a locale to use for localization.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        A unique serial version identifier.
        See Also:
        Constant Field Values
      • BUNDLE_CACHE

        private static final java.util.Map<java.lang.String,​java.util.ResourceBundle> BUNDLE_CACHE
        A cache that maps bundle names to ResourceBundles. Avoids repetitive calls to ResourceBundle.getBundle().
      • DEFAULT_SEVERITY

        private static final SeverityLevel DEFAULT_SEVERITY
        The default severity level if one is not specified.
      • sLocale

        private static java.util.Locale sLocale
        The locale to localise violations to.
      • lineNo

        private final int lineNo
        The line number.
      • columnNo

        private final int columnNo
        The column number.
      • columnCharIndex

        private final int columnCharIndex
        The column char index.
      • tokenType

        private final int tokenType
        The token type constant. See TokenTypes.
      • severityLevel

        private final SeverityLevel severityLevel
        The severity level.
      • moduleId

        private final java.lang.String moduleId
        The id of the module generating the violation.
      • key

        private final java.lang.String key
        Key for the violation format.
      • args

        private final java.lang.Object[] args
        Arguments for MessageFormat.
      • bundle

        private final java.lang.String bundle
        Name of the resource bundle to get violations from.
      • sourceClass

        private final java.lang.Class<?> sourceClass
        Class of the source for this Violation.
      • customMessage

        private final java.lang.String customMessage
        A custom violation overriding the default violation from the bundle.
    • Constructor Detail

      • Violation

        public Violation​(int lineNo,
                         int columnNo,
                         int columnCharIndex,
                         int tokenType,
                         java.lang.String bundle,
                         java.lang.String key,
                         java.lang.Object[] args,
                         SeverityLevel severityLevel,
                         java.lang.String moduleId,
                         java.lang.Class<?> sourceClass,
                         java.lang.String customMessage)
        Creates a new Violation instance.
        Parameters:
        lineNo - line number associated with the violation
        columnNo - column number associated with the violation
        columnCharIndex - column char index associated with the violation
        tokenType - token type of the event associated with violation. See TokenTypes
        bundle - resource bundle name
        key - the key to locate the translation
        args - arguments for the translation
        severityLevel - severity level for the violation
        moduleId - the id of the module the violation is associated with
        sourceClass - the Class that is the source of the violation
        customMessage - optional custom violation overriding the default
      • Violation

        public Violation​(int lineNo,
                         int columnNo,
                         int tokenType,
                         java.lang.String bundle,
                         java.lang.String key,
                         java.lang.Object[] args,
                         SeverityLevel severityLevel,
                         java.lang.String moduleId,
                         java.lang.Class<?> sourceClass,
                         java.lang.String customMessage)
        Creates a new Violation instance.
        Parameters:
        lineNo - line number associated with the violation
        columnNo - column number associated with the violation
        tokenType - token type of the event associated with violation. See TokenTypes
        bundle - resource bundle name
        key - the key to locate the translation
        args - arguments for the translation
        severityLevel - severity level for the violation
        moduleId - the id of the module the violation is associated with
        sourceClass - the Class that is the source of the violation
        customMessage - optional custom violation overriding the default
      • Violation

        public Violation​(int lineNo,
                         int columnNo,
                         java.lang.String bundle,
                         java.lang.String key,
                         java.lang.Object[] args,
                         SeverityLevel severityLevel,
                         java.lang.String moduleId,
                         java.lang.Class<?> sourceClass,
                         java.lang.String customMessage)
        Creates a new Violation instance.
        Parameters:
        lineNo - line number associated with the violation
        columnNo - column number associated with the violation
        bundle - resource bundle name
        key - the key to locate the translation
        args - arguments for the translation
        severityLevel - severity level for the violation
        moduleId - the id of the module the violation is associated with
        sourceClass - the Class that is the source of the violation
        customMessage - optional custom violation overriding the default
      • Violation

        public Violation​(int lineNo,
                         int columnNo,
                         java.lang.String bundle,
                         java.lang.String key,
                         java.lang.Object[] args,
                         java.lang.String moduleId,
                         java.lang.Class<?> sourceClass,
                         java.lang.String customMessage)
        Creates a new Violation instance.
        Parameters:
        lineNo - line number associated with the violation
        columnNo - column number associated with the violation
        bundle - resource bundle name
        key - the key to locate the translation
        args - arguments for the translation
        moduleId - the id of the module the violation is associated with
        sourceClass - the Class that is the source of the violation
        customMessage - optional custom violation overriding the default
      • Violation

        public Violation​(int lineNo,
                         java.lang.String bundle,
                         java.lang.String key,
                         java.lang.Object[] args,
                         SeverityLevel severityLevel,
                         java.lang.String moduleId,
                         java.lang.Class<?> sourceClass,
                         java.lang.String customMessage)
        Creates a new Violation instance.
        Parameters:
        lineNo - line number associated with the violation
        bundle - resource bundle name
        key - the key to locate the translation
        args - arguments for the translation
        severityLevel - severity level for the violation
        moduleId - the id of the module the violation is associated with
        sourceClass - the source class for the violation
        customMessage - optional custom violation overriding the default
      • Violation

        public Violation​(int lineNo,
                         java.lang.String bundle,
                         java.lang.String key,
                         java.lang.Object[] args,
                         java.lang.String moduleId,
                         java.lang.Class<?> sourceClass,
                         java.lang.String customMessage)
        Creates a new Violation instance. The column number defaults to 0.
        Parameters:
        lineNo - line number associated with the violation
        bundle - name of a resource bundle that contains audit event violations
        key - the key to locate the translation
        args - arguments for the translation
        moduleId - the id of the module the violation is associated with
        sourceClass - the name of the source for the violation
        customMessage - optional custom violation overriding the default
    • Method Detail

      • getLineNo

        public int getLineNo()
        Gets the line number.
        Returns:
        the line number
      • getColumnNo

        public int getColumnNo()
        Gets the column number.
        Returns:
        the column number
      • getColumnCharIndex

        public int getColumnCharIndex()
        Gets the column char index.
        Returns:
        the column char index
      • getTokenType

        public int getTokenType()
        Gets the token type.
        Returns:
        the token type
      • getSeverityLevel

        public SeverityLevel getSeverityLevel()
        Gets the severity level.
        Returns:
        the severity level
      • getModuleId

        public java.lang.String getModuleId()
        Returns id of module.
        Returns:
        the module identifier.
      • getKey

        public java.lang.String getKey()
        Returns the violation key to locate the translation, can also be used in IDE plugins to map audit event violations to corrective actions.
        Returns:
        the violation key
      • getSourceName

        public java.lang.String getSourceName()
        Gets the name of the source for this Violation.
        Returns:
        the name of the source for this Violation
      • setLocale

        public static void setLocale​(java.util.Locale locale)
        Sets a locale to use for localization.
        Parameters:
        locale - the locale to use for localization
      • clearCache

        public static void clearCache()
        Clears the cache.
      • equals

        public boolean equals​(java.lang.Object object)
        Indicates whether some other object is "equal to" this one. Suppression on enumeration is needed so code stays consistent.
        Overrides:
        equals in class java.lang.Object
      • hashCode

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

        public int compareTo​(Violation other)
        Specified by:
        compareTo in interface java.lang.Comparable<Violation>
      • getViolation

        public java.lang.String getViolation()
        Gets the translated violation.
        Returns:
        the translated violation
      • getCustomViolation

        private java.lang.String getCustomViolation()
        Returns the formatted custom violation if one is configured.
        Returns:
        the formatted custom violation or null if there is no custom violation
      • getBundle

        private java.util.ResourceBundle getBundle​(java.lang.String bundleName)
        Find a ResourceBundle for a given bundle name. Uses the classloader of the class emitting this violation, to be sure to get the correct bundle.
        Parameters:
        bundleName - the bundle name
        Returns:
        a ResourceBundle