# Descriptions of available transformations

Note | TODO Generate this list automatically from annotation - https://github.com/atlasmap/atlasmap/issues/173

The following table describes the available transformations. The date and number types refer generically to any of the various forms of these concepts. That is, number includes, for example, `integer`, `long`, `double`. Date includes, for example, `date`, `Time`, `ZonedDateTime`.

Transformation | Input Type | Output Type | Parameter (* = required) | Description
--- | --- | --- | --- | ---
`AbsoluteValue` | number | number | None | Return the absolute value of a number.
`AddDays` | date | date | `days` | Add days to a date. The default is 0 days.
`AddSeconds` | date | date | `seconds` | Add seconds to a date. The default is 0 seconds.
`Append` | string | string | string | Append a string to the end of a string. The default is to append nothing.
`Camelize` | string | string | None | Convert a phrase to a camelized string by removing whitespace, making the first word lowercase, and capitalizing the first letter of each subsequent word.
`Capitalize` | string | string | None | Capitalize the first character in a string.
`Ceiling` | number | number | None | Return the whole number ceiling of a number.
`Contains` | any | Boolean | `value` | Return true if a field contains the specified value.
`ConvertAreaUnit` | number | number | `fromUnit`* `toUnit` * | Convert a number that represents an area to another unit. For the `fromUnit` and `toUnit` parameters, select the appropriate unit from the From Unit and To Unit menus. The choices are: `Square Foot`, `Square Meter`, or `Square Mile`.
`ConvertDistanceUnit` | number | number | `fromUnit` * `toUnit` * | Convert a number that represents a distance to another unit. For the `fromUnit` and `toUnit` parameters, select the appropriate unit from the From Unit and To Unit menus. The choices are: `Foot`, `Inch`, `Meter`, `Mile`, or `Yard`.
`ConvertMassUnit` | number | number | `fromUnit` * `toUnit` * | Convert a number that represents mass to another unit. For the `fromUnit` and `toUnit` parameters, select the appropriate unit from the From Unit and To Unit menus. The choices are: `Kilogram` or `Pound`.
`ConvertVolumeUnit` | number | number | `fromUnit` * `toUnit` * | Convert a number that represents volume to another unit. For the `fromUnit` and `toUnit` parameters, select the appropriate unit from the From Unit and To Unit menus. The choices are: `Cubic Foot`, `Cubic Meter`, `Gallon US Fluid`, or `Liter`.
`CurrentDate` | None | date | Note | Return the current date.
`CurrentDateTime` | None | date | None | Return the current date and time.
`CurrentTime` | None | date | None | Return the current time.
`DayOfWeek` | date | number | None | Return the day of the week (1 through 7) that corresponds to the date.
`DayOfYear` | date | number | None | Return the day of the year (1 through 366) that corresponds to the date.
`EndsWith` | string | Boolean | `string` | Return true if a string ends with the specified `string`, including case.
`Equals` | any | Boolean | `value` | Return true if a field is equal to the specified `value`, including case.
`FileExtension` | string | string | None | From a string that represents a file name, return the file extension without the dot.
`Floor` | number | number | None | Return the whole number floor of a number.
`Format` | any | string | `template` * | In `template`, replace each placeholder (such as `%s`) with the value of the input field and return a string that contains the result. This is similar to mechanisms that are available in programming languages such as Java and C.
`GenerateUUID` | None | string | None | Create a string that represents a random UUID.
`IndexOf` | string | number | `string` | In a string, starting at 0, return the first index of the specified `string`. Return `-1` if it is not found.
`IsNull` | any | Boolean | None | Return true if a field is null.
`LastIndexOf` | string | number | `string` | In a string, starting at 0, return the last index of the specified `string`. Return `-1` if it is not found.
`Length` | any | number | None | Return the length of the field, or `-1` if the field is null.
`Lowercase` | string | string | None | Convert a string to lowercase.
`Normalize` | string | string | None | Replace consecutive whitespace characters with a single space and trim leading and trailing whitespace from a string.
`PadStringLeft` | string | string | `padCharacter` * `padCount` * | Insert the character supplied in `padCharacter` at the beginning of a string. Do this the number of times specified in `padCount`.
`PadStringRight` | string | string | `padCharacter` * `padCount` * | Insert the character supplied in `padCharacter` at the end of a string. Do this the number of times specified in `padCount`.
`Prepend` | string | string | `string` | Prefix `string` to the beginning of a string. the default is to prepend nothing.
`ReplaceAll` | string | string | `match` * `newString` | In a string, replace all occurrences of the supplied matching string with the supplied `newString`. The default `newString` is an empty string.
`ReplaceFirst` | string | string | `match` * `newString` * | In a string, replace the first occurrence of the specified `match` string with the specified `newString`. The default `newString` is an empty string.
`Round` | number | number | None | Return the rounded whole number of a number.
`SeparateByDash` | string | string | None | Replace each occurrence of whitespace, colon (:), underscore (_), plus (+), and equals (=) with a hyphen (-).
`SeparateByUnderscore` | string | string | None | Replace each occurrence of whitespace, colon (:), hyphen (-), plus (+), and equals (=) with an underscore (_).
`StartsWith` | string | Boolean | `string` | Return true if a string starts with the specified string (including case).
`Substring` | string | string | `startIndex` * `endIndex` | Retrieve a segment of a string from the specified inclusive `startIndex` to the specified exclusive `endIndex`. Both indexes start at zero. `startIndex` is inclusive. `endIndex` is exclusive. The default value of `endIndex` is the length of the string.
`SubstringAfter` | string | string | `startIndex` * `endIndex` `match` * | Retrieve the segment of a string after the specified `match` string from the specified inclusive `startIndex` to the specified exclusive `endIndex`. Both indexes start at zero. The default value of `endIndex` is the length of the string after the supplied `match` string.
`SubstringBefore` | string | string | `startIndex` * `endIndex` `match` * | Retrieve a segment of a string before the supplied `match` string from the supplied inclusive `startIndex` to the supplied exclusive `endIndex`. Both indexes start at zero. The default value of `endIndex` is the length of the string before the supplied `match` string.
`Trim` | string | string | None | Trim leading and trailing whitespace from a string.
`TrimLeft` | string | string | None | Trim leading whitespace from a string.
`TrimRight` | string | string | None | Trim trailing whitespace from a string.
`Uppercase` | string | string | None | Convert a string to uppercase.