-
Notifications
You must be signed in to change notification settings - Fork 84
Expand file tree
/
Copy pathRuntimeStaticContext.java
More file actions
93 lines (77 loc) · 2.83 KB
/
RuntimeStaticContext.java
File metadata and controls
93 lines (77 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package org.rumbledb.context;
import java.io.Serializable;
import org.rumbledb.config.RumbleRuntimeConfiguration;
import org.rumbledb.exceptions.ExceptionMetadata;
import org.rumbledb.exceptions.OurBadException;
import org.rumbledb.expressions.ExecutionMode;
import org.rumbledb.types.SequenceType;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.KryoSerializable;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
public class RuntimeStaticContext implements Serializable, KryoSerializable {
private static final long serialVersionUID = 1L;
private RumbleRuntimeConfiguration configuration;
private SequenceType staticType;
private ExecutionMode executionMode;
private ExceptionMetadata metadata;
public RuntimeStaticContext() {
this.configuration = null;
this.staticType = null;
this.executionMode = null;
this.metadata = null;
}
public RuntimeStaticContext(
RumbleRuntimeConfiguration configuration,
SequenceType staticType,
ExecutionMode executionMode,
ExceptionMetadata metadata
) {
this.configuration = configuration;
this.staticType = staticType;
this.executionMode = executionMode;
this.metadata = metadata;
}
public RuntimeStaticContext(
RumbleRuntimeConfiguration configuration,
ExecutionMode executionMode,
ExceptionMetadata metadata
) {
this.configuration = configuration;
this.staticType = null;
this.executionMode = executionMode;
this.metadata = metadata;
}
public RumbleRuntimeConfiguration getConfiguration() {
return this.configuration;
}
public SequenceType getStaticType() {
if (this.staticType == null) {
throw new OurBadException("Clauses do not have static types.");
}
return this.staticType;
}
public ExecutionMode getExecutionMode() {
return this.executionMode;
}
public void setExecutionMode(ExecutionMode mode) {
this.executionMode = mode;
}
public ExceptionMetadata getMetadata() {
return this.metadata;
}
@Override
public void write(Kryo kryo, Output output) {
kryo.writeObject(output, this.configuration);
kryo.writeObject(output, this.staticType);
kryo.writeObject(output, this.executionMode);
kryo.writeObject(output, this.metadata);
}
@Override
public void read(Kryo kryo, Input input) {
this.configuration = kryo.readObject(input, RumbleRuntimeConfiguration.class);
this.staticType = kryo.readObject(input, SequenceType.class);
this.executionMode = kryo.readObject(input, ExecutionMode.class);
this.metadata = kryo.readObject(input, ExceptionMetadata.class);
}
}