diff --git a/build.gradle b/build.gradle index d463947dd..f5d11837e 100644 --- a/build.gradle +++ b/build.gradle @@ -4,38 +4,39 @@ // used for that. So we have to add the properties plugin to the buildscript classpath and then apply the properties // plugin via subprojects below. buildscript { - repositories { - maven { - url = "https://plugins.gradle.org/m2/" - } - } - dependencies { - classpath "net.saliman:gradle-properties-plugin:1.5.2" - } + repositories { + maven { + url = "https://plugins.gradle.org/m2/" + } + } + dependencies { + classpath "net.saliman:gradle-properties-plugin:1.5.2" + } } subprojects { - apply plugin: "net.saliman.properties" - apply plugin: 'java' + apply plugin: "net.saliman.properties" + apply plugin: 'java' - tasks.withType(JavaCompile) { - options.encoding = 'UTF-8' - } + tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' + options.compilerArgs += ["-Xlint:unchecked", "-Xlint:deprecation"] + } - // To ensure that the Java Client continues to support Java 8, both source and target compatibility are set to 1.8. - java { - sourceCompatibility = 1.8 - targetCompatibility = 1.8 - } + // To ensure that the Java Client continues to support Java 8, both source and target compatibility are set to 1.8. + java { + sourceCompatibility = 1.8 + targetCompatibility = 1.8 + } - configurations { - testImplementation.extendsFrom compileOnly - } + configurations { + testImplementation.extendsFrom compileOnly + } - repositories { - mavenLocal() - mavenCentral() - } + repositories { + mavenLocal() + mavenCentral() + } test { systemProperty "file.encoding", "UTF-8" @@ -43,10 +44,10 @@ subprojects { } // Until we do a cleanup of javadoc errors, the build (and specifically the javadoc task) fails on Java 11 - // and higher. Preventing that until the cleanup can occur. - javadoc.failOnError = false + // and higher. Preventing that until the cleanup can occur. + javadoc.failOnError = false - // Ignores warnings on param tags with no descriptions. Will remove this once javadoc errors are addressed. - // Until then, it's just a lot of noise. - javadoc.options.addStringOption('Xdoclint:none', '-quiet') + // Ignores warnings on param tags with no descriptions. Will remove this once javadoc errors are addressed. + // Until then, it's just a lot of noise. + javadoc.options.addStringOption('Xdoclint:none', '-quiet') } diff --git a/examples/src/main/java/com/marklogic/client/example/extension/BatchManager.java b/examples/src/main/java/com/marklogic/client/example/extension/BatchManager.java index 0f91c00f3..56bcda5d3 100644 --- a/examples/src/main/java/com/marklogic/client/example/extension/BatchManager.java +++ b/examples/src/main/java/com/marklogic/client/example/extension/BatchManager.java @@ -142,11 +142,6 @@ public void close() { } items = null; } - @Override - protected void finalize() throws Throwable { - close(); - super.finalize(); - } } class InputItem { diff --git a/examples/src/main/java/com/marklogic/client/example/extension/SearchCollector.java b/examples/src/main/java/com/marklogic/client/example/extension/SearchCollector.java index 14115a6f5..1a08ff7dd 100644 --- a/examples/src/main/java/com/marklogic/client/example/extension/SearchCollector.java +++ b/examples/src/main/java/com/marklogic/client/example/extension/SearchCollector.java @@ -86,7 +86,7 @@ private RequestParameters initParams(String optionsName, long start) { params.add("format", "xml"); params.add("start", String.valueOf(start)); - if (optionsName != null && optionsName.length() > 0) + if (optionsName != null && !optionsName.isEmpty()) params.add("options", optionsName); if (pageLength != QueryManager.DEFAULT_PAGE_LENGTH) params.add("pageLength", String.valueOf(pageLength)); @@ -163,11 +163,5 @@ public void close() { searchResult = null; } } - - @Override - protected void finalize() throws Throwable { - close(); - super.finalize(); - } } } diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/ApplyTransformTest.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/ApplyTransformTest.java index 61dfaadc4..e17bbd5d4 100644 --- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/ApplyTransformTest.java +++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/ApplyTransformTest.java @@ -550,7 +550,7 @@ public void jsMasstransformReplaceDelete() throws Exception { assertFalse(isFailureCalled.get()); assertTrue(flag.get()); - Set urisList = Collections.synchronizedSet(new HashSet()); + Set urisList = Collections.synchronizedSet(new HashSet<>()); assertTrue(urisList.isEmpty()); QueryBatcher queryBatcher = dmManager.newQueryBatcher(new StructuredQueryBuilder() @@ -622,7 +622,7 @@ public void stopTransformJobTest() throws Exception { Set successUris = Collections.synchronizedSet(new HashSet<>()); Set failedUris = Collections.synchronizedSet(new HashSet<>()); - List failures = new Vector<>(); + List failures = Collections.synchronizedList(new ArrayList<>()); ApplyTransformListener listener = new ApplyTransformListener() .withTransform(transform) diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/StringQueryHostBatcherTest.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/StringQueryHostBatcherTest.java index c3893b359..3ef6d2901 100644 --- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/StringQueryHostBatcherTest.java +++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/StringQueryHostBatcherTest.java @@ -255,7 +255,7 @@ public void testAndWordQuery() throws Exception qb.awaitCompletion(); } catch (Exception ex) { batchIllegalState.append(ex.getMessage()); - System.out.println("Exceptions buffer from empty withCriteria : " + batchIllegalState.toString()); + System.out.println("Exceptions buffer from empty withCriteria : " + batchIllegalState); assertTrue( batchIllegalState.toString().contains("Criteria cannot be an empty string")); } } catch (Exception e) { @@ -649,7 +649,7 @@ public void testRawCtsQuery() throws IOException, InterruptedException { dmManager.startJob(queryBatcher1); queryBatcher1.awaitCompletion(1, TimeUnit.MINUTES); - System.out.println("Batch Results are : " + batchResults.toString()); + System.out.println("Batch Results are : " + batchResults); System.out.println("File name is : " + filenames[4]); assertTrue( batchResults.toString().contains("cts-" + filenames[4])); @@ -827,7 +827,7 @@ public void testQueryBatcherQueryFailures() throws IOException, InterruptedExcep if (!batchFailResults.toString().isEmpty() && batchFailResults.toString().contains("Exceptions")) { // Write out and assert on query failures. System.out.println("Exception Buffer contents on Query Exceptions received from callback onQueryFailure"); - System.out.println(batchFailResults.toString()); + System.out.println(batchFailResults); // Remove this failure once there are no NPEs and doa asserts on various // counters in failure scenario. fail("Test failed due to exceptions"); @@ -873,7 +873,7 @@ public void testQueryBatcherCallbackClient() throws IOException, InterruptedExce // Flush batcher.flushAndWait(); - StringBuffer batchFailResults = new StringBuffer(); + StringBuilder batchFailResults = new StringBuilder(); String expectedStr = "Vannevar Bush wrote an article for The Atlantic Monthly"; QueryManager queryMgr = client.newQueryManager(); @@ -1905,7 +1905,7 @@ public void testDifferentQueryTypes() throws Exception StructuredQueryDefinition queryRangedef = qb.range(qb.element("popularity"), "xs:int", Operator.GE, 4); QueryBatcher queryBatcher2 = dmManagerTmp.newQueryBatcher(queryRangedef); // StringBuilder batchRangeResults = new StringBuilder(); - List batchRangeResults = new ArrayList(); + List batchRangeResults = new ArrayList<>(); StringBuilder batchRangeFailResults = new StringBuilder(); queryBatcher2.onUrisReady(batch -> { @@ -1938,7 +1938,7 @@ public void testDifferentQueryTypes() throws Exception StructuredQueryDefinition valuequeyDef = qb.value(qb.elementAttribute(qb.element(new QName("http://cloudbank.com", "price")), qb.attribute("amt")), "0.1"); QueryBatcher queryBatcher3 = dmManagerTmp.newQueryBatcher(valuequeyDef); - List batchValueResults = new ArrayList(); + List batchValueResults = new ArrayList<>(); StringBuilder batchvalueFailResults = new StringBuilder(); queryBatcher3.onUrisReady(batch -> { diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteBatcherJobReportTest.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteBatcherJobReportTest.java index 49b82b8e6..7144ff3b0 100644 --- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteBatcherJobReportTest.java +++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteBatcherJobReportTest.java @@ -333,7 +333,7 @@ public void testJobReportTimes() throws Exception { querydef.setCriteria("k and v"); AtomicInteger successDocs = new AtomicInteger(); - StringBuffer failures = new StringBuffer(); + StringBuilder failures = new StringBuilder(); QueryBatcher deleteBatcher = dmManager.newQueryBatcher(querydef) .withBatchSize(5) diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteHostBatcherTest.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteHostBatcherTest.java index b6c1fa3d1..3ffd17613 100644 --- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteHostBatcherTest.java +++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/datamovement/functionaltests/WriteHostBatcherTest.java @@ -1697,7 +1697,7 @@ public void run() { if (!threadMap.containsKey(poolname)) { threadMap.put(poolname, 1); } else { - threadMap.put(poolname, new Integer(threadMap.get(poolname) + 1)); + threadMap.put(poolname, threadMap.get(poolname) + 1); } } } diff --git a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestPartialUpdate.java b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestPartialUpdate.java index 125b01dc2..5e9cf99c7 100644 --- a/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestPartialUpdate.java +++ b/marklogic-client-api-functionaltests/src/test/java/com/marklogic/client/fastfunctest/TestPartialUpdate.java @@ -96,7 +96,7 @@ public void testPartialUpdateXML() throws IOException { // Flip the boolean values for both screen types patchBldrBool.replaceValue("/resources/screen[@name=\"screen_small\"]", false); - patchBldrBool.replaceValue("/resources/screen[@name=\"adjust_view_bounds\"]", new Boolean(true)); + patchBldrBool.replaceValue("/resources/screen[@name=\"adjust_view_bounds\"]", true); DocumentPatchHandle patchHandleBool = patchBldrBool.build(); docMgr.patch(xmlDocId, patchHandleBool); @@ -174,7 +174,7 @@ public void testPartialUpdateJSON() throws IOException { // Replace original to false and modified to true. patchBldrBool.replaceValue("$.employees[5].original", false); - patchBldrBool.replaceValue("$.employees[1].modified", new Boolean(true)); + patchBldrBool.replaceValue("$.employees[1].modified", true); DocumentPatchHandle patchHandleBool = patchBldrBool.build(); docMgr.patch(docId, patchHandleBool); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ExtractRowsViaTemplateListener.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ExtractRowsViaTemplateListener.java index e5d4ea712..bc9caeb99 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ExtractRowsViaTemplateListener.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ExtractRowsViaTemplateListener.java @@ -193,7 +193,7 @@ private Iterable getTypedRows(QueryBatch batch) throws IOException { jp.nextToken(); if ( jp.currentToken() == JsonToken.END_OBJECT) { logger.warn("No documents found for this batch"); - return new ArrayList(); + return new ArrayList<>(); } else { return new Iterable() { public Iterator iterator() { @@ -242,7 +242,7 @@ private TypedRow getOneTypedRow(JsonParser jp) { if ( jp.currentToken() != JsonToken.FIELD_NAME ) { throw new MarkLogicIOException("Expected a uri for next template result"); } - uri = jp.getCurrentName(); + uri = jp.currentName(); if ( jp.nextToken() != JsonToken.START_ARRAY ) { throw new MarkLogicIOException("Expected an array of rows"); } @@ -268,7 +268,7 @@ private TypedRow getOneTypedRow(JsonParser jp) { if ( "triple".equals(jp.nextFieldName()) ) { throw new MarkLogicIOException("Expected a row but we got a triple. We don't support triples"); } - if ( !"row".equals(jp.getCurrentName()) || jp.nextToken() != JsonToken.START_OBJECT ) { + if ( !"row".equals(jp.currentName()) || jp.nextToken() != JsonToken.START_OBJECT ) { throw new MarkLogicIOException("Expected row to start"); } while (!"data".equals(jp.nextFieldName())) { @@ -281,18 +281,18 @@ private TypedRow getOneTypedRow(JsonParser jp) { while (jp.nextToken() == JsonToken.FIELD_NAME) { JsonToken valueType = jp.nextToken(); if ( valueType == JsonToken.VALUE_STRING ) { - row.put(jp.getCurrentName(), pb.xs.string(jp.getText())); + row.put(jp.currentName(), pb.xs.string(jp.getText())); } else if ( valueType == JsonToken.VALUE_NUMBER_INT ) { - row.put(jp.getCurrentName(), pb.xs.integer(jp.getIntValue())); + row.put(jp.currentName(), pb.xs.integer(jp.getIntValue())); } else if ( valueType == JsonToken.VALUE_NUMBER_FLOAT ) { - row.put(jp.getCurrentName(), pb.xs.floatVal(jp.getFloatValue())); + row.put(jp.currentName(), pb.xs.floatVal(jp.getFloatValue())); } else if ( valueType == JsonToken.VALUE_TRUE || valueType == JsonToken.VALUE_FALSE ) { - row.put(jp.getCurrentName(), pb.xs.booleanVal(jp.getBooleanValue())); + row.put(jp.currentName(), pb.xs.booleanVal(jp.getBooleanValue())); } else if ( valueType == JsonToken.VALUE_NULL ) { - row.put(jp.getCurrentName(), null); + row.put(jp.currentName(), null); } else { throw new MarkLogicIOException( - "Unexpected value type for column \"" + jp.getCurrentName() + "\""); + "Unexpected value type for column \"" + jp.currentName() + "\""); } } if ( jp.currentToken() != JsonToken.END_OBJECT || jp.nextToken() != JsonToken.END_OBJECT diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/HostAvailabilityListener.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/HostAvailabilityListener.java index e4f3ac70b..4dfc19aec 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/HostAvailabilityListener.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/HostAvailabilityListener.java @@ -141,7 +141,8 @@ public HostAvailabilityListener withMinHosts(int numHosts) { * * @return this instance (for method chaining) */ - public HostAvailabilityListener withHostUnavailableExceptions(Class... exceptionTypes) { + @SafeVarargs + public final HostAvailabilityListener withHostUnavailableExceptions(Class... exceptionTypes) { hostUnavailableExceptions = new ArrayList<>(); for ( Class exception : exceptionTypes ) { hostUnavailableExceptions.add(exception); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/JSONSplitter.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/JSONSplitter.java index 51f9de9bf..390fcba13 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/JSONSplitter.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/JSONSplitter.java @@ -154,6 +154,7 @@ public Stream split(JsonParser input) throws IOException { * files.The splitFilename could either be provided here or in user-defined UriMaker. * @return a stream of DocumentWriteOperation to write to database */ + @SuppressWarnings("unchecked") public Stream splitWriteOperations(JsonParser input, String splitFilename) { if (input == null) { throw new IllegalArgumentException("Input cannot be null"); @@ -161,7 +162,7 @@ public Stream splitWriteOperations(JsonParser input, Str count = 0; this.splitFilename = splitFilename; - JSONSplitter.DocumentWriteOperationSpliterator spliterator = + JSONSplitter.DocumentWriteOperationSpliterator spliterator = new JSONSplitter.DocumentWriteOperationSpliterator<>(this, input); return StreamSupport.stream(spliterator, true); } @@ -385,7 +386,7 @@ T getNextHandle() { switch (currentToken) { case FIELD_NAME: key.pop(); - key.push(jsonParser.getCurrentName()); + key.push(jsonParser.currentName()); break; case START_OBJECT: @@ -556,7 +557,7 @@ public JsonToken nextToken() throws IOException { } maintainDepth(); - return super.getCurrentToken(); + return super.currentToken(); } @Override diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/PathSplitter.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/PathSplitter.java index 0afdb7be4..b1def07b5 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/PathSplitter.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/PathSplitter.java @@ -104,6 +104,7 @@ public Stream splitDocumentWriteOperations(Stream return paths.flatMap(this::flatMapDocumentWriteOperations); } + @SuppressWarnings("unchecked") private Stream flatMapHandles(Path path) { String extension = getExtension(path); Splitter splitter = lookupSplitter(extension); @@ -119,6 +120,7 @@ private Stream flatMapHandles(Path path) { } } + @SuppressWarnings("unchecked") private Stream flatMapDocumentWriteOperations(Path path) { String extension = getExtension(path); Splitter splitter = lookupSplitter(extension); @@ -153,6 +155,7 @@ private String getExtension(Path path) { return matcher.group(1); } + @SuppressWarnings("unchecked") private Splitter lookupSplitter(String extension) { Splitter splitter = splitterMap.get(extension); if (splitter == null && splitterMap.get(DEFAULT_SPLITTER_KEY) != null) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ProgressListener.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ProgressListener.java index 57f488362..a9bc4768b 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ProgressListener.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/ProgressListener.java @@ -55,6 +55,7 @@ public ProgressListener() { * Use this constructor for when the total number of results isn't known ahead of time. * @param consumers one or more callbacks for progress updates */ + @SafeVarargs public ProgressListener(Consumer... consumers) { this(0, consumers); } @@ -65,6 +66,7 @@ public ProgressListener(Consumer... consumers) { * @param totalResults the total number of results that is the processing goal * @param consumers one or more callbacks for progress updates */ + @SafeVarargs public ProgressListener(long totalResults, Consumer... consumers) { this.totalResults = totalResults; for (Consumer consumer : consumers) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/RowBatcher.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/RowBatcher.java index 042ce7d7a..3ece3bf30 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/RowBatcher.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/RowBatcher.java @@ -218,7 +218,8 @@ public interface RowBatcher extends Batcher { * rows when more than one callback function is needed. * @param listeners the success listeners */ - void setSuccessListeners(RowBatchSuccessListener... listeners); + @SuppressWarnings("unchecked") + void setSuccessListeners(RowBatchSuccessListener... listeners); /** * Specifies the callback functions for errors when more than * one callback function is needed. diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/XMLSplitter.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/XMLSplitter.java index 8a9e0fee7..a29c73daa 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/XMLSplitter.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/XMLSplitter.java @@ -483,6 +483,7 @@ private static class DocumentWriteOperationSpliterator super(xmlSplitter, input); } @Override + @SuppressWarnings("unchecked") public boolean tryAdvance(Consumer action) { T handle = (T) getNextHandle(); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/BatchImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/BatchImpl.java index 44a92cbba..706c00208 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/BatchImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/BatchImpl.java @@ -24,6 +24,7 @@ public BatchImpl(Class as) { } @Override + @SuppressWarnings("unchecked") public T[] getItems() { if (items == null) { return (T[]) Array.newInstance(as, 0); @@ -35,15 +36,22 @@ public BatchImpl withItems(T[] items) { return this; } + @SuppressWarnings("unchecked") public BatchImpl withClient(DatabaseClient client) { return (BatchImpl) super.withClient(client); } + + @SuppressWarnings("unchecked") public BatchImpl withTimestamp(Calendar timestamp) { return (BatchImpl) super.withTimestamp(timestamp); } + + @SuppressWarnings("unchecked") public BatchImpl withJobTicket(JobTicket jobTicket) { return (BatchImpl) super.withJobTicket(jobTicket); } + + @SuppressWarnings("unchecked") public BatchImpl withJobBatchNumber(long jobBatchNumber) { return (BatchImpl) super.withJobBatchNumber(jobBatchNumber); } diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/QueryBatcherImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/QueryBatcherImpl.java index 8d593e5d7..f9581867a 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/QueryBatcherImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/QueryBatcherImpl.java @@ -1096,13 +1096,6 @@ private void closeAllListeners() { } } - protected void finalize() { - if (!isStoppedTrue()) { - logger.warn("QueryBatcher instance \"{}\" was never cleanly stopped. You should call dataMovementManager.stopJob.", - getJobName()); - } - } - /** * A handler for rejected tasks that waits for the work queue to * become empty and then submits the rejected task diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/RowBatcherImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/RowBatcherImpl.java index 3e434c337..4804adc55 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/RowBatcherImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/datamovement/impl/RowBatcherImpl.java @@ -44,7 +44,7 @@ class RowBatcherImpl extends BatcherImpl implements RowBatcher { private final AtomicLong failedBatches = new AtomicLong(0); private final AtomicInteger runningThreads = new AtomicInteger(0); private RowBatchFailureListener[] failureListeners; - private RowBatchSuccessListener[] successListeners; + private RowBatchSuccessListener[] successListeners; private RawPlanDefinition pagedPlan; private long rowCount = 0; @@ -162,6 +162,7 @@ public RowBatcher withThreadCount(int threadCount) { } @Override + @SuppressWarnings("unchecked") public RowBatcher onSuccess(RowBatchSuccessListener listener) { requireNotStarted("Must set success listener before starting job"); if (listener == null) { @@ -212,20 +213,26 @@ public RowBatcher withConsistentSnapshot() { } @Override - public RowBatchSuccessListener[] getSuccessListeners() { + @SuppressWarnings("unchecked") + public RowBatchSuccessListener[] getSuccessListeners() { return successListeners; } + @Override public RowBatchFailureListener[] getFailureListeners() { return failureListeners; } + + @SafeVarargs @Override - public void setSuccessListeners(RowBatchSuccessListener... listeners) { + public final void setSuccessListeners(RowBatchSuccessListener... listeners) { requireNotStarted("Must set success listeners before starting job"); this.successListeners = listeners; } + + @SafeVarargs @Override - public void setFailureListeners(RowBatchFailureListener... listeners) { + public final void setFailureListeners(RowBatchFailureListener... listeners) { requireNotStarted("Must set failure listeners before starting job"); this.failureListeners = listeners; } @@ -233,9 +240,11 @@ private void initRequestEvent(RowBatchEventImpl event) { event.withClient(getPrimaryClient()); event.withJobTicket(getJobTicket()); } + + @SuppressWarnings("unchecked") private void notifySuccess(RowBatchSuccessListener.RowBatchResponseEvent event) { if (successListeners == null || successListeners.length == 0) return; - for (RowBatchSuccessListener successListener: successListeners) { + for (RowBatchSuccessListener successListener: successListeners) { try { successListener.processEvent(event); } catch(Throwable e) { @@ -413,6 +422,7 @@ public synchronized void start(JobTicket ticket) { } } + @SuppressWarnings("unchecked") private boolean readRows(RowBatchCallable callable) { // assumes a batch size of at least 2 to avoid unsigned overflow long currentBatch = this.batchNum.incrementAndGet(); @@ -538,9 +548,12 @@ public synchronized RowBatcher withForestConfig(ForestConfiguration forestCon return this; } + @SuppressWarnings("unchecked") private void submit(Callable callable) { submit(new FutureTask(callable)); } + + @SuppressWarnings("unchecked") private void submit(FutureTask task) { threadPool.execute(task); } @@ -552,10 +565,14 @@ static private class RowBatchCallable implements Callable { this.rowBatcher = rowBatcher; this.handle = handle; } + + @SuppressWarnings("unchecked") private ContentHandle getHandle() { return handle; } + @Override + @SuppressWarnings("unchecked") public Boolean call() { try { return rowBatcher.readRows(this); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputCaller.java b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputCaller.java index bf181d816..551613e74 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputCaller.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputCaller.java @@ -25,6 +25,7 @@ public interface InputCaller extends IOEndpoint { * @param the input content representation (such as String) * @return the InputCaller instance for calling the endpoint. */ + @SuppressWarnings("unchecked") static InputCaller on(DatabaseClient client, JSONWriteHandle apiDecl, BufferableContentHandle inputHandle) { return new InputEndpointImpl(client, apiDecl, new HandleProvider.ContentHandleProvider<>(inputHandle,null)); } @@ -40,6 +41,7 @@ static InputCaller on(DatabaseClient client, JSONWriteHandle apiDecl, Buf * @param the input handle * @return the InputOutputCaller instance for calling the endpoint. */ + @SuppressWarnings("unchecked") static > InputCaller onHandles( DatabaseClient client, JSONWriteHandle apiDecl, I inputHandle ) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputOutputCaller.java b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputOutputCaller.java index b13f12221..15f84a58e 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputOutputCaller.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/InputOutputCaller.java @@ -53,6 +53,7 @@ static InputOutputCaller on( * @param the output handle * @return the InputOutputCaller instance for calling the endpoint. */ + @SuppressWarnings("unchecked") static ,O extends BufferableContentHandle> InputOutputCaller onHandles( DatabaseClient client, JSONWriteHandle apiDecl, I inputHandle, O outputHandle diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/OutputCaller.java b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/OutputCaller.java index 805d7d07b..9ac201761 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/OutputCaller.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/OutputCaller.java @@ -26,6 +26,7 @@ public interface OutputCaller extends IOEndpoint { * @param the output content representation (such as byte[]) * @return the OutputCaller instance for calling the endpoint. */ + @SuppressWarnings("unchecked") static OutputCaller on( DatabaseClient client, JSONWriteHandle apiDecl, BufferableContentHandle outputHandle ) { @@ -43,6 +44,7 @@ static OutputCaller on( * @param the output handle * @return the InputOutputCaller instance for calling the endpoint. */ + @SuppressWarnings("unchecked") static > OutputCaller onHandles( DatabaseClient client, JSONWriteHandle apiDecl, O outputHandle ) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/ExecEndpointImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/ExecEndpointImpl.java index c10742edc..76af4ce61 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/ExecEndpointImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/ExecEndpointImpl.java @@ -105,8 +105,7 @@ public void awaitCompletion() { else if(getCallContextQueue() != null && !getCallContextQueue().isEmpty()){ try { for (int i = 0; i < getThreadCount(); i++) { - BulkCallableImpl bulkCallableImpl = new BulkCallableImpl(this); - submitTask(bulkCallableImpl); + submitNewTask(); } if(getCallerThreadPoolExecutor() != null) getCallerThreadPoolExecutor().awaitTermination(); @@ -119,6 +118,12 @@ else if(getCallContextQueue() != null && !getCallContextQueue().isEmpty()){ } } + @SuppressWarnings("unchecked") + private void submitNewTask() { + BulkCallableImpl bulkCallableImpl = new BulkCallableImpl(this); + submitTask(bulkCallableImpl); + } + @Override public void setErrorListener(ErrorListener errorListener) { this.errorListener = errorListener; diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/IOEndpointImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/IOEndpointImpl.java index 2cc2bdd3f..475e29ec7 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/IOEndpointImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/IOEndpointImpl.java @@ -103,6 +103,7 @@ CallContextImpl newCallContext(boolean legacyContext){ return new CallContextImpl<>(this, legacyContext); } + @SuppressWarnings("unchecked") CallContextImpl[] checkAllowedArgs(IOEndpoint.CallContext[] callCtxts) { if (callCtxts == null || callCtxts.length ==0) throw new IllegalArgumentException("null or empty contexts for call"); @@ -112,6 +113,8 @@ CallContextImpl[] checkAllowedArgs(IOEndpoint.CallContext[] callCtxts) { } return contexts; } + + @SuppressWarnings("unchecked") CallContextImpl checkAllowedArgs(CallContext callCtxt) { if (!(callCtxt instanceof CallContextImpl)) { throw new IllegalArgumentException("Unknown implementation of call context"); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/OutputEndpointImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/OutputEndpointImpl.java index 5f4174563..6b2d9d53d 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/OutputEndpointImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/dataservices/impl/OutputEndpointImpl.java @@ -145,8 +145,7 @@ public void awaitCompletion() { else if(getCallContextQueue() != null && !getCallContextQueue().isEmpty()){ try { for (int i = 0; i < getThreadCount(); i++) { - BulkCallableImpl bulkCallableImpl = new BulkCallableImpl(this); - submitTask(bulkCallableImpl); + submitNewTask(); } getCallerThreadPoolExecutor().awaitTermination(); } @@ -158,6 +157,12 @@ else if(getCallContextQueue() != null && !getCallContextQueue().isEmpty()){ } } + @SuppressWarnings("unchecked") + private void submitNewTask() { + BulkCallableImpl bulkCallableImpl = new BulkCallableImpl(this); + submitTask(bulkCallableImpl); + } + private O[] getOutputStream(CallContextImpl callContext) { ErrorDisposition error = ErrorDisposition.RETRY; O[] output = null; diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java b/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java index aa6ce5a6d..58a2c533e 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilder.java @@ -1375,15 +1375,6 @@ protected PlanBuilder( */ public abstract ServerExpression xmlPi(ServerExpression name, ServerExpression value); /** - * Constructs a sequence from multiple attribute values to pass as a parameter to an operation. - *

