Interface Profile

All Known Implementing Classes:
SASLprep

public interface Profile
The Profile interface is used to define stringprep profiles in order to fully specify the processing options.

Stringprep profiles can also exclude characters that should not normally appear in text that is used in the protocol. The profile can prevent such characters by changing the characters to be excluded to other characters, by removing those characters, or by causing an error if the characters would appear in the output.

Since:
2.0
  • Method Summary

    Modifier and Type
    Method
    Description
    default int[]
    additionalMappingTable(int codePoint)
    Any additional mapping tables specific to the profile.
    default char[]
    prepareQuery(char[] string)
    "Queries" are strings that are used to match against strings that are stored identifiers, such as user-entered names for digital certificate authorities and DNS lookups.
    default String
    "Queries" are strings that are used to match against strings that are stored identifiers, such as user-entered names for digital certificate authorities and DNS lookups.
    default char[]
    prepareStored(char[] string)
    "Stored strings" are strings that are used in protocol identifiers and named entities, such as names in digital certificates and DNS domain name parts.
    default String
    "Stored strings" are strings that are used in protocol identifiers and named entities, such as names in digital certificates and DNS domain name parts.
    Set of options used by the profile.
    default boolean
    Any additional characters that are prohibited as output specific to the profile.
  • Method Details

    • profile

      Set<Option> profile()
      Set of options used by the profile.
      Returns:
      profile options.
    • prepareQuery

      default char[] prepareQuery(char[] string)
      "Queries" are strings that are used to match against strings that are stored identifiers, such as user-entered names for digital certificate authorities and DNS lookups.
      Parameters:
      string - to prepare based on a "stringprep" profile.
      Returns:
      The prepared String.
      Throws:
      IllegalArgumentException - if there is a prohibited output.
      Since:
      2.1
      Implementation Note:
      The default method sets the storedStrings Stringprep parameter to false, as "queries" MAY include unassigned code points. This method should not necessarily be overridden by implementations.
    • prepareQuery

      default String prepareQuery(String string)
      "Queries" are strings that are used to match against strings that are stored identifiers, such as user-entered names for digital certificate authorities and DNS lookups.
      Parameters:
      string - to prepare based on a "stringprep" profile.
      Returns:
      The prepared String.
      Throws:
      IllegalArgumentException - if there is a prohibited output.
      Implementation Note:
      The default method sets the storedStrings Stringprep parameter to false, as "queries" MAY include unassigned code points. This method should not necessarily be overridden by implementations.
    • prepareStored

      default char[] prepareStored(char[] string)
      "Stored strings" are strings that are used in protocol identifiers and named entities, such as names in digital certificates and DNS domain name parts.
      Parameters:
      string - to prepare based on a "stringprep" profile.
      Returns:
      The prepared String.
      Throws:
      IllegalArgumentException - if there is a prohibited output.
      Since:
      2.1
      Implementation Note:
      The default method sets the storedStrings Stringprep parameter to true, as "stored strings" MUST NOT contain unassigned code points. This method should not necessarily be overridden by implementations.
    • prepareStored

      default String prepareStored(String string)
      "Stored strings" are strings that are used in protocol identifiers and named entities, such as names in digital certificates and DNS domain name parts.
      Parameters:
      string - to prepare based on a "stringprep" profile.
      Returns:
      The prepared String.
      Throws:
      IllegalArgumentException - if there is a prohibited output.
      Implementation Note:
      The default method sets the storedStrings Stringprep parameter to true, as "stored strings" MUST NOT contain unassigned code points. This method should not necessarily be overridden by implementations.
    • additionalMappingTable

      default int[] additionalMappingTable(int codePoint)
      Any additional mapping tables specific to the profile.
      Parameters:
      codePoint - the character (Unicode code point) to be mapped.
      Returns:
      Mapping with the int[] array or with the same codePoint.
      Implementation Requirements:
      Profiles that requires additional mapping tables must implement this method. A code point match return the mapped array with the new code points or if there is no match, it should return the same input code point as new int[] {codePoint};. Implementations MUST also set Option.ADDITIONAL_MAPPING to enable the proccesing of this rule.
      Implementation Note:
      The default implementation always return the same code point mapping (new int[] {codePoint}), no change is done to the code point.
    • prohibitedAdditionalCharacters

      default boolean prohibitedAdditionalCharacters(int codePoint)
      Any additional characters that are prohibited as output specific to the profile.
      Parameters:
      codePoint - the character (Unicode code point) to be tested.
      Returns:
      true if the given codePoint is prohibited on this profile.
      Implementation Requirements:
      Profiles that prohibit additional characters must implement this method. A code point match return true, or if the code point should not be prohibited it should return false. Implementations MUST also set Option.FORBID_ADDITIONAL_CHARACTERS to enable the proccesing of this rule.
      Implementation Note:
      The default implementation always return false, all characters are accepted.