View Javadoc
1   /*
2    * Copyright 2012-2021 CodeLibs Project and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  package org.codelibs.fess.es.config.bsbhv;
17  
18  import java.util.List;
19  import java.util.Map;
20  
21  import org.codelibs.fesen.action.bulk.BulkRequestBuilder;
22  import org.codelibs.fesen.action.delete.DeleteRequestBuilder;
23  import org.codelibs.fesen.action.index.IndexRequestBuilder;
24  import org.codelibs.fess.es.config.allcommon.EsAbstractBehavior;
25  import org.codelibs.fess.es.config.allcommon.EsAbstractEntity.RequestOptionCall;
26  import org.codelibs.fess.es.config.bsentity.dbmeta.ElevateWordDbm;
27  import org.codelibs.fess.es.config.cbean.ElevateWordCB;
28  import org.codelibs.fess.es.config.exentity.ElevateWord;
29  import org.dbflute.Entity;
30  import org.dbflute.bhv.readable.CBCall;
31  import org.dbflute.bhv.readable.EntityRowHandler;
32  import org.dbflute.cbean.ConditionBean;
33  import org.dbflute.cbean.result.ListResultBean;
34  import org.dbflute.cbean.result.PagingResultBean;
35  import org.dbflute.exception.IllegalBehaviorStateException;
36  import org.dbflute.optional.OptionalEntity;
37  import org.dbflute.util.DfTypeUtil;
38  
39  /**
40   * @author ESFlute (using FreeGen)
41   */
42  public abstract class BsElevateWordBhv extends EsAbstractBehavior<ElevateWord, ElevateWordCB> {
43  
44      // ===================================================================================
45      //                                                                    Control Override
46      //                                                                    ================
47      @Override
48      public String asTableDbName() {
49          return asEsIndexType();
50      }
51  
52      @Override
53      protected String asEsIndex() {
54          return ".fess_config.elevate_word";
55      }
56  
57      @Override
58      public String asEsIndexType() {
59          return "elevate_word";
60      }
61  
62      @Override
63      public String asEsSearchType() {
64          return "elevate_word";
65      }
66  
67      @Override
68      public ElevateWordDbm asDBMeta() {
69          return ElevateWordDbm.getInstance();
70      }
71  
72      @Override
73      protected <RESULT extends ElevateWord> RESULT createEntity(Map<String, Object> source, Class<? extends RESULT> entityType) {
74          try {
75              final RESULT result = entityType.newInstance();
76              result.setBoost(DfTypeUtil.toFloat(source.get("boost")));
77              result.setCreatedBy(DfTypeUtil.toString(source.get("createdBy")));
78              result.setCreatedTime(DfTypeUtil.toLong(source.get("createdTime")));
79              result.setPermissions(toStringArray(source.get("permissions")));
80              result.setReading(DfTypeUtil.toString(source.get("reading")));
81              result.setSuggestWord(DfTypeUtil.toString(source.get("suggestWord")));
82              result.setUpdatedBy(DfTypeUtil.toString(source.get("updatedBy")));
83              result.setUpdatedTime(DfTypeUtil.toLong(source.get("updatedTime")));
84              return updateEntity(source, result);
85          } catch (InstantiationException | IllegalAccessException e) {
86              final String msg = "Cannot create a new instance: " + entityType.getName();
87              throw new IllegalBehaviorStateException(msg, e);
88          }
89      }
90  
91      protected <RESULT extends ElevateWord> RESULT updateEntity(Map<String, Object> source, RESULT result) {
92          return result;
93      }
94  
95      // ===================================================================================
96      //                                                                              Select
97      //                                                                              ======
98      public int selectCount(CBCall<ElevateWordCB> cbLambda) {
99          return facadeSelectCount(createCB(cbLambda));
100     }
101 
102     public OptionalEntity<ElevateWord> selectEntity(CBCall<ElevateWordCB> cbLambda) {
103         return facadeSelectEntity(createCB(cbLambda));
104     }
105 
106     protected OptionalEntity<ElevateWord> facadeSelectEntity(ElevateWordCB cb) {
107         return doSelectOptionalEntity(cb, typeOfSelectedEntity());
108     }
109 
110     protected <ENTITY extends ElevateWord> OptionalEntity<ENTITY> doSelectOptionalEntity(ElevateWordCB cb, Class<? extends ENTITY> tp) {
111         return createOptionalEntity(doSelectEntity(cb, tp), cb);
112     }
113 
114     @Override
115     public ElevateWordCB newConditionBean() {
116         return new ElevateWordCB();
117     }
118 
119     @Override
120     protected Entity doReadEntity(ConditionBean cb) {
121         return facadeSelectEntity(downcast(cb)).orElse(null);
122     }
123 
124     public ElevateWord selectEntityWithDeletedCheck(CBCall<ElevateWordCB> cbLambda) {
125         return facadeSelectEntityWithDeletedCheck(createCB(cbLambda));
126     }
127 
128     public OptionalEntity<ElevateWord> selectByPK(String id) {
129         return facadeSelectByPK(id);
130     }
131 
132     protected OptionalEntity<ElevateWord> facadeSelectByPK(String id) {
133         return doSelectOptionalByPK(id, typeOfSelectedEntity());
134     }
135 
136     protected <ENTITY extends ElevateWord> ENTITY doSelectByPK(String id, Class<? extends ENTITY> tp) {
137         return doSelectEntity(xprepareCBAsPK(id), tp);
138     }
139 
140     protected ElevateWordCB xprepareCBAsPK(String id) {
141         assertObjectNotNull("id", id);
142         return newConditionBean().acceptPK(id);
143     }
144 
145     protected <ENTITY extends ElevateWord> OptionalEntity<ENTITY> doSelectOptionalByPK(String id, Class<? extends ENTITY> tp) {
146         return createOptionalEntity(doSelectByPK(id, tp), id);
147     }
148 
149     @Override
150     protected Class<? extends ElevateWord> typeOfSelectedEntity() {
151         return ElevateWord.class;
152     }
153 
154     @Override
155     protected Class<ElevateWord> typeOfHandlingEntity() {
156         return ElevateWord.class;
157     }
158 
159     @Override
160     protected Class<ElevateWordCB> typeOfHandlingConditionBean() {
161         return ElevateWordCB.class;
162     }
163 
164     public ListResultBean<ElevateWord> selectList(CBCall<ElevateWordCB> cbLambda) {
165         return facadeSelectList(createCB(cbLambda));
166     }
167 
168     public PagingResultBean<ElevateWord> selectPage(CBCall<ElevateWordCB> cbLambda) {
169         // #pending same?
170         return (PagingResultBean<ElevateWord>) facadeSelectList(createCB(cbLambda));
171     }
172 
173     public void selectCursor(CBCall<ElevateWordCB> cbLambda, EntityRowHandler<ElevateWord> entityLambda) {
174         facadeSelectCursor(createCB(cbLambda), entityLambda);
175     }
176 
177     public void selectBulk(CBCall<ElevateWordCB> cbLambda, EntityRowHandler<List<ElevateWord>> entityLambda) {
178         delegateSelectBulk(createCB(cbLambda), entityLambda, typeOfSelectedEntity());
179     }
180 
181     // ===================================================================================
182     //                                                                              Update
183     //                                                                              ======
184     public void insert(ElevateWord entity) {
185         doInsert(entity, null);
186     }
187 
188     public void insert(ElevateWord entity, RequestOptionCall<IndexRequestBuilder> opLambda) {
189         entity.asDocMeta().indexOption(opLambda);
190         doInsert(entity, null);
191     }
192 
193     public void update(ElevateWord entity) {
194         doUpdate(entity, null);
195     }
196 
197     public void update(ElevateWord entity, RequestOptionCall<IndexRequestBuilder> opLambda) {
198         entity.asDocMeta().indexOption(opLambda);
199         doUpdate(entity, null);
200     }
201 
202     public void insertOrUpdate(ElevateWord entity) {
203         doInsertOrUpdate(entity, null, null);
204     }
205 
206     public void insertOrUpdate(ElevateWord entity, RequestOptionCall<IndexRequestBuilder> opLambda) {
207         entity.asDocMeta().indexOption(opLambda);
208         doInsertOrUpdate(entity, null, null);
209     }
210 
211     public void delete(ElevateWord entity) {
212         doDelete(entity, null);
213     }
214 
215     public void delete(ElevateWord entity, RequestOptionCall<DeleteRequestBuilder> opLambda) {
216         entity.asDocMeta().deleteOption(opLambda);
217         doDelete(entity, null);
218     }
219 
220     public int queryDelete(CBCall<ElevateWordCB> cbLambda) {
221         return doQueryDelete(createCB(cbLambda), null);
222     }
223 
224     public int[] batchInsert(List<ElevateWord> list) {
225         return batchInsert(list, null, null);
226     }
227 
228     public int[] batchInsert(List<ElevateWord> list, RequestOptionCall<BulkRequestBuilder> call) {
229         return batchInsert(list, call, null);
230     }
231 
232     public int[] batchInsert(List<ElevateWord> list, RequestOptionCall<BulkRequestBuilder> call,
233             RequestOptionCall<IndexRequestBuilder> entityCall) {
234         return doBatchInsert(new BulkList<>(list, call, entityCall), null);
235     }
236 
237     public int[] batchUpdate(List<ElevateWord> list) {
238         return batchUpdate(list, null, null);
239     }
240 
241     public int[] batchUpdate(List<ElevateWord> list, RequestOptionCall<BulkRequestBuilder> call) {
242         return batchUpdate(list, call, null);
243     }
244 
245     public int[] batchUpdate(List<ElevateWord> list, RequestOptionCall<BulkRequestBuilder> call,
246             RequestOptionCall<IndexRequestBuilder> entityCall) {
247         return doBatchUpdate(new BulkList<>(list, call, entityCall), null);
248     }
249 
250     public int[] batchDelete(List<ElevateWord> list) {
251         return batchDelete(list, null, null);
252     }
253 
254     public int[] batchDelete(List<ElevateWord> list, RequestOptionCall<BulkRequestBuilder> call) {
255         return batchDelete(list, call, null);
256     }
257 
258     public int[] batchDelete(List<ElevateWord> list, RequestOptionCall<BulkRequestBuilder> call,
259             RequestOptionCall<IndexRequestBuilder> entityCall) {
260         return doBatchDelete(new BulkList<>(list, call, entityCall), null);
261     }
262 
263     // #pending create, modify, remove
264 }