-
Notifications
You must be signed in to change notification settings - Fork 188
/
AxiomValueContext.java
70 lines (40 loc) · 1.89 KB
/
AxiomValueContext.java
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
package com.evolveum.axiom.lang.impl;
import com.evolveum.axiom.api.AxiomName;
import com.evolveum.axiom.api.AxiomItem;
import com.evolveum.axiom.api.AxiomValue;
import com.evolveum.axiom.api.schema.AxiomItemDefinition;
import com.evolveum.axiom.api.schema.AxiomIdentifierDefinition.Scope;
import com.evolveum.axiom.lang.api.IdentifierSpaceKey;
import com.evolveum.axiom.lang.impl.AxiomStatementRule.ActionBuilder;
public interface AxiomValueContext<V> {
void replace(AxiomValue<?> axiomItemValue);
default <T> AxiomItemContext<T> childItem(AxiomItemDefinition def) {
return childItem(def.name());
}
<T> AxiomItemContext<T> childItem(AxiomName name);
V currentValue();
AxiomItemContext<V> parent();
void mergeItem(AxiomItem<?> axiomItem);
void register(AxiomName space, Scope scope, IdentifierSpaceKey key);
AxiomRootContext root();
ActionBuilder<?> newAction(String name);
default AxiomValueContext<?> parentValue() {
return parent().parent();
}
void replaceValue(V object);
<V> AxiomValueReference<V> asReference();
/*V requireValue() throws AxiomSemanticException;
AxiomItemDefinition definition();
<V> AxiomValueContext<V> createEffectiveChild(AxiomIdentifier axiomIdentifier, V value);
Optional<V> optionalValue();
void replace(Dependency<AxiomItemValue<?>> statement);
AxiomValueContext<?> parent();
void register(AxiomIdentifier space, Scope scope, IdentifierSpaceKey key);
V requireValue(Class<V> type);
void importIdentifierSpace(NamespaceContext namespaceContext);
void exportIdentifierSpace(IdentifierSpaceKey namespace);
void mergeItem(AxiomItem<?> children);
AxiomStatementRule.Context<?> newAction(String actionName);
AxiomStatementRule.Context<?> modify(AxiomValueContext<?> target, String actionName);
void mergeEffectiveItemValues(AxiomItem<?> axiomItem); */
}