# File model

The file model represents objects that will be saved in YAML file.

There are two types of file models:

* Saving everything to one file (SingleFile annotation)
* Saving one object to one file (ManyFiles annotation )

Every file model must have IdSection annotation on Id field.

The field which is annotated IdSection annotation is a unique key in YAML file, which represents one object. It is a primary section of an object in YAML file.

Saving, and updating YAML files system is based on Bukkit serialization.

{% embed url="<https://www.spigotmc.org/threads/tutorial-bukkit-custom-serialization.148781/>" %}

Every file model must be registered in the main class.

```java
ConfigurationSerialization.registerClass(UserCoins.class); //without alias
ConfigurationSerialization.registerClass(UserCoins.class, "UserCoins"); //with alias 
```

{% hint style="info" %}
In the file model constructor must be called init method.
{% endhint %}

File model methods:

```java
ConfigurationFile getConfigurationFile(); //gets information about file
```