- * Provides a client interface to the op:xml-attribute-seq server function. - * @param attribute the attribute values for the sequence - * @return a server expression with the attribute-node server data type - * @deprecated (as of 4.2) construct a {@link com.marklogic.client.type.ServerExpression} sequence with PlanBuilder.seq() - */ - public abstract ServerExpression xmlAttributeSeq(ServerExpression... attribute); - /** * Specifies a JavaScript or XQuery function installed on the server for use in post-processing in a map() or reduce() operation. * @param functionName the name of the function installed on the server * @param modulePath the path on the server for the library module providing the function diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilderBase.java b/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilderBase.java index 705c21795..61af7fcfa 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilderBase.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/expression/PlanBuilderBase.java @@ -141,7 +141,8 @@ public interface PlanBuilderBase { * @param rows This parameter provides any number of objects in which the key is a column name string identifying the column and the value is a literal with the value of the column. * @return an AccessPlan object */ - PlanBuilder.AccessPlan fromLiterals(@SuppressWarnings("unchecked") Map... rows); + @SuppressWarnings("unchecked") + PlanBuilder.AccessPlan fromLiterals(Map... rows); /** * Constructs a literal row set as in the SQL VALUES or SPARQL VALUES statements. When specifying rows with arrays, values are mapped to column names by position. * @param rows This parameter is either an array of object literals or sem:binding objects in which the key is a column name string identifying the column and the value is a literal with the value of the column, or this parameter is an object with a columnNames key having a value of an array of column names and a rowValues key having a value of an array of arrays with literal values. diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/extra/gson/GSONHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/extra/gson/GSONHandle.java index 36f0d535b..511bf4163 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/extra/gson/GSONHandle.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/extra/gson/GSONHandle.java @@ -86,7 +86,9 @@ public GSONHandle[] newHandleArray(int length) { /** * Returns the parser used to construct element objects from JSON. * @return the JSON parser. + * @deprecated Use static methods like JsonParser.parseString() or JsonParser.parseReader() directly instead */ + @Deprecated public JsonParser getParser() { if (parser == null) parser = new JsonParser(); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/DatabaseClientImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/DatabaseClientImpl.java index f110f44fb..a61b7df47 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/DatabaseClientImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/DatabaseClientImpl.java @@ -208,12 +208,6 @@ public void release() { services.release(); } - @Override - protected void finalize() throws Throwable { - release(); - super.finalize(); - } - @Override public Object getClientImplementation() { if (services == null) diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/HTTPKerberosAuthInterceptor.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/HTTPKerberosAuthInterceptor.java index 8f66229d1..44f4de8f7 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/HTTPKerberosAuthInterceptor.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/HTTPKerberosAuthInterceptor.java @@ -130,6 +130,7 @@ private Subject getContextSubject() { * need to authenticate * @return the HTTP Authorization header token */ + @SuppressWarnings("unchecked") private String buildAuthorizationHeader(String serverPrincipalName) throws LoginException { /* diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/NodeConverter.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/NodeConverter.java index 4b73e2166..a885dc6e8 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/NodeConverter.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/NodeConverter.java @@ -128,7 +128,8 @@ static public T withFormat(T handle, Format format) { } return handle; } - static public Stream streamWithFormat(Stream handles, Format format) { + @SuppressWarnings("unchecked") + static public Stream streamWithFormat(Stream handles, Format format) { if (handles == null || format == null) { return handles; } @@ -417,7 +418,8 @@ static public String ReaderToString(Reader reader) { } } - static public T jsonNodeToHandle(JsonNode node, T handle) { + @SuppressWarnings("unchecked") + static public T jsonNodeToHandle(JsonNode node, T handle) { if (node == null) { return null; } else if (handle == null) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PatchBuilderImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PatchBuilderImpl.java index 061906230..dc40a4139 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PatchBuilderImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PatchBuilderImpl.java @@ -12,6 +12,7 @@ import java.util.List; import java.util.Map; +@SuppressWarnings("unchecked") class PatchBuilderImpl extends BaseTypeImpl.BaseCallImpl implements PatchBuilder, BaseTypeImpl.BaseArgImpl { PatchBuilderImpl(XsStringVal contextPath) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java index 165ef6dda..77c97d02c 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderImpl.java @@ -8,13 +8,13 @@ import com.marklogic.client.type.*; -// IMPORTANT: Do not edit. This file is generated. +// IMPORTANT: Do not edit. This file is generated. abstract class PlanBuilderImpl extends PlanBuilderBaseImpl { PlanBuilderImpl() { } // builder methods - + @Override public ServerExpression add(ServerExpression... left) { if (left == null) { @@ -23,7 +23,7 @@ public ServerExpression add(ServerExpression... left) { return new XsExprImpl.NumericCallImpl("op", "add", left); } - + @Override public PlanAggregateColSeq aggregateSeq(PlanAggregateCol... aggregate) { if (aggregate == null) { @@ -32,7 +32,7 @@ public PlanAggregateColSeq aggregateSeq(PlanAggregateCol... aggregate) { return new AggregateColSeqListImpl(aggregate); } - + @Override public ServerExpression and(ServerExpression... left) { if (left == null) { @@ -41,13 +41,13 @@ public ServerExpression and(ServerExpression... left) { return new XsExprImpl.BooleanCallImpl("op", "and", left); } - + @Override public PlanAggregateCol arrayAggregate(String name, String column) { return arrayAggregate((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol arrayAggregate(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -59,13 +59,13 @@ public PlanAggregateCol arrayAggregate(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "array-aggregate", new Object[]{ name, column }); } - + @Override public PlanExprCol as(String column, ServerExpression expression) { return as((column == null) ? (PlanColumn) null : col(column), expression); } - + @Override public PlanExprCol as(PlanColumn column, ServerExpression expression) { if (column == null) { @@ -74,13 +74,13 @@ public PlanExprCol as(PlanColumn column, ServerExpression expression) { return new ExprColCallImpl("op", "as", new Object[]{ column, expression }); } - + @Override public PlanSortKey asc(String column) { return asc((column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanSortKey asc(PlanExprCol column) { if (column == null) { @@ -89,13 +89,13 @@ public PlanSortKey asc(PlanExprCol column) { return new SortKeyCallImpl("op", "asc", new Object[]{ column }); } - + @Override public PlanAggregateCol avg(String name, String column) { return avg((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol avg(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -107,13 +107,13 @@ public PlanAggregateCol avg(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "avg", new Object[]{ name, column }); } - + @Override public PlanNamedGroup bucketGroup(String name, String key, String boundaries) { return bucketGroup((name == null) ? (XsStringVal) null : xs.string(name), (key == null) ? (PlanExprCol) null : exprCol(key), (boundaries == null) ? (XsAnyAtomicTypeVal) null : xs.string(boundaries)); } - + @Override public PlanNamedGroup bucketGroup(XsStringVal name, PlanExprCol key, XsAnyAtomicTypeSeqVal boundaries) { if (name == null) { @@ -128,13 +128,13 @@ public PlanNamedGroup bucketGroup(XsStringVal name, PlanExprCol key, XsAnyAtomic return new NamedGroupCallImpl("op", "bucket-group", new Object[]{ name, key, boundaries }); } - + @Override public PlanNamedGroup bucketGroup(String name, String key, String boundaries, String collation) { return bucketGroup((name == null) ? (XsStringVal) null : xs.string(name), (key == null) ? (PlanExprCol) null : exprCol(key), (boundaries == null) ? (XsAnyAtomicTypeVal) null : xs.string(boundaries), (collation == null) ? (XsStringVal) null : xs.string(collation)); } - + @Override public PlanNamedGroup bucketGroup(XsStringVal name, PlanExprCol key, XsAnyAtomicTypeSeqVal boundaries, XsStringVal collation) { if (name == null) { @@ -149,13 +149,13 @@ public PlanNamedGroup bucketGroup(XsStringVal name, PlanExprCol key, XsAnyAtomic return new NamedGroupCallImpl("op", "bucket-group", new Object[]{ name, key, boundaries, collation }); } - + @Override public PlanColumn col(String column) { return col((column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanColumn col(XsStringVal column) { if (column == null) { @@ -164,7 +164,7 @@ public PlanColumn col(XsStringVal column) { return new ColumnCallImpl("op", "col", new Object[]{ column }); } - + @Override public PlanExprColSeq colSeq(String... col) { return colSeq( @@ -174,7 +174,7 @@ public PlanExprColSeq colSeq(String... col) { ); } - + @Override public PlanExprColSeq colSeq(PlanExprCol... col) { if (col == null) { @@ -183,13 +183,13 @@ public PlanExprColSeq colSeq(PlanExprCol... col) { return new ExprColSeqListImpl(col); } - + @Override public PlanAggregateCol count(String name) { return count((name == null) ? (PlanColumn) null : col(name)); } - + @Override public PlanAggregateCol count(PlanColumn name) { if (name == null) { @@ -198,13 +198,13 @@ public PlanAggregateCol count(PlanColumn name) { return new AggregateColCallImpl("op", "count", new Object[]{ name }); } - + @Override public PlanAggregateCol count(String name, String column) { return count((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol count(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -213,7 +213,7 @@ public PlanAggregateCol count(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "count", new Object[]{ name, column }); } - + @Override public PlanGroupSeq cube(PlanExprColSeq keys) { if (keys == null) { @@ -222,13 +222,13 @@ public PlanGroupSeq cube(PlanExprColSeq keys) { return new GroupSeqCallImpl("op", "cube", new Object[]{ keys }); } - + @Override public PlanSortKey desc(String column) { return desc((column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanSortKey desc(PlanExprCol column) { if (column == null) { @@ -237,7 +237,7 @@ public PlanSortKey desc(PlanExprCol column) { return new SortKeyCallImpl("op", "desc", new Object[]{ column }); } - + @Override public ServerExpression divide(ServerExpression left, ServerExpression right) { if (left == null) { @@ -249,43 +249,43 @@ public ServerExpression divide(ServerExpression left, ServerExpression right) { return new XsExprImpl.NumericCallImpl("op", "divide", new Object[]{ left, right }); } - + @Override public PlanRowColTypesSeq docColTypes() { return new RowColTypesSeqCallImpl("op", "doc-col-types", new Object[]{ }); } - + @Override public PlanDocColsIdentifier docCols() { return new DocColsIdentifierCallImpl("op", "doc-cols", new Object[]{ }); } - + @Override public PlanDocColsIdentifier docCols(String qualifier) { return docCols((qualifier == null) ? (XsStringVal) null : xs.string(qualifier)); } - + @Override public PlanDocColsIdentifier docCols(XsStringVal qualifier) { return new DocColsIdentifierCallImpl("op", "doc-cols", new Object[]{ qualifier }); } - + @Override public PlanDocColsIdentifier docCols(String qualifier, String names) { return docCols((qualifier == null) ? (XsStringVal) null : xs.string(qualifier), (names == null) ? (XsStringVal) null : xs.string(names)); } - + @Override public PlanDocColsIdentifier docCols(XsStringVal qualifier, XsStringSeqVal names) { return new DocColsIdentifierCallImpl("op", "doc-cols", new Object[]{ qualifier, names }); } - + @Override public ServerExpression eq(ServerExpression... operand) { if (operand == null) { @@ -294,13 +294,13 @@ public ServerExpression eq(ServerExpression... operand) { return new XsExprImpl.BooleanCallImpl("op", "eq", operand); } - + @Override public PlanSystemColumn fragmentIdCol(String column) { return fragmentIdCol((column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanSystemColumn fragmentIdCol(XsStringVal column) { if (column == null) { @@ -309,13 +309,13 @@ public PlanSystemColumn fragmentIdCol(XsStringVal column) { return new SystemColumnCallImpl("op", "fragment-id-col", new Object[]{ column }); } - + @Override public AccessPlan fromDocDescriptors(PlanDocDescriptor... docDescriptor) { return fromDocDescriptors(new DocDescriptorSeqListImpl(docDescriptor)); } - + @Override public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor) { if (docDescriptor == null) { @@ -324,13 +324,13 @@ public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor) { return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-doc-descriptors", new Object[]{ docDescriptor }); } - + @Override public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor, String qualifier) { return fromDocDescriptors(docDescriptor, (qualifier == null) ? (XsStringVal) null : xs.string(qualifier)); } - + @Override public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor, XsStringVal qualifier) { if (docDescriptor == null) { @@ -339,13 +339,13 @@ public AccessPlan fromDocDescriptors(PlanDocDescriptorSeq docDescriptor, XsStrin return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-doc-descriptors", new Object[]{ docDescriptor, qualifier }); } - + @Override public AccessPlan fromParam(String paramName, String qualifier, PlanRowColTypesSeq rowColTypes) { return fromParam((paramName == null) ? (XsStringVal) null : xs.string(paramName), (qualifier == null) ? (XsStringVal) null : xs.string(qualifier), rowColTypes); } - + @Override public AccessPlan fromParam(XsStringVal paramName, XsStringVal qualifier, PlanRowColTypesSeq rowColTypes) { if (paramName == null) { @@ -357,13 +357,13 @@ public AccessPlan fromParam(XsStringVal paramName, XsStringVal qualifier, PlanRo return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-param", new Object[]{ paramName, qualifier, rowColTypes }); } - + @Override public ModifyPlan fromSparql(String select) { return fromSparql((select == null) ? (XsStringVal) null : xs.string(select)); } - + @Override public ModifyPlan fromSparql(XsStringVal select) { if (select == null) { @@ -372,13 +372,13 @@ public ModifyPlan fromSparql(XsStringVal select) { return new PlanBuilderSubImpl.ModifyPlanSubImpl("op", "from-sparql", new Object[]{ select }); } - + @Override public ModifyPlan fromSparql(String select, String qualifierName) { return fromSparql((select == null) ? (XsStringVal) null : xs.string(select), (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public ModifyPlan fromSparql(XsStringVal select, XsStringVal qualifierName) { if (select == null) { @@ -387,13 +387,13 @@ public ModifyPlan fromSparql(XsStringVal select, XsStringVal qualifierName) { return new PlanBuilderSubImpl.ModifyPlanSubImpl("op", "from-sparql", new Object[]{ select, qualifierName }); } - + @Override public ModifyPlan fromSql(String select) { return fromSql((select == null) ? (XsStringVal) null : xs.string(select)); } - + @Override public ModifyPlan fromSql(XsStringVal select) { if (select == null) { @@ -402,13 +402,13 @@ public ModifyPlan fromSql(XsStringVal select) { return new PlanBuilderSubImpl.ModifyPlanSubImpl("op", "from-sql", new Object[]{ select }); } - + @Override public ModifyPlan fromSql(String select, String qualifierName) { return fromSql((select == null) ? (XsStringVal) null : xs.string(select), (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public ModifyPlan fromSql(XsStringVal select, XsStringVal qualifierName) { if (select == null) { @@ -417,13 +417,13 @@ public ModifyPlan fromSql(XsStringVal select, XsStringVal qualifierName) { return new PlanBuilderSubImpl.ModifyPlanSubImpl("op", "from-sql", new Object[]{ select, qualifierName }); } - + @Override public AccessPlan fromTriples(PlanTriplePattern... patterns) { return fromTriples(new TriplePatternSeqListImpl(patterns)); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns) { if (patterns == null) { @@ -432,13 +432,13 @@ public AccessPlan fromTriples(PlanTriplePatternSeq patterns) { return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-triples", new Object[]{ patterns }); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns, String qualifierName) { return fromTriples(patterns, (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns, XsStringVal qualifierName) { if (patterns == null) { @@ -447,13 +447,13 @@ public AccessPlan fromTriples(PlanTriplePatternSeq patterns, XsStringVal qualifi return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-triples", new Object[]{ patterns, qualifierName }); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns, String qualifierName, String graphIris) { return fromTriples(patterns, (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName), (graphIris == null) ? (XsStringVal) null : xs.string(graphIris)); } - + @Override public AccessPlan fromTriples(PlanTriplePatternSeq patterns, XsStringVal qualifierName, XsStringSeqVal graphIris) { if (patterns == null) { @@ -462,13 +462,13 @@ public AccessPlan fromTriples(PlanTriplePatternSeq patterns, XsStringVal qualifi return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-triples", new Object[]{ patterns, qualifierName, graphIris }); } - + @Override public AccessPlan fromView(String schema, String view) { return fromView((schema == null) ? (XsStringVal) null : xs.string(schema), (view == null) ? (XsStringVal) null : xs.string(view)); } - + @Override public AccessPlan fromView(XsStringVal schema, XsStringVal view) { if (view == null) { @@ -477,13 +477,13 @@ public AccessPlan fromView(XsStringVal schema, XsStringVal view) { return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-view", new Object[]{ schema, view }); } - + @Override public AccessPlan fromView(String schema, String view, String qualifierName) { return fromView((schema == null) ? (XsStringVal) null : xs.string(schema), (view == null) ? (XsStringVal) null : xs.string(view), (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public AccessPlan fromView(XsStringVal schema, XsStringVal view, XsStringVal qualifierName) { if (view == null) { @@ -492,13 +492,13 @@ public AccessPlan fromView(XsStringVal schema, XsStringVal view, XsStringVal qua return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-view", new Object[]{ schema, view, qualifierName }); } - + @Override public AccessPlan fromView(String schema, String view, String qualifierName, PlanSystemColumn sysCols) { return fromView((schema == null) ? (XsStringVal) null : xs.string(schema), (view == null) ? (XsStringVal) null : xs.string(view), (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName), sysCols); } - + @Override public AccessPlan fromView(XsStringVal schema, XsStringVal view, XsStringVal qualifierName, PlanSystemColumn sysCols) { if (view == null) { @@ -507,7 +507,7 @@ public AccessPlan fromView(XsStringVal schema, XsStringVal view, XsStringVal qua return new PlanBuilderSubImpl.AccessPlanSubImpl("op", "from-view", new Object[]{ schema, view, qualifierName, sysCols }); } - + @Override public ServerExpression ge(ServerExpression left, ServerExpression right) { if (left == null) { @@ -519,13 +519,13 @@ public ServerExpression ge(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "ge", new Object[]{ left, right }); } - + @Override public PlanSystemColumn graphCol(String column) { return graphCol((column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanSystemColumn graphCol(XsStringVal column) { if (column == null) { @@ -534,19 +534,19 @@ public PlanSystemColumn graphCol(XsStringVal column) { return new SystemColumnCallImpl("op", "graph-col", new Object[]{ column }); } - + @Override public PlanGroup group(PlanExprColSeq keys) { return new GroupCallImpl("op", "group", new Object[]{ keys }); } - + @Override public PlanAggregateCol groupKey(String name, String column) { return groupKey((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol groupKey(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -558,7 +558,7 @@ public PlanAggregateCol groupKey(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "group-key", new Object[]{ name, column }); } - + @Override public ServerExpression gt(ServerExpression left, ServerExpression right) { if (left == null) { @@ -570,13 +570,13 @@ public ServerExpression gt(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "gt", new Object[]{ left, right }); } - + @Override public PlanAggregateCol hasGroupKey(String name, String column) { return hasGroupKey((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol hasGroupKey(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -588,7 +588,7 @@ public PlanAggregateCol hasGroupKey(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "has-group-key", new Object[]{ name, column }); } - + @Override public ServerExpression in(ServerExpression value, ServerExpression anyOf) { if (value == null) { @@ -600,7 +600,7 @@ public ServerExpression in(ServerExpression value, ServerExpression anyOf) { return new XsExprImpl.BooleanCallImpl("op", "in", new Object[]{ value, anyOf }); } - + @Override public ServerExpression isDefined(ServerExpression operand) { if (operand == null) { @@ -609,7 +609,7 @@ public ServerExpression isDefined(ServerExpression operand) { return new XsExprImpl.BooleanCallImpl("op", "is-defined", new Object[]{ operand }); } - + @Override public PlanJoinKeySeq joinKeySeq(PlanJoinKey... key) { if (key == null) { @@ -618,13 +618,13 @@ public PlanJoinKeySeq joinKeySeq(PlanJoinKey... key) { return new JoinKeySeqListImpl(key); } - + @Override public ServerExpression jsonBoolean(boolean value) { return jsonBoolean(xs.booleanVal(value)); } - + @Override public ServerExpression jsonBoolean(ServerExpression value) { if (value == null) { @@ -633,7 +633,7 @@ public ServerExpression jsonBoolean(ServerExpression value) { return new BaseTypeImpl.BooleanNodeCallImpl("op", "json-boolean", new Object[]{ value }); } - + @Override public ServerExpression jsonDocument(ServerExpression root) { if (root == null) { @@ -642,19 +642,19 @@ public ServerExpression jsonDocument(ServerExpression root) { return new BaseTypeImpl.DocumentNodeCallImpl("op", "json-document", new Object[]{ root }); } - + @Override public ServerExpression jsonNull() { return new BaseTypeImpl.NullNodeCallImpl("op", "json-null", new Object[]{ }); } - + @Override public ServerExpression jsonNumber(double value) { return jsonNumber(xs.doubleVal(value)); } - + @Override public ServerExpression jsonNumber(ServerExpression value) { if (value == null) { @@ -663,13 +663,13 @@ public ServerExpression jsonNumber(ServerExpression value) { return new BaseTypeImpl.NumberNodeCallImpl("op", "json-number", new Object[]{ value }); } - + @Override public ServerExpression jsonString(String value) { return jsonString((value == null) ? (ServerExpression) null : xs.string(value)); } - + @Override public ServerExpression jsonString(ServerExpression value) { if (value == null) { @@ -678,7 +678,7 @@ public ServerExpression jsonString(ServerExpression value) { return new BaseTypeImpl.TextNodeCallImpl("op", "json-string", new Object[]{ value }); } - + @Override public ServerExpression le(ServerExpression left, ServerExpression right) { if (left == null) { @@ -690,7 +690,7 @@ public ServerExpression le(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "le", new Object[]{ left, right }); } - + @Override public ServerExpression lt(ServerExpression left, ServerExpression right) { if (left == null) { @@ -702,13 +702,13 @@ public ServerExpression lt(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "lt", new Object[]{ left, right }); } - + @Override public PlanAggregateCol max(String name, String column) { return max((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol max(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -720,13 +720,13 @@ public PlanAggregateCol max(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "max", new Object[]{ name, column }); } - + @Override public PlanAggregateCol min(String name, String column) { return min((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol min(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -738,13 +738,13 @@ public PlanAggregateCol min(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "min", new Object[]{ name, column }); } - + @Override public ServerExpression modulo(double left, double right) { return modulo(xs.doubleVal(left), xs.doubleVal(right)); } - + @Override public ServerExpression modulo(ServerExpression left, ServerExpression right) { if (left == null) { @@ -756,7 +756,7 @@ public ServerExpression modulo(ServerExpression left, ServerExpression right) { return new XsExprImpl.NumericCallImpl("op", "modulo", new Object[]{ left, right }); } - + @Override public ServerExpression multiply(ServerExpression... left) { if (left == null) { @@ -765,13 +765,13 @@ public ServerExpression multiply(ServerExpression... left) { return new XsExprImpl.NumericCallImpl("op", "multiply", left); } - + @Override public PlanNamedGroup namedGroup(String name) { return namedGroup((name == null) ? (XsStringVal) null : xs.string(name)); } - + @Override public PlanNamedGroup namedGroup(XsStringVal name) { if (name == null) { @@ -780,13 +780,13 @@ public PlanNamedGroup namedGroup(XsStringVal name) { return new NamedGroupCallImpl("op", "named-group", new Object[]{ name }); } - + @Override public PlanNamedGroup namedGroup(String name, String keys) { return namedGroup((name == null) ? (XsStringVal) null : xs.string(name), (keys == null) ? (PlanExprCol) null : exprCol(keys)); } - + @Override public PlanNamedGroup namedGroup(XsStringVal name, PlanExprColSeq keys) { if (name == null) { @@ -795,7 +795,7 @@ public PlanNamedGroup namedGroup(XsStringVal name, PlanExprColSeq keys) { return new NamedGroupCallImpl("op", "named-group", new Object[]{ name, keys }); } - + @Override public ServerExpression ne(ServerExpression left, ServerExpression right) { if (left == null) { @@ -807,7 +807,7 @@ public ServerExpression ne(ServerExpression left, ServerExpression right) { return new XsExprImpl.BooleanCallImpl("op", "ne", new Object[]{ left, right }); } - + @Override public ServerExpression not(ServerExpression operand) { if (operand == null) { @@ -816,7 +816,7 @@ public ServerExpression not(ServerExpression operand) { return new XsExprImpl.BooleanCallImpl("op", "not", new Object[]{ operand }); } - + @Override public PlanTriplePositionSeq objectSeq(PlanTriplePosition... object) { if (object == null) { @@ -825,13 +825,13 @@ public PlanTriplePositionSeq objectSeq(PlanTriplePosition... object) { return new TriplePositionSeqListImpl(object); } - + @Override public PlanJoinKey on(String left, String right) { return on((left == null) ? (PlanExprCol) null : exprCol(left), (right == null) ? (PlanExprCol) null : exprCol(right)); } - + @Override public PlanJoinKey on(PlanExprCol left, PlanExprCol right) { if (left == null) { @@ -843,7 +843,7 @@ public PlanJoinKey on(PlanExprCol left, PlanExprCol right) { return new JoinKeyCallImpl("op", "on", new Object[]{ left, right }); } - + @Override public ServerExpression or(ServerExpression... left) { if (left == null) { @@ -852,19 +852,19 @@ public ServerExpression or(ServerExpression... left) { return new XsExprImpl.BooleanCallImpl("op", "or", left); } - + @Override public PlanTriplePattern pattern(PlanTriplePositionSeq subjects, PlanTriplePositionSeq predicates, PlanTriplePositionSeq objects) { return new TriplePatternCallImpl("op", "pattern", new Object[]{ subjects, predicates, objects }); } - + @Override public PlanTriplePattern pattern(PlanTriplePositionSeq subjects, PlanTriplePositionSeq predicates, PlanTriplePositionSeq objects, PlanSystemColumnSeq sysCols) { return new TriplePatternCallImpl("op", "pattern", new Object[]{ subjects, predicates, objects, sysCols }); } - + @Override public PlanTriplePatternSeq patternSeq(PlanTriplePattern... pattern) { if (pattern == null) { @@ -873,7 +873,7 @@ public PlanTriplePatternSeq patternSeq(PlanTriplePattern... pattern) { return new TriplePatternSeqListImpl(pattern); } - + @Override public PlanTriplePositionSeq predicateSeq(PlanTriplePosition... predicate) { if (predicate == null) { @@ -882,13 +882,13 @@ public PlanTriplePositionSeq predicateSeq(PlanTriplePosition... predicate) { return new TriplePositionSeqListImpl(predicate); } - + @Override public PlanJsonProperty prop(String key, ServerExpression value) { return prop((key == null) ? (ServerExpression) null : xs.string(key), value); } - + @Override public PlanJsonProperty prop(ServerExpression key, ServerExpression value) { if (key == null) { @@ -900,13 +900,13 @@ public PlanJsonProperty prop(ServerExpression key, ServerExpression value) { return new JsonPropertyCallImpl("op", "prop", new Object[]{ key, value }); } - + @Override public PlanFunction resolveFunction(String functionName, String modulePath) { return resolveFunction((functionName == null) ? (XsQNameVal) null : xs.QName(functionName), (modulePath == null) ? (XsStringVal) null : xs.string(modulePath)); } - + @Override public PlanFunction resolveFunction(XsQNameVal functionName, XsStringVal modulePath) { if (functionName == null) { @@ -918,7 +918,7 @@ public PlanFunction resolveFunction(XsQNameVal functionName, XsStringVal moduleP return new FunctionCallImpl("op", "resolve-function", new Object[]{ functionName, modulePath }); } - + @Override public PlanGroupSeq rollup(PlanExprColSeq keys) { if (keys == null) { @@ -927,13 +927,13 @@ public PlanGroupSeq rollup(PlanExprColSeq keys) { return new GroupSeqCallImpl("op", "rollup", new Object[]{ keys }); } - + @Override public PlanAggregateCol sample(String name, String column) { return sample((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol sample(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -945,13 +945,13 @@ public PlanAggregateCol sample(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "sample", new Object[]{ name, column }); } - + @Override public PlanColumn schemaCol(String schema, String view, String column) { return schemaCol((schema == null) ? (XsStringVal) null : xs.string(schema), (view == null) ? (XsStringVal) null : xs.string(view), (column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanColumn schemaCol(XsStringVal schema, XsStringVal view, XsStringVal column) { if (schema == null) { @@ -966,13 +966,13 @@ public PlanColumn schemaCol(XsStringVal schema, XsStringVal view, XsStringVal co return new ColumnCallImpl("op", "schema-col", new Object[]{ schema, view, column }); } - + @Override public PlanAggregateCol sequenceAggregate(String name, String column) { return sequenceAggregate((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol sequenceAggregate(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -984,7 +984,7 @@ public PlanAggregateCol sequenceAggregate(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "sequence-aggregate", new Object[]{ name, column }); } - + @Override public PlanSortKeySeq sortKeySeq(PlanSortKey... key) { if (key == null) { @@ -993,13 +993,13 @@ public PlanSortKeySeq sortKeySeq(PlanSortKey... key) { return new SortKeySeqListImpl(key); } - + @Override public PlanCondition sqlCondition(String expression) { return sqlCondition((expression == null) ? (XsStringVal) null : xs.string(expression)); } - + @Override public PlanCondition sqlCondition(XsStringVal expression) { if (expression == null) { @@ -1008,7 +1008,7 @@ public PlanCondition sqlCondition(XsStringVal expression) { return new ConditionCallImpl("op", "sql-condition", new Object[]{ expression }); } - + @Override public PlanTriplePositionSeq subjectSeq(PlanTriplePosition... subject) { if (subject == null) { @@ -1017,7 +1017,7 @@ public PlanTriplePositionSeq subjectSeq(PlanTriplePosition... subject) { return new TriplePositionSeqListImpl(subject); } - + @Override public ServerExpression subtract(ServerExpression left, ServerExpression right) { if (left == null) { @@ -1029,13 +1029,13 @@ public ServerExpression subtract(ServerExpression left, ServerExpression right) return new XsExprImpl.NumericCallImpl("op", "subtract", new Object[]{ left, right }); } - + @Override public PlanAggregateCol sum(String name, String column) { return sum((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column)); } - + @Override public PlanAggregateCol sum(PlanColumn name, PlanExprCol column) { if (name == null) { @@ -1047,13 +1047,13 @@ public PlanAggregateCol sum(PlanColumn name, PlanExprCol column) { return new AggregateColCallImpl("op", "sum", new Object[]{ name, column }); } - + @Override public PlanAggregateCol uda(String name, String column, String module, String function) { return uda((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column), (module == null) ? (XsStringVal) null : xs.string(module), (function == null) ? (XsStringVal) null : xs.string(function)); } - + @Override public PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal module, XsStringVal function) { if (name == null) { @@ -1071,13 +1071,13 @@ public PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal mod return new AggregateColCallImpl("op", "uda", new Object[]{ name, column, module, function }); } - + @Override public PlanAggregateCol uda(String name, String column, String module, String function, String arg) { return uda((name == null) ? (PlanColumn) null : col(name), (column == null) ? (PlanExprCol) null : exprCol(column), (module == null) ? (XsStringVal) null : xs.string(module), (function == null) ? (XsStringVal) null : xs.string(function), (arg == null) ? (XsAnyAtomicTypeVal) null : xs.string(arg)); } - + @Override public PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal module, XsStringVal function, XsAnyAtomicTypeVal arg) { if (name == null) { @@ -1095,13 +1095,13 @@ public PlanAggregateCol uda(PlanColumn name, PlanExprCol column, XsStringVal mod return new AggregateColCallImpl("op", "uda", new Object[]{ name, column, module, function, arg }); } - + @Override public PlanColumn viewCol(String view, String column) { return viewCol((view == null) ? (XsStringVal) null : xs.string(view), (column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanColumn viewCol(XsStringVal view, XsStringVal column) { if (view == null) { @@ -1113,13 +1113,13 @@ public PlanColumn viewCol(XsStringVal view, XsStringVal column) { return new ColumnCallImpl("op", "view-col", new Object[]{ view, column }); } - + @Override public PlanCase when(boolean condition, ServerExpression... value) { return when(xs.booleanVal(condition), value); } - + @Override public PlanCase when(ServerExpression condition, ServerExpression... value) { if (condition == null) { @@ -1128,13 +1128,13 @@ public PlanCase when(ServerExpression condition, ServerExpression... value) { return new CaseCallImpl("op", "when", new Object[]{ condition, new BaseTypeImpl.ItemSeqListImpl(value) }); } - + @Override public ServerExpression xmlAttribute(String name, String value) { return xmlAttribute((name == null) ? (ServerExpression) null : xs.QName(name), (value == null) ? (ServerExpression) null : xs.string(value)); } - + @Override public ServerExpression xmlAttribute(ServerExpression name, ServerExpression value) { if (name == null) { @@ -1146,22 +1146,13 @@ public ServerExpression xmlAttribute(ServerExpression name, ServerExpression val return new BaseTypeImpl.AttributeNodeCallImpl("op", "xml-attribute", new Object[]{ name, value }); } - - @Override - public ServerExpression xmlAttributeSeq(ServerExpression... attribute) { - if (attribute == null) { - throw new IllegalArgumentException("attribute parameter for xmlAttributeSeq() cannot be null"); - } - return new BaseTypeImpl.AttributeNodeSeqListImpl(attribute); - } - @Override public ServerExpression xmlComment(String content) { return xmlComment((content == null) ? (ServerExpression) null : xs.string(content)); } - + @Override public ServerExpression xmlComment(ServerExpression content) { if (content == null) { @@ -1170,7 +1161,7 @@ public ServerExpression xmlComment(ServerExpression content) { return new BaseTypeImpl.CommentNodeCallImpl("op", "xml-comment", new Object[]{ content }); } - + @Override public ServerExpression xmlDocument(ServerExpression root) { if (root == null) { @@ -1179,13 +1170,13 @@ public ServerExpression xmlDocument(ServerExpression root) { return new BaseTypeImpl.DocumentNodeCallImpl("op", "xml-document", new Object[]{ root }); } - + @Override public ServerExpression xmlElement(String name) { return xmlElement((name == null) ? (ServerExpression) null : xs.QName(name)); } - + @Override public ServerExpression xmlElement(ServerExpression name) { if (name == null) { @@ -1194,13 +1185,13 @@ public ServerExpression xmlElement(ServerExpression name) { return new BaseTypeImpl.ElementNodeCallImpl("op", "xml-element", new Object[]{ name }); } - + @Override public ServerExpression xmlElement(String name, ServerExpression attributes) { return xmlElement((name == null) ? (ServerExpression) null : xs.QName(name), attributes); } - + @Override public ServerExpression xmlElement(ServerExpression name, ServerExpression attributes) { if (name == null) { @@ -1209,13 +1200,13 @@ public ServerExpression xmlElement(ServerExpression name, ServerExpression attri return new BaseTypeImpl.ElementNodeCallImpl("op", "xml-element", new Object[]{ name, attributes }); } - + @Override public ServerExpression xmlElement(String name, ServerExpression attributes, ServerExpression... content) { return xmlElement((name == null) ? (ServerExpression) null : xs.QName(name), attributes, content); } - + @Override public ServerExpression xmlElement(ServerExpression name, ServerExpression attributes, ServerExpression... content) { if (name == null) { @@ -1224,13 +1215,13 @@ public ServerExpression xmlElement(ServerExpression name, ServerExpression attri return new BaseTypeImpl.ElementNodeCallImpl("op", "xml-element", new Object[]{ name, attributes, new BaseTypeImpl.XmlContentNodeSeqListImpl(content) }); } - + @Override public ServerExpression xmlPi(String name, String value) { return xmlPi((name == null) ? (ServerExpression) null : xs.string(name), (value == null) ? (ServerExpression) null : xs.string(value)); } - + @Override public ServerExpression xmlPi(ServerExpression name, ServerExpression value) { if (name == null) { @@ -1242,13 +1233,13 @@ public ServerExpression xmlPi(ServerExpression name, ServerExpression value) { return new BaseTypeImpl.ProcessingInstructionNodeCallImpl("op", "xml-pi", new Object[]{ name, value }); } - + @Override public ServerExpression xmlText(String value) { return xmlText((value == null) ? (ServerExpression) null : xs.string(value)); } - + @Override public ServerExpression xmlText(ServerExpression value) { if (value == null) { @@ -1257,13 +1248,13 @@ public ServerExpression xmlText(ServerExpression value) { return new BaseTypeImpl.TextNodeCallImpl("op", "xml-text", new Object[]{ value }); } - + @Override public ServerExpression xpath(String column, String path) { return xpath((column == null) ? (PlanColumn) null : col(column), (path == null) ? (ServerExpression) null : xs.string(path)); } - + @Override public ServerExpression xpath(PlanColumn column, ServerExpression path) { if (column == null) { @@ -1275,13 +1266,13 @@ public ServerExpression xpath(PlanColumn column, ServerExpression path) { return new BaseTypeImpl.NodeSeqCallImpl("op", "xpath", new Object[]{ column, path }); } - + @Override public ServerExpression xpath(String column, String path, PlanNamespaceBindingsSeq namespaceBindings) { return xpath((column == null) ? (PlanColumn) null : col(column), (path == null) ? (ServerExpression) null : xs.string(path), namespaceBindings); } - + @Override public ServerExpression xpath(PlanColumn column, ServerExpression path, PlanNamespaceBindingsSeq namespaceBindings) { if (column == null) { @@ -1295,441 +1286,441 @@ public ServerExpression xpath(PlanColumn column, ServerExpression path, PlanName // external type implementations - + static class AggregateColSeqListImpl extends PlanSeqListImpl implements PlanAggregateColSeq { AggregateColSeqListImpl(Object[] items) { super(items); } } - + static class AggregateColSeqCallImpl extends PlanCallImpl implements PlanAggregateColSeq { AggregateColSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class AggregateColCallImpl extends PlanCallImpl implements PlanAggregateCol { AggregateColCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class CaseSeqListImpl extends PlanSeqListImpl implements PlanCaseSeq { CaseSeqListImpl(Object[] items) { super(items); } } - + static class CaseSeqCallImpl extends PlanCallImpl implements PlanCaseSeq { CaseSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class CaseCallImpl extends PlanCallImpl implements PlanCase { CaseCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ColumnSeqListImpl extends PlanSeqListImpl implements PlanColumnSeq { ColumnSeqListImpl(Object[] items) { super(items); } } - + static class ColumnSeqCallImpl extends PlanCallImpl implements PlanColumnSeq { ColumnSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ColumnCallImpl extends PlanCallImpl implements PlanColumn { ColumnCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ConditionSeqListImpl extends PlanSeqListImpl implements PlanConditionSeq { ConditionSeqListImpl(Object[] items) { super(items); } } - + static class ConditionSeqCallImpl extends PlanCallImpl implements PlanConditionSeq { ConditionSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ConditionCallImpl extends PlanCallImpl implements PlanCondition { ConditionCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class DocColsIdentifierSeqListImpl extends PlanSeqListImpl implements PlanDocColsIdentifierSeq { DocColsIdentifierSeqListImpl(Object[] items) { super(items); } } - + static class DocColsIdentifierSeqCallImpl extends PlanCallImpl implements PlanDocColsIdentifierSeq { DocColsIdentifierSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class DocColsIdentifierCallImpl extends PlanCallImpl implements PlanDocColsIdentifier { DocColsIdentifierCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class DocDescriptorSeqListImpl extends PlanSeqListImpl implements PlanDocDescriptorSeq { DocDescriptorSeqListImpl(Object[] items) { super(items); } } - + static class DocDescriptorSeqCallImpl extends PlanCallImpl implements PlanDocDescriptorSeq { DocDescriptorSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class DocDescriptorCallImpl extends PlanCallImpl implements PlanDocDescriptor { DocDescriptorCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ExprColSeqListImpl extends PlanSeqListImpl implements PlanExprColSeq { ExprColSeqListImpl(Object[] items) { super(items); } } - + static class ExprColSeqCallImpl extends PlanCallImpl implements PlanExprColSeq { ExprColSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ExprColCallImpl extends PlanCallImpl implements PlanExprCol { ExprColCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class FunctionSeqListImpl extends PlanSeqListImpl implements PlanFunctionSeq { FunctionSeqListImpl(Object[] items) { super(items); } } - + static class FunctionSeqCallImpl extends PlanCallImpl implements PlanFunctionSeq { FunctionSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class FunctionCallImpl extends PlanCallImpl implements PlanFunction { FunctionCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class GroupSeqListImpl extends PlanSeqListImpl implements PlanGroupSeq { GroupSeqListImpl(Object[] items) { super(items); } } - + static class GroupSeqCallImpl extends PlanCallImpl implements PlanGroupSeq { GroupSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class GroupCallImpl extends PlanCallImpl implements PlanGroup { GroupCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class JoinKeySeqListImpl extends PlanSeqListImpl implements PlanJoinKeySeq { JoinKeySeqListImpl(Object[] items) { super(items); } } - + static class JoinKeySeqCallImpl extends PlanCallImpl implements PlanJoinKeySeq { JoinKeySeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class JoinKeyCallImpl extends PlanCallImpl implements PlanJoinKey { JoinKeyCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class JsonPropertySeqListImpl extends PlanSeqListImpl implements PlanJsonPropertySeq { JsonPropertySeqListImpl(Object[] items) { super(items); } } - + static class JsonPropertySeqCallImpl extends PlanCallImpl implements PlanJsonPropertySeq { JsonPropertySeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class JsonPropertyCallImpl extends PlanCallImpl implements PlanJsonProperty { JsonPropertyCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class NamedGroupSeqListImpl extends PlanSeqListImpl implements PlanNamedGroupSeq { NamedGroupSeqListImpl(Object[] items) { super(items); } } - + static class NamedGroupSeqCallImpl extends PlanCallImpl implements PlanNamedGroupSeq { NamedGroupSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class NamedGroupCallImpl extends PlanCallImpl implements PlanNamedGroup { NamedGroupCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class NamespaceBindingsSeqListImpl extends PlanSeqListImpl implements PlanNamespaceBindingsSeq { NamespaceBindingsSeqListImpl(Object[] items) { super(items); } } - + static class NamespaceBindingsSeqCallImpl extends PlanCallImpl implements PlanNamespaceBindingsSeq { NamespaceBindingsSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class NamespaceBindingsCallImpl extends PlanCallImpl implements PlanNamespaceBindings { NamespaceBindingsCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ParamBindingSeqListImpl extends PlanSeqListImpl implements PlanParamBindingSeqVal { ParamBindingSeqListImpl(Object[] items) { super(items); } } - + static class ParamBindingSeqCallImpl extends PlanCallImpl implements PlanParamBindingSeqVal { ParamBindingSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class ParamBindingCallImpl extends PlanCallImpl implements PlanParamBindingVal { ParamBindingCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class RowColTypesSeqListImpl extends PlanSeqListImpl implements PlanRowColTypesSeq { RowColTypesSeqListImpl(Object[] items) { super(items); } } - + static class RowColTypesSeqCallImpl extends PlanCallImpl implements PlanRowColTypesSeq { RowColTypesSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class RowColTypesCallImpl extends PlanCallImpl implements PlanRowColTypes { RowColTypesCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SchemaDefSeqListImpl extends PlanSeqListImpl implements PlanSchemaDefSeq { SchemaDefSeqListImpl(Object[] items) { super(items); } } - + static class SchemaDefSeqCallImpl extends PlanCallImpl implements PlanSchemaDefSeq { SchemaDefSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SchemaDefCallImpl extends PlanCallImpl implements PlanSchemaDef { SchemaDefCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SortKeySeqListImpl extends PlanSeqListImpl implements PlanSortKeySeq { SortKeySeqListImpl(Object[] items) { super(items); } } - + static class SortKeySeqCallImpl extends PlanCallImpl implements PlanSortKeySeq { SortKeySeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SortKeyCallImpl extends PlanCallImpl implements PlanSortKey { SortKeyCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SystemColumnSeqListImpl extends ColumnSeqListImpl implements PlanSystemColumnSeq { SystemColumnSeqListImpl(Object[] items) { super(items); } } - + static class SystemColumnSeqCallImpl extends ColumnCallImpl implements PlanSystemColumnSeq { SystemColumnSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class SystemColumnCallImpl extends ColumnCallImpl implements PlanSystemColumn { SystemColumnCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TransformDefSeqListImpl extends PlanSeqListImpl implements PlanTransformDefSeq { TransformDefSeqListImpl(Object[] items) { super(items); } } - + static class TransformDefSeqCallImpl extends PlanCallImpl implements PlanTransformDefSeq { TransformDefSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TransformDefCallImpl extends PlanCallImpl implements PlanTransformDef { TransformDefCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TriplePatternSeqListImpl extends PlanSeqListImpl implements PlanTriplePatternSeq { TriplePatternSeqListImpl(Object[] items) { super(items); } } - + static class TriplePatternSeqCallImpl extends PlanCallImpl implements PlanTriplePatternSeq { TriplePatternSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TriplePatternCallImpl extends PlanCallImpl implements PlanTriplePattern { TriplePatternCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TriplePositionSeqListImpl extends PlanSeqListImpl implements PlanTriplePositionSeq { TriplePositionSeqListImpl(Object[] items) { super(items); } } - + static class TriplePositionSeqCallImpl extends PlanCallImpl implements PlanTriplePositionSeq { TriplePositionSeqCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); } } - + static class TriplePositionCallImpl extends PlanCallImpl implements PlanTriplePosition { TriplePositionCallImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(fnPrefix, fnName, fnArgs); @@ -1738,19 +1729,19 @@ static class TriplePositionCallImpl extends PlanCallImpl implements PlanTriplePo // nested type implementations - + static abstract class AccessPlanImpl extends PlanBuilderSubImpl.ModifyPlanSubImpl implements AccessPlan { AccessPlanImpl(String fnPrefix, String fnName, Object[] fnArgs) { super(null, fnPrefix, fnName, fnArgs); } - + @Override public PlanColumn col(String column) { return col((column == null) ? (XsStringVal) null : xs.string(column)); } - + @Override public PlanColumn col(XsStringVal column) { if (column == null) { @@ -1759,7 +1750,7 @@ public PlanColumn col(XsStringVal column) { return new ColumnCallImpl("op", "col", new Object[]{ column }); } - + @Override public ModifyPlan sampleBy() { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "sample-by", new Object[]{ }); @@ -1767,22 +1758,22 @@ public ModifyPlan sampleBy() { } - + static abstract class ExportablePlanImpl extends PlanBuilderSubImpl.PlanSubImpl implements ExportablePlan { ExportablePlanImpl(PlanBaseImpl prior, String fnPrefix, String fnName, Object[] fnArgs) { super(prior, fnPrefix, fnName, fnArgs); } - + } - + static abstract class ModifyPlanImpl extends PlanBuilderSubImpl.PreparePlanSubImpl implements ModifyPlan { ModifyPlanImpl(PlanBaseImpl prior, String fnPrefix, String fnName, Object[] fnArgs) { super(prior, fnPrefix, fnName, fnArgs); } - + @Override public ModifyPlan bind(PlanExprColSeq columns) { if (columns == null) { @@ -1791,13 +1782,13 @@ public ModifyPlan bind(PlanExprColSeq columns) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "bind", new Object[]{ columns }); } - + @Override public ModifyPlan bindAs(String column, ServerExpression expression) { return bindAs((column == null) ? (PlanColumn) null : col(column), expression); } - + @Override public ModifyPlan bindAs(PlanColumn column, ServerExpression expression) { if (column == null) { @@ -1806,7 +1797,7 @@ public ModifyPlan bindAs(PlanColumn column, ServerExpression expression) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "bind-as", new Object[]{ column, expression }); } - + @Override public ModifyPlan except(ModifyPlan right) { if (right == null) { @@ -1815,7 +1806,7 @@ public ModifyPlan except(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "except", new Object[]{ right }); } - + @Override public ModifyPlan existsJoin(ModifyPlan right) { if (right == null) { @@ -1824,13 +1815,13 @@ public ModifyPlan existsJoin(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "exists-join", new Object[]{ right }); } - + @Override public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKey... keys) { return existsJoin(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -1839,13 +1830,13 @@ public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "exists-join", new Object[]{ right, keys }); } - + @Override public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return existsJoin(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -1854,19 +1845,19 @@ public ModifyPlan existsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExpres return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "exists-join", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan groupBy(PlanExprColSeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "group-by", new Object[]{ keys }); } - + @Override public ModifyPlan groupBy(PlanExprColSeq keys, PlanAggregateColSeq aggregates) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "group-by", new Object[]{ keys, aggregates }); } - + @Override public ModifyPlan intersect(ModifyPlan right) { if (right == null) { @@ -1875,7 +1866,7 @@ public ModifyPlan intersect(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "intersect", new Object[]{ right }); } - + @Override public ModifyPlan joinCrossProduct(ModifyPlan right) { if (right == null) { @@ -1884,13 +1875,13 @@ public ModifyPlan joinCrossProduct(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-cross-product", new Object[]{ right }); } - + @Override public ModifyPlan joinCrossProduct(ModifyPlan right, boolean condition) { return joinCrossProduct(right, xs.booleanVal(condition)); } - + @Override public ModifyPlan joinCrossProduct(ModifyPlan right, ServerExpression condition) { if (right == null) { @@ -1899,13 +1890,13 @@ public ModifyPlan joinCrossProduct(ModifyPlan right, ServerExpression condition) return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-cross-product", new Object[]{ right, condition }); } - + @Override public ModifyPlan joinDoc(String docCol, String sourceCol) { return joinDoc((docCol == null) ? (PlanColumn) null : col(docCol), (sourceCol == null) ? (PlanColumn) null : col(sourceCol)); } - + @Override public ModifyPlan joinDoc(PlanColumn docCol, PlanColumn sourceCol) { if (docCol == null) { @@ -1917,13 +1908,13 @@ public ModifyPlan joinDoc(PlanColumn docCol, PlanColumn sourceCol) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-doc", new Object[]{ docCol, sourceCol }); } - + @Override public ModifyPlan joinDocAndUri(String docCol, String uriCol, String sourceCol) { return joinDocAndUri((docCol == null) ? (PlanColumn) null : col(docCol), (uriCol == null) ? (PlanColumn) null : col(uriCol), (sourceCol == null) ? (PlanColumn) null : col(sourceCol)); } - + @Override public ModifyPlan joinDocAndUri(PlanColumn docCol, PlanColumn uriCol, PlanColumn sourceCol) { if (docCol == null) { @@ -1938,13 +1929,13 @@ public ModifyPlan joinDocAndUri(PlanColumn docCol, PlanColumn uriCol, PlanColumn return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-doc-and-uri", new Object[]{ docCol, uriCol, sourceCol }); } - + @Override public ModifyPlan joinDocCols(PlanDocColsIdentifier cols, String docIdCol) { return joinDocCols(cols, (docIdCol == null) ? (PlanColumn) null : col(docIdCol)); } - + @Override public ModifyPlan joinDocCols(PlanDocColsIdentifier cols, PlanColumn docIdCol) { if (docIdCol == null) { @@ -1953,13 +1944,13 @@ public ModifyPlan joinDocCols(PlanDocColsIdentifier cols, PlanColumn docIdCol) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-doc-cols", new Object[]{ cols, docIdCol }); } - + @Override public ModifyPlan joinDocUri(String uriCol, String fragmentIdCol) { return joinDocUri((uriCol == null) ? (PlanColumn) null : col(uriCol), (fragmentIdCol == null) ? (PlanColumn) null : col(fragmentIdCol)); } - + @Override public ModifyPlan joinDocUri(PlanColumn uriCol, PlanColumn fragmentIdCol) { if (uriCol == null) { @@ -1971,7 +1962,7 @@ public ModifyPlan joinDocUri(PlanColumn uriCol, PlanColumn fragmentIdCol) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-doc-uri", new Object[]{ uriCol, fragmentIdCol }); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right) { if (right == null) { @@ -1980,13 +1971,13 @@ public ModifyPlan joinFullOuter(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-full-outer", new Object[]{ right }); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKey... keys) { return joinFullOuter(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -1995,13 +1986,13 @@ public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-full-outer", new Object[]{ right, keys }); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return joinFullOuter(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -2010,7 +2001,7 @@ public ModifyPlan joinFullOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExp return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-full-outer", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan joinInner(ModifyPlan right) { if (right == null) { @@ -2019,13 +2010,13 @@ public ModifyPlan joinInner(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-inner", new Object[]{ right }); } - + @Override public ModifyPlan joinInner(ModifyPlan right, PlanJoinKey... keys) { return joinInner(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -2034,13 +2025,13 @@ public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-inner", new Object[]{ right, keys }); } - + @Override public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return joinInner(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -2049,7 +2040,7 @@ public ModifyPlan joinInner(ModifyPlan right, PlanJoinKeySeq keys, ServerExpress return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-inner", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right) { if (right == null) { @@ -2058,13 +2049,13 @@ public ModifyPlan joinLeftOuter(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-left-outer", new Object[]{ right }); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKey... keys) { return joinLeftOuter(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -2073,13 +2064,13 @@ public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-left-outer", new Object[]{ right, keys }); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return joinLeftOuter(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -2088,7 +2079,7 @@ public ModifyPlan joinLeftOuter(ModifyPlan right, PlanJoinKeySeq keys, ServerExp return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "join-left-outer", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right) { if (right == null) { @@ -2097,13 +2088,13 @@ public ModifyPlan notExistsJoin(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "not-exists-join", new Object[]{ right }); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKey... keys) { return notExistsJoin(right, new JoinKeySeqListImpl(keys)); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys) { if (right == null) { @@ -2112,13 +2103,13 @@ public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "not-exists-join", new Object[]{ right, keys }); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys, boolean condition) { return notExistsJoin(right, keys, xs.booleanVal(condition)); } - + @Override public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExpression condition) { if (right == null) { @@ -2127,13 +2118,13 @@ public ModifyPlan notExistsJoin(ModifyPlan right, PlanJoinKeySeq keys, ServerExp return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "not-exists-join", new Object[]{ right, keys, condition }); } - + @Override public ModifyPlan onError(String action) { return onError((action == null) ? (XsStringVal) null : xs.string(action)); } - + @Override public ModifyPlan onError(XsStringVal action) { if (action == null) { @@ -2142,13 +2133,13 @@ public ModifyPlan onError(XsStringVal action) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "on-error", new Object[]{ action }); } - + @Override public ModifyPlan onError(String action, String errorColumn) { return onError((action == null) ? (XsStringVal) null : xs.string(action), (errorColumn == null) ? (PlanExprCol) null : exprCol(errorColumn)); } - + @Override public ModifyPlan onError(XsStringVal action, PlanExprCol errorColumn) { if (action == null) { @@ -2157,7 +2148,7 @@ public ModifyPlan onError(XsStringVal action, PlanExprCol errorColumn) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "on-error", new Object[]{ action, errorColumn }); } - + @Override public ModifyPlan orderBy(PlanSortKeySeq keys) { if (keys == null) { @@ -2166,13 +2157,13 @@ public ModifyPlan orderBy(PlanSortKeySeq keys) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "order-by", new Object[]{ keys }); } - + @Override public PreparePlan prepare(int optimize) { return prepare(xs.intVal(optimize)); } - + @Override public PreparePlan prepare(XsIntVal optimize) { if (optimize == null) { @@ -2181,37 +2172,37 @@ public PreparePlan prepare(XsIntVal optimize) { return new PlanBuilderSubImpl.PreparePlanSubImpl(this, "op", "prepare", new Object[]{ optimize }); } - + @Override public ModifyPlan select(PlanExprCol... columns) { return select(new ExprColSeqListImpl(columns)); } - + @Override public ModifyPlan select(PlanExprColSeq columns) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "select", new Object[]{ columns }); } - + @Override public ModifyPlan select(PlanExprColSeq columns, String qualifierName) { return select(columns, (qualifierName == null) ? (XsStringVal) null : xs.string(qualifierName)); } - + @Override public ModifyPlan select(PlanExprColSeq columns, XsStringVal qualifierName) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "select", new Object[]{ columns, qualifierName }); } - + @Override public ModifyPlan shortestPath(String start, String end) { return shortestPath((start == null) ? (PlanExprCol) null : exprCol(start), (end == null) ? (PlanExprCol) null : exprCol(end)); } - + @Override public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end) { if (start == null) { @@ -2223,13 +2214,13 @@ public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "shortest-path", new Object[]{ start, end }); } - + @Override public ModifyPlan shortestPath(String start, String end, String path) { return shortestPath((start == null) ? (PlanExprCol) null : exprCol(start), (end == null) ? (PlanExprCol) null : exprCol(end), (path == null) ? (PlanExprCol) null : exprCol(path)); } - + @Override public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol path) { if (start == null) { @@ -2241,7 +2232,7 @@ public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol p return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "shortest-path", new Object[]{ start, end, path }); } - + @Override public ModifyPlan shortestPath(String start, String end, String path, String length) { return shortestPath((start == null) ? (PlanExprCol) null : exprCol(start), (end == null) ? (PlanExprCol) null : exprCol(end), (path == null) ? (PlanExprCol) null : exprCol(path), (length == null) ? (PlanExprCol) null : exprCol(length)); @@ -2258,13 +2249,13 @@ public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol p return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "shortest-path", new Object[]{ start, end, path, length }); } - + @Override public ModifyPlan shortestPath(String start, String end, String path, String length, String weight) { return shortestPath((start == null) ? (PlanExprCol) null : exprCol(start), (end == null) ? (PlanExprCol) null : exprCol(end), (path == null) ? (PlanExprCol) null : exprCol(path), (length == null) ? (PlanExprCol) null : exprCol(length), (weight == null) ? (PlanExprCol) null : exprCol(weight)); } - + @Override public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol path, PlanExprCol length, PlanExprCol weight) { if (start == null) { @@ -2276,7 +2267,7 @@ public ModifyPlan shortestPath(PlanExprCol start, PlanExprCol end, PlanExprCol p return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "shortest-path", new Object[]{ start, end, path, length, weight }); } - + @Override public ModifyPlan union(ModifyPlan right) { if (right == null) { @@ -2285,13 +2276,13 @@ public ModifyPlan union(ModifyPlan right) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "union", new Object[]{ right }); } - + @Override public ModifyPlan unnestInner(String inputColumn, String valueColumn) { return unnestInner((inputColumn == null) ? (PlanExprCol) null : exprCol(inputColumn), (valueColumn == null) ? (PlanExprCol) null : exprCol(valueColumn)); } - + @Override public ModifyPlan unnestInner(PlanExprCol inputColumn, PlanExprCol valueColumn) { if (inputColumn == null) { @@ -2303,13 +2294,13 @@ public ModifyPlan unnestInner(PlanExprCol inputColumn, PlanExprCol valueColumn) return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "unnest-inner", new Object[]{ inputColumn, valueColumn }); } - + @Override public ModifyPlan unnestInner(String inputColumn, String valueColumn, String ordinalColumn) { return unnestInner((inputColumn == null) ? (PlanExprCol) null : exprCol(inputColumn), (valueColumn == null) ? (PlanExprCol) null : exprCol(valueColumn), (ordinalColumn == null) ? (PlanExprCol) null : exprCol(ordinalColumn)); } - + @Override public ModifyPlan unnestInner(PlanExprCol inputColumn, PlanExprCol valueColumn, PlanExprCol ordinalColumn) { if (inputColumn == null) { @@ -2321,13 +2312,13 @@ public ModifyPlan unnestInner(PlanExprCol inputColumn, PlanExprCol valueColumn, return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "unnest-inner", new Object[]{ inputColumn, valueColumn, ordinalColumn }); } - + @Override public ModifyPlan unnestLeftOuter(String inputColumn, String valueColumn) { return unnestLeftOuter((inputColumn == null) ? (PlanExprCol) null : exprCol(inputColumn), (valueColumn == null) ? (PlanExprCol) null : exprCol(valueColumn)); } - + @Override public ModifyPlan unnestLeftOuter(PlanExprCol inputColumn, PlanExprCol valueColumn) { if (inputColumn == null) { @@ -2339,13 +2330,13 @@ public ModifyPlan unnestLeftOuter(PlanExprCol inputColumn, PlanExprCol valueColu return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "unnest-left-outer", new Object[]{ inputColumn, valueColumn }); } - + @Override public ModifyPlan unnestLeftOuter(String inputColumn, String valueColumn, String ordinalColumn) { return unnestLeftOuter((inputColumn == null) ? (PlanExprCol) null : exprCol(inputColumn), (valueColumn == null) ? (PlanExprCol) null : exprCol(valueColumn), (ordinalColumn == null) ? (PlanExprCol) null : exprCol(ordinalColumn)); } - + @Override public ModifyPlan unnestLeftOuter(PlanExprCol inputColumn, PlanExprCol valueColumn, PlanExprCol ordinalColumn) { if (inputColumn == null) { @@ -2357,13 +2348,13 @@ public ModifyPlan unnestLeftOuter(PlanExprCol inputColumn, PlanExprCol valueColu return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "unnest-left-outer", new Object[]{ inputColumn, valueColumn, ordinalColumn }); } - + @Override public ModifyPlan validateDoc(String validateDocCol, PlanSchemaDef schemaDef) { return validateDoc((validateDocCol == null) ? (PlanColumn) null : col(validateDocCol), schemaDef); } - + @Override public ModifyPlan validateDoc(PlanColumn validateDocCol, PlanSchemaDef schemaDef) { if (validateDocCol == null) { @@ -2375,19 +2366,19 @@ public ModifyPlan validateDoc(PlanColumn validateDocCol, PlanSchemaDef schemaDef return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "validate-doc", new Object[]{ validateDocCol, schemaDef }); } - + @Override public ModifyPlan whereDistinct() { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "where-distinct", new Object[]{ }); } - + @Override public ModifyPlan write() { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "write", new Object[]{ }); } - + @Override public ModifyPlan write(PlanDocColsIdentifier docCols) { return new PlanBuilderSubImpl.ModifyPlanSubImpl(this, "op", "write", new Object[]{ docCols }); @@ -2395,22 +2386,22 @@ public ModifyPlan write(PlanDocColsIdentifier docCols) { } - + static abstract class PlanImpl extends PlanBaseImpl implements Plan { PlanImpl(PlanBaseImpl prior, String fnPrefix, String fnName, Object[] fnArgs) { super(prior, fnPrefix, fnName, fnArgs); } - + } - + static abstract class PreparePlanImpl extends PlanBuilderSubImpl.ExportablePlanSubImpl implements PreparePlan { PreparePlanImpl(PlanBaseImpl prior, String fnPrefix, String fnName, Object[] fnArgs) { super(prior, fnPrefix, fnName, fnArgs); } - + @Override public ExportablePlan map(PlanFunction func) { if (func == null) { @@ -2419,7 +2410,7 @@ public ExportablePlan map(PlanFunction func) { return new PlanBuilderSubImpl.ExportablePlanSubImpl(this, "op", "map", new Object[]{ func }); } - + @Override public ExportablePlan reduce(PlanFunction func) { if (func == null) { @@ -2428,13 +2419,13 @@ public ExportablePlan reduce(PlanFunction func) { return new PlanBuilderSubImpl.ExportablePlanSubImpl(this, "op", "reduce", new Object[]{ func }); } - + @Override public ExportablePlan reduce(PlanFunction func, String seed) { return reduce(func, (seed == null) ? (XsAnyAtomicTypeVal) null : xs.string(seed)); } - + @Override public ExportablePlan reduce(PlanFunction func, XsAnyAtomicTypeVal seed) { if (func == null) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderSubImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderSubImpl.java index 69fe70112..9a320ab43 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderSubImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PlanBuilderSubImpl.java @@ -151,7 +151,8 @@ public AccessPlan fromLexicons(Map indexes, XsStringVa } @Override - public AccessPlan fromLiterals(@SuppressWarnings("unchecked") Map... rows) { + @SafeVarargs + public final AccessPlan fromLiterals(Map... rows) { return new AccessPlanSubImpl(this, "op", "from-literals", new Object[]{ literal(rows) }); } @@ -610,11 +611,6 @@ public ServerExpression jsonArray(ServerExpression... items) { return new JsonArrayCallImpl(new Object[]{ new BaseTypeImpl.ItemSeqListImpl(items) }); } - @Override - public ServerExpression xmlAttributeSeq(ServerExpression... attributes) { - return new XmlAttributeSeqListImpl(attributes); - } - @Override public PlanGroupSeq groupSeq(PlanGroup... groups) { return new GroupSeqListImpl(groups); @@ -1321,32 +1317,6 @@ static class JsonArrayCallImpl extends BaseTypeImpl.ServerExpressionCallImpl imp } } - static class XmlAttributeSeqListImpl extends BaseTypeImpl.ServerExpressionListImpl { - XmlAttributeSeqListImpl(ServerExpression[] items) { - super(Arrays.copyOf(items, items.length, XmlAttributeCallImpl[].class)); - } - } - - static interface XmlContentCallImpl extends BaseTypeImpl.BaseArgImpl {} - static class XmlContentSeqListImpl extends BaseTypeImpl.ServerExpressionListImpl { - XmlContentSeqListImpl(ServerExpression[] items) { - super(Arrays.copyOf(items, items.length, BaseTypeImpl.NodeCallImpl[].class)); - } - } - -/* TODO: DELETE - static class XmlElementCallImpl extends BaseTypeImpl.ServerExpressionCallImpl implements ElementNodeExpr, XmlContentCallImpl { - XmlElementCallImpl(Object[] args) { - super("op", "xml-element", args); - } - } - */ - static class XmlAttributeCallImpl extends BaseTypeImpl.ServerExpressionCallImpl { - XmlAttributeCallImpl(Object[] args) { - super("op", "xml-attribute", args); - } - } - static class PrefixerImpl implements PlanPrefixer { private SemExpr sem; private String prefix; diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoPageImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoPageImpl.java index d4fb7d25b..cf7d81ae3 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoPageImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoPageImpl.java @@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; import com.marklogic.client.io.JacksonDatabindHandle; import com.marklogic.client.document.DocumentPage; import com.marklogic.client.pojo.PojoPage; @@ -39,8 +40,7 @@ public boolean hasNext() { @Override public T next() { JacksonDatabindHandle handle = new JacksonDatabindHandle<>(entityClass); - handle.getMapper().enableDefaultTyping( - ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_OBJECT); + handle.getMapper().activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_OBJECT); return docPage.nextContent(handle).get(); } diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoRepositoryImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoRepositoryImpl.java index f99700660..b6716755b 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoRepositoryImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/PojoRepositoryImpl.java @@ -215,7 +215,8 @@ public long count(PojoQueryDefinition query, Transaction transaction) { } @Override - public void delete(ID... ids) { + @SafeVarargs + public final void delete(ID... ids) { delete(ids, null); } diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/RawQueryDefinitionImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/RawQueryDefinitionImpl.java index b7cb30bd1..be1ff9f29 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/RawQueryDefinitionImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/RawQueryDefinitionImpl.java @@ -152,8 +152,8 @@ public T getHandle() { return handle; } - // must override with instanceof test if T is not StructureWriteHandle @Override + @SuppressWarnings("unchecked") public void setHandle(StructureWriteHandle handle) { this.handle = (T) handle; } diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/RowManagerImpl.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/RowManagerImpl.java index fd3ec78ee..71b131f1b 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/RowManagerImpl.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/RowManagerImpl.java @@ -3,6 +3,7 @@ */ package com.marklogic.client.impl; +import java.io.Closeable; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.Constructor; @@ -453,7 +454,7 @@ ContentHandle handleFor(Class as) { return handle; } - abstract static class RowSetBase implements RowSet, Iterator { + abstract static class RowSetBase implements RowSet, Iterator, Closeable { String rowFormat = null; RESTServiceResultIterator results = null; String[] columnNames = null; @@ -589,14 +590,6 @@ public boolean hasNext() { @Override public void close() { - closeImpl(); - } - @Override - protected void finalize() throws Throwable { - closeImpl(); - super.finalize(); - } - private void closeImpl() { if (results != null) { results.close(); results = null; @@ -604,6 +597,7 @@ private void closeImpl() { } } } + static class RowSetRecord extends RowSetBase { private HandleFactoryRegistry handleRegistry = null; private Map headerKinds = null; @@ -764,7 +758,7 @@ public RowRecord next() { break; case OBJECT: - Iterator> fields = rowNode.fields(); + Iterator> fields = rowNode.properties().iterator(); switch(datatypeStyle) { case HEADER: diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/Utilities.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/Utilities.java index 97dba1418..25b18023d 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/Utilities.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/Utilities.java @@ -291,6 +291,8 @@ public static String eventTextToString(List events) { return buf.toString(); } + + @SuppressWarnings("unchecked") static public void setHandleContent(ContentHandle handle, Object content) { if (handle == null) { return; @@ -413,6 +415,7 @@ public static long parseLong(String value, long defaultValue) { return (value == null || value.isEmpty()) ? defaultValue : Long.parseLong(value); } + @SuppressWarnings("unchecked") public static void setHandleToString(AbstractReadHandle handle, String content) { if (!(handle instanceof BaseHandle)) { throw new IllegalArgumentException("cannot export with handle that doesn't extend base"); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/impl/okhttp/OkHttpUtil.java b/marklogic-client-api/src/main/java/com/marklogic/client/impl/okhttp/OkHttpUtil.java index 1eb7219ee..b14da8ada 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/impl/okhttp/OkHttpUtil.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/impl/okhttp/OkHttpUtil.java @@ -38,6 +38,7 @@ public abstract class OkHttpUtil { final private static ConnectionPool connectionPool = new ConnectionPool(); + @SuppressWarnings({"unchecked", "deprecation"}) public static OkHttpClient.Builder newOkHttpClientBuilder(String host, DatabaseClientFactory.SecurityContext securityContext) { OkHttpClient.Builder clientBuilder = OkHttpUtil.newClientBuilder(); AuthenticationConfigurer authenticationConfigurer = null; @@ -55,6 +56,7 @@ public static OkHttpClient.Builder newOkHttpClientBuilder(String host, DatabaseC } else if (securityContext instanceof DatabaseClientFactory.SAMLAuthContext) { configureSAMLAuth((DatabaseClientFactory.SAMLAuthContext) securityContext, clientBuilder); } else if (securityContext instanceof DatabaseClientFactory.ProgressDataCloudAuthContext || + // It's fine to refer to this deprecated class as it needs to be supported until Java Client 8. securityContext instanceof DatabaseClientFactory.MarkLogicCloudAuthContext) { authenticationConfigurer = new ProgressDataCloudAuthenticationConfigurer(host); } else if (securityContext instanceof DatabaseClientFactory.OAuthContext) { diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java index 47dacb67b..8ceac5002 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/JAXBHandle.java @@ -157,6 +157,7 @@ public JAXBHandle with(C content) { } @Override + @SuppressWarnings("unchecked") public Class getContentClass() { if (contentClass != null) return contentClass; @@ -164,10 +165,13 @@ public Class getContentClass() { return (Class) content.getClass(); return null; } + @Override public JAXBHandle newHandle() { return new JAXBHandle<>(context, getContentClass()).withMimetype(getMimetype()); } + + @SuppressWarnings("unchecked") @Override public JAXBHandle[] newHandleArray(int length) { if (length < 0) throw new IllegalArgumentException("array length less than zero: "+length); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/JacksonDatabindHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/JacksonDatabindHandle.java index 43db48d54..eaa809eb0 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/io/JacksonDatabindHandle.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/JacksonDatabindHandle.java @@ -68,6 +68,7 @@ public JacksonDatabindHandle(Class contentClass) { * Provides a handle on POJO content. * @param content the POJO which should be serialized */ + @SuppressWarnings("unchecked") public JacksonDatabindHandle(T content) { this((Class) content.getClass()); set(content); @@ -130,6 +131,8 @@ public Class getContentClass() { public JacksonDatabindHandle newHandle() { return new JacksonDatabindHandle<>(getContentClass()).withFormat(getFormat()).withMimetype(getMimetype()); } + + @SuppressWarnings("unchecked") @Override public JacksonDatabindHandle[] newHandleArray(int length) { if (length < 0) throw new IllegalArgumentException("array length less than zero: "+length); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/marker/ContentHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/marker/ContentHandle.java index f60475e08..36b75c3d7 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/io/marker/ContentHandle.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/marker/ContentHandle.java @@ -35,6 +35,7 @@ public interface ContentHandle * * @return the class for the handled content */ + @SuppressWarnings("unchecked") default Class getContentClass() { C value = get(); if (value != null) @@ -46,6 +47,7 @@ default Class getContentClass() { * initializing the new handle with the same format and mime type. * @return the new handle */ + @SuppressWarnings("unchecked") default ContentHandle newHandle() { ContentHandle newHandle = null; @@ -56,7 +58,7 @@ default ContentHandle newHandle() { } if (newHandle == null) { - newHandle = getClass().newInstance(); + newHandle = getClass().getDeclaredConstructor().newInstance(); } } catch (Exception e) { throw new RuntimeException( diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/io/marker/StreamingContentHandle.java b/marklogic-client-api/src/main/java/com/marklogic/client/io/marker/StreamingContentHandle.java index a250740b5..cc7e275c7 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/io/marker/StreamingContentHandle.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/io/marker/StreamingContentHandle.java @@ -17,6 +17,7 @@ */ public interface StreamingContentHandle extends BufferableContentHandle { @Override + @SuppressWarnings("unchecked") default BufferableContentHandle resendableHandleFor(C content) { return new BytesHandle(contentToBytes(content)) .withFormat(((BaseHandle) this).getFormat()); diff --git a/marklogic-client-api/src/main/java/com/marklogic/client/pojo/PojoRepository.java b/marklogic-client-api/src/main/java/com/marklogic/client/pojo/PojoRepository.java index 67d1e86fe..7bccff0ff 100644 --- a/marklogic-client-api/src/main/java/com/marklogic/client/pojo/PojoRepository.java +++ b/marklogic-client-api/src/main/java/com/marklogic/client/pojo/PojoRepository.java @@ -227,6 +227,7 @@ long count(PojoQueryDefinition query, Transaction transaction) /** Deletes from the database the persisted pojo instances with the corresponding ids * @param ids the ids for the pojo instances to delete from the server */ + @SuppressWarnings("unchecked") void delete(ID... ids) throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException; diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/JacksonDatabindTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/JacksonDatabindTest.java index 0c5fc6d21..efa252243 100644 --- a/marklogic-client-api/src/test/java/com/marklogic/client/test/JacksonDatabindTest.java +++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/JacksonDatabindTest.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectReader; +import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; import com.fasterxml.jackson.dataformat.csv.CsvMapper; import com.fasterxml.jackson.dataformat.csv.CsvSchema; import com.fasterxml.jackson.dataformat.xml.XmlMapper; @@ -42,7 +43,7 @@ public static void beforeClass() { // demonstrate our ability to set advanced configuration on a mapper ObjectMapper mapper = new ObjectMapper(); // in this case, we're saying wrap our serialization with the name of the pojo class - mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_OBJECT); + mapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.WRAPPER_OBJECT); // register a JacksonDatabindHandleFactory ready to marshall any City object to/from json // this enables the writeAs method below DatabaseClientFactory.getHandleRegistry().register( @@ -108,7 +109,7 @@ public static class XmlCityWriter implements CityWriter { @Override public void addCity(City city) { if ( numCities >= MAX_TO_WRITE ) return; - JacksonDatabindHandle handle = new JacksonDatabindHandle(city); + JacksonDatabindHandle handle = new JacksonDatabindHandle<>(city); // NOTICE: We've set the mapper to an XmlMapper, showing the versitility of Jackson handle.setMapper(mapper); handle.setFormat(Format.XML); @@ -179,16 +180,16 @@ public void testDatabindingThirdPartyPojoWithMixinAnnotations() throws IOExcepti .addColumn("lastModified") .build(); CsvMapper mapper = new CsvMapper(); - mapper.addMixInAnnotations(Toponym.class, ToponymMixIn1.class); - ObjectReader reader = mapper.reader(Toponym.class).with(schema); + mapper.addMixIn(Toponym.class, ToponymMixIn1.class); + ObjectReader reader = mapper.readerFor(Toponym.class).with(schema); try (BufferedReader cityReader = new BufferedReader(Common.testFileToReader(CITIES_FILE))) { GenericDocumentManager docMgr = client.newDocumentManager(); DocumentWriteSet set = docMgr.newWriteSet(); String line; for (int numWritten = 0; numWritten < MAX_TO_WRITE && (line = cityReader.readLine()) != null; numWritten++ ) { Toponym city = reader.readValue(line); - JacksonDatabindHandle handle = new JacksonDatabindHandle(city); - handle.getMapper().addMixInAnnotations(Toponym.class, ToponymMixIn2.class); + JacksonDatabindHandle handle = new JacksonDatabindHandle<>(city); + handle.getMapper().addMixIn(Toponym.class, ToponymMixIn2.class); set.add(DIRECTORY + "/thirdPartyJsonCities/" + city.geoNameId + ".json", handle); } docMgr.write(set); // we can add assertions later, for now this test just serves as example code and diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/SPARQLManagerTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/SPARQLManagerTest.java index 64a7a525d..9e37efa19 100644 --- a/marklogic-client-api/src/test/java/com/marklogic/client/test/SPARQLManagerTest.java +++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/SPARQLManagerTest.java @@ -424,7 +424,7 @@ public void testInference() throws Exception { } private MappingIterator> parseCsv(String csv) throws JsonProcessingException, IOException { - return new CsvMapper().reader(Map.class) + return new CsvMapper().readerFor(Map.class) .with(CsvSchema.emptySchema().withHeader()) // use first row as header .readValues(csv); } diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java index 3db2b33c3..48c6bb7c7 100644 --- a/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java +++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/LegalHoldsTest.java @@ -29,8 +29,8 @@ import java.nio.file.Files; import java.nio.file.Path; import java.util.Calendar; -import java.util.Hashtable; import java.util.Random; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; @@ -107,7 +107,7 @@ public void scenario10() throws Exception { // walk through all batches of docs matching our query DataMovementManager moveMgr = evalClient.newDataMovementManager(); StringBuilder anyFailure = new StringBuilder(); - Hashtable urisDeleted = new Hashtable<>(); + ConcurrentHashMap urisDeleted = new ConcurrentHashMap<>(); QueryBatcher batcher = moveMgr.newQueryBatcher(query) .withBatchSize(1) .withConsistentSnapshot() diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/QueryBatcherTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/QueryBatcherTest.java index 2f9b6be58..35295e3fe 100644 --- a/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/QueryBatcherTest.java +++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/QueryBatcherTest.java @@ -743,7 +743,7 @@ public void issue623() { qb.awaitCompletion(); moveMgr.stopJob(qb); - assertTrue("".equals(errors.toString())); + assertTrue(errors.toString().isEmpty()); assertEquals(uris.size(), deletedCount.get()); assertEquals(0, queryMgr.search(collectionQuery, new SearchHandle()).getTotalResults()); } @@ -790,8 +790,8 @@ public void testIssue658() throws Exception{ @Test public void maxUrisTestWithIteratorTask() { DataMovementManager dmManager = client.newDataMovementManager(); - List uris = new ArrayList(); - List outputUris = Collections.synchronizedList(new ArrayList()); + List uris = new ArrayList<>(); + List outputUris = Collections.synchronizedList(new ArrayList<>()); class Output { AtomicInteger counter = new AtomicInteger(0); diff --git a/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/WriteBatcherTest.java b/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/WriteBatcherTest.java index fcae81e6a..a42bc2eda 100644 --- a/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/WriteBatcherTest.java +++ b/marklogic-client-api/src/test/java/com/marklogic/client/test/datamovement/WriteBatcherTest.java @@ -165,8 +165,8 @@ public void testWrites() throws Exception { meta = new DocumentMetadataHandle().withCollections(collection, whbTestCollection); batcher.add(uri4, meta, new JacksonHandle(doc4)); batcher.flushAndWait(); - assertEquals( "true", successListenerWasRun.toString()); - assertEquals( "true", failListenerWasRun.toString()); + assertEquals("true", successListenerWasRun.toString()); + assertEquals("true", failListenerWasRun.toString()); StructuredQueryDefinition query = new StructuredQueryBuilder().collection(collection); try ( DocumentPage docs = docMgr.search(query, 1) ) { diff --git a/ml-development-tools/build.gradle b/ml-development-tools/build.gradle index 2308b5c70..84c83e245 100644 --- a/ml-development-tools/build.gradle +++ b/ml-development-tools/build.gradle @@ -7,13 +7,13 @@ plugins { id 'maven-publish' id "com.gradle.plugin-publish" version "1.2.1" id "java-gradle-plugin" - id 'org.jetbrains.kotlin.jvm' version '1.9.24' + id 'org.jetbrains.kotlin.jvm' version '2.1.0' } dependencies { compileOnly gradleApi() implementation project(':marklogic-client-api') - implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.9.24' + implementation 'org.jetbrains.kotlin:kotlin-stdlib:2.1.0' implementation "com.fasterxml.jackson.module:jackson-module-kotlin:${jacksonVersion}" implementation 'com.networknt:json-schema-validator:1.0.88' diff --git a/test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java b/test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java index 7baf00680..025a519f7 100644 --- a/test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java +++ b/test-app/src/main/java/com/marklogic/client/test/ReverseProxyServer.java @@ -89,7 +89,7 @@ public static void main(final String[] args) throws Exception { serverPort = Integer.parseInt(args[2]); if (args.length > 3) { secureServerPort = Integer.parseInt(args[3]); - if (args.length > 4 && args[4].trim().length() > 0) { + if (args.length > 4 && !args[4].trim().isEmpty()) { customMappings = Arrays.asList(args[4].split(",")); } }