Class BaseBuilder

java.lang.Object
org.refcodes.codec.BaseBuilder
All Implemented Interfaces:
BaseMetricsAccessor, BaseMetricsAccessor.BaseMetricsBuilder<BaseBuilder>, BaseMetricsAccessor.BaseMetricsMutator, BaseMetricsAccessor.BaseMetricsProperty

The BaseBuilder provides the functionality to do base encoding and decoding such as done by the Base64 encoding and decoding functionality (see "https://en.wikipedia.org/wiki/Base64"). The BaseBuilder makes use of the utility-Builder-Pattern and is designed to support codes starting with Base2 till Base64 and further up.
  • Constructor Details

    • BaseBuilder

      public BaseBuilder()
  • Method Details

    • withBaseMetrics

      public BaseBuilder withBaseMetrics(BaseMetrics aBaseMetricsCodec)
      Sets the base codec metrics for the base codec metrics property.
      Specified by:
      withBaseMetrics in interface BaseMetricsAccessor.BaseMetricsBuilder<BaseBuilder>
      Parameters:
      aBaseMetricsCodec - The base codec metrics to be stored by the font style property.
      Returns:
      The builder for applying multiple build operations.
    • setBaseMetrics

      public void setBaseMetrics(int aNumberBase)
      Sets the number base for the number base property.
      Parameters:
      aNumberBase - The number base to be stored by the base codec metrics property.
    • withBaseMetrics

      public BaseBuilder withBaseMetrics(int aNumberBase)
      Sets the number base for the number base property.
      Parameters:
      aNumberBase - The number base to be stored by the base codec metrics property.
      Returns:
      The builder for applying multiple build operations.
    • toEncodedText

      public String toEncodedText(String aDecodedData)
      Retrieves the encoded text calculated from the decoded data. This method is to be side effect free in terms of the decoded data (and the encoded result) is not part of the state for this instance (from the point of view of this method). Still changing for example the BaseMetrics via withBaseMetrics(BaseMetrics) can cause side effects! For avoiding thread race conditions / side effects regarding the decoded data (and the encoded result), use this method instead of the combination of withDecodedData(byte[]) with getEncodedText()
      Parameters:
      aDecodedData - The decoded data to be encoded.
      Returns:
      The encoded text calculated from the decoded data.
    • toEncodedText

      public String toEncodedText(String aDecodedData, Charset aCharset)
      Retrieves the encoded text calculated from the decoded data. This method is to be side effect free in terms of the decoded data (and the encoded result) is not part of the state for this instance (from the point of view of this method). Still changing for example the BaseMetrics via withBaseMetrics(BaseMetrics) can cause side effects! For avoiding thread race conditions / side effects regarding the decoded data (and the encoded result), use this method instead of the combination of withDecodedData(byte[]) with getEncodedText()
      Parameters:
      aDecodedData - The decoded data to be encoded.
      aCharset - The charset to use when interpreting the decoded data string.
      Returns:
      The encoded text calculated from the decoded data.
    • toEncodedText

      public String toEncodedText(String aDecodedData, String aCharset) throws UnsupportedEncodingException
      Retrieves the encoded text calculated from the decoded data. This method is to be side effect free in terms of the decoded data (and the encoded result) is not part of the state for this instance (from the point of view of this method). Still changing for example the BaseMetrics via withBaseMetrics(BaseMetrics) can cause side effects! For avoiding thread race conditions / side effects regarding the decoded data (and the encoded result), use this method instead of the combination of withDecodedData(byte[]) with getEncodedText()
      Parameters:
      aDecodedData - The decoded data to be encoded.
      aCharset - The charset to use when interpreting the decoded data string.
      Returns:
      The encoded text calculated from the decoded data.
      Throws:
      UnsupportedEncodingException - thrown in case the provided charset name is not supported.
    • setDecodedData

      public void setDecodedData(String aDecodedData)
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
    • setDecodedData

      public void setDecodedData(String aDecodedData, Charset aCharset)
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
      aCharset - The charset to use when interpreting the decoded data string.
    • setDecodedData

      public void setDecodedData(String aDecodedData, String aCharset) throws UnsupportedEncodingException
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
      aCharset - The charset to use when interpreting the decoded data string.
      Throws:
      UnsupportedEncodingException - thrown in case the provided charset name is not supported.
    • withDecodedData

      public BaseBuilder withDecodedData(byte[] aDecodedData)
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
      Returns:
      The builder for applying multiple build operations.
    • withDecodedData

      public BaseBuilder withDecodedData(String aDecodedData)
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
      Returns:
      The builder for applying multiple build operations.
    • withDecodedData

      public BaseBuilder withDecodedData(String aDecodedData, Charset aCharset)
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
      aCharset - The charset to use when interpreting the decoded data string.
      Returns:
      The builder for applying multiple build operations.
    • withDecodedData

      public BaseBuilder withDecodedData(String aDecodedData, String aCharset) throws UnsupportedEncodingException
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
      aCharset - The charset to use when interpreting the decoded data string.
      Returns:
      The builder for applying multiple build operations.
      Throws:
      UnsupportedEncodingException - thrown in case the provided charset name is not supported.
    • withDecodedData

      public BaseBuilder withDecodedData(long aDecodedData)
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
      Returns:
      The builder for applying multiple build operations.
    • getBaseMetrics

      public BaseMetrics getBaseMetrics()
      Retrieves the base codec metrics from the base codec metrics property.
      Specified by:
      getBaseMetrics in interface BaseMetricsAccessor
      Returns:
      The base codec metrics stored by the base codec metrics property.
    • setBaseMetrics

      public void setBaseMetrics(BaseMetrics aBaseMetrics)
      Sets the base codec metrics for the base codec metrics property.
      Specified by:
      setBaseMetrics in interface BaseMetricsAccessor.BaseMetricsMutator
      Parameters:
      aBaseMetrics - The base codec metrics to be stored by the font style property.
    • getEncodedText

      public String getEncodedText()
      Retrieves the encoded text from the encoded text property.
      Returns:
      The encoded text stored by the encoded text property.
    • setEncodedText

      public void setEncodedText(String aEncodedText)
      Sets the encoded text for the encoded text property.
      Parameters:
      aEncodedText - The encoded text to be stored by the encoded text property.
    • withEncodedText

      public BaseBuilder withEncodedText(String aEncodedText)
      Sets the encoded text for the encoded text property.
      Parameters:
      aEncodedText - The encoded text to be stored by the encoded text property.
      Returns:
      The builder for applying multiple build operations.
    • getDecodedData

      public byte[] getDecodedData()
      Retrieves the decoded data from the decoded data property.
      Returns:
      The decoded data stored by the decoded data property.
    • setDecodedData

      public void setDecodedData(byte[] aDecodedData)
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
    • setDecodedData

      public void setDecodedData(long aDecodedData)
      Sets the decoded data for the decoded data property.
      Parameters:
      aDecodedData - The decoded data to be stored by the decoded data property.
    • toEncodedText

      public String toEncodedText(byte[] aDecodedData)
      Retrieves the encoded text calculated from the decoded data. This method is to be side effect free in terms of the decoded data (and the encoded result) is not part of the state for this instance (from the point of view of this method). Still changing for example the BaseMetrics via withBaseMetrics(BaseMetrics) can cause side effects! For avoiding thread race conditions / side effects regarding the decoded data (and the encoded result), use this method instead of the combination of withDecodedData(byte[]) with getEncodedText()
      Parameters:
      aDecodedData - The decoded data to be encoded.
      Returns:
      The encoded text calculated from the decoded data.
    • toDecodedData

      public byte[] toDecodedData(String aEncodedText)
      Retrieves the decoded data calculated from the provided encoded text. This method is to be side effect free in terms of the encoded text (and the decoded result) is not part of the state for this instance (from the point of view of this method). Still changing for example the BaseMetrics via withBaseMetrics(BaseMetrics) can cause side effects! For avoiding thread race conditions / side effects regarding the encoded text (and the decoded result), use this method instead of the combination of withEncodedText(String) with getDecodedData().
      Parameters:
      aEncodedText - The encoded text to be decoded.
      Returns:
      The decoded data decoded from the encoded text.
    • toEncodedText

      public String toEncodedText(long aDecodedData)
      Retrieves the encoded text calculated from the decoded data. This method is to be side effect free in terms of the decoded data (and the encoded result) is not part of the state for this instance (from the point of view of this method). Still changing for example the BaseMetrics via withBaseMetrics(BaseMetrics) can cause side effects! For avoiding thread race conditions / side effects regarding the decoded data (and the encoded result), use this method instead of the combination of withDecodedData(byte[]) with getEncodedText()
      Parameters:
      aDecodedData - The decoded data to be encoded.
      Returns:
      The encoded text calculated from the decoded data.
    • toEncodedText

      protected static String toEncodedText(byte[] aDecodedData, BaseMetrics aBaseMetrics)
      To encoded text.
      Parameters:
      aDecodedData - the decoded data
      aBaseMetrics - the base metrics
      Returns:
      the string
    • toDecodedData

      protected static byte[] toDecodedData(String aEncodedText, BaseMetrics aBaseMetrics)
      To decoded data.
      Parameters:
      aEncodedText - the encoded text
      aBaseMetrics - the base metrics
      Returns:
      the byte[]
    • toDecodedSize

      protected static int toDecodedSize(String aEncodedText, BaseMetrics aBaseMetrics)
      To decoded size.
      Parameters:
      aEncodedText - the encoded text
      aBaseMetrics - the base metrics
      Returns:
      the int
    • toBytes

      protected static int toBytes(byte[] aDecodedBytes, int aOffset, int aWord, int aTrailingBytes, BaseMetrics aBaseMetrics)
      To bytes.
      Parameters:
      aDecodedBytes - the decoded bytes
      aOffset - the offset
      aWord - the word
      aTrailingBytes - the trailing bytes
      aBaseMetrics - the base metrics
      Returns:
      the int