# Atom

Summary:[Methods](https://developer.android.com/reference/android/support/test/espresso/web/model/Atom#pubmethods)\|[\[Expand All\]](https://developer.android.com/reference/android/support/test/espresso/web/model/Atom#)  

# Atom

| This package is part of the Android[support library](https://developer.android.com/topic/libraries/support-library)which is no longer maintained. The support library has been superseded by[AndroidX](https://developer.android.com/jetpack/androidx)which is part of[Jetpack](https://developer.android.com/jetpack). We recommend using the AndroidX libraries in all new projects. You should also consider[migrating](https://developer.android.com/jetpack/androidx/migrate)existing projects to AndroidX. To find the AndroidX class that maps to this deprecated class, see the AndroidX support library[class mappings](https://developer.android.com/jetpack/androidx/migrate/class-mappings).

`
public


interface
Atom
`  
`


`

|---------------------------------------------------|
| android.support.test.espresso.web.model.Atom\<R\> |

|---|---|
| [![](https://developer.android.com/static/assets/images/styles/disclosure_down.png)](https://developer.android.com/reference/android/support/test/espresso/web/model/Atom#)Known Indirect Subclasses [SimpleAtom](https://developer.android.com/reference/android/support/test/espresso/web/model/SimpleAtom),[TransformingAtom](https://developer.android.com/reference/android/support/test/espresso/web/model/TransformingAtom)\<I, O\> |------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------| | [SimpleAtom](https://developer.android.com/reference/android/support/test/espresso/web/model/SimpleAtom)                     | A simple implementation of Atom suitable for subclassing.         | | [TransformingAtom](https://developer.android.com/reference/android/support/test/espresso/web/model/TransformingAtom)\<I, O\> | Decorates another atom and transforms its output to another type. | ||

<br />

*** ** * ** ***

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.

## Summary

|                                                                                                                                                                                                                                                            ### Public methods                                                                                                                                                                                                                                                             ||
|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract `[List](https://developer.android.com/reference/java/util/List.html)`<`[Object](https://developer.android.com/reference/java/lang/Object.html)`>` | ` `[getArguments](https://developer.android.com/reference/android/support/test/espresso/web/model/Atom#getArguments(android.support.test.espresso.web.model.ElementReference))`(`[ElementReference](https://developer.android.com/reference/android/support/test/espresso/web/model/ElementReference)` elementContext) ` Creates a list of arguments to pass to the script. |
| ` abstract `[String](https://developer.android.com/reference/java/lang/String.html)                                                                          | ` `[getScript](https://developer.android.com/reference/android/support/test/espresso/web/model/Atom#getScript())`() ` Provides the script to be evaluated.                                                                                                                                                                                                                  |
| ` abstract R`                                                                                                                                                | ` `[transform](https://developer.android.com/reference/android/support/test/espresso/web/model/Atom#transform(android.support.test.espresso.web.model.Evaluation))`(`[Evaluation](https://developer.android.com/reference/android/support/test/espresso/web/model/Evaluation)` evaluation) ` Converts an Evaluation into another more suitable type.                        |

## Public methods

### getArguments

```
List<Object> getArguments (ElementReference elementContext)
```

Creates a list of arguments to pass to the script.

<br />

|                                                        Parameters                                                         ||
|------------------|---------------------------------------------------------------------------------------------------------|
| `elementContext` | `ElementReference`: null unless an ElementReference has been supplied to execute this atom with. <br /> |

|                                                                                                     Returns                                                                                                      ||
|--------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------|
| [List](https://developer.android.com/reference/java/util/List.html)`<`[Object](https://developer.android.com/reference/java/lang/Object.html)`>` | the List of objects to pass to the script as arguments. <br /> |

### getScript

```
String getScript ()
```

Provides the script to be evaluated.

<br />

|                                     Returns                                     ||
|-------------------------------------------------------------------------|--------|
| [String](https://developer.android.com/reference/java/lang/String.html) | <br /> |

### transform

```
R transform (Evaluation evaluation)
```

Converts an Evaluation into another more suitable type.

<br />

|            Parameters             ||
|--------------|---------------------|
| `evaluation` | `Evaluation` <br /> |

|   Returns   ||
|-----|--------|
| `R` | <br /> |

-

  ## Interfaces

  - [Atom](https://developer.android.com/reference/android/support/test/espresso/web/model/Atom)
  - [JSONAble](https://developer.android.com/reference/android/support/test/espresso/web/model/JSONAble)
  - [JSONAble.DeJSONFactory](https://developer.android.com/reference/android/support/test/espresso/web/model/JSONAble.DeJSONFactory)
  - [TransformingAtom.Transformer](https://developer.android.com/reference/android/support/test/espresso/web/model/TransformingAtom.Transformer)
-

  ## Classes

  - [Atoms](https://developer.android.com/reference/android/support/test/espresso/web/model/Atoms)
  - [ElementReference](https://developer.android.com/reference/android/support/test/espresso/web/model/ElementReference)
  - [Evaluation](https://developer.android.com/reference/android/support/test/espresso/web/model/Evaluation)
  - [ModelCodec](https://developer.android.com/reference/android/support/test/espresso/web/model/ModelCodec)
  - [SimpleAtom](https://developer.android.com/reference/android/support/test/espresso/web/model/SimpleAtom)
  - [TransformingAtom](https://developer.android.com/reference/android/support/test/espresso/web/model/TransformingAtom)
  - [WindowReference](https://developer.android.com/reference/android/support/test/espresso/web/model/WindowReference)
-

  ## Enums

  - [SimpleAtom.ElementReferencePlacement](https://developer.android.com/reference/android/support/test/espresso/web/model/SimpleAtom.ElementReferencePlacement)