[Home](Home.md)
Calls contain methods with the same signature
```
public Object (final EO eo, final Map attributes) {
...
}
```
Example: [FileCall.read](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/FileCall.java#L186)
The constructor of a call consists always
from the
[EOConfigsCache](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/config/EOConfigsCache.java)
and a key.
```
public Call (final EOConfigCache eoCache, final key) {
super(eoCache, key);
}
```
Example: [FileCall](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/FileCall.java)
## Common Super Classes
### [Call.java](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/Call.java)
This class initialize a configuration used as base for the call via
[EOConfigsCache](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/config/EOConfigsCache.java)
and the key.
Some magic is here within since it looks in the configuration for the specific Call and try to get the configuration setting. Without this configuration the initialize would stop and throw an error. Same if a configuration with the key is not found.
Reason for this is that a external client, when creating a call, knows which configuration is used from this type of call. This is especially useful, when several similar call types e.g. for databases could be used.
A direct use of the Call class makes only sense, if no internal assets are used, eg for
* [ValueCall.java](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/ValueCall.java)
### [CallIO.java](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/CallIO.java)
This class is the base foreach call offering access to some server assets like files or databases. It just initialize the
permission object by the values in the configuration.
* [FileCall.java](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/FileCall.java)
* [TemplateCall.java](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/TemplateCall.java)
* [JsonCall.java](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/JsonCall.java)
### [ListCall.java](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/ListCall.java)
This is the basic call for list type requests.
* [ScsCall.java](https://github.com/fluentcodes/elasticobjects/blob/master/elastic-objects/src/main/java/org/fluentcodes/projects/elasticobjects/calls/ScsCall.java)
* [CsvCall.java](https://github.com/fluentcodes/elasticobjects/blob/master/actions-csv/src/main/java/org/fluentcodes/projects/elasticobjects/calls/CsvCall.java)
* [XlsxCall.java](https://github.com/fluentcodes/elasticobjects/blob/master/actions-xlsx/src/main/java/org/fluentcodes/projects/elasticobjects/calls/XlsxCall.java)
-------------
[fluentcodes](http://fluentcodes.com) - [elastic objects](http://elasticobjects.com) - [mvn repository](https://mvnrepository.com/artifact/org.fluentcodes.projects.elasticobjects)