Class AdhocCode

  • All Implemented Interfaces:
    ReportCode

    public class AdhocCode
    extends java.lang.Object
    implements ReportCode
    ReportCode implementation which can be created at runtime. In general, use of this class should be avoided in favour of FixedCode (create as many new enum constants as you want) where possible, so that static determination of possible codes works as well as it can.
    Since:
    11 Jun 2014
    Author:
    Mark Taylor
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int LABEL_LENGTH
      Required length of labels.
    • Constructor Summary

      Constructors 
      Constructor Description
      AdhocCode​(ReportType type, java.lang.String label)
      Constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static AdhocCode createCodeFromText​(ReportType type, java.lang.String text)
      Uses some hash function to generate a report code from text.
      static java.lang.String createLabelChars​(java.lang.Object id, int nchar)
      Uses some hash function to generate a fixed-length character string from a supplied object.
      boolean equals​(java.lang.Object o)  
      java.lang.String getLabel()
      Returns the 4-character label of this code.
      ReportType getType()
      Returns the type of this code.
      int hashCode()  
      • Methods inherited from class java.lang.Object

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

      • LABEL_LENGTH

        public static final int LABEL_LENGTH
        Required length of labels.
        See Also:
        Constant Field Values
    • Constructor Detail

      • AdhocCode

        public AdhocCode​(ReportType type,
                         java.lang.String label)
        Constructor.
        Parameters:
        type - report type
        label - 4-character label
    • Method Detail

      • getLabel

        public java.lang.String getLabel()
        Description copied from interface: ReportCode
        Returns the 4-character label of this code.
        Specified by:
        getLabel in interface ReportCode
        Returns:
        4-character label
      • hashCode

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

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • createCodeFromText

        public static AdhocCode createCodeFromText​(ReportType type,
                                                   java.lang.String text)
        Uses some hash function to generate a report code from text. Probably unique, but not guaranteed to be.
        Parameters:
        type - report type
        text - message text
        Returns:
        suitable message code
      • createLabelChars

        public static java.lang.String createLabelChars​(java.lang.Object id,
                                                        int nchar)
        Uses some hash function to generate a fixed-length character string from a supplied object.
        Parameters:
        id - object to seed character generation
        nchar - number of characters required
        Returns:
        nchar-character string