1
2
3
4
5
6 package dev.metaschema.core.metapath.function;
7
8 import java.util.List;
9 import java.util.Objects;
10
11 import dev.metaschema.core.metapath.item.IItem;
12 import dev.metaschema.core.metapath.item.ISequence;
13 import edu.umd.cs.findbugs.annotations.NonNull;
14 import edu.umd.cs.findbugs.annotations.Nullable;
15
16
17
18
19
20
21
22
23
24
25
26 public final class CalledContext {
27 @NonNull
28 private final IFunction function;
29 @Nullable
30 private final IItem contextItem;
31 @NonNull
32 private final List<ISequence<?>> arguments;
33
34
35
36
37
38
39
40
41
42
43
44
45 public CalledContext(
46 @NonNull IFunction function,
47 @NonNull List<ISequence<?>> arguments,
48 @Nullable IItem contextItem) {
49 this.function = function;
50 this.contextItem = contextItem;
51 this.arguments = arguments;
52 }
53
54
55
56
57
58
59 @NonNull
60 public IFunction getFunction() {
61 return function;
62 }
63
64
65
66
67
68
69 @Nullable
70 public IItem getContextItem() {
71 return contextItem;
72 }
73
74
75
76
77
78
79 @NonNull
80 public List<ISequence<?>> getArguments() {
81 return arguments;
82 }
83
84 @Override
85 public int hashCode() {
86 final int prime = 31;
87 int result = 1;
88 result = prime * result + getFunction().hashCode();
89 return prime * result + Objects.hash(contextItem, arguments);
90 }
91
92 @Override
93 public boolean equals(Object obj) {
94 if (this == obj) {
95 return true;
96 }
97 if (obj == null || getClass() != obj.getClass()) {
98 return false;
99 }
100 CalledContext other = (CalledContext) obj;
101 return Objects.equals(function, other.function)
102 && Objects.equals(arguments, other.arguments)
103 && Objects.equals(contextItem, other.contextItem);
104 }
105 }