1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.es.log.allcommon;
17
18 import org.codelibs.fesen.action.search.SearchRequestBuilder;
19 import org.codelibs.fesen.core.TimeValue;
20 import org.dbflute.cbean.ConditionBean;
21 import org.dbflute.cbean.chelper.HpCBPurpose;
22 import org.dbflute.cbean.chelper.HpColumnSpHandler;
23 import org.dbflute.cbean.coption.CursorSelectOption;
24 import org.dbflute.cbean.coption.ScalarSelectOption;
25 import org.dbflute.cbean.coption.StatementConfigCall;
26 import org.dbflute.cbean.dream.SpecifiedColumn;
27 import org.dbflute.cbean.exception.ConditionBeanExceptionThrower;
28 import org.dbflute.cbean.ordering.OrderByBean;
29 import org.dbflute.cbean.paging.PagingBean;
30 import org.dbflute.cbean.paging.PagingInvoker;
31 import org.dbflute.cbean.scoping.AndQuery;
32 import org.dbflute.cbean.scoping.ModeQuery;
33 import org.dbflute.cbean.scoping.OrQuery;
34 import org.dbflute.cbean.scoping.UnionQuery;
35 import org.dbflute.cbean.sqlclause.SqlClause;
36 import org.dbflute.cbean.sqlclause.orderby.OrderByClause;
37 import org.dbflute.dbmeta.DBMeta;
38 import org.dbflute.dbmeta.accessory.DerivedTypeHandler;
39 import org.dbflute.jdbc.StatementConfig;
40 import org.dbflute.system.DBFluteSystem;
41 import org.dbflute.twowaysql.style.BoundDateDisplayStyle;
42
43
44
45
46 public abstract class EsAbstractConditionBean implements ConditionBean {
47
48
49
50
51 protected final SqlClause _sqlClause = new EsSqlClause(asTableDbName());
52 protected int _safetyMaxResultSize;
53 protected SearchRequestParams _searchRequestParams = new SearchRequestParams();
54 protected String _preference;
55
56
57
58
59 public abstract SearchRequestBuilder build(SearchRequestBuilder builder);
60
61
62
63
64 @Override
65 public boolean isPaging() {
66 return false;
67 }
68
69 @Override
70 public boolean canPagingCountLater() {
71 return false;
72 }
73
74 @Override
75 public boolean canPagingReSelect() {
76 return true;
77 }
78
79 @Override
80 public void paging(int pageSize, int pageNumber) {
81 if (pageSize <= 0) {
82 throwPagingPageSizeNotPlusException(pageSize, pageNumber);
83 }
84 fetchFirst(pageSize);
85 xfetchPage(pageNumber);
86 }
87
88 protected void throwPagingPageSizeNotPlusException(int pageSize, int pageNumber) {
89 createCBExThrower().throwPagingPageSizeNotPlusException(this, pageSize, pageNumber);
90 }
91
92 protected ConditionBeanExceptionThrower createCBExThrower() {
93 return new ConditionBeanExceptionThrower();
94 }
95
96 @Override
97 public void xsetPaging(boolean paging) {
98
99
100 }
101
102 @Override
103 public void enablePagingCountLater() {
104
105 }
106
107 @Override
108 public void disablePagingCountLater() {
109
110 }
111
112 @Override
113 public void enablePagingReSelect() {
114
115 }
116
117 @Override
118 public void disablePagingReSelect() {
119
120 }
121
122 @Override
123 public PagingBean fetchFirst(int fetchSize) {
124 getSqlClause().fetchFirst(fetchSize);
125 return this;
126 }
127
128 @Override
129 public PagingBean xfetchScope(int fetchStartIndex, int fetchSize) {
130 getSqlClause().fetchScope(fetchStartIndex, fetchSize);
131 return this;
132 }
133
134 @Override
135 public PagingBean xfetchPage(int fetchPageNumber) {
136 getSqlClause().fetchPage(fetchPageNumber);
137 return this;
138 }
139
140 @Override
141 public <ENTITY> PagingInvoker<ENTITY> createPagingInvoker(String tableDbName) {
142 return null;
143 }
144
145
146
147
148 @Override
149 public int getFetchStartIndex() {
150 return getSqlClause().getFetchStartIndex();
151 }
152
153 @Override
154 public int getFetchSize() {
155 return getSqlClause().getFetchSize();
156 }
157
158 @Override
159 public int getFetchPageNumber() {
160 return getSqlClause().getFetchPageNumber();
161 }
162
163 @Override
164 public int getPageStartIndex() {
165 return getSqlClause().getPageStartIndex();
166 }
167
168 @Override
169 public int getPageEndIndex() {
170 return getSqlClause().getPageEndIndex();
171 }
172
173 @Override
174 public boolean isFetchScopeEffective() {
175 return getSqlClause().isFetchScopeEffective();
176 }
177
178 @Override
179 public int getFetchNarrowingSkipStartIndex() {
180 return getPageStartIndex();
181 }
182
183 @Override
184 public int getFetchNarrowingLoopCount() {
185 return getFetchSize();
186 }
187
188 @Override
189 public boolean isFetchNarrowingSkipStartIndexEffective() {
190 return false;
191 }
192
193 @Override
194 public boolean isFetchNarrowingLoopCountEffective() {
195 return false;
196 }
197
198 @Override
199 public boolean isFetchNarrowingEffective() {
200 return getSqlClause().isFetchNarrowingEffective();
201 }
202
203 @Override
204 public void xdisableFetchNarrowing() {
205
206 String msg = "This method is unsupported on ConditionBean!";
207 throw new UnsupportedOperationException(msg);
208 }
209
210 @Override
211 public void xenableIgnoredFetchNarrowing() {
212
213 }
214
215 @Override
216 public void checkSafetyResult(int safetyMaxResultSize) {
217 _safetyMaxResultSize = safetyMaxResultSize;
218 }
219
220 @Override
221 public int getSafetyMaxResultSize() {
222 return _safetyMaxResultSize;
223 }
224
225 @Override
226 public String getOrderByClause() {
227 return null;
228 }
229
230 @Override
231 public OrderByClause getOrderByComponent() {
232 return null;
233 }
234
235 @Override
236 public OrderByBean clearOrderBy() {
237 return null;
238 }
239
240 @Override
241 public void overTheWaves(SpecifiedColumn dreamCruiseTicket) {
242
243 }
244
245 @Override
246 public void mysticRhythms(Object mysticBinding) {
247
248 }
249
250 @Override
251 public DBMeta asDBMeta() {
252 return null;
253 }
254
255 @Override
256 public SqlClause getSqlClause() {
257 return _sqlClause;
258 }
259
260 @Override
261 public ConditionBean addOrderBy_PK_Asc() {
262 return null;
263 }
264
265 @Override
266 public ConditionBean addOrderBy_PK_Desc() {
267 return null;
268 }
269
270 @Override
271 public HpColumnSpHandler localSp() {
272 return null;
273 }
274
275 @Override
276 public void enableInnerJoinAutoDetect() {
277
278 }
279
280 @Override
281 public void disableInnerJoinAutoDetect() {
282
283 }
284
285 @Override
286 public SpecifiedColumn inviteDerivedToDreamCruise(String derivedAlias) {
287 return null;
288 }
289
290 @Override
291 public ConditionBean xcreateDreamCruiseCB() {
292 return null;
293 }
294
295 @Override
296 public void xmarkAsDeparturePortForDreamCruise() {
297
298 }
299
300 @Override
301 public boolean xisDreamCruiseDeparturePort() {
302 return false;
303 }
304
305 @Override
306 public boolean xisDreamCruiseShip() {
307 return false;
308 }
309
310 @Override
311 public ConditionBean xgetDreamCruiseDeparturePort() {
312 return null;
313 }
314
315 @Override
316 public boolean xhasDreamCruiseTicket() {
317 return false;
318 }
319
320 @Override
321 public SpecifiedColumn xshowDreamCruiseTicket() {
322 return null;
323 }
324
325 @Override
326 public void xkeepDreamCruiseJourneyLogBook(String relationPath) {
327
328 }
329
330 @Override
331 public void xsetupSelectDreamCruiseJourneyLogBook() {
332
333 }
334
335 @Override
336 public void xsetupSelectDreamCruiseJourneyLogBookIfUnionExists() {
337
338 }
339
340 @Override
341 public Object xgetMysticBinding() {
342 return null;
343 }
344
345 @Override
346 public void ignoreNullOrEmptyQuery() {
347 }
348
349 @Override
350 public void checkNullOrEmptyQuery() {
351 }
352
353 @Override
354 public void enableEmptyStringQuery(ModeQuery noArgInLambda) {
355
356 }
357
358 @Override
359 public void disableEmptyStringQuery() {
360 }
361
362 @Override
363 public void enableOverridingQuery(ModeQuery noArgInLambda) {
364
365 }
366
367 @Override
368 public void disableOverridingQuery() {
369
370 }
371
372 @Override
373 public void enablePagingCountLeastJoin() {
374
375 }
376
377 @Override
378 public void disablePagingCountLeastJoin() {
379
380 }
381
382 @Override
383 public boolean canPagingSelectAndQuerySplit() {
384 return false;
385 }
386
387 @Override
388 public ConditionBean lockForUpdate() {
389 return null;
390 }
391
392 @Override
393 public ConditionBean xsetupSelectCountIgnoreFetchScope(boolean uniqueCount) {
394 return null;
395 }
396
397 @Override
398 public ConditionBean xafterCareSelectCountIgnoreFetchScope() {
399 return null;
400 }
401
402 @Override
403 public boolean isSelectCountIgnoreFetchScope() {
404 return false;
405 }
406
407 @Override
408 public CursorSelectOption getCursorSelectOption() {
409 return null;
410 }
411
412 @Override
413 public void xacceptScalarSelectOption(ScalarSelectOption option) {
414
415 }
416
417 @Override
418 public void configure(StatementConfigCall<StatementConfig> confLambda) {
419
420 }
421
422 @Override
423 public StatementConfig getStatementConfig() {
424 return null;
425 }
426
427 @Override
428 public boolean canRelationMappingCache() {
429 return false;
430 }
431
432 @Override
433 public void enableNonSpecifiedColumnAccess() {
434
435 }
436
437 @Override
438 public void disableNonSpecifiedColumnAccess() {
439
440 }
441
442 @Override
443 public boolean isNonSpecifiedColumnAccessAllowed() {
444 return false;
445 }
446
447 @Override
448 public void enableColumnNullObject() {
449 }
450
451 @Override
452 public void disableColumnNullObject() {
453 }
454
455 @Override
456 public void enableQueryUpdateCountPreCheck() {
457
458 }
459
460 @Override
461 public void disableQueryUpdateCountPreCheck() {
462
463 }
464
465 @Override
466 public boolean isQueryUpdateCountPreCheck() {
467 return false;
468 }
469
470 @Override
471 public String toDisplaySql() {
472 return null;
473 }
474
475 @Override
476 public void styleLogDateDisplay(BoundDateDisplayStyle logDateDisplayStyle) {
477
478 }
479
480 @Override
481 public BoundDateDisplayStyle getLogDateDisplayStyle() {
482 return null;
483 }
484
485 @Override
486 public boolean hasWhereClauseOnBaseQuery() {
487 return false;
488 }
489
490 @Override
491 public void clearWhereClauseOnBaseQuery() {
492
493 }
494
495 @Override
496 public boolean hasSelectAllPossible() {
497 return false;
498 }
499
500 @Override
501 public boolean hasOrderByClause() {
502 return false;
503 }
504
505 @Override
506 public boolean hasUnionQueryOrUnionAllQuery() {
507 return false;
508 }
509
510 @Override
511 public void invokeSetupSelect(String foreignPropertyNamePath) {
512
513 }
514
515 @Override
516 public SpecifiedColumn invokeSpecifyColumn(String columnPropertyPath) {
517 return null;
518 }
519
520 @Override
521 public void invokeOrScopeQuery(OrQuery<ConditionBean> orQuery) {
522
523 }
524
525 @Override
526 public void invokeOrScopeQueryAndPart(AndQuery<ConditionBean> andQuery) {
527
528 }
529
530 @Override
531 public void xregisterUnionQuerySynchronizer(UnionQuery<ConditionBean> unionQuerySynchronizer) {
532
533 }
534
535 @Override
536 public DerivedTypeHandler xgetDerivedTypeHandler() {
537 return null;
538 }
539
540 @Override
541 public HpCBPurpose getPurpose() {
542 return null;
543 }
544
545 @Override
546 public void xsetupForScalarSelect() {
547
548 }
549
550 @Override
551 public void xsetupForQueryInsert() {
552
553 }
554
555 @Override
556 public void xsetupForSpecifiedUpdate() {
557
558 }
559
560 @Override
561 public void xsetupForVaryingUpdate() {
562
563 }
564
565 @Override
566 public void enableThatsBadTiming() {
567
568 }
569
570 @Override
571 public void disableThatsBadTiming() {
572
573 }
574
575
576 public void enableSpecifyColumnRequired() {
577
578 }
579
580 public void disableSpecifyColumnRequired() {
581
582 }
583
584 public void xcheckSpecifyColumnRequiredIfNeeds() {
585
586 }
587
588 @Override
589 public boolean hasSpecifiedLocalColumn() {
590 return false;
591 }
592
593 @Override
594 public void enableUndefinedClassificationSelect() {
595 }
596
597 @Override
598 public void disableUndefinedClassificationSelect() {
599 }
600
601 @Override
602 public boolean isUndefinedClassificationSelectAllowed() {
603 return false;
604 }
605
606
607
608
609 public SearchRequestParams request() {
610 return _searchRequestParams;
611 }
612
613 public void setPreference(final String preference) {
614 _preference = preference;
615 }
616
617 public String getPreference() {
618 return _preference;
619 }
620
621
622
623
624 protected String ln() {
625 return DBFluteSystem.ln();
626 }
627
628 protected void assertObjectNotNull(String variableName, Object value) {
629 if (variableName == null) {
630 String msg = "The value should not be null: variableName=null value=" + value;
631 throw new IllegalArgumentException(msg);
632 }
633 if (value == null) {
634 String msg = "The value should not be null: variableName=" + variableName;
635 throw new IllegalArgumentException(msg);
636 }
637 }
638
639
640
641
642 public static class SearchRequestParams {
643
644 private Boolean explain;
645
646 private Float minScore;
647
648 private String preference;
649
650 private String routing;
651
652 private String searchType;
653
654 private long timeoutInMillis = -1;
655
656 private Boolean version;
657
658 private Boolean seqNoAndPrimaryTerm = Boolean.TRUE;
659
660 private int terminateAfter = 0;
661
662 public void build(SearchRequestBuilder builder) {
663 if (explain != null) {
664 builder.setExplain(explain);
665 }
666 if (minScore != null) {
667 builder.setMinScore(minScore);
668 }
669 if (preference != null) {
670 builder.setPreference(preference);
671 }
672 if (routing != null) {
673 builder.setRouting(routing);
674 }
675 if (searchType != null) {
676 builder.setSearchType(searchType);
677 }
678 if (timeoutInMillis != -1) {
679 builder.setTimeout(new TimeValue(timeoutInMillis));
680 }
681 if (version != null) {
682 builder.setVersion(version);
683 }
684 if (seqNoAndPrimaryTerm != null) {
685 builder.seqNoAndPrimaryTerm(seqNoAndPrimaryTerm);
686 }
687 if (terminateAfter > 0) {
688 builder.setTerminateAfter(terminateAfter);
689 }
690 }
691
692 public void setExplain(boolean explain) {
693 this.explain = explain;
694 }
695
696 public void setMinScore(float minScore) {
697 this.minScore = minScore;
698 }
699
700 public void setPreference(String preference) {
701 this.preference = preference;
702 }
703
704 public void setRouting(String routing) {
705 this.routing = routing;
706 }
707
708 public void setSearchType(String searchType) {
709 this.searchType = searchType;
710 }
711
712 public void setTimeoutInMillis(long timeoutInMillis) {
713 this.timeoutInMillis = timeoutInMillis;
714 }
715
716 public void setVersion(boolean version) {
717 this.version = version;
718 }
719
720 public void setTerminateAfter(int terminateAfter) {
721 this.terminateAfter = terminateAfter;
722 }
723 }
724 }