---
title: The Event Context
---


The entire event system in Mixson revolves around using the `EventContext`. Each subsection of the wiki page will detail
a method and its purpose. Note that the generic type of `T` refers to the type of the resource the event is targeting.

## getFile
```java
T getFile();
```
**Returns**: a modifiable `JsonElement` of the resource the event is targeting.

## setFile
```java
void setFile(T file);
```
**Parameter "file"**: the `file` to overwrite the existing resource in the context.

## getIndex
```java
Index getIndex();
```
**Returns**: the `Index` of the resource the event is targeting.

## getEventName
```java
String getEventName();
```
**Returns**: a `String` of the `eventName` given to the event during registration.

## getEventUUID
```java
UUID getEventUUID();
```
**Returns**: the `UUID` of the event running.

## getPriority
```java
int getPriority();
```
**Returns**: a `int` from the `priority` of the given event.

## markForDeletion
```java
void markForDeletion(boolean shouldDelete);
```
**Parameter "shouldDelete"**: the `shouldDelete` is to be a boolean value stating if the resource being acted upon
should be deleted at the end of runtime. Proceeding calls to `EventContext#markForDeletion` override the previous calls.

## createResource
```java
void createResource(Index id, T elem);
```
**Parameter "id"**: the `id` is to be the `Index` for the new resource. A `MixsonException` is thrown if the ordinal is
changed from `-1` and the resource type does not support ordinals.

**Parameter "elem"**: the `elem` is to be the newly created resource.

## cancelFutureEvent
```java
void cancelFutureEvent(UUID uuid);
```
**Parameter "uuid"**: the `UUID` of the event to be canceled for the given runtime.

## pullIntoRuntime
```java
void pullIntoRuntime(UUID uuid);
```
**Parameter "uuid"**: the `UUID` of the event to be pulled into the runtime. Any event that still has a valid lifetime
will run if pulled. Pulling events is the only way to execute events with a deferred lifetime.

## captureFiles
```java
List<Mutable<T>> captureFiles(Index id);
```
**Parameter "id"**: the `id` is to be the `Index` of the resource to be captured.

**Returns**: a `List` of `Mutable<T>`. Each `Mutable<T>` contains a captured resource. If any `Mutable<T>` is set to
hold a value of `null`, then a `MixsonException` will be thrown. If the error policy is set to `Log`, then `Mutable<T>`s
could be returned with a `null` value. `Mutable<T>`s with a `null` value are not tracked by the runtime, so any changes
will not be saved.

## setDebugExport
```java
void setDebugExport(T result);
```
**Parameter "result"**: the `result` is the file that will be exported if the DebugOption `EXPORT_PATCHED_FILE` is
enabled. If the method is not called, the event will default to the file in the context.

## cancelDebugExport
```java
void cancelDebugExport();
```
Stops any files from being exported, even if the DebugOption `EXPORT_PATCHED_FILE` is enabled.
