All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.marklogic.client.query.ExtractedResult Maven / Gradle / Ivy

/*
 * Copyright 2012-2016 MarkLogic Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.marklogic.client.query;

import com.marklogic.client.io.Format;

/** Surfaces the data sent from the server-side XQuery search:search API. Note
 * that the most important function is to provide access to the list of ExtractedItem
 * objects.  For example:
 * 
{@code    String combinedSearch = 
 *      "" +
 *        "my search terms" +
 *        "" +
 *            "" +
 *                "/some/path" +
 *                "/another/path/*" +
 *            "" +
 *        "" +
 *      "";
 *    StringHandle queryHandle = new StringHandle(combinedSearch).withMimetype("application/xml");
 *    QueryDefinition query = queryMgr.newRawCombinedQueryDefinition(queryHandle);
 *    SearchHandle results = queryMgr.search(query, new SearchHandle());
 *    MatchDocumentSummary[] summaries = results.getMatchResults();
 *    for (MatchDocumentSummary summary : summaries) {
 *        ExtractedResult extracted = summary.getExtracted();
 *        if ( Format.XML == summary.getFormat() ) {
 *            for (ExtractedItem item : extracted) {
 *                Document extractItem = item.getAs(Document.class);
 *                ...
 *            }
 *        }
 *    }}
* * Where you can, of course, use any appropriate StructureReadHandle or corresponding * class (provided by that handle's receiveAs() method) passed to the * {@link ExtractedItem#getAs} method. **/ public interface ExtractedResult extends Iterable { /** The xquery type of the extracted data. For XML it will be "element". For * JSON it will be "object" or "array". Not always available, returns null if * unavailable. * @return the xquery type of the extracted data */ public String getKind(); /** Returns true if the underlying node is an "extracted-none" XML element or * JSON property. * @return if the underlying node is an "extracted-none" XML element or * JSON property */ public boolean isEmpty(); /** The number of ExtractedItem objects in the Iterator. * @return the number of ExtractedItem object in the Iterator */ public int size(); /** Returns the next element in the internal iterator, which is separate * from any new iterator created by calls to iterator(). * @return the next element in the iteration */ public ExtractedItem next(); /** Returns true if internal iterator has more elements. * The internal iterator is separate from any new iterator created by calls to iterator(). * @return true if the internal iterator has more elements */ public boolean hasNext(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy