Document layout
At the heart of Adama is a focus on data, which makes organizing your data for state management a critical component of building applications with this language. In Adama, state is organized at the document level as a series of fields, which represent different aspects of the state that your application needs to manage. By carefully laying out these fields, you can create a robust and efficient system for managing your application's state. For example, the Adama code below outlines three fields that might be used in an application:
public string output;
private double balance;
int count;
These three fields will establish a persistent document in JSON:
{"output":"","balance":0.0,"count":0}
The public and private modifiers control what users will see, and the omission of either results in private by default. In this case, users will see:
{"output":""}
when they connect to the document. Adama's strong privacy isolation guarantees ensure a clear separation between what users can see and what the system sees, creating a gap that protects sensitive data from unauthorized access.
The language has many types to leverage along with a more ways to expressive privacy rules.
Furthermore, state can be laid out with records, collected into tables, and computations exposed via formulas.
Include Statement
In Adama's data-centric approach, simple applications often don't require additional files. However, for larger projects, managing everything in a single file can be cumbersome. Adama supports splitting files using the @include
keyword, without the .adama
file extension, for example:
@include path/to/file;