Decorates another atom and transforms its output to another type.
An Atom is a thin wrapper around javascript.
The wrapped script can return a value or be a statement. The Atom can supply positional
arguments to pass to the wrapped script. The Atom knows how to transform the result of the
evaluation of the script into a higher level object.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[],[],null,["# Atom\n\nSummary: [Methods](#pubmethods) \\| [\\[Expand All\\]](#) \n\nAtom\n====\n\n| This package is part of the Android [support library](/topic/libraries/support-library) which is no longer maintained. The support library has been superseded by [AndroidX](/jetpack/androidx) which is part of [Jetpack](/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider [migrating](/jetpack/androidx/migrate) existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library [class\n| mappings](/jetpack/androidx/migrate/class-mappings).\n\n\n`\npublic\n\n\ninterface\nAtom\n`\n\n\n`\n\n\n`\n\n|---------------------------------------------------|\n| android.support.test.espresso.web.model.Atom\\\u003cR\\\u003e |\n\n|---|---|\n| Known Indirect Subclasses [SimpleAtom](/reference/android/support/test/espresso/web/model/SimpleAtom),[TransformingAtom](/reference/android/support/test/espresso/web/model/TransformingAtom)\\\u003cI, O\\\u003e |-------------------------------------------------------------------------------------------------|-------------------------------------------------------------------| | [SimpleAtom](/reference/android/support/test/espresso/web/model/SimpleAtom) | A simple implementation of Atom suitable for subclassing. | | [TransformingAtom](/reference/android/support/test/espresso/web/model/TransformingAtom)\\\u003cI, O\\\u003e | Decorates another atom and transforms its output to another type. | ||\n\n\u003cbr /\u003e\n\n*** ** * ** ***\n\nAn Atom is a thin wrapper around javascript.\n\nThe wrapped script can return a value or be a statement. The Atom can supply positional\narguments to pass to the wrapped script. The Atom knows how to transform the result of the\nevaluation of the script into a higher level object.\n\nSummary\n-------\n\n| ### Public methods ||\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ` abstract `[List](https://developer.android.com/reference/java/util/List.html)`\u003c`[Object](https://developer.android.com/reference/java/lang/Object.html)`\u003e` | ` `[getArguments](/reference/android/support/test/espresso/web/model/Atom#getArguments(android.support.test.espresso.web.model.ElementReference))`(`[ElementReference](/reference/android/support/test/espresso/web/model/ElementReference)` elementContext) ` Creates a list of arguments to pass to the script. |\n| ` abstract `[String](https://developer.android.com/reference/java/lang/String.html) | ` `[getScript](/reference/android/support/test/espresso/web/model/Atom#getScript())`() ` Provides the script to be evaluated. |\n| ` abstract R` | ` `[transform](/reference/android/support/test/espresso/web/model/Atom#transform(android.support.test.espresso.web.model.Evaluation))`(`[Evaluation](/reference/android/support/test/espresso/web/model/Evaluation)` evaluation) ` Converts an Evaluation into another more suitable type. |\n\nPublic methods\n--------------\n\n### getArguments\n\n```\nList\u003cObject\u003e getArguments (ElementReference elementContext)\n```\n\nCreates a list of arguments to pass to the script.\n\n\u003cbr /\u003e\n\n| Parameters ||\n|------------------|---------------------------------------------------------------------------------------------------------|\n| `elementContext` | `ElementReference`: null unless an ElementReference has been supplied to execute this atom with. \u003cbr /\u003e |\n\n| Returns ||\n|--------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|\n| [List](https://developer.android.com/reference/java/util/List.html)`\u003c`[Object](https://developer.android.com/reference/java/lang/Object.html)`\u003e` | the List of objects to pass to the script as arguments. \u003cbr /\u003e |\n\n### getScript\n\n```\nString getScript ()\n```\n\nProvides the script to be evaluated.\n\n\u003cbr /\u003e\n\n| Returns ||\n|-------------------------------------------------------------------------|--------|\n| [String](https://developer.android.com/reference/java/lang/String.html) | \u003cbr /\u003e |\n\n### transform\n\n```\nR transform (Evaluation evaluation)\n```\n\nConverts an Evaluation into another more suitable type.\n\n\u003cbr /\u003e\n\n| Parameters ||\n|--------------|---------------------|\n| `evaluation` | `Evaluation` \u003cbr /\u003e |\n\n| Returns ||\n|-----|--------|\n| `R` | \u003cbr /\u003e |\n\n-\n\n Interfaces\n ----------\n\n - [Atom](/reference/android/support/test/espresso/web/model/Atom)\n - [JSONAble](/reference/android/support/test/espresso/web/model/JSONAble)\n - [JSONAble.DeJSONFactory](/reference/android/support/test/espresso/web/model/JSONAble.DeJSONFactory)\n - [TransformingAtom.Transformer](/reference/android/support/test/espresso/web/model/TransformingAtom.Transformer)\n-\n\n Classes\n -------\n\n - [Atoms](/reference/android/support/test/espresso/web/model/Atoms)\n - [ElementReference](/reference/android/support/test/espresso/web/model/ElementReference)\n - [Evaluation](/reference/android/support/test/espresso/web/model/Evaluation)\n - [ModelCodec](/reference/android/support/test/espresso/web/model/ModelCodec)\n - [SimpleAtom](/reference/android/support/test/espresso/web/model/SimpleAtom)\n - [TransformingAtom](/reference/android/support/test/espresso/web/model/TransformingAtom)\n - [WindowReference](/reference/android/support/test/espresso/web/model/WindowReference)\n-\n\n Enums\n -----\n\n - [SimpleAtom.ElementReferencePlacement](/reference/android/support/test/espresso/web/model/SimpleAtom.ElementReferencePlacement)"]]