4747import com .marklogic .client .query .QueryManager ;
4848import com .marklogic .client .query .RawCombinedQueryDefinition ;
4949import com .marklogic .client .query .RawQueryByExampleDefinition ;
50- import com .marklogic .client .query .RawQueryDefinition ;
5150import com .marklogic .client .query .RawStructuredQueryDefinition ;
5251import com .marklogic .client .query .StringQueryDefinition ;
5352import com .marklogic .client .query .StructuredQueryBuilder ;
@@ -158,64 +157,6 @@ public ValuesListDefinition newValuesListDefinition(String optionsName) {
158157 return new ValuesListDefinitionImpl (optionsName );
159158 }
160159
161- // shortcut search
162- @ Override
163- public <T > T searchAs (Format format , Object query , Class <T > as ) {
164- return searchAs (format , query , as , 1 );
165- }
166- @ Override
167- public <T > T searchAs (Format format , Object query , Class <T > as , long start ) {
168- if (as == null ) {
169- throw new IllegalArgumentException ("no type to search as" );
170- }
171-
172- QueryDefinition querydef = null ;
173- if (query == null ) {
174- querydef = new StringQueryDefinitionImpl (null ).withCriteria ("" );
175- } else if (RawQueryDefinition .class .isAssignableFrom (query .getClass ())) {
176- RawQueryDefinition rawQuery = (RawQueryDefinition ) query ;
177- Utilities .setHandleStructuredFormat (rawQuery .getHandle (), format );
178- querydef = rawQuery ;
179- } else if (QueryDefinition .class .isAssignableFrom (query .getClass ())) {
180- querydef = (QueryDefinition ) query ;
181- } else if (StructureWriteHandle .class .isAssignableFrom (query .getClass ())) {
182- StructureWriteHandle queryHandle = (StructureWriteHandle ) query ;
183- Utilities .setHandleStructuredFormat (queryHandle , format );
184- querydef = new RawQueryDefinitionImpl .Combined (queryHandle );
185- } else {
186- Class <?> queryAs = query .getClass ();
187- ContentHandle <?> queryHandle = getHandleRegistry ().makeHandle (queryAs );
188- if (!StructureWriteHandle .class .isAssignableFrom (queryHandle .getClass ())) {
189- throw new IllegalArgumentException (
190- "Handle " +queryHandle .getClass ().getName ()+
191- " cannot be used to search with " +queryAs .getName ()
192- );
193- }
194- Utilities .setHandleContent (queryHandle , query );
195- Utilities .setHandleStructuredFormat (queryHandle , format );
196- querydef = new RawQueryDefinitionImpl .Combined ((StructureWriteHandle ) queryHandle );
197- }
198-
199- if (as .isAssignableFrom (SearchHandle .class )) {
200- SearchHandle searchHandle = new SearchHandle ();
201- search (querydef , searchHandle , start );
202- return as .cast (searchHandle );
203- } else {
204- ContentHandle <T > resultHandle = getHandleRegistry ().makeHandle (as );
205- if (!SearchReadHandle .class .isAssignableFrom (resultHandle .getClass ())) {
206- throw new IllegalArgumentException (
207- "Handle " +resultHandle .getClass ().getName ()+
208- " cannot be used to search for " +as .getName ()
209- );
210- }
211- Utilities .setHandleStructuredFormat (resultHandle , format );
212-
213- search (querydef , (SearchReadHandle ) resultHandle , start );
214- return resultHandle .get ();
215- }
216- }
217-
218- // strongly typed search
219160 @ Override
220161 public <T extends SearchReadHandle > T search (QueryDefinition querydef , T searchHandle ) {
221162 return search (querydef , searchHandle , 1 , null );
@@ -543,12 +484,12 @@ public SuggestDefinition newSuggestDefinition(String suggestString,
543484 }
544485
545486 @ Override
546- public RawCombinedQueryDefinition newRawCombinedQueryDefinitionAs (Object rawQuery ) {
547- return newRawCombinedQueryDefinitionAs (rawQuery , null );
487+ public RawCombinedQueryDefinition newRawCombinedQueryDefinitionAs (Format format , Object rawQuery ) {
488+ return newRawCombinedQueryDefinitionAs (format , rawQuery , null );
548489 }
549490 @ Override
550- public RawCombinedQueryDefinition newRawCombinedQueryDefinitionAs (Object rawQuery , String optionsName ) {
551- return newRawCombinedQueryDefinition (structuredWrite (rawQuery ), optionsName );
491+ public RawCombinedQueryDefinition newRawCombinedQueryDefinitionAs (Format format , Object rawQuery , String optionsName ) {
492+ return newRawCombinedQueryDefinition (structuredWrite (format , rawQuery ), optionsName );
552493 }
553494 @ Override
554495 public RawCombinedQueryDefinition newRawCombinedQueryDefinition (StructureWriteHandle handle ) {
@@ -560,12 +501,12 @@ public RawCombinedQueryDefinition newRawCombinedQueryDefinition(StructureWriteHa
560501 }
561502
562503 @ Override
563- public RawStructuredQueryDefinition newRawStructuredQueryDefinitionAs (Object query ) {
564- return newRawStructuredQueryDefinitionAs (query , null );
504+ public RawStructuredQueryDefinition newRawStructuredQueryDefinitionAs (Format format , Object query ) {
505+ return newRawStructuredQueryDefinitionAs (format , query , null );
565506 }
566507 @ Override
567- public RawStructuredQueryDefinition newRawStructuredQueryDefinitionAs (Object query , String optionsName ) {
568- return newRawStructuredQueryDefinition (structuredWrite (query ), optionsName );
508+ public RawStructuredQueryDefinition newRawStructuredQueryDefinitionAs (Format format , Object query , String optionsName ) {
509+ return newRawStructuredQueryDefinition (structuredWrite (format , query ), optionsName );
569510 }
570511 @ Override
571512 public RawStructuredQueryDefinition newRawStructuredQueryDefinition (StructureWriteHandle handle ) {
@@ -577,12 +518,12 @@ public RawStructuredQueryDefinition newRawStructuredQueryDefinition(StructureWri
577518 }
578519
579520 @ Override
580- public RawQueryByExampleDefinition newRawQueryByExampleDefinitionAs (Object query ) {
581- return newRawQueryByExampleDefinitionAs (query , null );
521+ public RawQueryByExampleDefinition newRawQueryByExampleDefinitionAs (Format format , Object query ) {
522+ return newRawQueryByExampleDefinitionAs (format , query , null );
582523 }
583524 @ Override
584- public RawQueryByExampleDefinition newRawQueryByExampleDefinitionAs (Object query , String optionsName ) {
585- return newRawQueryByExampleDefinition (structuredWrite (query ), optionsName );
525+ public RawQueryByExampleDefinition newRawQueryByExampleDefinitionAs (Format format , Object query , String optionsName ) {
526+ return newRawQueryByExampleDefinition (structuredWrite (format , query ), optionsName );
586527 }
587528 @ Override
588529 public RawQueryByExampleDefinition newRawQueryByExampleDefinition (StructureWriteHandle handle ) {
@@ -593,16 +534,19 @@ public RawQueryByExampleDefinition newRawQueryByExampleDefinition(StructureWrite
593534 return new RawQueryDefinitionImpl .ByExample (handle , optionsName );
594535 }
595536
596- private StructureWriteHandle structuredWrite (Object content ) {
597- Class <?> as = content .getClass ();
598- ContentHandle <?> handle = getHandleRegistry ().makeHandle (as );
599- if (!StructureWriteHandle .class .isAssignableFrom (handle .getClass ())) {
537+ private StructureWriteHandle structuredWrite (Format format , Object query ) {
538+ Class <?> as = query .getClass ();
539+ ContentHandle <?> queryHandle = getHandleRegistry ().makeHandle (as );
540+ if (!StructureWriteHandle .class .isAssignableFrom (queryHandle .getClass ())) {
600541 throw new IllegalArgumentException (
601- "Handle " +handle .getClass ().getName ()+
542+ "Handle " +queryHandle .getClass ().getName ()+
602543 " does not provide structure write handle for " +as .getName ()
603544 );
604545 }
605546
606- return (StructureWriteHandle ) handle ;
547+ Utilities .setHandleContent (queryHandle , query );
548+ Utilities .setHandleStructuredFormat (queryHandle , format );
549+
550+ return (StructureWriteHandle ) queryHandle ;
607551 }
608552}
0 commit comments