Package org.apache.tapestry5.internal

# Class TapestryInternalUtils

java.lang.Object
org.apache.tapestry5.internal.TapestryInternalUtils

public class TapestryInternalUtils extends Object
Shared utility methods used by various implementation classes.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static Mapper<Asset,StylesheetLink>`
  `assetToStylesheetLink`
  Common mapper, used primarily with `Flow.map(org.apache.tapestry5.func.Mapper)`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TapestryInternalUtils()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `copy(InputStream in, OutputStream out)`
  Copies some content from an input stream to an output stream.
  `static String`
  `defaultLabel(String id, Messages messages, String propertyExpression)`
  Looks for a label within the messages based on the id.
  `static String`
  `extractIdFromPropertyExpression(String expression)`
  Used to convert a property expression into a key that can be used to locate various resources (Blocks, messages, etc.).
  `static Thread[]`
  `getAllThreads()`
  Gathers together an array containing all the threads.
  `static <K, V> V`
  `getAndDeref(Map<K,? extends Reference<V>> map, K key)`
  Extracts a value from a map of references.
  `static String`
  `getLabelForEnum(Messages messages, Enum value)`
  `static String`
  `getLabelForEnum(Messages messages, String prefix, Enum value)`
  Converts an enum to a label string, allowing for overrides from a message catalog.
  `static boolean`
  `isEqual(EventContext left, EventContext right)`
  `static <T> boolean`
  `isEqual(T left, T right)`
  Determines if the two values are equal.
  `static String`
  `lastTerm(String input)`
  Strips a dotted sequence (such as a property expression, or a qualified class name) down to the last term of that expression, by locating the last period ('.') in the string.
  `static Map<String,String>`
  `mapFromKeysAndValues(String... keysAndValues)`
  `static Orderable<String>`
  `mixinTypeAndOrder(String mixinDef)`
  `static KeyValue`
  `parseKeyValue(String input)`
  Parses a key/value pair where the key and the value are seperated by an equals sign.
  `static String[]`
  `splitAtCommas(String value)`
  Splits a value around commas.
  `static String[]`
  `splitMixinConstraints(String s)`
  `static String[]`
  `splitPath(String path)`
  Splits a path at each slash.
  `static String`
  `toClassAttributeValue(List<String> classes)`
  Converts an list of strings into a space-separated string combining them all, suitable for use as an HTML class attribute value.
  `static String`
  `toFileSuffix(String fileName)`
  `static InternalPropertyConduit`
  `toInternalPropertyConduit(PropertyConduit conduit)`
  `static LinkCreationListener2`
  `toLinkCreationListener2(LinkCreationListener delegate)`
  `static OptionModel`
  `toOptionModel(Object input)`
  Converts an object to an `OptionModel`.
  `static OptionModel`
  `toOptionModel(String input)`
  Converts a string to an `OptionModel`.
  `static OptionModel`
  `toOptionModel(Map.Entry input)`
  Converts a map entry to an `OptionModel`.
  `static List<OptionModel>`
  `toOptionModels(String input)`
  Parses a string input into a series of value=label pairs compatible with `toOptionModel(String)`.
  `static <E> List<OptionModel>`
  `toOptionModels(List<E> input)`
  Processes a list input into a series of objects compatible with `toOptionModel(Object)`.
  `static <K, V> List<OptionModel>`
  `toOptionModels(Map<K,V> input)`
  Processes a map input into a series of map entries compatible with `toOptionModel(Map.Entry)`.
  `static SelectModel`
  `toSelectModel(String input)`
  Wraps the result of `toOptionModels(String)` as a `SelectModel` (with no option groups).
  `static <E> SelectModel`
  `toSelectModel(List<E> input)`
  Wraps the result of `toOptionModels(List)` as a `SelectModel` (with no option groups).
  `static <K, V> SelectModel`
  `toSelectModel(Map<K,V> input)`
  Wraps the result of `toOptionModels(Map)` as a `SelectModel` (with no option groups).
  `static String`
  `toUserPresentable(String id)`
  Capitalizes the string, and inserts a space before each upper case character (or sequence of upper case characters).

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### assetToStylesheetLink

    public static Mapper<Asset,StylesheetLink> assetToStylesheetLink
    Common mapper, used primarily with `Flow.map(org.apache.tapestry5.func.Mapper)`
    Since:
      5.2.0

- ## Constructor Details

  - ### TapestryInternalUtils

    public TapestryInternalUtils()

- ## Method Details

  - ### toUserPresentable

    public static String toUserPresentable(String id)
    Capitalizes the string, and inserts a space before each upper case character (or sequence of upper case characters). Thus "userId" becomes "User Id", etc. Also, converts underscore into space (and capitalizes the following word), thus "user_id" also becomes "User Id".

  - ### mapFromKeysAndValues

    public static Map<String,String> mapFromKeysAndValues(String... keysAndValues)

  - ### toOptionModel

    public static OptionModel toOptionModel(String input)
    Converts a string to an `OptionModel`. The string is of the form "value=label". If the equals sign is omitted, then the same value is used for both value and label.

  - ### toOptionModels

    public static List<OptionModel> toOptionModels(String input)
    Parses a string input into a series of value=label pairs compatible with `toOptionModel(String)`. Splits on commas. Ignores whitespace around commas.
    Parameters:
      `input` - comma seperated list of terms
    Returns:
      list of option models

  - ### toSelectModel

    public static SelectModel toSelectModel(String input)
    Wraps the result of `toOptionModels(String)` as a `SelectModel` (with no option groups). See TAP5-2184 for why this ends up causing some trouble!

  - ### toOptionModel

    public static OptionModel toOptionModel(Map.Entry input)
    Converts a map entry to an `OptionModel`.

  - ### toOptionModels

    public static <K, V> List<OptionModel> toOptionModels(Map<K,V> input)
    Processes a map input into a series of map entries compatible with `toOptionModel(Map.Entry)`.
    Parameters:
      `input` - map of elements
    Returns:
      list of option models

  - ### toSelectModel

    public static <K, V> SelectModel toSelectModel(Map<K,V> input)
    Wraps the result of `toOptionModels(Map)` as a `SelectModel` (with no option groups).

  - ### toOptionModel

    public static OptionModel toOptionModel(Object input)
    Converts an object to an `OptionModel`.

  - ### toOptionModels

    public static <E> List<OptionModel> toOptionModels(List<E> input)
    Processes a list input into a series of objects compatible with `toOptionModel(Object)`.
    Parameters:
      `input` - list of elements
    Returns:
      list of option models

  - ### toSelectModel

    public static <E> SelectModel toSelectModel(List<E> input)
    Wraps the result of `toOptionModels(List)` as a `SelectModel` (with no option groups).

  - ### parseKeyValue

    public static KeyValue parseKeyValue(String input)
    Parses a key/value pair where the key and the value are seperated by an equals sign. The key and value are trimmed of leading and trailing whitespace, and returned as a `KeyValue`.

  - ### extractIdFromPropertyExpression

    public static String extractIdFromPropertyExpression(String expression)
    Used to convert a property expression into a key that can be used to locate various resources (Blocks, messages, etc.). Strips out any punctuation characters, leaving just words characters (letters, number and the underscore).
    Parameters:
      `expression` - a property expression
    Returns:
      the expression with punctuation removed

  - ### defaultLabel

    public static String defaultLabel(String id, Messages messages, String propertyExpression)
    Looks for a label within the messages based on the id. If found, it is used, otherwise the name is converted to a user presentable form.

  - ### lastTerm

    public static String lastTerm(String input)
    Strips a dotted sequence (such as a property expression, or a qualified class name) down to the last term of that expression, by locating the last period ('.') in the string.

  - ### toClassAttributeValue

    public static String toClassAttributeValue(List<String> classes)
    Converts an list of strings into a space-separated string combining them all, suitable for use as an HTML class attribute value.
    Parameters:
      `classes` - classes to combine
    Returns:
      the joined classes, or null if classes is empty

  - ### getLabelForEnum

    public static String getLabelForEnum(Messages messages, String prefix, Enum value)
    Converts an enum to a label string, allowing for overrides from a message catalog.
    - As key prefix.name if present. Ex: "ElementType.LOCAL_VARIABLE"
    - As key name if present, i.e., "LOCAL_VARIABLE".
    - As a user-presentable version of the name, i.e., "Local Variable".
    Parameters:
      `messages` - the messages to search for the label
      `prefix` - prepended to key
      `value` - to get a label for
    Returns:
      the label

  - ### getLabelForEnum

    public static String getLabelForEnum(Messages messages, Enum value)

  - ### isEqual

    public static <T> boolean isEqual(T left, T right)
    Determines if the two values are equal. They are equal if they are the exact same value (including if they are both null). Otherwise standard equals() comparison is used.
    Parameters:
      `left` - value to compare, possibly null
      `right` - value to compare, possibly null
    Returns:
      true if same value, both null, or equal

  - ### splitPath

    public static String[] splitPath(String path)
    Splits a path at each slash.

  - ### splitAtCommas

    public static String[] splitAtCommas(String value)
    Splits a value around commas. Whitespace around the commas is removed, as is leading and trailing whitespace.
    Since:
      5.1.0.0

  - ### copy

    public static void copy(InputStream in, OutputStream out) throws IOException
    Copies some content from an input stream to an output stream. It is the caller's responsibility to close the streams.
    Parameters:
      `in` - source of data
      `out` - sink of data
    Throws:
      `IOException`
    Since:
      5.1.0.0

  - ### isEqual

    public static boolean isEqual(EventContext left, EventContext right)

  - ### toInternalPropertyConduit

    public static InternalPropertyConduit toInternalPropertyConduit(PropertyConduit conduit)

  - ### mixinTypeAndOrder

    public static Orderable<String> mixinTypeAndOrder(String mixinDef)
    Parameters:
      `mixinDef` - the original mixin definition.
    Returns:
      an Orderable whose id is the mixin name.

  - ### splitMixinConstraints

    public static String[] splitMixinConstraints(String s)

  - ### toLinkCreationListener2

    public static LinkCreationListener2 toLinkCreationListener2(LinkCreationListener delegate)

  - ### toFileSuffix

    public static String toFileSuffix(String fileName)
    Since:
      5.3

  - ### getAndDeref

    public static <K, V> V getAndDeref(Map<K,? extends Reference<V>> map, K key)
    Extracts a value from a map of references. Handles the case where the reference does not exist, and the case where the reference itself now contains null.
    Since:
      5.3

  - ### getAllThreads

    public static Thread[] getAllThreads()
    Gathers together an array containing all the threads.
    Since:
      5.4