Skip to content

Commit 04bf633

Browse files
committed
[refactor] rename Function.overloaded to variadic
The overloaded flag is set to true for functions like fn:concat, which has an unlimited arity. The getter function and constructor parameter names were renamed to reflect this. It is therefore better to call it variadic (see https://en.wikipedia.org/wiki/Variadic_function). The term is also used in the XQuery specification to describe the nature of such functions.
1 parent b17c9a6 commit 04bf633

File tree

4 files changed

+17
-17
lines changed

4 files changed

+17
-17
lines changed

exist-core/src/main/java/org/exist/xquery/Function.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ public Expression getParent() {
219219
* @throws XPathException if an error occurs setting the arguments
220220
*/
221221
public void setArguments(final List<Expression> arguments) throws XPathException {
222-
if ((!mySignature.isOverloaded()) && arguments.size() != mySignature.getArgumentCount()) {
222+
if ((!mySignature.isVariadic()) && arguments.size() != mySignature.getArgumentCount()) {
223223
throw new XPathException(this, ErrorCodes.XPST0017,
224224
"Number of arguments of function " + getName() + " doesn't match function signature (expected " +
225225
mySignature.getArgumentCount() + ", got " + arguments.size() + ')');

exist-core/src/main/java/org/exist/xquery/FunctionSignature.java

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public static SequenceType[] singleArgument(final SequenceType arg) {
6060
private final QName name;
6161
private SequenceType[] arguments;
6262
private SequenceType returnType;
63-
private boolean isOverloaded = false;
63+
private boolean isVariadic = false;
6464
private String description = null;
6565
private String deprecated = null;
6666
private Map<String, String> metadata = null;
@@ -70,7 +70,7 @@ public FunctionSignature(final FunctionSignature other) {
7070
this.arguments = other.arguments != null ? Arrays.copyOf(other.arguments, other.arguments.length) : null;
7171
this.returnType = other.returnType;
7272
this.annotations = other.annotations != null ? Arrays.copyOf(other.annotations, other.annotations.length) : null;
73-
this.isOverloaded = other.isOverloaded;
73+
this.isVariadic = other.isVariadic;
7474
this.deprecated = other.deprecated;
7575
this.description = other.description;
7676
this.metadata = other.metadata != null ? new HashMap<>(other.metadata) : null;
@@ -84,8 +84,8 @@ public FunctionSignature(final QName name, final SequenceType[] arguments, final
8484
this(name, null, arguments, returnType);
8585
}
8686

87-
public FunctionSignature(final QName name, final SequenceType[] arguments, final SequenceType returnType, final boolean overloaded) {
88-
this(name, null, arguments, returnType, overloaded);
87+
public FunctionSignature(final QName name, final SequenceType[] arguments, final SequenceType returnType, final boolean variadic) {
88+
this(name, null, arguments, returnType, variadic);
8989
}
9090

9191
public FunctionSignature(final QName name, final String description, final SequenceType[] arguments, final SequenceType returnType) {
@@ -101,8 +101,8 @@ public FunctionSignature(final QName name, final String description, final Seque
101101
// this(name, description, arguments, returnType, false, "Moved to the module: " + deprecatedBy.getName().getNamespaceURI() + ", you should now use '" + deprecatedBy.getName().getPrefix() + ":" + deprecatedBy.getName().getLocalPart() + "' instead!");
102102
// }
103103

104-
public FunctionSignature(final QName name, final String description, final SequenceType[] arguments, final SequenceType returnType, final boolean overloaded, final String deprecated) {
105-
this(name, description, arguments, returnType, overloaded);
104+
public FunctionSignature(final QName name, final String description, final SequenceType[] arguments, final SequenceType returnType, final boolean variadic, final String deprecated) {
105+
this(name, description, arguments, returnType, variadic);
106106
setDeprecated(deprecated);
107107
}
108108

@@ -113,13 +113,13 @@ public FunctionSignature(final QName name, final String description, final Seque
113113
* @param description documentation string describing the function
114114
* @param arguments the sequence types of all expected arguments
115115
* @param returnType the sequence type returned by the function
116-
* @param overloaded set to true if the function may expect additional parameters
116+
* @param variadic set to true if the function may expect additional parameters
117117
*/
118-
public FunctionSignature(final QName name, final String description, final SequenceType[] arguments, final SequenceType returnType, final boolean overloaded) {
118+
public FunctionSignature(final QName name, final String description, final SequenceType[] arguments, final SequenceType returnType, final boolean variadic) {
119119
this.name = name;
120120
this.arguments = arguments;
121121
this.returnType = returnType;
122-
this.isOverloaded = overloaded;
122+
this.isVariadic = variadic;
123123
this.description = description;
124124
}
125125

@@ -132,7 +132,7 @@ public QName getName() {
132132
}
133133

134134
public int getArgumentCount() {
135-
if(isOverloaded) {
135+
if(isVariadic) {
136136
return -1;
137137
}
138138
return arguments != null ? arguments.length : 0;
@@ -193,8 +193,8 @@ public Map<String, String> getMetadata() {
193193
return metadata;
194194
}
195195

196-
public boolean isOverloaded() {
197-
return isOverloaded;
196+
public boolean isVariadic() {
197+
return isVariadic;
198198
}
199199

200200
public boolean isDeprecated() {
@@ -247,7 +247,7 @@ public String toString() {
247247
buf.append(arguments[i].toString());
248248
}
249249

250-
if(isOverloaded) {
250+
if(isVariadic) {
251251
buf.append(", ...");
252252
}
253253
}
@@ -289,7 +289,7 @@ public FunctionSignature rename(final QName newName) {
289289
final SequenceType[] argumentsCopy = arguments != null ? Arrays.copyOf(arguments, arguments.length) : null;
290290
final FunctionSignature newFunctionSignature = new FunctionSignature(newName, description, argumentsCopy, returnType, deprecated);
291291
newFunctionSignature.annotations = annotations != null ? Arrays.copyOf(annotations, annotations.length) : null;
292-
newFunctionSignature.isOverloaded = isOverloaded;
292+
newFunctionSignature.isVariadic = isVariadic;
293293
newFunctionSignature.metadata = metadata != null ? new HashMap<>(metadata) : null;
294294
return newFunctionSignature;
295295
}

exist-core/src/main/java/org/exist/xquery/functions/fn/FunHigherOrderFun.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ private Sequence foldRight(final FunctionReference ref, final Sequence zero, fin
252252
}
253253

254254
private boolean funcRefHasDifferentArity(final FunctionReference ref, final int n) {
255-
return (!ref.getSignature().isOverloaded() &&
255+
return (!ref.getSignature().isVariadic() &&
256256
ref.getSignature().getArgumentCount() != n);
257257
}
258258
}

exist-core/src/main/java/org/exist/xquery/functions/fn/LoadXQueryModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ public static void addFunctionRefsFromModule(final Expression parent, final XQue
251251
if (!signature.isPrivate()) {
252252
if (module.isInternalModule()) {
253253
int arity;
254-
if (signature.isOverloaded()) {
254+
if (signature.isVariadic()) {
255255
arity = signature.getArgumentTypes().length;
256256
}
257257
else {

0 commit comments

Comments
 (0)