From 57dc4790bfbbb6ee0bd02244c57db9eeb6d37b7d Mon Sep 17 00:00:00 2001 From: Mohsin Husen Date: Mon, 28 Jan 2013 11:41:40 +0000 Subject: [PATCH] Updated Documentation --- site/apidocs.zip | Bin 0 -> 414092 bytes site/apidocs/allclasses-frame.html | 136 --- site/apidocs/allclasses-noframe.html | 136 --- site/apidocs/constant-values.html | 199 --- site/apidocs/deprecated-list.html | 147 --- site/apidocs/help-doc.html | 224 ---- site/apidocs/index-all.html | 996 --------------- site/apidocs/index.html | 40 - .../elasticsearch/ElasticsearchException.html | 320 ----- .../elasticsearch/annotations/Document.html | 227 ---- .../data/elasticsearch/annotations/Query.html | 233 ---- .../annotations/class-use/Document.html | 145 --- .../annotations/class-use/Query.html | 145 --- .../annotations/package-frame.html | 35 - .../annotations/package-summary.html | 162 --- .../annotations/package-tree.html | 154 --- .../annotations/package-use.html | 145 --- .../class-use/ElasticsearchException.html | 145 --- .../client/NodeClientFactoryBean.html | 353 ------ .../client/TransportClientFactoryBean.html | 425 ------- .../class-use/NodeClientFactoryBean.html | 145 --- .../class-use/TransportClientFactoryBean.html | 145 --- .../elasticsearch/client/package-frame.html | 35 - .../elasticsearch/client/package-summary.html | 162 --- .../elasticsearch/client/package-tree.html | 156 --- .../elasticsearch/client/package-use.html | 145 --- .../config/ElasticsearchNamespaceHandler.html | 266 ---- .../NodeClientBeanDefinitionParser.html | 289 ----- .../TransportClientBeanDefinitionParser.html | 289 ----- .../ElasticsearchNamespaceHandler.html | 145 --- .../NodeClientBeanDefinitionParser.html | 145 --- .../TransportClientBeanDefinitionParser.html | 145 --- .../elasticsearch/config/package-frame.html | 37 - .../elasticsearch/config/package-summary.html | 166 --- .../elasticsearch/config/package-tree.html | 160 --- .../elasticsearch/config/package-use.html | 145 --- .../core/ElasticsearchOperations.html | 639 ---------- .../core/ElasticsearchTemplate.html | 764 ------------ .../elasticsearch/core/ResultsMapper.html | 207 ---- .../class-use/ElasticsearchOperations.html | 334 ----- .../core/class-use/ElasticsearchTemplate.html | 145 --- .../core/class-use/ResultsMapper.html | 145 --- .../DateTimeConverters.JavaDateConverter.html | 338 ----- ...eTimeConverters.JodaDateTimeConverter.html | 338 ----- ...Converters.JodaLocalDateTimeConverter.html | 338 ----- .../core/convert/DateTimeConverters.html | 258 ---- .../core/convert/ElasticsearchConverter.html | 235 ---- .../MappingElasticsearchConverter.html | 314 ----- .../DateTimeConverters.JavaDateConverter.html | 190 --- ...eTimeConverters.JodaDateTimeConverter.html | 190 --- ...Converters.JodaLocalDateTimeConverter.html | 190 --- .../convert/class-use/DateTimeConverters.html | 145 --- .../class-use/ElasticsearchConverter.html | 233 ---- .../MappingElasticsearchConverter.html | 145 --- .../core/convert/package-frame.html | 61 - .../core/convert/package-summary.html | 198 --- .../core/convert/package-tree.html | 173 --- .../core/convert/package-use.html | 208 ---- .../ElasticsearchPersistentEntity.html | 247 ---- ...Property.PropertyToFieldNameConverter.html | 338 ----- .../ElasticsearchPersistentProperty.html | 242 ---- .../SimpleElasticsearchMappingContext.html | 304 ----- .../SimpleElasticsearchPersistentEntity.html | 331 ----- ...SimpleElasticsearchPersistentProperty.html | 379 ------ .../ElasticsearchPersistentEntity.html | 281 ----- ...Property.PropertyToFieldNameConverter.html | 190 --- .../ElasticsearchPersistentProperty.html | 363 ------ .../SimpleElasticsearchMappingContext.html | 145 --- .../SimpleElasticsearchPersistentEntity.html | 207 ---- ...SimpleElasticsearchPersistentProperty.html | 145 --- .../core/mapping/package-frame.html | 61 - .../core/mapping/package-summary.html | 198 --- .../core/mapping/package-tree.html | 187 --- .../core/mapping/package-use.html | 258 ---- .../elasticsearch/core/package-frame.html | 46 - .../elasticsearch/core/package-summary.html | 176 --- .../data/elasticsearch/core/package-tree.html | 160 --- .../data/elasticsearch/core/package-use.html | 228 ---- .../core/query/Criteria.CriteriaEntry.html | 242 ---- .../core/query/Criteria.OperationKey.html | 406 ------ .../elasticsearch/core/query/Criteria.html | 1044 ---------------- .../core/query/CriteriaQuery.html | 552 --------- .../elasticsearch/core/query/DeleteQuery.html | 272 ----- .../data/elasticsearch/core/query/Field.html | 217 ---- .../elasticsearch/core/query/GetQuery.html | 272 ----- .../elasticsearch/core/query/IndexQuery.html | 310 ----- .../data/elasticsearch/core/query/Query.html | 331 ----- .../elasticsearch/core/query/SearchQuery.html | 495 -------- .../elasticsearch/core/query/SimpleField.html | 289 ----- .../elasticsearch/core/query/StringQuery.html | 472 ------- .../class-use/Criteria.CriteriaEntry.html | 181 --- .../class-use/Criteria.OperationKey.html | 198 --- .../core/query/class-use/Criteria.html | 468 ------- .../core/query/class-use/CriteriaQuery.html | 450 ------- .../core/query/class-use/DeleteQuery.html | 205 ---- .../core/query/class-use/Field.html | 250 ---- .../core/query/class-use/GetQuery.html | 205 ---- .../core/query/class-use/IndexQuery.html | 213 ---- .../core/query/class-use/Query.html | 255 ---- .../core/query/class-use/SearchQuery.html | 295 ----- .../core/query/class-use/SimpleField.html | 145 --- .../core/query/class-use/StringQuery.html | 266 ---- .../core/query/package-frame.html | 73 -- .../core/query/package-summary.html | 222 ---- .../core/query/package-tree.html | 171 --- .../elasticsearch/core/query/package-use.html | 332 ----- .../data/elasticsearch/package-frame.html | 33 - .../data/elasticsearch/package-summary.html | 158 --- .../data/elasticsearch/package-tree.html | 161 --- .../data/elasticsearch/package-use.html | 145 --- .../ElasticsearchCrudRepository.html | 248 ---- .../repository/ElasticsearchRepository.html | 323 ----- .../cdi/ElasticsearchRepositoryBean.html | 300 ----- .../cdi/ElasticsearchRepositoryExtension.html | 238 ---- .../ElasticsearchRepositoryBean.html | 145 --- .../ElasticsearchRepositoryExtension.html | 145 --- .../repository/cdi/package-frame.html | 35 - .../repository/cdi/package-summary.html | 162 --- .../repository/cdi/package-tree.html | 160 --- .../repository/cdi/package-use.html | 145 --- .../ElasticsearchCrudRepository.html | 210 ---- .../class-use/ElasticsearchRepository.html | 181 --- ...lasticsearchRepositoryConfigExtension.html | 359 ------ .../EnableElasticsearchRepositories.html | 463 ------- ...lasticsearchRepositoryConfigExtension.html | 145 --- .../EnableElasticsearchRepositories.html | 145 --- .../repository/config/package-frame.html | 44 - .../repository/config/package-summary.html | 173 --- .../repository/config/package-tree.html | 163 --- .../repository/config/package-use.html | 145 --- .../repository/package-frame.html | 35 - .../repository/package-summary.html | 162 --- .../repository/package-tree.html | 160 --- .../elasticsearch/repository/package-use.html | 196 --- .../AbstractElasticsearchRepositoryQuery.html | 327 ----- .../query/ElasticsearchPartQuery.html | 305 ----- .../query/ElasticsearchQueryMethod.html | 286 ----- .../query/ElasticsearchStringQuery.html | 307 ----- .../AbstractElasticsearchRepositoryQuery.html | 189 --- .../class-use/ElasticsearchPartQuery.html | 145 --- .../class-use/ElasticsearchQueryMethod.html | 211 ---- .../class-use/ElasticsearchStringQuery.html | 145 --- .../repository/query/package-frame.html | 39 - .../repository/query/package-summary.html | 170 --- .../repository/query/package-tree.html | 159 --- .../repository/query/package-use.html | 177 --- .../parser/ElasticsearchQueryCreator.html | 362 ------ .../class-use/ElasticsearchQueryCreator.html | 145 --- .../query/parser/package-frame.html | 33 - .../query/parser/package-summary.html | 158 --- .../repository/query/parser/package-tree.html | 156 --- .../repository/query/parser/package-use.html | 145 --- .../ElasticsearchEntityInformation.html | 280 ----- ...ElasticsearchEntityInformationCreator.html | 219 ---- ...ticsearchEntityInformationCreatorImpl.html | 268 ---- .../ElasticsearchRepositoryFactory.html | 364 ------ .../ElasticsearchRepositoryFactoryBean.html | 316 ----- ...MappingElasticsearchEntityInformation.html | 399 ------ .../SimpleElasticsearchRepository.html | 796 ------------ .../ElasticsearchEntityInformation.html | 255 ---- ...ElasticsearchEntityInformationCreator.html | 210 ---- ...ticsearchEntityInformationCreatorImpl.html | 145 --- .../ElasticsearchRepositoryFactory.html | 145 --- .../ElasticsearchRepositoryFactoryBean.html | 145 --- ...MappingElasticsearchEntityInformation.html | 145 --- .../SimpleElasticsearchRepository.html | 145 --- .../repository/support/package-frame.html | 54 - .../repository/support/package-summary.html | 192 --- .../repository/support/package-tree.html | 174 --- .../repository/support/package-use.html | 196 --- site/apidocs/overview-frame.html | 69 -- site/apidocs/overview-summary.html | 209 ---- site/apidocs/overview-tree.html | 263 ---- site/apidocs/package-list | 14 - site/apidocs/resources/background.gif | Bin 2313 -> 0 bytes site/apidocs/resources/inherit.gif | Bin 57 -> 0 bytes site/apidocs/resources/tab.gif | Bin 291 -> 0 bytes site/apidocs/resources/titlebar.gif | Bin 10701 -> 0 bytes site/apidocs/resources/titlebar_end.gif | Bin 849 -> 0 bytes site/apidocs/serialized-form.html | 180 --- site/apidocs/stylesheet.css | 29 - site/emma.zip | Bin 0 -> 119215 bytes site/emma/_files/0.html | 1 - site/emma/_files/1.html | 1 - site/emma/_files/10.html | 1 - site/emma/_files/11.html | 1 - site/emma/_files/12.html | 1 - site/emma/_files/13.html | 1 - site/emma/_files/14.html | 1 - site/emma/_files/15.html | 1 - site/emma/_files/16.html | 1 - site/emma/_files/17.html | 1 - site/emma/_files/18.html | 1 - site/emma/_files/19.html | 1 - site/emma/_files/1a.html | 1 - site/emma/_files/1b.html | 1 - site/emma/_files/1c.html | 1 - site/emma/_files/1d.html | 1 - site/emma/_files/1e.html | 1 - site/emma/_files/1f.html | 1 - site/emma/_files/2.html | 1 - site/emma/_files/20.html | 1 - site/emma/_files/21.html | 1 - site/emma/_files/22.html | 1 - site/emma/_files/23.html | 1 - site/emma/_files/24.html | 1 - site/emma/_files/25.html | 1 - site/emma/_files/26.html | 1 - site/emma/_files/27.html | 1 - site/emma/_files/28.html | 1 - site/emma/_files/29.html | 1 - site/emma/_files/2a.html | 1 - site/emma/_files/2b.html | 1 - site/emma/_files/2c.html | 1 - site/emma/_files/2d.html | 1 - site/emma/_files/2e.html | 1 - site/emma/_files/2f.html | 1 - site/emma/_files/3.html | 1 - site/emma/_files/30.html | 1 - site/emma/_files/4.html | 1 - site/emma/_files/5.html | 1 - site/emma/_files/6.html | 1 - site/emma/_files/7.html | 1 - site/emma/_files/8.html | 1 - site/emma/_files/9.html | 1 - site/emma/_files/a.html | 1 - site/emma/_files/b.html | 1 - site/emma/_files/c.html | 1 - site/emma/_files/d.html | 1 - site/emma/_files/e.html | 1 - site/emma/_files/f.html | 1 - site/emma/index.html | 1 - site/reference.rar | Bin 0 -> 153378 bytes site/reference/html/css/highlight.css | 36 - site/reference/html/css/html.css | 114 -- site/reference/html/images/admons/blank.png | Bin 374 -> 0 bytes site/reference/html/images/admons/caution.gif | Bin 743 -> 0 bytes site/reference/html/images/admons/caution.png | Bin 1250 -> 0 bytes site/reference/html/images/admons/draft.png | Bin 17454 -> 0 bytes site/reference/html/images/admons/home.gif | Bin 321 -> 0 bytes site/reference/html/images/admons/home.png | Bin 1156 -> 0 bytes .../html/images/admons/important.gif | Bin 1003 -> 0 bytes .../html/images/admons/important.png | Bin 1178 -> 0 bytes site/reference/html/images/admons/next.gif | Bin 1083 -> 0 bytes site/reference/html/images/admons/next.png | Bin 1150 -> 0 bytes site/reference/html/images/admons/note.gif | Bin 580 -> 0 bytes site/reference/html/images/admons/note.png | Bin 1178 -> 0 bytes site/reference/html/images/admons/prev.gif | Bin 1118 -> 0 bytes site/reference/html/images/admons/prev.png | Bin 1132 -> 0 bytes site/reference/html/images/admons/tip.gif | Bin 598 -> 0 bytes site/reference/html/images/admons/tip.png | Bin 1178 -> 0 bytes .../html/images/admons/toc-blank.png | Bin 318 -> 0 bytes .../html/images/admons/toc-minus.png | Bin 259 -> 0 bytes .../reference/html/images/admons/toc-plus.png | Bin 264 -> 0 bytes site/reference/html/images/admons/up.gif | Bin 1089 -> 0 bytes site/reference/html/images/admons/up.png | Bin 1111 -> 0 bytes site/reference/html/images/admons/warning.gif | Bin 613 -> 0 bytes site/reference/html/images/admons/warning.png | Bin 3993 -> 0 bytes site/reference/html/images/callouts/1.png | Bin 329 -> 0 bytes site/reference/html/images/callouts/10.png | Bin 361 -> 0 bytes site/reference/html/images/callouts/11.png | Bin 565 -> 0 bytes site/reference/html/images/callouts/12.png | Bin 617 -> 0 bytes site/reference/html/images/callouts/13.png | Bin 623 -> 0 bytes site/reference/html/images/callouts/14.png | Bin 411 -> 0 bytes site/reference/html/images/callouts/15.png | Bin 640 -> 0 bytes site/reference/html/images/callouts/2.png | Bin 353 -> 0 bytes site/reference/html/images/callouts/3.png | Bin 350 -> 0 bytes site/reference/html/images/callouts/4.png | Bin 345 -> 0 bytes site/reference/html/images/callouts/5.png | Bin 348 -> 0 bytes site/reference/html/images/callouts/6.png | Bin 355 -> 0 bytes site/reference/html/images/callouts/7.png | Bin 344 -> 0 bytes site/reference/html/images/callouts/8.png | Bin 357 -> 0 bytes site/reference/html/images/callouts/9.png | Bin 357 -> 0 bytes site/reference/html/images/logo.png | Bin 9627 -> 0 bytes .../html/images/xdev-spring_logo.jpg | Bin 37376 -> 0 bytes site/reference/html/index.html | 1088 ----------------- .../spring-data-elasticsearch-reference.pdf | Bin 82593 -> 0 bytes src/docbkx/reference/data-elasticsearch.xml | 260 +--- src/docbkx/reference/elasticsearch-misc.xml | 14 +- src/docbkx/reference/misc.xml | 99 -- .../custom-method-repository-test.xml | 2 +- .../resources/elasticsearch-template-test.xml | 2 +- src/test/resources/repository-test.xml | 2 +- 283 files changed, 65 insertions(+), 41299 deletions(-) create mode 100644 site/apidocs.zip delete mode 100644 site/apidocs/allclasses-frame.html delete mode 100644 site/apidocs/allclasses-noframe.html delete mode 100644 site/apidocs/constant-values.html delete mode 100644 site/apidocs/deprecated-list.html delete mode 100644 site/apidocs/help-doc.html delete mode 100644 site/apidocs/index-all.html delete mode 100644 site/apidocs/index.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/ElasticsearchException.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/annotations/Document.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/annotations/Query.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/annotations/class-use/Document.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/annotations/class-use/Query.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/annotations/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/annotations/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/annotations/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/annotations/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/class-use/ElasticsearchException.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/client/class-use/NodeClientFactoryBean.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/client/class-use/TransportClientFactoryBean.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/client/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/client/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/client/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/client/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/ElasticsearchNamespaceHandler.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/NodeClientBeanDefinitionParser.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/TransportClientBeanDefinitionParser.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/class-use/ElasticsearchNamespaceHandler.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/class-use/NodeClientBeanDefinitionParser.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/class-use/TransportClientBeanDefinitionParser.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/config/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/ElasticsearchOperations.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/ResultsMapper.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/class-use/ElasticsearchOperations.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/class-use/ElasticsearchTemplate.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/class-use/ResultsMapper.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JavaDateConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JodaDateTimeConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JodaLocalDateTimeConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/ElasticsearchConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JavaDateConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JodaDateTimeConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JodaLocalDateTimeConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/ElasticsearchConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/MappingElasticsearchConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/convert/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentProperty.PropertyToFieldNameConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentProperty.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchMappingContext.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntity.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentProperty.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentEntity.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentProperty.PropertyToFieldNameConverter.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentProperty.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchMappingContext.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchPersistentEntity.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchPersistentProperty.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.CriteriaEntry.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.OperationKey.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/CriteriaQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/DeleteQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/Field.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/GetQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/IndexQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/Query.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/SearchQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/SimpleField.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/StringQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.CriteriaEntry.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.OperationKey.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/CriteriaQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/DeleteQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Field.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/GetQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/IndexQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Query.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/SearchQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/SimpleField.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/StringQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/core/query/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/ElasticsearchCrudRepository.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/cdi/class-use/ElasticsearchRepositoryBean.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/cdi/class-use/ElasticsearchRepositoryExtension.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/class-use/ElasticsearchCrudRepository.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/class-use/ElasticsearchRepository.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/config/ElasticsearchRepositoryConfigExtension.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/config/EnableElasticsearchRepositories.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/config/class-use/ElasticsearchRepositoryConfigExtension.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/config/class-use/EnableElasticsearchRepositories.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/config/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/config/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/config/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/config/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/AbstractElasticsearchRepositoryQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchPartQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/AbstractElasticsearchRepositoryQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchPartQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchQueryMethod.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchStringQuery.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/ElasticsearchQueryCreator.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/class-use/ElasticsearchQueryCreator.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-use.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformation.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreator.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreatorImpl.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactory.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactoryBean.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/MappingElasticsearchEntityInformation.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformation.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformationCreator.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformationCreatorImpl.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchRepositoryFactory.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchRepositoryFactoryBean.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/MappingElasticsearchEntityInformation.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/SimpleElasticsearchRepository.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/package-frame.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/package-summary.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/package-tree.html delete mode 100644 site/apidocs/org/springframework/data/elasticsearch/repository/support/package-use.html delete mode 100644 site/apidocs/overview-frame.html delete mode 100644 site/apidocs/overview-summary.html delete mode 100644 site/apidocs/overview-tree.html delete mode 100644 site/apidocs/package-list delete mode 100644 site/apidocs/resources/background.gif delete mode 100644 site/apidocs/resources/inherit.gif delete mode 100644 site/apidocs/resources/tab.gif delete mode 100644 site/apidocs/resources/titlebar.gif delete mode 100644 site/apidocs/resources/titlebar_end.gif delete mode 100644 site/apidocs/serialized-form.html delete mode 100644 site/apidocs/stylesheet.css create mode 100644 site/emma.zip delete mode 100644 site/emma/_files/0.html delete mode 100644 site/emma/_files/1.html delete mode 100644 site/emma/_files/10.html delete mode 100644 site/emma/_files/11.html delete mode 100644 site/emma/_files/12.html delete mode 100644 site/emma/_files/13.html delete mode 100644 site/emma/_files/14.html delete mode 100644 site/emma/_files/15.html delete mode 100644 site/emma/_files/16.html delete mode 100644 site/emma/_files/17.html delete mode 100644 site/emma/_files/18.html delete mode 100644 site/emma/_files/19.html delete mode 100644 site/emma/_files/1a.html delete mode 100644 site/emma/_files/1b.html delete mode 100644 site/emma/_files/1c.html delete mode 100644 site/emma/_files/1d.html delete mode 100644 site/emma/_files/1e.html delete mode 100644 site/emma/_files/1f.html delete mode 100644 site/emma/_files/2.html delete mode 100644 site/emma/_files/20.html delete mode 100644 site/emma/_files/21.html delete mode 100644 site/emma/_files/22.html delete mode 100644 site/emma/_files/23.html delete mode 100644 site/emma/_files/24.html delete mode 100644 site/emma/_files/25.html delete mode 100644 site/emma/_files/26.html delete mode 100644 site/emma/_files/27.html delete mode 100644 site/emma/_files/28.html delete mode 100644 site/emma/_files/29.html delete mode 100644 site/emma/_files/2a.html delete mode 100644 site/emma/_files/2b.html delete mode 100644 site/emma/_files/2c.html delete mode 100644 site/emma/_files/2d.html delete mode 100644 site/emma/_files/2e.html delete mode 100644 site/emma/_files/2f.html delete mode 100644 site/emma/_files/3.html delete mode 100644 site/emma/_files/30.html delete mode 100644 site/emma/_files/4.html delete mode 100644 site/emma/_files/5.html delete mode 100644 site/emma/_files/6.html delete mode 100644 site/emma/_files/7.html delete mode 100644 site/emma/_files/8.html delete mode 100644 site/emma/_files/9.html delete mode 100644 site/emma/_files/a.html delete mode 100644 site/emma/_files/b.html delete mode 100644 site/emma/_files/c.html delete mode 100644 site/emma/_files/d.html delete mode 100644 site/emma/_files/e.html delete mode 100644 site/emma/_files/f.html delete mode 100644 site/emma/index.html create mode 100644 site/reference.rar delete mode 100644 site/reference/html/css/highlight.css delete mode 100644 site/reference/html/css/html.css delete mode 100644 site/reference/html/images/admons/blank.png delete mode 100644 site/reference/html/images/admons/caution.gif delete mode 100644 site/reference/html/images/admons/caution.png delete mode 100644 site/reference/html/images/admons/draft.png delete mode 100644 site/reference/html/images/admons/home.gif delete mode 100644 site/reference/html/images/admons/home.png delete mode 100644 site/reference/html/images/admons/important.gif delete mode 100644 site/reference/html/images/admons/important.png delete mode 100644 site/reference/html/images/admons/next.gif delete mode 100644 site/reference/html/images/admons/next.png delete mode 100644 site/reference/html/images/admons/note.gif delete mode 100644 site/reference/html/images/admons/note.png delete mode 100644 site/reference/html/images/admons/prev.gif delete mode 100644 site/reference/html/images/admons/prev.png delete mode 100644 site/reference/html/images/admons/tip.gif delete mode 100644 site/reference/html/images/admons/tip.png delete mode 100644 site/reference/html/images/admons/toc-blank.png delete mode 100644 site/reference/html/images/admons/toc-minus.png delete mode 100644 site/reference/html/images/admons/toc-plus.png delete mode 100644 site/reference/html/images/admons/up.gif delete mode 100644 site/reference/html/images/admons/up.png delete mode 100644 site/reference/html/images/admons/warning.gif delete mode 100644 site/reference/html/images/admons/warning.png delete mode 100644 site/reference/html/images/callouts/1.png delete mode 100644 site/reference/html/images/callouts/10.png delete mode 100644 site/reference/html/images/callouts/11.png delete mode 100644 site/reference/html/images/callouts/12.png delete mode 100644 site/reference/html/images/callouts/13.png delete mode 100644 site/reference/html/images/callouts/14.png delete mode 100644 site/reference/html/images/callouts/15.png delete mode 100644 site/reference/html/images/callouts/2.png delete mode 100644 site/reference/html/images/callouts/3.png delete mode 100644 site/reference/html/images/callouts/4.png delete mode 100644 site/reference/html/images/callouts/5.png delete mode 100644 site/reference/html/images/callouts/6.png delete mode 100644 site/reference/html/images/callouts/7.png delete mode 100644 site/reference/html/images/callouts/8.png delete mode 100644 site/reference/html/images/callouts/9.png delete mode 100644 site/reference/html/images/logo.png delete mode 100644 site/reference/html/images/xdev-spring_logo.jpg delete mode 100644 site/reference/html/index.html delete mode 100644 site/reference/pdf/spring-data-elasticsearch-reference.pdf delete mode 100644 src/docbkx/reference/misc.xml diff --git a/site/apidocs.zip b/site/apidocs.zip new file mode 100644 index 0000000000000000000000000000000000000000..aa30818641909085879b35f7e10ea2a356048dcd GIT binary patch literal 414092 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 R5&ZXZ2oCoQ{QEfE{{aCe1*!l5 literal 0 HcmV?d00001 diff --git a/site/apidocs/allclasses-frame.html b/site/apidocs/allclasses-frame.html deleted file mode 100644 index 29a0fb6e..00000000 --- a/site/apidocs/allclasses-frame.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -All Classes (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -All Classes -
- - - - - -
AbstractElasticsearchRepositoryQuery -
-Criteria -
-Criteria.CriteriaEntry -
-Criteria.OperationKey -
-CriteriaQuery -
-DateTimeConverters -
-DateTimeConverters.JavaDateConverter -
-DateTimeConverters.JodaDateTimeConverter -
-DateTimeConverters.JodaLocalDateTimeConverter -
-DeleteQuery -
-Document -
-ElasticsearchConverter -
-ElasticsearchCrudRepository -
-ElasticsearchEntityInformation -
-ElasticsearchEntityInformationCreator -
-ElasticsearchEntityInformationCreatorImpl -
-ElasticsearchException -
-ElasticsearchNamespaceHandler -
-ElasticsearchOperations -
-ElasticsearchPartQuery -
-ElasticsearchPersistentEntity -
-ElasticsearchPersistentProperty -
-ElasticsearchPersistentProperty.PropertyToFieldNameConverter -
-ElasticsearchQueryCreator -
-ElasticsearchQueryMethod -
-ElasticsearchRepository -
-ElasticsearchRepositoryBean -
-ElasticsearchRepositoryConfigExtension -
-ElasticsearchRepositoryExtension -
-ElasticsearchRepositoryFactory -
-ElasticsearchRepositoryFactoryBean -
-ElasticsearchStringQuery -
-ElasticsearchTemplate -
-EnableElasticsearchRepositories -
-Field -
-GetQuery -
-IndexQuery -
-MappingElasticsearchConverter -
-MappingElasticsearchEntityInformation -
-NodeClientBeanDefinitionParser -
-NodeClientFactoryBean -
-Query -
-Query -
-ResultsMapper -
-SearchQuery -
-SimpleElasticsearchMappingContext -
-SimpleElasticsearchPersistentEntity -
-SimpleElasticsearchPersistentProperty -
-SimpleElasticsearchRepository -
-SimpleField -
-StringQuery -
-TransportClientBeanDefinitionParser -
-TransportClientFactoryBean -
-
- - - diff --git a/site/apidocs/allclasses-noframe.html b/site/apidocs/allclasses-noframe.html deleted file mode 100644 index c6fff969..00000000 --- a/site/apidocs/allclasses-noframe.html +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - -All Classes (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -All Classes -
- - - - - -
AbstractElasticsearchRepositoryQuery -
-Criteria -
-Criteria.CriteriaEntry -
-Criteria.OperationKey -
-CriteriaQuery -
-DateTimeConverters -
-DateTimeConverters.JavaDateConverter -
-DateTimeConverters.JodaDateTimeConverter -
-DateTimeConverters.JodaLocalDateTimeConverter -
-DeleteQuery -
-Document -
-ElasticsearchConverter -
-ElasticsearchCrudRepository -
-ElasticsearchEntityInformation -
-ElasticsearchEntityInformationCreator -
-ElasticsearchEntityInformationCreatorImpl -
-ElasticsearchException -
-ElasticsearchNamespaceHandler -
-ElasticsearchOperations -
-ElasticsearchPartQuery -
-ElasticsearchPersistentEntity -
-ElasticsearchPersistentProperty -
-ElasticsearchPersistentProperty.PropertyToFieldNameConverter -
-ElasticsearchQueryCreator -
-ElasticsearchQueryMethod -
-ElasticsearchRepository -
-ElasticsearchRepositoryBean -
-ElasticsearchRepositoryConfigExtension -
-ElasticsearchRepositoryExtension -
-ElasticsearchRepositoryFactory -
-ElasticsearchRepositoryFactoryBean -
-ElasticsearchStringQuery -
-ElasticsearchTemplate -
-EnableElasticsearchRepositories -
-Field -
-GetQuery -
-IndexQuery -
-MappingElasticsearchConverter -
-MappingElasticsearchEntityInformation -
-NodeClientBeanDefinitionParser -
-NodeClientFactoryBean -
-Query -
-Query -
-ResultsMapper -
-SearchQuery -
-SimpleElasticsearchMappingContext -
-SimpleElasticsearchPersistentEntity -
-SimpleElasticsearchPersistentProperty -
-SimpleElasticsearchRepository -
-SimpleField -
-StringQuery -
-TransportClientBeanDefinitionParser -
-TransportClientFactoryBean -
-
- - - diff --git a/site/apidocs/constant-values.html b/site/apidocs/constant-values.html deleted file mode 100644 index 89615e66..00000000 --- a/site/apidocs/constant-values.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - -Constant Field Values (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - -
- - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Constant Field Values

-
-
-Contents - - - - - - -
-org.springframework.*
- -

- - - - - - - - - - - - - - - - - -
org.springframework.data.elasticsearch.core.query.Criteria
-public static final StringCRITERIA_VALUE_SEPERATOR" "
-public static final StringWILDCARD"*"
- -

- -

- - - - - - - - - - - - -
org.springframework.data.elasticsearch.core.query.Query
-public static final intDEFAULT_PAGE_SIZE10
- -

- -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/deprecated-list.html b/site/apidocs/deprecated-list.html deleted file mode 100644 index c4aaf7c8..00000000 --- a/site/apidocs/deprecated-list.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - -Deprecated List (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Deprecated API

-
-
-Contents
    -
- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/help-doc.html b/site/apidocs/help-doc.html deleted file mode 100644 index df932bb0..00000000 --- a/site/apidocs/help-doc.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - -API Help (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-How This API Document Is Organized

-
-This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.

-Overview

-
- -

-The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

-

-Package

-
- -

-Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:

    -
  • Interfaces (italic)
  • Classes
  • Enums
  • Exceptions
  • Errors
  • Annotation Types
-
-

-Class/Interface

-
- -

-Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    -
  • Class inheritance diagram
  • Direct Subclasses
  • All Known Subinterfaces
  • All Known Implementing Classes
  • Class/interface declaration
  • Class/interface description -

    -

  • Nested Class Summary
  • Field Summary
  • Constructor Summary
  • Method Summary -

    -

  • Field Detail
  • Constructor Detail
  • Method Detail
-Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.
- -

-Annotation Type

-
- -

-Each annotation type has its own separate page with the following sections:

    -
  • Annotation Type declaration
  • Annotation Type description
  • Required Element Summary
  • Optional Element Summary
  • Element Detail
-
- -

-Enum

-
- -

-Each enum has its own separate page with the following sections:

    -
  • Enum declaration
  • Enum description
  • Enum Constant Summary
  • Enum Constant Detail
-
-

-Use

-
-Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.
-

-Tree (Class Hierarchy)

-
-There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.
    -
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
-
-

-Deprecated API

-
-The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.
-

-Index

-
-The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.
-

-Prev/Next

-These links take you to the next or previous class, interface, package, or related page.

-Frames/No Frames

-These links show and hide the HTML frames. All pages are available with or without frames. -

-

-Serialized Form

-Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description. -

-

-Constant Field Values

-The Constant Field Values page lists the static final fields and their values. -

- - -This help file applies to API documentation generated using the standard doclet. - -
-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/index-all.html b/site/apidocs/index-all.html deleted file mode 100644 index 73d515bd..00000000 --- a/site/apidocs/index-all.html +++ /dev/null @@ -1,996 +0,0 @@ - - - - - - - -Index (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -A B C D E F G H I L M N O P Q R S T V W
-

-A

-
-
AbstractElasticsearchRepositoryQuery - Class in org.springframework.data.elasticsearch.repository.query
 
AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod, ElasticsearchOperations) - -Constructor for class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery -
  -
addCriteria(Criteria) - -Method in class org.springframework.data.elasticsearch.core.query.CriteriaQuery -
  -
addSort(Sort) - -Method in interface org.springframework.data.elasticsearch.core.query.Query -
Add Sort to query -
afterPropertiesSet() - -Method in class org.springframework.data.elasticsearch.client.NodeClientFactoryBean -
  -
afterPropertiesSet() - -Method in class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
afterPropertiesSet() - -Method in class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean -
  -
and(Field) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Chain using AND -
and(String) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Chain using AND -
and(Criteria) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Chain using AND -
and(Criteria...) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Chain using AND -
and(Part, CriteriaQuery, Iterator<Object>) - -Method in class org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator -
  -
-
-

-B

-
-
between(Object, Object) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry for RANGE [lowerBound TO upperBound] -
boost(float) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Boost positive hit with given factor. eg. ^2.3 -
buildClient() - -Method in class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
bulkIndex(List<IndexQuery>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Bulk index all objects. -
bulkIndex(List<IndexQuery>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
-
-

-C

-
-
complete(CriteriaQuery, Sort) - -Method in class org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator -
  -
contains(String) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry with leading and trailing wildcards
- NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow. -
convert(Date) - -Method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JavaDateConverter -
  -
convert(ReadableInstant) - -Method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaDateTimeConverter -
  -
convert(LocalDateTime) - -Method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaLocalDateTimeConverter -
  -
convert(ElasticsearchPersistentProperty) - -Method in enum org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty.PropertyToFieldNameConverter -
  -
count(SearchQuery, Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
return number of elements found by for given query -
count(SearchQuery, Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
count() - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
create(CreationalContext<T>, Class<T>) - -Method in class org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryBean -
  -
create(Part, Iterator<Object>) - -Method in class org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator -
  -
createAssociation() - -Method in class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentProperty -
  -
createIndex(Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Create an index -
createIndex(Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
createIndex() - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
createPersistentEntity(TypeInformation<T>) - -Method in class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext -
  -
createPersistentProperty(Field, PropertyDescriptor, SimpleElasticsearchPersistentEntity<?>, SimpleTypeHolder) - -Method in class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext -
  -
createQuery(ParametersParameterAccessor) - -Method in class org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery -
  -
createQuery(ParametersParameterAccessor) - -Method in class org.springframework.data.elasticsearch.repository.query.ElasticsearchStringQuery -
  -
createRepositoryFactory() - -Method in class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean -
  -
Criteria - Class in org.springframework.data.elasticsearch.core.query
Criteria is the central class when constructing queries.
Criteria() - -Constructor for class org.springframework.data.elasticsearch.core.query.Criteria -
  -
Criteria(String) - -Constructor for class org.springframework.data.elasticsearch.core.query.Criteria -
Creates a new CriterSimpleFieldia for the Filed with provided name -
Criteria(Field) - -Constructor for class org.springframework.data.elasticsearch.core.query.Criteria -
Creates a new Criteria for the given field -
Criteria(List<Criteria>, String) - -Constructor for class org.springframework.data.elasticsearch.core.query.Criteria -
  -
Criteria(List<Criteria>, Field) - -Constructor for class org.springframework.data.elasticsearch.core.query.Criteria -
  -
Criteria.CriteriaEntry - Class in org.springframework.data.elasticsearch.core.query
 
Criteria.OperationKey - Enum in org.springframework.data.elasticsearch.core.query
 
CRITERIA_VALUE_SEPERATOR - -Static variable in class org.springframework.data.elasticsearch.core.query.Criteria -
  -
CriteriaQuery - Class in org.springframework.data.elasticsearch.core.query
 
CriteriaQuery(Criteria) - -Constructor for class org.springframework.data.elasticsearch.core.query.CriteriaQuery -
  -
CriteriaQuery(Criteria, Pageable) - -Constructor for class org.springframework.data.elasticsearch.core.query.CriteriaQuery -
  -
-
-

-D

-
-
DateTimeConverters - Class in org.springframework.data.elasticsearch.core.convert
 
DateTimeConverters() - -Constructor for class org.springframework.data.elasticsearch.core.convert.DateTimeConverters -
  -
DateTimeConverters.JavaDateConverter - Enum in org.springframework.data.elasticsearch.core.convert
 
DateTimeConverters.JodaDateTimeConverter - Enum in org.springframework.data.elasticsearch.core.convert
 
DateTimeConverters.JodaLocalDateTimeConverter - Enum in org.springframework.data.elasticsearch.core.convert
 
DEFAULT_PAGE_SIZE - -Static variable in interface org.springframework.data.elasticsearch.core.query.Query -
  -
delete(String, String, String) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Delete the one object with provided id -
delete(Class<T>, String) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Delete the one object with provided id -
delete(DeleteQuery, Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Delete all records matching the query -
delete(String, String, String) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
delete(Class<T>, String) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
delete(DeleteQuery, Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
delete(String) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
delete(T) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
delete(Iterable<? extends T>) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
deleteAll() - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
DeleteQuery - Class in org.springframework.data.elasticsearch.core.query
 
DeleteQuery() - -Constructor for class org.springframework.data.elasticsearch.core.query.DeleteQuery -
  -
destroy() - -Method in class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
Document - Annotation Type in org.springframework.data.elasticsearch.annotations
 
-
-

-E

-
-
ElasticsearchConverter - Interface in org.springframework.data.elasticsearch.core.convert
 
ElasticsearchCrudRepository<T,ID extends Serializable> - Interface in org.springframework.data.elasticsearch.repository
 
ElasticsearchEntityInformation<T,ID extends Serializable> - Interface in org.springframework.data.elasticsearch.repository.support
 
ElasticsearchEntityInformationCreator - Interface in org.springframework.data.elasticsearch.repository.support
 
ElasticsearchEntityInformationCreatorImpl - Class in org.springframework.data.elasticsearch.repository.support
 
ElasticsearchEntityInformationCreatorImpl(MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty>) - -Constructor for class org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreatorImpl -
  -
ElasticsearchException - Exception in org.springframework.data.elasticsearch
 
ElasticsearchException(String) - -Constructor for exception org.springframework.data.elasticsearch.ElasticsearchException -
  -
ElasticsearchException(String, Throwable) - -Constructor for exception org.springframework.data.elasticsearch.ElasticsearchException -
  -
ElasticsearchException(String, Throwable, Map<String, String>) - -Constructor for exception org.springframework.data.elasticsearch.ElasticsearchException -
  -
ElasticsearchException(String, Map<String, String>) - -Constructor for exception org.springframework.data.elasticsearch.ElasticsearchException -
  -
ElasticsearchNamespaceHandler - Class in org.springframework.data.elasticsearch.config
 
ElasticsearchNamespaceHandler() - -Constructor for class org.springframework.data.elasticsearch.config.ElasticsearchNamespaceHandler -
  -
ElasticsearchOperations - Interface in org.springframework.data.elasticsearch.core
 
elasticsearchOperations - -Variable in class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery -
  -
ElasticsearchPartQuery - Class in org.springframework.data.elasticsearch.repository.query
 
ElasticsearchPartQuery(ElasticsearchQueryMethod, ElasticsearchOperations) - -Constructor for class org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery -
  -
ElasticsearchPersistentEntity<T> - Interface in org.springframework.data.elasticsearch.core.mapping
 
ElasticsearchPersistentProperty - Interface in org.springframework.data.elasticsearch.core.mapping
 
ElasticsearchPersistentProperty.PropertyToFieldNameConverter - Enum in org.springframework.data.elasticsearch.core.mapping
 
ElasticsearchQueryCreator - Class in org.springframework.data.elasticsearch.repository.query.parser
 
ElasticsearchQueryCreator(PartTree, ParameterAccessor, MappingContext<?, ElasticsearchPersistentProperty>) - -Constructor for class org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator -
  -
ElasticsearchQueryCreator(PartTree, MappingContext<?, ElasticsearchPersistentProperty>) - -Constructor for class org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator -
  -
ElasticsearchQueryMethod - Class in org.springframework.data.elasticsearch.repository.query
 
ElasticsearchQueryMethod(Method, RepositoryMetadata, ElasticsearchEntityInformationCreator) - -Constructor for class org.springframework.data.elasticsearch.repository.query.ElasticsearchQueryMethod -
  -
ElasticsearchRepository<T,ID extends Serializable> - Interface in org.springframework.data.elasticsearch.repository
 
ElasticsearchRepositoryBean<T> - Class in org.springframework.data.elasticsearch.repository.cdi
Uses CdiRepositoryBean to create ElasticsearchRepository instances.
ElasticsearchRepositoryBean(Bean<ElasticsearchOperations>, Set<Annotation>, Class<T>, BeanManager) - -Constructor for class org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryBean -
  -
ElasticsearchRepositoryConfigExtension - Class in org.springframework.data.elasticsearch.repository.config
RepositoryConfigurationExtension implementation to configure Elasticsearch repository configuration support, - evaluating the EnableElasticsearchRepositories annotation or the equivalent XML element.
ElasticsearchRepositoryConfigExtension() - -Constructor for class org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension -
  -
ElasticsearchRepositoryExtension - Class in org.springframework.data.elasticsearch.repository.cdi
 
ElasticsearchRepositoryExtension() - -Constructor for class org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryExtension -
  -
ElasticsearchRepositoryFactory - Class in org.springframework.data.elasticsearch.repository.support
Factory to create ElasticsearchRepository
ElasticsearchRepositoryFactory(ElasticsearchOperations) - -Constructor for class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory -
  -
ElasticsearchRepositoryFactoryBean<T extends org.springframework.data.repository.Repository<S,ID>,S,ID extends Serializable> - Class in org.springframework.data.elasticsearch.repository.support
Spring FactoryBean implementation to ease container based configuration for XML namespace and JavaConfig.
ElasticsearchRepositoryFactoryBean() - -Constructor for class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean -
  -
ElasticsearchStringQuery - Class in org.springframework.data.elasticsearch.repository.query
 
ElasticsearchStringQuery(ElasticsearchQueryMethod, ElasticsearchOperations, String) - -Constructor for class org.springframework.data.elasticsearch.repository.query.ElasticsearchStringQuery -
  -
ElasticsearchTemplate - Class in org.springframework.data.elasticsearch.core
 
ElasticsearchTemplate(Client) - -Constructor for class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
ElasticsearchTemplate(Client, ElasticsearchConverter) - -Constructor for class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
EnableElasticsearchRepositories - Annotation Type in org.springframework.data.elasticsearch.repository.config
Annotation to enable Elasticsearch repositories.
endsWith(String) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry with leading wildcard
- NOTE: mind your schema and execution times as leading wildcards may not be supported. -
execute(Object[]) - -Method in class org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery -
  -
execute(Object[]) - -Method in class org.springframework.data.elasticsearch.repository.query.ElasticsearchStringQuery -
  -
exists(String) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
expression(String) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry allowing native elasticsearch expressions -
-
-

-F

-
-
Field - Interface in org.springframework.data.elasticsearch.core.query
Defines a Field that can be used within a Criteria.
findAll() - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
findAll(Pageable) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
findAll(Sort) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
findAll(Iterable<String>) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
findOne(String) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
fromQuery(CriteriaQuery) - -Static method in class org.springframework.data.elasticsearch.core.query.CriteriaQuery -
  -
fromQuery(CriteriaQuery, T) - -Static method in class org.springframework.data.elasticsearch.core.query.CriteriaQuery -
  -
fuzzy(String) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry with trailing ~ -
-
-

-G

-
-
getAnnotatedQuery() - -Method in class org.springframework.data.elasticsearch.repository.query.ElasticsearchQueryMethod -
  -
getBoost() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
  -
getConjunctionOperator() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Conjunction to be used with this criteria (AND | OR) -
getConversionService() - -Method in interface org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter -
Returns the underlying ConversionService used by the converter. -
getConversionService() - -Method in class org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter -
  -
getCriteria() - -Method in class org.springframework.data.elasticsearch.core.query.CriteriaQuery -
  -
getCriteriaChain() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
  -
getCriteriaEntries() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
  -
getElasticsearchConverter() - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
  -
getElasticsearchConverter() - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
getElasticsearchFilter() - -Method in class org.springframework.data.elasticsearch.core.query.SearchQuery -
  -
getElasticsearchQuery() - -Method in class org.springframework.data.elasticsearch.core.query.DeleteQuery -
  -
getElasticsearchQuery() - -Method in class org.springframework.data.elasticsearch.core.query.SearchQuery -
  -
getEntityClass() - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
getEntityInformation(Class<T>) - -Method in interface org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreator -
  -
getEntityInformation(Class<T>) - -Method in class org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreatorImpl -
  -
getEntityInformation(Class<T>) - -Method in class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory -
  -
getFailedDocuments() - -Method in exception org.springframework.data.elasticsearch.ElasticsearchException -
  -
getField() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Field targeted by this Criteria -
getFieldName() - -Method in interface org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty -
  -
getFieldName() - -Method in class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentProperty -
  -
getId() - -Method in class org.springframework.data.elasticsearch.core.query.GetQuery -
  -
getId() - -Method in class org.springframework.data.elasticsearch.core.query.IndexQuery -
  -
getId(T) - -Method in class org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation -
  -
getIdAttribute() - -Method in interface org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformation -
  -
getIdAttribute() - -Method in class org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation -
  -
getIdType() - -Method in class org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation -
  -
getIndexName() - -Method in interface org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity -
  -
getIndexName() - -Method in class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentEntity -
  -
getIndexName() - -Method in interface org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformation -
  -
getIndexName() - -Method in class org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation -
  -
getIndexType() - -Method in interface org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity -
  -
getIndexType() - -Method in class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentEntity -
  -
getKey() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria.CriteriaEntry -
  -
getMappingContext() - -Method in interface org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter -
Returns the underlying MappingContext used by the converter. -
getMappingContext() - -Method in class org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter -
  -
getModulePrefix() - -Method in class org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension -
  -
getName() - -Method in interface org.springframework.data.elasticsearch.core.query.Field -
Get the name of the field used in schema.xml of elasticsearch server -
getName() - -Method in class org.springframework.data.elasticsearch.core.query.SimpleField -
  -
getObject() - -Method in class org.springframework.data.elasticsearch.client.NodeClientFactoryBean -
  -
getObject() - -Method in class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
getObject() - -Method in class org.springframework.data.elasticsearch.core.query.IndexQuery -
  -
getObjectType() - -Method in class org.springframework.data.elasticsearch.client.NodeClientFactoryBean -
  -
getObjectType() - -Method in class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
getPageable() - -Method in interface org.springframework.data.elasticsearch.core.query.Query -
Get page settings if defined -
GetQuery - Class in org.springframework.data.elasticsearch.core.query
 
GetQuery() - -Constructor for class org.springframework.data.elasticsearch.core.query.GetQuery -
  -
getQueryLookupStrategy(QueryLookupStrategy.Key) - -Method in class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory -
  -
getQueryMethod() - -Method in class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery -
  -
getRepositoryBaseClass(RepositoryMetadata) - -Method in class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory -
  -
getRepositoryFactoryClassName() - -Method in class org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension -
  -
getScope() - -Method in class org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryBean -
  -
getSort() - -Method in interface org.springframework.data.elasticsearch.core.query.Query -
  -
getSource() - -Method in class org.springframework.data.elasticsearch.core.query.StringQuery -
  -
getTargetRepository(RepositoryMetadata) - -Method in class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory -
  -
getType() - -Method in interface org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformation -
  -
getType() - -Method in class org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation -
  -
getValue() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria.CriteriaEntry -
  -
greaterThanEqual(Object) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry for RANGE [lowerBound TO *] -
-
-

-H

-
-
hasAnnotatedQuery() - -Method in class org.springframework.data.elasticsearch.repository.query.ElasticsearchQueryMethod -
  -
-
-

-I

-
-
in(Object...) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry for multiple values (arg0 arg1 arg2 ...) -
in(Iterable<?>) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry for multiple values (arg0 arg1 arg2 ...) -
index(IndexQuery) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Index an object. -
index(IndexQuery) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
index(S) - -Method in interface org.springframework.data.elasticsearch.repository.ElasticsearchRepository -
  -
index(S) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
IndexQuery - Class in org.springframework.data.elasticsearch.core.query
 
IndexQuery() - -Constructor for class org.springframework.data.elasticsearch.core.query.IndexQuery -
  -
init() - -Method in class org.springframework.data.elasticsearch.config.ElasticsearchNamespaceHandler -
  -
is(Object) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry without any wildcards -
isAnd() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
  -
isIdProperty() - -Method in class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentProperty -
  -
isNegating() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
  -
isOr() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
  -
isSingleton() - -Method in class org.springframework.data.elasticsearch.client.NodeClientFactoryBean -
  -
isSingleton() - -Method in class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
-
-

-L

-
-
lessThanEqual(Object) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry for RANGE [* TO upperBound] -
-
-

-M

-
-
MappingElasticsearchConverter - Class in org.springframework.data.elasticsearch.core.convert
 
MappingElasticsearchConverter(MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty>) - -Constructor for class org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter -
  -
MappingElasticsearchEntityInformation<T,ID extends Serializable> - Class in org.springframework.data.elasticsearch.repository.support
Elasticsearch specific implementation of AbstractEntityInformation
MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T>) - -Constructor for class org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation -
  -
MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T>, String, String) - -Constructor for class org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation -
  -
mapResults(SearchResponse) - -Method in interface org.springframework.data.elasticsearch.core.ResultsMapper -
  -
-
-

-N

-
-
NodeClientBeanDefinitionParser - Class in org.springframework.data.elasticsearch.config
 
NodeClientBeanDefinitionParser() - -Constructor for class org.springframework.data.elasticsearch.config.NodeClientBeanDefinitionParser -
  -
NodeClientFactoryBean - Class in org.springframework.data.elasticsearch.client
 
NodeClientFactoryBean(boolean) - -Constructor for class org.springframework.data.elasticsearch.client.NodeClientFactoryBean -
  -
not() - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry with trailing - -
-
-

-O

-
-
or(Field) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Chain using OR -
or(Criteria) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Chain using OR -
or(String) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Chain using OR -
or(CriteriaQuery, CriteriaQuery) - -Method in class org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator -
  -
org.springframework.data.elasticsearch - package org.springframework.data.elasticsearch
 
org.springframework.data.elasticsearch.annotations - package org.springframework.data.elasticsearch.annotations
 
org.springframework.data.elasticsearch.client - package org.springframework.data.elasticsearch.client
 
org.springframework.data.elasticsearch.config - package org.springframework.data.elasticsearch.config
 
org.springframework.data.elasticsearch.core - package org.springframework.data.elasticsearch.core
 
org.springframework.data.elasticsearch.core.convert - package org.springframework.data.elasticsearch.core.convert
 
org.springframework.data.elasticsearch.core.mapping - package org.springframework.data.elasticsearch.core.mapping
 
org.springframework.data.elasticsearch.core.query - package org.springframework.data.elasticsearch.core.query
 
org.springframework.data.elasticsearch.repository - package org.springframework.data.elasticsearch.repository
 
org.springframework.data.elasticsearch.repository.cdi - package org.springframework.data.elasticsearch.repository.cdi
 
org.springframework.data.elasticsearch.repository.config - package org.springframework.data.elasticsearch.repository.config
 
org.springframework.data.elasticsearch.repository.query - package org.springframework.data.elasticsearch.repository.query
 
org.springframework.data.elasticsearch.repository.query.parser - package org.springframework.data.elasticsearch.repository.query.parser
 
org.springframework.data.elasticsearch.repository.support - package org.springframework.data.elasticsearch.repository.support
 
-
-

-P

-
-
parseInternal(Element, ParserContext) - -Method in class org.springframework.data.elasticsearch.config.NodeClientBeanDefinitionParser -
  -
parseInternal(Element, ParserContext) - -Method in class org.springframework.data.elasticsearch.config.TransportClientBeanDefinitionParser -
  -
postProcess(BeanDefinitionBuilder, AnnotationRepositoryConfigurationSource) - -Method in class org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension -
  -
postProcess(BeanDefinitionBuilder, XmlRepositoryConfigurationSource) - -Method in class org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension -
  -
-
-

-Q

-
-
Query - Annotation Type in org.springframework.data.elasticsearch.annotations
 
Query - Interface in org.springframework.data.elasticsearch.core.query
 
queryForObject(GetQuery, Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Execute the query against elasticsearch and return the first returned object -
queryForObject(CriteriaQuery, Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Execute the query against elasticsearch and return the first returned object -
queryForObject(StringQuery, Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Execute the query against elasticsearch and return the first returned object -
queryForObject(GetQuery, Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
queryForObject(CriteriaQuery, Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
queryForObject(StringQuery, Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
queryForPage(SearchQuery, Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Execute the query against elasticsearch and return result as Page -
queryForPage(CriteriaQuery, Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Execute the query against elasticsearch and return result as Page -
queryForPage(StringQuery, Class<T>) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
Execute the query against elasticsearch and return result as Page -
queryForPage(SearchQuery, Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
queryForPage(CriteriaQuery, Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
queryForPage(StringQuery, Class<T>) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
queryMethod - -Variable in class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery -
  -
-
-

-R

-
-
refresh(String, boolean) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
refresh the index -
refresh(Class<T>, boolean) - -Method in interface org.springframework.data.elasticsearch.core.ElasticsearchOperations -
refresh the index -
refresh(String, boolean) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
refresh(Class<T>, boolean) - -Method in class org.springframework.data.elasticsearch.core.ElasticsearchTemplate -
  -
ResultsMapper<T> - Interface in org.springframework.data.elasticsearch.core
 
-
-

-S

-
-
save(List<S>) - -Method in interface org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository -
  -
save(S) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
save(List<S>) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
save(Iterable<S>) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
search(QueryBuilder) - -Method in interface org.springframework.data.elasticsearch.repository.ElasticsearchRepository -
  -
search(QueryBuilder, Pageable) - -Method in interface org.springframework.data.elasticsearch.repository.ElasticsearchRepository -
  -
search(SearchQuery) - -Method in interface org.springframework.data.elasticsearch.repository.ElasticsearchRepository -
  -
search(QueryBuilder) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
search(QueryBuilder, Pageable) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
search(SearchQuery) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
SearchQuery - Class in org.springframework.data.elasticsearch.core.query
 
SearchQuery() - -Constructor for class org.springframework.data.elasticsearch.core.query.SearchQuery -
  -
setApplicationContext(ApplicationContext) - -Method in class org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter -
  -
setApplicationContext(ApplicationContext) - -Method in class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentEntity -
  -
setClusterNodes(String[]) - -Method in class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
setElasticsearchFilter(FilterBuilder) - -Method in class org.springframework.data.elasticsearch.core.query.SearchQuery -
  -
setElasticsearchOperations(ElasticsearchOperations) - -Method in class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean -
Configures the ElasticsearchOperations to be used to create Elasticsearch repositories. -
setElasticsearchOperations(ElasticsearchOperations) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
setElasticsearchQuery(QueryBuilder) - -Method in class org.springframework.data.elasticsearch.core.query.DeleteQuery -
  -
setElasticsearchQuery(QueryBuilder) - -Method in class org.springframework.data.elasticsearch.core.query.SearchQuery -
  -
setEntityClass(Class<T>) - -Method in class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
setId(String) - -Method in class org.springframework.data.elasticsearch.core.query.GetQuery -
  -
setId(String) - -Method in class org.springframework.data.elasticsearch.core.query.IndexQuery -
  -
setLocal(boolean) - -Method in class org.springframework.data.elasticsearch.client.NodeClientFactoryBean -
  -
setObject(Object) - -Method in class org.springframework.data.elasticsearch.core.query.IndexQuery -
  -
setPageable(Pageable) - -Method in interface org.springframework.data.elasticsearch.core.query.Query -
restrict result to entries on given page. -
setProperties(Properties) - -Method in class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
SimpleElasticsearchMappingContext - Class in org.springframework.data.elasticsearch.core.mapping
 
SimpleElasticsearchMappingContext() - -Constructor for class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext -
  -
SimpleElasticsearchPersistentEntity<T> - Class in org.springframework.data.elasticsearch.core.mapping
Elasticsearch specific PersistentEntity implementation holding
SimpleElasticsearchPersistentEntity(TypeInformation<T>) - -Constructor for class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentEntity -
  -
SimpleElasticsearchPersistentProperty - Class in org.springframework.data.elasticsearch.core.mapping
Elasticsearch specific PersistentProperty implementation processing
SimpleElasticsearchPersistentProperty(Field, PropertyDescriptor, PersistentEntity<?, ElasticsearchPersistentProperty>, SimpleTypeHolder) - -Constructor for class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentProperty -
  -
SimpleElasticsearchRepository<T> - Class in org.springframework.data.elasticsearch.repository.support
Elasticsearch specific repository implementation.
SimpleElasticsearchRepository() - -Constructor for class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
SimpleElasticsearchRepository(ElasticsearchOperations) - -Constructor for class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
SimpleElasticsearchRepository(ElasticsearchEntityInformation<T, String>, ElasticsearchOperations) - -Constructor for class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -
  -
SimpleField - Class in org.springframework.data.elasticsearch.core.query
The most trivial implementation of a Field
SimpleField(String) - -Constructor for class org.springframework.data.elasticsearch.core.query.SimpleField -
  -
startsWith(String) - -Method in class org.springframework.data.elasticsearch.core.query.Criteria -
Crates new CriteriaEntry with trailing wildcard -
StringQuery - Class in org.springframework.data.elasticsearch.core.query
 
StringQuery(String) - -Constructor for class org.springframework.data.elasticsearch.core.query.StringQuery -
  -
StringQuery(String, Pageable) - -Constructor for class org.springframework.data.elasticsearch.core.query.StringQuery -
  -
StringQuery(String, Pageable, Sort) - -Constructor for class org.springframework.data.elasticsearch.core.query.StringQuery -
  -
-
-

-T

-
-
toString() - -Method in class org.springframework.data.elasticsearch.core.query.SimpleField -
  -
TransportClientBeanDefinitionParser - Class in org.springframework.data.elasticsearch.config
 
TransportClientBeanDefinitionParser() - -Constructor for class org.springframework.data.elasticsearch.config.TransportClientBeanDefinitionParser -
  -
TransportClientFactoryBean - Class in org.springframework.data.elasticsearch.client
 
TransportClientFactoryBean() - -Constructor for class org.springframework.data.elasticsearch.client.TransportClientFactoryBean -
  -
-
-

-V

-
-
valueOf(String) - -Static method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JavaDateConverter -
Returns the enum constant of this type with the specified name. -
valueOf(String) - -Static method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaDateTimeConverter -
Returns the enum constant of this type with the specified name. -
valueOf(String) - -Static method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaLocalDateTimeConverter -
Returns the enum constant of this type with the specified name. -
valueOf(String) - -Static method in enum org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty.PropertyToFieldNameConverter -
Returns the enum constant of this type with the specified name. -
valueOf(String) - -Static method in enum org.springframework.data.elasticsearch.core.query.Criteria.OperationKey -
Returns the enum constant of this type with the specified name. -
values() - -Static method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JavaDateConverter -
Returns an array containing the constants of this enum type, in -the order they are declared. -
values() - -Static method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaDateTimeConverter -
Returns an array containing the constants of this enum type, in -the order they are declared. -
values() - -Static method in enum org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaLocalDateTimeConverter -
Returns an array containing the constants of this enum type, in -the order they are declared. -
values() - -Static method in enum org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty.PropertyToFieldNameConverter -
Returns an array containing the constants of this enum type, in -the order they are declared. -
values() - -Static method in enum org.springframework.data.elasticsearch.core.query.Criteria.OperationKey -
Returns an array containing the constants of this enum type, in -the order they are declared. -
-
-

-W

-
-
where(String) - -Static method in class org.springframework.data.elasticsearch.core.query.Criteria -
Static factory method to create a new Criteria for field with given name -
where(Field) - -Static method in class org.springframework.data.elasticsearch.core.query.Criteria -
Static factory method to create a new Criteria for provided field -
WILDCARD - -Static variable in class org.springframework.data.elasticsearch.core.query.Criteria -
  -
-
-A B C D E F G H I L M N O P Q R S T V W - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/index.html b/site/apidocs/index.html deleted file mode 100644 index b41b37c2..00000000 --- a/site/apidocs/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API - - - - - - - - - - - -<H2> -Frame Alert</H2> - -<P> -This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. -<BR> -Link to<A HREF="overview-summary.html">Non-frame version.</A> - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/ElasticsearchException.html b/site/apidocs/org/springframework/data/elasticsearch/ElasticsearchException.html deleted file mode 100644 index fdb13cc4..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/ElasticsearchException.html +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - - -ElasticsearchException (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch -
-Class ElasticsearchException

-
-java.lang.Object
-  extended by java.lang.Throwable
-      extended by java.lang.Exception
-          extended by java.lang.RuntimeException
-              extended by org.springframework.data.elasticsearch.ElasticsearchException
-
-
-
All Implemented Interfaces:
Serializable
-
-
-
-
public class ElasticsearchException
extends RuntimeException
- - -

-

-
See Also:
Serialized Form
-
- -

- - - - - - - - - - - - - - - - - - - - -
-Constructor Summary
ElasticsearchException(String message) - -
-           
ElasticsearchException(String message, - Map<String,String> failedDocuments) - -
-           
ElasticsearchException(String message, - Throwable cause) - -
-           
ElasticsearchException(String message, - Throwable cause, - Map<String,String> failedDocuments) - -
-           
-  - - - - - - - - - - - -
-Method Summary
- Map<String,String>getFailedDocuments() - -
-           
- - - - - - - -
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchException

-
-public ElasticsearchException(String message)
-
-
-
- -

-ElasticsearchException

-
-public ElasticsearchException(String message,
-                              Throwable cause)
-
-
-
- -

-ElasticsearchException

-
-public ElasticsearchException(String message,
-                              Throwable cause,
-                              Map<String,String> failedDocuments)
-
-
-
- -

-ElasticsearchException

-
-public ElasticsearchException(String message,
-                              Map<String,String> failedDocuments)
-
-
- - - - - - - - -
-Method Detail
- -

-getFailedDocuments

-
-public Map<String,String> getFailedDocuments()
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/annotations/Document.html b/site/apidocs/org/springframework/data/elasticsearch/annotations/Document.html deleted file mode 100644 index 8fe8e293..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/annotations/Document.html +++ /dev/null @@ -1,227 +0,0 @@ - - - - - - - -Document (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.annotations -
-Annotation Type Document

-
-
-
@Inherited
-@Retention(value=RUNTIME)
-@Target(value=TYPE)
-public @interface Document
- - -

-


- -

- - - - - - - - - - - - - - - -
-Optional Element Summary
- StringindexName - -
-           
- Stringtype - -
-           
-  -

-

-indexName

-
-public abstract String indexName
-
-
-
-
-
-
-
-
Default:
""
-
-
-
- -

-type

-
-public abstract String type
-
-
-
-
-
-
-
-
Default:
""
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/annotations/Query.html b/site/apidocs/org/springframework/data/elasticsearch/annotations/Query.html deleted file mode 100644 index c3d74387..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/annotations/Query.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - -Query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.annotations -
-Annotation Type Query

-
-
-
@Retention(value=RUNTIME)
-@Target(value=METHOD)
-@Documented
-public @interface Query
- - -

-


- -

- - - - - - - - - - - - - - - -
-Optional Element Summary
- Stringname - -
-          Named Query Named looked up by repository.
- Stringvalue - -
-          Elasticsearch query to be used when executing query.
-  -

-

-value

-
-public abstract String value
-
-
Elasticsearch query to be used when executing query. May contain placeholders eg. ?0 -

-

-
-
-
- -
Returns:
-
-
Default:
""
-
-
-
- -

-name

-
-public abstract String name
-
-
Named Query Named looked up by repository. -

-

-
-
-
- -
Returns:
-
-
Default:
""
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/annotations/class-use/Document.html b/site/apidocs/org/springframework/data/elasticsearch/annotations/class-use/Document.html deleted file mode 100644 index 031e0306..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/annotations/class-use/Document.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.annotations.Document (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.annotations.Document

-
-No usage of org.springframework.data.elasticsearch.annotations.Document -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/annotations/class-use/Query.html b/site/apidocs/org/springframework/data/elasticsearch/annotations/class-use/Query.html deleted file mode 100644 index c091a020..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/annotations/class-use/Query.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.annotations.Query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.annotations.Query

-
-No usage of org.springframework.data.elasticsearch.annotations.Query -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/annotations/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/annotations/package-frame.html deleted file mode 100644 index c5ea92a0..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/annotations/package-frame.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.annotations (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.annotations - - - - -
-Annotation Types  - -
-Document -
-Query
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/annotations/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/annotations/package-summary.html deleted file mode 100644 index 82ebc1ea..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/annotations/package-summary.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.annotations (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.annotations -

- - - - - - - - - - - - - -
-Annotation Types Summary
Document 
Query 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/annotations/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/annotations/package-tree.html deleted file mode 100644 index 324478b3..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/annotations/package-tree.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.annotations Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.annotations -

-
-
-
Package Hierarchies:
All Packages
-
-

-Annotation Type Hierarchy -

-
    -
  • org.springframework.data.elasticsearch.annotations.Query (implements java.lang.annotation.Annotation) -
  • org.springframework.data.elasticsearch.annotations.Document (implements java.lang.annotation.Annotation) -
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/annotations/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/annotations/package-use.html deleted file mode 100644 index 5bda0f8c..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/annotations/package-use.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.annotations (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.annotations

-
-No usage of org.springframework.data.elasticsearch.annotations -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/class-use/ElasticsearchException.html b/site/apidocs/org/springframework/data/elasticsearch/class-use/ElasticsearchException.html deleted file mode 100644 index 5a288172..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/class-use/ElasticsearchException.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.ElasticsearchException (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.ElasticsearchException

-
-No usage of org.springframework.data.elasticsearch.ElasticsearchException -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.html b/site/apidocs/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.html deleted file mode 100644 index 4fb9b777..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/client/NodeClientFactoryBean.html +++ /dev/null @@ -1,353 +0,0 @@ - - - - - - - -NodeClientFactoryBean (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.client -
-Class NodeClientFactoryBean

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.client.NodeClientFactoryBean
-
-
-
All Implemented Interfaces:
FactoryBean<org.elasticsearch.client.node.NodeClient>, InitializingBean
-
-
-
-
public class NodeClientFactoryBean
extends Object
implements FactoryBean<org.elasticsearch.client.node.NodeClient>, InitializingBean
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
NodeClientFactoryBean(boolean local) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidafterPropertiesSet() - -
-           
- org.elasticsearch.client.node.NodeClientgetObject() - -
-           
- Class<? extends org.elasticsearch.client.Client>getObjectType() - -
-           
- booleanisSingleton() - -
-           
- voidsetLocal(boolean local) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-NodeClientFactoryBean

-
-public NodeClientFactoryBean(boolean local)
-
-
- - - - - - - - -
-Method Detail
- -

-getObject

-
-public org.elasticsearch.client.node.NodeClient getObject()
-                                                   throws Exception
-
-
-
Specified by:
getObject in interface FactoryBean<org.elasticsearch.client.node.NodeClient>
-
-
- -
Throws: -
Exception
-
-
-
- -

-getObjectType

-
-public Class<? extends org.elasticsearch.client.Client> getObjectType()
-
-
-
Specified by:
getObjectType in interface FactoryBean<org.elasticsearch.client.node.NodeClient>
-
-
-
-
-
-
- -

-isSingleton

-
-public boolean isSingleton()
-
-
-
Specified by:
isSingleton in interface FactoryBean<org.elasticsearch.client.node.NodeClient>
-
-
-
-
-
-
- -

-afterPropertiesSet

-
-public void afterPropertiesSet()
-                        throws Exception
-
-
-
Specified by:
afterPropertiesSet in interface InitializingBean
-
-
- -
Throws: -
Exception
-
-
-
- -

-setLocal

-
-public void setLocal(boolean local)
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.html b/site/apidocs/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.html deleted file mode 100644 index cad11838..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/client/TransportClientFactoryBean.html +++ /dev/null @@ -1,425 +0,0 @@ - - - - - - - -TransportClientFactoryBean (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.client -
-Class TransportClientFactoryBean

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.client.TransportClientFactoryBean
-
-
-
All Implemented Interfaces:
DisposableBean, FactoryBean<org.elasticsearch.client.transport.TransportClient>, InitializingBean
-
-
-
-
public class TransportClientFactoryBean
extends Object
implements FactoryBean<org.elasticsearch.client.transport.TransportClient>, InitializingBean, DisposableBean
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
TransportClientFactoryBean() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidafterPropertiesSet() - -
-           
-protected  voidbuildClient() - -
-           
- voiddestroy() - -
-           
- org.elasticsearch.client.transport.TransportClientgetObject() - -
-           
- Class<org.elasticsearch.client.transport.TransportClient>getObjectType() - -
-           
- booleanisSingleton() - -
-           
- voidsetClusterNodes(String[] clusterNodes) - -
-           
- voidsetProperties(Properties properties) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-TransportClientFactoryBean

-
-public TransportClientFactoryBean()
-
-
- - - - - - - - -
-Method Detail
- -

-destroy

-
-public void destroy()
-             throws Exception
-
-
-
Specified by:
destroy in interface DisposableBean
-
-
- -
Throws: -
Exception
-
-
-
- -

-getObject

-
-public org.elasticsearch.client.transport.TransportClient getObject()
-                                                             throws Exception
-
-
-
Specified by:
getObject in interface FactoryBean<org.elasticsearch.client.transport.TransportClient>
-
-
- -
Throws: -
Exception
-
-
-
- -

-getObjectType

-
-public Class<org.elasticsearch.client.transport.TransportClient> getObjectType()
-
-
-
Specified by:
getObjectType in interface FactoryBean<org.elasticsearch.client.transport.TransportClient>
-
-
-
-
-
-
- -

-isSingleton

-
-public boolean isSingleton()
-
-
-
Specified by:
isSingleton in interface FactoryBean<org.elasticsearch.client.transport.TransportClient>
-
-
-
-
-
-
- -

-afterPropertiesSet

-
-public void afterPropertiesSet()
-                        throws Exception
-
-
-
Specified by:
afterPropertiesSet in interface InitializingBean
-
-
- -
Throws: -
Exception
-
-
-
- -

-buildClient

-
-protected void buildClient()
-                    throws Exception
-
-
-
-
-
- -
Throws: -
Exception
-
-
-
- -

-setClusterNodes

-
-public void setClusterNodes(String[] clusterNodes)
-
-
-
-
-
-
-
-
-
- -

-setProperties

-
-public void setProperties(Properties properties)
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/client/class-use/NodeClientFactoryBean.html b/site/apidocs/org/springframework/data/elasticsearch/client/class-use/NodeClientFactoryBean.html deleted file mode 100644 index 9ad4b436..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/client/class-use/NodeClientFactoryBean.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.client.NodeClientFactoryBean (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.client.NodeClientFactoryBean

-
-No usage of org.springframework.data.elasticsearch.client.NodeClientFactoryBean -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/client/class-use/TransportClientFactoryBean.html b/site/apidocs/org/springframework/data/elasticsearch/client/class-use/TransportClientFactoryBean.html deleted file mode 100644 index faa3e2f7..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/client/class-use/TransportClientFactoryBean.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.client.TransportClientFactoryBean (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.client.TransportClientFactoryBean

-
-No usage of org.springframework.data.elasticsearch.client.TransportClientFactoryBean -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/client/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/client/package-frame.html deleted file mode 100644 index 808eae00..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/client/package-frame.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.client (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.client - - - - -
-Classes  - -
-NodeClientFactoryBean -
-TransportClientFactoryBean
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/client/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/client/package-summary.html deleted file mode 100644 index 78ed20d2..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/client/package-summary.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.client (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.client -

- - - - - - - - - - - - - -
-Class Summary
NodeClientFactoryBean 
TransportClientFactoryBean 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/client/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/client/package-tree.html deleted file mode 100644 index e86650a2..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/client/package-tree.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.client Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.client -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/client/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/client/package-use.html deleted file mode 100644 index dc9e6945..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/client/package-use.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.client (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.client

-
-No usage of org.springframework.data.elasticsearch.client -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/ElasticsearchNamespaceHandler.html b/site/apidocs/org/springframework/data/elasticsearch/config/ElasticsearchNamespaceHandler.html deleted file mode 100644 index d1183c08..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/ElasticsearchNamespaceHandler.html +++ /dev/null @@ -1,266 +0,0 @@ - - - - - - - -ElasticsearchNamespaceHandler (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.config -
-Class ElasticsearchNamespaceHandler

-
-java.lang.Object
-  extended by org.springframework.beans.factory.xml.NamespaceHandlerSupport
-      extended by org.springframework.data.elasticsearch.config.ElasticsearchNamespaceHandler
-
-
-
All Implemented Interfaces:
NamespaceHandler
-
-
-
-
public class ElasticsearchNamespaceHandler
extends NamespaceHandlerSupport
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
ElasticsearchNamespaceHandler() - -
-           
-  - - - - - - - - - - - -
-Method Summary
- voidinit() - -
-           
- - - - - - - -
Methods inherited from class org.springframework.beans.factory.xml.NamespaceHandlerSupport
decorate, parse, registerBeanDefinitionDecorator, registerBeanDefinitionDecoratorForAttribute, registerBeanDefinitionParser
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchNamespaceHandler

-
-public ElasticsearchNamespaceHandler()
-
-
- - - - - - - - -
-Method Detail
- -

-init

-
-public void init()
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/NodeClientBeanDefinitionParser.html b/site/apidocs/org/springframework/data/elasticsearch/config/NodeClientBeanDefinitionParser.html deleted file mode 100644 index 26f8df08..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/NodeClientBeanDefinitionParser.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - - -NodeClientBeanDefinitionParser (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.config -
-Class NodeClientBeanDefinitionParser

-
-java.lang.Object
-  extended by org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
-      extended by org.springframework.data.elasticsearch.config.NodeClientBeanDefinitionParser
-
-
-
All Implemented Interfaces:
BeanDefinitionParser
-
-
-
-
public class NodeClientBeanDefinitionParser
extends AbstractBeanDefinitionParser
- - -

-


- -

- - - - - - - -
-Field Summary
- - - - - - - -
Fields inherited from class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
ID_ATTRIBUTE, NAME_ATTRIBUTE
-  - - - - - - - - - - -
-Constructor Summary
NodeClientBeanDefinitionParser() - -
-           
-  - - - - - - - - - - - -
-Method Summary
-protected  AbstractBeanDefinitionparseInternal(Element element, - ParserContext parserContext) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
parse, postProcessComponentDefinition, registerBeanDefinition, resolveId, shouldFireEvents, shouldGenerateId, shouldGenerateIdAsFallback
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-NodeClientBeanDefinitionParser

-
-public NodeClientBeanDefinitionParser()
-
-
- - - - - - - - -
-Method Detail
- -

-parseInternal

-
-protected AbstractBeanDefinition parseInternal(Element element,
-                                               ParserContext parserContext)
-
-
-
Specified by:
parseInternal in class AbstractBeanDefinitionParser
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/TransportClientBeanDefinitionParser.html b/site/apidocs/org/springframework/data/elasticsearch/config/TransportClientBeanDefinitionParser.html deleted file mode 100644 index c9e16a12..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/TransportClientBeanDefinitionParser.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - - -TransportClientBeanDefinitionParser (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.config -
-Class TransportClientBeanDefinitionParser

-
-java.lang.Object
-  extended by org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
-      extended by org.springframework.data.elasticsearch.config.TransportClientBeanDefinitionParser
-
-
-
All Implemented Interfaces:
BeanDefinitionParser
-
-
-
-
public class TransportClientBeanDefinitionParser
extends AbstractBeanDefinitionParser
- - -

-


- -

- - - - - - - -
-Field Summary
- - - - - - - -
Fields inherited from class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
ID_ATTRIBUTE, NAME_ATTRIBUTE
-  - - - - - - - - - - -
-Constructor Summary
TransportClientBeanDefinitionParser() - -
-           
-  - - - - - - - - - - - -
-Method Summary
-protected  AbstractBeanDefinitionparseInternal(Element element, - ParserContext parserContext) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.beans.factory.xml.AbstractBeanDefinitionParser
parse, postProcessComponentDefinition, registerBeanDefinition, resolveId, shouldFireEvents, shouldGenerateId, shouldGenerateIdAsFallback
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-TransportClientBeanDefinitionParser

-
-public TransportClientBeanDefinitionParser()
-
-
- - - - - - - - -
-Method Detail
- -

-parseInternal

-
-protected AbstractBeanDefinition parseInternal(Element element,
-                                               ParserContext parserContext)
-
-
-
Specified by:
parseInternal in class AbstractBeanDefinitionParser
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/class-use/ElasticsearchNamespaceHandler.html b/site/apidocs/org/springframework/data/elasticsearch/config/class-use/ElasticsearchNamespaceHandler.html deleted file mode 100644 index 0b1dacb5..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/class-use/ElasticsearchNamespaceHandler.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.config.ElasticsearchNamespaceHandler (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.config.ElasticsearchNamespaceHandler

-
-No usage of org.springframework.data.elasticsearch.config.ElasticsearchNamespaceHandler -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/class-use/NodeClientBeanDefinitionParser.html b/site/apidocs/org/springframework/data/elasticsearch/config/class-use/NodeClientBeanDefinitionParser.html deleted file mode 100644 index 243bde00..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/class-use/NodeClientBeanDefinitionParser.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.config.NodeClientBeanDefinitionParser (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.config.NodeClientBeanDefinitionParser

-
-No usage of org.springframework.data.elasticsearch.config.NodeClientBeanDefinitionParser -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/class-use/TransportClientBeanDefinitionParser.html b/site/apidocs/org/springframework/data/elasticsearch/config/class-use/TransportClientBeanDefinitionParser.html deleted file mode 100644 index e12749ad..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/class-use/TransportClientBeanDefinitionParser.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.config.TransportClientBeanDefinitionParser (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.config.TransportClientBeanDefinitionParser

-
-No usage of org.springframework.data.elasticsearch.config.TransportClientBeanDefinitionParser -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/config/package-frame.html deleted file mode 100644 index d100b2e4..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/package-frame.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.config (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.config - - - - -
-Classes  - -
-ElasticsearchNamespaceHandler -
-NodeClientBeanDefinitionParser -
-TransportClientBeanDefinitionParser
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/config/package-summary.html deleted file mode 100644 index 36a01886..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/package-summary.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.config (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.config -

- - - - - - - - - - - - - - - - - -
-Class Summary
ElasticsearchNamespaceHandler 
NodeClientBeanDefinitionParser 
TransportClientBeanDefinitionParser 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/config/package-tree.html deleted file mode 100644 index b205b669..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/package-tree.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.config Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.config -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/config/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/config/package-use.html deleted file mode 100644 index c53e525a..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/config/package-use.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.config (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.config

-
-No usage of org.springframework.data.elasticsearch.config -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/ElasticsearchOperations.html b/site/apidocs/org/springframework/data/elasticsearch/core/ElasticsearchOperations.html deleted file mode 100644 index 6f13b617..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/ElasticsearchOperations.html +++ /dev/null @@ -1,639 +0,0 @@ - - - - - - - -ElasticsearchOperations (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core -
-Interface ElasticsearchOperations

-
-
All Known Implementing Classes:
ElasticsearchTemplate
-
-
-
-
public interface ElasticsearchOperations
- - -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidbulkIndex(List<IndexQuery> queries) - -
-          Bulk index all objects.
- - - - - -
-<T> long
-
count(SearchQuery query, - Class<T> clazz) - -
-          return number of elements found by for given query
- - - - - -
-<T> boolean
-
createIndex(Class<T> clazz) - -
-          Create an index
- - - - - -
-<T> String
-
delete(Class<T> clazz, - String id) - -
-          Delete the one object with provided id
- - - - - -
-<T> void
-
delete(DeleteQuery query, - Class<T> clazz) - -
-          Delete all records matching the query
- Stringdelete(String indexName, - String type, - String id) - -
-          Delete the one object with provided id
- ElasticsearchConvertergetElasticsearchConverter() - -
-           
- Stringindex(IndexQuery query) - -
-          Index an object.
- - - - - -
-<T> T
-
queryForObject(CriteriaQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
- - - - - -
-<T> T
-
queryForObject(GetQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
- - - - - -
-<T> T
-
queryForObject(StringQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
queryForPage(CriteriaQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
queryForPage(SearchQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
queryForPage(StringQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
- - - - - -
-<T> void
-
refresh(Class<T> clazz, - boolean waitForOperation) - -
-          refresh the index
- voidrefresh(String indexName, - boolean waitForOperation) - -
-          refresh the index
-  -

- - - - - - - - -
-Method Detail
- -

-getElasticsearchConverter

-
-ElasticsearchConverter getElasticsearchConverter()
-
-
- -
Returns:
Converter in use
-
-
-
- -

-createIndex

-
-<T> boolean createIndex(Class<T> clazz)
-
-
Create an index -

-

-
Type Parameters:
T -
Parameters:
clazz -
-
-
-
- -

-queryForObject

-
-<T> T queryForObject(GetQuery query,
-                     Class<T> clazz)
-
-
Execute the query against elasticsearch and return the first returned object -

-

-
Parameters:
query -
clazz - -
Returns:
the first matching object
-
-
-
- -

-queryForObject

-
-<T> T queryForObject(CriteriaQuery query,
-                     Class<T> clazz)
-
-
Execute the query against elasticsearch and return the first returned object -

-

-
Parameters:
query -
clazz - -
Returns:
the first matching object
-
-
-
- -

-queryForObject

-
-<T> T queryForObject(StringQuery query,
-                     Class<T> clazz)
-
-
Execute the query against elasticsearch and return the first returned object -

-

-
Parameters:
query -
clazz - -
Returns:
the first matching object
-
-
-
- -

-queryForPage

-
-<T> org.springframework.data.domain.Page<T> queryForPage(SearchQuery query,
-                                                         Class<T> clazz)
-
-
Execute the query against elasticsearch and return result as Page -

-

-
Parameters:
query -
clazz - -
Returns:
-
-
-
- -

-queryForPage

-
-<T> org.springframework.data.domain.Page<T> queryForPage(CriteriaQuery query,
-                                                         Class<T> clazz)
-
-
Execute the query against elasticsearch and return result as Page -

-

-
Parameters:
query -
clazz - -
Returns:
-
-
-
- -

-queryForPage

-
-<T> org.springframework.data.domain.Page<T> queryForPage(StringQuery query,
-                                                         Class<T> clazz)
-
-
Execute the query against elasticsearch and return result as Page -

-

-
Parameters:
query -
clazz - -
Returns:
-
-
-
- -

-count

-
-<T> long count(SearchQuery query,
-               Class<T> clazz)
-
-
return number of elements found by for given query -

-

-
Parameters:
query -
clazz - -
Returns:
-
-
-
- -

-index

-
-String index(IndexQuery query)
-
-
Index an object. Will do save or update -

-

-
Parameters:
query - -
Returns:
returns the document id
-
-
-
- -

-bulkIndex

-
-void bulkIndex(List<IndexQuery> queries)
-
-
Bulk index all objects. Will do save or update -

-

-
Parameters:
queries -
-
-
-
- -

-delete

-
-String delete(String indexName,
-              String type,
-              String id)
-
-
Delete the one object with provided id -

-

-
Parameters:
indexName -
type -
id - -
Returns:
documentId of the document deleted
-
-
-
- -

-delete

-
-<T> String delete(Class<T> clazz,
-                  String id)
-
-
Delete the one object with provided id -

-

-
Parameters:
clazz -
id - -
Returns:
documentId of the document deleted
-
-
-
- -

-delete

-
-<T> void delete(DeleteQuery query,
-                Class<T> clazz)
-
-
Delete all records matching the query -

-

-
Parameters:
clazz -
query -
-
-
-
- -

-refresh

-
-void refresh(String indexName,
-             boolean waitForOperation)
-
-
refresh the index -

-

-
Parameters:
indexName -
waitForOperation -
-
-
-
- -

-refresh

-
-<T> void refresh(Class<T> clazz,
-                 boolean waitForOperation)
-
-
refresh the index -

-

-
Parameters:
clazz -
waitForOperation -
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.html b/site/apidocs/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.html deleted file mode 100644 index 1d59dd3b..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.html +++ /dev/null @@ -1,764 +0,0 @@ - - - - - - - -ElasticsearchTemplate (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core -
-Class ElasticsearchTemplate

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.ElasticsearchTemplate
-
-
-
All Implemented Interfaces:
ElasticsearchOperations
-
-
-
-
public class ElasticsearchTemplate
extends Object
implements ElasticsearchOperations
- - -

-


- -

- - - - - - - - - - - - - - -
-Constructor Summary
ElasticsearchTemplate(org.elasticsearch.client.Client client) - -
-           
ElasticsearchTemplate(org.elasticsearch.client.Client client, - ElasticsearchConverter elasticsearchConverter) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidbulkIndex(List<IndexQuery> queries) - -
-          Bulk index all objects.
- - - - - -
-<T> long
-
count(SearchQuery query, - Class<T> clazz) - -
-          return number of elements found by for given query
- - - - - -
-<T> boolean
-
createIndex(Class<T> clazz) - -
-          Create an index
- - - - - -
-<T> String
-
delete(Class<T> clazz, - String id) - -
-          Delete the one object with provided id
- - - - - -
-<T> void
-
delete(DeleteQuery query, - Class<T> clazz) - -
-          Delete all records matching the query
- Stringdelete(String indexName, - String type, - String id) - -
-          Delete the one object with provided id
- ElasticsearchConvertergetElasticsearchConverter() - -
-           
- Stringindex(IndexQuery query) - -
-          Index an object.
- - - - - -
-<T> T
-
queryForObject(CriteriaQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
- - - - - -
-<T> T
-
queryForObject(GetQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
- - - - - -
-<T> T
-
queryForObject(StringQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
queryForPage(CriteriaQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
queryForPage(SearchQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
queryForPage(StringQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
- - - - - -
-<T> void
-
refresh(Class<T> clazz, - boolean waitForOperation) - -
-          refresh the index
- voidrefresh(String indexName, - boolean waitForOperation) - -
-          refresh the index
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchTemplate

-
-public ElasticsearchTemplate(org.elasticsearch.client.Client client)
-
-
-
- -

-ElasticsearchTemplate

-
-public ElasticsearchTemplate(org.elasticsearch.client.Client client,
-                             ElasticsearchConverter elasticsearchConverter)
-
-
- - - - - - - - -
-Method Detail
- -

-createIndex

-
-public <T> boolean createIndex(Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
Create an index -

-

-
Specified by:
createIndex in interface ElasticsearchOperations
-
-
-
-
-
-
- -

-getElasticsearchConverter

-
-public ElasticsearchConverter getElasticsearchConverter()
-
-
-
Specified by:
getElasticsearchConverter in interface ElasticsearchOperations
-
-
- -
Returns:
Converter in use
-
-
-
- -

-queryForObject

-
-public <T> T queryForObject(GetQuery query,
-                            Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
Execute the query against elasticsearch and return the first returned object -

-

-
Specified by:
queryForObject in interface ElasticsearchOperations
-
-
- -
Returns:
the first matching object
-
-
-
- -

-queryForObject

-
-public <T> T queryForObject(CriteriaQuery query,
-                            Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
Execute the query against elasticsearch and return the first returned object -

-

-
Specified by:
queryForObject in interface ElasticsearchOperations
-
-
- -
Returns:
the first matching object
-
-
-
- -

-queryForObject

-
-public <T> T queryForObject(StringQuery query,
-                            Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
Execute the query against elasticsearch and return the first returned object -

-

-
Specified by:
queryForObject in interface ElasticsearchOperations
-
-
- -
Returns:
the first matching object
-
-
-
- -

-queryForPage

-
-public <T> org.springframework.data.domain.Page<T> queryForPage(SearchQuery query,
-                                                                Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
Execute the query against elasticsearch and return result as Page -

-

-
Specified by:
queryForPage in interface ElasticsearchOperations
-
-
- -
Returns:
-
-
-
- -

-queryForPage

-
-public <T> org.springframework.data.domain.Page<T> queryForPage(CriteriaQuery query,
-                                                                Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
Execute the query against elasticsearch and return result as Page -

-

-
Specified by:
queryForPage in interface ElasticsearchOperations
-
-
- -
Returns:
-
-
-
- -

-queryForPage

-
-public <T> org.springframework.data.domain.Page<T> queryForPage(StringQuery query,
-                                                                Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
Execute the query against elasticsearch and return result as Page -

-

-
Specified by:
queryForPage in interface ElasticsearchOperations
-
-
- -
Returns:
-
-
-
- -

-count

-
-public <T> long count(SearchQuery query,
-                      Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
return number of elements found by for given query -

-

-
Specified by:
count in interface ElasticsearchOperations
-
-
- -
Returns:
-
-
-
- -

-index

-
-public String index(IndexQuery query)
-
-
Description copied from interface: ElasticsearchOperations
-
Index an object. Will do save or update -

-

-
Specified by:
index in interface ElasticsearchOperations
-
-
- -
Returns:
returns the document id
-
-
-
- -

-bulkIndex

-
-public void bulkIndex(List<IndexQuery> queries)
-
-
Description copied from interface: ElasticsearchOperations
-
Bulk index all objects. Will do save or update -

-

-
Specified by:
bulkIndex in interface ElasticsearchOperations
-
-
-
-
-
-
- -

-delete

-
-public String delete(String indexName,
-                     String type,
-                     String id)
-
-
Description copied from interface: ElasticsearchOperations
-
Delete the one object with provided id -

-

-
Specified by:
delete in interface ElasticsearchOperations
-
-
- -
Returns:
documentId of the document deleted
-
-
-
- -

-delete

-
-public <T> String delete(Class<T> clazz,
-                         String id)
-
-
Description copied from interface: ElasticsearchOperations
-
Delete the one object with provided id -

-

-
Specified by:
delete in interface ElasticsearchOperations
-
-
- -
Returns:
documentId of the document deleted
-
-
-
- -

-delete

-
-public <T> void delete(DeleteQuery query,
-                       Class<T> clazz)
-
-
Description copied from interface: ElasticsearchOperations
-
Delete all records matching the query -

-

-
Specified by:
delete in interface ElasticsearchOperations
-
-
-
-
-
-
- -

-refresh

-
-public void refresh(String indexName,
-                    boolean waitForOperation)
-
-
Description copied from interface: ElasticsearchOperations
-
refresh the index -

-

-
Specified by:
refresh in interface ElasticsearchOperations
-
-
-
-
-
-
- -

-refresh

-
-public <T> void refresh(Class<T> clazz,
-                        boolean waitForOperation)
-
-
Description copied from interface: ElasticsearchOperations
-
refresh the index -

-

-
Specified by:
refresh in interface ElasticsearchOperations
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/ResultsMapper.html b/site/apidocs/org/springframework/data/elasticsearch/core/ResultsMapper.html deleted file mode 100644 index e5e92fde..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/ResultsMapper.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - -ResultsMapper (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core -
-Interface ResultsMapper<T>

-
-
-
public interface ResultsMapper<T>
- - -

-


- -

- - - - - - - - - - - - -
-Method Summary
- org.springframework.data.domain.Page<T>mapResults(org.elasticsearch.action.search.SearchResponse response) - -
-           
-  -

- - - - - - - - -
-Method Detail
- -

-mapResults

-
-org.springframework.data.domain.Page<T> mapResults(org.elasticsearch.action.search.SearchResponse response)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ElasticsearchOperations.html b/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ElasticsearchOperations.html deleted file mode 100644 index abed9adb..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ElasticsearchOperations.html +++ /dev/null @@ -1,334 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.core.ElasticsearchOperations (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.core.ElasticsearchOperations

-
- - - - - - - - - - - - - - - - - - - - - -
-Packages that use ElasticsearchOperations
org.springframework.data.elasticsearch.core  
org.springframework.data.elasticsearch.repository.cdi  
org.springframework.data.elasticsearch.repository.query  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - -
-Uses of ElasticsearchOperations in org.springframework.data.elasticsearch.core
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.core that implement ElasticsearchOperations
- classElasticsearchTemplate - -
-           
-  -

- - - - - -
-Uses of ElasticsearchOperations in org.springframework.data.elasticsearch.repository.cdi
-  -

- - - - - - - - -
Constructor parameters in org.springframework.data.elasticsearch.repository.cdi with type arguments of type ElasticsearchOperations
ElasticsearchRepositoryBean(javax.enterprise.inject.spi.Bean<ElasticsearchOperations> operations, - Set<Annotation> qualifiers, - Class<T> repositoryType, - javax.enterprise.inject.spi.BeanManager beanManager) - -
-           
-  -

- - - - - -
-Uses of ElasticsearchOperations in org.springframework.data.elasticsearch.repository.query
-  -

- - - - - - - - - -
Fields in org.springframework.data.elasticsearch.repository.query declared as ElasticsearchOperations
-protected  ElasticsearchOperationsAbstractElasticsearchRepositoryQuery.elasticsearchOperations - -
-           
-  -

- - - - - - - - - - - - - - -
Constructors in org.springframework.data.elasticsearch.repository.query with parameters of type ElasticsearchOperations
AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod, - ElasticsearchOperations elasticsearchOperations) - -
-           
ElasticsearchPartQuery(ElasticsearchQueryMethod method, - ElasticsearchOperations elasticsearchOperations) - -
-           
ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod, - ElasticsearchOperations elasticsearchOperations, - String query) - -
-           
-  -

- - - - - -
-Uses of ElasticsearchOperations in org.springframework.data.elasticsearch.repository.support
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.repository.support with parameters of type ElasticsearchOperations
- voidSimpleElasticsearchRepository.setElasticsearchOperations(ElasticsearchOperations elasticsearchOperations) - -
-           
- voidElasticsearchRepositoryFactoryBean.setElasticsearchOperations(ElasticsearchOperations operations) - -
-          Configures the ElasticsearchOperations to be used to create Elasticsearch repositories.
-  -

- - - - - - - - - - - - - - -
Constructors in org.springframework.data.elasticsearch.repository.support with parameters of type ElasticsearchOperations
ElasticsearchRepositoryFactory(ElasticsearchOperations elasticsearchOperations) - -
-           
SimpleElasticsearchRepository(ElasticsearchEntityInformation<T,String> metadata, - ElasticsearchOperations elasticsearchOperations) - -
-           
SimpleElasticsearchRepository(ElasticsearchOperations elasticsearchOperations) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ElasticsearchTemplate.html b/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ElasticsearchTemplate.html deleted file mode 100644 index 7c8450b0..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ElasticsearchTemplate.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.ElasticsearchTemplate (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.ElasticsearchTemplate

-
-No usage of org.springframework.data.elasticsearch.core.ElasticsearchTemplate -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ResultsMapper.html b/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ResultsMapper.html deleted file mode 100644 index 363b8eb1..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/class-use/ResultsMapper.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.core.ResultsMapper (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.core.ResultsMapper

-
-No usage of org.springframework.data.elasticsearch.core.ResultsMapper -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JavaDateConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JavaDateConverter.html deleted file mode 100644 index e5022521..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JavaDateConverter.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - - -DateTimeConverters.JavaDateConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.convert -
-Enum DateTimeConverters.JavaDateConverter

-
-java.lang.Object
-  extended by java.lang.Enum<DateTimeConverters.JavaDateConverter>
-      extended by org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JavaDateConverter
-
-
-
All Implemented Interfaces:
Serializable, Comparable<DateTimeConverters.JavaDateConverter>, Converter<Date,String>
-
-
-
Enclosing class:
DateTimeConverters
-
-
-
-
public static enum DateTimeConverters.JavaDateConverter
extends Enum<DateTimeConverters.JavaDateConverter>
implements Converter<Date,String>
- - -

-


- -

- - - - - - - - - - -
-Enum Constant Summary
INSTANCE - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
- Stringconvert(Date source) - -
-           
-static DateTimeConverters.JavaDateConvertervalueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static DateTimeConverters.JavaDateConverter[]values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
- - - - - - - -
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
- - - - - - - -
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Enum Constant Detail
- -

-INSTANCE

-
-public static final DateTimeConverters.JavaDateConverter INSTANCE
-
-
-
-
- - - - - - - - -
-Method Detail
- -

-values

-
-public static DateTimeConverters.JavaDateConverter[] values()
-
-
Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
-for (DateTimeConverters.JavaDateConverter c : DateTimeConverters.JavaDateConverter.values())
-    System.out.println(c);
-
-

-

-
-
-
- -
Returns:
an array containing the constants of this enum type, in -the order they are declared
-
-
-
- -

-valueOf

-
-public static DateTimeConverters.JavaDateConverter valueOf(String name)
-
-
Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.) -

-

-
-
-
-
Parameters:
name - the name of the enum constant to be returned. -
Returns:
the enum constant with the specified name -
Throws: -
IllegalArgumentException - if this enum type has no constant -with the specified name -
NullPointerException - if the argument is null
-
-
-
- -

-convert

-
-public String convert(Date source)
-
-
-
Specified by:
convert in interface Converter<Date,String>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JodaDateTimeConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JodaDateTimeConverter.html deleted file mode 100644 index 3c2e7f4e..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JodaDateTimeConverter.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - - -DateTimeConverters.JodaDateTimeConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.convert -
-Enum DateTimeConverters.JodaDateTimeConverter

-
-java.lang.Object
-  extended by java.lang.Enum<DateTimeConverters.JodaDateTimeConverter>
-      extended by org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaDateTimeConverter
-
-
-
All Implemented Interfaces:
Serializable, Comparable<DateTimeConverters.JodaDateTimeConverter>, Converter<org.joda.time.ReadableInstant,String>
-
-
-
Enclosing class:
DateTimeConverters
-
-
-
-
public static enum DateTimeConverters.JodaDateTimeConverter
extends Enum<DateTimeConverters.JodaDateTimeConverter>
implements Converter<org.joda.time.ReadableInstant,String>
- - -

-


- -

- - - - - - - - - - -
-Enum Constant Summary
INSTANCE - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
- Stringconvert(org.joda.time.ReadableInstant source) - -
-           
-static DateTimeConverters.JodaDateTimeConvertervalueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static DateTimeConverters.JodaDateTimeConverter[]values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
- - - - - - - -
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
- - - - - - - -
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Enum Constant Detail
- -

-INSTANCE

-
-public static final DateTimeConverters.JodaDateTimeConverter INSTANCE
-
-
-
-
- - - - - - - - -
-Method Detail
- -

-values

-
-public static DateTimeConverters.JodaDateTimeConverter[] values()
-
-
Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
-for (DateTimeConverters.JodaDateTimeConverter c : DateTimeConverters.JodaDateTimeConverter.values())
-    System.out.println(c);
-
-

-

-
-
-
- -
Returns:
an array containing the constants of this enum type, in -the order they are declared
-
-
-
- -

-valueOf

-
-public static DateTimeConverters.JodaDateTimeConverter valueOf(String name)
-
-
Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.) -

-

-
-
-
-
Parameters:
name - the name of the enum constant to be returned. -
Returns:
the enum constant with the specified name -
Throws: -
IllegalArgumentException - if this enum type has no constant -with the specified name -
NullPointerException - if the argument is null
-
-
-
- -

-convert

-
-public String convert(org.joda.time.ReadableInstant source)
-
-
-
Specified by:
convert in interface Converter<org.joda.time.ReadableInstant,String>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JodaLocalDateTimeConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JodaLocalDateTimeConverter.html deleted file mode 100644 index ebc824b0..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.JodaLocalDateTimeConverter.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - - -DateTimeConverters.JodaLocalDateTimeConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.convert -
-Enum DateTimeConverters.JodaLocalDateTimeConverter

-
-java.lang.Object
-  extended by java.lang.Enum<DateTimeConverters.JodaLocalDateTimeConverter>
-      extended by org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaLocalDateTimeConverter
-
-
-
All Implemented Interfaces:
Serializable, Comparable<DateTimeConverters.JodaLocalDateTimeConverter>, Converter<org.joda.time.LocalDateTime,String>
-
-
-
Enclosing class:
DateTimeConverters
-
-
-
-
public static enum DateTimeConverters.JodaLocalDateTimeConverter
extends Enum<DateTimeConverters.JodaLocalDateTimeConverter>
implements Converter<org.joda.time.LocalDateTime,String>
- - -

-


- -

- - - - - - - - - - -
-Enum Constant Summary
INSTANCE - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
- Stringconvert(org.joda.time.LocalDateTime source) - -
-           
-static DateTimeConverters.JodaLocalDateTimeConvertervalueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static DateTimeConverters.JodaLocalDateTimeConverter[]values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
- - - - - - - -
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
- - - - - - - -
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Enum Constant Detail
- -

-INSTANCE

-
-public static final DateTimeConverters.JodaLocalDateTimeConverter INSTANCE
-
-
-
-
- - - - - - - - -
-Method Detail
- -

-values

-
-public static DateTimeConverters.JodaLocalDateTimeConverter[] values()
-
-
Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
-for (DateTimeConverters.JodaLocalDateTimeConverter c : DateTimeConverters.JodaLocalDateTimeConverter.values())
-    System.out.println(c);
-
-

-

-
-
-
- -
Returns:
an array containing the constants of this enum type, in -the order they are declared
-
-
-
- -

-valueOf

-
-public static DateTimeConverters.JodaLocalDateTimeConverter valueOf(String name)
-
-
Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.) -

-

-
-
-
-
Parameters:
name - the name of the enum constant to be returned. -
Returns:
the enum constant with the specified name -
Throws: -
IllegalArgumentException - if this enum type has no constant -with the specified name -
NullPointerException - if the argument is null
-
-
-
- -

-convert

-
-public String convert(org.joda.time.LocalDateTime source)
-
-
-
Specified by:
convert in interface Converter<org.joda.time.LocalDateTime,String>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.html deleted file mode 100644 index ac35da38..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/DateTimeConverters.html +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - -DateTimeConverters (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.convert -
-Class DateTimeConverters

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.convert.DateTimeConverters
-
-
-
-
public final class DateTimeConverters
extends Object
- - -

-


- -

- - - - - - - - - - - - - - - - - - - -
-Nested Class Summary
-static classDateTimeConverters.JavaDateConverter - -
-           
-static classDateTimeConverters.JodaDateTimeConverter - -
-           
-static classDateTimeConverters.JodaLocalDateTimeConverter - -
-           
-  - - - - - - - - - - -
-Constructor Summary
DateTimeConverters() - -
-           
-  - - - - - - - -
-Method Summary
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-DateTimeConverters

-
-public DateTimeConverters()
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/ElasticsearchConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/ElasticsearchConverter.html deleted file mode 100644 index 445312b4..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/ElasticsearchConverter.html +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - -ElasticsearchConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.convert -
-Interface ElasticsearchConverter

-
-
All Known Implementing Classes:
MappingElasticsearchConverter
-
-
-
-
public interface ElasticsearchConverter
- - -

-


- -

- - - - - - - - - - - - - - - - -
-Method Summary
- ConversionServicegetConversionService() - -
-          Returns the underlying ConversionService used by the converter.
- org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>getMappingContext() - -
-          Returns the underlying MappingContext used by the converter.
-  -

- - - - - - - - -
-Method Detail
- -

-getMappingContext

-
-org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> getMappingContext()
-
-
Returns the underlying MappingContext used by the converter. -

-

- -
Returns:
never null
-
-
-
- -

-getConversionService

-
-ConversionService getConversionService()
-
-
Returns the underlying ConversionService used by the converter. -

-

- -
Returns:
never null.
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.html deleted file mode 100644 index 1b013519..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/MappingElasticsearchConverter.html +++ /dev/null @@ -1,314 +0,0 @@ - - - - - - - -MappingElasticsearchConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.convert -
-Class MappingElasticsearchConverter

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter
-
-
-
All Implemented Interfaces:
Aware, ApplicationContextAware, ElasticsearchConverter
-
-
-
-
public class MappingElasticsearchConverter
extends Object
implements ElasticsearchConverter, ApplicationContextAware
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
MappingElasticsearchConverter(org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext) - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
- ConversionServicegetConversionService() - -
-          Returns the underlying ConversionService used by the converter.
- org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>getMappingContext() - -
-          Returns the underlying MappingContext used by the converter.
- voidsetApplicationContext(ApplicationContext applicationContext) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-MappingElasticsearchConverter

-
-public MappingElasticsearchConverter(org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext)
-
-
- - - - - - - - -
-Method Detail
- -

-getMappingContext

-
-public org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> getMappingContext()
-
-
Description copied from interface: ElasticsearchConverter
-
Returns the underlying MappingContext used by the converter. -

-

-
Specified by:
getMappingContext in interface ElasticsearchConverter
-
-
- -
Returns:
never null
-
-
-
- -

-getConversionService

-
-public ConversionService getConversionService()
-
-
Description copied from interface: ElasticsearchConverter
-
Returns the underlying ConversionService used by the converter. -

-

-
Specified by:
getConversionService in interface ElasticsearchConverter
-
-
- -
Returns:
never null.
-
-
-
- -

-setApplicationContext

-
-public void setApplicationContext(ApplicationContext applicationContext)
-                           throws BeansException
-
-
-
Specified by:
setApplicationContext in interface ApplicationContextAware
-
-
- -
Throws: -
BeansException
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JavaDateConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JavaDateConverter.html deleted file mode 100644 index 1e94427c..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JavaDateConverter.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JavaDateConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JavaDateConverter

-
- - - - - - - - - -
-Packages that use DateTimeConverters.JavaDateConverter
org.springframework.data.elasticsearch.core.convert  
-  -

- - - - - -
-Uses of DateTimeConverters.JavaDateConverter in org.springframework.data.elasticsearch.core.convert
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.convert that return DateTimeConverters.JavaDateConverter
-static DateTimeConverters.JavaDateConverterDateTimeConverters.JavaDateConverter.valueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static DateTimeConverters.JavaDateConverter[]DateTimeConverters.JavaDateConverter.values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JodaDateTimeConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JodaDateTimeConverter.html deleted file mode 100644 index fc342bef..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JodaDateTimeConverter.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaDateTimeConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaDateTimeConverter

-
- - - - - - - - - -
-Packages that use DateTimeConverters.JodaDateTimeConverter
org.springframework.data.elasticsearch.core.convert  
-  -

- - - - - -
-Uses of DateTimeConverters.JodaDateTimeConverter in org.springframework.data.elasticsearch.core.convert
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.convert that return DateTimeConverters.JodaDateTimeConverter
-static DateTimeConverters.JodaDateTimeConverterDateTimeConverters.JodaDateTimeConverter.valueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static DateTimeConverters.JodaDateTimeConverter[]DateTimeConverters.JodaDateTimeConverter.values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JodaLocalDateTimeConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JodaLocalDateTimeConverter.html deleted file mode 100644 index 3cb30212..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.JodaLocalDateTimeConverter.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaLocalDateTimeConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.convert.DateTimeConverters.JodaLocalDateTimeConverter

-
- - - - - - - - - -
-Packages that use DateTimeConverters.JodaLocalDateTimeConverter
org.springframework.data.elasticsearch.core.convert  
-  -

- - - - - -
-Uses of DateTimeConverters.JodaLocalDateTimeConverter in org.springframework.data.elasticsearch.core.convert
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.convert that return DateTimeConverters.JodaLocalDateTimeConverter
-static DateTimeConverters.JodaLocalDateTimeConverterDateTimeConverters.JodaLocalDateTimeConverter.valueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static DateTimeConverters.JodaLocalDateTimeConverter[]DateTimeConverters.JodaLocalDateTimeConverter.values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.html deleted file mode 100644 index 00d9a5e4..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/DateTimeConverters.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.convert.DateTimeConverters (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.convert.DateTimeConverters

-
-No usage of org.springframework.data.elasticsearch.core.convert.DateTimeConverters -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/ElasticsearchConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/ElasticsearchConverter.html deleted file mode 100644 index 077eda75..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/ElasticsearchConverter.html +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter

-
- - - - - - - - - - - - - -
-Packages that use ElasticsearchConverter
org.springframework.data.elasticsearch.core  
org.springframework.data.elasticsearch.core.convert  
-  -

- - - - - -
-Uses of ElasticsearchConverter in org.springframework.data.elasticsearch.core
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core that return ElasticsearchConverter
- ElasticsearchConverterElasticsearchTemplate.getElasticsearchConverter() - -
-           
- ElasticsearchConverterElasticsearchOperations.getElasticsearchConverter() - -
-           
-  -

- - - - - - - - -
Constructors in org.springframework.data.elasticsearch.core with parameters of type ElasticsearchConverter
ElasticsearchTemplate(org.elasticsearch.client.Client client, - ElasticsearchConverter elasticsearchConverter) - -
-           
-  -

- - - - - -
-Uses of ElasticsearchConverter in org.springframework.data.elasticsearch.core.convert
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.core.convert that implement ElasticsearchConverter
- classMappingElasticsearchConverter - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/MappingElasticsearchConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/MappingElasticsearchConverter.html deleted file mode 100644 index 60000aac..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/class-use/MappingElasticsearchConverter.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter

-
-No usage of org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-frame.html deleted file mode 100644 index 8a810a55..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-frame.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.convert (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.core.convert - - - - -
-Interfaces  - -
-ElasticsearchConverter
- - - - - - -
-Classes  - -
-DateTimeConverters -
-MappingElasticsearchConverter
- - - - - - -
-Enums  - -
-DateTimeConverters.JavaDateConverter -
-DateTimeConverters.JodaDateTimeConverter -
-DateTimeConverters.JodaLocalDateTimeConverter
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-summary.html deleted file mode 100644 index 2c228aa9..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-summary.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.convert (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.core.convert -

- - - - - - - - - -
-Interface Summary
ElasticsearchConverter 
-  - -

- - - - - - - - - - - - - -
-Class Summary
DateTimeConverters 
MappingElasticsearchConverter 
-  - -

- - - - - - - - - - - - - - - - - -
-Enum Summary
DateTimeConverters.JavaDateConverter 
DateTimeConverters.JodaDateTimeConverter 
DateTimeConverters.JodaLocalDateTimeConverter 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-tree.html deleted file mode 100644 index 501bcccd..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-tree.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.convert Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.core.convert -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -

-Interface Hierarchy -

- -

-Enum Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-use.html deleted file mode 100644 index d2aafd74..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/convert/package-use.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.core.convert (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.core.convert

-
- - - - - - - - - - - - - -
-Packages that use org.springframework.data.elasticsearch.core.convert
org.springframework.data.elasticsearch.core  
org.springframework.data.elasticsearch.core.convert  
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.convert used by org.springframework.data.elasticsearch.core
ElasticsearchConverter - -
-           
-  -

- - - - - - - - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.convert used by org.springframework.data.elasticsearch.core.convert
DateTimeConverters.JavaDateConverter - -
-           
DateTimeConverters.JodaDateTimeConverter - -
-           
DateTimeConverters.JodaLocalDateTimeConverter - -
-           
ElasticsearchConverter - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.html deleted file mode 100644 index 7e84ce5c..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentEntity.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - -ElasticsearchPersistentEntity (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.mapping -
-Interface ElasticsearchPersistentEntity<T>

-
-
All Superinterfaces:
org.springframework.data.mapping.PersistentEntity<T,ElasticsearchPersistentProperty>
-
-
-
All Known Implementing Classes:
SimpleElasticsearchPersistentEntity
-
-
-
-
public interface ElasticsearchPersistentEntity<T>
extends org.springframework.data.mapping.PersistentEntity<T,ElasticsearchPersistentProperty>
- - -

-


- -

- - - - - - - - - - - - - - - - -
-Method Summary
- StringgetIndexName() - -
-           
- StringgetIndexType() - -
-           
- - - - - - - -
Methods inherited from interface org.springframework.data.mapping.PersistentEntity
doWithAssociations, doWithProperties, getIdProperty, getName, getPersistenceConstructor, getPersistentProperty, getType, getTypeAlias, getTypeInformation, isConstructorArgument, isIdProperty
-  -

- - - - - - - - -
-Method Detail
- -

-getIndexName

-
-String getIndexName()
-
-
-
-
-
-
-
-
-
- -

-getIndexType

-
-String getIndexType()
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentProperty.PropertyToFieldNameConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentProperty.PropertyToFieldNameConverter.html deleted file mode 100644 index 96ef6e75..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentProperty.PropertyToFieldNameConverter.html +++ /dev/null @@ -1,338 +0,0 @@ - - - - - - - -ElasticsearchPersistentProperty.PropertyToFieldNameConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.mapping -
-Enum ElasticsearchPersistentProperty.PropertyToFieldNameConverter

-
-java.lang.Object
-  extended by java.lang.Enum<ElasticsearchPersistentProperty.PropertyToFieldNameConverter>
-      extended by org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty.PropertyToFieldNameConverter
-
-
-
All Implemented Interfaces:
Serializable, Comparable<ElasticsearchPersistentProperty.PropertyToFieldNameConverter>, Converter<ElasticsearchPersistentProperty,String>
-
-
-
Enclosing interface:
ElasticsearchPersistentProperty
-
-
-
-
public static enum ElasticsearchPersistentProperty.PropertyToFieldNameConverter
extends Enum<ElasticsearchPersistentProperty.PropertyToFieldNameConverter>
implements Converter<ElasticsearchPersistentProperty,String>
- - -

-


- -

- - - - - - - - - - -
-Enum Constant Summary
INSTANCE - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
- Stringconvert(ElasticsearchPersistentProperty source) - -
-           
-static ElasticsearchPersistentProperty.PropertyToFieldNameConvertervalueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static ElasticsearchPersistentProperty.PropertyToFieldNameConverter[]values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
- - - - - - - -
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
- - - - - - - -
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Enum Constant Detail
- -

-INSTANCE

-
-public static final ElasticsearchPersistentProperty.PropertyToFieldNameConverter INSTANCE
-
-
-
-
- - - - - - - - -
-Method Detail
- -

-values

-
-public static ElasticsearchPersistentProperty.PropertyToFieldNameConverter[] values()
-
-
Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
-for (ElasticsearchPersistentProperty.PropertyToFieldNameConverter c : ElasticsearchPersistentProperty.PropertyToFieldNameConverter.values())
-    System.out.println(c);
-
-

-

-
-
-
- -
Returns:
an array containing the constants of this enum type, in -the order they are declared
-
-
-
- -

-valueOf

-
-public static ElasticsearchPersistentProperty.PropertyToFieldNameConverter valueOf(String name)
-
-
Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.) -

-

-
-
-
-
Parameters:
name - the name of the enum constant to be returned. -
Returns:
the enum constant with the specified name -
Throws: -
IllegalArgumentException - if this enum type has no constant -with the specified name -
NullPointerException - if the argument is null
-
-
-
- -

-convert

-
-public String convert(ElasticsearchPersistentProperty source)
-
-
-
Specified by:
convert in interface Converter<ElasticsearchPersistentProperty,String>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentProperty.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentProperty.html deleted file mode 100644 index 1030b7f6..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/ElasticsearchPersistentProperty.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - -ElasticsearchPersistentProperty (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.mapping -
-Interface ElasticsearchPersistentProperty

-
-
All Superinterfaces:
org.springframework.data.mapping.PersistentProperty<ElasticsearchPersistentProperty>
-
-
-
All Known Implementing Classes:
SimpleElasticsearchPersistentProperty
-
-
-
-
public interface ElasticsearchPersistentProperty
extends org.springframework.data.mapping.PersistentProperty<ElasticsearchPersistentProperty>
- - -

-


- -

- - - - - - - - - - - -
-Nested Class Summary
-static classElasticsearchPersistentProperty.PropertyToFieldNameConverter - -
-           
-  - - - - - - - - - - - -
-Method Summary
- StringgetFieldName() - -
-           
- - - - - - - -
Methods inherited from interface org.springframework.data.mapping.PersistentProperty
getAssociation, getComponentType, getField, getGetter, getMapValueType, getName, getOwner, getPersistentEntityType, getRawType, getSetter, getSpelExpression, getType, getTypeInformation, isArray, isAssociation, isCollectionLike, isEntity, isIdProperty, isMap, isTransient, shallBePersisted
-  -

- - - - - - - - -
-Method Detail
- -

-getFieldName

-
-String getFieldName()
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchMappingContext.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchMappingContext.html deleted file mode 100644 index b14d3ea2..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchMappingContext.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - - -SimpleElasticsearchMappingContext (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.mapping -
-Class SimpleElasticsearchMappingContext

-
-java.lang.Object
-  extended by org.springframework.data.mapping.context.AbstractMappingContext<SimpleElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>
-      extended by org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext
-
-
-
All Implemented Interfaces:
EventListener, Aware, ApplicationContextAware, ApplicationEventPublisherAware, ApplicationListener<ContextRefreshedEvent>, org.springframework.data.mapping.context.MappingContext<SimpleElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>
-
-
-
-
public class SimpleElasticsearchMappingContext
extends org.springframework.data.mapping.context.AbstractMappingContext<SimpleElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
SimpleElasticsearchMappingContext() - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
-protected - - - - -
-<T> SimpleElasticsearchPersistentEntity<?>
-
createPersistentEntity(org.springframework.data.util.TypeInformation<T> typeInformation) - -
-           
-protected  ElasticsearchPersistentPropertycreatePersistentProperty(Field field, - PropertyDescriptor descriptor, - SimpleElasticsearchPersistentEntity<?> owner, - org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.mapping.context.AbstractMappingContext
addPersistentEntity, addPersistentEntity, getPersistentEntities, getPersistentEntity, getPersistentEntity, getPersistentEntity, getPersistentPropertyPath, initialize, onApplicationEvent, setApplicationContext, setApplicationEventPublisher, setInitialEntitySet, setSimpleTypeHolder, setStrict, shouldCreatePersistentEntityFor
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-SimpleElasticsearchMappingContext

-
-public SimpleElasticsearchMappingContext()
-
-
- - - - - - - - -
-Method Detail
- -

-createPersistentEntity

-
-protected <T> SimpleElasticsearchPersistentEntity<?> createPersistentEntity(org.springframework.data.util.TypeInformation<T> typeInformation)
-
-
-
Specified by:
createPersistentEntity in class org.springframework.data.mapping.context.AbstractMappingContext<SimpleElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>
-
-
-
-
-
-
- -

-createPersistentProperty

-
-protected ElasticsearchPersistentProperty createPersistentProperty(Field field,
-                                                                   PropertyDescriptor descriptor,
-                                                                   SimpleElasticsearchPersistentEntity<?> owner,
-                                                                   org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder)
-
-
-
Specified by:
createPersistentProperty in class org.springframework.data.mapping.context.AbstractMappingContext<SimpleElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntity.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntity.html deleted file mode 100644 index 70f3cb77..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentEntity.html +++ /dev/null @@ -1,331 +0,0 @@ - - - - - - - -SimpleElasticsearchPersistentEntity (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.mapping -
-Class SimpleElasticsearchPersistentEntity<T>

-
-java.lang.Object
-  extended by org.springframework.data.mapping.model.BasicPersistentEntity<T,ElasticsearchPersistentProperty>
-      extended by org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentEntity<T>
-
-
-
Type Parameters:
T -
-
-
All Implemented Interfaces:
Aware, ApplicationContextAware, ElasticsearchPersistentEntity<T>, org.springframework.data.mapping.model.MutablePersistentEntity<T,ElasticsearchPersistentProperty>, org.springframework.data.mapping.PersistentEntity<T,ElasticsearchPersistentProperty>
-
-
-
-
public class SimpleElasticsearchPersistentEntity<T>
extends org.springframework.data.mapping.model.BasicPersistentEntity<T,ElasticsearchPersistentProperty>
implements ElasticsearchPersistentEntity<T>, ApplicationContextAware
- - -

-Elasticsearch specific PersistentEntity implementation holding -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
SimpleElasticsearchPersistentEntity(org.springframework.data.util.TypeInformation<T> typeInformation) - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
- StringgetIndexName() - -
-           
- StringgetIndexType() - -
-           
- voidsetApplicationContext(ApplicationContext applicationContext) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.mapping.model.BasicPersistentEntity
addAssociation, addPersistentProperty, doWithAssociations, doWithProperties, getIdProperty, getName, getPersistenceConstructor, getPersistentProperty, getType, getTypeAlias, getTypeInformation, isConstructorArgument, isIdProperty, verify
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- - - - - - - -
Methods inherited from interface org.springframework.data.mapping.PersistentEntity
doWithAssociations, doWithProperties, getIdProperty, getName, getPersistenceConstructor, getPersistentProperty, getType, getTypeAlias, getTypeInformation, isConstructorArgument, isIdProperty
-  -

- - - - - - - - -
-Constructor Detail
- -

-SimpleElasticsearchPersistentEntity

-
-public SimpleElasticsearchPersistentEntity(org.springframework.data.util.TypeInformation<T> typeInformation)
-
-
- - - - - - - - -
-Method Detail
- -

-setApplicationContext

-
-public void setApplicationContext(ApplicationContext applicationContext)
-                           throws BeansException
-
-
-
Specified by:
setApplicationContext in interface ApplicationContextAware
-
-
- -
Throws: -
BeansException
-
-
-
- -

-getIndexName

-
-public String getIndexName()
-
-
-
Specified by:
getIndexName in interface ElasticsearchPersistentEntity<T>
-
-
-
-
-
-
- -

-getIndexType

-
-public String getIndexType()
-
-
-
Specified by:
getIndexType in interface ElasticsearchPersistentEntity<T>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentProperty.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentProperty.html deleted file mode 100644 index ea43f9c7..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/SimpleElasticsearchPersistentProperty.html +++ /dev/null @@ -1,379 +0,0 @@ - - - - - - - -SimpleElasticsearchPersistentProperty (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.mapping -
-Class SimpleElasticsearchPersistentProperty

-
-java.lang.Object
-  extended by org.springframework.data.mapping.model.AbstractPersistentProperty<P>
-      extended by org.springframework.data.mapping.model.AnnotationBasedPersistentProperty<ElasticsearchPersistentProperty>
-          extended by org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentProperty
-
-
-
All Implemented Interfaces:
ElasticsearchPersistentProperty, org.springframework.data.mapping.PersistentProperty<ElasticsearchPersistentProperty>
-
-
-
-
public class SimpleElasticsearchPersistentProperty
extends org.springframework.data.mapping.model.AnnotationBasedPersistentProperty<ElasticsearchPersistentProperty>
implements ElasticsearchPersistentProperty
- - -

-Elasticsearch specific PersistentProperty implementation processing -

- -

-


- -

- - - - - - - -
-Nested Class Summary
- - - - - - - -
Nested classes/interfaces inherited from interface org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty
ElasticsearchPersistentProperty.PropertyToFieldNameConverter
-  - - - - - - - -
-Field Summary
- - - - - - - -
Fields inherited from class org.springframework.data.mapping.model.AbstractPersistentProperty
association, field, information, name, owner, propertyDescriptor, rawType
-  - - - - - - - - - - -
-Constructor Summary
SimpleElasticsearchPersistentProperty(Field field, - PropertyDescriptor propertyDescriptor, - org.springframework.data.mapping.PersistentEntity<?,ElasticsearchPersistentProperty> owner, - org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder) - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
-protected  org.springframework.data.mapping.Association<ElasticsearchPersistentProperty>createAssociation() - -
-           
- StringgetFieldName() - -
-           
- booleanisIdProperty() - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.mapping.model.AnnotationBasedPersistentProperty
getSpelExpression, isAssociation, isTransient
- - - - - - - -
Methods inherited from class org.springframework.data.mapping.model.AbstractPersistentProperty
equals, getAssociation, getComponentType, getField, getGetter, getMapValueType, getName, getOwner, getPersistentEntityType, getRawType, getSetter, getType, getTypeInformation, hashCode, isArray, isCollectionLike, isEntity, isMap, shallBePersisted
- - - - - - - -
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
- - - - - - - -
Methods inherited from interface org.springframework.data.mapping.PersistentProperty
getAssociation, getComponentType, getField, getGetter, getMapValueType, getName, getOwner, getPersistentEntityType, getRawType, getSetter, getSpelExpression, getType, getTypeInformation, isArray, isAssociation, isCollectionLike, isEntity, isMap, isTransient, shallBePersisted
-  -

- - - - - - - - -
-Constructor Detail
- -

-SimpleElasticsearchPersistentProperty

-
-public SimpleElasticsearchPersistentProperty(Field field,
-                                             PropertyDescriptor propertyDescriptor,
-                                             org.springframework.data.mapping.PersistentEntity<?,ElasticsearchPersistentProperty> owner,
-                                             org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder)
-
-
- - - - - - - - -
-Method Detail
- -

-getFieldName

-
-public String getFieldName()
-
-
-
Specified by:
getFieldName in interface ElasticsearchPersistentProperty
-
-
-
-
-
-
- -

-isIdProperty

-
-public boolean isIdProperty()
-
-
-
Specified by:
isIdProperty in interface org.springframework.data.mapping.PersistentProperty<ElasticsearchPersistentProperty>
Overrides:
isIdProperty in class org.springframework.data.mapping.model.AnnotationBasedPersistentProperty<ElasticsearchPersistentProperty>
-
-
-
-
-
-
- -

-createAssociation

-
-protected org.springframework.data.mapping.Association<ElasticsearchPersistentProperty> createAssociation()
-
-
-
Specified by:
createAssociation in class org.springframework.data.mapping.model.AbstractPersistentProperty<ElasticsearchPersistentProperty>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentEntity.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentEntity.html deleted file mode 100644 index ec5883a6..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentEntity.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity

-
- - - - - - - - - - - - - - - - - -
-Packages that use ElasticsearchPersistentEntity
org.springframework.data.elasticsearch.core.convert  
org.springframework.data.elasticsearch.core.mapping  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - -
-Uses of ElasticsearchPersistentEntity in org.springframework.data.elasticsearch.core.convert
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.convert that return types with arguments of type ElasticsearchPersistentEntity
- org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>MappingElasticsearchConverter.getMappingContext() - -
-           
- org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>ElasticsearchConverter.getMappingContext() - -
-          Returns the underlying MappingContext used by the converter.
-  -

- - - - - - - - -
Constructor parameters in org.springframework.data.elasticsearch.core.convert with type arguments of type ElasticsearchPersistentEntity
MappingElasticsearchConverter(org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext) - -
-           
-  -

- - - - - -
-Uses of ElasticsearchPersistentEntity in org.springframework.data.elasticsearch.core.mapping
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.core.mapping that implement ElasticsearchPersistentEntity
- classSimpleElasticsearchPersistentEntity<T> - -
-          Elasticsearch specific PersistentEntity implementation holding
-  -

- - - - - -
-Uses of ElasticsearchPersistentEntity in org.springframework.data.elasticsearch.repository.support
-  -

- - - - - - - - - - - -
Constructors in org.springframework.data.elasticsearch.repository.support with parameters of type ElasticsearchPersistentEntity
MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T> entity) - -
-           
MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T> entity, - String indexName, - String type) - -
-           
-  -

- - - - - - - - -
Constructor parameters in org.springframework.data.elasticsearch.repository.support with type arguments of type ElasticsearchPersistentEntity
ElasticsearchEntityInformationCreatorImpl(org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentProperty.PropertyToFieldNameConverter.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentProperty.PropertyToFieldNameConverter.html deleted file mode 100644 index 14781285..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentProperty.PropertyToFieldNameConverter.html +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty.PropertyToFieldNameConverter (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty.PropertyToFieldNameConverter

-
- - - - - - - - - -
-Packages that use ElasticsearchPersistentProperty.PropertyToFieldNameConverter
org.springframework.data.elasticsearch.core.mapping  
-  -

- - - - - -
-Uses of ElasticsearchPersistentProperty.PropertyToFieldNameConverter in org.springframework.data.elasticsearch.core.mapping
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.mapping that return ElasticsearchPersistentProperty.PropertyToFieldNameConverter
-static ElasticsearchPersistentProperty.PropertyToFieldNameConverterElasticsearchPersistentProperty.PropertyToFieldNameConverter.valueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static ElasticsearchPersistentProperty.PropertyToFieldNameConverter[]ElasticsearchPersistentProperty.PropertyToFieldNameConverter.values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentProperty.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentProperty.html deleted file mode 100644 index 99da42ae..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/ElasticsearchPersistentProperty.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty

-
- - - - - - - - - - - - - - - - - - - - - -
-Packages that use ElasticsearchPersistentProperty
org.springframework.data.elasticsearch.core.convert  
org.springframework.data.elasticsearch.core.mapping  
org.springframework.data.elasticsearch.repository.query.parser  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - -
-Uses of ElasticsearchPersistentProperty in org.springframework.data.elasticsearch.core.convert
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.convert that return types with arguments of type ElasticsearchPersistentProperty
- org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>MappingElasticsearchConverter.getMappingContext() - -
-           
- org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty>ElasticsearchConverter.getMappingContext() - -
-          Returns the underlying MappingContext used by the converter.
-  -

- - - - - - - - -
Constructor parameters in org.springframework.data.elasticsearch.core.convert with type arguments of type ElasticsearchPersistentProperty
MappingElasticsearchConverter(org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext) - -
-           
-  -

- - - - - -
-Uses of ElasticsearchPersistentProperty in org.springframework.data.elasticsearch.core.mapping
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.core.mapping that implement ElasticsearchPersistentProperty
- classSimpleElasticsearchPersistentProperty - -
-          Elasticsearch specific PersistentProperty implementation processing
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.mapping that return ElasticsearchPersistentProperty
-protected  ElasticsearchPersistentPropertySimpleElasticsearchMappingContext.createPersistentProperty(Field field, - PropertyDescriptor descriptor, - SimpleElasticsearchPersistentEntity<?> owner, - org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder) - -
-           
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.mapping that return types with arguments of type ElasticsearchPersistentProperty
-protected  org.springframework.data.mapping.Association<ElasticsearchPersistentProperty>SimpleElasticsearchPersistentProperty.createAssociation() - -
-           
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.mapping with parameters of type ElasticsearchPersistentProperty
- StringElasticsearchPersistentProperty.PropertyToFieldNameConverter.convert(ElasticsearchPersistentProperty source) - -
-           
-  -

- - - - - - - - -
Constructor parameters in org.springframework.data.elasticsearch.core.mapping with type arguments of type ElasticsearchPersistentProperty
SimpleElasticsearchPersistentProperty(Field field, - PropertyDescriptor propertyDescriptor, - org.springframework.data.mapping.PersistentEntity<?,ElasticsearchPersistentProperty> owner, - org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder) - -
-           
-  -

- - - - - -
-Uses of ElasticsearchPersistentProperty in org.springframework.data.elasticsearch.repository.query.parser
-  -

- - - - - - - - - - - -
Constructor parameters in org.springframework.data.elasticsearch.repository.query.parser with type arguments of type ElasticsearchPersistentProperty
ElasticsearchQueryCreator(org.springframework.data.repository.query.parser.PartTree tree, - org.springframework.data.mapping.context.MappingContext<?,ElasticsearchPersistentProperty> context) - -
-           
ElasticsearchQueryCreator(org.springframework.data.repository.query.parser.PartTree tree, - org.springframework.data.repository.query.ParameterAccessor parameters, - org.springframework.data.mapping.context.MappingContext<?,ElasticsearchPersistentProperty> context) - -
-           
-  -

- - - - - -
-Uses of ElasticsearchPersistentProperty in org.springframework.data.elasticsearch.repository.support
-  -

- - - - - - - - -
Constructor parameters in org.springframework.data.elasticsearch.repository.support with type arguments of type ElasticsearchPersistentProperty
ElasticsearchEntityInformationCreatorImpl(org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchMappingContext.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchMappingContext.html deleted file mode 100644 index 50b20002..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchMappingContext.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext

-
-No usage of org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchPersistentEntity.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchPersistentEntity.html deleted file mode 100644 index 849ea852..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchPersistentEntity.html +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentEntity (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentEntity

-
- - - - - - - - - -
-Packages that use SimpleElasticsearchPersistentEntity
org.springframework.data.elasticsearch.core.mapping  
-  -

- - - - - -
-Uses of SimpleElasticsearchPersistentEntity in org.springframework.data.elasticsearch.core.mapping
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.mapping that return SimpleElasticsearchPersistentEntity
-protected - - - - -
-<T> SimpleElasticsearchPersistentEntity<?>
-
SimpleElasticsearchMappingContext.createPersistentEntity(org.springframework.data.util.TypeInformation<T> typeInformation) - -
-           
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.mapping with parameters of type SimpleElasticsearchPersistentEntity
-protected  ElasticsearchPersistentPropertySimpleElasticsearchMappingContext.createPersistentProperty(Field field, - PropertyDescriptor descriptor, - SimpleElasticsearchPersistentEntity<?> owner, - org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchPersistentProperty.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchPersistentProperty.html deleted file mode 100644 index 35b12da3..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/class-use/SimpleElasticsearchPersistentProperty.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentProperty (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentProperty

-
-No usage of org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchPersistentProperty -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-frame.html deleted file mode 100644 index 1206680b..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-frame.html +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.mapping (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.core.mapping - - - - -
-Interfaces  - -
-ElasticsearchPersistentEntity -
-ElasticsearchPersistentProperty
- - - - - - -
-Classes  - -
-SimpleElasticsearchMappingContext -
-SimpleElasticsearchPersistentEntity -
-SimpleElasticsearchPersistentProperty
- - - - - - -
-Enums  - -
-ElasticsearchPersistentProperty.PropertyToFieldNameConverter
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-summary.html deleted file mode 100644 index 54125396..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-summary.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.mapping (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.core.mapping -

- - - - - - - - - - - - - -
-Interface Summary
ElasticsearchPersistentEntity<T> 
ElasticsearchPersistentProperty 
-  - -

- - - - - - - - - - - - - - - - - -
-Class Summary
SimpleElasticsearchMappingContext 
SimpleElasticsearchPersistentEntity<T>Elasticsearch specific PersistentEntity implementation holding
SimpleElasticsearchPersistentPropertyElasticsearch specific PersistentProperty implementation processing
-  - -

- - - - - - - - - -
-Enum Summary
ElasticsearchPersistentProperty.PropertyToFieldNameConverter 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-tree.html deleted file mode 100644 index bb13ee0e..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-tree.html +++ /dev/null @@ -1,187 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.mapping Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.core.mapping -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -

-Interface Hierarchy -

- -

-Enum Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-use.html deleted file mode 100644 index da89b3cf..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/mapping/package-use.html +++ /dev/null @@ -1,258 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.core.mapping (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.core.mapping

-
- - - - - - - - - - - - - - - - - - - - - -
-Packages that use org.springframework.data.elasticsearch.core.mapping
org.springframework.data.elasticsearch.core.convert  
org.springframework.data.elasticsearch.core.mapping  
org.springframework.data.elasticsearch.repository.query.parser  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.mapping used by org.springframework.data.elasticsearch.core.convert
ElasticsearchPersistentEntity - -
-           
ElasticsearchPersistentProperty - -
-           
-  -

- - - - - - - - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.mapping used by org.springframework.data.elasticsearch.core.mapping
ElasticsearchPersistentEntity - -
-           
ElasticsearchPersistentProperty - -
-           
ElasticsearchPersistentProperty.PropertyToFieldNameConverter - -
-           
SimpleElasticsearchPersistentEntity - -
-          Elasticsearch specific PersistentEntity implementation holding
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.mapping used by org.springframework.data.elasticsearch.repository.query.parser
ElasticsearchPersistentProperty - -
-           
-  -

- - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.mapping used by org.springframework.data.elasticsearch.repository.support
ElasticsearchPersistentEntity - -
-           
ElasticsearchPersistentProperty - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/core/package-frame.html deleted file mode 100644 index deef7cff..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/package-frame.html +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.core - - - - -
-Interfaces  - -
-ElasticsearchOperations -
-ResultsMapper
- - - - - - -
-Classes  - -
-ElasticsearchTemplate
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/core/package-summary.html deleted file mode 100644 index 662326f8..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/package-summary.html +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.core -

- - - - - - - - - - - - - -
-Interface Summary
ElasticsearchOperations 
ResultsMapper<T> 
-  - -

- - - - - - - - - -
-Class Summary
ElasticsearchTemplate 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/core/package-tree.html deleted file mode 100644 index cb61d6c8..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/package-tree.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.core -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -

-Interface Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/core/package-use.html deleted file mode 100644 index eb7359cf..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/package-use.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.core (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.core

-
- - - - - - - - - - - - - - - - - - - - - -
-Packages that use org.springframework.data.elasticsearch.core
org.springframework.data.elasticsearch.core  
org.springframework.data.elasticsearch.repository.cdi  
org.springframework.data.elasticsearch.repository.query  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core used by org.springframework.data.elasticsearch.core
ElasticsearchOperations - -
-           
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core used by org.springframework.data.elasticsearch.repository.cdi
ElasticsearchOperations - -
-           
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core used by org.springframework.data.elasticsearch.repository.query
ElasticsearchOperations - -
-           
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core used by org.springframework.data.elasticsearch.repository.support
ElasticsearchOperations - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.CriteriaEntry.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.CriteriaEntry.html deleted file mode 100644 index 284cbc28..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.CriteriaEntry.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - - - - -Criteria.CriteriaEntry (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class Criteria.CriteriaEntry

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.Criteria.CriteriaEntry
-
-
-
Enclosing class:
Criteria
-
-
-
-
public static class Criteria.CriteriaEntry
extends Object
- - -

-


- -

- - - - - - - - - - - - - - - - -
-Method Summary
- Criteria.OperationKeygetKey() - -
-           
- ObjectgetValue() - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Method Detail
- -

-getKey

-
-public Criteria.OperationKey getKey()
-
-
-
-
-
-
- -

-getValue

-
-public Object getValue()
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.OperationKey.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.OperationKey.html deleted file mode 100644 index 52b92a06..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.OperationKey.html +++ /dev/null @@ -1,406 +0,0 @@ - - - - - - - -Criteria.OperationKey (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Enum Criteria.OperationKey

-
-java.lang.Object
-  extended by java.lang.Enum<Criteria.OperationKey>
-      extended by org.springframework.data.elasticsearch.core.query.Criteria.OperationKey
-
-
-
All Implemented Interfaces:
Serializable, Comparable<Criteria.OperationKey>
-
-
-
Enclosing class:
Criteria
-
-
-
-
public static enum Criteria.OperationKey
extends Enum<Criteria.OperationKey>
- - -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Enum Constant Summary
BETWEEN - -
-           
CONTAINS - -
-           
ENDS_WITH - -
-           
EQUALS - -
-           
EXPRESSION - -
-           
FUZZY - -
-           
STARTS_WITH - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
-static Criteria.OperationKeyvalueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static Criteria.OperationKey[]values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
- - - - - - - -
Methods inherited from class java.lang.Enum
clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
- - - - - - - -
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Enum Constant Detail
- -

-EQUALS

-
-public static final Criteria.OperationKey EQUALS
-
-
-
-
-
- -

-CONTAINS

-
-public static final Criteria.OperationKey CONTAINS
-
-
-
-
-
- -

-STARTS_WITH

-
-public static final Criteria.OperationKey STARTS_WITH
-
-
-
-
-
- -

-ENDS_WITH

-
-public static final Criteria.OperationKey ENDS_WITH
-
-
-
-
-
- -

-EXPRESSION

-
-public static final Criteria.OperationKey EXPRESSION
-
-
-
-
-
- -

-BETWEEN

-
-public static final Criteria.OperationKey BETWEEN
-
-
-
-
-
- -

-FUZZY

-
-public static final Criteria.OperationKey FUZZY
-
-
-
-
- - - - - - - - -
-Method Detail
- -

-values

-
-public static Criteria.OperationKey[] values()
-
-
Returns an array containing the constants of this enum type, in -the order they are declared. This method may be used to iterate -over the constants as follows: -
-for (Criteria.OperationKey c : Criteria.OperationKey.values())
-    System.out.println(c);
-
-

-

- -
Returns:
an array containing the constants of this enum type, in -the order they are declared
-
-
-
- -

-valueOf

-
-public static Criteria.OperationKey valueOf(String name)
-
-
Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.) -

-

-
Parameters:
name - the name of the enum constant to be returned. -
Returns:
the enum constant with the specified name -
Throws: -
IllegalArgumentException - if this enum type has no constant -with the specified name -
NullPointerException - if the argument is null
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.html deleted file mode 100644 index 77755446..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/Criteria.html +++ /dev/null @@ -1,1044 +0,0 @@ - - - - - - - -Criteria (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class Criteria

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.Criteria
-
-
-
-
public class Criteria
extends Object
- - -

-Criteria is the central class when constructing queries. It follows more or less a fluent API style, which allows to - easily chain together multiple criteria. -

- -

-


- -

- - - - - - - - - - - - - - - -
-Nested Class Summary
-static classCriteria.CriteriaEntry - -
-           
-static classCriteria.OperationKey - -
-           
- - - - - - - - - - - - - - -
-Field Summary
-static StringCRITERIA_VALUE_SEPERATOR - -
-           
-static StringWILDCARD - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Constructor Summary
- Criteria() - -
-           
- Criteria(Field field) - -
-          Creates a new Criteria for the given field
-protected Criteria(List<Criteria> criteriaChain, - Field field) - -
-           
-protected Criteria(List<Criteria> criteriaChain, - String fieldname) - -
-           
- Criteria(String fieldname) - -
-          Creates a new CriterSimpleFieldia for the Filed with provided name
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- Criteriaand(Criteria... criterias) - -
-          Chain using AND
- Criteriaand(Criteria criteria) - -
-          Chain using AND
- Criteriaand(Field field) - -
-          Chain using AND
- Criteriaand(String fieldName) - -
-          Chain using AND
- Criteriabetween(Object lowerBound, - Object upperBound) - -
-          Crates new CriteriaEntry for RANGE [lowerBound TO upperBound]
- Criteriaboost(float boost) - -
-          Boost positive hit with given factor. eg. ^2.3
- Criteriacontains(String s) - -
-          Crates new CriteriaEntry with leading and trailing wildcards
- NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow.
- CriteriaendsWith(String s) - -
-          Crates new CriteriaEntry with leading wildcard
- NOTE: mind your schema and execution times as leading wildcards may not be supported.
- Criteriaexpression(String s) - -
-          Crates new CriteriaEntry allowing native elasticsearch expressions
- Criteriafuzzy(String s) - -
-          Crates new CriteriaEntry with trailing ~
- floatgetBoost() - -
-           
- StringgetConjunctionOperator() - -
-          Conjunction to be used with this criteria (AND | OR)
- List<Criteria>getCriteriaChain() - -
-           
- Set<Criteria.CriteriaEntry>getCriteriaEntries() - -
-           
- FieldgetField() - -
-          Field targeted by this Criteria
- CriteriagreaterThanEqual(Object lowerBound) - -
-          Crates new CriteriaEntry for RANGE [lowerBound TO *]
- Criteriain(Iterable<?> values) - -
-          Crates new CriteriaEntry for multiple values (arg0 arg1 arg2 ...)
- Criteriain(Object... values) - -
-          Crates new CriteriaEntry for multiple values (arg0 arg1 arg2 ...)
- Criteriais(Object o) - -
-          Crates new CriteriaEntry without any wildcards
- booleanisAnd() - -
-           
- booleanisNegating() - -
-           
- booleanisOr() - -
-           
- CriterialessThanEqual(Object upperBound) - -
-          Crates new CriteriaEntry for RANGE [* TO upperBound]
- Criterianot() - -
-          Crates new CriteriaEntry with trailing -
- Criteriaor(Criteria criteria) - -
-          Chain using OR
- Criteriaor(Field field) - -
-          Chain using OR
- Criteriaor(String fieldName) - -
-          Chain using OR
- CriteriastartsWith(String s) - -
-          Crates new CriteriaEntry with trailing wildcard
-static Criteriawhere(Field field) - -
-          Static factory method to create a new Criteria for provided field
-static Criteriawhere(String field) - -
-          Static factory method to create a new Criteria for field with given name
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-WILDCARD

-
-public static final String WILDCARD
-
-
-
See Also:
Constant Field Values
-
-
- -

-CRITERIA_VALUE_SEPERATOR

-
-public static final String CRITERIA_VALUE_SEPERATOR
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Constructor Detail
- -

-Criteria

-
-public Criteria()
-
-
-
- -

-Criteria

-
-public Criteria(String fieldname)
-
-
Creates a new CriterSimpleFieldia for the Filed with provided name -

-

-
Parameters:
fieldname -
-
-
- -

-Criteria

-
-public Criteria(Field field)
-
-
Creates a new Criteria for the given field -

-

-
Parameters:
field -
-
-
- -

-Criteria

-
-protected Criteria(List<Criteria> criteriaChain,
-                   String fieldname)
-
-
-
- -

-Criteria

-
-protected Criteria(List<Criteria> criteriaChain,
-                   Field field)
-
-
- - - - - - - - -
-Method Detail
- -

-where

-
-public static Criteria where(String field)
-
-
Static factory method to create a new Criteria for field with given name -

-

-
Parameters:
field - -
Returns:
-
-
-
- -

-where

-
-public static Criteria where(Field field)
-
-
Static factory method to create a new Criteria for provided field -

-

-
Parameters:
field - -
Returns:
-
-
-
- -

-and

-
-public Criteria and(Field field)
-
-
Chain using AND -

-

-
Parameters:
field - -
Returns:
-
-
-
- -

-and

-
-public Criteria and(String fieldName)
-
-
Chain using AND -

-

-
Parameters:
fieldName - -
Returns:
-
-
-
- -

-and

-
-public Criteria and(Criteria criteria)
-
-
Chain using AND -

-

-
Parameters:
criteria - -
Returns:
-
-
-
- -

-and

-
-public Criteria and(Criteria... criterias)
-
-
Chain using AND -

-

-
Parameters:
criterias - -
Returns:
-
-
-
- -

-or

-
-public Criteria or(Field field)
-
-
Chain using OR -

-

-
Parameters:
field - -
Returns:
-
-
-
- -

-or

-
-public Criteria or(Criteria criteria)
-
-
Chain using OR -

-

-
Parameters:
criteria - -
Returns:
-
-
-
- -

-or

-
-public Criteria or(String fieldName)
-
-
Chain using OR -

-

-
Parameters:
fieldName - -
Returns:
-
-
-
- -

-is

-
-public Criteria is(Object o)
-
-
Crates new CriteriaEntry without any wildcards -

-

-
Parameters:
o - -
Returns:
-
-
-
- -

-contains

-
-public Criteria contains(String s)
-
-
Crates new CriteriaEntry with leading and trailing wildcards
- NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow. -

-

-
Parameters:
s - -
Returns:
-
-
-
- -

-startsWith

-
-public Criteria startsWith(String s)
-
-
Crates new CriteriaEntry with trailing wildcard -

-

-
Parameters:
s - -
Returns:
-
-
-
- -

-endsWith

-
-public Criteria endsWith(String s)
-
-
Crates new CriteriaEntry with leading wildcard
- NOTE: mind your schema and execution times as leading wildcards may not be supported. -

-

-
Parameters:
s - -
Returns:
-
-
-
- -

-not

-
-public Criteria not()
-
-
Crates new CriteriaEntry with trailing - -

-

- -
Returns:
-
-
-
- -

-fuzzy

-
-public Criteria fuzzy(String s)
-
-
Crates new CriteriaEntry with trailing ~ -

-

-
Parameters:
s - -
Returns:
-
-
-
- -

-expression

-
-public Criteria expression(String s)
-
-
Crates new CriteriaEntry allowing native elasticsearch expressions -

-

-
Parameters:
s - -
Returns:
-
-
-
- -

-boost

-
-public Criteria boost(float boost)
-
-
Boost positive hit with given factor. eg. ^2.3 -

-

-
Parameters:
boost - -
Returns:
-
-
-
- -

-between

-
-public Criteria between(Object lowerBound,
-                        Object upperBound)
-
-
Crates new CriteriaEntry for RANGE [lowerBound TO upperBound] -

-

-
Parameters:
lowerBound -
upperBound - -
Returns:
-
-
-
- -

-lessThanEqual

-
-public Criteria lessThanEqual(Object upperBound)
-
-
Crates new CriteriaEntry for RANGE [* TO upperBound] -

-

-
Parameters:
upperBound - -
Returns:
-
-
-
- -

-greaterThanEqual

-
-public Criteria greaterThanEqual(Object lowerBound)
-
-
Crates new CriteriaEntry for RANGE [lowerBound TO *] -

-

-
Parameters:
lowerBound - -
Returns:
-
-
-
- -

-in

-
-public Criteria in(Object... values)
-
-
Crates new CriteriaEntry for multiple values (arg0 arg1 arg2 ...) -

-

-
Parameters:
values - -
Returns:
-
-
-
- -

-in

-
-public Criteria in(Iterable<?> values)
-
-
Crates new CriteriaEntry for multiple values (arg0 arg1 arg2 ...) -

-

-
Parameters:
values - the collection containing the values to match against -
Returns:
-
-
-
- -

-getField

-
-public Field getField()
-
-
Field targeted by this Criteria -

-

- -
Returns:
-
-
-
- -

-getCriteriaEntries

-
-public Set<Criteria.CriteriaEntry> getCriteriaEntries()
-
-
-
-
-
-
- -

-getConjunctionOperator

-
-public String getConjunctionOperator()
-
-
Conjunction to be used with this criteria (AND | OR) -

-

- -
Returns:
-
-
-
- -

-getCriteriaChain

-
-public List<Criteria> getCriteriaChain()
-
-
-
-
-
-
- -

-isNegating

-
-public boolean isNegating()
-
-
-
-
-
-
- -

-isAnd

-
-public boolean isAnd()
-
-
-
-
-
-
- -

-isOr

-
-public boolean isOr()
-
-
-
-
-
-
- -

-getBoost

-
-public float getBoost()
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/CriteriaQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/CriteriaQuery.html deleted file mode 100644 index 9b2cf668..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/CriteriaQuery.html +++ /dev/null @@ -1,552 +0,0 @@ - - - - - - - -CriteriaQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class CriteriaQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.CriteriaQuery
-
-
-
All Implemented Interfaces:
Query
-
-
-
-
public class CriteriaQuery
extends Object
implements Query
- - -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-protected  org.springframework.data.domain.Pageablepageable - -
-           
-protected  org.springframework.data.domain.Sortsort - -
-           
- - - - - - - -
Fields inherited from interface org.springframework.data.elasticsearch.core.query.Query
DEFAULT_PAGE_SIZE
-  - - - - - - - - - - - - - -
-Constructor Summary
CriteriaQuery(Criteria criteria) - -
-           
CriteriaQuery(Criteria criteria, - org.springframework.data.domain.Pageable pageable) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- - - - - -
-<T extends CriteriaQuery> -
-T
-
addCriteria(Criteria criteria) - -
-           
- - - - - -
-<T extends Query> -
-T
-
addSort(org.springframework.data.domain.Sort sort) - -
-          Add Sort to query
-static QueryfromQuery(CriteriaQuery source) - -
-           
-static - - - - -
-<T extends CriteriaQuery> -
-T
-
fromQuery(CriteriaQuery source, - T destination) - -
-           
- CriteriagetCriteria() - -
-           
- org.springframework.data.domain.PageablegetPageable() - -
-          Get page settings if defined
- org.springframework.data.domain.SortgetSort() - -
-           
- - - - - -
-<T extends Query> -
-T
-
setPageable(org.springframework.data.domain.Pageable pageable) - -
-          restrict result to entries on given page.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- - - - - - - -
Methods inherited from interface org.springframework.data.elasticsearch.core.query.Query
addSort, getPageable, getSort, setPageable
-  -

- - - - - - - - -
-Field Detail
- -

-pageable

-
-protected org.springframework.data.domain.Pageable pageable
-
-
-
-
-
- -

-sort

-
-protected org.springframework.data.domain.Sort sort
-
-
-
-
- - - - - - - - -
-Constructor Detail
- -

-CriteriaQuery

-
-public CriteriaQuery(Criteria criteria)
-
-
-
- -

-CriteriaQuery

-
-public CriteriaQuery(Criteria criteria,
-                     org.springframework.data.domain.Pageable pageable)
-
-
- - - - - - - - -
-Method Detail
- -

-fromQuery

-
-public static final Query fromQuery(CriteriaQuery source)
-
-
-
-
-
-
-
-
-
- -

-fromQuery

-
-public static <T extends CriteriaQuery> T fromQuery(CriteriaQuery source,
-                                                    T destination)
-
-
-
-
-
-
-
-
-
- -

-addCriteria

-
-public final <T extends CriteriaQuery> T addCriteria(Criteria criteria)
-
-
-
-
-
-
-
-
-
- -

-getCriteria

-
-public Criteria getCriteria()
-
-
-
-
-
-
-
-
-
- -

-getSort

-
-public org.springframework.data.domain.Sort getSort()
-
-
-
Specified by:
getSort in interface Query
-
-
- -
Returns:
null if not set
-
-
-
- -

-getPageable

-
-public org.springframework.data.domain.Pageable getPageable()
-
-
Description copied from interface: Query
-
Get page settings if defined -

-

-
Specified by:
getPageable in interface Query
-
-
- -
Returns:
-
-
-
- -

-setPageable

-
-public final <T extends Query> T setPageable(org.springframework.data.domain.Pageable pageable)
-
-
Description copied from interface: Query
-
restrict result to entries on given page. Corresponds to the 'start' and 'rows' parameter in elasticsearch -

-

-
Specified by:
setPageable in interface Query
-
-
- -
Returns:
-
-
-
- -

-addSort

-
-public final <T extends Query> T addSort(org.springframework.data.domain.Sort sort)
-
-
Description copied from interface: Query
-
Add Sort to query -

-

-
Specified by:
addSort in interface Query
-
-
- -
Returns:
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/DeleteQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/DeleteQuery.html deleted file mode 100644 index afcb778a..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/DeleteQuery.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - -DeleteQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class DeleteQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.DeleteQuery
-
-
-
-
public class DeleteQuery
extends Object
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
DeleteQuery() - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
- org.elasticsearch.index.query.QueryBuildergetElasticsearchQuery() - -
-           
- voidsetElasticsearchQuery(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-DeleteQuery

-
-public DeleteQuery()
-
-
- - - - - - - - -
-Method Detail
- -

-getElasticsearchQuery

-
-public org.elasticsearch.index.query.QueryBuilder getElasticsearchQuery()
-
-
-
-
-
-
- -

-setElasticsearchQuery

-
-public void setElasticsearchQuery(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/Field.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/Field.html deleted file mode 100644 index 52a099f4..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/Field.html +++ /dev/null @@ -1,217 +0,0 @@ - - - - - - - -Field (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Interface Field

-
-
All Known Implementing Classes:
SimpleField
-
-
-
-
public interface Field
- - -

-Defines a Field that can be used within a Criteria. -

- -

-


- -

- - - - - - - - - - - - -
-Method Summary
- StringgetName() - -
-          Get the name of the field used in schema.xml of elasticsearch server
-  -

- - - - - - - - -
-Method Detail
- -

-getName

-
-String getName()
-
-
Get the name of the field used in schema.xml of elasticsearch server -

-

- -
Returns:
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/GetQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/GetQuery.html deleted file mode 100644 index dbdf6255..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/GetQuery.html +++ /dev/null @@ -1,272 +0,0 @@ - - - - - - - -GetQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class GetQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.GetQuery
-
-
-
-
public class GetQuery
extends Object
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
GetQuery() - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
- StringgetId() - -
-           
- voidsetId(String id) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-GetQuery

-
-public GetQuery()
-
-
- - - - - - - - -
-Method Detail
- -

-getId

-
-public String getId()
-
-
-
-
-
-
- -

-setId

-
-public void setId(String id)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/IndexQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/IndexQuery.html deleted file mode 100644 index b472a8cb..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/IndexQuery.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - -IndexQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class IndexQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.IndexQuery
-
-
-
-
public class IndexQuery
extends Object
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
IndexQuery() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- StringgetId() - -
-           
- ObjectgetObject() - -
-           
- voidsetId(String id) - -
-           
- voidsetObject(Object object) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-IndexQuery

-
-public IndexQuery()
-
-
- - - - - - - - -
-Method Detail
- -

-getId

-
-public String getId()
-
-
-
-
-
-
- -

-setId

-
-public void setId(String id)
-
-
-
-
-
-
- -

-getObject

-
-public Object getObject()
-
-
-
-
-
-
- -

-setObject

-
-public void setObject(Object object)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/Query.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/Query.html deleted file mode 100644 index b3df2aa5..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/Query.html +++ /dev/null @@ -1,331 +0,0 @@ - - - - - - - -Query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Interface Query

-
-
All Known Implementing Classes:
CriteriaQuery, SearchQuery, StringQuery
-
-
-
-
public interface Query
- - -

-


- -

- - - - - - - - - - - -
-Field Summary
-static intDEFAULT_PAGE_SIZE - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- - - - - -
-<T extends Query> -
-T
-
addSort(org.springframework.data.domain.Sort sort) - -
-          Add Sort to query
- org.springframework.data.domain.PageablegetPageable() - -
-          Get page settings if defined
- org.springframework.data.domain.SortgetSort() - -
-           
- - - - - -
-<T extends Query> -
-T
-
setPageable(org.springframework.data.domain.Pageable pageable) - -
-          restrict result to entries on given page.
-  -

- - - - - - - - -
-Field Detail
- -

-DEFAULT_PAGE_SIZE

-
-static final int DEFAULT_PAGE_SIZE
-
-
-
See Also:
Constant Field Values
-
- - - - - - - - -
-Method Detail
- -

-setPageable

-
-<T extends Query> T setPageable(org.springframework.data.domain.Pageable pageable)
-
-
restrict result to entries on given page. Corresponds to the 'start' and 'rows' parameter in elasticsearch -

-

-
Parameters:
pageable - -
Returns:
-
-
-
- -

-getPageable

-
-org.springframework.data.domain.Pageable getPageable()
-
-
Get page settings if defined -

-

- -
Returns:
-
-
-
- -

-addSort

-
-<T extends Query> T addSort(org.springframework.data.domain.Sort sort)
-
-
Add Sort to query -

-

-
Parameters:
sort - -
Returns:
-
-
-
- -

-getSort

-
-org.springframework.data.domain.Sort getSort()
-
-
- -
Returns:
null if not set
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/SearchQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/SearchQuery.html deleted file mode 100644 index c5a845ae..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/SearchQuery.html +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - - -SearchQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class SearchQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.SearchQuery
-
-
-
All Implemented Interfaces:
Query
-
-
-
-
public class SearchQuery
extends Object
- - -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-protected  org.springframework.data.domain.Pageablepageable - -
-           
-protected  org.springframework.data.domain.Sortsort - -
-           
- - - - - - - -
Fields inherited from interface org.springframework.data.elasticsearch.core.query.Query
DEFAULT_PAGE_SIZE
-  - - - - - - - - - - -
-Constructor Summary
SearchQuery() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- - - - - -
-<T extends Query> -
-T
-
addSort(org.springframework.data.domain.Sort sort) - -
-          Add Sort to query
- org.elasticsearch.index.query.FilterBuildergetElasticsearchFilter() - -
-           
- org.elasticsearch.index.query.QueryBuildergetElasticsearchQuery() - -
-           
- org.springframework.data.domain.PageablegetPageable() - -
-          Get page settings if defined
- org.springframework.data.domain.SortgetSort() - -
-           
- voidsetElasticsearchFilter(org.elasticsearch.index.query.FilterBuilder elasticsearchFilter) - -
-           
- voidsetElasticsearchQuery(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery) - -
-           
- - - - - -
-<T extends Query> -
-T
-
setPageable(org.springframework.data.domain.Pageable pageable) - -
-          restrict result to entries on given page.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-pageable

-
-protected org.springframework.data.domain.Pageable pageable
-
-
-
-
-
- -

-sort

-
-protected org.springframework.data.domain.Sort sort
-
-
-
-
- - - - - - - - -
-Constructor Detail
- -

-SearchQuery

-
-public SearchQuery()
-
-
- - - - - - - - -
-Method Detail
- -

-getElasticsearchQuery

-
-public org.elasticsearch.index.query.QueryBuilder getElasticsearchQuery()
-
-
-
-
-
-
- -

-setElasticsearchQuery

-
-public void setElasticsearchQuery(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery)
-
-
-
-
-
-
- -

-getElasticsearchFilter

-
-public org.elasticsearch.index.query.FilterBuilder getElasticsearchFilter()
-
-
-
-
-
-
- -

-setElasticsearchFilter

-
-public void setElasticsearchFilter(org.elasticsearch.index.query.FilterBuilder elasticsearchFilter)
-
-
-
-
-
-
- -

-getSort

-
-public org.springframework.data.domain.Sort getSort()
-
-
-
Specified by:
getSort in interface Query
-
-
- -
Returns:
null if not set
-
-
-
- -

-getPageable

-
-public org.springframework.data.domain.Pageable getPageable()
-
-
Description copied from interface: Query
-
Get page settings if defined -

-

-
Specified by:
getPageable in interface Query
-
-
- -
Returns:
-
-
-
- -

-setPageable

-
-public final <T extends Query> T setPageable(org.springframework.data.domain.Pageable pageable)
-
-
Description copied from interface: Query
-
restrict result to entries on given page. Corresponds to the 'start' and 'rows' parameter in elasticsearch -

-

-
Specified by:
setPageable in interface Query
-
-
- -
Returns:
-
-
-
- -

-addSort

-
-public final <T extends Query> T addSort(org.springframework.data.domain.Sort sort)
-
-
Description copied from interface: Query
-
Add Sort to query -

-

-
Specified by:
addSort in interface Query
-
-
- -
Returns:
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/SimpleField.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/SimpleField.html deleted file mode 100644 index ff065584..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/SimpleField.html +++ /dev/null @@ -1,289 +0,0 @@ - - - - - - - -SimpleField (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class SimpleField

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.SimpleField
-
-
-
All Implemented Interfaces:
Field
-
-
-
-
public class SimpleField
extends Object
implements Field
- - -

-The most trivial implementation of a Field -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
SimpleField(String name) - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
- StringgetName() - -
-          Get the name of the field used in schema.xml of elasticsearch server
- StringtoString() - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-SimpleField

-
-public SimpleField(String name)
-
-
- - - - - - - - -
-Method Detail
- -

-getName

-
-public String getName()
-
-
Description copied from interface: Field
-
Get the name of the field used in schema.xml of elasticsearch server -

-

-
Specified by:
getName in interface Field
-
-
- -
Returns:
-
-
-
- -

-toString

-
-public String toString()
-
-
-
Overrides:
toString in class Object
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/StringQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/StringQuery.html deleted file mode 100644 index ef0a1690..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/StringQuery.html +++ /dev/null @@ -1,472 +0,0 @@ - - - - - - - -StringQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.core.query -
-Class StringQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.core.query.StringQuery
-
-
-
All Implemented Interfaces:
Query
-
-
-
-
public class StringQuery
extends Object
- - -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-protected  org.springframework.data.domain.Pageablepageable - -
-           
-protected  org.springframework.data.domain.Sortsort - -
-           
- - - - - - - -
Fields inherited from interface org.springframework.data.elasticsearch.core.query.Query
DEFAULT_PAGE_SIZE
-  - - - - - - - - - - - - - - - - -
-Constructor Summary
StringQuery(String source) - -
-           
StringQuery(String source, - org.springframework.data.domain.Pageable pageable) - -
-           
StringQuery(String source, - org.springframework.data.domain.Pageable pageable, - org.springframework.data.domain.Sort sort) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- - - - - -
-<T extends Query> -
-T
-
addSort(org.springframework.data.domain.Sort sort) - -
-          Add Sort to query
- org.springframework.data.domain.PageablegetPageable() - -
-          Get page settings if defined
- org.springframework.data.domain.SortgetSort() - -
-           
- StringgetSource() - -
-           
- - - - - -
-<T extends Query> -
-T
-
setPageable(org.springframework.data.domain.Pageable pageable) - -
-          restrict result to entries on given page.
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Field Detail
- -

-pageable

-
-protected org.springframework.data.domain.Pageable pageable
-
-
-
-
-
- -

-sort

-
-protected org.springframework.data.domain.Sort sort
-
-
-
-
- - - - - - - - -
-Constructor Detail
- -

-StringQuery

-
-public StringQuery(String source)
-
-
-
- -

-StringQuery

-
-public StringQuery(String source,
-                   org.springframework.data.domain.Pageable pageable)
-
-
-
- -

-StringQuery

-
-public StringQuery(String source,
-                   org.springframework.data.domain.Pageable pageable,
-                   org.springframework.data.domain.Sort sort)
-
-
- - - - - - - - -
-Method Detail
- -

-getSource

-
-public String getSource()
-
-
-
-
-
-
- -

-getSort

-
-public org.springframework.data.domain.Sort getSort()
-
-
-
Specified by:
getSort in interface Query
-
-
- -
Returns:
null if not set
-
-
-
- -

-getPageable

-
-public org.springframework.data.domain.Pageable getPageable()
-
-
Description copied from interface: Query
-
Get page settings if defined -

-

-
Specified by:
getPageable in interface Query
-
-
- -
Returns:
-
-
-
- -

-setPageable

-
-public final <T extends Query> T setPageable(org.springframework.data.domain.Pageable pageable)
-
-
Description copied from interface: Query
-
restrict result to entries on given page. Corresponds to the 'start' and 'rows' parameter in elasticsearch -

-

-
Specified by:
setPageable in interface Query
-
-
- -
Returns:
-
-
-
- -

-addSort

-
-public final <T extends Query> T addSort(org.springframework.data.domain.Sort sort)
-
-
Description copied from interface: Query
-
Add Sort to query -

-

-
Specified by:
addSort in interface Query
-
-
- -
Returns:
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.CriteriaEntry.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.CriteriaEntry.html deleted file mode 100644 index 999f512f..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.CriteriaEntry.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.Criteria.CriteriaEntry (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.Criteria.CriteriaEntry

-
- - - - - - - - - -
-Packages that use Criteria.CriteriaEntry
org.springframework.data.elasticsearch.core.query  
-  -

- - - - - -
-Uses of Criteria.CriteriaEntry in org.springframework.data.elasticsearch.core.query
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query that return types with arguments of type Criteria.CriteriaEntry
- Set<Criteria.CriteriaEntry>Criteria.getCriteriaEntries() - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.OperationKey.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.OperationKey.html deleted file mode 100644 index 5afcf7b4..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.OperationKey.html +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.Criteria.OperationKey (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.Criteria.OperationKey

-
- - - - - - - - - -
-Packages that use Criteria.OperationKey
org.springframework.data.elasticsearch.core.query  
-  -

- - - - - -
-Uses of Criteria.OperationKey in org.springframework.data.elasticsearch.core.query
-  -

- - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query that return Criteria.OperationKey
- Criteria.OperationKeyCriteria.CriteriaEntry.getKey() - -
-           
-static Criteria.OperationKeyCriteria.OperationKey.valueOf(String name) - -
-          Returns the enum constant of this type with the specified name.
-static Criteria.OperationKey[]Criteria.OperationKey.values() - -
-          Returns an array containing the constants of this enum type, in -the order they are declared.
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.html deleted file mode 100644 index 6a098e05..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Criteria.html +++ /dev/null @@ -1,468 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.Criteria (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.Criteria

-
- - - - - - - - - -
-Packages that use Criteria
org.springframework.data.elasticsearch.core.query  
-  -

- - - - - -
-Uses of Criteria in org.springframework.data.elasticsearch.core.query
-  -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query that return Criteria
- CriteriaCriteria.and(Criteria... criterias) - -
-          Chain using AND
- CriteriaCriteria.and(Criteria criteria) - -
-          Chain using AND
- CriteriaCriteria.and(Field field) - -
-          Chain using AND
- CriteriaCriteria.and(String fieldName) - -
-          Chain using AND
- CriteriaCriteria.between(Object lowerBound, - Object upperBound) - -
-          Crates new CriteriaEntry for RANGE [lowerBound TO upperBound]
- CriteriaCriteria.boost(float boost) - -
-          Boost positive hit with given factor. eg. ^2.3
- CriteriaCriteria.contains(String s) - -
-          Crates new CriteriaEntry with leading and trailing wildcards
- NOTE: mind your schema as leading wildcards may not be supported and/or execution might be slow.
- CriteriaCriteria.endsWith(String s) - -
-          Crates new CriteriaEntry with leading wildcard
- NOTE: mind your schema and execution times as leading wildcards may not be supported.
- CriteriaCriteria.expression(String s) - -
-          Crates new CriteriaEntry allowing native elasticsearch expressions
- CriteriaCriteria.fuzzy(String s) - -
-          Crates new CriteriaEntry with trailing ~
- CriteriaCriteriaQuery.getCriteria() - -
-           
- CriteriaCriteria.greaterThanEqual(Object lowerBound) - -
-          Crates new CriteriaEntry for RANGE [lowerBound TO *]
- CriteriaCriteria.in(Iterable<?> values) - -
-          Crates new CriteriaEntry for multiple values (arg0 arg1 arg2 ...)
- CriteriaCriteria.in(Object... values) - -
-          Crates new CriteriaEntry for multiple values (arg0 arg1 arg2 ...)
- CriteriaCriteria.is(Object o) - -
-          Crates new CriteriaEntry without any wildcards
- CriteriaCriteria.lessThanEqual(Object upperBound) - -
-          Crates new CriteriaEntry for RANGE [* TO upperBound]
- CriteriaCriteria.not() - -
-          Crates new CriteriaEntry with trailing -
- CriteriaCriteria.or(Criteria criteria) - -
-          Chain using OR
- CriteriaCriteria.or(Field field) - -
-          Chain using OR
- CriteriaCriteria.or(String fieldName) - -
-          Chain using OR
- CriteriaCriteria.startsWith(String s) - -
-          Crates new CriteriaEntry with trailing wildcard
-static CriteriaCriteria.where(Field field) - -
-          Static factory method to create a new Criteria for provided field
-static CriteriaCriteria.where(String field) - -
-          Static factory method to create a new Criteria for field with given name
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query that return types with arguments of type Criteria
- List<Criteria>Criteria.getCriteriaChain() - -
-           
-  -

- - - - - - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query with parameters of type Criteria
- - - - - -
-<T extends CriteriaQuery> -
-T
-
CriteriaQuery.addCriteria(Criteria criteria) - -
-           
- CriteriaCriteria.and(Criteria... criterias) - -
-          Chain using AND
- CriteriaCriteria.and(Criteria criteria) - -
-          Chain using AND
- CriteriaCriteria.or(Criteria criteria) - -
-          Chain using OR
-  -

- - - - - - - - - - - -
Constructors in org.springframework.data.elasticsearch.core.query with parameters of type Criteria
CriteriaQuery(Criteria criteria) - -
-           
CriteriaQuery(Criteria criteria, - org.springframework.data.domain.Pageable pageable) - -
-           
-  -

- - - - - - - - - - - -
Constructor parameters in org.springframework.data.elasticsearch.core.query with type arguments of type Criteria
Criteria(List<Criteria> criteriaChain, - Field field) - -
-           
Criteria(List<Criteria> criteriaChain, - String fieldname) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/CriteriaQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/CriteriaQuery.html deleted file mode 100644 index 16ddd327..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/CriteriaQuery.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.CriteriaQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.CriteriaQuery

-
- - - - - - - - - - - - - - - - - - - - - -
-Packages that use CriteriaQuery
org.springframework.data.elasticsearch.core  
org.springframework.data.elasticsearch.core.query  
org.springframework.data.elasticsearch.repository.query  
org.springframework.data.elasticsearch.repository.query.parser  
-  -

- - - - - -
-Uses of CriteriaQuery in org.springframework.data.elasticsearch.core
-  -

- - - - - - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core with parameters of type CriteriaQuery
- - - - - -
-<T> T
-
ElasticsearchTemplate.queryForObject(CriteriaQuery query, - Class<T> clazz) - -
-           
- - - - - -
-<T> T
-
ElasticsearchOperations.queryForObject(CriteriaQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
ElasticsearchTemplate.queryForPage(CriteriaQuery query, - Class<T> clazz) - -
-           
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
ElasticsearchOperations.queryForPage(CriteriaQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
-  -

- - - - - -
-Uses of CriteriaQuery in org.springframework.data.elasticsearch.core.query
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query with type parameters of type CriteriaQuery
- - - - - -
-<T extends CriteriaQuery> -
-T
-
CriteriaQuery.addCriteria(Criteria criteria) - -
-           
-static - - - - -
-<T extends CriteriaQuery> -
-T
-
CriteriaQuery.fromQuery(CriteriaQuery source, - T destination) - -
-           
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query with parameters of type CriteriaQuery
-static QueryCriteriaQuery.fromQuery(CriteriaQuery source) - -
-           
-static - - - - -
-<T extends CriteriaQuery> -
-T
-
CriteriaQuery.fromQuery(CriteriaQuery source, - T destination) - -
-           
-  -

- - - - - -
-Uses of CriteriaQuery in org.springframework.data.elasticsearch.repository.query
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.repository.query that return CriteriaQuery
- CriteriaQueryElasticsearchPartQuery.createQuery(org.springframework.data.repository.query.ParametersParameterAccessor accessor) - -
-           
-  -

- - - - - -
-Uses of CriteriaQuery in org.springframework.data.elasticsearch.repository.query.parser
-  -

- - - - - - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.repository.query.parser that return CriteriaQuery
-protected  CriteriaQueryElasticsearchQueryCreator.and(org.springframework.data.repository.query.parser.Part part, - CriteriaQuery base, - Iterator<Object> iterator) - -
-           
-protected  CriteriaQueryElasticsearchQueryCreator.complete(CriteriaQuery query, - org.springframework.data.domain.Sort sort) - -
-           
-protected  CriteriaQueryElasticsearchQueryCreator.create(org.springframework.data.repository.query.parser.Part part, - Iterator<Object> iterator) - -
-           
-protected  CriteriaQueryElasticsearchQueryCreator.or(CriteriaQuery base, - CriteriaQuery query) - -
-           
-  -

- - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.repository.query.parser with parameters of type CriteriaQuery
-protected  CriteriaQueryElasticsearchQueryCreator.and(org.springframework.data.repository.query.parser.Part part, - CriteriaQuery base, - Iterator<Object> iterator) - -
-           
-protected  CriteriaQueryElasticsearchQueryCreator.complete(CriteriaQuery query, - org.springframework.data.domain.Sort sort) - -
-           
-protected  CriteriaQueryElasticsearchQueryCreator.or(CriteriaQuery base, - CriteriaQuery query) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/DeleteQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/DeleteQuery.html deleted file mode 100644 index 7be5be66..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/DeleteQuery.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.DeleteQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.DeleteQuery

-
- - - - - - - - - -
-Packages that use DeleteQuery
org.springframework.data.elasticsearch.core  
-  -

- - - - - -
-Uses of DeleteQuery in org.springframework.data.elasticsearch.core
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core with parameters of type DeleteQuery
- - - - - -
-<T> void
-
ElasticsearchTemplate.delete(DeleteQuery query, - Class<T> clazz) - -
-           
- - - - - -
-<T> void
-
ElasticsearchOperations.delete(DeleteQuery query, - Class<T> clazz) - -
-          Delete all records matching the query
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Field.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Field.html deleted file mode 100644 index 2fdd3312..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Field.html +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.core.query.Field (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.core.query.Field

-
- - - - - - - - - -
-Packages that use Field
org.springframework.data.elasticsearch.core.query  
-  -

- - - - - -
-Uses of Field in org.springframework.data.elasticsearch.core.query
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.core.query that implement Field
- classSimpleField - -
-          The most trivial implementation of a Field
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query that return Field
- FieldCriteria.getField() - -
-          Field targeted by this Criteria
-  -

- - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query with parameters of type Field
- CriteriaCriteria.and(Field field) - -
-          Chain using AND
- CriteriaCriteria.or(Field field) - -
-          Chain using OR
-static CriteriaCriteria.where(Field field) - -
-          Static factory method to create a new Criteria for provided field
-  -

- - - - - - - - - - - -
Constructors in org.springframework.data.elasticsearch.core.query with parameters of type Field
Criteria(Field field) - -
-          Creates a new Criteria for the given field
Criteria(List<Criteria> criteriaChain, - Field field) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/GetQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/GetQuery.html deleted file mode 100644 index 0956ffbf..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/GetQuery.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.GetQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.GetQuery

-
- - - - - - - - - -
-Packages that use GetQuery
org.springframework.data.elasticsearch.core  
-  -

- - - - - -
-Uses of GetQuery in org.springframework.data.elasticsearch.core
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core with parameters of type GetQuery
- - - - - -
-<T> T
-
ElasticsearchTemplate.queryForObject(GetQuery query, - Class<T> clazz) - -
-           
- - - - - -
-<T> T
-
ElasticsearchOperations.queryForObject(GetQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/IndexQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/IndexQuery.html deleted file mode 100644 index 498aa023..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/IndexQuery.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.IndexQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.IndexQuery

-
- - - - - - - - - -
-Packages that use IndexQuery
org.springframework.data.elasticsearch.core  
-  -

- - - - - -
-Uses of IndexQuery in org.springframework.data.elasticsearch.core
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core with parameters of type IndexQuery
- StringElasticsearchTemplate.index(IndexQuery query) - -
-           
- StringElasticsearchOperations.index(IndexQuery query) - -
-          Index an object.
-  -

- - - - - - - - - - - - - -
Method parameters in org.springframework.data.elasticsearch.core with type arguments of type IndexQuery
- voidElasticsearchTemplate.bulkIndex(List<IndexQuery> queries) - -
-           
- voidElasticsearchOperations.bulkIndex(List<IndexQuery> queries) - -
-          Bulk index all objects.
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Query.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Query.html deleted file mode 100644 index 09d92b28..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/Query.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.core.query.Query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.core.query.Query

-
- - - - - - - - - -
-Packages that use Query
org.springframework.data.elasticsearch.core.query  
-  -

- - - - - -
-Uses of Query in org.springframework.data.elasticsearch.core.query
-  -

- - - - - - - - - - - - - - - - - -
Classes in org.springframework.data.elasticsearch.core.query that implement Query
- classCriteriaQuery - -
-           
- classSearchQuery - -
-           
- classStringQuery - -
-           
-  -

- - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query with type parameters of type Query
- - - - - -
-<T extends Query> -
-T
-
Query.addSort(org.springframework.data.domain.Sort sort) - -
-          Add Sort to query
- - - - - -
-<T extends Query> -
-T
-
Query.setPageable(org.springframework.data.domain.Pageable pageable) - -
-          restrict result to entries on given page.
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core.query that return Query
-static QueryCriteriaQuery.fromQuery(CriteriaQuery source) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/SearchQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/SearchQuery.html deleted file mode 100644 index 403938b4..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/SearchQuery.html +++ /dev/null @@ -1,295 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.SearchQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.SearchQuery

-
- - - - - - - - - - - - - - - - - -
-Packages that use SearchQuery
org.springframework.data.elasticsearch.core  
org.springframework.data.elasticsearch.repository  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - -
-Uses of SearchQuery in org.springframework.data.elasticsearch.core
-  -

- - - - - - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core with parameters of type SearchQuery
- - - - - -
-<T> long
-
ElasticsearchTemplate.count(SearchQuery query, - Class<T> clazz) - -
-           
- - - - - -
-<T> long
-
ElasticsearchOperations.count(SearchQuery query, - Class<T> clazz) - -
-          return number of elements found by for given query
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
ElasticsearchTemplate.queryForPage(SearchQuery query, - Class<T> clazz) - -
-           
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
ElasticsearchOperations.queryForPage(SearchQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
-  -

- - - - - -
-Uses of SearchQuery in org.springframework.data.elasticsearch.repository
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.repository with parameters of type SearchQuery
- org.springframework.data.domain.Page<T>ElasticsearchRepository.search(SearchQuery searchQuery) - -
-           
-  -

- - - - - -
-Uses of SearchQuery in org.springframework.data.elasticsearch.repository.support
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.repository.support with parameters of type SearchQuery
- org.springframework.data.domain.Page<T>SimpleElasticsearchRepository.search(SearchQuery query) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/SimpleField.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/SimpleField.html deleted file mode 100644 index d5841c72..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/SimpleField.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.SimpleField (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.SimpleField

-
-No usage of org.springframework.data.elasticsearch.core.query.SimpleField -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/StringQuery.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/StringQuery.html deleted file mode 100644 index 089bd79b..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/class-use/StringQuery.html +++ /dev/null @@ -1,266 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.core.query.StringQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.core.query.StringQuery

-
- - - - - - - - - - - - - -
-Packages that use StringQuery
org.springframework.data.elasticsearch.core  
org.springframework.data.elasticsearch.repository.query  
-  -

- - - - - -
-Uses of StringQuery in org.springframework.data.elasticsearch.core
-  -

- - - - - - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.core with parameters of type StringQuery
- - - - - -
-<T> T
-
ElasticsearchTemplate.queryForObject(StringQuery query, - Class<T> clazz) - -
-           
- - - - - -
-<T> T
-
ElasticsearchOperations.queryForObject(StringQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return the first returned object
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
ElasticsearchTemplate.queryForPage(StringQuery query, - Class<T> clazz) - -
-           
- - - - - -
-<T> org.springframework.data.domain.Page<T>
-
ElasticsearchOperations.queryForPage(StringQuery query, - Class<T> clazz) - -
-          Execute the query against elasticsearch and return result as Page
-  -

- - - - - -
-Uses of StringQuery in org.springframework.data.elasticsearch.repository.query
-  -

- - - - - - - - - -
Methods in org.springframework.data.elasticsearch.repository.query that return StringQuery
-protected  StringQueryElasticsearchStringQuery.createQuery(org.springframework.data.repository.query.ParametersParameterAccessor parameterAccessor) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/package-frame.html deleted file mode 100644 index a7934f28..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/package-frame.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.core.query - - - - -
-Interfaces  - -
-Field -
-Query
- - - - - - -
-Classes  - -
-Criteria -
-Criteria.CriteriaEntry -
-CriteriaQuery -
-DeleteQuery -
-GetQuery -
-IndexQuery -
-SearchQuery -
-SimpleField -
-StringQuery
- - - - - - -
-Enums  - -
-Criteria.OperationKey
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/package-summary.html deleted file mode 100644 index 32173899..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/package-summary.html +++ /dev/null @@ -1,222 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.core.query -

- - - - - - - - - - - - - -
-Interface Summary
FieldDefines a Field that can be used within a Criteria.
Query 
-  - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Class Summary
CriteriaCriteria is the central class when constructing queries.
Criteria.CriteriaEntry 
CriteriaQuery 
DeleteQuery 
GetQuery 
IndexQuery 
SearchQuery 
SimpleFieldThe most trivial implementation of a Field
StringQuery 
-  - -

- - - - - - - - - -
-Enum Summary
Criteria.OperationKey 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/package-tree.html deleted file mode 100644 index fe2d124e..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/package-tree.html +++ /dev/null @@ -1,171 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.core.query Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.core.query -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

-
    -
  • java.lang.Object
      -
    • org.springframework.data.elasticsearch.core.query.Criteria
    • org.springframework.data.elasticsearch.core.query.Criteria.CriteriaEntry
    • org.springframework.data.elasticsearch.core.query.CriteriaQuery (implements org.springframework.data.elasticsearch.core.query.Query) -
    • org.springframework.data.elasticsearch.core.query.DeleteQuery
    • org.springframework.data.elasticsearch.core.query.GetQuery
    • org.springframework.data.elasticsearch.core.query.IndexQuery
    • org.springframework.data.elasticsearch.core.query.SearchQuery
    • org.springframework.data.elasticsearch.core.query.SimpleField (implements org.springframework.data.elasticsearch.core.query.Field) -
    • org.springframework.data.elasticsearch.core.query.StringQuery
    -
-

-Interface Hierarchy -

-
    -
  • org.springframework.data.elasticsearch.core.query.Field
  • org.springframework.data.elasticsearch.core.query.Query
-

-Enum Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/core/query/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/core/query/package-use.html deleted file mode 100644 index 1ecc6a48..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/core/query/package-use.html +++ /dev/null @@ -1,332 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.core.query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.core.query

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Packages that use org.springframework.data.elasticsearch.core.query
org.springframework.data.elasticsearch.core  
org.springframework.data.elasticsearch.core.query  
org.springframework.data.elasticsearch.repository  
org.springframework.data.elasticsearch.repository.query  
org.springframework.data.elasticsearch.repository.query.parser  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - - - - - - - - - - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.query used by org.springframework.data.elasticsearch.core
CriteriaQuery - -
-           
DeleteQuery - -
-           
GetQuery - -
-           
IndexQuery - -
-           
SearchQuery - -
-           
StringQuery - -
-           
-  -

- - - - - - - - - - - - - - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.query used by org.springframework.data.elasticsearch.core.query
Criteria - -
-          Criteria is the central class when constructing queries.
Criteria.CriteriaEntry - -
-           
Criteria.OperationKey - -
-           
CriteriaQuery - -
-           
Field - -
-          Defines a Field that can be used within a Criteria.
Query - -
-           
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.query used by org.springframework.data.elasticsearch.repository
SearchQuery - -
-           
-  -

- - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.query used by org.springframework.data.elasticsearch.repository.query
CriteriaQuery - -
-           
StringQuery - -
-           
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.query used by org.springframework.data.elasticsearch.repository.query.parser
CriteriaQuery - -
-           
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.core.query used by org.springframework.data.elasticsearch.repository.support
SearchQuery - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/package-frame.html deleted file mode 100644 index 32287bf2..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/package-frame.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch - - - - -
-Exceptions  - -
-ElasticsearchException
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/package-summary.html deleted file mode 100644 index ec8834dc..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/package-summary.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch -

- - - - - - - - - -
-Exception Summary
ElasticsearchException 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/package-tree.html deleted file mode 100644 index cfed1708..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/package-tree.html +++ /dev/null @@ -1,161 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/package-use.html deleted file mode 100644 index 388b3803..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/package-use.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch

-
-No usage of org.springframework.data.elasticsearch -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/ElasticsearchCrudRepository.html b/site/apidocs/org/springframework/data/elasticsearch/repository/ElasticsearchCrudRepository.html deleted file mode 100644 index 7896bb10..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/ElasticsearchCrudRepository.html +++ /dev/null @@ -1,248 +0,0 @@ - - - - - - - -ElasticsearchCrudRepository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository -
-Interface ElasticsearchCrudRepository<T,ID extends Serializable>

-
-
Type Parameters:
T -
ID -
-
-
All Superinterfaces:
org.springframework.data.repository.CrudRepository<T,ID>, org.springframework.data.repository.PagingAndSortingRepository<T,ID>, org.springframework.data.repository.Repository<T,ID>
-
-
-
All Known Subinterfaces:
ElasticsearchRepository<T,ID>
-
-
-
All Known Implementing Classes:
SimpleElasticsearchRepository
-
-
-
-
public interface ElasticsearchCrudRepository<T,ID extends Serializable>
extends org.springframework.data.repository.PagingAndSortingRepository<T,ID>
- - -

-


- -

- - - - - - - - - - - - -
-Method Summary
- - - - - -
-<S extends T> -
-List<S>
-
save(List<S> entities) - -
-           
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAll, findAll
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, delete, delete, deleteAll, exists, findAll, findAll, findOne, save, save
-  -

- - - - - - - - -
-Method Detail
- -

-save

-
-<S extends T> List<S> save(List<S> entities)
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.html b/site/apidocs/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.html deleted file mode 100644 index f4e0e217..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/ElasticsearchRepository.html +++ /dev/null @@ -1,323 +0,0 @@ - - - - - - - -ElasticsearchRepository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository -
-Interface ElasticsearchRepository<T,ID extends Serializable>

-
-
Type Parameters:
T -
ID -
-
-
All Superinterfaces:
org.springframework.data.repository.CrudRepository<T,ID>, ElasticsearchCrudRepository<T,ID>, org.springframework.data.repository.PagingAndSortingRepository<T,ID>, org.springframework.data.repository.Repository<T,ID>
-
-
-
All Known Implementing Classes:
SimpleElasticsearchRepository
-
-
-
-
@NoRepositoryBean
-public interface ElasticsearchRepository<T,ID extends Serializable>
extends ElasticsearchCrudRepository<T,ID>
- - -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- - - - - -
-<S extends T> -
-S
-
index(S entity) - -
-           
- Iterable<T>search(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery) - -
-           
- org.springframework.data.domain.Page<T>search(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery, - org.springframework.data.domain.Pageable pageable) - -
-           
- org.springframework.data.domain.Page<T>search(SearchQuery searchQuery) - -
-           
- - - - - - - -
Methods inherited from interface org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository
save
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.PagingAndSortingRepository
findAll, findAll
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.CrudRepository
count, delete, delete, delete, deleteAll, exists, findAll, findAll, findOne, save, save
-  -

- - - - - - - - -
-Method Detail
- -

-index

-
-<S extends T> S index(S entity)
-
-
-
-
-
-
-
-
-
- -

-search

-
-Iterable<T> search(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery)
-
-
-
-
-
-
-
-
-
- -

-search

-
-org.springframework.data.domain.Page<T> search(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery,
-                                               org.springframework.data.domain.Pageable pageable)
-
-
-
-
-
-
-
-
-
- -

-search

-
-org.springframework.data.domain.Page<T> search(SearchQuery searchQuery)
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.html b/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.html deleted file mode 100644 index 3ad402d9..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryBean.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - -ElasticsearchRepositoryBean (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.cdi -
-Class ElasticsearchRepositoryBean<T>

-
-java.lang.Object
-  extended by org.springframework.data.repository.cdi.CdiRepositoryBean<T>
-      extended by org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryBean<T>
-
-
-
All Implemented Interfaces:
javax.enterprise.context.spi.Contextual<T>, javax.enterprise.inject.spi.Bean<T>
-
-
-
-
public class ElasticsearchRepositoryBean<T>
extends org.springframework.data.repository.cdi.CdiRepositoryBean<T>
- - -

-Uses CdiRepositoryBean to create ElasticsearchRepository instances. -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
ElasticsearchRepositoryBean(javax.enterprise.inject.spi.Bean<ElasticsearchOperations> operations, - Set<Annotation> qualifiers, - Class<T> repositoryType, - javax.enterprise.inject.spi.BeanManager beanManager) - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
-protected  Tcreate(javax.enterprise.context.spi.CreationalContext<T> creationalContext, - Class<T> repositoryType) - -
-           
- Class<? extends Annotation>getScope() - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.repository.cdi.CdiRepositoryBean
create, destroy, getBeanClass, getDependencyInstance, getInjectionPoints, getName, getQualifiers, getStereotypes, getTypes, isAlternative, isNullable, toString
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchRepositoryBean

-
-public ElasticsearchRepositoryBean(javax.enterprise.inject.spi.Bean<ElasticsearchOperations> operations,
-                                   Set<Annotation> qualifiers,
-                                   Class<T> repositoryType,
-                                   javax.enterprise.inject.spi.BeanManager beanManager)
-
-
- - - - - - - - -
-Method Detail
- -

-create

-
-protected T create(javax.enterprise.context.spi.CreationalContext<T> creationalContext,
-                   Class<T> repositoryType)
-
-
-
Specified by:
create in class org.springframework.data.repository.cdi.CdiRepositoryBean<T>
-
-
-
-
-
-
- -

-getScope

-
-public Class<? extends Annotation> getScope()
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.html b/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.html deleted file mode 100644 index 73da7932..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/ElasticsearchRepositoryExtension.html +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - -ElasticsearchRepositoryExtension (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.cdi -
-Class ElasticsearchRepositoryExtension

-
-java.lang.Object
-  extended by org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport
-      extended by org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryExtension
-
-
-
All Implemented Interfaces:
javax.enterprise.inject.spi.Extension
-
-
-
-
public class ElasticsearchRepositoryExtension
extends org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
ElasticsearchRepositoryExtension() - -
-           
-  - - - - - - - -
-Method Summary
- - - - - - - -
Methods inherited from class org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport
getRepositoryTypes, processAnnotatedType
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchRepositoryExtension

-
-public ElasticsearchRepositoryExtension()
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/class-use/ElasticsearchRepositoryBean.html b/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/class-use/ElasticsearchRepositoryBean.html deleted file mode 100644 index dd6b4828..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/class-use/ElasticsearchRepositoryBean.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryBean (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryBean

-
-No usage of org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryBean -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/class-use/ElasticsearchRepositoryExtension.html b/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/class-use/ElasticsearchRepositoryExtension.html deleted file mode 100644 index a56c5a51..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/class-use/ElasticsearchRepositoryExtension.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryExtension (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryExtension

-
-No usage of org.springframework.data.elasticsearch.repository.cdi.ElasticsearchRepositoryExtension -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-frame.html deleted file mode 100644 index 19e56d13..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-frame.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.cdi (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.repository.cdi - - - - -
-Classes  - -
-ElasticsearchRepositoryBean -
-ElasticsearchRepositoryExtension
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-summary.html deleted file mode 100644 index 1840a7df..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-summary.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.cdi (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.repository.cdi -

- - - - - - - - - - - - - -
-Class Summary
ElasticsearchRepositoryBean<T>Uses CdiRepositoryBean to create ElasticsearchRepository instances.
ElasticsearchRepositoryExtension 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-tree.html deleted file mode 100644 index 4ea9b33a..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-tree.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.cdi Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.repository.cdi -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

-
    -
  • java.lang.Object
      -
    • org.springframework.data.repository.cdi.CdiRepositoryBean<T> (implements javax.enterprise.inject.spi.Bean<T>) - -
    • org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport (implements javax.enterprise.inject.spi.Extension) - -
    -
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-use.html deleted file mode 100644 index c85a99b2..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/cdi/package-use.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.repository.cdi (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.repository.cdi

-
-No usage of org.springframework.data.elasticsearch.repository.cdi -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/class-use/ElasticsearchCrudRepository.html b/site/apidocs/org/springframework/data/elasticsearch/repository/class-use/ElasticsearchCrudRepository.html deleted file mode 100644 index 05e74893..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/class-use/ElasticsearchCrudRepository.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository

-
- - - - - - - - - - - - - -
-Packages that use ElasticsearchCrudRepository
org.springframework.data.elasticsearch.repository  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - -
-Uses of ElasticsearchCrudRepository in org.springframework.data.elasticsearch.repository
-  -

- - - - - - - - - -
Subinterfaces of ElasticsearchCrudRepository in org.springframework.data.elasticsearch.repository
- interfaceElasticsearchRepository<T,ID extends Serializable> - -
-           
-  -

- - - - - -
-Uses of ElasticsearchCrudRepository in org.springframework.data.elasticsearch.repository.support
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.repository.support that implement ElasticsearchCrudRepository
- classSimpleElasticsearchRepository<T> - -
-          Elasticsearch specific repository implementation.
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/class-use/ElasticsearchRepository.html b/site/apidocs/org/springframework/data/elasticsearch/repository/class-use/ElasticsearchRepository.html deleted file mode 100644 index fe563a53..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/class-use/ElasticsearchRepository.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.repository.ElasticsearchRepository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.repository.ElasticsearchRepository

-
- - - - - - - - - -
-Packages that use ElasticsearchRepository
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - -
-Uses of ElasticsearchRepository in org.springframework.data.elasticsearch.repository.support
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.repository.support that implement ElasticsearchRepository
- classSimpleElasticsearchRepository<T> - -
-          Elasticsearch specific repository implementation.
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/config/ElasticsearchRepositoryConfigExtension.html b/site/apidocs/org/springframework/data/elasticsearch/repository/config/ElasticsearchRepositoryConfigExtension.html deleted file mode 100644 index 8f54327d..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/config/ElasticsearchRepositoryConfigExtension.html +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - -ElasticsearchRepositoryConfigExtension (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.config -
-Class ElasticsearchRepositoryConfigExtension

-
-java.lang.Object
-  extended by org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
-      extended by org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension
-
-
-
All Implemented Interfaces:
org.springframework.data.repository.config.RepositoryConfigurationExtension
-
-
-
-
public class ElasticsearchRepositoryConfigExtension
extends org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
- - -

-RepositoryConfigurationExtension implementation to configure Elasticsearch repository configuration support, - evaluating the EnableElasticsearchRepositories annotation or the equivalent XML element. -

- -

-


- -

- - - - - - - -
-Field Summary
- - - - - - - -
Fields inherited from class org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
REPOSITORY_INTERFACE_POST_PROCESSOR
-  - - - - - - - - - - -
-Constructor Summary
ElasticsearchRepositoryConfigExtension() - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
-protected  StringgetModulePrefix() - -
-           
- StringgetRepositoryFactoryClassName() - -
-           
- voidpostProcess(BeanDefinitionBuilder builder, - org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource config) - -
-           
- voidpostProcess(BeanDefinitionBuilder builder, - org.springframework.data.repository.config.XmlRepositoryConfigurationSource config) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
getDefaultNamedQueryLocation, getRepositoryConfiguration, getRepositoryConfigurations, hasBean, registerBeansForRoot, registerWithSourceAndGeneratedBeanName
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchRepositoryConfigExtension

-
-public ElasticsearchRepositoryConfigExtension()
-
-
- - - - - - - - -
-Method Detail
- -

-getRepositoryFactoryClassName

-
-public String getRepositoryFactoryClassName()
-
-
-
-
-
-
- -

-getModulePrefix

-
-protected String getModulePrefix()
-
-
-
Specified by:
getModulePrefix in class org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
-
-
-
-
-
-
- -

-postProcess

-
-public void postProcess(BeanDefinitionBuilder builder,
-                        org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource config)
-
-
-
Specified by:
postProcess in interface org.springframework.data.repository.config.RepositoryConfigurationExtension
Overrides:
postProcess in class org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
-
-
-
-
-
-
- -

-postProcess

-
-public void postProcess(BeanDefinitionBuilder builder,
-                        org.springframework.data.repository.config.XmlRepositoryConfigurationSource config)
-
-
-
Specified by:
postProcess in interface org.springframework.data.repository.config.RepositoryConfigurationExtension
Overrides:
postProcess in class org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/config/EnableElasticsearchRepositories.html b/site/apidocs/org/springframework/data/elasticsearch/repository/config/EnableElasticsearchRepositories.html deleted file mode 100644 index 973c5dd0..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/config/EnableElasticsearchRepositories.html +++ /dev/null @@ -1,463 +0,0 @@ - - - - - - - -EnableElasticsearchRepositories (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.config -
-Annotation Type EnableElasticsearchRepositories

-
-
-
@Target(value=TYPE)
-@Retention(value=RUNTIME)
-@Documented
-@Inherited
-@Import(value=org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoriesRegistrar.class)
-public @interface EnableElasticsearchRepositories
- - -

-Annotation to enable Elasticsearch repositories. Will scan the package of the annotated configuration class for Spring Data - repositories by default. -

- -

-


- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Optional Element Summary
- Class<?>[]basePackageClasses - -
-          Type-safe alternative to basePackages() for specifying the packages to scan for annotated components.
- String[]basePackages - -
-          Base packages to scan for annotated components.
- StringelasticsearchTemplateRef - -
-          Configures the name of the ElasticsearchTemplate bean definition to be used to create repositories discovered - through this annotation.
- ComponentScan.Filter[]excludeFilters - -
-          Specifies which types are not eligible for component scanning.
- ComponentScan.Filter[]includeFilters - -
-          Specifies which types are eligible for component scanning.
- StringnamedQueriesLocation - -
-          Configures the location of where to find the Spring Data named queries properties file.
- org.springframework.data.repository.query.QueryLookupStrategy.KeyqueryLookupStrategy - -
-          Returns the key of the QueryLookupStrategy to be used for lookup queries for query methods.
- Class<?>repositoryFactoryBeanClass - -
-          Returns the FactoryBean class to be used for each repository instance.
- StringrepositoryImplementationPostfix - -
-          Returns the postfix to be used when looking up custom repository implementations.
- String[]value - -
-          Alias for the basePackages() attribute.
-  -

-

-value

-
-public abstract String[] value
-
-
Alias for the basePackages() attribute. Allows for more concise annotation declarations e.g.: - @EnableElasticsearchRepositories("org.my.pkg") instead of @EnableElasticsearchRepositories(basePackages="org.my.pkg"). -

-

-
-
-
-
-
-
Default:
{}
-
-
-
- -

-basePackages

-
-public abstract String[] basePackages
-
-
Base packages to scan for annotated components. value() is an alias for (and mutually exclusive with) this - attribute. Use basePackageClasses() for a type-safe alternative to String-based package names. -

-

-
-
-
-
-
-
Default:
{}
-
-
-
- -

-basePackageClasses

-
-public abstract Class<?>[] basePackageClasses
-
-
Type-safe alternative to basePackages() for specifying the packages to scan for annotated components. The - package of each class specified will be scanned. Consider creating a special no-op marker class or interface in - each package that serves no purpose other than being referenced by this attribute. -

-

-
-
-
-
-
-
Default:
{}
-
-
-
- -

-includeFilters

-
-public abstract ComponentScan.Filter[] includeFilters
-
-
Specifies which types are eligible for component scanning. Further narrows the set of candidate components from - everything in basePackages() to everything in the base packages that matches the given filter or filters. -

-

-
-
-
-
-
-
Default:
{}
-
-
-
- -

-excludeFilters

-
-public abstract ComponentScan.Filter[] excludeFilters
-
-
Specifies which types are not eligible for component scanning. -

-

-
-
-
-
-
-
Default:
{}
-
-
-
- -

-repositoryImplementationPostfix

-
-public abstract String repositoryImplementationPostfix
-
-
Returns the postfix to be used when looking up custom repository implementations. Defaults to Impl. So - for a repository named PersonRepository the corresponding implementation class will be looked up scanning - for PersonRepositoryImpl. -

-

-
-
-
- -
Returns:
-
-
Default:
"Impl"
-
-
-
- -

-namedQueriesLocation

-
-public abstract String namedQueriesLocation
-
-
Configures the location of where to find the Spring Data named queries properties file. Will default to - META-INFO/elasticsearch-named-queries.properties. -

-

-
-
-
- -
Returns:
-
-
Default:
""
-
-
-
- -

-queryLookupStrategy

-
-public abstract org.springframework.data.repository.query.QueryLookupStrategy.Key queryLookupStrategy
-
-
Returns the key of the QueryLookupStrategy to be used for lookup queries for query methods. Defaults to - QueryLookupStrategy.Key.CREATE_IF_NOT_FOUND. -

-

-
-
-
- -
Returns:
-
-
Default:
org.springframework.data.repository.query.QueryLookupStrategy.Key.CREATE_IF_NOT_FOUND
-
-
-
- -

-repositoryFactoryBeanClass

-
-public abstract Class<?> repositoryFactoryBeanClass
-
-
Returns the FactoryBean class to be used for each repository instance. Defaults to - ElasticsearchRepositoryFactoryBean. -

-

-
-
-
- -
Returns:
-
-
Default:
org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean.class
-
-
-
- -

-elasticsearchTemplateRef

-
-public abstract String elasticsearchTemplateRef
-
-
Configures the name of the ElasticsearchTemplate bean definition to be used to create repositories discovered - through this annotation. Defaults to elasticsearchTemplate. -

-

-
-
-
- -
Returns:
-
-
Default:
"elasticsearchTemplate"
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/config/class-use/ElasticsearchRepositoryConfigExtension.html b/site/apidocs/org/springframework/data/elasticsearch/repository/config/class-use/ElasticsearchRepositoryConfigExtension.html deleted file mode 100644 index 5bfa0c0d..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/config/class-use/ElasticsearchRepositoryConfigExtension.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension

-
-No usage of org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/config/class-use/EnableElasticsearchRepositories.html b/site/apidocs/org/springframework/data/elasticsearch/repository/config/class-use/EnableElasticsearchRepositories.html deleted file mode 100644 index ca7ab0d9..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/config/class-use/EnableElasticsearchRepositories.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories

-
-No usage of org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-frame.html deleted file mode 100644 index 57a79702..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-frame.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.config (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.repository.config - - - - -
-Classes  - -
-ElasticsearchRepositoryConfigExtension
- - - - - - -
-Annotation Types  - -
-EnableElasticsearchRepositories
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-summary.html deleted file mode 100644 index abdf421b..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-summary.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.config (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.repository.config -

- - - - - - - - - -
-Class Summary
ElasticsearchRepositoryConfigExtensionRepositoryConfigurationExtension implementation to configure Elasticsearch repository configuration support, - evaluating the EnableElasticsearchRepositories annotation or the equivalent XML element.
-  - -

- - - - - - - - - -
-Annotation Types Summary
EnableElasticsearchRepositoriesAnnotation to enable Elasticsearch repositories.
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-tree.html deleted file mode 100644 index 952919a1..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-tree.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.config Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.repository.config -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

-
    -
  • java.lang.Object
      -
    • org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport (implements org.springframework.data.repository.config.RepositoryConfigurationExtension) - -
    -
-

-Annotation Type Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-use.html deleted file mode 100644 index ea149cf2..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/config/package-use.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.repository.config (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.repository.config

-
-No usage of org.springframework.data.elasticsearch.repository.config -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/repository/package-frame.html deleted file mode 100644 index d9fcb63e..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/package-frame.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.repository - - - - -
-Interfaces  - -
-ElasticsearchCrudRepository -
-ElasticsearchRepository
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/repository/package-summary.html deleted file mode 100644 index 7905c490..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/package-summary.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.repository -

- - - - - - - - - - - - - -
-Interface Summary
ElasticsearchCrudRepository<T,ID extends Serializable> 
ElasticsearchRepository<T,ID extends Serializable> 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/repository/package-tree.html deleted file mode 100644 index a73c89e7..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/package-tree.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.repository -

-
-
-
Package Hierarchies:
All Packages
-
-

-Interface Hierarchy -

-
    -
  • org.springframework.data.repository.Repository<T,ID>
      -
    • org.springframework.data.repository.CrudRepository<T,ID> -
    -
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/repository/package-use.html deleted file mode 100644 index cecba5df..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/package-use.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.repository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.repository

-
- - - - - - - - - - - - - -
-Packages that use org.springframework.data.elasticsearch.repository
org.springframework.data.elasticsearch.repository  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.repository used by org.springframework.data.elasticsearch.repository
ElasticsearchCrudRepository - -
-           
-  -

- - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.repository used by org.springframework.data.elasticsearch.repository.support
ElasticsearchCrudRepository - -
-           
ElasticsearchRepository - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/AbstractElasticsearchRepositoryQuery.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/AbstractElasticsearchRepositoryQuery.html deleted file mode 100644 index 7ef206a2..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/AbstractElasticsearchRepositoryQuery.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - - - - -AbstractElasticsearchRepositoryQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.query -
-Class AbstractElasticsearchRepositoryQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery
-
-
-
All Implemented Interfaces:
org.springframework.data.repository.query.RepositoryQuery
-
-
-
Direct Known Subclasses:
ElasticsearchPartQuery, ElasticsearchStringQuery
-
-
-
-
public abstract class AbstractElasticsearchRepositoryQuery
extends Object
implements org.springframework.data.repository.query.RepositoryQuery
- - -

-


- -

- - - - - - - - - - - - - - - -
-Field Summary
-protected  ElasticsearchOperationselasticsearchOperations - -
-           
-protected  ElasticsearchQueryMethodqueryMethod - -
-           
-  - - - - - - - - - - -
-Constructor Summary
AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod, - ElasticsearchOperations elasticsearchOperations) - -
-           
-  - - - - - - - - - - - -
-Method Summary
- org.springframework.data.repository.query.QueryMethodgetQueryMethod() - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.query.RepositoryQuery
execute
-  -

- - - - - - - - -
-Field Detail
- -

-queryMethod

-
-protected ElasticsearchQueryMethod queryMethod
-
-
-
-
-
- -

-elasticsearchOperations

-
-protected ElasticsearchOperations elasticsearchOperations
-
-
-
-
- - - - - - - - -
-Constructor Detail
- -

-AbstractElasticsearchRepositoryQuery

-
-public AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod,
-                                            ElasticsearchOperations elasticsearchOperations)
-
-
- - - - - - - - -
-Method Detail
- -

-getQueryMethod

-
-public org.springframework.data.repository.query.QueryMethod getQueryMethod()
-
-
-
Specified by:
getQueryMethod in interface org.springframework.data.repository.query.RepositoryQuery
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchPartQuery.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchPartQuery.html deleted file mode 100644 index cb114ce1..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchPartQuery.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - -ElasticsearchPartQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.query -
-Class ElasticsearchPartQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery
-      extended by org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery
-
-
-
All Implemented Interfaces:
org.springframework.data.repository.query.RepositoryQuery
-
-
-
-
public class ElasticsearchPartQuery
extends AbstractElasticsearchRepositoryQuery
- - -

-


- -

- - - - - - - -
-Field Summary
- - - - - - - -
Fields inherited from class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery
elasticsearchOperations, queryMethod
-  - - - - - - - - - - -
-Constructor Summary
ElasticsearchPartQuery(ElasticsearchQueryMethod method, - ElasticsearchOperations elasticsearchOperations) - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
- CriteriaQuerycreateQuery(org.springframework.data.repository.query.ParametersParameterAccessor accessor) - -
-           
- Objectexecute(Object[] parameters) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery
getQueryMethod
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchPartQuery

-
-public ElasticsearchPartQuery(ElasticsearchQueryMethod method,
-                              ElasticsearchOperations elasticsearchOperations)
-
-
- - - - - - - - -
-Method Detail
- -

-execute

-
-public Object execute(Object[] parameters)
-
-
-
-
-
-
- -

-createQuery

-
-public CriteriaQuery createQuery(org.springframework.data.repository.query.ParametersParameterAccessor accessor)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.html deleted file mode 100644 index ad9596c7..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchQueryMethod.html +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - - -ElasticsearchQueryMethod (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.query -
-Class ElasticsearchQueryMethod

-
-java.lang.Object
-  extended by org.springframework.data.repository.query.QueryMethod
-      extended by org.springframework.data.elasticsearch.repository.query.ElasticsearchQueryMethod
-
-
-
-
public class ElasticsearchQueryMethod
extends org.springframework.data.repository.query.QueryMethod
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
ElasticsearchQueryMethod(Method method, - org.springframework.data.repository.core.RepositoryMetadata metadata, - ElasticsearchEntityInformationCreator elasticsearchEntityInformationCreator) - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
- StringgetAnnotatedQuery() - -
-           
- booleanhasAnnotatedQuery() - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.repository.query.QueryMethod
createParameters, getDomainClass, getEntityInformation, getName, getNamedQueryName, getParameters, getReturnedObjectType, isCollectionQuery, isModifyingQuery, isPageQuery, isQueryForEntity, toString
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchQueryMethod

-
-public ElasticsearchQueryMethod(Method method,
-                                org.springframework.data.repository.core.RepositoryMetadata metadata,
-                                ElasticsearchEntityInformationCreator elasticsearchEntityInformationCreator)
-
-
- - - - - - - - -
-Method Detail
- -

-hasAnnotatedQuery

-
-public boolean hasAnnotatedQuery()
-
-
-
-
-
-
- -

-getAnnotatedQuery

-
-public String getAnnotatedQuery()
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.html deleted file mode 100644 index b3e6967c..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/ElasticsearchStringQuery.html +++ /dev/null @@ -1,307 +0,0 @@ - - - - - - - -ElasticsearchStringQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.query -
-Class ElasticsearchStringQuery

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery
-      extended by org.springframework.data.elasticsearch.repository.query.ElasticsearchStringQuery
-
-
-
All Implemented Interfaces:
org.springframework.data.repository.query.RepositoryQuery
-
-
-
-
public class ElasticsearchStringQuery
extends AbstractElasticsearchRepositoryQuery
- - -

-


- -

- - - - - - - -
-Field Summary
- - - - - - - -
Fields inherited from class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery
elasticsearchOperations, queryMethod
-  - - - - - - - - - - -
-Constructor Summary
ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod, - ElasticsearchOperations elasticsearchOperations, - String query) - -
-           
-  - - - - - - - - - - - - - - - -
-Method Summary
-protected  StringQuerycreateQuery(org.springframework.data.repository.query.ParametersParameterAccessor parameterAccessor) - -
-           
- Objectexecute(Object[] parameters) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery
getQueryMethod
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchStringQuery

-
-public ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod,
-                                ElasticsearchOperations elasticsearchOperations,
-                                String query)
-
-
- - - - - - - - -
-Method Detail
- -

-execute

-
-public Object execute(Object[] parameters)
-
-
-
-
-
-
- -

-createQuery

-
-protected StringQuery createQuery(org.springframework.data.repository.query.ParametersParameterAccessor parameterAccessor)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/AbstractElasticsearchRepositoryQuery.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/AbstractElasticsearchRepositoryQuery.html deleted file mode 100644 index 59524b07..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/AbstractElasticsearchRepositoryQuery.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.query.AbstractElasticsearchRepositoryQuery

-
- - - - - - - - - -
-Packages that use AbstractElasticsearchRepositoryQuery
org.springframework.data.elasticsearch.repository.query  
-  -

- - - - - -
-Uses of AbstractElasticsearchRepositoryQuery in org.springframework.data.elasticsearch.repository.query
-  -

- - - - - - - - - - - - - -
Subclasses of AbstractElasticsearchRepositoryQuery in org.springframework.data.elasticsearch.repository.query
- classElasticsearchPartQuery - -
-           
- classElasticsearchStringQuery - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchPartQuery.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchPartQuery.html deleted file mode 100644 index eb7f15ea..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchPartQuery.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery

-
-No usage of org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchQueryMethod.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchQueryMethod.html deleted file mode 100644 index e22c36eb..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchQueryMethod.html +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.query.ElasticsearchQueryMethod (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.query.ElasticsearchQueryMethod

-
- - - - - - - - - -
-Packages that use ElasticsearchQueryMethod
org.springframework.data.elasticsearch.repository.query  
-  -

- - - - - -
-Uses of ElasticsearchQueryMethod in org.springframework.data.elasticsearch.repository.query
-  -

- - - - - - - - - -
Fields in org.springframework.data.elasticsearch.repository.query declared as ElasticsearchQueryMethod
-protected  ElasticsearchQueryMethodAbstractElasticsearchRepositoryQuery.queryMethod - -
-           
-  -

- - - - - - - - - - - - - - -
Constructors in org.springframework.data.elasticsearch.repository.query with parameters of type ElasticsearchQueryMethod
AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod, - ElasticsearchOperations elasticsearchOperations) - -
-           
ElasticsearchPartQuery(ElasticsearchQueryMethod method, - ElasticsearchOperations elasticsearchOperations) - -
-           
ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod, - ElasticsearchOperations elasticsearchOperations, - String query) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchStringQuery.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchStringQuery.html deleted file mode 100644 index 814b059a..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/class-use/ElasticsearchStringQuery.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.query.ElasticsearchStringQuery (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.query.ElasticsearchStringQuery

-
-No usage of org.springframework.data.elasticsearch.repository.query.ElasticsearchStringQuery -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-frame.html deleted file mode 100644 index 4f34c9db..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-frame.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.repository.query - - - - -
-Classes  - -
-AbstractElasticsearchRepositoryQuery -
-ElasticsearchPartQuery -
-ElasticsearchQueryMethod -
-ElasticsearchStringQuery
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-summary.html deleted file mode 100644 index dfdc0463..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-summary.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.repository.query -

- - - - - - - - - - - - - - - - - - - - - -
-Class Summary
AbstractElasticsearchRepositoryQuery 
ElasticsearchPartQuery 
ElasticsearchQueryMethod 
ElasticsearchStringQuery 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-tree.html deleted file mode 100644 index 72697265..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-tree.html +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.query Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.repository.query -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-use.html deleted file mode 100644 index 2cf2976e..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/package-use.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.repository.query (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.repository.query

-
- - - - - - - - - -
-Packages that use org.springframework.data.elasticsearch.repository.query
org.springframework.data.elasticsearch.repository.query  
-  -

- - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.repository.query used by org.springframework.data.elasticsearch.repository.query
AbstractElasticsearchRepositoryQuery - -
-           
ElasticsearchQueryMethod - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/ElasticsearchQueryCreator.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/ElasticsearchQueryCreator.html deleted file mode 100644 index a7597d9b..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/ElasticsearchQueryCreator.html +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - -ElasticsearchQueryCreator (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.query.parser -
-Class ElasticsearchQueryCreator

-
-java.lang.Object
-  extended by org.springframework.data.repository.query.parser.AbstractQueryCreator<CriteriaQuery,CriteriaQuery>
-      extended by org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator
-
-
-
-
public class ElasticsearchQueryCreator
extends org.springframework.data.repository.query.parser.AbstractQueryCreator<CriteriaQuery,CriteriaQuery>
- - -

-


- -

- - - - - - - - - - - - - - -
-Constructor Summary
ElasticsearchQueryCreator(org.springframework.data.repository.query.parser.PartTree tree, - org.springframework.data.mapping.context.MappingContext<?,ElasticsearchPersistentProperty> context) - -
-           
ElasticsearchQueryCreator(org.springframework.data.repository.query.parser.PartTree tree, - org.springframework.data.repository.query.ParameterAccessor parameters, - org.springframework.data.mapping.context.MappingContext<?,ElasticsearchPersistentProperty> context) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
-protected  CriteriaQueryand(org.springframework.data.repository.query.parser.Part part, - CriteriaQuery base, - Iterator<Object> iterator) - -
-           
-protected  CriteriaQuerycomplete(CriteriaQuery query, - org.springframework.data.domain.Sort sort) - -
-           
-protected  CriteriaQuerycreate(org.springframework.data.repository.query.parser.Part part, - Iterator<Object> iterator) - -
-           
-protected  CriteriaQueryor(CriteriaQuery base, - CriteriaQuery query) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.repository.query.parser.AbstractQueryCreator
createQuery, createQuery
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchQueryCreator

-
-public ElasticsearchQueryCreator(org.springframework.data.repository.query.parser.PartTree tree,
-                                 org.springframework.data.repository.query.ParameterAccessor parameters,
-                                 org.springframework.data.mapping.context.MappingContext<?,ElasticsearchPersistentProperty> context)
-
-
-
- -

-ElasticsearchQueryCreator

-
-public ElasticsearchQueryCreator(org.springframework.data.repository.query.parser.PartTree tree,
-                                 org.springframework.data.mapping.context.MappingContext<?,ElasticsearchPersistentProperty> context)
-
-
- - - - - - - - -
-Method Detail
- -

-create

-
-protected CriteriaQuery create(org.springframework.data.repository.query.parser.Part part,
-                               Iterator<Object> iterator)
-
-
-
Specified by:
create in class org.springframework.data.repository.query.parser.AbstractQueryCreator<CriteriaQuery,CriteriaQuery>
-
-
-
-
-
-
- -

-and

-
-protected CriteriaQuery and(org.springframework.data.repository.query.parser.Part part,
-                            CriteriaQuery base,
-                            Iterator<Object> iterator)
-
-
-
Specified by:
and in class org.springframework.data.repository.query.parser.AbstractQueryCreator<CriteriaQuery,CriteriaQuery>
-
-
-
-
-
-
- -

-or

-
-protected CriteriaQuery or(CriteriaQuery base,
-                           CriteriaQuery query)
-
-
-
Specified by:
or in class org.springframework.data.repository.query.parser.AbstractQueryCreator<CriteriaQuery,CriteriaQuery>
-
-
-
-
-
-
- -

-complete

-
-protected CriteriaQuery complete(CriteriaQuery query,
-                                 org.springframework.data.domain.Sort sort)
-
-
-
Specified by:
complete in class org.springframework.data.repository.query.parser.AbstractQueryCreator<CriteriaQuery,CriteriaQuery>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/class-use/ElasticsearchQueryCreator.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/class-use/ElasticsearchQueryCreator.html deleted file mode 100644 index a66d2dc6..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/class-use/ElasticsearchQueryCreator.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator

-
-No usage of org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-frame.html deleted file mode 100644 index 6bb3d816..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-frame.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.query.parser (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.repository.query.parser - - - - -
-Classes  - -
-ElasticsearchQueryCreator
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-summary.html deleted file mode 100644 index 822e6c7e..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-summary.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.query.parser (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.repository.query.parser -

- - - - - - - - - -
-Class Summary
ElasticsearchQueryCreator 
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-tree.html deleted file mode 100644 index a5e55ded..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-tree.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.query.parser Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.repository.query.parser -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

-
    -
  • java.lang.Object
      -
    • org.springframework.data.repository.query.parser.AbstractQueryCreator<T,S> -
    -
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-use.html deleted file mode 100644 index 523da3e9..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/query/parser/package-use.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.repository.query.parser (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.repository.query.parser

-
-No usage of org.springframework.data.elasticsearch.repository.query.parser -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformation.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformation.html deleted file mode 100644 index d69b33d4..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformation.html +++ /dev/null @@ -1,280 +0,0 @@ - - - - - - - -ElasticsearchEntityInformation (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.support -
-Interface ElasticsearchEntityInformation<T,ID extends Serializable>

-
-
Type Parameters:
T -
ID -
-
-
All Superinterfaces:
org.springframework.data.repository.core.EntityInformation<T,ID>, org.springframework.data.repository.core.EntityMetadata<T>
-
-
-
All Known Implementing Classes:
MappingElasticsearchEntityInformation
-
-
-
-
public interface ElasticsearchEntityInformation<T,ID extends Serializable>
extends org.springframework.data.repository.core.EntityInformation<T,ID>
- - -

-


- -

- - - - - - - - - - - - - - - - - - - - -
-Method Summary
- StringgetIdAttribute() - -
-           
- StringgetIndexName() - -
-           
- StringgetType() - -
-           
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.core.EntityInformation
getId, getIdType, isNew
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.core.EntityMetadata
getJavaType
-  -

- - - - - - - - -
-Method Detail
- -

-getIdAttribute

-
-String getIdAttribute()
-
-
-
-
-
-
-
-
-
- -

-getIndexName

-
-String getIndexName()
-
-
-
-
-
-
-
-
-
- -

-getType

-
-String getType()
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreator.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreator.html deleted file mode 100644 index 05a70c03..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreator.html +++ /dev/null @@ -1,219 +0,0 @@ - - - - - - - -ElasticsearchEntityInformationCreator (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.support -
-Interface ElasticsearchEntityInformationCreator

-
-
All Known Implementing Classes:
ElasticsearchEntityInformationCreatorImpl
-
-
-
-
public interface ElasticsearchEntityInformationCreator
- - -

-


- -

- - - - - - - - - - - - -
-Method Summary
- - - - - -
-<T,ID extends Serializable> -
-ElasticsearchEntityInformation<T,ID>
-
getEntityInformation(Class<T> domainClass) - -
-           
-  -

- - - - - - - - -
-Method Detail
- -

-getEntityInformation

-
-<T,ID extends Serializable> ElasticsearchEntityInformation<T,ID> getEntityInformation(Class<T> domainClass)
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreatorImpl.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreatorImpl.html deleted file mode 100644 index 08a4e21f..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchEntityInformationCreatorImpl.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - - - - -ElasticsearchEntityInformationCreatorImpl (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.support -
-Class ElasticsearchEntityInformationCreatorImpl

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreatorImpl
-
-
-
All Implemented Interfaces:
ElasticsearchEntityInformationCreator
-
-
-
-
public class ElasticsearchEntityInformationCreatorImpl
extends Object
implements ElasticsearchEntityInformationCreator
- - -

-


- -

- - - - - - - - - - - -
-Constructor Summary
ElasticsearchEntityInformationCreatorImpl(org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext) - -
-           
-  - - - - - - - - - - - -
-Method Summary
- - - - - -
-<T,ID extends Serializable> -
-ElasticsearchEntityInformation<T,ID>
-
getEntityInformation(Class<T> domainClass) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchEntityInformationCreatorImpl

-
-public ElasticsearchEntityInformationCreatorImpl(org.springframework.data.mapping.context.MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext)
-
-
- - - - - - - - -
-Method Detail
- -

-getEntityInformation

-
-public <T,ID extends Serializable> ElasticsearchEntityInformation<T,ID> getEntityInformation(Class<T> domainClass)
-
-
-
Specified by:
getEntityInformation in interface ElasticsearchEntityInformationCreator
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactory.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactory.html deleted file mode 100644 index 503d5464..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactory.html +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - -ElasticsearchRepositoryFactory (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.support -
-Class ElasticsearchRepositoryFactory

-
-java.lang.Object
-  extended by org.springframework.data.repository.core.support.RepositoryFactorySupport
-      extended by org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory
-
-
-
-
public class ElasticsearchRepositoryFactory
extends org.springframework.data.repository.core.support.RepositoryFactorySupport
- - -

-Factory to create ElasticsearchRepository -

- -

-


- -

- - - - - - - -
-Nested Class Summary
- - - - - - - -
Nested classes/interfaces inherited from class org.springframework.data.repository.core.support.RepositoryFactorySupport
org.springframework.data.repository.core.support.RepositoryFactorySupport.QueryExecutorMethodInterceptor
-  - - - - - - - - - - - -
-Constructor Summary
ElasticsearchRepositoryFactory(ElasticsearchOperations elasticsearchOperations) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- - - - - -
-<T,ID extends Serializable> -
-ElasticsearchEntityInformation<T,ID>
-
getEntityInformation(Class<T> domainClass) - -
-           
-protected  org.springframework.data.repository.query.QueryLookupStrategygetQueryLookupStrategy(org.springframework.data.repository.query.QueryLookupStrategy.Key key) - -
-           
-protected  Class<?>getRepositoryBaseClass(org.springframework.data.repository.core.RepositoryMetadata metadata) - -
-           
-protected  ObjectgetTargetRepository(org.springframework.data.repository.core.RepositoryMetadata metadata) - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.repository.core.support.RepositoryFactorySupport
addQueryCreationListener, addRepositoryProxyPostProcessor, getQueryMethods, getRepository, getRepository, getRepositoryInformation, setNamedQueries, setQueryLookupStrategyKey, validate
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchRepositoryFactory

-
-public ElasticsearchRepositoryFactory(ElasticsearchOperations elasticsearchOperations)
-
-
- - - - - - - - -
-Method Detail
- -

-getEntityInformation

-
-public <T,ID extends Serializable> ElasticsearchEntityInformation<T,ID> getEntityInformation(Class<T> domainClass)
-
-
-
Specified by:
getEntityInformation in class org.springframework.data.repository.core.support.RepositoryFactorySupport
-
-
-
-
-
-
- -

-getTargetRepository

-
-protected Object getTargetRepository(org.springframework.data.repository.core.RepositoryMetadata metadata)
-
-
-
Specified by:
getTargetRepository in class org.springframework.data.repository.core.support.RepositoryFactorySupport
-
-
-
-
-
-
- -

-getRepositoryBaseClass

-
-protected Class<?> getRepositoryBaseClass(org.springframework.data.repository.core.RepositoryMetadata metadata)
-
-
-
Specified by:
getRepositoryBaseClass in class org.springframework.data.repository.core.support.RepositoryFactorySupport
-
-
-
-
-
-
- -

-getQueryLookupStrategy

-
-protected org.springframework.data.repository.query.QueryLookupStrategy getQueryLookupStrategy(org.springframework.data.repository.query.QueryLookupStrategy.Key key)
-
-
-
Overrides:
getQueryLookupStrategy in class org.springframework.data.repository.core.support.RepositoryFactorySupport
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactoryBean.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactoryBean.html deleted file mode 100644 index 2199e7ab..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/ElasticsearchRepositoryFactoryBean.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - -ElasticsearchRepositoryFactoryBean (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.support -
-Class ElasticsearchRepositoryFactoryBean<T extends org.springframework.data.repository.Repository<S,ID>,S,ID extends Serializable>

-
-java.lang.Object
-  extended by org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport<T,S,ID>
-      extended by org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean<T,S,ID>
-
-
-
All Implemented Interfaces:
FactoryBean<T>, InitializingBean, org.springframework.data.repository.core.support.RepositoryFactoryInformation<S,ID>
-
-
-
-
public class ElasticsearchRepositoryFactoryBean<T extends org.springframework.data.repository.Repository<S,ID>,S,ID extends Serializable>
extends org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport<T,S,ID>
- - -

-Spring FactoryBean implementation to ease container based configuration for XML namespace and JavaConfig. -

- -

-


- -

- - - - - - - - - - - -
-Constructor Summary
ElasticsearchRepositoryFactoryBean() - -
-           
-  - - - - - - - - - - - - - - - - - - - -
-Method Summary
- voidafterPropertiesSet() - -
-           
-protected  org.springframework.data.repository.core.support.RepositoryFactorySupportcreateRepositoryFactory() - -
-           
- voidsetElasticsearchOperations(ElasticsearchOperations operations) - -
-          Configures the ElasticsearchOperations to be used to create Elasticsearch repositories.
- - - - - - - -
Methods inherited from class org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport
getEntityInformation, getObject, getObjectType, getQueryMethods, getRepositoryInformation, isSingleton, setCustomImplementation, setNamedQueries, setQueryLookupStrategyKey, setRepositoryInterface
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-ElasticsearchRepositoryFactoryBean

-
-public ElasticsearchRepositoryFactoryBean()
-
-
- - - - - - - - -
-Method Detail
- -

-setElasticsearchOperations

-
-public void setElasticsearchOperations(ElasticsearchOperations operations)
-
-
Configures the ElasticsearchOperations to be used to create Elasticsearch repositories. -

-

-
Parameters:
operations - the operations to set
-
-
-
- -

-afterPropertiesSet

-
-public void afterPropertiesSet()
-
-
-
Specified by:
afterPropertiesSet in interface InitializingBean
Overrides:
afterPropertiesSet in class org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport<T extends org.springframework.data.repository.Repository<S,ID>,S,ID extends Serializable>
-
-
-
-
-
-
- -

-createRepositoryFactory

-
-protected org.springframework.data.repository.core.support.RepositoryFactorySupport createRepositoryFactory()
-
-
-
Specified by:
createRepositoryFactory in class org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport<T extends org.springframework.data.repository.Repository<S,ID>,S,ID extends Serializable>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/MappingElasticsearchEntityInformation.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/MappingElasticsearchEntityInformation.html deleted file mode 100644 index 65767df1..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/MappingElasticsearchEntityInformation.html +++ /dev/null @@ -1,399 +0,0 @@ - - - - - - - -MappingElasticsearchEntityInformation (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.support -
-Class MappingElasticsearchEntityInformation<T,ID extends Serializable>

-
-java.lang.Object
-  extended by org.springframework.data.repository.core.support.AbstractEntityInformation<T,ID>
-      extended by org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation<T,ID>
-
-
-
Type Parameters:
T -
ID -
-
-
All Implemented Interfaces:
ElasticsearchEntityInformation<T,ID>, org.springframework.data.repository.core.EntityInformation<T,ID>, org.springframework.data.repository.core.EntityMetadata<T>
-
-
-
-
public class MappingElasticsearchEntityInformation<T,ID extends Serializable>
extends org.springframework.data.repository.core.support.AbstractEntityInformation<T,ID>
implements ElasticsearchEntityInformation<T,ID>
- - -

-Elasticsearch specific implementation of AbstractEntityInformation -

- -

-


- -

- - - - - - - - - - - - - - -
-Constructor Summary
MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T> entity) - -
-           
MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T> entity, - String indexName, - String type) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- IDgetId(T entity) - -
-           
- StringgetIdAttribute() - -
-           
- Class<ID>getIdType() - -
-           
- StringgetIndexName() - -
-           
- StringgetType() - -
-           
- - - - - - - -
Methods inherited from class org.springframework.data.repository.core.support.AbstractEntityInformation
getJavaType, isNew
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.core.EntityInformation
isNew
- - - - - - - -
Methods inherited from interface org.springframework.data.repository.core.EntityMetadata
getJavaType
-  -

- - - - - - - - -
-Constructor Detail
- -

-MappingElasticsearchEntityInformation

-
-public MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T> entity)
-
-
-
- -

-MappingElasticsearchEntityInformation

-
-public MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T> entity,
-                                             String indexName,
-                                             String type)
-
-
- - - - - - - - -
-Method Detail
- -

-getId

-
-public ID getId(T entity)
-
-
-
Specified by:
getId in interface org.springframework.data.repository.core.EntityInformation<T,ID extends Serializable>
-
-
-
-
-
-
- -

-getIdType

-
-public Class<ID> getIdType()
-
-
-
Specified by:
getIdType in interface org.springframework.data.repository.core.EntityInformation<T,ID extends Serializable>
-
-
-
-
-
-
- -

-getIdAttribute

-
-public String getIdAttribute()
-
-
-
Specified by:
getIdAttribute in interface ElasticsearchEntityInformation<T,ID extends Serializable>
-
-
-
-
-
-
- -

-getIndexName

-
-public String getIndexName()
-
-
-
Specified by:
getIndexName in interface ElasticsearchEntityInformation<T,ID extends Serializable>
-
-
-
-
-
-
- -

-getType

-
-public String getType()
-
-
-
Specified by:
getType in interface ElasticsearchEntityInformation<T,ID extends Serializable>
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.html deleted file mode 100644 index 3adc4913..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/SimpleElasticsearchRepository.html +++ /dev/null @@ -1,796 +0,0 @@ - - - - - - - -SimpleElasticsearchRepository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
- -

- -org.springframework.data.elasticsearch.repository.support -
-Class SimpleElasticsearchRepository<T>

-
-java.lang.Object
-  extended by org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository<T>
-
-
-
Type Parameters:
T -
-
-
All Implemented Interfaces:
ElasticsearchCrudRepository<T,String>, ElasticsearchRepository<T,String>, org.springframework.data.repository.CrudRepository<T,String>, org.springframework.data.repository.PagingAndSortingRepository<T,String>, org.springframework.data.repository.Repository<T,String>
-
-
-
-
public class SimpleElasticsearchRepository<T>
extends Object
implements ElasticsearchRepository<T,String>
- - -

-Elasticsearch specific repository implementation. Likely to be used as target within ElasticsearchRepositoryFactory -

- -

-


- -

- - - - - - - - - - - - - - - - - -
-Constructor Summary
SimpleElasticsearchRepository() - -
-           
SimpleElasticsearchRepository(ElasticsearchEntityInformation<T,String> metadata, - ElasticsearchOperations elasticsearchOperations) - -
-           
SimpleElasticsearchRepository(ElasticsearchOperations elasticsearchOperations) - -
-           
-  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Method Summary
- longcount() - -
-           
- voidcreateIndex() - -
-           
- voiddelete(Iterable<? extends T> entities) - -
-           
- voiddelete(String id) - -
-           
- voiddelete(T entity) - -
-           
- voiddeleteAll() - -
-           
- booleanexists(String id) - -
-           
- Iterable<T>findAll() - -
-           
- Iterable<T>findAll(Iterable<String> ids) - -
-           
- org.springframework.data.domain.Page<T>findAll(org.springframework.data.domain.Pageable pageable) - -
-           
- Iterable<T>findAll(org.springframework.data.domain.Sort sort) - -
-           
- TfindOne(String id) - -
-           
- Class<T>getEntityClass() - -
-           
- - - - - -
-<S extends T> -
-S
-
index(S entity) - -
-           
- - - - - -
-<S extends T> -
-Iterable<S>
-
save(Iterable<S> entities) - -
-           
- - - - - -
-<S extends T> -
-List<S>
-
save(List<S> entities) - -
-           
- - - - - -
-<S extends T> -
-S
-
save(S entity) - -
-           
- Iterable<T>search(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery) - -
-           
- org.springframework.data.domain.Page<T>search(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery, - org.springframework.data.domain.Pageable pageable) - -
-           
- org.springframework.data.domain.Page<T>search(SearchQuery query) - -
-           
- voidsetElasticsearchOperations(ElasticsearchOperations elasticsearchOperations) - -
-           
- voidsetEntityClass(Class<T> entityClass) - -
-           
- - - - - - - -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-  -

- - - - - - - - -
-Constructor Detail
- -

-SimpleElasticsearchRepository

-
-public SimpleElasticsearchRepository()
-
-
-
- -

-SimpleElasticsearchRepository

-
-public SimpleElasticsearchRepository(ElasticsearchOperations elasticsearchOperations)
-
-
-
- -

-SimpleElasticsearchRepository

-
-public SimpleElasticsearchRepository(ElasticsearchEntityInformation<T,String> metadata,
-                                     ElasticsearchOperations elasticsearchOperations)
-
-
- - - - - - - - -
-Method Detail
- -

-createIndex

-
-@PostConstruct
-public void createIndex()
-
-
-
-
-
-
-
-
-
- -

-findOne

-
-public T findOne(String id)
-
-
-
Specified by:
findOne in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-findAll

-
-public Iterable<T> findAll()
-
-
-
Specified by:
findAll in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-findAll

-
-public org.springframework.data.domain.Page<T> findAll(org.springframework.data.domain.Pageable pageable)
-
-
-
Specified by:
findAll in interface org.springframework.data.repository.PagingAndSortingRepository<T,String>
-
-
-
-
-
-
- -

-findAll

-
-public Iterable<T> findAll(org.springframework.data.domain.Sort sort)
-
-
-
Specified by:
findAll in interface org.springframework.data.repository.PagingAndSortingRepository<T,String>
-
-
-
-
-
-
- -

-findAll

-
-public Iterable<T> findAll(Iterable<String> ids)
-
-
-
Specified by:
findAll in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-count

-
-public long count()
-
-
-
Specified by:
count in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-save

-
-public <S extends T> S save(S entity)
-
-
-
Specified by:
save in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-save

-
-public <S extends T> List<S> save(List<S> entities)
-
-
-
Specified by:
save in interface ElasticsearchCrudRepository<T,String>
-
-
-
-
-
-
- -

-index

-
-public <S extends T> S index(S entity)
-
-
-
Specified by:
index in interface ElasticsearchRepository<T,String>
-
-
-
-
-
-
- -

-save

-
-public <S extends T> Iterable<S> save(Iterable<S> entities)
-
-
-
Specified by:
save in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-exists

-
-public boolean exists(String id)
-
-
-
Specified by:
exists in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-search

-
-public Iterable<T> search(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery)
-
-
-
Specified by:
search in interface ElasticsearchRepository<T,String>
-
-
-
-
-
-
- -

-search

-
-public org.springframework.data.domain.Page<T> search(org.elasticsearch.index.query.QueryBuilder elasticsearchQuery,
-                                                      org.springframework.data.domain.Pageable pageable)
-
-
-
Specified by:
search in interface ElasticsearchRepository<T,String>
-
-
-
-
-
-
- -

-search

-
-public org.springframework.data.domain.Page<T> search(SearchQuery query)
-
-
-
Specified by:
search in interface ElasticsearchRepository<T,String>
-
-
-
-
-
-
- -

-delete

-
-public void delete(String id)
-
-
-
Specified by:
delete in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-delete

-
-public void delete(T entity)
-
-
-
Specified by:
delete in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-delete

-
-public void delete(Iterable<? extends T> entities)
-
-
-
Specified by:
delete in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-deleteAll

-
-public void deleteAll()
-
-
-
Specified by:
deleteAll in interface org.springframework.data.repository.CrudRepository<T,String>
-
-
-
-
-
-
- -

-getEntityClass

-
-public Class<T> getEntityClass()
-
-
-
-
-
-
-
-
-
- -

-setEntityClass

-
-public final void setEntityClass(Class<T> entityClass)
-
-
-
-
-
-
-
-
-
- -

-setElasticsearchOperations

-
-public final void setElasticsearchOperations(ElasticsearchOperations elasticsearchOperations)
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformation.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformation.html deleted file mode 100644 index a791bb35..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformation.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformation (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformation

-
- - - - - - - - - -
-Packages that use ElasticsearchEntityInformation
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - -
-Uses of ElasticsearchEntityInformation in org.springframework.data.elasticsearch.repository.support
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.repository.support that implement ElasticsearchEntityInformation
- classMappingElasticsearchEntityInformation<T,ID extends Serializable> - -
-          Elasticsearch specific implementation of AbstractEntityInformation
-  -

- - - - - - - - - - - - - - - - - -
Methods in org.springframework.data.elasticsearch.repository.support that return ElasticsearchEntityInformation
- - - - - -
-<T,ID extends Serializable> -
-ElasticsearchEntityInformation<T,ID>
-
ElasticsearchRepositoryFactory.getEntityInformation(Class<T> domainClass) - -
-           
- - - - - -
-<T,ID extends Serializable> -
-ElasticsearchEntityInformation<T,ID>
-
ElasticsearchEntityInformationCreatorImpl.getEntityInformation(Class<T> domainClass) - -
-           
- - - - - -
-<T,ID extends Serializable> -
-ElasticsearchEntityInformation<T,ID>
-
ElasticsearchEntityInformationCreator.getEntityInformation(Class<T> domainClass) - -
-           
-  -

- - - - - - - - -
Constructors in org.springframework.data.elasticsearch.repository.support with parameters of type ElasticsearchEntityInformation
SimpleElasticsearchRepository(ElasticsearchEntityInformation<T,String> metadata, - ElasticsearchOperations elasticsearchOperations) - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformationCreator.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformationCreator.html deleted file mode 100644 index 4338bdf2..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformationCreator.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - -Uses of Interface org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreator (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Interface
org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreator

-
- - - - - - - - - - - - - -
-Packages that use ElasticsearchEntityInformationCreator
org.springframework.data.elasticsearch.repository.query  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - -
-Uses of ElasticsearchEntityInformationCreator in org.springframework.data.elasticsearch.repository.query
-  -

- - - - - - - - -
Constructors in org.springframework.data.elasticsearch.repository.query with parameters of type ElasticsearchEntityInformationCreator
ElasticsearchQueryMethod(Method method, - org.springframework.data.repository.core.RepositoryMetadata metadata, - ElasticsearchEntityInformationCreator elasticsearchEntityInformationCreator) - -
-           
-  -

- - - - - -
-Uses of ElasticsearchEntityInformationCreator in org.springframework.data.elasticsearch.repository.support
-  -

- - - - - - - - - -
Classes in org.springframework.data.elasticsearch.repository.support that implement ElasticsearchEntityInformationCreator
- classElasticsearchEntityInformationCreatorImpl - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformationCreatorImpl.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformationCreatorImpl.html deleted file mode 100644 index 6dc23902..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchEntityInformationCreatorImpl.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreatorImpl (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreatorImpl

-
-No usage of org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreatorImpl -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchRepositoryFactory.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchRepositoryFactory.html deleted file mode 100644 index e2ebb0fd..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchRepositoryFactory.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory

-
-No usage of org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchRepositoryFactoryBean.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchRepositoryFactoryBean.html deleted file mode 100644 index c637bcf8..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/ElasticsearchRepositoryFactoryBean.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean

-
-No usage of org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/MappingElasticsearchEntityInformation.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/MappingElasticsearchEntityInformation.html deleted file mode 100644 index 90f45a3b..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/MappingElasticsearchEntityInformation.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation

-
-No usage of org.springframework.data.elasticsearch.repository.support.MappingElasticsearchEntityInformation -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/SimpleElasticsearchRepository.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/SimpleElasticsearchRepository.html deleted file mode 100644 index 30ecbde5..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/class-use/SimpleElasticsearchRepository.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - -Uses of Class org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Class
org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository

-
-No usage of org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-frame.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-frame.html deleted file mode 100644 index f320cf09..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-frame.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.support (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - -org.springframework.data.elasticsearch.repository.support - - - - -
-Interfaces  - -
-ElasticsearchEntityInformation -
-ElasticsearchEntityInformationCreator
- - - - - - -
-Classes  - -
-ElasticsearchEntityInformationCreatorImpl -
-ElasticsearchRepositoryFactory -
-ElasticsearchRepositoryFactoryBean -
-MappingElasticsearchEntityInformation -
-SimpleElasticsearchRepository
- - - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-summary.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-summary.html deleted file mode 100644 index b8fe9f7b..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-summary.html +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.support (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-

-Package org.springframework.data.elasticsearch.repository.support -

- - - - - - - - - - - - - -
-Interface Summary
ElasticsearchEntityInformation<T,ID extends Serializable> 
ElasticsearchEntityInformationCreator 
-  - -

- - - - - - - - - - - - - - - - - - - - - - - - - -
-Class Summary
ElasticsearchEntityInformationCreatorImpl 
ElasticsearchRepositoryFactoryFactory to create ElasticsearchRepository
ElasticsearchRepositoryFactoryBean<T extends Repository<S,ID>,S,ID extends Serializable>Spring FactoryBean implementation to ease container based configuration for XML namespace and JavaConfig.
MappingElasticsearchEntityInformation<T,ID extends Serializable>Elasticsearch specific implementation of AbstractEntityInformation
SimpleElasticsearchRepository<T>Elasticsearch specific repository implementation.
-  - -

-

-
-
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-tree.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-tree.html deleted file mode 100644 index d90cc1f8..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-tree.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - -org.springframework.data.elasticsearch.repository.support Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For Package org.springframework.data.elasticsearch.repository.support -

-
-
-
Package Hierarchies:
All Packages
-
-

-Class Hierarchy -

- -

-Interface Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-use.html b/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-use.html deleted file mode 100644 index 1e881a27..00000000 --- a/site/apidocs/org/springframework/data/elasticsearch/repository/support/package-use.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - - -Uses of Package org.springframework.data.elasticsearch.repository.support (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Uses of Package
org.springframework.data.elasticsearch.repository.support

-
- - - - - - - - - - - - - -
-Packages that use org.springframework.data.elasticsearch.repository.support
org.springframework.data.elasticsearch.repository.query  
org.springframework.data.elasticsearch.repository.support  
-  -

- - - - - - - - -
-Classes in org.springframework.data.elasticsearch.repository.support used by org.springframework.data.elasticsearch.repository.query
ElasticsearchEntityInformationCreator - -
-           
-  -

- - - - - - - - - - - -
-Classes in org.springframework.data.elasticsearch.repository.support used by org.springframework.data.elasticsearch.repository.support
ElasticsearchEntityInformation - -
-           
ElasticsearchEntityInformationCreator - -
-           
-  -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/overview-frame.html b/site/apidocs/overview-frame.html deleted file mode 100644 index 100c58f2..00000000 --- a/site/apidocs/overview-frame.html +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - -Overview List (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - - - - -
-Spring Data Elasticsearch
- - - - - -
All Classes -

- -Packages -
-org.springframework.data.elasticsearch -
-org.springframework.data.elasticsearch.annotations -
-org.springframework.data.elasticsearch.client -
-org.springframework.data.elasticsearch.config -
-org.springframework.data.elasticsearch.core -
-org.springframework.data.elasticsearch.core.convert -
-org.springframework.data.elasticsearch.core.mapping -
-org.springframework.data.elasticsearch.core.query -
-org.springframework.data.elasticsearch.repository -
-org.springframework.data.elasticsearch.repository.cdi -
-org.springframework.data.elasticsearch.repository.config -
-org.springframework.data.elasticsearch.repository.query -
-org.springframework.data.elasticsearch.repository.query.parser -
-org.springframework.data.elasticsearch.repository.support -
-

- -

-  - - diff --git a/site/apidocs/overview-summary.html b/site/apidocs/overview-summary.html deleted file mode 100644 index 5d85ba64..00000000 --- a/site/apidocs/overview-summary.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - - - -Overview (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Packages
org.springframework.data.elasticsearch 
org.springframework.data.elasticsearch.annotations 
org.springframework.data.elasticsearch.client 
org.springframework.data.elasticsearch.config 
org.springframework.data.elasticsearch.core 
org.springframework.data.elasticsearch.core.convert 
org.springframework.data.elasticsearch.core.mapping 
org.springframework.data.elasticsearch.core.query 
org.springframework.data.elasticsearch.repository 
org.springframework.data.elasticsearch.repository.cdi 
org.springframework.data.elasticsearch.repository.config 
org.springframework.data.elasticsearch.repository.query 
org.springframework.data.elasticsearch.repository.query.parser 
org.springframework.data.elasticsearch.repository.support 
- -


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/overview-tree.html b/site/apidocs/overview-tree.html deleted file mode 100644 index 1e562c97..00000000 --- a/site/apidocs/overview-tree.html +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - -Class Hierarchy (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Hierarchy For All Packages

-
-
-
Package Hierarchies:
org.springframework.data.elasticsearch, org.springframework.data.elasticsearch.annotations, org.springframework.data.elasticsearch.client, org.springframework.data.elasticsearch.config, org.springframework.data.elasticsearch.core, org.springframework.data.elasticsearch.core.convert, org.springframework.data.elasticsearch.core.mapping, org.springframework.data.elasticsearch.core.query, org.springframework.data.elasticsearch.repository, org.springframework.data.elasticsearch.repository.cdi, org.springframework.data.elasticsearch.repository.config, org.springframework.data.elasticsearch.repository.query, org.springframework.data.elasticsearch.repository.query.parser, org.springframework.data.elasticsearch.repository.support
-
-

-Class Hierarchy -

- -

-Interface Hierarchy -

- -

-Annotation Type Hierarchy -

- -

-Enum Hierarchy -

- -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/package-list b/site/apidocs/package-list deleted file mode 100644 index bf6e7c75..00000000 --- a/site/apidocs/package-list +++ /dev/null @@ -1,14 +0,0 @@ -org.springframework.data.elasticsearch -org.springframework.data.elasticsearch.annotations -org.springframework.data.elasticsearch.client -org.springframework.data.elasticsearch.config -org.springframework.data.elasticsearch.core -org.springframework.data.elasticsearch.core.convert -org.springframework.data.elasticsearch.core.mapping -org.springframework.data.elasticsearch.core.query -org.springframework.data.elasticsearch.repository -org.springframework.data.elasticsearch.repository.cdi -org.springframework.data.elasticsearch.repository.config -org.springframework.data.elasticsearch.repository.query -org.springframework.data.elasticsearch.repository.query.parser -org.springframework.data.elasticsearch.repository.support diff --git a/site/apidocs/resources/background.gif b/site/apidocs/resources/background.gif deleted file mode 100644 index f471940fde2f39ef8943a6af9569bcf986b1579b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2313 zcmV+k3HJ6!Nk%w1VKM-40OkMy00030|NlK(aXwsfKV5S}VtGJbbVOr%L0@%CZH88Q zl{{NzcR^uxNo<2iYk@pjY)*5FJz8x~bc{)B zfk z+1T6M-s9WdW8dcJ-wO*3@9+W*5AY543-j^$^!EPz_4eHZ2#>)41`h@dc!2OAgN6$a zCS2I?;lqgx6IR4nkpTe;1RN0f=zxMq2O=q`94V5d$&e>Unta)^<;;^G3>e7yp=ZvW z6DIW3xpSvaogXF?_4%`@(V;s}NR^5J!3hrtJV@1QRV&r5S*L!zYE|rss${iFkg&!? zTN5V#)~=bmMorwgZsEpdOE)iExo+FO-8;8Kga{=HbSQCnF=E6W3?o*|ID%uwi5**> zJXy127Y9m+=HQ|PhXWi+xNwoWv}n_%Pq%(e+H~mGqhq5kv4Mo|-n~g|7!F*xZ{xv< zCpXS~dGg^IGK?4@J-T%b(XnUHFul6n<@2&4)zzyO2) z3Q8`i0+UKY*`$}e9mmp;tg*))`|PsK1|hAo%u0K$vDwm4gaSkm0j{`26k#qAKmbuhxZ#cquDR>B zD{s8+&TH-uNg$C#68QG}1HMBHfrP&L@@w$F_!itRzXdCN@V|LDAu%3!IDtq1#1UV7 z#1RxvT=B(DWbCoU5l=ia$Pp`Hgb_?Mp@hmtxZDI2N-)v#$}PXVvdm1d>@v(v`0TUJ zF)Pu89(q`zv=w^nVTIF3@3BYIPA}c`(@ZCAwbNBEt@PDUKe5CTR8aB66IE1!w%Amt zy+jpcn~k>GZpVFg+H6x{_uOksvBlq0OyT$6TyQZ37k(cOxZr|JEx1sGm<(M9gH z-~PMqyn|tT=))UN`|-FFFUA#KToK0fUOaz=7}Z~KeHhVC&%O27cTfHQ^WBU8z4p&T zp#>D|V}XShTD;Hx745Iz{`>K-Z$A|7!*Boo{mY;G21vjH8t{M!OrQc6$iN0V@PQDF zpadsK!3tXNf*8!81~qnXWuHZ)kytd=_y+ADWvw31ouV;CdZ#ya*(l7-A-C-Y^+iit8O zBy3*`Ls$|5Hn4m_^I^|C7{m7EFn|5vTk;|oywIgCc9Bb*=L+Y$)M>9GC<|HGs@6NB zHLY%03!dDf=eDRt2O6lVSFRcsuWZEwU?=z$CZ0W?#VJfdN>HG(l%oKpyiftJc|Y)xkjSJYCrQal-0PC~()T9xwF!Jf zVi1UA#3BBbh(i8r5&v#Pz!cF41KjbCc?4u2@@Q~oKLirt2TM30;y6b+zyX2`Yl9u; z`0$3;v0-YUp&7IIT!9-C*e{wE9>Kx3D)-;0v)C; KYxQGgum%9JOA&7X diff --git a/site/apidocs/resources/tab.gif b/site/apidocs/resources/tab.gif deleted file mode 100644 index 1a73a83be11dde2d0003b716ca778fafc6f34ad7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291 zcmZ?wbhEHbWM+_KxXJ(m|NsBLKh^ZZLaX-+EFVob+gGEtw?=DMmFBi`jWca}`|GrK zS84620CF`ibs3!R&_C0rf3ijIM6=$}M%|-Lx`!Hcc2;Oz>NdPT#q`cZlbij$jvbRk6R>8g*>}*b9E+WDwmpHAAxYzyT aU_pX{M6b8i>#Dq3onfZy}_nli%!Q$ZV%e&!tN2 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 YpWXKgmku8Vj|K)Vje`mzEKCg608Q#dYybcN diff --git a/site/apidocs/serialized-form.html b/site/apidocs/serialized-form.html deleted file mode 100644 index 13a350f6..00000000 --- a/site/apidocs/serialized-form.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - -Serialized Form (Spring Data Elasticsearch 1.0.0.BUILD-SNAPSHOT API) - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-
-

-Serialized Form

-
-
- - - - - -
-Package org.springframework.data.elasticsearch
- -

- - - - - -
-Class org.springframework.data.elasticsearch.ElasticsearchException extends RuntimeException implements Serializable
- -

- - - - - -
-Serialized Fields
- -

-failedDocuments

-
-Map<K,V> failedDocuments
-
-
-
-
- -

-


- - - - - - - - - - - - - - - -
-Spring Data Elasticsearch -
- - - -
-Copyright © 2012-2013 BioMed Central. All Rights Reserved. - - diff --git a/site/apidocs/stylesheet.css b/site/apidocs/stylesheet.css deleted file mode 100644 index cbd34286..00000000 --- a/site/apidocs/stylesheet.css +++ /dev/null @@ -1,29 +0,0 @@ -/* Javadoc style sheet */ - -/* Define colors, fonts and other style attributes here to override the defaults */ - -/* Page background color */ -body { background-color: #FFFFFF; color:#000000 } - -/* Headings */ -h1 { font-size: 145% } - -/* Table colors */ -.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */ -.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */ -.TableRowColor { background: #FFFFFF; color:#000000 } /* White */ - -/* Font used in left-hand frame lists */ -.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 } -.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } -.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 } - -/* Navigation bar fonts and colors */ -.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */ -.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */ -.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;} -.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;} - -.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} -.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000} - diff --git a/site/emma.zip b/site/emma.zip new file mode 100644 index 0000000000000000000000000000000000000000..b39e9250658935cf1ea4028af4316e75afe43647 GIT binary patch literal 119215 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 z

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

=cVexGdu zVLXjl(#b$WQf`2dM+Jqju>72!1at`zz_0)N1gm#~K%T~|uNbWlmi!bue`u{o1%=pS z{rcDs=n^mrP>8_@2;^yV75f7rhfP4pqk=+o4~E$J0L``Wq`CCxKp;L7rgNh1}3VOfazL9-t7v3lPZvh*?*^9xVAvc=^y=j|yr@=x`Ga zKHwG6-~xsCBZ2=jj$nQovryLBA0R1aK**zlLZ%n`Rto`rg8ZaU#_>QPPh*y}d&dK0 za2W`BR8Yv59(;Q_K%XGcfm%{Q3Icf=vn&UIkVD3+hvs@zP)H1VxmYg1lJX~yFb6#d zaje=GC-4PjFI7xL6Uh7JK^)?q4;@u;ATe=A1)&A8PDVLXjlDHT9NP!55R zM+JraTX*1Z2)^mRkf%O)&@AtvvH10GAA00bK^gz%&;FZHZS^nXf4E?!{0D|s8IbX) zpp1Xh&;HGrv-_9v)B_LB7d$XRDeoTacvMivzsVQ>W(d0c%XsR54`~Y@7{zu##-oBV z{!M1~H$&0=U&d4ai{cDq47LFoj|$58Hxtm`j4wX_GM>6$#x5WOjPw4XtsWJW@o#>N zzZt!O|1zF>Uuo>3hqfZ}12P^Jl=1IX^S>Euq5m?TI$ukDAcKD#$aqvx#=loO|7I*j z{>ymkdk3Y8AMCIc2YXl`dQ?!xzjt*0X4oeD%XsQ~QFeih&{!bjQ9&919!~w6v5@&M zEMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch0%   (0/1)0%   (0/5)0%   (0/27)0%   (0/11)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
ElasticsearchException.java0%   (0/1)0%   (0/5)0%   (0/27)0%   (0/11)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/1.html b/site/emma/_files/1.html deleted file mode 100644 index 18b1852e..00000000 --- a/site/emma/_files/1.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.repository.cdi]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.repository.cdi0%   (0/2)0%   (0/7)0%   (0/134)0%   (0/25)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
ElasticsearchRepositoryBean.java0%   (0/1)0%   (0/3)0%   (0/30)0%   (0/7)
ElasticsearchRepositoryExtension.java0%   (0/1)0%   (0/4)0%   (0/104)0%   (0/18)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/10.html b/site/emma/_files/10.html deleted file mode 100644 index b46b627e..00000000 --- a/site/emma/_files/10.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [CriteriaQuery.java]

nameclass, %method, %block, %line, %
CriteriaQuery.java100% (1/1)43%  (3/7)26%  (19/74)33%  (8/24)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class CriteriaQuery100% (1/1)43%  (3/7)26%  (19/74)33%  (8/24)
CriteriaQuery (): void 0%   (0/1)0%   (0/3)0%   (0/2)
addCriteria (Criteria): CriteriaQuery 0%   (0/1)0%   (0/17)0%   (0/5)
fromQuery (CriteriaQuery): Query 0%   (0/1)0%   (0/6)0%   (0/1)
fromQuery (CriteriaQuery, CriteriaQuery): CriteriaQuery 0%   (0/1)0%   (0/24)0%   (0/7)
CriteriaQuery (Criteria, Pageable): void 100% (1/1)69%  (11/16)83%  (5/6)
CriteriaQuery (Criteria): void 100% (1/1)100% (5/5)100% (2/2)
getCriteria (): Criteria 100% (1/1)100% (3/3)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.query;
17 
18 
19import org.springframework.data.domain.Pageable;
20import org.springframework.util.Assert;
21 
22public class CriteriaQuery extends AbstractQuery implements Query {
23 
24    private Criteria criteria;
25    private CriteriaQuery() {
26    }
27 
28    public CriteriaQuery(Criteria criteria) {
29        this(criteria, null);
30    }
31 
32    public CriteriaQuery(Criteria criteria, Pageable pageable) {
33        this.criteria = criteria;
34        this.pageable = pageable;
35        if (pageable != null) {
36            this.addSort(pageable.getSort());
37        }
38    }
39 
40    public static final Query fromQuery(CriteriaQuery source) {
41        return fromQuery(source, new CriteriaQuery());
42    }
43 
44    public static <T extends CriteriaQuery> T fromQuery(CriteriaQuery source, T destination) {
45        if (source == null || destination == null) {
46            return null;
47        }
48 
49        if (source.getCriteria() != null) {
50            destination.addCriteria(source.getCriteria());
51        }
52 
53        if (source.getSort() != null) {
54            destination.addSort(source.getSort());
55        }
56 
57        return destination;
58    }
59 
60    @SuppressWarnings("unchecked")
61    public final <T extends CriteriaQuery> T addCriteria(Criteria criteria) {
62        Assert.notNull(criteria, "Cannot add null criteria.");
63        if (this.criteria == null) {
64            this.criteria = criteria;
65        } else {
66            this.criteria.and(criteria);
67        }
68        return (T) this;
69    }
70 
71    public Criteria getCriteria() {
72        return this.criteria;
73    }
74 
75}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/11.html b/site/emma/_files/11.html deleted file mode 100644 index cd231cb3..00000000 --- a/site/emma/_files/11.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [StringQuery.java]

nameclass, %method, %block, %line, %
StringQuery.java100% (1/1)75%  (3/4)60%  (18/30)62%  (8/13)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class StringQuery100% (1/1)75%  (3/4)60%  (18/30)62%  (8/13)
StringQuery (String, Pageable, Sort): void 0%   (0/1)0%   (0/12)0%   (0/5)
StringQuery (String): void 100% (1/1)100% (6/6)100% (3/3)
StringQuery (String, Pageable): void 100% (1/1)100% (9/9)100% (4/4)
getSource (): String 100% (1/1)100% (3/3)100% (1/1)

1package org.springframework.data.elasticsearch.core.query;
2 
3 
4import org.springframework.data.domain.Pageable;
5import org.springframework.data.domain.Sort;
6 
7public class StringQuery extends AbstractQuery{
8 
9    private String source;
10 
11    public StringQuery(String source) {
12        this.source = source;
13    }
14 
15    public StringQuery(String source, Pageable pageable) {
16        this.source = source;
17        this.pageable = pageable;
18    }
19 
20    public StringQuery(String source, Pageable pageable, Sort sort) {
21        this.pageable = pageable;
22        this.sort = sort;
23        this.source = source;
24    }
25 
26 
27    public String getSource() {
28        return source;
29    }
30 
31}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/12.html b/site/emma/_files/12.html deleted file mode 100644 index add1b786..00000000 --- a/site/emma/_files/12.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [AbstractQuery.java]

nameclass, %method, %block, %line, %
AbstractQuery.java100% (1/1)100% (6/6)69%  (33/48)71%  (10/14)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AbstractQuery100% (1/1)100% (6/6)69%  (33/48)71%  (10/14)
addSort (Sort): Query 100% (1/1)21%  (4/19)33%  (2/6)
<static initializer> 100% (1/1)100% (7/7)100% (1/1)
AbstractQuery (): void 100% (1/1)100% (6/6)100% (2/2)
getPageable (): Pageable 100% (1/1)100% (3/3)100% (1/1)
getSort (): Sort 100% (1/1)100% (3/3)100% (1/1)
setPageable (Pageable): Query 100% (1/1)100% (10/10)100% (3/3)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.query;
17 
18import org.springframework.data.domain.PageRequest;
19import org.springframework.data.domain.Pageable;
20import org.springframework.data.domain.Sort;
21import org.springframework.util.Assert;
22 
23/**
24 * AbstractQuery
25 * 
26 */
27abstract class AbstractQuery  implements Query{
28 
29    private static final Pageable DEFAULT_PAGE = new PageRequest(0, DEFAULT_PAGE_SIZE);
30 
31    protected Pageable pageable = DEFAULT_PAGE;
32    protected Sort sort;
33 
34    @Override
35    public Sort getSort() {
36        return this.sort;
37    }
38 
39    @Override
40    public Pageable getPageable() {
41        return this.pageable;
42    }
43 
44    @Override
45    public final <T extends Query> T setPageable(Pageable pageable) {
46        Assert.notNull(pageable);
47 
48        this.pageable = pageable;
49        return (T) this.addSort(pageable.getSort());
50    }
51 
52    @SuppressWarnings("unchecked")
53    public final <T extends Query> T addSort(Sort sort) {
54        if (sort == null) {
55            return (T) this;
56        }
57 
58        if (this.sort == null) {
59            this.sort = sort;
60        } else {
61            this.sort = this.sort.and(sort);
62        }
63 
64        return (T) this;
65    }
66 
67}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/13.html b/site/emma/_files/13.html deleted file mode 100644 index ed529344..00000000 --- a/site/emma/_files/13.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [Criteria.java]

nameclass, %method, %block, %line, %
Criteria.java100% (4/4)73%  (36/49)70%  (419/600)74%  (77.9/106)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Criteria$OrCriteria100% (1/1)33%  (2/6)30%  (7/23)27%  (3/11)
Criteria$OrCriteria (): void 0%   (0/1)0%   (0/3)0%   (0/2)
Criteria$OrCriteria (Field): void 0%   (0/1)0%   (0/4)0%   (0/2)
Criteria$OrCriteria (List, String): void 0%   (0/1)0%   (0/5)0%   (0/2)
Criteria$OrCriteria (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
Criteria$OrCriteria (List, Field): void 100% (1/1)100% (5/5)100% (2/2)
getConjunctionOperator (): String 100% (1/1)100% (2/2)100% (1/1)
     
class Criteria100% (1/1)78%  (28/36)66%  (314/474)77%  (67/87)
and (Criteria []): Criteria 0%   (0/1)0%   (0/8)0%   (0/2)
and (Field): Criteria 0%   (0/1)0%   (0/7)0%   (0/1)
fuzzy (String): Criteria 0%   (0/1)0%   (0/11)0%   (0/2)
in (Iterable): Criteria 0%   (0/1)0%   (0/28)0%   (0/6)
in (Object []): Criteria 0%   (0/1)0%   (0/47)0%   (0/3)
isAnd (): boolean 0%   (0/1)0%   (0/8)0%   (0/1)
where (Field): Criteria 0%   (0/1)0%   (0/5)0%   (0/1)
where (String): Criteria 0%   (0/1)0%   (0/6)0%   (0/1)
assertNoBlankInWildcardedQuery (String, boolean, boolean): void 100% (1/1)14%  (5/35)67%  (2/3)
boost (float): Criteria 100% (1/1)64%  (9/14)75%  (3/4)
between (Object, Object): Criteria 100% (1/1)83%  (24/29)75%  (3/4)
Criteria (): void 100% (1/1)100% (20/20)100% (6/6)
Criteria (Field): void 100% (1/1)100% (35/35)100% (10/10)
Criteria (List, Field): void 100% (1/1)100% (43/43)100% (12/12)
Criteria (List, String): void 100% (1/1)100% (8/8)100% (2/2)
Criteria (String): void 100% (1/1)100% (7/7)100% (2/2)
and (Criteria): Criteria 100% (1/1)100% (7/7)100% (2/2)
and (String): Criteria 100% (1/1)100% (7/7)100% (1/1)
contains (String): Criteria 100% (1/1)100% (16/16)100% (3/3)
endsWith (String): Criteria 100% (1/1)100% (16/16)100% (3/3)
expression (String): Criteria 100% (1/1)100% (11/11)100% (2/2)
getBoost (): float 100% (1/1)100% (3/3)100% (1/1)
getConjunctionOperator (): String 100% (1/1)100% (2/2)100% (1/1)
getCriteriaChain (): List 100% (1/1)100% (4/4)100% (1/1)
getCriteriaEntries (): Set 100% (1/1)100% (4/4)100% (1/1)
getField (): Field 100% (1/1)100% (3/3)100% (1/1)
greaterThanEqual (Object): Criteria 100% (1/1)100% (7/7)100% (2/2)
is (Object): Criteria 100% (1/1)100% (11/11)100% (2/2)
isNegating (): boolean 100% (1/1)100% (3/3)100% (1/1)
isOr (): boolean 100% (1/1)100% (8/8)100% (1/1)
lessThanEqual (Object): Criteria 100% (1/1)100% (7/7)100% (2/2)
not (): Criteria 100% (1/1)100% (5/5)100% (2/2)
or (Criteria): Criteria 100% (1/1)100% (19/19)100% (4/4)
or (Field): Criteria 100% (1/1)100% (7/7)100% (1/1)
or (String): Criteria 100% (1/1)100% (7/7)100% (1/1)
startsWith (String): Criteria 100% (1/1)100% (16/16)100% (3/3)
     
class Criteria$OperationKey100% (1/1)75%  (3/4)94%  (83/88)97%  (1.9/2)
valueOf (String): Criteria$OperationKey 0%   (0/1)0%   (0/5)0%   (0/1)
<static initializer> 100% (1/1)100% (74/74)100% (2/2)
Criteria$OperationKey (String, int): void 100% (1/1)100% (5/5)100% (1/1)
values (): Criteria$OperationKey [] 100% (1/1)100% (4/4)100% (1/1)
     
class Criteria$CriteriaEntry100% (1/1)100% (3/3)100% (15/15)100% (6/6)
Criteria$CriteriaEntry (Criteria$OperationKey, Object): void 100% (1/1)100% (9/9)100% (4/4)
getKey (): Criteria$OperationKey 100% (1/1)100% (3/3)100% (1/1)
getValue (): Object 100% (1/1)100% (3/3)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.query;
17 
18import java.util.ArrayList;
19import java.util.Arrays;
20import java.util.Collection;
21import java.util.Collections;
22import java.util.LinkedHashSet;
23import java.util.List;
24import java.util.Set;
25 
26import org.apache.commons.lang.StringUtils;
27import org.springframework.dao.InvalidDataAccessApiUsageException;
28import org.springframework.util.Assert;
29 
30/**
31 * Criteria is the central class when constructing queries. It follows more or less a fluent API style, which allows to
32 * easily chain together multiple criteria.
33 *
34 */
35public class Criteria {
36 
37        public static final String WILDCARD = "*";
38        public static final String CRITERIA_VALUE_SEPERATOR = " ";
39 
40        private static final String OR_OPERATOR = " OR ";
41        private static final String AND_OPERATOR = " AND ";
42 
43        private Field field;
44        private float boost = Float.NaN;
45        private boolean negating = false;
46 
47        private List<Criteria> criteriaChain = new ArrayList<Criteria>(1);
48 
49        private Set<CriteriaEntry> criteria = new LinkedHashSet<CriteriaEntry>();
50 
51        public Criteria() {
52        }
53 
54        /**
55         * Creates a new CriterSimpleFieldia for the Filed with provided name
56         * 
57         * @param fieldname
58         */
59        public Criteria(String fieldname) {
60                this(new SimpleField(fieldname));
61        }
62 
63        /**
64         * Creates a new Criteria for the given field
65         * 
66         * @param field
67         */
68        public Criteria(Field field) {
69                Assert.notNull(field, "Field for criteria must not be null");
70                Assert.hasText(field.getName(), "Field.name for criteria must not be null/empty");
71 
72                this.criteriaChain.add(this);
73                this.field = field;
74        }
75 
76        protected Criteria(List<Criteria> criteriaChain, String fieldname) {
77                this(criteriaChain, new SimpleField(fieldname));
78        }
79 
80        protected Criteria(List<Criteria> criteriaChain, Field field) {
81                Assert.notNull(criteriaChain, "CriteriaChain must not be null");
82                Assert.notNull(field, "Field for criteria must not be null");
83                Assert.hasText(field.getName(), "Field.name for criteria must not be null/empty");
84 
85                this.criteriaChain.addAll(criteriaChain);
86                this.criteriaChain.add(this);
87                this.field = field;
88        }
89 
90        /**
91         * Static factory method to create a new Criteria for field with given name
92         * 
93         * @param field
94         * @return
95         */
96        public static Criteria where(String field) {
97                return where(new SimpleField(field));
98        }
99 
100        /**
101         * Static factory method to create a new Criteria for provided field
102         * 
103         * @param field
104         * @return
105         */
106        public static Criteria where(Field field) {
107                return new Criteria(field);
108        }
109 
110        /**
111         * Chain using {@code AND}
112         * 
113         * @param field
114         * @return
115         */
116        public Criteria and(Field field) {
117                return new Criteria(this.criteriaChain, field);
118        }
119 
120        /**
121         * Chain using {@code AND}
122         * 
123         * @param fieldName
124         * @return
125         */
126        public Criteria and(String fieldName) {
127                return new Criteria(this.criteriaChain, fieldName);
128        }
129 
130        /**
131         * Chain using {@code AND}
132         * 
133         * @param criteria
134         * @return
135         */
136        public Criteria and(Criteria criteria) {
137                this.criteriaChain.add(criteria);
138                return this;
139        }
140 
141        /**
142         * Chain using {@code AND}
143         * 
144         * @param criterias
145         * @return
146         */
147        public Criteria and(Criteria... criterias) {
148                this.criteriaChain.addAll(Arrays.asList(criterias));
149                return this;
150        }
151 
152        /**
153         * Chain using {@code OR}
154         * 
155         * @param field
156         * @return
157         */
158        public Criteria or(Field field) {
159                return new OrCriteria(this.criteriaChain, field);
160        }
161 
162        /**
163         * Chain using {@code OR}
164         * 
165         * @param criteria
166         * @return
167         */
168        public Criteria or(Criteria criteria) {
169                Assert.notNull(criteria, "Cannot chain 'null' criteria.");
170 
171                Criteria orConnectedCritiera = new OrCriteria(this.criteriaChain, criteria.getField());
172                orConnectedCritiera.criteria.addAll(criteria.criteria);
173                return orConnectedCritiera;
174        }
175 
176        /**
177         * Chain using {@code OR}
178         * 
179         * @param fieldName
180         * @return
181         */
182        public Criteria or(String fieldName) {
183                return or(new SimpleField(fieldName));
184        }
185 
186        /**
187         * Crates new CriteriaEntry without any wildcards
188         * 
189         * @param o
190         * @return
191         */
192        public Criteria is(Object o) {
193                criteria.add(new CriteriaEntry(OperationKey.EQUALS, o));
194                return this;
195        }
196 
197        /**
198         * Crates new CriteriaEntry with leading and trailing wildcards <br/>
199         * <strong>NOTE: </strong> mind your schema as leading wildcards may not be supported and/or execution might be slow.
200         * 
201         * @param s
202         * @return
203         */
204        public Criteria contains(String s) {
205                assertNoBlankInWildcardedQuery(s, true, true);
206                criteria.add(new CriteriaEntry(OperationKey.CONTAINS, s));
207                return this;
208        }
209 
210        /**
211         * Crates new CriteriaEntry with trailing wildcard
212         * 
213         * @param s
214         * @return
215         */
216        public Criteria startsWith(String s) {
217                assertNoBlankInWildcardedQuery(s, true, false);
218                criteria.add(new CriteriaEntry(OperationKey.STARTS_WITH, s));
219                return this;
220        }
221 
222        /**
223         * Crates new CriteriaEntry with leading wildcard <br />
224         * <strong>NOTE: </strong> mind your schema and execution times as leading wildcards may not be supported.
225         * 
226         * @param s
227         * @return
228         */
229        public Criteria endsWith(String s) {
230                assertNoBlankInWildcardedQuery(s, false, true);
231                criteria.add(new CriteriaEntry(OperationKey.ENDS_WITH, s));
232                return this;
233        }
234 
235        /**
236         * Crates new CriteriaEntry with trailing -
237         * 
238         * @return
239         */
240        public Criteria not() {
241                this.negating = true;
242                return this;
243        }
244 
245        /**
246         * Crates new CriteriaEntry with trailing ~
247         * 
248         * @param s
249         * @return
250         */
251        public Criteria fuzzy(String s) {
252        criteria.add(new CriteriaEntry(OperationKey.FUZZY, s));
253        return this;
254        }
255 
256 
257        /**
258         * Crates new CriteriaEntry allowing native elasticsearch expressions
259         * 
260         * @param s
261         * @return
262         */
263        public Criteria expression(String s) {
264                criteria.add(new CriteriaEntry(OperationKey.EXPRESSION, s));
265                return this;
266        }
267 
268        /**
269         * Boost positive hit with given factor. eg. ^2.3
270         * 
271         * @param boost
272         * @return
273         */
274        public Criteria boost(float boost) {
275                if (boost < 0) {
276                        throw new InvalidDataAccessApiUsageException("Boost must not be negative.");
277                }
278                this.boost = boost;
279                return this;
280        }
281 
282        /**
283         * Crates new CriteriaEntry for {@code RANGE [lowerBound TO upperBound]}
284         * 
285         * @param lowerBound
286         * @param upperBound
287         * @return
288         */
289        public Criteria between(Object lowerBound, Object upperBound) {
290                if (lowerBound == null && upperBound == null) {
291                        throw new InvalidDataAccessApiUsageException("Range [* TO *] is not allowed");
292                }
293 
294                criteria.add(new CriteriaEntry(OperationKey.BETWEEN, new Object[] { lowerBound, upperBound }));
295                return this;
296        }
297 
298        /**
299         * Crates new CriteriaEntry for {@code RANGE [* TO upperBound]}
300         * 
301         * @param upperBound
302         * @return
303         */
304        public Criteria lessThanEqual(Object upperBound) {
305                between(null, upperBound);
306                return this;
307        }
308 
309        /**
310         * Crates new CriteriaEntry for {@code RANGE [lowerBound TO *]}
311         * 
312         * @param lowerBound
313         * @return
314         */
315        public Criteria greaterThanEqual(Object lowerBound) {
316                between(lowerBound, null);
317                return this;
318        }
319 
320        /**
321         * Crates new CriteriaEntry for multiple values {@code (arg0 arg1 arg2 ...)}
322         * 
323         * @param values
324         * @return
325         */
326        public Criteria in(Object... values) {
327                if (values.length == 0 || (values.length > 1 && values[1] instanceof Collection)) {
328                        throw new InvalidDataAccessApiUsageException("At least one element "
329                                        + (values.length > 0 ? ("of argument of type " + values[1].getClass().getName()) : "")
330                                        + " has to be present.");
331                }
332                return in(Arrays.asList(values));
333        }
334 
335        /**
336         * Crates new CriteriaEntry for multiple values {@code (arg0 arg1 arg2 ...)}
337         * 
338         * @param values the collection containing the values to match against
339         * @return
340         */
341        public Criteria in(Iterable<?> values) {
342                Assert.notNull(values, "Collection of 'in' values must not be null");
343                for (Object value : values) {
344                        if (value instanceof Collection) {
345                                in((Collection<?>) value);
346                        } else {
347                                is(value);
348                        }
349                }
350                return this;
351        }
352 
353 
354        private void assertNoBlankInWildcardedQuery(String searchString, boolean leadingWildcard, boolean trailingWildcard) {
355                if (StringUtils.contains(searchString, CRITERIA_VALUE_SEPERATOR)) {
356                        throw new InvalidDataAccessApiUsageException("Cannot constructQuery '" + (leadingWildcard ? "*" : "") + "\""
357                                        + searchString + "\"" + (trailingWildcard ? "*" : "") + "'. Use epxression or mulitple clauses instead.");
358                }
359        }
360 
361        /**
362         * Field targeted by this Criteria
363         * 
364         * @return
365         */
366        public Field getField() {
367                return this.field;
368        }
369 
370        public Set<CriteriaEntry> getCriteriaEntries() {
371                return Collections.unmodifiableSet(this.criteria);
372        }
373 
374        /**
375         * Conjunction to be used with this criteria (AND | OR)
376         * 
377         * @return
378         */
379        public String getConjunctionOperator() {
380                return AND_OPERATOR;
381        }
382 
383        public List<Criteria> getCriteriaChain() {
384                return Collections.unmodifiableList(this.criteriaChain);
385        }
386 
387        public boolean isNegating() {
388                return this.negating;
389        }
390 
391    public boolean isAnd(){
392        return AND_OPERATOR == getConjunctionOperator();
393    }
394 
395    public boolean isOr(){
396        return OR_OPERATOR == getConjunctionOperator();
397    }
398 
399        public float getBoost() {
400                return this.boost;
401        }
402 
403        static class OrCriteria extends Criteria {
404 
405                public OrCriteria() {
406                        super();
407                }
408 
409                public OrCriteria(Field field) {
410                        super(field);
411                }
412 
413                public OrCriteria(List<Criteria> criteriaChain, Field field) {
414                        super(criteriaChain, field);
415                }
416 
417                public OrCriteria(List<Criteria> criteriaChain, String fieldname) {
418                        super(criteriaChain, fieldname);
419                }
420 
421                public OrCriteria(String fieldname) {
422                        super(fieldname);
423                }
424 
425                @Override
426                public String getConjunctionOperator() {
427                        return OR_OPERATOR;
428                }
429 
430        }
431 
432        public enum OperationKey {
433                EQUALS, CONTAINS, STARTS_WITH, ENDS_WITH, EXPRESSION, BETWEEN, FUZZY;
434        }
435 
436        public static class CriteriaEntry {
437 
438                private OperationKey  key;
439                private Object value;
440 
441                CriteriaEntry(OperationKey key, Object value) {
442                        this.key = key;
443                        this.value = value;
444                }
445 
446                public OperationKey getKey() {
447                        return key;
448                }
449 
450                public Object getValue() {
451                        return value;
452                }
453 
454        }
455 
456}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/14.html b/site/emma/_files/14.html deleted file mode 100644 index a4bdeb07..00000000 --- a/site/emma/_files/14.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [SimpleField.java]

nameclass, %method, %block, %line, %
SimpleField.java100% (1/1)67%  (2/3)75%  (9/12)80%  (4/5)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SimpleField100% (1/1)67%  (2/3)75%  (9/12)80%  (4/5)
toString (): String 0%   (0/1)0%   (0/3)0%   (0/1)
SimpleField (String): void 100% (1/1)100% (6/6)100% (3/3)
getName (): String 100% (1/1)100% (3/3)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.query;
17 
18/**
19 * The most trivial implementation of a Field
20 * 
21 */
22public class SimpleField implements Field {
23 
24        private final String name;
25 
26        public SimpleField(String name) {
27                this.name = name;
28        }
29 
30        @Override
31        public String getName() {
32                return this.name;
33        }
34 
35        @Override
36        public String toString() {
37                return this.name;
38        }
39 
40}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/15.html b/site/emma/_files/15.html deleted file mode 100644 index 4d6bbf66..00000000 --- a/site/emma/_files/15.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [DeleteQuery.java]

nameclass, %method, %block, %line, %
DeleteQuery.java100% (1/1)100% (3/3)100% (10/10)100% (4/4)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class DeleteQuery100% (1/1)100% (3/3)100% (10/10)100% (4/4)
DeleteQuery (): void 100% (1/1)100% (3/3)100% (1/1)
getElasticsearchQuery (): QueryBuilder 100% (1/1)100% (3/3)100% (1/1)
setElasticsearchQuery (QueryBuilder): void 100% (1/1)100% (4/4)100% (2/2)

1package org.springframework.data.elasticsearch.core.query;
2 
3 
4import org.elasticsearch.index.query.QueryBuilder;
5 
6public class DeleteQuery{
7 
8    private QueryBuilder elasticsearchQuery;
9 
10    public QueryBuilder getElasticsearchQuery() {
11        return elasticsearchQuery;
12    }
13 
14    public void setElasticsearchQuery(QueryBuilder elasticsearchQuery) {
15        this.elasticsearchQuery = elasticsearchQuery;
16    }
17}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/16.html b/site/emma/_files/16.html deleted file mode 100644 index 40e18391..00000000 --- a/site/emma/_files/16.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [GetQuery.java]

nameclass, %method, %block, %line, %
GetQuery.java100% (1/1)100% (3/3)100% (10/10)100% (4/4)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class GetQuery100% (1/1)100% (3/3)100% (10/10)100% (4/4)
GetQuery (): void 100% (1/1)100% (3/3)100% (1/1)
getId (): String 100% (1/1)100% (3/3)100% (1/1)
setId (String): void 100% (1/1)100% (4/4)100% (2/2)

1package org.springframework.data.elasticsearch.core.query;
2 
3 
4public class GetQuery{
5 
6    private String id;
7 
8    public String getId() {
9        return id;
10    }
11 
12    public void setId(String id) {
13        this.id = id;
14    }
15}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/17.html b/site/emma/_files/17.html deleted file mode 100644 index 1104d69d..00000000 --- a/site/emma/_files/17.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [IndexQuery.java]

nameclass, %method, %block, %line, %
IndexQuery.java100% (1/1)100% (5/5)100% (17/17)100% (7/7)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class IndexQuery100% (1/1)100% (5/5)100% (17/17)100% (7/7)
IndexQuery (): void 100% (1/1)100% (3/3)100% (1/1)
getId (): String 100% (1/1)100% (3/3)100% (1/1)
getObject (): Object 100% (1/1)100% (3/3)100% (1/1)
setId (String): void 100% (1/1)100% (4/4)100% (2/2)
setObject (Object): void 100% (1/1)100% (4/4)100% (2/2)

1package org.springframework.data.elasticsearch.core.query;
2 
3 
4public class IndexQuery{
5 
6    private String id;
7    private Object object;
8 
9    public String getId() {
10        return id;
11    }
12 
13    public void setId(String id) {
14        this.id = id;
15    }
16 
17    public Object getObject() {
18        return object;
19    }
20 
21    public void setObject(Object object) {
22        this.object = object;
23    }
24}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/18.html b/site/emma/_files/18.html deleted file mode 100644 index a4f36750..00000000 --- a/site/emma/_files/18.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.query]

COVERAGE SUMMARY FOR SOURCE FILE [SearchQuery.java]

nameclass, %method, %block, %line, %
SearchQuery.java100% (1/1)100% (5/5)100% (17/17)100% (7/7)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SearchQuery100% (1/1)100% (5/5)100% (17/17)100% (7/7)
SearchQuery (): void 100% (1/1)100% (3/3)100% (1/1)
getElasticsearchFilter (): FilterBuilder 100% (1/1)100% (3/3)100% (1/1)
getElasticsearchQuery (): QueryBuilder 100% (1/1)100% (3/3)100% (1/1)
setElasticsearchFilter (FilterBuilder): void 100% (1/1)100% (4/4)100% (2/2)
setElasticsearchQuery (QueryBuilder): void 100% (1/1)100% (4/4)100% (2/2)

1package org.springframework.data.elasticsearch.core.query;
2 
3 
4import org.elasticsearch.index.query.FilterBuilder;
5import org.elasticsearch.index.query.QueryBuilder;
6 
7public class SearchQuery extends AbstractQuery{
8 
9    private QueryBuilder elasticsearchQuery;
10    private FilterBuilder elasticsearchFilter;
11 
12    public QueryBuilder getElasticsearchQuery() {
13        return elasticsearchQuery;
14    }
15 
16    public void setElasticsearchQuery(QueryBuilder elasticsearchQuery) {
17        this.elasticsearchQuery = elasticsearchQuery;
18    }
19 
20    public FilterBuilder getElasticsearchFilter() {
21        return elasticsearchFilter;
22    }
23 
24    public void setElasticsearchFilter(FilterBuilder elasticsearchFilter) {
25        this.elasticsearchFilter = elasticsearchFilter;
26    }
27 
28}

[all classes][org.springframework.data.elasticsearch.core.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/19.html b/site/emma/_files/19.html deleted file mode 100644 index 4ae97e10..00000000 --- a/site/emma/_files/19.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.support]

COVERAGE SUMMARY FOR SOURCE FILE [MappingElasticsearchEntityInformation.java]

nameclass, %method, %block, %line, %
MappingElasticsearchEntityInformation.java100% (1/1)71%  (5/7)55%  (46/84)65%  (10.4/16)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MappingElasticsearchEntityInformation100% (1/1)71%  (5/7)55%  (46/84)65%  (10.4/16)
getIdAttribute (): String 0%   (0/1)0%   (0/23)0%   (0/2)
getIdType (): Class 0%   (0/1)0%   (0/2)0%   (0/1)
getId (Object): Serializable 100% (1/1)63%  (12/19)50%  (2/4)
getIndexName (): String 100% (1/1)70%  (7/10)70%  (0.7/1)
getType (): String 100% (1/1)70%  (7/10)70%  (0.7/1)
MappingElasticsearchEntityInformation (ElasticsearchPersistentEntity): void 100% (1/1)100% (6/6)100% (2/2)
MappingElasticsearchEntityInformation (ElasticsearchPersistentEntity, String,... 100% (1/1)100% (14/14)100% (5/5)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.support;
17 
18import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity;
19import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty;
20import org.springframework.data.mapping.model.BeanWrapper;
21import org.springframework.data.repository.core.support.AbstractEntityInformation;
22import org.springframework.util.Assert;
23 
24import java.io.Serializable;
25 
26/**
27 * Elasticsearch specific implementation of {@link org.springframework.data.repository.core.support.AbstractEntityInformation}
28 *
29 * @param <T>
30 * @param <ID>
31 */
32public class MappingElasticsearchEntityInformation<T, ID extends Serializable> extends AbstractEntityInformation<T, ID>
33        implements ElasticsearchEntityInformation<T, ID> {
34 
35    private final ElasticsearchPersistentEntity<T> entityMetadata;
36    private final String indexName;
37    private final String type;
38 
39    public MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T> entity) {
40        this(entity, null, null);
41    }
42 
43    public MappingElasticsearchEntityInformation(ElasticsearchPersistentEntity<T> entity, String indexName, String type) {
44        super(entity.getType());
45        this.entityMetadata = entity;
46        this.indexName = indexName;
47        this.type = type;
48    }
49 
50    @SuppressWarnings("unchecked")
51    @Override
52    public ID getId(T entity) {
53        ElasticsearchPersistentProperty id = entityMetadata.getIdProperty();
54        try {
55            return (ID) BeanWrapper.create(entity, null).getProperty(id);
56        } catch (Exception e) {
57            throw new IllegalStateException("ID could not be resolved", e);
58        }
59    }
60 
61    @SuppressWarnings("unchecked")
62    @Override
63    public Class<ID> getIdType() {
64        return (Class<ID>) String.class;
65    }
66 
67    @Override
68    public String getIdAttribute() {
69        Assert.notNull(entityMetadata.getIdProperty(),"Unable to identify 'id' property in class " + entityMetadata.getType().getSimpleName() +". Make sure the 'id' property is annotated with @Id or named as 'id' or 'documentId' ");
70        return entityMetadata.getIdProperty().getFieldName();
71    }
72 
73    @Override
74    public String getIndexName() {
75        return indexName != null?  indexName : entityMetadata.getIndexName();
76    }
77 
78    @Override
79    public String getType() {
80        return type != null? type : entityMetadata.getIndexType();
81    }
82}

[all classes][org.springframework.data.elasticsearch.repository.support]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/1a.html b/site/emma/_files/1a.html deleted file mode 100644 index 7704f988..00000000 --- a/site/emma/_files/1a.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.support]

COVERAGE SUMMARY FOR SOURCE FILE [SimpleElasticsearchRepository.java]

nameclass, %method, %block, %line, %
SimpleElasticsearchRepository.java100% (1/1)80%  (24/30)75%  (349/465)75%  (81.7/109)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SimpleElasticsearchRepository100% (1/1)80%  (24/30)75%  (349/465)75%  (81.7/109)
SimpleElasticsearchRepository (): void 0%   (0/1)0%   (0/3)0%   (0/2)
createIndex (): void 0%   (0/1)0%   (0/7)0%   (0/2)
findAll (Iterable): Iterable 0%   (0/1)0%   (0/23)0%   (0/3)
findAll (Sort): Iterable 0%   (0/1)0%   (0/23)0%   (0/4)
resolveReturnedClassFromGenericType (): Class 0%   (0/1)0%   (0/11)0%   (0/2)
resolveReturnedClassFromGenericType (Class): ParameterizedType 0%   (0/1)0%   (0/23)0%   (0/7)
getEntityClass (): Class 100% (1/1)33%  (6/18)33%  (2/6)
findAll (): Iterable 100% (1/1)76%  (16/21)75%  (3/4)
extractIdFromBean (Object): String 100% (1/1)82%  (9/11)67%  (2/3)
isEntityClassSet (): boolean 100% (1/1)86%  (6/7)85%  (0.8/1)
exists (String): boolean 100% (1/1)88%  (7/8)87%  (0.9/1)
save (Iterable): Iterable 100% (1/1)89%  (39/44)89%  (8/9)
SimpleElasticsearchRepository (ElasticsearchEntityInformation, ElasticsearchO... 100% (1/1)100% (14/14)100% (5/5)
SimpleElasticsearchRepository (ElasticsearchOperations): void 100% (1/1)100% (8/8)100% (4/4)
count (): long 100% (1/1)100% (11/11)100% (2/2)
createIndexQuery (Object): IndexQuery 100% (1/1)100% (14/14)100% (4/4)
delete (Iterable): void 100% (1/1)100% (17/17)100% (4/4)
delete (Object): void 100% (1/1)100% (16/16)100% (4/4)
delete (String): void 100% (1/1)100% (22/22)100% (4/4)
deleteAll (): void 100% (1/1)100% (21/21)100% (5/5)
findAll (Pageable): Page 100% (1/1)100% (14/14)100% (3/3)
findOne (String): Object 100% (1/1)100% (14/14)100% (3/3)
index (Object): Object 100% (1/1)100% (4/4)100% (1/1)
save (List): List 100% (1/1)100% (39/39)100% (8/8)
save (Object): Object 100% (1/1)100% (19/19)100% (4/4)
search (QueryBuilder): Iterable 100% (1/1)100% (14/14)100% (3/3)
search (QueryBuilder, Pageable): Page 100% (1/1)100% (18/18)100% (4/4)
search (SearchQuery): Page 100% (1/1)100% (7/7)100% (1/1)
setElasticsearchOperations (ElasticsearchOperations): void 100% (1/1)100% (7/7)100% (3/3)
setEntityClass (Class): void 100% (1/1)100% (7/7)100% (3/3)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.support;
17 
18import org.elasticsearch.index.query.QueryBuilder;
19import org.springframework.dao.InvalidDataAccessApiUsageException;
20import org.springframework.data.domain.*;
21import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
22import org.springframework.data.elasticsearch.core.query.DeleteQuery;
23import org.springframework.data.elasticsearch.core.query.GetQuery;
24import org.springframework.data.elasticsearch.core.query.IndexQuery;
25import org.springframework.data.elasticsearch.core.query.SearchQuery;
26import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
27import org.springframework.util.Assert;
28 
29import javax.annotation.PostConstruct;
30import java.lang.reflect.ParameterizedType;
31import java.lang.reflect.Type;
32import java.util.ArrayList;
33import java.util.Collection;
34import java.util.Collections;
35import java.util.List;
36 
37import static org.elasticsearch.index.query.QueryBuilders.inQuery;
38import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;
39 
40/**
41 * Elasticsearch specific repository implementation. Likely to be used as target within {@link ElasticsearchRepositoryFactory}
42 *
43 * @param <T>
44 */
45public class SimpleElasticsearchRepository<T> implements ElasticsearchRepository<T, String> {
46 
47 
48    private ElasticsearchOperations elasticsearchOperations;
49    private Class<T> entityClass;
50    private ElasticsearchEntityInformation<T, String> entityInformation;
51 
52    public SimpleElasticsearchRepository() {
53    }
54 
55    public SimpleElasticsearchRepository(ElasticsearchOperations elasticsearchOperations) {
56        Assert.notNull(elasticsearchOperations);
57        this.setElasticsearchOperations(elasticsearchOperations);
58    }
59 
60    public SimpleElasticsearchRepository(ElasticsearchEntityInformation<T, String> metadata, ElasticsearchOperations elasticsearchOperations) {
61        this(elasticsearchOperations);
62        Assert.notNull(metadata);
63        this.entityInformation = metadata;
64        setEntityClass(this.entityInformation.getJavaType());
65    }
66 
67    @PostConstruct
68    public void createIndex(){
69        elasticsearchOperations.createIndex(getEntityClass());
70    }
71 
72    @Override
73    public T findOne(String id) {
74        GetQuery query = new GetQuery();
75        query.setId(id);
76        return elasticsearchOperations.queryForObject(query, getEntityClass());
77    }
78 
79    @Override
80    public Iterable<T> findAll() {
81        int itemCount = (int) this.count();
82        if (itemCount == 0) {
83            return new PageImpl<T>(Collections.<T> emptyList());
84        }
85        return this.findAll(new PageRequest(0, Math.max(1, itemCount)));
86    }
87 
88    @Override
89    public Page<T> findAll(Pageable pageable) {
90        SearchQuery query = new SearchQuery();
91        query.setElasticsearchQuery(matchAllQuery());
92        return elasticsearchOperations.queryForPage(query, getEntityClass());
93    }
94 
95    @Override
96    public Iterable<T> findAll(Sort sort) {
97        SearchQuery query = new SearchQuery();
98        query.setElasticsearchQuery(matchAllQuery());
99        query.setPageable(new PageRequest(0,Integer.MAX_VALUE, sort));
100        return elasticsearchOperations.queryForPage(query, getEntityClass());
101    }
102 
103    @Override
104    public Iterable<T> findAll(Iterable<String> ids) {
105        SearchQuery query = new SearchQuery();
106        query.setElasticsearchQuery(inQuery(entityInformation.getIdAttribute(), ids));
107        return elasticsearchOperations.queryForPage(query, getEntityClass());
108    }
109 
110    @Override
111    public long count() {
112        SearchQuery query = new SearchQuery();
113        return elasticsearchOperations.count(query,getEntityClass());
114    }
115 
116    @Override
117    public <S extends T> S save(S entity) {
118        Assert.notNull(entity, "Cannot save 'null' entity.");
119        elasticsearchOperations.index(createIndexQuery(entity));
120        elasticsearchOperations.refresh(entityInformation.getIndexName(), true);
121        return entity;
122    }
123 
124    public <S extends T> List<S> save(List<S> entities) {
125        Assert.notNull(entities, "Cannot insert 'null' as a List.");
126        Assert.notEmpty(entities,"Cannot insert empty List.");
127        List<IndexQuery> queries = new ArrayList<IndexQuery>();
128        for(S  s:entities){
129            queries.add(createIndexQuery(s));
130        }
131        elasticsearchOperations.bulkIndex(queries);
132        elasticsearchOperations.refresh(entityInformation.getIndexName(), true);
133        return entities;
134    }
135 
136    @Override
137    public <S extends T> S index(S entity) {
138        return save(entity);
139    }
140 
141    @Override
142    public <S extends T> Iterable<S> save(Iterable<S> entities) {
143        Assert.notNull(entities, "Cannot insert 'null' as a List.");
144        if (!(entities instanceof Collection<?>)) {
145            throw new InvalidDataAccessApiUsageException("Entities have to be inside a collection");
146        }
147        List<IndexQuery> queries = new ArrayList<IndexQuery>();
148        for(S s: entities){
149            queries.add(createIndexQuery(s));
150        }
151        elasticsearchOperations.bulkIndex(queries);
152        elasticsearchOperations.refresh(entityInformation.getIndexName(), true);
153        return entities;
154    }
155 
156    @Override
157    public boolean exists(String id) {
158        return findOne(id) != null;
159    }
160 
161    @Override
162    public Iterable<T> search(QueryBuilder elasticsearchQuery) {
163        SearchQuery query = new SearchQuery();
164        query.setElasticsearchQuery(elasticsearchQuery);
165        return elasticsearchOperations.queryForPage(query, getEntityClass());
166    }
167 
168    @Override
169    public Page<T> search(QueryBuilder elasticsearchQuery, Pageable pageable) {
170        SearchQuery query = new SearchQuery();
171        query.setElasticsearchQuery(elasticsearchQuery);
172        query.setPageable(pageable);
173        return elasticsearchOperations.queryForPage(query, getEntityClass());
174    }
175 
176    @Override
177    public Page<T> search(SearchQuery query){
178        return elasticsearchOperations.queryForPage(query, getEntityClass());
179    }
180 
181    @Override
182    public void delete(String id) {
183        Assert.notNull(id, "Cannot delete entity with id 'null'.");
184        elasticsearchOperations.delete(entityInformation.getIndexName(), entityInformation.getType(),id);
185        elasticsearchOperations.refresh(entityInformation.getIndexName(),true);
186    }
187 
188    @Override
189    public void delete(T entity) {
190        Assert.notNull(entity, "Cannot delete 'null' entity.");
191        delete(extractIdFromBean(entity));
192        elasticsearchOperations.refresh(entityInformation.getIndexName(), true);
193    }
194 
195    @Override
196    public void delete(Iterable<? extends T> entities) {
197        Assert.notNull(entities, "Cannot delete 'null' list.");
198        for (T entity : entities) {
199            delete(entity);
200        }
201    }
202 
203    @Override
204    public void deleteAll() {
205        DeleteQuery query = new DeleteQuery();
206        query.setElasticsearchQuery(matchAllQuery());
207        elasticsearchOperations.delete(query, getEntityClass());
208        elasticsearchOperations.refresh(entityInformation.getIndexName(),true);
209    }
210 
211    private IndexQuery createIndexQuery(T entity){
212        IndexQuery query = new IndexQuery();
213        query.setObject(entity);
214        query.setId(extractIdFromBean(entity));
215        return query;
216    }
217 
218    @SuppressWarnings("unchecked")
219    private Class<T> resolveReturnedClassFromGenericType() {
220        ParameterizedType parameterizedType = resolveReturnedClassFromGenericType(getClass());
221        return (Class<T>) parameterizedType.getActualTypeArguments()[0];
222    }
223 
224    private ParameterizedType resolveReturnedClassFromGenericType(Class<?> clazz) {
225        Object genericSuperclass = clazz.getGenericSuperclass();
226        if (genericSuperclass instanceof ParameterizedType) {
227            ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
228            Type rawtype = parameterizedType.getRawType();
229            if (SimpleElasticsearchRepository.class.equals(rawtype)) {
230                return parameterizedType;
231            }
232        }
233        return resolveReturnedClassFromGenericType(clazz.getSuperclass());
234    }
235 
236    public Class<T> getEntityClass() {
237        if (!isEntityClassSet()) {
238            try {
239                this.entityClass = resolveReturnedClassFromGenericType();
240            } catch (Exception e) {
241                throw new InvalidDataAccessApiUsageException("Unable to resolve EntityClass. Please use according setter!", e);
242            }
243        }
244        return entityClass;
245    }
246 
247    private boolean isEntityClassSet() {
248        return entityClass != null;
249    }
250 
251    public final void setEntityClass(Class<T> entityClass) {
252        Assert.notNull(entityClass, "EntityClass must not be null.");
253        this.entityClass = entityClass;
254    }
255 
256    public final void setElasticsearchOperations(ElasticsearchOperations elasticsearchOperations) {
257        Assert.notNull(elasticsearchOperations, "ElasticsearchOperations must not be null.");
258        this.elasticsearchOperations = elasticsearchOperations;
259    }
260 
261 
262    private String extractIdFromBean(T entity) {
263        if (entityInformation != null) {
264            return entityInformation.getId(entity);
265        }
266        return null;
267    }
268 
269}

[all classes][org.springframework.data.elasticsearch.repository.support]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/1b.html b/site/emma/_files/1b.html deleted file mode 100644 index 3647d5c9..00000000 --- a/site/emma/_files/1b.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.support]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchRepositoryFactory.java]

nameclass, %method, %block, %line, %
ElasticsearchRepositoryFactory.java67%  (2/3)100% (11/11)82%  (106/130)85%  (20.4/24)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchRepositoryFactory$ElasticsearchQueryLookupStrategy100% (1/1)100% (3/3)78%  (47/60)78%  (7/9)
resolveQuery (Method, RepositoryMetadata, NamedQueries): RepositoryQuery 100% (1/1)74%  (37/50)75%  (6/8)
ElasticsearchRepositoryFactory$ElasticsearchQueryLookupStrategy (Elasticsearc... 100% (1/1)100% (6/6)100% (1/1)
ElasticsearchRepositoryFactory$ElasticsearchQueryLookupStrategy (Elasticsearc... 100% (1/1)100% (4/4)100% (1/1)
     
class ElasticsearchRepositoryFactory100% (1/1)100% (8/8)84%  (59/70)89%  (13.4/15)
isQueryDslRepository (Class): boolean 100% (1/1)40%  (4/10)40%  (0.4/1)
getRepositoryBaseClass (RepositoryMetadata): Class 100% (1/1)55%  (6/11)67%  (2/3)
ElasticsearchRepositoryFactory (ElasticsearchOperations): void 100% (1/1)100% (16/16)100% (5/5)
access$100 (ElasticsearchRepositoryFactory): ElasticsearchEntityInformationCr... 100% (1/1)100% (3/3)100% (1/1)
access$200 (ElasticsearchRepositoryFactory): ElasticsearchOperations 100% (1/1)100% (3/3)100% (1/1)
getEntityInformation (Class): ElasticsearchEntityInformation 100% (1/1)100% (5/5)100% (1/1)
getQueryLookupStrategy (QueryLookupStrategy$Key): QueryLookupStrategy 100% (1/1)100% (6/6)100% (1/1)
getTargetRepository (RepositoryMetadata): Object 100% (1/1)100% (16/16)100% (3/3)
     
class ElasticsearchRepositoryFactory$10%   (0/1)100% (0/0)100% (0/0)100% (0/0)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.support;
17 
18import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
19import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
20import org.springframework.data.elasticsearch.repository.query.ElasticsearchPartQuery;
21import org.springframework.data.elasticsearch.repository.query.ElasticsearchQueryMethod;
22import org.springframework.data.elasticsearch.repository.query.ElasticsearchStringQuery;
23import org.springframework.data.querydsl.QueryDslPredicateExecutor;
24import org.springframework.data.repository.core.NamedQueries;
25import org.springframework.data.repository.core.RepositoryMetadata;
26import org.springframework.data.repository.core.support.RepositoryFactorySupport;
27import org.springframework.data.repository.query.QueryLookupStrategy;
28import org.springframework.data.repository.query.RepositoryQuery;
29import org.springframework.util.Assert;
30 
31import java.io.Serializable;
32import java.lang.reflect.Method;
33 
34import static org.springframework.data.querydsl.QueryDslUtils.QUERY_DSL_PRESENT;
35 
36/**
37 * Factory to create {@link ElasticsearchRepository}
38 *
39 */
40public class ElasticsearchRepositoryFactory extends RepositoryFactorySupport {
41 
42    private final ElasticsearchOperations elasticsearchOperations;
43    private final ElasticsearchEntityInformationCreator entityInformationCreator;
44 
45    public ElasticsearchRepositoryFactory(ElasticsearchOperations elasticsearchOperations) {
46        Assert.notNull(elasticsearchOperations);
47        this.elasticsearchOperations = elasticsearchOperations;
48        this.entityInformationCreator = new ElasticsearchEntityInformationCreatorImpl(elasticsearchOperations.getElasticsearchConverter()
49                .getMappingContext());
50    }
51 
52    @Override
53    public <T, ID extends Serializable> ElasticsearchEntityInformation<T, ID> getEntityInformation(Class<T> domainClass) {
54        return entityInformationCreator.getEntityInformation(domainClass);
55    }
56 
57    @Override
58    @SuppressWarnings({ "rawtypes", "unchecked" })
59    protected Object getTargetRepository(RepositoryMetadata metadata) {
60        SimpleElasticsearchRepository repository = new SimpleElasticsearchRepository(getEntityInformation(metadata.getDomainType()), elasticsearchOperations);
61        repository.setEntityClass(metadata.getDomainType());
62        return repository;
63    }
64 
65    @Override
66    protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
67        if (isQueryDslRepository(metadata.getRepositoryInterface())) {
68            throw new IllegalArgumentException("QueryDsl Support has not been implemented yet.");
69        }
70        return SimpleElasticsearchRepository.class;
71    }
72 
73    private static boolean isQueryDslRepository(Class<?> repositoryInterface) {
74        return QUERY_DSL_PRESENT && QueryDslPredicateExecutor.class.isAssignableFrom(repositoryInterface);
75    }
76 
77    @Override
78    protected QueryLookupStrategy getQueryLookupStrategy(QueryLookupStrategy.Key key) {
79        return new ElasticsearchQueryLookupStrategy();
80    }
81 
82    private class ElasticsearchQueryLookupStrategy implements QueryLookupStrategy {
83 
84        @Override
85        public RepositoryQuery resolveQuery(Method method, RepositoryMetadata metadata, NamedQueries namedQueries) {
86 
87            ElasticsearchQueryMethod queryMethod = new ElasticsearchQueryMethod(method, metadata, entityInformationCreator);
88            String namedQueryName = queryMethod.getNamedQueryName();
89 
90            if (namedQueries.hasQuery(namedQueryName)) {
91                String namedQuery = namedQueries.getQuery(namedQueryName);
92                return new ElasticsearchStringQuery(queryMethod, elasticsearchOperations, namedQuery);
93            }
94            else if (queryMethod.hasAnnotatedQuery()) {
95                return new ElasticsearchStringQuery(queryMethod, elasticsearchOperations, queryMethod.getAnnotatedQuery());
96            }
97            return new ElasticsearchPartQuery(queryMethod, elasticsearchOperations);
98        }
99    }
100 
101}

[all classes][org.springframework.data.elasticsearch.repository.support]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/1c.html b/site/emma/_files/1c.html deleted file mode 100644 index 7fc51d66..00000000 --- a/site/emma/_files/1c.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.support]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchEntityInformationCreatorImpl.java]

nameclass, %method, %block, %line, %
ElasticsearchEntityInformationCreatorImpl.java100% (1/1)100% (2/2)100% (19/19)100% (6/6)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchEntityInformationCreatorImpl100% (1/1)100% (2/2)100% (19/19)100% (6/6)
ElasticsearchEntityInformationCreatorImpl (MappingContext): void 100% (1/1)100% (8/8)100% (4/4)
getEntityInformation (Class): ElasticsearchEntityInformation 100% (1/1)100% (11/11)100% (2/2)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.support;
17 
18import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity;
19import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty;
20import org.springframework.data.mapping.context.MappingContext;
21import org.springframework.util.Assert;
22 
23import java.io.Serializable;
24 
25public class ElasticsearchEntityInformationCreatorImpl implements ElasticsearchEntityInformationCreator {
26 
27        private final MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext;
28 
29        public ElasticsearchEntityInformationCreatorImpl(
30            MappingContext<? extends ElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> mappingContext) {
31                Assert.notNull(mappingContext);
32                this.mappingContext = mappingContext;
33        }
34 
35        @Override
36        @SuppressWarnings("unchecked")
37        public <T, ID extends Serializable> ElasticsearchEntityInformation<T, ID> getEntityInformation(Class<T> domainClass) {
38        ElasticsearchPersistentEntity<T> persistentEntity = (ElasticsearchPersistentEntity<T>) mappingContext
39                                .getPersistentEntity(domainClass);
40                return new MappingElasticsearchEntityInformation<T, ID>(persistentEntity);
41        }
42 
43}

[all classes][org.springframework.data.elasticsearch.repository.support]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/1d.html b/site/emma/_files/1d.html deleted file mode 100644 index 80fb3b4a..00000000 --- a/site/emma/_files/1d.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.support]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchRepositoryFactoryBean.java]

nameclass, %method, %block, %line, %
ElasticsearchRepositoryFactoryBean.java100% (1/1)100% (4/4)100% (22/22)100% (8/8)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchRepositoryFactoryBean100% (1/1)100% (4/4)100% (22/22)100% (8/8)
ElasticsearchRepositoryFactoryBean (): void 100% (1/1)100% (3/3)100% (1/1)
afterPropertiesSet (): void 100% (1/1)100% (7/7)100% (3/3)
createRepositoryFactory (): RepositoryFactorySupport 100% (1/1)100% (6/6)100% (1/1)
setElasticsearchOperations (ElasticsearchOperations): void 100% (1/1)100% (6/6)100% (3/3)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.support;
17 
18import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
19import org.springframework.data.repository.Repository;
20import org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport;
21import org.springframework.data.repository.core.support.RepositoryFactorySupport;
22import org.springframework.util.Assert;
23 
24import java.io.Serializable;
25 
26/**
27 * Spring {@link org.springframework.beans.factory.FactoryBean} implementation to ease container based configuration for XML namespace and JavaConfig.
28 * 
29 */
30public class ElasticsearchRepositoryFactoryBean<T extends Repository<S, ID>, S, ID extends Serializable> extends
31        RepositoryFactoryBeanSupport<T, S, ID> {
32 
33        private ElasticsearchOperations operations;
34 
35        /**
36         * Configures the {@link ElasticsearchOperations} to be used to create Elasticsearch repositories.
37         * 
38         * @param operations the operations to set
39         */
40        public void setElasticsearchOperations(ElasticsearchOperations operations) {
41                Assert.notNull(operations);
42                this.operations = operations;
43        }
44 
45        /*
46         * (non-Javadoc)
47         * @see org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport#afterPropertiesSet()
48         */
49        @Override
50        public void afterPropertiesSet() {
51        super.afterPropertiesSet();
52                Assert.notNull(operations, "ElasticsearchOperations must be configured!");
53        }
54 
55 
56    @Override
57    protected RepositoryFactorySupport createRepositoryFactory() {
58        return new ElasticsearchRepositoryFactory(operations);
59    }
60 
61}

[all classes][org.springframework.data.elasticsearch.repository.support]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/1e.html b/site/emma/_files/1e.html deleted file mode 100644 index 70a46c62..00000000 --- a/site/emma/_files/1e.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.convert]

COVERAGE SUMMARY FOR SOURCE FILE [DateTimeConverters.java]

nameclass, %method, %block, %line, %
DateTimeConverters.java100% (4/4)61%  (11/18)75%  (91/121)90%  (15.4/17)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class DateTimeConverters100% (1/1)67%  (2/3)70%  (7/10)47%  (1.4/3)
DateTimeConverters (): void 0%   (0/1)0%   (0/3)0%   (0/2)
<static initializer> 100% (1/1)100% (5/5)100% (1/1)
access$000 (): DateTimeFormatter 100% (1/1)100% (2/2)100% (1/1)
     
class DateTimeConverters$JodaDateTimeConverter100% (1/1)60%  (3/5)75%  (27/36)93%  (4.7/5)
valueOf (String): DateTimeConverters$JodaDateTimeConverter 0%   (0/1)0%   (0/5)0%   (0/1)
values (): DateTimeConverters$JodaDateTimeConverter [] 0%   (0/1)0%   (0/4)0%   (0/1)
<static initializer> 100% (1/1)100% (14/14)100% (2/2)
DateTimeConverters$JodaDateTimeConverter (String, int): void 100% (1/1)100% (5/5)100% (1/1)
convert (ReadableInstant): String 100% (1/1)100% (8/8)100% (3/3)
     
class DateTimeConverters$JavaDateConverter100% (1/1)60%  (3/5)76%  (28/37)93%  (4.7/5)
valueOf (String): DateTimeConverters$JavaDateConverter 0%   (0/1)0%   (0/5)0%   (0/1)
values (): DateTimeConverters$JavaDateConverter [] 0%   (0/1)0%   (0/4)0%   (0/1)
<static initializer> 100% (1/1)100% (14/14)100% (2/2)
DateTimeConverters$JavaDateConverter (String, int): void 100% (1/1)100% (5/5)100% (1/1)
convert (Date): String 100% (1/1)100% (9/9)100% (3/3)
     
class DateTimeConverters$JodaLocalDateTimeConverter100% (1/1)60%  (3/5)76%  (29/38)93%  (4.7/5)
valueOf (String): DateTimeConverters$JodaLocalDateTimeConverter 0%   (0/1)0%   (0/5)0%   (0/1)
values (): DateTimeConverters$JodaLocalDateTimeConverter [] 0%   (0/1)0%   (0/4)0%   (0/1)
<static initializer> 100% (1/1)100% (14/14)100% (2/2)
DateTimeConverters$JodaLocalDateTimeConverter (String, int): void 100% (1/1)100% (5/5)100% (1/1)
convert (LocalDateTime): String 100% (1/1)100% (10/10)100% (3/3)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.convert;
17 
18import org.joda.time.DateTimeZone;
19import org.joda.time.LocalDateTime;
20import org.joda.time.ReadableInstant;
21import org.joda.time.format.DateTimeFormatter;
22import org.joda.time.format.ISODateTimeFormat;
23import org.springframework.core.convert.converter.Converter;
24 
25import java.util.Date;
26 
27public final class DateTimeConverters {
28 
29        private static DateTimeFormatter formatter =  ISODateTimeFormat.dateTime().withZone(DateTimeZone.UTC);
30 
31        public enum JodaDateTimeConverter implements Converter<ReadableInstant, String> {
32                INSTANCE;
33 
34                @Override
35                public String convert(ReadableInstant source) {
36                        if (source == null) {
37                                return null;
38                        }
39                        return formatter.print(source);
40                }
41 
42        }
43 
44        public enum JodaLocalDateTimeConverter implements Converter<LocalDateTime, String> {
45                INSTANCE;
46 
47                @Override
48                public String convert(LocalDateTime source) {
49                        if (source == null) {
50                                return null;
51                        }
52                        return formatter.print(source.toDateTime(DateTimeZone.UTC));
53                }
54 
55        }
56 
57        public enum JavaDateConverter implements Converter<Date, String> {
58                INSTANCE;
59 
60                @Override
61                public String convert(Date source) {
62                        if (source == null) {
63                                return null;
64                        }
65 
66                        return formatter.print(source.getTime());
67                }
68 
69        }
70 
71}

[all classes][org.springframework.data.elasticsearch.core.convert]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/1f.html b/site/emma/_files/1f.html deleted file mode 100644 index 235cd1eb..00000000 --- a/site/emma/_files/1f.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.convert]

COVERAGE SUMMARY FOR SOURCE FILE [MappingElasticsearchConverter.java]

nameclass, %method, %block, %line, %
MappingElasticsearchConverter.java100% (1/1)75%  (3/4)83%  (19/23)78%  (7/9)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class MappingElasticsearchConverter100% (1/1)75%  (3/4)83%  (19/23)78%  (7/9)
setApplicationContext (ApplicationContext): void 0%   (0/1)0%   (0/4)0%   (0/2)
MappingElasticsearchConverter (MappingContext): void 100% (1/1)100% (13/13)100% (5/5)
getConversionService (): ConversionService 100% (1/1)100% (3/3)100% (1/1)
getMappingContext (): MappingContext 100% (1/1)100% (3/3)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.convert;
17 
18import org.springframework.beans.BeansException;
19import org.springframework.context.ApplicationContext;
20import org.springframework.context.ApplicationContextAware;
21import org.springframework.core.convert.ConversionService;
22import org.springframework.core.convert.support.DefaultConversionService;
23import org.springframework.core.convert.support.GenericConversionService;
24import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity;
25import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty;
26import org.springframework.data.mapping.context.MappingContext;
27import org.springframework.util.Assert;
28 
29 
30public class MappingElasticsearchConverter implements ElasticsearchConverter, ApplicationContextAware{
31 
32        private final MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext;
33        private final GenericConversionService conversionService;
34 
35        @SuppressWarnings("unused")
36        private ApplicationContext applicationContext;
37 
38        public MappingElasticsearchConverter(MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> mappingContext) {
39                Assert.notNull(mappingContext);
40                this.mappingContext = mappingContext;
41                this.conversionService = new DefaultConversionService();
42        }
43 
44        @Override
45        public MappingContext<? extends ElasticsearchPersistentEntity<?>,ElasticsearchPersistentProperty> getMappingContext() {
46                return mappingContext;
47        }
48 
49        @Override
50        public ConversionService getConversionService() {
51                return this.conversionService;
52        }
53 
54        @Override
55        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
56                this.applicationContext = applicationContext;
57        }
58 
59}

[all classes][org.springframework.data.elasticsearch.core.convert]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/2.html b/site/emma/_files/2.html deleted file mode 100644 index c4b9d19a..00000000 --- a/site/emma/_files/2.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.repository.query.parser]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.repository.query.parser100% (2/2)56%  (5/9)58%  (197/338)43%  (16.9/39)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
ElasticsearchQueryCreator.java100% (2/2)56%  (5/9)58%  (197/338)43%  (16.9/39)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/20.html b/site/emma/_files/20.html deleted file mode 100644 index 97397d83..00000000 --- a/site/emma/_files/20.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.mapping]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchPersistentProperty.java]

nameclass, %method, %block, %line, %
ElasticsearchPersistentProperty.java100% (1/1)60%  (3/5)71%  (22/31)89%  (2.7/3)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchPersistentProperty$PropertyToFieldNameConverter100% (1/1)60%  (3/5)71%  (22/31)89%  (2.7/3)
valueOf (String): ElasticsearchPersistentProperty$PropertyToFieldNameConverter 0%   (0/1)0%   (0/5)0%   (0/1)
values (): ElasticsearchPersistentProperty$PropertyToFieldNameConverter [] 0%   (0/1)0%   (0/4)0%   (0/1)
<static initializer> 100% (1/1)100% (14/14)100% (2/2)
ElasticsearchPersistentProperty$PropertyToFieldNameConverter (String, int): void 100% (1/1)100% (5/5)100% (1/1)
convert (ElasticsearchPersistentProperty): String 100% (1/1)100% (3/3)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.mapping;
17 
18import org.springframework.core.convert.converter.Converter;
19import org.springframework.data.mapping.PersistentProperty;
20 
21public interface ElasticsearchPersistentProperty extends PersistentProperty<ElasticsearchPersistentProperty>{
22 
23        String getFieldName();
24 
25    public enum PropertyToFieldNameConverter implements Converter<ElasticsearchPersistentProperty, String> {
26 
27        INSTANCE;
28 
29        public String convert(ElasticsearchPersistentProperty source) {
30            return source.getFieldName();
31        }
32    }
33 
34}

[all classes][org.springframework.data.elasticsearch.core.mapping]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/21.html b/site/emma/_files/21.html deleted file mode 100644 index 3ee7542c..00000000 --- a/site/emma/_files/21.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.mapping]

COVERAGE SUMMARY FOR SOURCE FILE [SimpleElasticsearchPersistentEntity.java]

nameclass, %method, %block, %line, %
SimpleElasticsearchPersistentEntity.java100% (1/1)75%  (3/4)72%  (57/79)73%  (10.9/15)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SimpleElasticsearchPersistentEntity100% (1/1)75%  (3/4)72%  (57/79)73%  (10.9/15)
setApplicationContext (ApplicationContext): void 0%   (0/1)0%   (0/18)0%   (0/4)
SimpleElasticsearchPersistentEntity (TypeInformation): void 100% (1/1)93%  (51/55)99%  (8.9/9)
getIndexName (): String 100% (1/1)100% (3/3)100% (1/1)
getIndexType (): String 100% (1/1)100% (3/3)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.mapping;
17 
18import org.springframework.beans.BeansException;
19import org.springframework.context.ApplicationContext;
20import org.springframework.context.ApplicationContextAware;
21import org.springframework.context.expression.BeanFactoryAccessor;
22import org.springframework.context.expression.BeanFactoryResolver;
23import org.springframework.data.elasticsearch.annotations.Document;
24import org.springframework.data.mapping.model.BasicPersistentEntity;
25import org.springframework.data.util.TypeInformation;
26import org.springframework.expression.spel.support.StandardEvaluationContext;
27import org.springframework.util.Assert;
28 
29import java.util.Locale;
30 
31import static org.springframework.util.StringUtils.hasText;
32 
33/**
34 * Elasticsearch specific {@link org.springframework.data.mapping.PersistentEntity} implementation holding
35 *
36 * @param <T>
37 */
38public class SimpleElasticsearchPersistentEntity<T> extends BasicPersistentEntity<T, ElasticsearchPersistentProperty> implements
39        ElasticsearchPersistentEntity<T>, ApplicationContextAware {
40 
41    private final StandardEvaluationContext context;
42    private String indexName;
43    private String indexType;
44 
45    public SimpleElasticsearchPersistentEntity(TypeInformation<T> typeInformation) {
46        super(typeInformation);
47        this.context = new StandardEvaluationContext();
48        Class<T> clazz = typeInformation.getType();
49        Assert.isTrue(clazz.isAnnotationPresent(Document.class),
50                clazz.getSimpleName() + " is not a Document. Make sure the document class is annotated with @Document(indexName=\"foo\")");
51        Document document = clazz.getAnnotation(Document.class);
52        Assert.hasText(document.indexName(), " Unknown indexName. Make sure the indexName is defined. e.g @Document(indexName=\"foo\")");
53        this.indexName = typeInformation.getType().getAnnotation(Document.class).indexName();
54        this.indexType = hasText(document.type())? document.type() : clazz.getSimpleName().toLowerCase(Locale.ENGLISH);
55    }
56 
57    @Override
58    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
59        context.addPropertyAccessor(new BeanFactoryAccessor());
60        context.setBeanResolver(new BeanFactoryResolver(applicationContext));
61        context.setRootObject(applicationContext);
62    }
63 
64    @Override
65    public String getIndexName() {
66        return indexName;
67    }
68 
69    @Override
70    public String getIndexType() {
71        return indexType;
72    }
73}

[all classes][org.springframework.data.elasticsearch.core.mapping]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/22.html b/site/emma/_files/22.html deleted file mode 100644 index d4daa2dd..00000000 --- a/site/emma/_files/22.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.mapping]

COVERAGE SUMMARY FOR SOURCE FILE [SimpleElasticsearchPersistentProperty.java]

nameclass, %method, %block, %line, %
SimpleElasticsearchPersistentProperty.java100% (1/1)80%  (4/5)96%  (44/46)91%  (10/11)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SimpleElasticsearchPersistentProperty100% (1/1)80%  (4/5)96%  (44/46)91%  (10/11)
createAssociation (): Association 0%   (0/1)0%   (0/2)0%   (0/1)
<static initializer> 100% (1/1)100% (21/21)100% (6/6)
SimpleElasticsearchPersistentProperty (Field, PropertyDescriptor, PersistentE... 100% (1/1)100% (7/7)100% (2/2)
getFieldName (): String 100% (1/1)100% (4/4)100% (1/1)
isIdProperty (): boolean 100% (1/1)100% (12/12)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.mapping;
17 
18import org.springframework.data.mapping.Association;
19import org.springframework.data.mapping.PersistentEntity;
20import org.springframework.data.mapping.model.AnnotationBasedPersistentProperty;
21import org.springframework.data.mapping.model.SimpleTypeHolder;
22 
23import java.beans.PropertyDescriptor;
24import java.lang.reflect.Field;
25import java.util.HashSet;
26import java.util.Set;
27 
28/**
29 * Elasticsearch specific {@link org.springframework.data.mapping.PersistentProperty} implementation processing
30 */
31public class SimpleElasticsearchPersistentProperty extends AnnotationBasedPersistentProperty<ElasticsearchPersistentProperty> implements
32                ElasticsearchPersistentProperty {
33 
34        private static final Set<Class<?>> SUPPORTED_ID_TYPES = new HashSet<Class<?>>();
35        private static final Set<String> SUPPORTED_ID_PROPERTY_NAMES = new HashSet<String>();
36 
37        static {
38                SUPPORTED_ID_TYPES.add(String.class);
39                SUPPORTED_ID_PROPERTY_NAMES.add("id");
40        SUPPORTED_ID_PROPERTY_NAMES.add("documentId");
41        }
42 
43        public SimpleElasticsearchPersistentProperty(Field field, PropertyDescriptor propertyDescriptor,
44                                                 PersistentEntity<?, ElasticsearchPersistentProperty> owner, SimpleTypeHolder simpleTypeHolder) {
45                super(field, propertyDescriptor, owner, simpleTypeHolder);
46        }
47 
48        @Override
49        public String getFieldName() {
50                return field.getName();
51        }
52 
53        @Override
54        public boolean isIdProperty() {
55                return super.isIdProperty() || SUPPORTED_ID_PROPERTY_NAMES.contains(getFieldName());
56        }
57 
58        @Override
59        protected Association<ElasticsearchPersistentProperty> createAssociation() {
60                return null;
61        }
62 
63}

[all classes][org.springframework.data.elasticsearch.core.mapping]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/23.html b/site/emma/_files/23.html deleted file mode 100644 index 27c1b8c5..00000000 --- a/site/emma/_files/23.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core.mapping]

COVERAGE SUMMARY FOR SOURCE FILE [SimpleElasticsearchMappingContext.java]

nameclass, %method, %block, %line, %
SimpleElasticsearchMappingContext.java100% (1/1)100% (3/3)100% (16/16)100% (3/3)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SimpleElasticsearchMappingContext100% (1/1)100% (3/3)100% (16/16)100% (3/3)
SimpleElasticsearchMappingContext (): void 100% (1/1)100% (3/3)100% (1/1)
createPersistentEntity (TypeInformation): SimpleElasticsearchPersistentEntity 100% (1/1)100% (5/5)100% (1/1)
createPersistentProperty (Field, PropertyDescriptor, SimpleElasticsearchPersi... 100% (1/1)100% (8/8)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core.mapping;
17 
18import org.springframework.data.mapping.context.AbstractMappingContext;
19import org.springframework.data.mapping.model.SimpleTypeHolder;
20import org.springframework.data.util.TypeInformation;
21 
22import java.beans.PropertyDescriptor;
23import java.lang.reflect.Field;
24 
25 
26public class SimpleElasticsearchMappingContext extends
27                AbstractMappingContext<SimpleElasticsearchPersistentEntity<?>, ElasticsearchPersistentProperty> {
28 
29        @Override
30        protected <T> SimpleElasticsearchPersistentEntity<?> createPersistentEntity(TypeInformation<T> typeInformation) {
31                return new SimpleElasticsearchPersistentEntity<T>(typeInformation);
32        }
33 
34        @Override
35        protected ElasticsearchPersistentProperty createPersistentProperty(Field field, PropertyDescriptor descriptor,
36                        SimpleElasticsearchPersistentEntity<?> owner, SimpleTypeHolder simpleTypeHolder) {
37                return new SimpleElasticsearchPersistentProperty(field, descriptor, owner, simpleTypeHolder);
38        }
39 
40}

[all classes][org.springframework.data.elasticsearch.core.mapping]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/24.html b/site/emma/_files/24.html deleted file mode 100644 index 8b24ce9a..00000000 --- a/site/emma/_files/24.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.client]

COVERAGE SUMMARY FOR SOURCE FILE [NodeClientFactoryBean.java]

nameclass, %method, %block, %line, %
NodeClientFactoryBean.java100% (1/1)86%  (6/7)80%  (24/30)75%  (9/12)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class NodeClientFactoryBean100% (1/1)86%  (6/7)80%  (24/30)75%  (9/12)
NodeClientFactoryBean (boolean): void 0%   (0/1)0%   (0/6)0%   (0/3)
NodeClientFactoryBean (): void 100% (1/1)100% (3/3)100% (2/2)
afterPropertiesSet (): void 100% (1/1)100% (10/10)100% (2/2)
getObject (): NodeClient 100% (1/1)100% (3/3)100% (1/1)
getObjectType (): Class 100% (1/1)100% (2/2)100% (1/1)
isSingleton (): boolean 100% (1/1)100% (2/2)100% (1/1)
setLocal (boolean): void 100% (1/1)100% (4/4)100% (2/2)

1package org.springframework.data.elasticsearch.client;
2 
3import org.elasticsearch.client.Client;
4import org.elasticsearch.client.node.NodeClient;
5import org.springframework.beans.factory.FactoryBean;
6import org.springframework.beans.factory.InitializingBean;
7 
8import static org.elasticsearch.node.NodeBuilder.nodeBuilder;
9 
10public class NodeClientFactoryBean implements FactoryBean<NodeClient>, InitializingBean{
11 
12    private boolean local;
13    private NodeClient nodeClient;
14 
15    NodeClientFactoryBean() {
16    }
17 
18    public NodeClientFactoryBean(boolean local) {
19        this.local = local;
20    }
21 
22    @Override
23    public NodeClient getObject() throws Exception {
24        return nodeClient;
25    }
26 
27    @Override
28    public Class<? extends Client> getObjectType() {
29        return NodeClient.class;
30    }
31 
32    @Override
33    public boolean isSingleton() {
34        return true;
35    }
36 
37    @Override
38    public void afterPropertiesSet() throws Exception {
39        nodeClient = (NodeClient) nodeBuilder().local(this.local).node().client();
40    }
41 
42    public void setLocal(boolean local) {
43        this.local = local;
44    }
45}

[all classes][org.springframework.data.elasticsearch.client]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/25.html b/site/emma/_files/25.html deleted file mode 100644 index f4b72a8b..00000000 --- a/site/emma/_files/25.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.client]

COVERAGE SUMMARY FOR SOURCE FILE [TransportClientFactoryBean.java]

nameclass, %method, %block, %line, %
TransportClientFactoryBean.java100% (1/1)82%  (9/11)81%  (101/124)72%  (23/32)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TransportClientFactoryBean100% (1/1)82%  (9/11)81%  (101/124)72%  (23/32)
getObject (): TransportClient 0%   (0/1)0%   (0/3)0%   (0/1)
setProperties (Properties): void 0%   (0/1)0%   (0/4)0%   (0/2)
destroy (): void 100% (1/1)38%  (6/16)29%  (2/7)
settings (): Settings 100% (1/1)60%  (9/15)67%  (2/3)
<static initializer> 100% (1/1)100% (4/4)100% (1/1)
TransportClientFactoryBean (): void 100% (1/1)100% (3/3)100% (1/1)
afterPropertiesSet (): void 100% (1/1)100% (3/3)100% (2/2)
buildClient (): void 100% (1/1)100% (68/68)100% (11/11)
getObjectType (): Class 100% (1/1)100% (2/2)100% (1/1)
isSingleton (): boolean 100% (1/1)100% (2/2)100% (1/1)
setClusterNodes (String []): void 100% (1/1)100% (4/4)100% (2/2)

1package org.springframework.data.elasticsearch.client;
2 
3import org.elasticsearch.client.transport.TransportClient;
4import org.elasticsearch.common.settings.Settings;
5import org.elasticsearch.common.transport.InetSocketTransportAddress;
6import org.slf4j.Logger;
7import org.slf4j.LoggerFactory;
8import org.springframework.beans.factory.DisposableBean;
9import org.springframework.beans.factory.FactoryBean;
10import org.springframework.beans.factory.InitializingBean;
11import org.springframework.util.Assert;
12 
13import java.util.Properties;
14 
15import static org.apache.commons.lang.StringUtils.substringAfter;
16import static org.apache.commons.lang.StringUtils.substringBefore;
17import static org.elasticsearch.common.settings.ImmutableSettings.settingsBuilder;
18 
19 
20public class TransportClientFactoryBean implements FactoryBean<TransportClient>, InitializingBean, DisposableBean {
21 
22    private static final Logger logger = LoggerFactory.getLogger(TransportClientFactoryBean.class);
23    private String[] clusterNodes;
24    private TransportClient client;
25    private Properties properties;
26    static final String COLON = ":";
27 
28    @Override
29    public void destroy() throws Exception {
30        try {
31            logger.info("Closing elasticSearch  client");
32            if (client != null) {
33                client.close();
34            }
35        } catch (final Exception e) {
36            logger.error("Error closing ElasticSearch client: ", e);
37        }
38    }
39 
40    @Override
41    public TransportClient getObject() throws Exception {
42        return client;
43    }
44 
45    @Override
46    public Class<TransportClient> getObjectType() {
47        return TransportClient.class;
48    }
49 
50    @Override
51    public boolean isSingleton() {
52        return false;
53    }
54 
55    @Override
56    public void afterPropertiesSet() throws Exception {
57        buildClient();
58    }
59 
60    protected void buildClient() throws Exception {
61        client =  new TransportClient(settings());
62        Assert.notEmpty(clusterNodes,"[Assertion failed] clusterNodes settings missing.");
63        for (String clusterNode : clusterNodes) {
64            String hostName = substringBefore(clusterNode, COLON);
65            String port = substringAfter(clusterNode, COLON);
66            Assert.hasText(hostName,"[Assertion failed] missing host name in 'clusterNodes'");
67            Assert.hasText(port,"[Assertion failed] missing port in 'clusterNodes'");
68            logger.info("adding transport node : " + clusterNode);
69            client.addTransportAddress(new InetSocketTransportAddress(hostName, Integer.valueOf(port)));
70        }
71        client.connectedNodes();
72    }
73 
74    private Settings settings(){
75        if(properties != null){
76            return settingsBuilder().put(properties).build();
77        }
78        return settingsBuilder()
79                .put("client.transport.sniff",true).build();
80    }
81 
82    public void setClusterNodes(String[] clusterNodes) {
83        this.clusterNodes = clusterNodes;
84    }
85 
86    public void setProperties(Properties properties) {
87        this.properties = properties;
88    }
89}

[all classes][org.springframework.data.elasticsearch.client]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/26.html b/site/emma/_files/26.html deleted file mode 100644 index c0e223ea..00000000 --- a/site/emma/_files/26.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchTemplate.java]

nameclass, %method, %block, %line, %
ElasticsearchTemplate.java100% (2/2)97%  (28/29)81%  (565/700)86%  (76.4/89)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchTemplate100% (1/1)96%  (26/27)79%  (513/648)85%  (70.4/83)
createIndex (String): boolean 0%   (0/1)0%   (0/19)0%   (0/1)
mapResult (String, Class): Object 100% (1/1)37%  (11/30)60%  (3/5)
bulkIndex (List): void 100% (1/1)39%  (30/76)55%  (6/11)
prepareIndex (IndexQuery): IndexRequestBuilder 100% (1/1)56%  (22/39)50%  (2/4)
createIndexIfNotCreated (String): boolean 100% (1/1)58%  (7/12)58%  (0.6/1)
prepareSearch (Query, Class): SearchRequestBuilder 100% (1/1)71%  (60/84)78%  (7/9)
queryForObject (CriteriaQuery, Class): Object 100% (1/1)95%  (35/37)97%  (2.9/3)
queryForObject (StringQuery, Class): Object 100% (1/1)95%  (35/37)97%  (2.9/3)
ElasticsearchTemplate (Client, ElasticsearchConverter): void 100% (1/1)97%  (28/29)99%  (6/6)
ElasticsearchTemplate (Client): void 100% (1/1)100% (5/5)100% (2/2)
access$000 (ElasticsearchTemplate, String, Class): Object 100% (1/1)100% (5/5)100% (1/1)
count (SearchQuery, Class): long 100% (1/1)100% (37/37)100% (5/5)
createIndex (Class): boolean 100% (1/1)100% (9/9)100% (2/2)
delete (Class, String): String 100% (1/1)100% (12/12)100% (2/2)
delete (DeleteQuery, Class): void 100% (1/1)100% (29/29)100% (3/3)
delete (String, String, String): String 100% (1/1)100% (11/11)100% (1/1)
getElasticsearchConverter (): ElasticsearchConverter 100% (1/1)100% (3/3)100% (1/1)
getPersistentEntityFor (Class): ElasticsearchPersistentEntity 100% (1/1)100% (7/7)100% (1/1)
index (IndexQuery): String 100% (1/1)100% (8/8)100% (1/1)
indexExists (String): boolean 100% (1/1)100% (16/16)100% (1/1)
mapResults (SearchResponse, Class, Pageable): Page 100% (1/1)100% (11/11)100% (2/2)
queryForObject (GetQuery, Class): Object 100% (1/1)100% (23/23)100% (3/3)
queryForPage (CriteriaQuery, Class): Page 100% (1/1)100% (24/24)100% (3/3)
queryForPage (SearchQuery, Class): Page 100% (1/1)100% (28/28)100% (5/5)
queryForPage (StringQuery, Class): Page 100% (1/1)100% (18/18)100% (2/2)
refresh (Class, boolean): void 100% (1/1)100% (22/22)100% (3/3)
refresh (String, boolean): void 100% (1/1)100% (17/17)100% (2/2)
     
class ElasticsearchTemplate$1100% (1/1)100% (2/2)100% (52/52)100% (7/7)
ElasticsearchTemplate$1 (ElasticsearchTemplate, Class, Pageable): void 100% (1/1)100% (12/12)100% (1/1)
mapResults (SearchResponse): Page 100% (1/1)100% (40/40)100% (6/6)

1package org.springframework.data.elasticsearch.core;
2 
3import org.codehaus.jackson.map.DeserializationConfig;
4import org.codehaus.jackson.map.ObjectMapper;
5import org.elasticsearch.action.bulk.BulkItemResponse;
6import org.elasticsearch.action.bulk.BulkRequestBuilder;
7import org.elasticsearch.action.bulk.BulkResponse;
8import org.elasticsearch.action.count.CountRequestBuilder;
9import org.elasticsearch.action.get.GetResponse;
10import org.elasticsearch.action.index.IndexRequestBuilder;
11import org.elasticsearch.action.search.SearchRequestBuilder;
12import org.elasticsearch.action.search.SearchResponse;
13import org.elasticsearch.client.Client;
14import org.elasticsearch.client.Requests;
15import org.elasticsearch.common.collect.MapBuilder;
16import org.elasticsearch.index.query.QueryBuilder;
17import org.elasticsearch.search.SearchHit;
18import org.elasticsearch.search.sort.SortOrder;
19import org.springframework.data.domain.Page;
20import org.springframework.data.domain.PageImpl;
21import org.springframework.data.domain.Pageable;
22import org.springframework.data.domain.Sort;
23import org.springframework.data.elasticsearch.ElasticsearchException;
24import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
25import org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter;
26import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity;
27import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMappingContext;
28import org.springframework.data.elasticsearch.core.query.*;
29import org.springframework.util.Assert;
30 
31import java.io.IOException;
32import java.util.ArrayList;
33import java.util.HashMap;
34import java.util.List;
35import java.util.Map;
36 
37import static org.apache.commons.lang.StringUtils.isBlank;
38import static org.elasticsearch.action.search.SearchType.DFS_QUERY_THEN_FETCH;
39import static org.elasticsearch.client.Requests.indicesExistsRequest;
40import static org.elasticsearch.client.Requests.refreshRequest;
41 
42 
43public class ElasticsearchTemplate implements ElasticsearchOperations {
44 
45    private Client client;
46    private ElasticsearchConverter elasticsearchConverter;
47 
48    private ObjectMapper objectMapper = new ObjectMapper();
49 
50    {
51        objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
52    }
53 
54    public ElasticsearchTemplate(Client client) {
55        this(client, null);
56    }
57 
58    public ElasticsearchTemplate(Client client, ElasticsearchConverter elasticsearchConverter) {
59        this.client = client;
60        this.elasticsearchConverter = (elasticsearchConverter == null)? new MappingElasticsearchConverter(new SimpleElasticsearchMappingContext()) : elasticsearchConverter ;
61    }
62 
63 
64    @Override
65    public <T> boolean createIndex(Class<T> clazz) {
66        ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
67        return createIndexIfNotCreated(persistentEntity.getIndexName());
68    }
69 
70    @Override
71    public ElasticsearchConverter getElasticsearchConverter() {
72        return elasticsearchConverter;
73    }
74 
75    @Override
76    public <T> T queryForObject(GetQuery query, Class<T> clazz) {
77        ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
78        GetResponse response = client.prepareGet(persistentEntity.getIndexName(), persistentEntity.getIndexType(), query.getId())
79                .execute().actionGet();
80        return mapResult(response.getSourceAsString(), clazz);
81    }
82 
83    @Override
84    public <T> T queryForObject(CriteriaQuery query, Class<T> clazz) {
85        Page<T> page =  queryForPage(query,clazz);
86        Assert.isTrue(page.getTotalElements() < 2, "Expected 1 but found "+  page.getTotalElements() +" results");
87        return page.getTotalElements() > 0? page.getContent().get(0) : null;
88    }
89 
90    @Override
91    public <T> T queryForObject(StringQuery query, Class<T> clazz) {
92        Page<T> page =  queryForPage(query,clazz);
93        Assert.isTrue(page.getTotalElements() < 2, "Expected 1 but found "+  page.getTotalElements() +" results");
94        return page.getTotalElements() > 0? page.getContent().get(0) : null;
95    }
96 
97    @Override
98    public <T> Page<T> queryForPage(SearchQuery query, Class<T> clazz) {
99        SearchRequestBuilder searchRequestBuilder = prepareSearch(query,clazz);
100        if(query.getElasticsearchFilter() != null){
101            searchRequestBuilder.setFilter(query.getElasticsearchFilter());
102        }
103        SearchResponse response = searchRequestBuilder.setQuery(query.getElasticsearchQuery()).execute().actionGet();
104        return  mapResults(response, clazz, query.getPageable());
105    }
106 
107    @Override
108    public <T> Page<T> queryForPage(CriteriaQuery query, Class<T> clazz) {
109        QueryBuilder elasticsearchQuery = new CriteriaQueryProcessor().createQueryFromCriteria(query.getCriteria());
110        SearchResponse response =  prepareSearch(query,clazz)
111                .setQuery(elasticsearchQuery)
112                .execute().actionGet();
113        return  mapResults(response, clazz, query.getPageable());
114    }
115 
116    @Override
117    public <T> Page<T> queryForPage(StringQuery query, Class<T> clazz) {
118        SearchResponse response =  prepareSearch(query,clazz)
119                .setQuery(query.getSource())
120                .execute().actionGet();
121        return  mapResults(response, clazz, query.getPageable());
122    }
123 
124    @Override
125    public <T> long count(SearchQuery query, Class<T> clazz) {
126        ElasticsearchPersistentEntity<T> persistentEntity = getPersistentEntityFor(clazz);
127        CountRequestBuilder countRequestBuilder = client.prepareCount(persistentEntity.getIndexName())
128                .setTypes(persistentEntity.getIndexType());
129        if(query.getElasticsearchQuery() != null){
130            countRequestBuilder.setQuery(query.getElasticsearchQuery());
131        }
132        return countRequestBuilder.execute().actionGet().count();
133    }
134 
135    @Override
136    public String index(IndexQuery query) {
137        return  prepareIndex(query)
138                .execute()
139                .actionGet().getId();
140    }
141 
142    @Override
143    public void bulkIndex(List<IndexQuery> queries) {
144        BulkRequestBuilder bulkRequest = client.prepareBulk();
145        for(IndexQuery query : queries){
146            bulkRequest.add(prepareIndex(query));
147        }
148        BulkResponse bulkResponse = bulkRequest.execute().actionGet();
149        if (bulkResponse.hasFailures()) {
150            Map<String, String> failedDocuments = new HashMap<String, String>();
151            for (BulkItemResponse item : bulkResponse.items()) {
152                if (item.failed())
153                    failedDocuments.put(item.getId(), item.failureMessage());
154            }
155            throw new ElasticsearchException("Bulk indexing has failures. Use ElasticsearchException.getFailedDocuments() for detailed messages [" + failedDocuments+"]", failedDocuments);
156        }
157    }
158 
159    @Override
160    public String delete(String indexName, String type, String id) {
161        return client.prepareDelete(indexName, type, id)
162                .execute().actionGet().getId();
163    }
164 
165    @Override
166    public <T> String delete(Class<T> clazz, String id) {
167        ElasticsearchPersistentEntity persistentEntity = getPersistentEntityFor(clazz);
168        return delete(persistentEntity.getIndexName(), persistentEntity.getIndexType(), id);
169    }
170 
171    @Override
172    public <T> void delete(DeleteQuery query, Class<T> clazz) {
173        ElasticsearchPersistentEntity persistentEntity = getPersistentEntityFor(clazz);
174        client.prepareDeleteByQuery(persistentEntity.getIndexName())
175                .setTypes(persistentEntity.getIndexType())
176                .setQuery(query.getElasticsearchQuery())
177                .execute().actionGet();
178    }
179 
180    private boolean createIndexIfNotCreated(String indexName) {
181        return  indexExists(indexName) ||  createIndex(indexName);
182    }
183 
184    private boolean indexExists(String indexName) {
185        return client.admin()
186                .indices()
187                .exists(indicesExistsRequest(indexName)).actionGet().exists();
188    }
189 
190    private boolean createIndex(String indexName) {
191        return client.admin().indices().create(Requests.createIndexRequest(indexName).
192                settings(new MapBuilder<String, String>().put("index.refresh_interval", "-1").map())).actionGet().acknowledged();
193    }
194 
195    private <T> SearchRequestBuilder prepareSearch(Query query, Class<T> clazz){
196        int startRecord=0;
197        if(query.getPageable() != null){
198            startRecord = ((query.getPageable().getPageNumber() - 1) * query.getPageable().getPageSize());
199        }
200        ElasticsearchPersistentEntity persistentEntity = getPersistentEntityFor(clazz);
201        SearchRequestBuilder searchRequestBuilder = client.prepareSearch(persistentEntity.getIndexName())
202                .setSearchType(DFS_QUERY_THEN_FETCH)
203                .setTypes(persistentEntity.getIndexType())
204                .setFrom(startRecord < 0 ? 0 : startRecord)
205                .setSize(query.getPageable() != null ? query.getPageable().getPageSize() : 10);
206 
207        if(query.getSort() != null){
208            for(Sort.Order order : query.getSort()){
209                searchRequestBuilder.addSort(order.getProperty(), order.getDirection() == Sort.Direction.DESC? SortOrder.DESC : SortOrder.ASC);
210            }
211        }
212        return searchRequestBuilder;
213    }
214 
215    private IndexRequestBuilder prepareIndex(IndexQuery query){
216        try {
217            ElasticsearchPersistentEntity persistentEntity = getPersistentEntityFor(query.getObject().getClass());
218            return client.prepareIndex(persistentEntity.getIndexName(), persistentEntity.getIndexType(), query.getId())
219                    .setSource(objectMapper.writeValueAsString(query.getObject()));
220        } catch (IOException e) {
221            throw new ElasticsearchException("failed to index the document [id: " + query.getId() +"]",e);
222        }
223    }
224 
225    public void refresh(String indexName, boolean waitForOperation) {
226        client.admin().indices()
227                .refresh(refreshRequest(indexName).waitForOperations(waitForOperation)).actionGet();
228    }
229 
230    public <T> void refresh(Class<T> clazz, boolean waitForOperation) {
231        ElasticsearchPersistentEntity persistentEntity = getPersistentEntityFor(clazz);
232        client.admin().indices()
233                .refresh(refreshRequest(persistentEntity.getIndexName()).waitForOperations(waitForOperation)).actionGet();
234    }
235 
236    private ElasticsearchPersistentEntity getPersistentEntityFor(Class clazz){
237        return elasticsearchConverter.getMappingContext().getPersistentEntity(clazz);
238    }
239 
240    private <T> Page<T> mapResults(SearchResponse response, final Class<T> elementType,final Pageable pageable){
241        ResultsMapper<T> resultsMapper =  new ResultsMapper<T>(){
242            @Override
243            public Page<T> mapResults(SearchResponse response) {
244                long totalHits =  response.getHits().totalHits();
245                List<T> results = new ArrayList<T>();
246                for (SearchHit hit : response.getHits()) {
247                    if (hit != null) {
248                        results.add(mapResult(hit.sourceAsString(), elementType));
249                    }
250                }
251                return new PageImpl<T>(results, pageable, totalHits);
252            }
253        };
254        return resultsMapper.mapResults(response);
255    }
256 
257    private <T> T mapResult(String source, Class<T> clazz){
258        if(isBlank(source)){
259            return null;
260        }
261        try {
262            return objectMapper.readValue(source, clazz);
263        } catch (IOException e) {
264            throw new ElasticsearchException("failed to map source [ " + source + "] to class " + clazz.getSimpleName() , e);
265        }
266    }
267}

[all classes][org.springframework.data.elasticsearch.core]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/27.html b/site/emma/_files/27.html deleted file mode 100644 index 1ba3fc61..00000000 --- a/site/emma/_files/27.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.core]

COVERAGE SUMMARY FOR SOURCE FILE [CriteriaQueryProcessor.java]

nameclass, %method, %block, %line, %
CriteriaQueryProcessor.java100% (2/2)86%  (6/7)89%  (253/284)88%  (44.2/50)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class CriteriaQueryProcessor$1100% (1/1)100% (1/1)87%  (47/54)87%  (0.9/1)
<static initializer> 100% (1/1)87%  (47/54)87%  (0.9/1)
     
class CriteriaQueryProcessor100% (1/1)83%  (5/6)90%  (206/230)89%  (44.4/50)
buildNegationQuery (String, Iterator): QueryBuilder 0%   (0/1)0%   (0/17)0%   (0/4)
processCriteriaEntry (Criteria$OperationKey, Object, String): QueryBuilder 100% (1/1)92%  (83/90)85%  (11/13)
CriteriaQueryProcessor (): void 100% (1/1)100% (3/3)100% (2/2)
addBoost (QueryBuilder, float): void 100% (1/1)100% (13/13)100% (5/5)
createQueryFragmentForCriteria (Criteria): QueryBuilder 100% (1/1)100% (65/65)100% (16/16)
createQueryFromCriteria (Criteria): QueryBuilder 100% (1/1)100% (42/42)100% (11/11)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.core;
17 
18import org.elasticsearch.index.query.BoolQueryBuilder;
19import org.elasticsearch.index.query.BoostableQueryBuilder;
20import org.elasticsearch.index.query.QueryBuilder;
21import org.springframework.data.elasticsearch.core.query.Criteria;
22import org.springframework.util.Assert;
23 
24import java.util.Iterator;
25import java.util.ListIterator;
26 
27import static org.elasticsearch.index.query.QueryBuilders.*;
28import static org.springframework.data.elasticsearch.core.query.Criteria.OperationKey;
29 
30class CriteriaQueryProcessor {
31 
32 
33    QueryBuilder createQueryFromCriteria(Criteria criteria) {
34        BoolQueryBuilder query = boolQuery();
35 
36        ListIterator<Criteria> chainIterator = criteria.getCriteriaChain().listIterator();
37        while (chainIterator.hasNext()) {
38            Criteria chainedCriteria = chainIterator.next();
39            if(chainedCriteria.isOr()){
40                query.should(createQueryFragmentForCriteria(chainedCriteria));
41            }else if(chainedCriteria.isNegating()){
42                query.mustNot(createQueryFragmentForCriteria(chainedCriteria));
43            }else{
44                query.must(createQueryFragmentForCriteria(chainedCriteria));
45            }
46        }
47        return query;
48    }
49 
50 
51    private QueryBuilder createQueryFragmentForCriteria(Criteria chainedCriteria) {
52        Iterator<Criteria.CriteriaEntry> it = chainedCriteria.getCriteriaEntries().iterator();
53        boolean singeEntryCriteria = (chainedCriteria.getCriteriaEntries().size() == 1);
54 
55        String fieldName = chainedCriteria.getField().getName();
56        Assert.notNull(fieldName,"Unknown field");
57        QueryBuilder query = null;
58 
59        if(singeEntryCriteria){
60            Criteria.CriteriaEntry entry = it.next();
61            query = processCriteriaEntry(entry.getKey(), entry.getValue(), fieldName);
62        }else{
63            query = boolQuery();
64            while (it.hasNext()){
65                Criteria.CriteriaEntry entry = it.next();
66                ((BoolQueryBuilder)query).must(processCriteriaEntry(entry.getKey(), entry.getValue(), fieldName));
67            }
68        }
69 
70        addBoost(query, chainedCriteria.getBoost());
71        return query;
72    }
73 
74 
75    private QueryBuilder processCriteriaEntry(OperationKey key, Object value, String fieldName) {
76        if (value == null) {
77            return null;
78        }
79        QueryBuilder query = null;
80 
81        switch (key){
82            case  EQUALS:
83                query = fieldQuery(fieldName, value); break;
84            case CONTAINS:
85                query = fieldQuery(fieldName,"*" + value + "*").analyzeWildcard(true); break;
86            case STARTS_WITH:
87                query = fieldQuery(fieldName,value +"*").analyzeWildcard(true); break;
88            case ENDS_WITH:
89                query = fieldQuery(fieldName, "*"+value).analyzeWildcard(true); break;
90            case EXPRESSION:
91                query = queryString((String)value).field(fieldName); break;
92            case BETWEEN:
93                Object[] ranges = (Object[]) value;
94                query = rangeQuery(fieldName).from(ranges[0]).to(ranges[1]); break;
95            case FUZZY:
96                query = fuzzyQuery(fieldName, (String) value); break;
97 
98        }
99 
100        return query;
101    }
102 
103    private QueryBuilder buildNegationQuery(String fieldName, Iterator<Criteria.CriteriaEntry> it){
104        BoolQueryBuilder notQuery =  boolQuery();
105        while (it.hasNext()){
106            notQuery.mustNot(fieldQuery(fieldName, it.next().getValue()));
107        }
108        return notQuery;
109    }
110 
111    private void addBoost(QueryBuilder query, float boost){
112        if(Float.isNaN(boost)){
113            return;
114        }
115        if(query instanceof BoostableQueryBuilder){
116            ((BoostableQueryBuilder)query).boost(boost);
117        }
118 
119    }
120 
121 
122}

[all classes][org.springframework.data.elasticsearch.core]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/28.html b/site/emma/_files/28.html deleted file mode 100644 index 5e9ece99..00000000 --- a/site/emma/_files/28.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.query]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchPartQuery.java]

nameclass, %method, %block, %line, %
ElasticsearchPartQuery.java100% (1/1)100% (3/3)86%  (56/65)90%  (9/10)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchPartQuery100% (1/1)100% (3/3)86%  (56/65)90%  (9/10)
execute (Object []): Object 100% (1/1)74%  (25/34)80%  (4/5)
ElasticsearchPartQuery (ElasticsearchQueryMethod, ElasticsearchOperations): void 100% (1/1)100% (20/20)100% (4/4)
createQuery (ParametersParameterAccessor): CriteriaQuery 100% (1/1)100% (11/11)100% (1/1)

1package org.springframework.data.elasticsearch.repository.query;
2 
3 
4import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
5import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty;
6import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
7import org.springframework.data.elasticsearch.repository.query.parser.ElasticsearchQueryCreator;
8import org.springframework.data.mapping.context.MappingContext;
9import org.springframework.data.repository.query.ParametersParameterAccessor;
10import org.springframework.data.repository.query.parser.PartTree;
11 
12public class ElasticsearchPartQuery extends AbstractElasticsearchRepositoryQuery{
13 
14    private final PartTree tree;
15    private final MappingContext<?, ElasticsearchPersistentProperty> mappingContext;
16 
17 
18    public ElasticsearchPartQuery(ElasticsearchQueryMethod method, ElasticsearchOperations elasticsearchOperations) {
19        super(method, elasticsearchOperations);
20        this.tree = new PartTree(method.getName(), method.getEntityInformation().getJavaType());
21        this.mappingContext = elasticsearchOperations.getElasticsearchConverter().getMappingContext();
22    }
23 
24    @Override
25    public Object execute(Object[] parameters) {
26        ParametersParameterAccessor accessor = new ParametersParameterAccessor(queryMethod.getParameters(), parameters);
27        CriteriaQuery query = createQuery(accessor);
28        if(queryMethod.isPageQuery()){
29            return  elasticsearchOperations.queryForPage(query, queryMethod.getEntityInformation().getJavaType());
30        }
31        return elasticsearchOperations.queryForObject(query, queryMethod.getEntityInformation().getJavaType());
32    }
33 
34    public CriteriaQuery createQuery(ParametersParameterAccessor accessor) {
35        return new ElasticsearchQueryCreator(tree, accessor, mappingContext).createQuery();
36    }
37}

[all classes][org.springframework.data.elasticsearch.repository.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/29.html b/site/emma/_files/29.html deleted file mode 100644 index af5fd673..00000000 --- a/site/emma/_files/29.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.query]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchStringQuery.java]

nameclass, %method, %block, %line, %
ElasticsearchStringQuery.java100% (1/1)100% (6/6)91%  (134/148)91%  (30/33)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchStringQuery100% (1/1)100% (6/6)91%  (134/148)91%  (30/33)
execute (Object []): Object 100% (1/1)74%  (25/34)80%  (4/5)
getParameterWithIndex (ParametersParameterAccessor, int): String 100% (1/1)80%  (20/25)67%  (4/6)
<static initializer> 100% (1/1)100% (4/4)100% (1/1)
ElasticsearchStringQuery (ElasticsearchQueryMethod, ElasticsearchOperations, ... 100% (1/1)100% (46/46)100% (11/11)
createQuery (ParametersParameterAccessor): StringQuery 100% (1/1)100% (11/11)100% (2/2)
replacePlaceholders (String, ParametersParameterAccessor): String 100% (1/1)100% (28/28)100% (8/8)

1package org.springframework.data.elasticsearch.repository.query;
2 
3 
4import org.springframework.core.convert.support.GenericConversionService;
5import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
6import org.springframework.data.elasticsearch.core.convert.DateTimeConverters;
7import org.springframework.data.elasticsearch.core.query.StringQuery;
8import org.springframework.data.repository.query.ParametersParameterAccessor;
9import org.springframework.util.Assert;
10 
11import java.util.regex.Matcher;
12import java.util.regex.Pattern;
13 
14public class ElasticsearchStringQuery extends AbstractElasticsearchRepositoryQuery{
15 
16    private static final Pattern PARAMETER_PLACEHOLDER = Pattern.compile("\\?(\\d+)");
17    private String query;
18 
19    private final GenericConversionService conversionService = new GenericConversionService();
20 
21    {
22        if (!conversionService.canConvert(java.util.Date.class, String.class)) {
23            conversionService.addConverter(DateTimeConverters.JavaDateConverter.INSTANCE);
24        }
25        if (!conversionService.canConvert(org.joda.time.ReadableInstant.class, String.class)) {
26            conversionService.addConverter(DateTimeConverters.JodaDateTimeConverter.INSTANCE);
27        }
28        if (!conversionService.canConvert(org.joda.time.LocalDateTime.class, String.class)) {
29            conversionService.addConverter(DateTimeConverters.JodaLocalDateTimeConverter.INSTANCE);
30        }
31 
32    }
33 
34    public ElasticsearchStringQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations, String query) {
35        super(queryMethod, elasticsearchOperations);
36        Assert.notNull(query, "Query cannot be empty");
37        this.query = query;
38    }
39 
40    @Override
41    public Object execute(Object[] parameters) {
42        ParametersParameterAccessor accessor = new ParametersParameterAccessor(queryMethod.getParameters(), parameters);
43        StringQuery stringQuery = createQuery(accessor);
44        if(queryMethod.isPageQuery()){
45            return  elasticsearchOperations.queryForPage(stringQuery, queryMethod.getEntityInformation().getJavaType());
46        }
47        return elasticsearchOperations.queryForObject(stringQuery, queryMethod.getEntityInformation().getJavaType());
48    }
49 
50 
51    protected StringQuery createQuery(ParametersParameterAccessor parameterAccessor) {
52        String queryString = replacePlaceholders(this.query, parameterAccessor);
53        return new StringQuery(queryString);
54    }
55 
56    private String replacePlaceholders(String input, ParametersParameterAccessor accessor) {
57        Matcher matcher = PARAMETER_PLACEHOLDER.matcher(input);
58        String result = input;
59        while (matcher.find()) {
60            String group = matcher.group();
61            int index = Integer.parseInt(matcher.group(1));
62            result = result.replace(group, getParameterWithIndex(accessor, index));
63        }
64        return result;
65    }
66 
67    private String getParameterWithIndex(ParametersParameterAccessor accessor, int index) {
68        Object parameter = accessor.getBindableValue(index);
69        if (parameter == null) {
70            return "null";
71        }
72        if (conversionService.canConvert(parameter.getClass(), String.class)) {
73            return conversionService.convert(parameter, String.class);
74        }
75        return parameter.toString();
76    }
77}

[all classes][org.springframework.data.elasticsearch.repository.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/2a.html b/site/emma/_files/2a.html deleted file mode 100644 index c9de2373..00000000 --- a/site/emma/_files/2a.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.query]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchQueryMethod.java]

nameclass, %method, %block, %line, %
ElasticsearchQueryMethod.java100% (1/1)100% (4/4)98%  (40/41)99%  (7.9/8)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchQueryMethod100% (1/1)100% (4/4)98%  (40/41)99%  (7.9/8)
getAnnotatedQuery (): String 100% (1/1)92%  (12/13)96%  (1.9/2)
ElasticsearchQueryMethod (Method, RepositoryMetadata, ElasticsearchEntityInfo... 100% (1/1)100% (15/15)100% (4/4)
getQueryAnnotation (): Query 100% (1/1)100% (6/6)100% (1/1)
hasAnnotatedQuery (): boolean 100% (1/1)100% (7/7)100% (1/1)

1package org.springframework.data.elasticsearch.repository.query;
2 
3import org.springframework.core.annotation.AnnotationUtils;
4import org.springframework.data.elasticsearch.annotations.Query;
5import org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformation;
6import org.springframework.data.elasticsearch.repository.support.ElasticsearchEntityInformationCreator;
7import org.springframework.data.repository.core.RepositoryMetadata;
8import org.springframework.data.repository.query.QueryMethod;
9import org.springframework.util.StringUtils;
10 
11import java.lang.reflect.Method;
12 
13 
14public class ElasticsearchQueryMethod extends QueryMethod {
15 
16    private final ElasticsearchEntityInformation<?, ?> entityInformation;
17    private Method method;
18 
19    public ElasticsearchQueryMethod(Method method, RepositoryMetadata metadata, ElasticsearchEntityInformationCreator elasticsearchEntityInformationCreator) {
20        super(method, metadata);
21        this.entityInformation = elasticsearchEntityInformationCreator.getEntityInformation(metadata.getReturnedDomainClass(method));
22        this.method = method;
23    }
24 
25    public boolean hasAnnotatedQuery() {
26        return getQueryAnnotation() != null;
27    }
28 
29    public String getAnnotatedQuery() {
30        String query = (String) AnnotationUtils.getValue(getQueryAnnotation(), "value");
31        return StringUtils.hasText(query) ? query : null;
32    }
33 
34    private Query getQueryAnnotation() {
35        return this.method.getAnnotation(Query.class);
36    }
37 
38}

[all classes][org.springframework.data.elasticsearch.repository.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/2b.html b/site/emma/_files/2b.html deleted file mode 100644 index 1e557648..00000000 --- a/site/emma/_files/2b.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.query]

COVERAGE SUMMARY FOR SOURCE FILE [AbstractElasticsearchRepositoryQuery.java]

nameclass, %method, %block, %line, %
AbstractElasticsearchRepositoryQuery.java100% (1/1)100% (2/2)100% (12/12)100% (5/5)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class AbstractElasticsearchRepositoryQuery100% (1/1)100% (2/2)100% (12/12)100% (5/5)
AbstractElasticsearchRepositoryQuery (ElasticsearchQueryMethod, Elasticsearch... 100% (1/1)100% (9/9)100% (4/4)
getQueryMethod (): QueryMethod 100% (1/1)100% (3/3)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.query;
17 
18import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
19import org.springframework.data.repository.query.QueryMethod;
20import org.springframework.data.repository.query.RepositoryQuery;
21 
22 
23public abstract class AbstractElasticsearchRepositoryQuery implements RepositoryQuery {
24 
25    protected ElasticsearchQueryMethod queryMethod;
26    protected ElasticsearchOperations elasticsearchOperations;
27 
28    public AbstractElasticsearchRepositoryQuery(ElasticsearchQueryMethod queryMethod, ElasticsearchOperations elasticsearchOperations) {
29        this.queryMethod = queryMethod;
30        this.elasticsearchOperations = elasticsearchOperations;
31    }
32 
33    @Override
34    public QueryMethod getQueryMethod() {
35        return queryMethod;
36    }
37 
38}

[all classes][org.springframework.data.elasticsearch.repository.query]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/2c.html b/site/emma/_files/2c.html deleted file mode 100644 index 195218d2..00000000 --- a/site/emma/_files/2c.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.config]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchNamespaceHandler.java]

nameclass, %method, %block, %line, %
ElasticsearchNamespaceHandler.java100% (1/1)100% (2/2)100% (29/29)100% (7/7)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchNamespaceHandler100% (1/1)100% (2/2)100% (29/29)100% (7/7)
ElasticsearchNamespaceHandler (): void 100% (1/1)100% (3/3)100% (1/1)
init (): void 100% (1/1)100% (26/26)100% (6/6)

1package org.springframework.data.elasticsearch.config;
2 
3import org.springframework.beans.factory.xml.NamespaceHandlerSupport;
4import org.springframework.data.elasticsearch.repository.config.ElasticsearchRepositoryConfigExtension;
5import org.springframework.data.repository.config.RepositoryBeanDefinitionParser;
6import org.springframework.data.repository.config.RepositoryConfigurationExtension;
7 
8 
9public class ElasticsearchNamespaceHandler extends NamespaceHandlerSupport{
10 
11    @Override
12    public void init() {
13        RepositoryConfigurationExtension extension = new ElasticsearchRepositoryConfigExtension();
14                RepositoryBeanDefinitionParser parser = new RepositoryBeanDefinitionParser(extension);
15 
16                registerBeanDefinitionParser("repositories", parser);
17                registerBeanDefinitionParser("node-client", new NodeClientBeanDefinitionParser());
18                registerBeanDefinitionParser("transport-client", new TransportClientBeanDefinitionParser());
19    }
20}

[all classes][org.springframework.data.elasticsearch.config]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/2d.html b/site/emma/_files/2d.html deleted file mode 100644 index f5480b38..00000000 --- a/site/emma/_files/2d.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.config]

COVERAGE SUMMARY FOR SOURCE FILE [NodeClientBeanDefinitionParser.java]

nameclass, %method, %block, %line, %
NodeClientBeanDefinitionParser.java100% (1/1)100% (4/4)100% (35/35)100% (9/9)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class NodeClientBeanDefinitionParser100% (1/1)100% (4/4)100% (35/35)100% (9/9)
NodeClientBeanDefinitionParser (): void 100% (1/1)100% (3/3)100% (1/1)
getSourcedBeanDefinition (BeanDefinitionBuilder, Element, ParserContext): Abs... 100% (1/1)100% (10/10)100% (3/3)
parseInternal (Element, ParserContext): AbstractBeanDefinition 100% (1/1)100% (13/13)100% (3/3)
setLocalSettings (Element, BeanDefinitionBuilder): void 100% (1/1)100% (9/9)100% (2/2)

1package org.springframework.data.elasticsearch.config;
2 
3import org.springframework.beans.factory.support.AbstractBeanDefinition;
4import org.springframework.beans.factory.support.BeanDefinitionBuilder;
5import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
6import org.springframework.beans.factory.xml.ParserContext;
7import org.springframework.data.elasticsearch.client.NodeClientFactoryBean;
8import org.w3c.dom.Element;
9 
10 
11public class NodeClientBeanDefinitionParser extends AbstractBeanDefinitionParser {
12 
13    @Override
14    protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
15        BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(NodeClientFactoryBean.class);
16        setLocalSettings(element,builder);
17        return getSourcedBeanDefinition(builder, element, parserContext);
18    }
19 
20    private void setLocalSettings(Element element, BeanDefinitionBuilder builder) {
21        builder.addPropertyValue("local", Boolean.valueOf(element.getAttribute("local")));
22    }
23 
24 
25    private AbstractBeanDefinition getSourcedBeanDefinition(BeanDefinitionBuilder builder, Element source,
26                                                            ParserContext context) {
27        AbstractBeanDefinition definition = builder.getBeanDefinition();
28        definition.setSource(context.extractSource(source));
29        return definition;
30    }
31}

[all classes][org.springframework.data.elasticsearch.config]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/2e.html b/site/emma/_files/2e.html deleted file mode 100644 index 8c5f1e5e..00000000 --- a/site/emma/_files/2e.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.config]

COVERAGE SUMMARY FOR SOURCE FILE [TransportClientBeanDefinitionParser.java]

nameclass, %method, %block, %line, %
TransportClientBeanDefinitionParser.java100% (1/1)100% (4/4)100% (36/36)100% (9/9)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class TransportClientBeanDefinitionParser100% (1/1)100% (4/4)100% (36/36)100% (9/9)
TransportClientBeanDefinitionParser (): void 100% (1/1)100% (3/3)100% (1/1)
getSourcedBeanDefinition (BeanDefinitionBuilder, Element, ParserContext): Abs... 100% (1/1)100% (10/10)100% (3/3)
parseInternal (Element, ParserContext): AbstractBeanDefinition 100% (1/1)100% (13/13)100% (3/3)
setClusterNodes (Element, BeanDefinitionBuilder): void 100% (1/1)100% (10/10)100% (2/2)

1package org.springframework.data.elasticsearch.config;
2 
3import org.springframework.beans.factory.support.AbstractBeanDefinition;
4import org.springframework.beans.factory.support.BeanDefinitionBuilder;
5import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser;
6import org.springframework.beans.factory.xml.ParserContext;
7import org.springframework.data.elasticsearch.client.TransportClientFactoryBean;
8import org.w3c.dom.Element;
9 
10import static org.apache.commons.lang.StringUtils.split;
11 
12 
13public class TransportClientBeanDefinitionParser extends AbstractBeanDefinitionParser {
14 
15    private static final String SEPARATOR_CHARS = ",";
16 
17    @Override
18    protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
19        BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(TransportClientFactoryBean.class);
20        setClusterNodes(element, builder);
21        return getSourcedBeanDefinition(builder,element, parserContext);
22    }
23 
24    private void setClusterNodes(Element element, BeanDefinitionBuilder builder){
25        builder.addPropertyValue("clusterNodes", split(element.getAttribute("cluster-nodes"), SEPARATOR_CHARS));
26    }
27 
28    private AbstractBeanDefinition getSourcedBeanDefinition(BeanDefinitionBuilder builder, Element source,
29                                                            ParserContext context) {
30        AbstractBeanDefinition definition = builder.getBeanDefinition();
31        definition.setSource(context.extractSource(source));
32        return definition;
33    }
34}

[all classes][org.springframework.data.elasticsearch.config]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/2f.html b/site/emma/_files/2f.html deleted file mode 100644 index 51d1f27e..00000000 --- a/site/emma/_files/2f.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.config]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchRepositoriesRegistrar.java]

nameclass, %method, %block, %line, %
ElasticsearchRepositoriesRegistrar.java100% (1/1)100% (3/3)100% (9/9)100% (3/3)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchRepositoriesRegistrar100% (1/1)100% (3/3)100% (9/9)100% (3/3)
ElasticsearchRepositoriesRegistrar (): void 100% (1/1)100% (3/3)100% (1/1)
getAnnotation (): Class 100% (1/1)100% (2/2)100% (1/1)
getExtension (): RepositoryConfigurationExtension 100% (1/1)100% (4/4)100% (1/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.config;
17 
18import org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport;
19import org.springframework.data.repository.config.RepositoryConfigurationExtension;
20 
21import java.lang.annotation.Annotation;
22 
23/**
24 * {@link org.springframework.context.annotation.ImportBeanDefinitionRegistrar} implementation to trigger configuration of the {@link EnableElasticsearchRepositories}
25 * annotation.
26 * 
27 */
28class ElasticsearchRepositoriesRegistrar extends RepositoryBeanDefinitionRegistrarSupport {
29 
30        /* 
31         * (non-Javadoc)
32         * @see org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport#getAnnotation()
33         */
34        @Override
35        protected Class<? extends Annotation> getAnnotation() {
36                return EnableElasticsearchRepositories.class;
37        }
38 
39        /* 
40         * (non-Javadoc)
41         * @see org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport#getExtension()
42         */
43        @Override
44        protected RepositoryConfigurationExtension getExtension() {
45                return new ElasticsearchRepositoryConfigExtension();
46        }
47}

[all classes][org.springframework.data.elasticsearch.repository.config]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/3.html b/site/emma/_files/3.html deleted file mode 100644 index 408ba038..00000000 --- a/site/emma/_files/3.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.core.query]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.core.query100% (12/12)78%  (66/85)67%  (552/818)71%  (129.9/184)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
CriteriaQuery.java100% (1/1)43%  (3/7)26%  (19/74)33%  (8/24)
StringQuery.java100% (1/1)75%  (3/4)60%  (18/30)62%  (8/13)
AbstractQuery.java100% (1/1)100% (6/6)69%  (33/48)71%  (10/14)
Criteria.java100% (4/4)73%  (36/49)70%  (419/600)74%  (77.9/106)
SimpleField.java100% (1/1)67%  (2/3)75%  (9/12)80%  (4/5)
DeleteQuery.java100% (1/1)100% (3/3)100% (10/10)100% (4/4)
GetQuery.java100% (1/1)100% (3/3)100% (10/10)100% (4/4)
IndexQuery.java100% (1/1)100% (5/5)100% (17/17)100% (7/7)
SearchQuery.java100% (1/1)100% (5/5)100% (17/17)100% (7/7)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/30.html b/site/emma/_files/30.html deleted file mode 100644 index 664161b7..00000000 --- a/site/emma/_files/30.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.config]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchRepositoryConfigExtension.java]

nameclass, %method, %block, %line, %
ElasticsearchRepositoryConfigExtension.java100% (1/1)100% (5/5)100% (30/30)100% (9/9)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchRepositoryConfigExtension100% (1/1)100% (5/5)100% (30/30)100% (9/9)
ElasticsearchRepositoryConfigExtension (): void 100% (1/1)100% (3/3)100% (1/1)
getModulePrefix (): String 100% (1/1)100% (2/2)100% (1/1)
getRepositoryFactoryClassName (): String 100% (1/1)100% (3/3)100% (1/1)
postProcess (BeanDefinitionBuilder, AnnotationRepositoryConfigurationSource):... 100% (1/1)100% (11/11)100% (3/3)
postProcess (BeanDefinitionBuilder, XmlRepositoryConfigurationSource): void 100% (1/1)100% (11/11)100% (3/3)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.config;
17 
18import org.springframework.beans.factory.support.BeanDefinitionBuilder;
19import org.springframework.core.annotation.AnnotationAttributes;
20import org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean;
21import org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource;
22import org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport;
23import org.springframework.data.repository.config.XmlRepositoryConfigurationSource;
24import org.w3c.dom.Element;
25 
26 
27 
28/**
29 * {@link org.springframework.data.repository.config.RepositoryConfigurationExtension} implementation to configure Elasticsearch repository configuration support,
30 * evaluating the {@link EnableElasticsearchRepositories} annotation or the equivalent XML element.
31 * 
32 */
33public class ElasticsearchRepositoryConfigExtension extends RepositoryConfigurationExtensionSupport {
34 
35        /*
36         * (non-Javadoc)
37         * @see org.springframework.data.repository.config.RepositoryConfigurationExtension#getRepositoryFactoryClassName()
38         */
39        @Override
40        public String getRepositoryFactoryClassName() {
41                return ElasticsearchRepositoryFactoryBean.class.getName();
42        }
43 
44        /*
45         * (non-Javadoc)
46         * @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#getModulePrefix()
47         */
48        @Override
49        protected String getModulePrefix() {
50                return "elasticsearch";
51        }
52 
53        /* 
54         * (non-Javadoc)
55         * @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#postProcess(org.springframework.beans.factory.support.BeanDefinitionBuilder, org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource)
56         */
57        @Override
58        public void postProcess(BeanDefinitionBuilder builder, AnnotationRepositoryConfigurationSource config) {
59 
60                AnnotationAttributes attributes = config.getAttributes();
61                builder.addPropertyReference("elasticsearchOperations", attributes.getString("elasticsearchTemplateRef"));
62        }
63 
64        /* 
65         * (non-Javadoc)
66         * @see org.springframework.data.repository.config.RepositoryConfigurationExtensionSupport#postProcess(org.springframework.beans.factory.support.BeanDefinitionBuilder, org.springframework.data.repository.config.XmlRepositoryConfigurationSource)
67         */
68        @Override
69        public void postProcess(BeanDefinitionBuilder builder, XmlRepositoryConfigurationSource config) {
70 
71                Element element = config.getElement();
72                builder.addPropertyReference("elasticsearchOperations", element.getAttribute("elasticsearch-template-ref"));
73        }
74}

[all classes][org.springframework.data.elasticsearch.repository.config]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/4.html b/site/emma/_files/4.html deleted file mode 100644 index f897a766..00000000 --- a/site/emma/_files/4.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.repository.support]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.repository.support86%  (6/7)85%  (46/54)75%  (542/720)78%  (126.5/163)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
MappingElasticsearchEntityInformation.java100% (1/1)71%  (5/7)55%  (46/84)65%  (10.4/16)
SimpleElasticsearchRepository.java100% (1/1)80%  (24/30)75%  (349/465)75%  (81.7/109)
ElasticsearchRepositoryFactory.java67%  (2/3)100% (11/11)82%  (106/130)85%  (20.4/24)
ElasticsearchEntityInformationCreatorImpl.java100% (1/1)100% (2/2)100% (19/19)100% (6/6)
ElasticsearchRepositoryFactoryBean.java100% (1/1)100% (4/4)100% (22/22)100% (8/8)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/5.html b/site/emma/_files/5.html deleted file mode 100644 index d2ee5ab4..00000000 --- a/site/emma/_files/5.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.core.convert]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.core.convert100% (5/5)64%  (14/22)76%  (110/144)86%  (22.4/26)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
DateTimeConverters.java100% (4/4)61%  (11/18)75%  (91/121)90%  (15.4/17)
MappingElasticsearchConverter.java100% (1/1)75%  (3/4)83%  (19/23)78%  (7/9)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/6.html b/site/emma/_files/6.html deleted file mode 100644 index dc61c1e9..00000000 --- a/site/emma/_files/6.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.core.mapping]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.core.mapping100% (4/4)76%  (13/17)81%  (139/172)83%  (26.6/32)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
ElasticsearchPersistentProperty.java100% (1/1)60%  (3/5)71%  (22/31)89%  (2.7/3)
SimpleElasticsearchPersistentEntity.java100% (1/1)75%  (3/4)72%  (57/79)73%  (10.9/15)
SimpleElasticsearchPersistentProperty.java100% (1/1)80%  (4/5)96%  (44/46)91%  (10/11)
SimpleElasticsearchMappingContext.java100% (1/1)100% (3/3)100% (16/16)100% (3/3)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/7.html b/site/emma/_files/7.html deleted file mode 100644 index e65b8148..00000000 --- a/site/emma/_files/7.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.client]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.client100% (2/2)83%  (15/18)81%  (125/154)73%  (32/44)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
NodeClientFactoryBean.java100% (1/1)86%  (6/7)80%  (24/30)75%  (9/12)
TransportClientFactoryBean.java100% (1/1)82%  (9/11)81%  (101/124)72%  (23/32)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/8.html b/site/emma/_files/8.html deleted file mode 100644 index 84cd155a..00000000 --- a/site/emma/_files/8.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.core]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.core100% (4/4)94%  (34/36)83%  (818/984)87%  (120.6/139)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
ElasticsearchTemplate.java100% (2/2)97%  (28/29)81%  (565/700)86%  (76.4/89)
CriteriaQueryProcessor.java100% (2/2)86%  (6/7)89%  (253/284)88%  (44.2/50)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/9.html b/site/emma/_files/9.html deleted file mode 100644 index 1815892c..00000000 --- a/site/emma/_files/9.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.repository.query]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.repository.query100% (4/4)100% (15/15)91%  (242/266)93%  (51.9/56)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
ElasticsearchPartQuery.java100% (1/1)100% (3/3)86%  (56/65)90%  (9/10)
ElasticsearchStringQuery.java100% (1/1)100% (6/6)91%  (134/148)91%  (30/33)
ElasticsearchQueryMethod.java100% (1/1)100% (4/4)98%  (40/41)99%  (7.9/8)
AbstractElasticsearchRepositoryQuery.java100% (1/1)100% (2/2)100% (12/12)100% (5/5)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/a.html b/site/emma/_files/a.html deleted file mode 100644 index 45ba1fa1..00000000 --- a/site/emma/_files/a.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.config]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.config100% (3/3)100% (10/10)100% (100/100)100% (25/25)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
ElasticsearchNamespaceHandler.java100% (1/1)100% (2/2)100% (29/29)100% (7/7)
NodeClientBeanDefinitionParser.java100% (1/1)100% (4/4)100% (35/35)100% (9/9)
TransportClientBeanDefinitionParser.java100% (1/1)100% (4/4)100% (36/36)100% (9/9)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/b.html b/site/emma/_files/b.html deleted file mode 100644 index 89de2f03..00000000 --- a/site/emma/_files/b.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

COVERAGE SUMMARY FOR PACKAGE [org.springframework.data.elasticsearch.repository.config]

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch.repository.config100% (2/2)100% (8/8)100% (39/39)100% (12/12)

COVERAGE BREAKDOWN BY SOURCE FILE

nameclass, %method, %block, %line, %
ElasticsearchRepositoriesRegistrar.java100% (1/1)100% (3/3)100% (9/9)100% (3/3)
ElasticsearchRepositoryConfigExtension.java100% (1/1)100% (5/5)100% (30/30)100% (9/9)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/c.html b/site/emma/_files/c.html deleted file mode 100644 index 031373fa..00000000 --- a/site/emma/_files/c.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchException.java]

nameclass, %method, %block, %line, %
ElasticsearchException.java0%   (0/1)0%   (0/5)0%   (0/27)0%   (0/11)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchException0%   (0/1)0%   (0/5)0%   (0/27)0%   (0/11)
ElasticsearchException (String): void 0%   (0/1)0%   (0/4)0%   (0/2)
ElasticsearchException (String, Map): void 0%   (0/1)0%   (0/7)0%   (0/3)
ElasticsearchException (String, Throwable): void 0%   (0/1)0%   (0/5)0%   (0/2)
ElasticsearchException (String, Throwable, Map): void 0%   (0/1)0%   (0/8)0%   (0/3)
getFailedDocuments (): Map 0%   (0/1)0%   (0/3)0%   (0/1)

1package org.springframework.data.elasticsearch;
2 
3 
4import java.util.Map;
5 
6public class ElasticsearchException extends RuntimeException{
7 
8    private Map<String, String> failedDocuments;
9 
10    public ElasticsearchException(String message) {
11        super(message);
12    }
13 
14    public ElasticsearchException(String message, Throwable cause) {
15        super(message, cause);
16    }
17 
18    public ElasticsearchException(String message, Throwable cause, Map<String, String> failedDocuments) {
19        super(message, cause);
20        this.failedDocuments = failedDocuments;
21    }
22 
23    public ElasticsearchException(String message, Map<String, String> failedDocuments) {
24        super(message);
25        this.failedDocuments = failedDocuments;
26    }
27 
28    public Map<String, String> getFailedDocuments() {
29        return failedDocuments;
30    }
31}

[all classes][org.springframework.data.elasticsearch]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/d.html b/site/emma/_files/d.html deleted file mode 100644 index a99df146..00000000 --- a/site/emma/_files/d.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.cdi]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchRepositoryBean.java]

nameclass, %method, %block, %line, %
ElasticsearchRepositoryBean.java0%   (0/1)0%   (0/3)0%   (0/30)0%   (0/7)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchRepositoryBean0%   (0/1)0%   (0/3)0%   (0/30)0%   (0/7)
ElasticsearchRepositoryBean (Bean, Set, Class, BeanManager): void 0%   (0/1)0%   (0/12)0%   (0/4)
create (CreationalContext, Class): Object 0%   (0/1)0%   (0/14)0%   (0/2)
getScope (): Class 0%   (0/1)0%   (0/4)0%   (0/1)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.cdi;
17 
18import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
19import org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory;
20import org.springframework.data.repository.cdi.CdiRepositoryBean;
21import org.springframework.util.Assert;
22 
23import javax.enterprise.context.spi.CreationalContext;
24import javax.enterprise.inject.spi.Bean;
25import javax.enterprise.inject.spi.BeanManager;
26import java.lang.annotation.Annotation;
27import java.util.Set;
28 
29/**
30 * Uses CdiRepositoryBean to create ElasticsearchRepository instances.
31 * 
32 */
33public class ElasticsearchRepositoryBean<T> extends CdiRepositoryBean<T> {
34 
35        private final Bean<ElasticsearchOperations> elasticsearchOperationsBean;
36 
37        public ElasticsearchRepositoryBean(Bean<ElasticsearchOperations> operations, Set<Annotation> qualifiers, Class<T> repositoryType,
38                                       BeanManager beanManager) {
39                super(qualifiers, repositoryType, beanManager);
40 
41                Assert.notNull(operations, "Cannot create repository with 'null' for ElasticsearchOperations.");
42                this.elasticsearchOperationsBean = operations;
43        }
44 
45        @Override
46        protected T create(CreationalContext<T> creationalContext, Class<T> repositoryType) {
47        ElasticsearchOperations elasticsearchOperations = getDependencyInstance(elasticsearchOperationsBean, ElasticsearchOperations.class);
48                return new ElasticsearchRepositoryFactory(elasticsearchOperations).getRepository(repositoryType);
49        }
50 
51        @Override
52        public Class<? extends Annotation> getScope() {
53                return elasticsearchOperationsBean.getScope();
54        }
55 
56}

[all classes][org.springframework.data.elasticsearch.repository.cdi]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/e.html b/site/emma/_files/e.html deleted file mode 100644 index b5959734..00000000 --- a/site/emma/_files/e.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.cdi]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchRepositoryExtension.java]

nameclass, %method, %block, %line, %
ElasticsearchRepositoryExtension.java0%   (0/1)0%   (0/4)0%   (0/104)0%   (0/18)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchRepositoryExtension0%   (0/1)0%   (0/4)0%   (0/104)0%   (0/18)
ElasticsearchRepositoryExtension (): void 0%   (0/1)0%   (0/8)0%   (0/2)
afterBeanDiscovery (AfterBeanDiscovery, BeanManager): void 0%   (0/1)0%   (0/30)0%   (0/7)
createRepositoryBean (Class, Set, BeanManager): Bean 0%   (0/1)0%   (0/34)0%   (0/4)
processBean (ProcessBean): void 0%   (0/1)0%   (0/32)0%   (0/5)

1/*
2 * Copyright 2012 the original author or authors.
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, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.springframework.data.elasticsearch.repository.cdi;
17 
18import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
19import org.springframework.data.repository.cdi.CdiRepositoryExtensionSupport;
20 
21import javax.enterprise.event.Observes;
22import javax.enterprise.inject.UnsatisfiedResolutionException;
23import javax.enterprise.inject.spi.AfterBeanDiscovery;
24import javax.enterprise.inject.spi.Bean;
25import javax.enterprise.inject.spi.BeanManager;
26import javax.enterprise.inject.spi.ProcessBean;
27import java.lang.annotation.Annotation;
28import java.lang.reflect.Type;
29import java.util.HashMap;
30import java.util.Map;
31import java.util.Map.Entry;
32import java.util.Set;
33 
34 
35public class ElasticsearchRepositoryExtension extends CdiRepositoryExtensionSupport {
36 
37        private final Map<String, Bean<ElasticsearchOperations>> elasticsearchOperationsMap = new HashMap<String, Bean<ElasticsearchOperations>>();
38 
39        @SuppressWarnings("unchecked")
40        <T> void processBean(@Observes ProcessBean<T> processBean) {
41                Bean<T> bean = processBean.getBean();
42                for (Type type : bean.getTypes()) {
43                        if (type instanceof Class<?> && ElasticsearchOperations.class.isAssignableFrom((Class<?>) type)) {
44                                elasticsearchOperationsMap.put(bean.getQualifiers().toString(), ((Bean<ElasticsearchOperations>) bean));
45                        }
46                }
47        }
48 
49        void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager) {
50        for (Entry<Class<?>, Set<Annotation>> entry : getRepositoryTypes()) {
51 
52                        Class<?> repositoryType = entry.getKey();
53                        Set<Annotation> qualifiers = entry.getValue();
54 
55                        Bean<?> repositoryBean = createRepositoryBean(repositoryType, qualifiers, beanManager);
56            afterBeanDiscovery.addBean(repositoryBean);
57                }
58        }
59 
60        private <T> Bean<T> createRepositoryBean(Class<T> repositoryType, Set<Annotation> qualifiers, BeanManager beanManager) {
61                Bean<ElasticsearchOperations> elasticsearchOperationsBean = this.elasticsearchOperationsMap.get(qualifiers.toString());
62 
63                if (elasticsearchOperationsBean == null) {
64                        throw new UnsatisfiedResolutionException(String.format("Unable to resolve a bean for '%s' with qualifiers %s.",
65                    ElasticsearchOperations.class.getName(), qualifiers));
66                }
67        return new ElasticsearchRepositoryBean<T>(elasticsearchOperationsBean, qualifiers, repositoryType, beanManager);
68        }
69 
70}

[all classes][org.springframework.data.elasticsearch.repository.cdi]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/_files/f.html b/site/emma/_files/f.html deleted file mode 100644 index 216d7e62..00000000 --- a/site/emma/_files/f.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes][org.springframework.data.elasticsearch.repository.query.parser]

COVERAGE SUMMARY FOR SOURCE FILE [ElasticsearchQueryCreator.java]

nameclass, %method, %block, %line, %
ElasticsearchQueryCreator.java100% (2/2)56%  (5/9)58%  (197/338)43%  (16.9/39)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ElasticsearchQueryCreator100% (1/1)50%  (4/8)41%  (84/207)44%  (17/39)
ElasticsearchQueryCreator (PartTree, MappingContext): void 0%   (0/1)0%   (0/7)0%   (0/3)
and (Part, CriteriaQuery, Iterator): CriteriaQuery 0%   (0/1)0%   (0/27)0%   (0/4)
asArray (Object): Object [] 0%   (0/1)0%   (0/22)0%   (0/5)
or (CriteriaQuery, CriteriaQuery): CriteriaQuery 0%   (0/1)0%   (0/9)0%   (0/1)
from (Part$Type, Criteria, Iterator): Criteria 100% (1/1)46%  (48/104)56%  (10/18)
complete (CriteriaQuery, Sort): CriteriaQuery 100% (1/1)78%  (7/9)67%  (2/3)
ElasticsearchQueryCreator (PartTree, ParameterAccessor, MappingContext): void 100% (1/1)100% (8/8)100% (3/3)
create (Part, Iterator): CriteriaQuery 100% (1/1)100% (21/21)100% (2/2)
     
class ElasticsearchQueryCreator$1100% (1/1)100% (1/1)86%  (113/131)86%  (0.9/1)
<static initializer> 100% (1/1)86%  (113/131)86%  (0.9/1)

1package org.springframework.data.elasticsearch.repository.query.parser;
2 
3 
4import org.springframework.dao.InvalidDataAccessApiUsageException;
5import org.springframework.data.domain.Sort;
6import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentProperty;
7import org.springframework.data.elasticsearch.core.query.Criteria;
8import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
9import org.springframework.data.mapping.context.MappingContext;
10import org.springframework.data.mapping.context.PersistentPropertyPath;
11import org.springframework.data.repository.query.ParameterAccessor;
12import org.springframework.data.repository.query.parser.AbstractQueryCreator;
13import org.springframework.data.repository.query.parser.Part;
14import org.springframework.data.repository.query.parser.PartTree;
15 
16import java.util.Collection;
17import java.util.Iterator;
18 
19public class ElasticsearchQueryCreator extends AbstractQueryCreator<CriteriaQuery,CriteriaQuery>{
20 
21    private final MappingContext<?, ElasticsearchPersistentProperty> context;
22 
23    public ElasticsearchQueryCreator(PartTree tree, ParameterAccessor parameters, MappingContext<?, ElasticsearchPersistentProperty> context) {
24        super(tree, parameters);
25        this.context = context;
26    }
27 
28    public ElasticsearchQueryCreator(PartTree tree, MappingContext<?, ElasticsearchPersistentProperty> context) {
29        super(tree);
30        this.context = context;
31    }
32 
33    @Override
34    protected CriteriaQuery create(Part part, Iterator<Object> iterator) {
35        PersistentPropertyPath<ElasticsearchPersistentProperty> path = context.getPersistentPropertyPath(part.getProperty());
36        return new CriteriaQuery(from(part.getType(),
37                new Criteria(path.toDotPath(ElasticsearchPersistentProperty.PropertyToFieldNameConverter.INSTANCE)), iterator));
38    }
39 
40    @Override
41    protected CriteriaQuery and(Part part, CriteriaQuery base, Iterator<Object> iterator) {
42        if (base == null) {
43            return create(part, iterator);
44        }
45        PersistentPropertyPath<ElasticsearchPersistentProperty> path = context.getPersistentPropertyPath(part.getProperty());
46        return base.addCriteria(from(part.getType(),
47                new Criteria(path.toDotPath(ElasticsearchPersistentProperty.PropertyToFieldNameConverter.INSTANCE)), iterator));
48    }
49 
50    @Override
51    protected CriteriaQuery or(CriteriaQuery base, CriteriaQuery query) {
52        return new CriteriaQuery(base.getCriteria().or(query.getCriteria()));
53    }
54 
55    @Override
56    protected CriteriaQuery complete(CriteriaQuery query, Sort sort) {
57        if (query == null) {
58            return null;
59        }
60        return query.addSort(sort);
61    }
62 
63 
64    private Criteria from(Part.Type type, Criteria instance, Iterator<?> parameters) {
65        Criteria criteria = instance;
66        if (criteria == null) {
67            criteria = new Criteria();
68        }
69        switch (type) {
70            case TRUE:
71                return criteria.is(true);
72            case FALSE:
73                return criteria.is(false);
74            case SIMPLE_PROPERTY:
75                return criteria.is(parameters.next());
76            case NEGATING_SIMPLE_PROPERTY:
77                return criteria.is(parameters.next()).not();
78            case REGEX:
79                return criteria.expression(parameters.next().toString());
80            case LIKE:
81            case STARTING_WITH:
82                return criteria.startsWith(parameters.next().toString());
83            case ENDING_WITH:
84                return criteria.endsWith(parameters.next().toString());
85            case CONTAINING:
86                return criteria.contains(parameters.next().toString());
87            case AFTER:
88            case GREATER_THAN:
89            case GREATER_THAN_EQUAL:
90                return criteria.greaterThanEqual(parameters.next());
91            case BEFORE:
92            case LESS_THAN:
93            case LESS_THAN_EQUAL:
94                return criteria.lessThanEqual(parameters.next());
95            case BETWEEN:
96                return criteria.between(parameters.next(), parameters.next());
97            case IN:
98                return criteria.in(asArray(parameters.next()));
99            case NOT_IN:
100                return criteria.in(asArray(parameters.next())).not();
101            default:
102                throw new InvalidDataAccessApiUsageException("Illegal criteria found '" + type + "'.");
103        }
104    }
105 
106    private Object[] asArray(Object o) {
107        if (o instanceof Collection) {
108            return ((Collection<?>) o).toArray();
109        } else if (o.getClass().isArray()) {
110            return (Object[]) o;
111        }
112        return new Object[] { o };
113    }
114 
115}

[all classes][org.springframework.data.elasticsearch.repository.query.parser]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/emma/index.html b/site/emma/index.html deleted file mode 100644 index 5af5ce46..00000000 --- a/site/emma/index.html +++ /dev/null @@ -1 +0,0 @@ -EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
EMMA Coverage Report (generated Mon Jan 28 10:01:43 GMT 2013)
[all classes]

OVERALL COVERAGE SUMMARY

nameclass, %method, %block, %line, %
all classes92%  (44/48)79%  (226/286)74%  (2864/3896)75%  (563.8/756)

OVERALL STATS SUMMARY

total packages:12
total executable files:37
total classes:48
total methods:286
total executable lines:756

COVERAGE BREAKDOWN BY PACKAGE

nameclass, %method, %block, %line, %
org.springframework.data.elasticsearch0%   (0/1)0%   (0/5)0%   (0/27)0%   (0/11)
org.springframework.data.elasticsearch.repository.cdi0%   (0/2)0%   (0/7)0%   (0/134)0%   (0/25)
org.springframework.data.elasticsearch.repository.query.parser100% (2/2)56%  (5/9)58%  (197/338)43%  (16.9/39)
org.springframework.data.elasticsearch.core.query100% (12/12)78%  (66/85)67%  (552/818)71%  (129.9/184)
org.springframework.data.elasticsearch.repository.support86%  (6/7)85%  (46/54)75%  (542/720)78%  (126.5/163)
org.springframework.data.elasticsearch.core.convert100% (5/5)64%  (14/22)76%  (110/144)86%  (22.4/26)
org.springframework.data.elasticsearch.core.mapping100% (4/4)76%  (13/17)81%  (139/172)83%  (26.6/32)
org.springframework.data.elasticsearch.client100% (2/2)83%  (15/18)81%  (125/154)73%  (32/44)
org.springframework.data.elasticsearch.core100% (4/4)94%  (34/36)83%  (818/984)87%  (120.6/139)
org.springframework.data.elasticsearch.repository.query100% (4/4)100% (15/15)91%  (242/266)93%  (51.9/56)
org.springframework.data.elasticsearch.config100% (3/3)100% (10/10)100% (100/100)100% (25/25)
org.springframework.data.elasticsearch.repository.config100% (2/2)100% (8/8)100% (39/39)100% (12/12)

[all classes]
EMMA 2.0.5312 (C) Vladimir Roubtsov
\ No newline at end of file diff --git a/site/reference.rar b/site/reference.rar new file mode 100644 index 0000000000000000000000000000000000000000..7ea3c0d58f18dda35de8efc199f7627d735b64b4 GIT binary patch literal 153378 zcmb5UV{9%=*fm<)wr$(CZQHiHYumQ1yXLNKch|Pt^W=U1o|E%^lgy7vCYh{jt#u(8 z6=N4-97v$KL{}gnc%c7X?muosiQ+)~z(7EpAV5GM1ihg1TzY&W_^d=gME_lJF}E;x zF?TRE*Ryi7x6?Cqb=9-7wzRVQZ@V%4cLKU=th9l`Mw*`KP4W$VGlUfO92x&LP6b3m5kUJ8r&*I}jkP9sm~fv`V@SnwQb}1LgQ_BDT1m!>j3LcWO>|9? zWf2Y;M}bAyv+XuFv-zX0JLyfHJ=UR9@Ss23mkTIT^l*6(_5Pi|r)$PZpr!3KXXYU1CUf9ao3XRIZ~A%`0aCcz?ThXV zM8P`~w8ZZp2)#8QJKf$+!;4`JUQK5H>?i7r{=cKoZ)CqhAh`b+5CS^=FZ$Y0|1t2` zKy>%N4B-BMGVmW2{~LUuPb)Zlx#{V>8DZV6-#gC1`BWi};=V2qkU4ySrx0$bZ68RE z_1LvPap_fxalmbOyf&@9#G07>=4;-r1N5RMv>w@A*?k{Lv{*ht(p$b$YDN@LP%p+Y zWXUhYK^H}~Jc%2kWAPd2KeCcDZR^l7eI(@fE%ix#hb)T_etZ^1)(|a=AF4Acbe=Mp z1u!$TTcpp>kwsb ze(h_JHK6ZJy}C917HgW*dv9qY+>iUrdWrN(`z_miNZ$HC&MU;IBdxr6?;bA|-WKNz zu9l^-(R^5i5&Fdse&UEmQJ}$)%c?PyOk9n31{a-Jo*M$LU7&5C2TZ0O^Pzij!qIu& zWX-P|ereIp)B{9qn%_2Qs^J&8?yD~?Xp2cvk|Uu(Of@1=jE>WuQw&~3@?$(B-O+Yw z#`9LR5fM4Cc>yTWQ_2yE+jkn=1(t4W9u7CIBix#1-8cvmIy09$J5uL|@+AjjlXqxg zZ6fv75g5z4i2_&}2t1L*r3-@}$YYH|?~eA*o-W!l z#q}|C5Byj+e`w#)bybr0yzlEk>`GJL>0J{g?jDSt;0dH8Zz;qT8JSfDpXeAGc-Z)) zHwK-ITD*?fJA55fLQ}gg<)B-wbi8oX>scCmS8$&2x3TMUb6;d@_+OUQ5pC4m0Te^w zTS8APkak!CuFZ0fh8&Eeb5DzBu?9s;R;-~1z{n(Qt7=U0{X5YNZ5`M5Vw8CKU#lMy zz5fhN+0Wrb3gP0Op@%5sgsm=1$CZrd72qo5?jpqtna1UX_A3E+X5R7g#z|T0^)~WO z>zg22DfQ07A1$x|cw@}ysG!iKN0e3VW}*sk9h%0>+dM1Li_bdRe`I<0cLs}Za} z1?*=NQ*Iu257*LU?j6zE=KeW=<<@+K{wuV?ouca>BC?JDY$6L(@?TE!_%B(3jLw>i z{jW_Z{@-k3ZEtL8?y6^OX7A|Ws%K(n>|o2_^Vot1~wn+q*yaZzk?h>QPc z5W86z+-wS!^KHOWOacze6yN9$&Afy|5qK9WssUtrUy1~F5S!hsFa%c4%N4QriN9hy zbkf_9@8IK3>>Xl%_)K)bj@Bh$SxdV=1yG~ff`RhsxFI{H{R`6Qiir{B>r5-GlU-ZI zZ|qaobbju!5`Y($doaxrgUhNUjP@@B^oMAZ)N%@)C@w(gX2gCisb*1!@jtZk|G@_I<|(wPD-5a#Y28nCkrGQq`|l|5^AES zOYE5)EVe~c24Jw2mM-pMTo)%JVmPNJK!Xs4)}^KE6b}-WhPPvchwq|3Nf^>jJRD8@<7LfzTa@HM8c2`!n6vV2WeFP@JOk7 zh7!QhQ!+hL$ieqE7Vzi6082zVI+AMWeqPd;h_NEcs4cL>)li8L=a-Dus3v5l&sTr2 zq}Kkv=)e6#VoqcduB(KpN;_MBe>2-_{v{6cd@-Ik;Wzo?uXROgPW+nYb7fFb{)`Yg zAmq|FhjDHnQnf7|fIz0=>AH}^02}NoSQOPGRWAcD_cD{9hs|4ihdK?$$tmT$zB{Pp z))|7VHlU3i9Gmxhc>A^V)EZn-!SQ@_Rd(T9y!0NYzAG?;v3&!dZ*2|M+u|Ir%dXq= zkoMRDjZp=)l0$ga?sjWxT0zVFbcXEOOVUN|V7#ErU9&w5Fo^Tl`r$@YtGKV{i`L#4 zJ`l?D*e*>R>wEm}{y38gDQRHo1bcNLyd)ThZDX^Qi_NEL;Tb<8{@%?NXzn{PLEb;t z{l)VUP)O0(>yY!+!m}Vn*ZkJP7o79}`5!T*|0kwHu>Uj_qLf?we=Vl}F^^N12@J9N z`a~}t_DAZ5j%%S+K(WdPw$|#Sc>&A3rLMx1e7R%cqQawh^Tgb|Bi|NnBz7_da(R{5Il!Shz;>9>o?NoLA;{xO6>bLO{bgnn3a_gpAWq7J2w+i zkW4Ci4agKsb|TY&)jZwR*on?&=>FJBjZy%UJcEOf1e6=QUzfu+VGQcq9wZoHT4a;a zp$Slo#}(KuDG~Tb7Phz1mrzm^?RXFgSgayJFEIbo5-ik{4XrYUn$ki>Gbuh+(9O4 zA9xXH4FvZJu7K|EpN+jucH>*KvUp=cPq<5kEkD+xry>r#`c*~`u8rQmv96q2aIf*H zevkK#&(uZVo4vV)qbZjB-l?8}6bj{6{%pDH`DkTZ0zRO?(k;(Mo!hhCEs~dip z+&&%=>rHjFHLM>lY3lC&eVNMBeX6Ohq}n1^Fj#|-SVV~h6_;bCcU!(tqo71(iTr`C z6YKG>tg${MP;IC#x&mWGpQm<1!oZtwfiy#_D3bR}GtW4_!u_A>ATJCA#31&c#JgyT zH~x>SgPDu5h1>sDhkt=oRhQFX9@Q_ z*Zj1#{mh@=S%2Kab4c~QTY1kS!9U;n+R~oCx{*wQRh&6NTD9{~TE9QrFFdgNh+8Z0 zeQTCGfw%F<`m#mKo(WTZ0Czw+=DsCVE)%~&u_F6e+`m;^qCI6{dBFzUyu#3O@!2Ydf7^?9u&L>qDnAj85@7@>N38#)CVU zd3~Dla_F9Zr?TU#iJ1G!WYk@Qm?`h2vNy`Hyj}w}@rc-F-b%aXEpVYY^9B=a->WFb zrq=a4Md;_%$iI*uWmFiG9kKKX()&Xe!*{`bc#r3XIG#=&)1tlCFV_$YIJ3yY>I?JTr?dF zJuDZV>Yl`I2_^R)4;Fsby*T2W+7bW1{L7hh!D&@>Sqx z3^K4M?vvvVnglsZmw?qvp7N3H5w}H>>VfN+9GUfThrNd$&Ia|?^<#bD+pp!JwWPxz zV=ls;tU$G4i>Hw!&ktxixhADDGbS%;!*}&azbu%sKP_Jw3vHK5O!feDws1H7I1|)? zH)n#4~9kO+0 zBf8*S3MG&s9Nf6!;U?CG*un#*qMHm$$01F=m32>h3MwcE!%E#BiWSj&|Mu~Iq?#Yn z2%wC3UESzg_#bKKf19?BoMirg&|$j>%-diH?{i+?9iVdUbexC##VE=w`sxGUVS9Zb zrejir!kGzdKXJ+#K6!(A9n9|54%huz7SXr38IE4wZR!&KN&Nd=i5TRbgWvN|e|@}$ zD7St&>(%3e!y{h<{2yp#exU8PV6 z%C0-qN8Q+rM(bblT~s9d$0(47NCsO#0yX|?*O7kdp~u8Y8L2JUgAf-t)?*S0;WED- zcep!5EQOMgi}3I9W-`;zw&b+A#2LOiTT^){yqg8UAcO%Q8@%loRQqyY zP0{O^>yg~0&`zIpym2BW)m)6u`RQT>IIJTY;y~>|^4X1`UmO#YT4MAFfAIPJxATC( zyp9k6!rpcBmE*i+wA*1rS-Sr0_3q-w!jtACH9AnjrdFX;4aY{4edxLu9F1p%IbLve za%`f0(>|>Extmk4Ee~0oIoI1b-R{PrQ#(Sx{#a1UF1O}N|t8Y=6hcKWu%+DLLS700AA(@jpO zrAT~ah|&u`5>k@;dz+tjATpo5@?lVA9^snips&6b$pTg zDVCj&qJ>SnFHc z8VrS&(DAHK!^7#jwt@2_W3+P*RbI@CLYw-+`EEq@a5UD_tD2e?K731hMSd1z6jdFL zP@r<2EZxeM3vDx0t6b`$fxij-;3gdpJ+bCEIeZaO*hw6|ie?akk+{2{{0nnVVXE3u z_IWw=#w4U8B%Td_HS(LGkz^<R%EtZbF!=}eygZbOd>kz1GC^KI0 z`C*sDEZ6G7?CnB7?*kDbBYJg|x83a;v<6OCv)8q-2Ep{>u`oOTVXhqLhgLO#_RAMB zV+S>cInb4*@3E*%fEkTeAnzXuG5z_Fmcx&3xHktJG=wZ?rG9+XCoHC#R3OINL>k-5 zmc*zp8;8acnU7EXmKu?bx@Rexu)?CS{dVn3lX~&?S>O{A1Qb~}vN)(6yM5gaSUI@B<$n{T+cu|1r!#ujIW^7KHfP3eM62`px!Jp*_5r^@W z>+!b=bf2yqrc8K@9idF(6W<^f>9-EUZnwg&x>8}bJ&PVC_A1(npdIofZ(2>pUQ&x$ z3HHZUB&S9ON~KVCdhk+9BH=0y)@rCSBi^e}loz|NDn)qFyD_DI1x~)c`EdJlE*cEv zG|a@tzBidV+t9uJU{llxfmwK-xz5HPghY`D?mRzF)`7U~?}uL{*)#a=v+E+4@DF7L zNJSbrJ3BbF4G|vx0T+GPE}y*I++7%{!R^}(Ww1Fj!7`Q5<7GkoX~8|YWZ%+N!C&sp zd8+Yg&^VJ`?*Da5b$a)wBrp+ir7EGKR@y(p71Mxb(aRGdF2)PdFR#e<*G=HRkXu<(H3 z-+cTHdv$M?MDlwBRvO%AjaLROwM{FrRG{ePo-OwwGx)w{l!{rdgpWACfdIG1e?#_K zAVYEEDV@u(ly@Yqu~E_5<0)_;wAP40Q0>F%O5~YuprhaV2Ru6Qg*xSD~V_qhzAqZ17OH?mH9&%6}PakIyy&)YsoMQL#{>}=QJ zqodNe>cQ{Tcpqg4y=7Zuc8-ZRV4NlEMB=GNSsCfp=Mt|}>hOBb%`Cbr**K-AEsuHdMT+FQD@{Rt&nW&}X6H>EMb4>7Tz& zGV9LWE=lF%M6)wvN`vDoS?NRcp~X)(W?n|?La|I@!p=7x$=L_5&{q0?sABX*@{RM- zg^1vj1VUTco>fy)bDNS#8kWSLqxG<{%BD_8)V= z$Bm;*PgseccoEjY^cWDFz59Hm-7%TrKN|{JE^-+8AgsUrrR_oT9Y*w46^zr~PX*3M zu#bzu@6eidV>x*&^og)BZTby87G8UGHT~nVPZw&Awv@?~&Fgs(jkdaL;ae|lr&ZE| z1bF%T$K8kw1o@f0xN6@G%*5j$Cmx9bbBug?lKKUtdIrs!FGEvm(s-ajjA%)$;=s?9_qX$h2tqy=`4}VB4V69*I)D)IA$zl4vfou!=+?k4EHhSsy94c?p zzkCEhINB_wMrqv{3qVKlZ)C}@?b>EG)@3J)@mCDk1XjMnpa{GS_QmT<4}b3%t4}_t z>;qFknm$3N+3sk!({hW!$K<|8L;Yu7r2qQ7?+*)+fO}(R>uo4$ z#;2oZiA+)rAkP_KNP0$MSZV1aQwtr*D&6#BzL;tQWqrFAj)i#_)|aoRwXpY(#%#t{ z+wqi78_x&gp5WbC6cRz$w^X)t8{A-fjFPPLp)4<@QeO8CAwF)LbzE$a#>4>GuRs8a zS7%Z;g7{&ytbUl^Av35qk`obH;6lF>X{X$V@5lAa&uqk;xEU>@Q@?rgJ}5lVj5>{w z=8UXG!I4#1fG^8su+9s6>o&86tM^F9-5VksYiX48y75JW1gVe@?Eccia&RfRAeD>j z<(8PN)x$QXA|r?ok+r0OM?`AyFswa(clLp#iqjebY!tGK1H!CEV?8mYsQW1)f;DFz zf*YwbsjYZN%~9Pq)?4^U?p|n3!x+K_rQ}RQjIA*X=$TyIi*SQ51-c_=wSQsa<~AEG zRGWu;5zhAAH6O9C6-=S5O_J@EMPl+i@5BzkRGwYZzieMp6vkZRuvw1>87wik?$T~1 zGH-%x?@T=qQbLqZhok;NRB;E8_BkNee?$MUIsYPoBeM|mDrr*E5b{*==_&3eP1mq| z-bnETnwJ5=zRP-=BH}5D-E9w7* zvg0N1WbFX?{_NHV_$|-4sj($a&h|tf@?cWxu21JSJZoYM=m((c(opc8#^p!r8P^YO zZvS-x9~Nb`&+BYluTIa(&9}E^cxV6X0+rVF%Pz2-(!8OrxLVA&zS)If^?bat+U*Oh z(c*q7#?iLhBm))x=DUa|FX?1ouu*rjOxUhk#TCOB4PCFzVs#Fw#+t49O7g}w(m&W=|; zeXxg^u2v=o=E@Wgj>LHqll&mo)(TfFC_G9R4bzeSR8%(=E*(^HmoVUTj6B~%#7Mdn z?CxA)?mT^LHKSGM^Zo0&Kwe0N(KAQ}5^?`M2wsw%o%9#ojFz=&JV;3p7@Gm^OkU8} zeyVMjhBvCdfb`REOA4q1{xA4=S7zUbmq?947Th)3>QLODKiBPe~896x}C&XNKU&w^ld8cAgcMMdAvd()pp+< zmDb#wH_RSQK#pkUqL~fv?g$$Rp&OI?#&;n~!Y{fE;@-bqim7SS+x+yw{|BEw@a^;qY<5hlq~;Bmb4Q~f3RQ_+xt}P|O&dPWEVa8# zC9{kmWz)BXoPpuFE}UQVCwx8@x-!p7ruDVOLYI=<>te%Ozyq<1^{7F7B5Mg$=e5{C z5Xc}ba-vw9yIg|(;$;!ZS|PpfS6qe{@9A1k&Bca4grTT7)dKUhsLK>n^dtY7vwc!; zF)&FNmp{Vfvl)%Q1^Z=Kr=NrKjIWTYMixrFpO25}U1YIX3+V$~r^xbG)14#VXy|~0 zb1A}5*G!z8+@!_IBO+I(uQ_|4a-5U|G9@X}`~kk0l-(Fl+O1tx*QTCXYZb5p&&)H#y~R2xN9LJWkW+ zbJ-xGNM-Zo{5{V@AdwfzC8Tkfps*j9<##Akb&th(Q_ z+0`&Q6#Q*sqS-@02M1$m?cPXxf!k&Kp0N1>j?syRl4Fnl^Aey2jXg@VK_Z)pr zQr|#A?|+DfzFDO_auWmxVLsheg?i48kdjevGLWtlNagk}{y3y~-pr-$AvGegqZYVuKYe zWiQ$dy?}8MSHJ(7wivAdh_o-Hrqf~Oi$ZLt>b>=#46uW#Kk#i~8287f;-En#~;L&lWH$A!v3mVw&<20)={$Z-~)=80_7+NX4jae#Npy?11 z*#e&Q?$AFFJr>FmfS0_lQv!PzGj;C5X#LQZZyF9s7YjkRxee&mi{U<(D(Sd!?uZlz z&@pK16l#=(r^=cdowh$z*m^0eMDY4DD8v!9sM(`(Iw12(>W)jL1z+>3g zwZ8zz*l|rL=xgzG9k)v=_9e$@q8hlh|%5Xq6K_@2@kO1rD$FK&KviKczAPLk6iWHIBsMQ-ki zn%4Q__~FuxH|`~c=vGA=`9!SdEUJic_3#JBCoqbaszm64@{hm^DTlq1h-Tz}oL&b@ zq#wMCVk_s%9XvU%hxR+}=U?t3rc0Qj>+YvxCk{!siTJ&?_K?v?l6`6rw^cf~W3v{0 zX^Z*3rnNH9E4vaP3thgdLVA;wwM}yVjG4!Tu*RQo()G^^p98$$+(*tc9v9`%vrI~8K0h~VpGB*cq-AvPW4gY~1QMRYTIs$s4vNth=edal=z#<8%; zpXh}i9AzJ*gHw}sb=Iw=8(UEv$-aLrV>c~Ksol++zHfsqP|}Hg@Hg^QRc7qm2&KMw zSNSo-(oZXVE60EK_2-?#5sn5vi9`E99dDQI2r~0jZ&>z@Izv}TVsrNOKj>_0uyO>u z0Kuo>WNmUqnzn^Opa>9Hi2)CEiIX042@WuHb7l9;_-fkpF~i>L$z2#0Tu??V>SxPU z2$c=r4NbaalIrt1`s^%4`rev+f%y^Sf^1nZowKIddD@_16;*e!qb|w9IFtf|9L7E` z!osLMKe_c0OAHXX&D~w9MXTv62k6qVWuidC5>bR+6qHtlpzMRwb+qZ}7 z1itz+5i6=*r(5u&yuIOf$OuM9l0yLPrL2T2bE=(EAamlrp>PPiUiFt@+xFdi__dg9 z{efV-z0OfWOn0}Y7y!BE8f##bU>q6vY7k;m*M5i(xdcN*Ye=EY4s1?DzD%^M;#b_g z5VpHjYl^Y7nmQVAaDf`DvzoUF%E%`%xNtNDnRf~NhM{o8EjIguqjBv|_BOsi8H`ly zwbsXSn9fU?0>pvb`cK&+1F%%y`!eEe?6O}ofy(m9>Q7YFzdmy$9#T;Gw`v|wK~H9e z;%K1Frh3#-9?5?qYkV4%oexdhxFv8~02ycLjqZh^_HTUcM!l+uoV>hxLZ{dP&Va9G zXs2>9FK_Z!uJ^we45vz0`R5}1^=m>>jRj2)8eZ z{fSIVWP>h7yrNP_(bL-(*9uc{lYBbsQ-FDI;LL`7osA$lm9R4Dw!c#_J!`1vvDeiLvkZ`wYC`!ncDzcIE5%f`^|H$0Zol=^EA+q=2gwR2sy?_%vU3Qud^t z&QeT7X04w81`jq9NLo)2EXvDo3t9T?l7=z@gbvo!K!}NUwEeYSVG7g=f-c+}g<6VP z*RBN@Qd^>=&OeSdXp2E`+e$?hhWtg!&79ZNFO=1tNOq$%Hbp_*wLiZBOw#@ zYIktwH~Qk^$&|`h?%M^7hTR%K-~}?}t(6IpY`w^7t3E6@(fgkovrrl%3+0cGZzDj~ za|8V+Ln7>zBDzvjv66h2>aqTIolgl^O_yH8;dPtRT#vi{^aQ|Re3;hEVfHOwud;&~ zd1sb7^aW~9&2KAcTxezp>G84Xh1Cmk7yk)gc3t5wR4)xgv6^Nl${+$wWM)n%hK`I+SbRD^xbtD+}hyjyCqGw(L2UJvqhE3gb#^z~;G%R}YPhAflX|rRt z|E)5up@}buSuvpOaHb~`^Cn`%;9c& z-sftY1U|aQ$NE>JCg3|%IpS}d6|wD=L<>iU@JHQ`_jjcr1M7(M(@nH{MMpIXE;Ln7 zzZS(C5wI(XECRsxhOWS)!;8|Otrh$yfAC}8Bt-P5H{*vLbKQ&(Pv*!(*W||is6!{M zs~vHX=gMshV2r9I9>S280nTQen~ z2F&dZ{tKpZ-FX~Rekm^WZI21n&7=6uBFK(z?M3eGUC}TQ+}O2i4+FcxF$^&)o{yOH z2+UElRUTFJMHRs=)}?-_-a-}NBfDo8!GA5lN!z|mMH9e6mQRNLB4WyT;lhsls3G>z zl8I=`+Sfb$GCF)+>ea31+4{7jnXnpp`>N%%w+Bp|n<@}jwqz^V&P8d#tofk}DC z`d4w`n&Lj72M2b>K+-xNugR61)9jx|3+?Q~PL8i`MP;1cQ+IK82dy$6@CDs~qrq$nk`MBeU->CgbYt=wYph z99^xlh1f+ihpuMt3)j2fEfx`RM0n8abK6fc7Ia!zzjlwTIEXKA4Y=E-@`{ct1?=V~~ z>00Pq!_X4dv6+*#GCuk?EOLDe&MW^A5YLgPX|o8H)CXP_jxN#9;PFci}9H_Z?o z83OYok(4{!VxxaA66lhO#7ka5Px?8$1CY}ms zE&;GyT(0GfQc~SZ_Jf$!%n7fAiRF;^L0f0YX`No*1akJrB zGV7$*T--{ko#r59Q+kAY*_oKYOKZ1>%|-`g_Vn0XH&3pTub-B!%y{^*aUTD*OI z&LP*s4P;c3VAD1)Gm*3V1EAS0>hKKK%r42`Pp#6|Ob^XKb*6&e z>w0i4_CEalHYps3dEYNn+?gd(GnN(KZVmCnQzBwFA0{jbS-x*Vxke1q`IVBYGS5rzgXR@7p`Zh92Yr%qq121k+hN$lIU^-8MP{$cKgkcwTE;v;DURJ+Z(L^gP|Zd$3MhoQ?8^pHe9jqim&dE?aE2kd;m1^i?o!@Y z-DRr;a@ycwWqb4661lofuhE$`Qic86a}9Xa505u1?rm5k3NA7LB;%fz%RS-NjdOp4g)dCQ7i%EbcT7$trfZP`K!| zJ3?{qX}*J__`TzF%6nllZIWzlK?O|P%Cp(g z9JAT1HEU(Iu5L@NKyoB4?Yli2zYFd-z2+mhW~{fv#fcf*Wdxd4`17gMy9|&e**L+k@bFDsVi6H%K8_!XLgIeI zK;G)|{p_pxcT^-sz*f}nUYXtZ+`s;4bL(!~YkGo)EH8>ZO1JOnk6l^M6nDdd)Rs8J zmT7OogviPIEx&VrOO4$nNRCB^>)XLd4kVtW?u%1bc_;TV+`7B`WIQN630r73>-fwY z9x93l?oio@2YvlHiM`!Jm-Gkk8DvLwAv}xQ{smR;=Y(bm2^C-+PH^#0JtLks`F%Jp zd4?cb0bt-lQbJG`YcOLy+VZzDkgDrsC`4`j#nvgl*K}(uNJH`}yQDuOq}*lQl@_w$ z8oTt;PkYn5;yI-772#W)JAgLCJ5dG;cX}cZbq0LqmR)AFfwI&k4&Z@(gN$l1G z6?>YTuO^8%BktuODc{aW4|S7(ncBPML7~YsnzgW8B1Epdl523kCzvG2(q@n|LvPvT zl&W_%R$CKGNi~+AUK;z3L1QFad_5iSSF@Dv2Xmx}Qmf|>KF5IYaQ+y+suI;&~7ECLF4nX`a><+ds3nc?Jn%LLuFeds(4x{fMB<9~ zSar+yon7Axjydy~Q^6|_c~=NT*F9cCqgJFG*zm}s(V&-o`6)a8uJ=04jAV@X0V#lk zn8mg8yZkHD;|x}heUvQZ-^PUQpZTg@DM#S5m>vk<8F6t-(Ep}`HfpN$AEeOd%aG)8 z-A|kOPPd<5oixHVVGDeQm5U=lPxgodz-^4g2=dNB>{Z}(-Nq`^ zl5z6H%mR8qV%lOJb9m21uOH0W^@48$=ntZ3+{mt zWjM(9Tv%NZ+qFt`r@65XW9cd`uZaen1zoQPt*vkt>y}@F^;JTms31=!vrIsI1v>rG;3%K5{+aF(lblL~!)(`5WKU2#0jy_RkDS9fuyW|_gQFw<;&#MoIFX2T~Oy!m>u%Z~(ezq61 zO5j#^fxg^3w16d9u^rXzQc>Ieh@Pez6`5addjW};KF|KH4l(P{z<6ZD78%JdJ_Gq* z4{K9_Ic@OH+um{j`|97D0uBsK1B)Xa#K=T6^hKIfKCM*I4c(PZt`^!U3{7mV{)j+S z&8RMV_hPPheLx3qr=vP)UqyxA)I4K4+PU2`wtp@f zrLC?sV8RdJgjm}WuTst?T{FGwz;r02aF()<^4wV{+vbtV;jce;wU(x+Xo$=>+KjbX zSP06Av?Bu(RCHW)=W0Hu)H{v_bDit*-#ETQHP}o+9ZDs2*1@`T!C-wiKL{_@XS>^Dz?mgIt{567nhRX7hvl8a{q2Bm+wyM3K&@6hsaUS?AW_ES~w zf>AjR?Q?yC!2;Q8IsX}-3Hh@SdeXB(1ws)OVLAiHT@%8Q-@H;gNy-${;rnHPe)%CJ zeupqlQ=BBso>#tc6y0|28nxi^)>!vf%7gj#+X*{=3OtRmaw@+7vCX7^W-fGzW&fMG z?eCRaGl#yt4C=MR`J5RxBg`Yfudb{=wqSjvmD>1GE>>CIO{6xpj;{iGau=v7ctaTN@N8NOrI2g%IzFC^m>tmK$h*rMnCE1G7!3b zHC)_5)^F2?JKD%MYIjWP2bPOMLIf`JJ%kGjx`5<$%v>iM14AFR-DRlLJg(pv9ma+4 zF{o&2B5l`QW6RQvtdC|yPe$PPRmbt-SPh?wIMVfd-AztRCXko3l~tDsYs*@te|8=9 z&m!2qE=`sos5sbT%4|0@gSmc-Rk)R>0D(&02!4t3eNn(OGsUc9`~Hz;D9{yFBv`~{ zJV)IkUlzU+1MNu4Ja}}2tv}e8?xoXsmd2JxQJVWpsof2=BCV>AJJffdk`jcYPRhUN zjb7(--zT{-qX_PAF4CA4;Jw?lkcEUgyjXb=^*{W1nDW>k37O5voDv`t&t5*%O!JXL zkVLV=OB~jr5?X?JB@${IpL=-^4%V$hb(R(Mam6pVVV^sHbBBVhr~|52llY_xyx!E2 zy`FUiBQN^I0J-g@3ZM%~Pc!%ct5M$PH54|=a)VJ%GGBOp+z80TWc z|F_`Qhla*jy9_ApTB9enT{2~XUrqbb5IKP5KF{1V1=6qNx_P%OW5arR+} ztg0fIboO-&b^Y@VinlY64Ab9DI#c)4=`5t?Qsp{Xtb}teTSgyz@0wBBy|71GSMsv$ z(SKz-tKMht?Ln;JHRP@|B_tU9 z#AHR%xHimz5u<2T3RhRr@V~|$QJ~O&q=N;6c@Fm^V@JN!4yCTNl9FVpE_2(KfVDg~ z@CH%}HKMU4ljdX-m5+ld%wZp3d>(f3j9>IANu1jnL(-$i&f|n(vFnMfLS0OXx2(Y z<%Sy6ctz{MPzo#|!^08ASNWsYJfPZ%C=u($+b&ctV>CRJv2mo0+LN` zRfVY;5B@gLDCSPZ;R|rA5(Y1fwUa&7Sug$kz4}+h0f5fsd)H!Iuih-|aPLU0P29oh zbt_oDcuop)6wa~Nc?6Bx`qB<@scnR$!@5Dr&3g$~0=hX6)<%B(GdZ*Q1EBj$ef@|Y z(JE!#d$hrW)d&YA1)&$+&H8T*ZfjZvz02B4Q{vhTm_v&B&`$w3)<{~CfX^LY<0mNJ z{agpg;nmPNvPHo|g6<{{BjaP5l(OLpkFGHulUna}wRQtvandJ&NmLtnXJ{^+tGDmy0ohh)-0!v61EFSg4RD1%-D`5Sqr6q;9TrOkNy zERztXW*7dho20a=DFQx~!=fEkWk#Pp$vcE3I;d>QB>LVw@T9rcJ2&4l!rKGn)`d!f zEUG+vZ5;+esN_da#wZ-HYDsB){D{=&4%*vrXvIn}lJ0^tXE>`~$3S?CTlxy_6%90g zOfG$a<2$p3q`Em!jmqB7c(gnuO!c5g<UeQ8FMhfC&s|rr&L^J<4k) zT?ay8O1%8)Xt3h$nkrARvuS6((7bbnFaIC*-U2Ajrd<;r+}&LQ0fM_*kl^lagF6Iw zcMVQ(3GSZY?t~<`TY%uMvqSQpvuF4JcF+6$wWn%p>nrMJW}2Rdr~0~{yRW{x`);b! z(*enA9+j3Zj?fxIo5JV>Z(d1wA{Q@$dsvQ+z1U2eraZm;s}>*1<)-<cmo?5n-$E z3sd^?IeL)0EIKO`Lq7~QRIJ7`tP^Q5=A^IWX~X5hl`}5-ZPGUS!ks*W+&FGiY#p;= zxCPraGZotLOeG3-?Korn`G_751-F!012|v<12wB-RcdOy>~v}5(vViM4QDXCYv(o# zzs}4^-R3S+ov#18o;m~Rm;D!i4)cM`nYkEbq)j%%iP{8snXs9J^1qZRVmsyZsYe}^8A`2oFl3WcT z{_~a>Fy-tf*FvsQLJQY_YzH+`uQ4t~GkSLMC)!M&3__WOZ-M%}i7N4K`s?@SLT!Y2 z;2m+BlHCp>x4IJ|+kIJ4x_;K*s)*^|TTM8;y;0mMIFjyT98)30m3&h1uf5`dfW-JA zp4|Xx`%|YB!TbBTJNdCq1Y-%OcAfw0f_H=meWX!Bufis$&o}_eWYQ^a;kw7S1lKhx zt|mY2a-gab>8$DS@00U3A~M*}Y(?sWawlF*FR-FB^yXC1FNTij%aD~Ye>9m+Ii1{3 zYXh9x!$nD3Bns&`c^)SsR+4Gc?u+Yut=d&kRsH3>1p!n|sF})RoPNZt_A3~vql5iYdHOUZxx%g_;IHjNiPGkW4OjEea2VB0rya`v1>@g#R z?#qP?Exxu$!$Qg+-H{E$AxB11GorzjvsKlC)?4c+hdxVz_nd%a&L4b|CY>pAet)ju zk_i#i7sloZ9{<}E)YkQVYI zj?0ahGnX@FD{s8OHhHqYH5BP0uaLM-yS*RTqIFN0YybFGjc4ME^;J|S$b-jR0*ZSa z#nz7`)J3zGvZD|o7cF7^Tkj|Q>OJ4wK=3BIg&Z+eE?FLykA=@^%6hh|y#3VH;+5J6 z%swF9C-!n`cyq?*oFKJ;5wcMUP zqbO0dmE&CxWRvK-@+$d^1FH z!Nm284mYWaawBH$G!G&)}aqm=|V2#16(z$ovAjs)Z%kkV%SwB!d+_W0$@soY29Z=lQ$eL-PxkeOd zL1C(>IC4 z$``W)syUfHk)`XnK%ZYApP23JIx7v4kzq5c_?)eU9kjW^SJ(FqcJq7gVJK~GJ|p8i z^{0dR_!k~Orj>7YI&K?^_n-Rs86K7x#!(8_6CxT)+^`4lc>1&tb|5rl zDLV5ppVb!Mi@(_}fqrat)i}ZA7$&U1JvJ z4d+8bydSZ@b+_+IEAnZ(Z5ovR3|~rDx}y(Zy}mV5IPb_hz_-n>_3d~jc4lB>G-stKqkZoy@avTUim`7GHcA#kKc3r+YBNrMS*`ftiDzEYW+D1&_c)=EVCDz}mu zL*C_JKP{{s7`3Q5q7oJ#Klp%Il)1~Qe~!vOxN+2cX-{+6-lLVs3PpMtoc(; z_)|OUGtH}v)nm)^SROQhQp|KD>_a)HZOL?6#d-OGt<8G4eFnH+^{p$HeYF07x7-0^ zUzTLtIB|%|a$>QE^N2se;vP9uBEUhql(rnR5-;>&&0($1!`$um!)avEFBy2aTEd)LahV*Brp^Uw^fMQ;<4VQ*q_?f)~rAL`P4Zo%eF6m~p zNIwtvz40H=1WU^c@9o-fbzZs2Swjy&k|1~3Jx+TM2e)tT2cR*)Al85?GN6o-5}Av+ zoiTCRG=Kdfn!8y&!io>cJh*jL4+=dk&0>uvJ62@=+L&*THS_i1!=}7~Az}HFE+EPi z)yW2u?NgBmB&aJ1FWhb+kX9OK!`n;1Wsxlc;J#>F@_0fNl(R~o`J5aLq9L;*G3C*K z@h6Gcpm(A7sWtM_QX5kJ9G{*d~~pWq$@++heL z_*lE_z(!V`T;fy9FZ-*Sa_njfc=?XvnCBK>0xpNftZ(9qu)P44$=_{BGG_~)q3Yzm zbjHDruG`UaI!~(WXkC}xLJGwgw|6N4IUUEDOBDXhe!Qy9OO1Soee!wQ-G4|+$!5Mo z#Vchhx#=^hIB%W_NmLd(#3gloR5Qe`tN&B$!Db^3P)LFiPYq;R<9^ccJe8E{zcgC< zD-`SDgsg6jYxXAJaAVERNcdA}p46~SUvJ1gHC~u!Ox5$E^z%eVegI8+ab1E<=TGrw zQ9GNl?%A-1g`9c=bdU)=hQr#(&(ws818f9My8v~}sfn@sY}B1N;?Kc)>roZHpNVYy zJ1FRK0fAht6Hqrn&JiD}p`IR3gst?K;z860<5S1gN4;YE=9Q8V;;2gO-rbYWlm%OJkz2Ni#dRyndtsxq^zoGA>Fuj_0T-;Ua{+AE>VpecB3}=G z=fGgC(17<$a*Riu zwl$R-di$QN)2+#T$4CZAy4nRm@CoKfy&SNR_H}jI2JaeIp-idRAm|JO-O7|Fbz^%d zRGxM@8E7{8)(gHUroY6@d|PoMCpAdhYUk(c!t&fh(806P&g|C#H#Cy^aD$^^O*P&2 zbvDa)FZa~Y?N-QqDWE`Y@XuuW})eozT}MJ z;Up9tt;PBx-W83Bt@fu`7Y{xoaY}t5mqjPI{09;1Ixv3}0rz13972Kl^RbC~?hk+7 z{O6Cdm7Sx5v#YVa>tD}vniWP54l+0?6-rw$L?FN!IuS5LX+{*2Kwbp@)#Y|wxs+I@ z$)s|?q;9^<+_Y|9>&T6tByJA;?#PX=4^hgZqm2&BR7&0yxo`cWrup&1O6T>>P{-1j ztgMBjqj7M$oQjp`b(uK7D9hpt9)&J@W8o1hVyqr=c@BINZ-(r2CKQfbU4tt11=^CV zHv_>RlRDfaIxK=TZ0qK-4zyW2(r{o_OBi*`2fl2d%(9MM?+N*WCJFyM4vpeD57n0m+7YKs3*<2I-9LlSC2lTrRXt?cPd6UKdjou#tRIpZva?_hFSLU}WCf1AZMEM2NR~7Gh&$c|p=3dnX zI4Ye!A{1)#hIC}qEd;jd;D(kJ$!_{XwB@u!6nor6W{SJT(`5O1a1uIaPsH8$tKej9 z{R}pU({5P64aes20)2yX@DGDXsY1}{T!qh_V&iC(D~s2On|-_?sX7Pw36)7>o?44D zPwN>LjYR$?QYP35y%?lNacJ|OKH;At(r<4B_+%WZr0@;}kq{B=`B9{$#8tqrg12M{D(7UdyOST0&_!Zs zy>eK@4IWPrcZOLQK%kV3TU(b;5a{Rx1PJINv|b4i!;`u-@gJWKJ+4znJYjDN(Qrk8 z&!z!HFmE5OkNT{zMF1O3Q1nK;4`xtZw<_d^4<}RYdi>~oF+fP6C+~}leUh!vmiXs) zed1=!>Pj`vWd+yS>YYq>6y zy5+J6&!%@z=SP~&{^mmEg4wpqJe;*`4bhRlI9SQIBe(IYArcY$ce85im6K7;$kTy)F{nV-yavc>(xY3$kT$ycmZuf^FZ0^>78!rP~tsR_++)RnA<=bH{1 zB$etNgl8{bGK*VdnD?Y6?7<=ACCS7xa>!JW0f2%pC{#88iRJ1g{S#0PHnutFegm}U zKuidkVP0>1`&fHj9T=GXCgCY@9|a_w=wB&3wbo|$x>Zhe9?+4T?&rl``}{O~iHlE9 zma*n@4_c5iIHYr5{K!pHX9NGudd2I24GD|=RsUBBcl?a>Tdj~OU#Wh)%GoJ=526at z{lyL5VU1yyeI3Zy0#POPo;5yA4B$-*%+zarKeXFBTaoR*0PTCldrAFleq?@km*KeS zeYgLd@9kpW$#=gumNjO@ptwszF@`DS1M>6j%ItIbqSgC#G;IFc{lV&vL_TCUK)ch2 zx2`NDF*0KV)Ftfy%)-u&*4qzFfL9N^c z`x?iB$=<-+{Iw4ZRoVJf3wROBGHGhm=ki2bS6EJVDk`cRL2t>ob_(b|PtUS43Irb< zGV(C|*1I7husO#HNci2d1w2*M)HsBMaa zs%~&bJm`Iaf4>ebBi^kH9*dfs6s;&-bU}Bq$RZ;qx*%L(d62Gpae96}jT-vTw@ka0 zj0ATqef&WL^NA(ikT-TdXgs9Z7t?#34<|!+dpXv-)&6!D>w42)qJAM=yR9pst_*$|H7!)l;=L7EgLtSo-~q<5d~x{H*ZS4v-}M?podTLeW%_ zP_}(m<8&SC5&EqT%LYx#X~c1c>sATHZK25tOYU;xPPr3*35Pld|PI^}~`RE+gt zdf}2mC|N!EY>1_u&Nu|w1#OA?8`?WCw0ck`s{m{C%AS&ilqPN{27#R@W zqN8i|_D4i1gR>AtiHO&U+sWK=1;Zjn`zU>yLebrN*f2{wSKA6Pig@3OF5gIB&9KE?ZcH+j;#6Q`aagVD)wD~+b*1vQ8< z%V7FOzIeU-AlASlQh%#h^?lvrip``^ijH8KbWLELGOj;W_ROSdln6L8q zdy86NyDL*SkemC}a$b|v%)^Jwr1S`3GCP4R1KWO6s2fZnaj;Z@wB*}P`uh}eaQ$m& zygq6QPol0g{6vgVhx|bj!8A@JlPN`YN#YsTJ*^>~S@Ywaa?d&G6rSyB z_v3TqEzEv&Ddnx`f}9FRTFCk|Z&RbeGj>2(2AD+)@DbZ4V|jr6q<|7oKxEvC(-*+)BJG4j*Xqk?gex(s~O_YXUG2c71&P38Ogbw(RiNl3EruT0>)Cx+JD7!VWm z*epL<26E(STr0MMD#~ZaWOCfk14mRQsr$CubrCPjb%Rpi_C-5)O*8FS{Sooit)BFj{SXn4r?YhyHocg2h9j7)R54}N__x{I1^s$R2T zG7P_jba?DXntq3^y(HwDRXB}PFKNj<;ScLYlyi_{z#9fZ!yf|XLk#?79)7$JI^5}o zZ;lb3Fh@ zVL@AIM35Mz<8}Y|x9E&YHOpX1De<+<5NsUmAqmxaVblQ5_e#VtSBVJZfi!4qYQPyXEY&k)P_V99@~8Mt~e<;y$zuoi#O zH~M);;Au*1E!a7F>2OR|xKBhg_!@df#<3W`7sb+L%2C^)-gL2*r*4xY3Ws z{7cFPKeRSrs!=oM(blIeNa7Zj?3|?50b!F}l^N~? z8^syNy00!ot{Z2Fbqe{^4IF3c26P%UBBVp2E%Rp0{5MBY4|?}_aA*MVg^r;i46`mDKqu_hhKFwDajkaV`Fy)N^64G(5)-XWgvB^*bgKG$bjd z{d`*BsN>qJ_14a{Xlkc1)ItNy+r>(W3HKa$$V7dNPjZy2I>7{VS0~ZmhGD z$#3P#F^gx?gja;ZVGub!ovH{vd@Tiw<2U}Nr;`h4ag{zhWt3)4ZLvXeT-%opEWQn9 z9)~``QDZLA;M`cW+V`a>qTbJREB*AB%-;I#PyV@@8!LFZc*1kPzTW&C*Q}kLMp%J9 zwmH7y<&&;IE>Z8GO(-*FFP-nd5KJREDWg~lTGMrS^vYagth8Ml46b3Ozvu;}CTk3N z;+kIxH@azjPxdQk3l&?7BgK_$_`-Ee5OysZpp|-{TJ8XkHr6H_poU!`sl|3#iSP2x zz~`+>Ex9;1;wmoQ707a+pYWd9faIp-jZz56UErXP3DNfJ}0FD67?U z3g4(_(ya~)IddkWZv!`5n2oFPO+VZ+duN`CNrU&ujb1TN8KZ++{HX5G)NdLx3(OX2 zKpL1W8ZT0Kc-9B&4_l}JB1=~lB^)xO^Hc_G6Mm_p`ggcx_#*-5bt<{hOCYK2nFzms^t?fK#pRG`{`y%%It(c z6jguYm>ATN(MdL7HlB1|U0+>&adAT}Q_)`LTy+0@zjM{qy+59U$uzdbj@*-K%IDhZ zD1j2Nh|;}+vc86xKZ+Zi&Ih^f79QXkUdu)ih;f3-!L(Pb~M~C~dv^Lvvs-1OP`tgmDNd`AhKrA-*x#Srmk7o^#m@yWU z`Hr-KwVVIe3Q3dVL&A5vawNii6|W(uXjE51L(y_le)y+0TT#^p!__hESbwZgB*wY*iyS z4W$N)Y>I+Yu^oo&vEbFX33ZAFQ-g{pAVM5@%;w^_iy6++ZiNy0RN?L|D|vL zrEmYGZ~yPpw`ZPU7pM6995o?uHwO7?lL+Te7xp(MwOk!c8UMo(MUGh(hy?26V?O{t zlyy)Lbs~7ke^A1M0%BrPlFWY8J@7y!lx+9(Z~j?m2lA?mZdq6P$jrzANnbu=UXAHJ8sPU^_p69@luqBeD&> zy|o3{yH!WWs5nv9gmZ!1xq5_}55IB-h-BkOA*+Qr0{0o<#Vy>NL*JWOC?Zial&laL zG8zQ`Kq(WrtdWY)(;F}2L^_E+3GeWGy;4R$_LJQn#enrpX#Fm|dO?-r@;$C+l-)`4 z`|{#E^PWiDOt0M{sm;aeqrj!~tF9Z=^p#*3i^Tgr*3#8qm(v%p@BI~KE4zOMyJOg1 zCSf5*!Y*@sn-Sk8NUIM#hJV+%#c+9}A3h##y)j)_yr`)4mG=CpcSM$6RFR;uT^L>M z$8Rj4z&N}ZbkX1!NE6w2 z;s8K->?=0#C(=JNho+W+fgq!9Krskw$^rmEPKGQ!7jG>L@MUzY*12ex0M``zA0{G2 zXkXF&o`#e+wy-j_A?ILXW8xv_yGfwo|l%FZbs6<*Y31ja}b^CpLkm<{Yf-KywamPBsn>77lY>7E=xmGagfJGgdZZ zHsDIcb0+v(C@_;YGVEmdh!3HL0|pP4f^VW;Pjk81TYLIM)|EUUX)+&nC7Kvpv|V<0;lE2{~sDUi#=l--1d#~5hJ?R{SYUV!vBT9t|u z+^SN56mW}*z6_Gsdb%V3_>5Qod8@wvOZ6%(n;|TyPY*xgV{|2I0YAx&(7qK3PGW`mo}*0GMa~4&J9{muSPEf-Qq*UY2 z#`(tnwb{n`iz%Tfsx(zfNNI?RtwPgR_{RP%hV|;3Dt(|Gh0;w9MV8@_YYp4VlHn3g z`J@bHR0ukNGQNovn=OPunj($V+;$KGvd57a=Hl&DoWPDW2j{jfkXyrU1N1A%6q%@9ezM_bO@g$o=ZKEeCy0B^{{ z`L=y_ndF-4J&&kY0=e*oeD=>+22F6LhP_gW4h`W+bl>Vb4~;lcQK9g_w;;zIzRI~r zN%O-g#j%d~8tcg>*EjizrU7S{XKAhOWyTLON0di@ZoKV z&*IUDy7&foK{{FR7{I_5zZK&S*g`5dHoMe5SqsF7!WR2sE0p%sBO-As=n!mIsz6c{ z>OCZnB`KBe;?UyHMk>gkRUl6zl?f@4;i3dSSfFUe&))7$-w3kwv9D@BUK{UP$n|wU zJsO5*-zGTJ@VN&Vb@E}fQ64%uNaqTOttgmAr(Nd8;{vDy%a3%K7AD{*3h*us3+rQ| zlBiF{4C*f#l*+7&ZPY7Wv>NQEIGf47bWMR49@+}+Ys#fQb-J1Hybc~8Lqw0n-!hc= zdgEmwX4T8iCF9G-kn0Qdwmrx`NcybGvwDkmREnH0_jy&8?X4Q;)KCWHrT^Bsa@o=T?$xMXfv1DX$ zdy7AV+dL*ygpD4h@h{{kkAvFOO-*~1x*leA`?w81Mq4WV2aZ$hJ{M|_VmH9S2O~=4 zHE@}P41T0?4hRwzw^#p?#Ssv}Gm|+^{2B!napTChG#vWem`!V3Pusc5z)C!2sgrg z`XEQ6^iVeBhO{^vkblHsREF}0>&hc3Xs9Z*s#W5AM9`Gu!W1oR{wiI>RBAYg_ACx! zb|epSq;jIcBNtv>%%0#&vF;q2JQzKsdYI)$l;LTeE_8j+i)t0^d$*L5mQ!6#&HdH! zE+Kz#Y+_~RN5CW>ZC^N^OHp;)hfW*b`7dz=8Hrn$UKs2<`wjF&%Fl3QF({{Re`HRX zV@{nKe116TojYxqi>cv%l?JyRg&{z4t&&jQPGnfbEz~MBLcpvV|K)W3O8n@@@cG@r zO~ZRu9_zirQIk%K=+|gjiX+T(DK%$jrxFk37s)Gk_gol{5-T^eo_zu}i@kZjDP#>k zur~wTOG0wOF)01h6#DHaP{1m?%e~^2%=RoA({p{8 zi=$rDXMLWJ?)s79KTgn8h_2N=7Wg9#)E5K4%jH%<+=%gG5fBl5-Iu{>ykc1S+($ub zu3=2R&5F6RG3Y;_#L4u9=#BNvwv?Gkf&=AG**#PK`n~L5apkeO;SHL&ItCD3Oxr0B z1`1N=d){nQSSv0c@i>sKMfiBUV&CAyV#UG=wLD4XTYDY+bn)%J&UR(oh)hhimUVZo z<0qw4D+r@+rcxu#S?b_HyX$r>{=W0+a4)}^Prkb5L(nU!SY||&ZyDIJSv-C@{nq+F z*kYM^Sx)M5Cg#dec)uL@2IJ*!RgmNoePxUwydI`Cm@ zV)kofgB(@S;m5BqY=lKLscvD1DW~3EkVtieuQ7iTRQTv$IPfu1ST$6S2c(#L&`@Vc zC-F+jU~yxd9>I3nH6}3b+p1Aa8ojPA>nfftBO`4d|2*EXDm^Y$!cz`CYK-z7ZXblP z?LCe?!n{YAiZ;L|o9tUH0<`>CF8$%5V(P>%yY~U8c%FoEVSE1jTf|{j$ z;p_w$8uxs|HlrLCk-9Lknx|XeIGqY3L{UcUNF3|G-ZVNhv%R;y+N;(d=;_aW7y98! z&G;ltOef`PbfxW)TU*>Yztf?_{G+Lq4a>yR)(!hD)IHWg@H2M(jl0vYl+?yu8t>$3 zU^c(xN~t-Q-E+<}^zqyIO*yJ8s%+v6QV?tGPOQ$Uq0d;xx+&KwC!46dCxf5J?WH8? z>=eunCKg#vbhs3c*w2Xd8wN&~?^WI;^2)Dsgc^lkyHpZ-r@t;3erCl#9}&*a8OQeS zqj1wP&9(CF$lCfgZs4f( zHMI&_p9@jw?Oy5C_oxwsLrHgT!i>VFgtYyGxj@!rXM zsqPD584@Zu4e$2Nol44igyWEkpP>3P)6r*p{KC-b9+$1=7M{{|#d*c~ZH?k(Y2LAx z@A|6Vq*X^pSS*qTF-_yKo2znd6U{%?)YokW#ikkM=Bo!BH!F9TcgQ7=squCYVvg9} z)FYXFHM>F9BbywP8^ab%ndU=c=*jMu4(v3zA|42vHI446XXafP zZ_-^>_9|1BeWpTs75@i%-;G}MXZATln2r78m9v@E8YX|7ci$z9B@RY`j-rmo0uz>H zq&J?*TME>M)QVc6O4qdd-VR%4=So8Any$|ibo=oFgD51YH4dFCDuYNpm0dmQqD@v; zZ!op)_OQ$c_jR`>l*X0rT}_8iGjqYIkDDsc=LM4KR840?b&RxJoakY@xuDh6ep<(k zGO5?AGd{H}MN}RCDBLL5C=!hiP7PkMnK*Q6lKl0~m%dKoC#l8x4N7QE(0J15uo}D} zg-eDrg-@L??7plMLF>h_hop6>vD`Qc!3-&te#Mk4`g`b4My;=9S4fs1Gx;q=zbmxJ z7>JQ|#2)Ge^>GKg9Um|Qb?-#QHyPW-zZLN0j*%XSl2D(_K0J~|qp)MmN&n0=I?F)5 zpTtRQJNu^WXU_$dma=iyZJL}HF3OvX!;&I+pRV~czTk&XS>Md$WgmAEvMkT|tTuJhn?GBp;=7gkTiN8lC93G)BTC5XnM(dXnEBbcVR( ze@_oL(y96w^U=8YQf;fSo`81%y+Dw~cw#~4$S_$5 z+wMcLPu4(E#zR9d3Netbm2~?c_DT%OA1aX2DuE%O!i)ev+QbuqFrJSG&OYIAPW4+a z9aLrxvt!3H+_BXS=Y0{Uk$Jpz7?I!9kTUt$Cr>DCvQ0GA&2xiqUF>_CujUv%r!Xng z;|)E?7sb_G*0Noy*TXI)Z+Ez$w%FlKr=9VF^9d;lkAng&0>1&3lM9lX2oI$%EH4oF z?UMKElAKdM@7BBC?19(vkqo+*3FR=!OCy^b=<08yCe&%(+{!lLF0>if@13tmVp&w5 zg3sb*Fz~ux82n(#dzL}VXp-ib(-D8Hquhc$hdT!|DqpVsdC8x490hd`)m#4ArsOMU zvPpc8vaU~xpHRo@14Mxha)|q2FEw?Brs9)t%4D52lJt+0oo_co{FCPwq-p|v@WJT16VaWjWtvND=X=W3F!#I*VKi78np zc)#0&IGpX~5jcsnFk>l!e=(+?+_R-}g+@Kj`y4C)j>-KWL*~$xNvrZ^B z{v(;Y?h25VeX-1?prSrmk;w zO+A_9p_=?hw5ov2GJKMce&8HparN?Rc47{@JI6>!hh*vuwx|uraf>tJVdz~~!bMNF zQYP)8TtoB+-U{?*wr{W+)vlK6=S)Z5=mFjzo6IP-D*mEU3uH4B#>JpCOcL>AY((#U zJpXV><|Xx!1cI`dmam9b7XHl9&TxuEK&_(FiyX~5mt9f!#`lWju(6rO3vJRA(&;2H)+t(o>P`w!UIBR42 zvc%+c)Za{yIutLJXemp!dvg_R0*%ltrWQZ)9!vjmmn0 zNz?AJO*&-Q3Zs(fO&iHIJ~HC_O*^xGiC-<1luVL^!%f9HN83(J`Z+c6lPj5K?-CXi zZq%Nsv;G{ZWHGCly(zAyRN0y{XO zG6l-vF6}vutId|p0nOUQKHDKDP{fR^R(Lp zsx&r5e?=P7>czEOd4UgT1HjxHkqjy}7PLh*w?{EyLR(?7vd z^|(5eZWegxuA)mqCb}%q(i{qH4l^f~rJC zLg6*76Ah4Oq%aez#bcqJdXp!73YQJbJZ$Q_{G*zLlYsDjNaSD)A6~Zy1MaULwZ{MQ zU@Iq&F$*^vkcFGY%$SYMoQsv6)6~R_9mv7T!O6j8&TDB+aRj~z)c+pBX7gZWdx>F( z*md}V|MKrKY?=}m*Bbg@^7QVf`p*|-V@NV>hvj+l{p9n>*JFjSb{n33ZXozV}>p3)-cN$bV7n0lK~ zdgq>m5vuYHzH3%nana>bE(Pl_bMLcA}H_zXRF1!EeYo!J)GkgS5DSN&aUb`|BxUi8K3OLI%DpU;%He z7W{(XD5dQJ0ARYl7{sbMnFqKK&Q)4o0`4me1}Y7^9BvPM;CzbQvcugrRh6@UaBMgzPOc(sjV@%sxzRayD=VI4F6KB`6osQ=qB0? z2baP9`Tl!nQy}096nyw^)x;d^?11*Jfa~$pE^ry_OEonsS6d+9)A3gt@IE=fZ-QpO zkFP2ZaYP@OGDOaV77p@_mgYhV(vrZ&BQqv539d25G$RuUUa(zioUp}?K|EN_J4|^v zi)P;&&+dzWC;RdKs9gaaT7K3sEF!`(vxG`oO?@RS%veobf=opGuzl5@TYt`O3AX#f z2U~)8NHBNGK{*vTcX;*WhbNJL=%tSW*KA{TV#TW*z)M2lKwh#rst*$u@3Oa3HLws^>1<0rx`nU2t8~E zFL*zS_+*tiw&Sc3V$6fw*9?3Y;hA&T?)Sx@fR-=LG;`P3NI2p>}y<+b!K9FiL&Sva&cQ$*gj zV!w2Bz2T_EfZMlm>ec~f;+@a&!?Q(Mwar+)LTT~`HuxZ(xVgiolZUxO9Fd$oDvA)m zdi$|`3sMk3q;!^-G~Ox`Qi~~#ijxlLG9x$h-nVPbCUe)5G+^!!MuY?z_KU&E7w#y^ zA*T>@=_C#^04|}J^3(#c4rK#h@jgP4qy0Zp7Q5;< zWgWo0dNIgdoQZ>fhO+E`D9hq#^?$%)GO=!v$6)?HPuch&N8&KU)1U!fc-#*)0BET3 z38{q54+ZS_bqSHSF(-YJo3Er?Uqea^KJTBn5@O$UbgwMyw|bvrt?uDOzymOV+NmX0 z>grJi*4F)x5$=|KNbD&^gU_{VHQEI26g$Hl(B#(r!4&rAilp5nV zCw23Zp@t7_DJy>%Ffq=2y{D)C-JoXAb9LV}iAs9>;?b?6ty(vgI)EG=Hn_*WrQ-13 zuj}N-8?d=`21wZRD?V%ob>!^bb*`PRt$nSgOVDC($aJrfdz<4&YA^ z8KkrQphh7@ND=Z7bz5+{?z^+IJSLbc23{|Mp4jw5ho2agcdtqV2}N97+=+O~oPEgY zAphi{bT-n@2|~*ToOpg;4PH6C=)=&~nIn%66J2rhlAXHx*bXLO@A1m3YVOdlD|e3< zqfJ8DvMQLIWe{N5vZRcSBLT5~=VM(3(HcKg$S^iwl2}3)uwp;A?`q$Yg z4RQe3GrbrjYlqy(KLax7ACOPaO#csfCl(ZZ)G3+YD1+6||C=4^`vlgpAS3M1_!>-j z2_sxiXx`>XM$yJgI2~QW(7ci#+2sTIgO<)H1-UcKmaL*hjHPKolp{a6@Zb9QSbW~g z9^1eGJ177pA2I6C7Hif7SJuSa`~YxnEb*K@PQuvB^bs?#TX=X<&M_|g=@1V^516oJNF{BzGhwh&F4}TM6@a-0 z2s36Glq^(k(*rBBjulh@Smn(fzURt<5e2OK2q~7%YE%F-&CApf`_KW&z&0(0lH{c$ zx6;{>9cL$E;oK?fCd2@Qpy`tv2#=h-ht4gYmLfu#q zAMajf$ws{G5_pFct>yP|9ZhF!^r{@BdPUEF>oXOCrDgw|_Xi_x>%_7fHZl z$vzfjabXS)22KX-OGN#`+S+M)c-S!WkjiNcNLdsl81<2NMc(Zax)%?xO2YHkb;0q_`` zn(&&L?>N-`%`s%>KB%1xM=RbkeUxLUH+4`SH%Ht1G)Cv_ieIm$M9G8TF zVFtyGEVcC5q{zPz;W{LZj6NCX<Nhhp{i@|F4G0!~_fqHyamtEu1Nk$JhiMu3>i+Z4|9=E$T>g5XVks~~SzdxODOzSgV2x5_KV_m`;rW;Y zy*ITjaA&lZ!esBu!ZSf%pFxMi0tyGoeZYNI(`pT^cdHP z<@*%uY_&{lzyC(tTfjsXtZTcCySu~S?(S}b3^2Is;O^46yUySYFbwW4jSSAT0|{rCBkophx;E8T0Ytf%X%`lQ|xGOFyY+imq5?SA_4Q5V+$L{u!3={knx ziPt;s==+Zo;Lz#^oJ8 zEMYio0Hcw_xBUFAH+efNk9+9k46^Wr*AzXLQ%JziD`BjC$_9FnC4 z4?i0h4<{!tzlA9Ww*@!P2QxE1Gc$fuPBUH$wv9Ue+(POZJY13sj$xo1>wQL zWn&Hp4)>9fH>GWj$f1s^*vE21t9JSl?#hdm*yWcLG3C}c#>L$=>n~8|y=xdNw7aJZ z`Je-)zR`3GQsT$i7OMi~&!t75FFs_|G?VTwBSq_7`Hm4=h;;trtjsyM&3V~*dCYlu zP1rd3Of1dV&A55Ex%n(OKf;~tCU59>jsG4ibg2JgrTxL_9}N=H|2*}7!HV~vtk6IG z&#wB%ef;+w%H>}pQ+y>v7#nh^ismOBin==7sEX6iX)0YfiD?x*h;rt;NsLi)UAxy% z$%UC`5h?i#7AQs|B$G~38F+O&p>~}_my%g*8jM3D<%~sWRY3^JIGW<&Hft&QA-=IH zY5X4wSY)4Nhk^3LJ{>oZB0TIMS#(YH|2QBHem+hfK6Wk+6EiMOvyV}TgPV`XoX?z{ zos-v$&)kxR|LDiR2Pj_tzW`Z$!1+gmoX+-=`CkCy`zIjs#s9A0{hu!B{|E^9uQBPL zlRTIYiWqs+eZ;B}E(|4Vv3~yGO@FQ4??qw28HJkRFRLDWblmPOS z&3kDQ46JNQZ!y@=lIDA&&1UqZOp5LEU#@jHEVEX%?_tulq!DM+Cn|qkkTF@SZ{T88 z`AnClU-16pv^cqVI5;i1Ex63N_&C|wEV$VCO*uZM6P6YnT)aGN9JB0PRR12WEw>L^ zl7KAgk9f~VgH&~x*83+dQULkKDgOHvC3cQhj{oFjoc!OpPIDi>l=z46A3#MM`X9ma ze}#3Bus+f#SP+2BZ2XUd;~?`y+dK3Bph=2?Q#1pAETjw3gA7*v^YQUz0JA??_bBY{z{q4(M@}~ARF!$FT&X7M!qycd2tGVPdy$9&n80u=@2m`j}v$JoNA63W6KY-8n!th;(zp4)6){g|W9Sz-&UM(OZaRgxk=mDVsW5co7GDo#g$;boU}ZK! ztciA<%F*|1Jrz^!Dq@I}Bd&ttmu(vO_lfAU=ZnL?>Wm)Mt(ZU@Z7BGD@?;T7YNS|` zo}vWJ&rg3&;c!MowY!K1VE`J+S1ibvxaVZ1i=u;4p8{8Zc1Tz_J9{Ja;RE^rf!$7U zrJXt2`$yBCnXu=~j=Vx^4ww|F$mwl;i>;6)6jZ^2OoOKQ%9}0Jd3#>DvVLy{((rP@ zzbh&2(4}>fbW2#iq|I$)%E>if+f9+bQd^WTJz4iV9^3;)0|Q}o)%@8STn9Ui@E)hJ zi8zp&MI?#B&D=bORRELIJ3AmE57_jllc}6Ht@u^>_))qMU)?g*3>=6;IAo|$04=?s ztZZp#LU~5ss-yO)1R$RTrJ66QQrv z(t7=H7p)f7IUC?G7WunuTozs%-v|}9wxwBYh-_A?`5)(rJY%cy)C%SiJ zSg+=h)?EM*JQAMM_0o+>* zp+&nHMI3D`ld!-DpOY!4alsZ#uP0(`&oH=-G0 zFh~{plYCC~HuNSmz7nm3GXn2mrPs~2*5I!4IZib^J;jGiaDTdvPij&|liSL+FdkZk zpV?93(7WZldBAf@2Xf*Pgg7Mgu(C?a%VSW6V*P3FDjGMqhT|>_ zPU|0!f&J!7z&KWoCp0ot!J)jSi<+ha%zMQN19`exyuOgv@qMdz_1L@J^iLntOpdtg z&dL~&;Ja|mm}~g#7`awRcJZsL!g)#nS^V>PH!e9m+r=;P&Bcjdf1cZTKNOn39;hRA zbqD_G9;@zUgM`RP2Dj?wAp(5vttpd}u(T#tUta{e<@5W~mgCKO^5Jq|-3TXb1E-)S z<_@tYr)S4xTcu%8BG1{#=@S>Ji&lNThaao&{mmR^(T(R~gXHKwk9|Jp1TI#Y32Mi~ zC1E>t)E&S>6h646Lj|tq!=B%KJ1TosJdr~SA!!SW+#S+ zj13?X50<@5EFCyUDldJ=0r$`S%<9Y^6e8 z0_ac0?pE!N+BE6+=2jf2(484rrR481#GKJQ*0%}r68FUYu`~T;j7$B3ojFFJ93F*< z{g?Kxjl{`QYwNAdkSqw*J*p$FO5KKBZaZD`@_W*Fhj9;OzHnEehX#$LE3T9G6gXOk zoc1(Ktuh7+9Zk!F4!;pv7psIeD3tM@ar$3i^seZ#ZfE_%nN@|>tjeLOjErDa^Gt+f z$aI|sVV)xI@{Hw&vU;Tgui+}z7zHG8I-U58;JpDzD?IQCb#-?0!khxEb&`RgAV-f{^v7HmxH~Hg2SVUO1o_Azf7!>qx{laD7(-5s_KvGT~1Z2S%l!HBy_qz%I8>1fv zSNm_b5hwSKum!(egozrIQLD(}^1%DuQSM<+vQ>Fwe^siHfOk*8;^R6kt&XHy{YwZy zpBud0fy21QUfS!x^&T$A7`{wh2TkK95^p=ic%7k6zhKHu2F0I6p8W*ZnIN<7Z)@lY zCX2ySuC^i7;e7HW&rK)%Z7-1rffocolY4$?wW*$@cG1=MnclN_)T-{oyeXsPcC@ND zxBF(FdIBl{tPmRVjSHw&Yd**DZeSWVs9GTtx}2IXd`0o}*DV?Nl%GEpgIUm;BrU#KI1TDV&xM@eCw!G1@yoaOU zfw3Le4hx~byOw4!k{ra}kz;aVpg{~LgePcmbrA!Ezjm0?&M75BG>|MDxFdklbq}L` zCKoRK-7zF(guQ>>>IL}rrQZvas?l=!I-YrDUhz&eVyzqt=*vQ~?BhigSp>lKGKL@i zR?5HQJKBu{p`B*f2e^#w{i`ORD$_i`&Qao}r8$L46s|{wp1EoQ=tfXh57<1O0*dr= z{WjasDO@kr2rBw8C3`NtanF{2^Iy!Te^O)Nnu6`L+QX$F>Dfxff|-~`7=f^ZqX@h) zG1rVsSd~6@8(L;R;dn2J{_e2uSkJ#~1Rx7JhMP3O9x<#@YFuQNE5a}|K8$cVlcKW2 zI|pJMMaNkzugo`L?PEzrTBM<4Puo5?WY=zW&aO59y%y$P3fDb6ZeZg%eI7b=z0c44 z1vchwBkqX_1RdT*K^pp}Ir6&56R>a;Ri^n>A{~ZT#9qpDjd_cnpZh>lLLEHB%jrLI z;nOduy03m-n{rYP??PVkxFPjLzE1lqPqRQy<3Ppk%_SgdI(H0|$w>HzP)hz3Q-81c zlD)Oa`~o^+Yxf*0sjd`lxjS8pIfBsvcXzZc3!+^Jp)*9MV1TJa3t2`P)A@ls*6i_M zq~fD-4q9C?t?i2FqnHV~vLZSD@xDeKH#zfvefZLf=+#sfS%yT)#@d<$pUU?Nf9WTXRJbHvl>U^SscEIwoN4O`c*K@g9-%Biw zJSLZdx_8jjA9QF{iTwUwqRDbz#326-UiMnE_D8Z6JnK14@s8CgsCQpA zVT?dx+v;qYo{giH8*iOb8O&tzNH(zQCZD1Y9C7o*2!^D)t~iZNj9F?W&G%V+()w&Q znTV?)d?8bqk;0BUH)A5uWJs;3(c|%B#guF3UKchspc9vCuluk-*DEwg3?5SuwP#Q8 z01n8vJ!7Q#ChUPa1({hElDvljHi9C9)L=I4yF`}u*x9Mp`08=E?A+}PK=!KoQQx6n z4xc-vH=C^LcDG)Pbfs19Yy9r<^IoXB**%jljzUQ$f*=H+xKN|byzxEBzEV0u%E8O` zYj2Y+(683Wo6MWKT z->!9NLyXn3gu?XIi1TS}o>H|m>c)vUY{wK3YC_eAQ|cDQAuzU2##Bt*+1q}HcmWH5 zDUL2Fj)t?2I@n<~Qf^7g%`2d%hfZ1y#Y~1aY`H!7Dk+HaZGToZ>yeKY<~AbUr-6d1dt#qyp`#(o?-q?8)~ zlO_|I=_A5TLeqz7*w~}w;|d61rCNEqYQyK&dKw!YhZYSBo5l@^Ku_0Xc^5!RO9Ao3 zwCF_4-Myl7kYCZ(_{QBIyyDvtS>v(0l}4=I~ooFA4|8mwx9CbwM|R8HH~luW!96VQ=f z^ZL=}DH5d_au*Qg(V#mpl6+_~ni2lujvSJ*Z!s?uGM)hdat!Tk87BBhKYIl%PNK-T zED+TRhzFlqd>8U~-p~{#E*+?t*~4u4#!uYa$IraGcI4Ec#kHeFa|~aY#>BD35$Ox; z{SE4Y^<4_HpU4e_a%cdT^RT`6;jY=yTccsAdeWp}vOa+zcHdu9)(UeYBaNt$pXhI> zu*LUr_y3g8&Tnj1rnax3+C!-sPag^Vwe6IhVV$M_3fSD)Uu%-~nv=-w%Rqh822!Aj z*_@}m_P+XjrZWr~C?|AXp_7=Zgj+y064klW;f!Ec6Zqr9iY^%m1r6ETszACVP|e%U z_Rzi8hexK*{53=P!6Mu&pVDN7Y*JxUz#+NA5TdS0Fp)Mn>kc2vQ z+UiV0O+(XOvchK1JK{Be=#Fm^NTFtJae(-8DcEo&JzmGRo=Szdy89Q{^d-+HIdFoE z#eNBdxDGa06Lt~baudH&+*a|4J^V)KVQ)R|!_<{6%Ejz7l zU%h=V#^RX948&|gIiD=Cf2bMF&uj$`8PzkW^FiR_Qi$AzG5UKm-d%9C0E2h}fGSQds>pxj!d?DrqVWGC6 zwLr3*ney@{b&QHW$57bwEjw@gU4YL;?6*o{L`r*1j_dwRMbT-h*@8-Lt2-=u87MlR z@Levs7a$o3==*S6ldq@u9SjNhOXthQo;6?RE>yq*u0yjUV%qbpvbQM;8Ifl5nWX7^ zBYF18VpJv(I_Wc#@XRlJ<*|ck-Qx&=HKjIp-uGkO(vZSG%IBZZZcscD7b$b$kVhF= zTGB8xw6YT#j%`+cpezGGH9;gV^W_9o{Uh6+pdTO~FmF!Cr#`|G>&Zqst6@(*% z?mC)Fh(OI5j+(XC46B|P`YKeGyjWl0a>fiJQXxDh{PlfbR`X7EkQ_r%sDwiPl&wxB zp%?DhyqA{MLitv8*y_W2iWig_fLQkU`jbTzC}M(o9aex83fhS5{eF&=U7166h8M#l zH-0DCMYL%k;1hBofD*+nXo^>?8-czx4ChHmLPZf<4B_((YreSH4Y8iaFFFQ#uggOo za>|G>K%bIeco`~z8F}b-qa(9xz&+OS>^Kz+{2sRX*QJU?B`Nr?f8}Q%?czKLi+7W{ zqflltKmy+|ziAjxYR&NRIq16Mv_JFX;tShL(E`Y&Hl^~dMg^|$mdZ$&(K9V$ijwQq zp*kVE_uZ((9YmT68So;_Bv=O**kYy9abP}e!W5N{C;oL&NTH4P@=YopgNZj$G}J@K zn1aHG`Zf||22tR%CJPN8q>KXVZ|;>L+9mWnKFND5YnbS{*)iqXoe$N7st{==UTJrP z_w0K*vEviZ6;ohSjKJscWTFYF0HE=Q=)NIOAF;7Z|J_ZzUHj~5r3s1ub?>ijp{7I( z@YVPx+EcStusuW<0hWZEG?uYoJHbNiD-DjkRh*BkLQD{E5(9L6#1rgX6lii^-2P23 zq&7V8CyQvu*7+fgvkTlxvOl)F;NE&M+(Ma%YtmgURpXLX&)-C~NC-3{u$IPj z&d(2F8K@7rR5eex3DA#cMtY6#c1aGmr-)Oj^Jm1oOC!ol5^OEr^rS|cj3+}hQFOTv ze~kB#3?EReEUf8$j`>{p#qjw2e8;?MJnYkNn8E{n1E9xn!$hI3>A%`Z9|NqY4Lb@c zK|T>WT#OTq-w-fR)yO~4juJaOI-cXEviWuZ@znX~xSye4Z$HPlx)r?)LRFN#P)X(rMM`oDoN!nCc$D z=6xraEn{6qZSg%a-QM=KE%N})g5E{o?^#CHhi^{kmdW~yb>X;i)Pn_P`Ijk5XOnu? zxs?|2Z=at(f|#Qf$;vJ2t_~tF@WU~Ls(A(ch^rA&2Ym#TzhP@-?rEDTQOhS%nUoG^ zbv&Pu#hJ-?hiOXKaB20K>^nh$O`5dv(J5S*cRkPgo5$U|-AdceZED3pMRD_G z_EdyHsa4*)bacM!(FGAYiDOTHM-JoUFi zxi@oBeJ5XUog1-4BzrI#1S6(b+sHGoCY>xM6*KxYWWnBM{n*hTdjJ`L%e?F4iAf2e z62=HhQ2k?L7Nrb@boPCJ94uhYg zR4-095^ZCINRAb@^}U;ehQN0pk!TmS5T=NcYdD5{6lmo6xE(Yy(~RGzh|w9+VXOJ} zy~ilVG9YFUgceK6rmtSslH=kjaWOTA$*OtjIaCphf%J-y-PG|rR2DWVzjf8*^GwJ4 zL)g}0m|!}~^F0S~PpJ~l%>DT9hB=N6PRxfPS z!z6|dnVaB>)UpxWv&V*&cBpWm(0=ckD>?Sp;E8>5jSk2Ojxi z)O?l=m)940|G~%S2pu@_P(Z%AYQ%CV!)OL&O{Ds6Qtqz~Js&^w8+z?HMs6NB?lnUs z0Cm~4i6Sl2M(wV{G&6amO@vwF30M0b9?Kk(71eNj5#db=lel{T-d z3Ec~qiOe}Sh2OVh+P;NAx>9k^o8-P@M$7xpHXjL{k%W3KIH@*0y6CIyrf7@SSzdK#OyZ4l5kr^gRJ#waP}*wNEYTwiNV9AwLwFsix*3=`6RzU>&B{6 zQ`l;?rk@63hKRD6T;E9*j8vp_H(bl#2anuqBck)pjD%MY6Oeex5%#k6`VaxDKDBG1 zV*00&hu*DH`DSq{2$L&BVzpYh> zoPOTD1Uzz^d;P*Vfyur?SjV)md~3`xKL!p3ECh7R#DhoXYLS5g3 zpqfhHVvRD?OXG#bFtw28D)`GUO%CE6DtF?$r=k$6fa(i^r?`^RS`}lLr*TnVI_~40&Z$YPcm>ZC zp3XkfqBX?!to5`ii4l3i>BWDYBe+HQkr3RWr%Bb$#qL z3ngZ%$!)Y;2@t#G95>a8gM?iTFMu6sHoVUU48-1m+3aP^$fa z-)7gUW{M^{Q?uOlmk`S62$KZ)lw!1APdD_$gE}jzx$I1=0%3WM90q>HWKD{F|dcuiKFItSeq8M(u&~ z8~!!cV^%3?Bikb=Gy+OeUKwNuj`ru4;Vkq_U`~D@f`lIm4H`wdq;4tOpNTtrt@a>b zL~_Dfqs!oV90bJ~9IAhxGLzC@MNr-&UeFf4!`*q=9;niw_Rg%vHIm>tvpMS^u1JvA zA?L^ClLlPvTQ{nIh0TX+i03q^6V!LpyiJEi*}xcGrrg88t52frR96 zu2*-5&1SeIHZ`KhUJ%BoX%hoT|9*@H3b>i?UeK4QkP~EQx_Msar&YPQLPaK7_hw6Y z+~HLrep<-Nu21JE8apFb*Bf6UCiQHq2-=}UL=5X8T_ z8D@!M1&<3Ow`8sg8`So9;}(LHKCK_2y;m2mE+HLykZ^f#bvADWl^;VXUQGW2$&w3fw?`CKHbx@`E}S-kry@3Z#h`cU(klv??kNIJjAP3mkPqsQxO^qZ;p zIy0Qxq1hP$^v5|vG|6V%f2WLn`J!1w$LNyEk9;JA?sfk9#@M*wcv#sULis{s6kvQ^ zc0`|W{_5kQ^7)`ACs;sZ2SP{MWgRn}k!ONu(XLf+2|Ep&Tp_Z&ogJmOo#(8=v1r;BUH3k!YlF) zAQx!aiJExmY<0NL%ZNwT<+?sd@Ia0IeH)5BqONd80@(~D*3dm8zuYH3y(B-4Q*TY# zX1{&(Nff>PL}vQzBVls>YhBd)WwqATw~FT7-TE#{)%M)IKn@~NwW7>BUZS85o`SU5 zrMk;`<;zYsXFP!Iv&~6RFr-?b8UCm%@~E152)Q^WG_sgKoOXytB+2TRsELv_MEa0}B!F{wM_j|DhAITA7Y z}0*0I}tHK#W<%(c}6T~3QT&(#%_isuEci&6PAC60Vx zL>V6PQup^+*anpCk7t_rLR~^_sNAy7*kLRAjDAjr7zpD7``UK7QWlZ!)bVt;^sRY4 zChTY94CrvVt^Oz5#LLp%Fn}EQF&d`pvU=nr*l_l`a{xi|;(>BTRnVV7W(dmhLHkyd z4nDzOtWt?EEKxp-dAe=vH`{PLBl0`lFD(|W+)NvJuMDD8r`uI5!1I@Z^FRHSi=G*x5RGwNCo=@(q=pF5Y3VxTv6AKIbi_IIrop7H6YR&Yi~3faA8M$+*CE)58nE8%aKh(yc`E zZ0Vc5dV!;~q|wrhTG(I7qAATK8?h-ZbXAQrYs0w4H%qyWLY+(spm*7u0M8p}zT zkPPC>AQmsjt4G$7xjT+p^WkLhgM99IPZBd^unwR!@ZQPEdZX-ZFa?kGN6loxF?CaV zRLYq1=LCE!yw>G>cMN&KaA{Uwv!!4y%cYvZi0&u|41Y*J-79?3V(g7myY z#PhYfFRS{b)C7e`TLk%h7hBy>PiE^;>m3x|E9Enbral8_(7A>|bYNaUU>b{=VuJql zM`6|fyK-8}|D(D~1)%2maV+_xx~p}L((u2kyEy;<6qvotEj*ZAom@UdFOB}I(#yul z3UC?t#R8q;3kGtMfj$N)LwXEuByK4EHvwIETtr>Obau#YW@x5uIb9(+TnrOjaZ_A& zOK5V8h!Y6^9#dwR4FC2E-Q<^UEP>|Gx=E6!wG(=8kE|Ai(a<}S$q)oML!tC<>85| z8b-dHEz!~jHW@0WHZFFq?7NYTP=%9)gBz0lSV1pLfA}IOB*D)IabIJ%NH%wM`REr_ zGqKcx&&)&g(w5QW=QEPvyD6lu!^U?&FwK&Y9d25JvW07Ga$iHWjy^N72}y~`32|v(TuTCT z(@=>c3d=cA(^^3}@MyBiUyE>Y6Ux^(a&iU4%%~zWWGkF)oa+U06P4%1GKxLsb*5k5 zCQJVCo#++_&2?78N;Wm;u=Ps#AhyX|&>AHNblotTO*Tzlz)_2v_-53P1Z1{MUm?&+ zn)(0OyN$cqCYWSGeF+Qr8Ik+;p~^@ZvN`Wkh}t!(CsfauplxNH>u#%+TCW==$LeK{>(*5LHNjE6Na$ClLAfGJ&Gr*r z;hZT}tx6l})4BULv(k*n?-zS~$-34Bv1fgfPrkWY(I6StZW!0o-Px%NwTM;s2weOT zs)(U)3t#<>l=p7|H$}$3I(v6cdT&vhHl{5tYspBQN@s3Q==6QYy}!SQD_GfpftC>+ zqY*ks6WYZe)q2-owH<<6+N^)A>tDU-9c>Wt3lcOIc`0>D-6xo&*`9P=uK*)&HO=sG zsOocXDE)lmpSGT2_T!gs3Ffi$IJX(CTsWQ2ZB%Ty0j{r$MT@Ri6?4YC@gLfUJ7Qf~CM*a8 zC-XbM*{4!HJvx0#hc-Acl`yhDZ|6;>ERD*n)yit=aXdVgGP~y0P>XkIVvLuMjna4h zdsLKH>q@)SFKvDGBA}Oc#k=1XlKt@YaKfQ! zA7{fYH_b;tiq=X2RZvq6#Cw09}ZVO%;}QSP1o{Tk&)R(xK27mMv0*~r2K0{#h9>kiF5i7F#> z#yJU*o@M&Eu7{54o&LwH!KeDU#Z`4)W)U98|@#_aO=k zwI)_kqE1V(*d3HQbbP(<54w%S)xwUYMH)eDf$_QY*IJ#0W`ZxB z*WNgeGB(tESnnR^gIY`Kt)Dr+to}96rK?Q#&7AXeyv6r^?V15fcg-f4L8794PY#^P zyP(;wnjNV`{xJhoKaKGbu@I88?Q`iUl@pAGjjUS?5t|kCGzI?o%4=`UrK8~ zoc4Z`7Ip68l{!s2u0I4?%aW?E#zoj4-D(3r3N?~)e`K8QfL%E2;-CF@|33V|HN6({ z_%xB#;9vV)_Y2yDZO#GX&;&-fC|R@PdiDNrqV`>xgGj@7m&y%?ery{FOD`zz0eH5u0!#=nVn)eZvYUXR< zdLMHqkAncl-3C@MgPGpCkI$HmLcmT#A?2=mY_eaQKJK{Q_elWieINXj_%ZVBoVFMU zI~k)`GB?P&D<|GRRasowO?!w0+zm^f7a17=xd6FXhR*J|d2hPoV}m3(-v$$u#YGWJ z^XOhMUN#whbSt4%*YJea3O`lRNR$y z)YYC(x7Y63s9$j3L6H6Y)r^kZiNlW_2n$hOSivfb3JS**dXEz!>_LOEc_b2A2a(kw!Q9fJ+$lK zI>W~ch?@0wF}Jjb$1b_ajkZnt%xCXA0K;qtUS%OI&8Baq3bnCS_H~1=x&K`^cE3Cp zJZ>^8gDvGP;qB<+`201oibyziTNlZAW-d92M!Q8B zM~xegk84B!n`4;Gf8@>cEL78XSu@}MQVynTz5#aVOm5PtKe!b`yIZ>1K6lJ-Z>ryS z4Ns|mH~O`f15#E^L`#?$&m=$(XdorcB_htQugfCmBmujO`2?eHrS7F=KW^psWdn~A zb4ZOh9y+@QfL5(4LobFBFEeD?hq)#g38;xG=-$Wg!^ae$r>wV`pvI0+2LlCLM}#-j zAT{=jIniFLryuV&F&hkIIba;oO|yN!iR&bzHw2;G32XYTsEM6oV^4yKyf}^ey%83BrD_K!(?Y!d7+BedN4nEpR{C z6Ji_Jshg*c40z(36Gta$aXH#o-th-&?6Sb(}30I2~ zm%9Q_KA;fRGt4Y-kpB4-gx*qxKs?@Xa;xe zKfVTt{#Td#*N469Fwud*Az9S8_=EVkII^8dL73}A(U*JVCsp1((V<7OZL8~hu$&6= z;rb!b(-P&D2Ncq-8y9#mUvR4ao}7x9l!g$We)2QClj9}lWZD!+8Ln_rfbcc&-NOe$ z0@Bo!TA_>!)4HP1GDoV$wY z2jfgu{LVugYUnmYcY5|G1dG6!d$>b*!T~66lpmQLTHo4a6{88j0>XyaG{764Y0>}k zQ)ev6PHlKXK1KP3TRVREgP${!rVLT%lc+ z4Y?luvLxq+Ho_pYrV@+}-W(e-%^(-cU=DOZDRZvQVx6V8SnbAF0Nb=k$UNpG5r3Ww zx};Zc%Z7K+H`=@8N!7ocKi~)W=ZB;sP*A>rAf+3k1!YHJLJivNAS{clTc2Rok|3vY zekP!%eEGzUnN0CoLBWnqyscw_y;u~6tJJ=ty_ze|1gXQ|{QW7fV9#sdaV*Ly#LcnY zH%RQ$gj`;4#yr0r$ESd>P3&NiUF?|L4vs=prVN(AoRWdMUPn+wLVQ7Nyn}qL*;C3e&*Bt1FzHi|9YXLY%0MwnxriFN-ya zS5w2`9c3Yjcb^@)94VAysJW8guO|pnus*v@$VY1Zk@h753hV6mj)l7*M2=~?*+)w- z6oeATa!1P%oJy>0!e$jB#iT8)BrvLc24PDqx$pENnOY7i;=3?&aIg z?XjgJ;!~6iWIU0)-$80hldS@GWJy)RWp)`FLM~+1Z|qOlUpfUFJ|E?^gfVy3gHrpP zG+e@W^+Z++dGb4vsJv=^)ir!2#WyhAW|eI2M>Lw>Asq5@7{L+-#klW&!3PA0;>EzF9b2diR$w(go)fpHj0+R zVy9FU24(MUAY-^(qnEYMw7b{dAO-ReoVrkfMvVAmzWs_h*TEZbOw9<9lvZUc8iC*) zl3D)57Nqp;mCimiN#uLy+&&C7PLjf4Hf-sZx!(9_=FP2^X~W;hGy+vN_3(d7QNqFduqS&D^lnPgx+qQ#~EY_y*W}$U9%F+U3IZ5W6BJ;a8Ov=^JUDjDgoVf^#JR5l({!W8D1U2>2PW_>^JKhaloi)sc@D z2yuDhGX%HyuJniL*mQxW^2emIBtKq|;Gy`^L!W>^u`v5g42%2ES!9TUG}B_&0b$x(mqe*TBQ0|6 ziV_P%z#>tBC;KP6?awdgZm?MxvQ9p_+-7-v_?iwse%F!W=+3|wjnwu;UZ)+JbyupH z&%ZEm*v_Aa29%DFUqPL6q|f5jec5(r5t|yDsn4d{g$h>igM|JT=Cp=olJNkK&rxRm z_cH?9@nJzqJ^Dw&N8amwnC(>k@tXY@UB-A^wHIT1L8Y_F=5XCcorEJ2Ho429UKk&x z+oxx0(6$Y?=k@}koWbjmOW;*V#owQ6a^)Ps?{viYUc(>o9jvmuXw z2`?S-y@@Vm)1JFQa<9->vX9mExlmSI1D;d-)~Da}h4K35YVAZ&9QG|6$}xXgkQ!pE zCR=^0C3kRA#A}#M^wN;weh+0B(q*rqpI>c|-PN(FST6atD^xk}JTk8_Sr;^lM84pD z3m5epwr*}#?#}t%SnX>A3105YF}OdO@v?uodOSS`R*65R25t_sboDzx#2F;%O!*_| z=qA^K`@+rxzVyIXSDGnRLR>|SG4RDTWX59!NmrRhIl=hXwhNK8Gu<$1T!GCjWM$dH zAzf>6M5$YUC>&Ywa-5k7gs<0=o`luOKBn?d?kkf5vxqJx=LBLfXm@E*wB;XT7yPOXkEO*ESbAQ z2z-#zxa8IwcC8B?9E%PEj7dJfvnwvQFl=66&z?a4j!f_;MBUK5Re35NO)jPwXg2o5 zbXE^8{8di~#8*-hgXACt1tLBZI(=Z6Fw&HQmaXvAx@?7~C;4cW?|x#`0WYkXMv{02 zV+`}-tr|A$O49!WFF?@0?Zmth% zO#v(mVc)-~&!1Yecwu%^EYflA8yf6sVm?q?*mCf`oSp|{5xH=dZ7N?9Oc~|m(Tn!p zZkU9uCEz9EWZ{_)IgaqJZW~KTT20+K7I8NNks7@&eoV(H*=gNI*jU zL9qKiw1(qg|AgOw$JR5<_3gmxEKw?%h$$macfn?_m$*R`uN{%1zZZ5HfzX1e_u@o{nz{NW-%4;i7~pGu!KkFs$8BEZ2Gee1nE_t}T+b19^l#;8Bk|soaxruOKwoe2ZA=VHn z>2BEJx>-(;!^ljyR`pbZBbcycW4fb2Cf~C*a_rE;u%HZN=jY+2hDkJ;w8w-~+Z|dw z$3mgslWd+0C~Hn8?t@TA-2^VfnuA^kG`0D)Ub)SU%P$8w%YEO^+A|h!GAW>!bYTog>axyXK>-I*JNM*nrOI=_%3G zyl4Pom9nBlx>kWE$I(7niv(8v%gP8#BwsTY7veI^A_)TH+)pN`7N|GS}o3=rm zMy5=MBuHbIH#j#!Dkvf6c}CKtq~fDZ9_)m* z-~gVz4gYlD267nRl8?OiPm8{l0{*w;inB9S7}$JJ@~7Qo#zo1c+U4E)gYr)B_K^Wv z(Fh&M3Yf|X+6`Y+)~(x=WXFZ6SZ=pT5-zL3#1L>~LM?HKlujnuwjYD?9M{bWukJr4 z6JE{xx%e8q-Ci$J*Int$&>QDiz2V>_*_aEl7NzIZO81aYV}XkX?}5z6ZFcVyXU@c_VV@VrN(112&pa>S`m%sGTCH{mv-wbSWx~Y9pndM?Q`3(ZHtxl`5 zGbKgB?3P8-VlueMeYz;bs-Olr1ANYH|RFkz)pOK}rd&s>oq57LO7JX5*N3bUad zo`D#xkT1C#@6VaKIh>)Vd^Fjm}k5Iloq{qg*+NhJjGA&CD?Tmpw3UgQb$DEGiqd0 zo?$6C@Rs$89Tkd5ESc6|{SIvvJ+o3pM-B%T>&!{6wTjJZY)&+~z9b|^WY!(YGqFf& z4oX^N&`2pYnBn_9v~c;%ODu8eTaTpwJo^sMtG~*}U&JolY*Qt=`7NTVFS6>&(MH3U ztEYy57@eEXl?@K!E|M92{rxz55#>vhIURI zB+QLcZ48*IjEhdrI{Ah&I<_lO?_m;C49C``W^9J*-4yYV2m>-bj#^-F(Mt#&NQ>_! zek@($cV#Vjfbp&!HOixvKAYMF(#pp6G5E3&&n-9ixAU;mPwa&}B}AvT)_l#0EwjUc z>xOzR9mmIm+#BtbPAyB3j*tNm_g^l3Q<)!b=-D~a!ZdpT&EQhaD-T4>KxQR1$Um|{ zNxq{4dVxufGCnUW7T)Qcydj!|*eP0l?3E($4-7g6Z-e0}R{_8Q0;51VCu|$DOP8ki z#?aN~L@1#ip%j6P4@j1&BWA45meWTBk8}u!K`xH63)Oe1w1h4r<;nB(siZh3VSKfJ zMtC3`uP)Xu!3+pDR=^)rad_lF4(T542ZpP_t8L~l@Ne{+rL9&fkiol=8!XEl?OC;T zlls68Zm+Yz#kgXDQj=q!9b2v=5T(tYs)10UG6XUoaMm!K*SMM*ZAp@RDtC=@qMbpQrkJ zf*NG<8SDPrN@ocw=izqWNv^1YQen82>b^BW6sYMGMC}|T!)u*=wPm73OPUn(L( z$sGhL0yqVQz^8Z$#g|zXu(L9zwN-l2N&Qdz^speYyd!gn=cw*(QMO2{elW2v&9zBe z3Q9+!fWS7>+GDP2_uiVOIziZwZloPB>H@u&0HTWV@d9v2;6q_}2TVyJ*ydX3`1~bZ zU>@*`Vh$Zw3}#k<2x~+nmmK>89S%}tqwA?E)_YM=d8F|en8bHif!MX)4k@KxT507a zL$|>iKuR%3BaI*lN-Ty$qyb;Z;@mvC*+ep=qMJk@)$(=k2bCtv>U!~QP}^1*mo&h$ zok+XjfGAst)4K@cLd>zfbtR1 z22pq>{phw+)>Y5u*@nz$Y%#}UzkP66UnGxJ;-zU^1L$(R@bN8#eq!}-9GC*eRfgqM$bCaH+{ka$J?TJL;bvuK;32wN$LtgwXbOr@}u={l~ z@pz?Z0Ao548Ke)lH5&ldiwttEq1lA&2`Gcx001MUx2E6;gi`i)e!IZs=NTGD6oSJW zmFZpe={uEsrLA779c=@x{7G>bGZ}=W<$*}7K-(cf0qbDoE=;4$BhI_f;pzVRgM?@j zpD!&=HHdX(nbGkRNVeOW+aG~;svJ@W(MjN>5nm=&0!JV;WVGBLL*Go-smB+5aq+5A zq41`Q&h9ZVLFZ}{pvo~U4g3HLlo1B;Ug>39Z)OHCD-E87dF!BdMmG&AYBlNczu`hZ z`-mI-G4ZEV29;OfgOZYUcRHei=@4O(di56z$Wzqm`m&r#u>rj$^;)ad4T1;E106eq zT~zoo3j3$p`yB=^OwSKtJ?L&S`coejs?}jbKw<$-sMla1mNaoFW&j*yylCCYksbG5 zX{_yM%^H-n-7u+{&+FrBgrV+-j>Zf3AsT3u%L)-+Bic#4yea$NNSt3u zWxi~ikvMJU1d6WnUl=#H9G}3C$}E9EfzjM%l_K@N3&i%H)Dp>UUTvL24MbeID9hc1 zXzsV%L1`=Htf@4r=FZ}V{5z;QBmxVYui zw=vH@&r;iDCS*mE4+r3wV1d2Y zEU?vvxt}+e5l<6J1n)2$Vm>bC5gNL@SeP+`zr+vF)_SdxGh5@^gHWC;F%%q~bsiSi zg+W}fCsW?T3WR2lSwpiXrPcsZ9&7ypdZ+#T3Omr3j6?90;fq!J|v37ci)b0 z28&HpGncbmAFEu?5DAm`ikxSr3k4 zQ>ag@kui~17fIO6C%4@9cfoq1Gz&Z}y01ow6&K*Imxaj-gRzGbJNRj~>1?B2rH%~V zvXvn$+DHIDrc-hcV&IW^v7QXPhnd?CPG_9T$0x38P>pZXd5vi5d$w&MPs+mwr+H-n(a!PfVsZy$D}~yE!6@Kmf6r z^2t|d5s6kyvHb5W&vny9F5{DK@?>XgYciBk>(P3b^pw?=(N zj=88h%Ube_=x6rijb@SWsBbdb1*F4`ymlFQ7!SVqtw$x=g3jkpOL?)Mww)IPsDMj$ zIQ&VEWADKVnW9QMqU~j9e_=OcjdRv>rC`s}p_eh~MKMM|DLMQAA@e9Y43*~i>-75P4_VwLRsJe-}+Xy;U}wqotuFE zH3q9LfG+KsK)&BD`b)5$fq?A4CM8cveJ>TOQGs`NZu zk1RSXFffjpl0(`EKvuSvqrw~nJkF#p;GB{Z=Yntq>mbnB#Mt!(c$NFAqtSUEnH*QA z9@8GX;gOS+Acm02Le+)sxkDvaPR_UK9_`Sjpk>IfRFCh9ZR)F2Vin;HC-`3)G^$=z zc4Q2@S9$!85tx8zI(nmrK+*gm>fj7HR;UTpC@HrS zbz#W5YY=CryZA8oa;DAD#kRGL1xwHOg}%*$nIP-{Y2L)Ld3r+OiPUWr%E!ceyGl55 z%yh=JelHdNS>l63>|zu5=r~0R4mIFl7F5;U{UlAcH84lE8N?E3RrKSVvTt)YR?)&| zU~eH%1SgKB%h)T6Oy7wf0-Q!F-cp}J_L*O?=zOXfNjg)_E8ZPdbQmg`9(0S4B|X~3 z7(`ER!xtqcK-;9md{7De}^z3QVLXtLYMPsc!IG_x7*pk&0WkCHEP1u%=*nl%b$uCn8X=yqRG*s`y zprLz~$4C1xmO@X#MygUD?Vk4N$nYOzh;=P7mfQbOv{B1z-ai zNNR4$(N9}jLrbNMNmU+t`-=jz4T*xA?DCfb$?t0I3XJY|y+mwAKOAIn7YK*I0P|0x zZN3;w*XfUWv-e%s*0bvxTs`C~_~a}On^sgOr+9mVcnT1}N=$}39M87VaEL78fo*KIF{j((!*nENdVQ zM0(uL&qq#eAK~W2i5?)H#x12^3OBfHMdtGA(L5y(O+A_n)?mwO#4vjXflk-d++`vZ zgaTNOf`qQ;*3J|P!N^U3WdIV%EpRSXuoU#>8+h!t|xz|+_D`$a)CeNTrzuP zdx7fk*?WfEwjcsi4)-J-CKjp0-R5aro3phniYy(R7#up&#CBuqr_C73?rQC)-g8|N z*bDAc3hevbZq7S33yFB$`8y5wSrfPb6}-o!+QZ`7iaG_akw;3P_po)%`H;DNoH|d@-{?iwdB4Gguinq>$6w&cWZAw1HPNhu{E8aNgA$$z@X|=Nq#O zTVU~cwhPDS~P&3AJtV8HDW(VY>RAE|!sC6?JgdK5=?8+;>n*0ZgS8b~lNh0S zXcJS9-eFcy!gRSIv2-6AzkHQ9TdZTirsSj_Sk8q&_~FZ2JbrB!qe}JVI_7?RtN?ia zk-l?X8rUv_Fz3BGu-(6+P-J^i*}7bb1Bc>IruE7jObdC3WZro_XufB0c&`rcF1>p( zWXl-|mNaAXMy-EXhqq(B>Z99{wQgavX!jP7Efn?H#?Glq{oTtQEeuU+|9&Q#mhg2) zJULzo2SH~|gk93SzZ}U)A1+f>ZVS!9Zv7!|Z%Ud7c zQH3kVc0Ha!&ZN#|^S`2HPB~nIX8(!J|7Otxj zxS4M*qwoiC>&%sss&qmB1F+A5^Th$1*^rW4D(UBun~StO#IHVVxB|U0Y`M+D$38}t zv|e9%((pRD;IY;Yt@46s#~?&uvUn~!s~RenlXTQ(v3yp?BDvsggCw38 zF3x6TDaxRMSeR|QXp+HQQcJ@xx1r!#r4Mz!$JRL57IVI@r$%L>!8280^+^cFW)j=f zxE>N(J%pw%wJG56L3T}VL^7o1USo#cH_%8$qgRg5(x=Su3-%~%QM51lTkBVtZZ$M6 zD`$Y`MURUT&8`{3EJhAZ4WvCab=H0U+b*wLrU|8t`$9}jr(UdA)yqYN3RjxE)b$X` zA@2H6nDsp_IV0+w3#U5L5bVH7MDPiK9{2gY^LjZ5dKL%RnSxGO`+(%5NliQT#U%dO z5V?HB;E)63u@N8Nkx@=^$fPkA-M!ORV>j}Uig+|2?)vi zr-u?FHD)-iIs9$P)!W19EpQY<-nBolBp|x3U1D*t;k3~(i9y24W{W9HYEegZm^4X+ z4uO83Vm*@MK0YCbmNBjrB`U#0Q@DLr5b*2yxl;x^B@Ir7kla$DnM&+p0deG>%-F0l z(xw@l6xc`^)ac$Pwt<;vTt=LwP1?HGIZJwZZZo+SwZuZeU^6(9LiNKGjUbbri0iR( z6HMi7`%$@pKe^UXlAcAzY8#Ub}Rt&Pu+RaC1RDBA>gv|yi*cKlhg-6S zkn#w53g@QKjQN`5KGC&7zNnIkc>j`@O8_0X=;q7 z*msE|6gfF_-X6q#3kI=q@p(y}ZKgt*El6rt$5S)CW0cF}JUhe7bV_tYoGm7``7bIF z+NWaM)_WvCx075}Yr2JbU%fBiyzj1_nMyAj$9CCd8d0gdyjXC>H;xx-xo zDWZakyWF;-HeQooeVJ`z6bhNJyHl#|(weC*fRW%0G#a$7#LijJ>d{nI556hn(n3$f zO7w#(TBxZc-yY+FzS-%#HVKcd+$bJqa=<*XHEX4vJ=F6_CE65`m&>5p$sFQNk*AQ? z2QL=rTAEl~c*2+dh@vod!bz-5s32G%XRJ@xh_FJD5R#f)>Z_&G){?L4srDd%>N}%e z65VT*7zWDVh1TP->Bx^7T(Foh?=UJfj}q-t zqg9re2hqzCTL>8Q8|CUj=_Qk7O4WiT^KJ}-swZ2EBZc;*0|zX(6sC2D7bBdjupK$y z_V99UU?9QshIcTV;>%k(zahyke;b$1bZ^4aQ?K{{hM>*4OX{D8!k-4P_4uJ|o<XL)+vf1;0{)X2#oj)Q2%BS+)>LA(o>w zMxlNG0i1Po1i^-at6ujkT>Xu6?nUk=t$A_|1B{XvC-k2#&wPGvl_nI4`N^?G%$5GX zVRB5H@tIEW(2j4vQ(#mu(k$y&RWw{D3FUsAVYT(}RK$xNs?e1C@Z_40p zg%1Y@sJ=9>-ftC_T{9myw|dmuG>axUu5kDO^P6GA5gv(?M%IWC_AiN9XtOSL*YIj# z*{8M&dTqNC1~YSIJ1Fe^-FyP&;P@it0XmjWTkQF%NgD;lD?59KFU}45HH3M`ihhJ6 zce0l9$4#{(xRgu|Y!__eA=Ub#FWW{hs<>rsY(|ri8Az~nbG2@`pQ>S36O(H z@efWNB#jCx4AjhT1j4?oR2C0mTI*z5oT_Px%_cDsvhFTpJBFjj&xR~-y!*nuHh`lQ zzus#@iVFd?BLY}~zKYK2E7>@tZ>O{&&EL31i}6uC$C*&gYqmq^!UD#W>(tI3IZg|; z2tiO#PaZ&cZa*=bk8~(&Q0by)F0|yn3Az!mMZC73ajr;cI@Wlk7#UP=eDfFtSI5i3 z@Vnhp%Jzze){iBop9?(6;iD;OU24vP8*eQ0qp8l&9Cu(bXfw?-=)m=RhtEW=9YCASa=ZQSZZa$87MkO{T8j8X zLh=tJA9C4Vsm6a6xte1VAkk2L$KU|8%-K7;C8_oH0kl#U>&Iw!K;dGeE=htz=Rv(f zPI?7LisVN{)FA0HoTo+S5ZhPbo@zy?Tlr>^byR|4H$cLYIm?_FMmYrGdt|k#9k|4| z-hu7#Uy?v?Sn0TWjX30w!pP3zYL;KFZ?eZmN|n){jt%YLaStXCZsTW%(0WCcx8nWM zh14BDdyiWnZnKppGw@P&C*1B|ZI!$#Vk)5)p!Lvdk8&|3)N&ypJzhf?H$;zn{dHnr z9BI`d`qdb_uScAa(DpgIXB2I3%?7X39G+qC~08%uY{3((P+H%`~J2-9(2@H&JIM2^2<6i`0;k-eS@P zjcd{R?g@w&ke7Md+r%(UH7}iyJbI?9E8@1lyBn^OzT#>p&b|yfGo7MziSb=#n!5;E z8x0eiHtdWKS%+g^#{{Et%vkvUQ5%lK#f~x4E1j5|kfm)EYi4!acF5T<-C2Mzk0*pb zcqg+P2%E3(UG1Rw&xv*D3ouA`>$OD)P`a&Gw9zJH1MrP#7KLWn?unZL!;9!!Vh2I+ zj28Y?3o>4nhlAh&Cy*t)#{NN#!!ipwe2c)L!=w8c#qV++%7?tx;8`6zX?#B!7y2RL z?9fokj$VOoO(&hQ<7po_5o=YoK#38YgO_)LGNreq(7eX>M32#qpbW~xZ9y9`q5Jjp zc|Flu*;Y5EoG0$HSyudZBwPKuD*5~VwgZW9pC&1-OYln@O z9T(V_Ohs5@nUPXdajJZHt8kNCL-H#(x(HR@B~Gj0YAUHE&u-M7u~7kEc}a)BGR-ik z$lLAAwfWz71;_BT3?;Z}T&z~=AlG4>N- zHXAU^h3)p_#6vizEzz$QvAMngC@mK83+q{{LZj2W&h4Jb!YnEe5w*q+uklbGdm^pt zkd%#$r!QzO2%M*OqExJVa*>j$d5zJ7ZKg2q-C>;N0<9F+GY|#KGyq0Oc}gwWAJ{bn^OVcN&e zj^r}YaSr&`lp9NEe%GQ~+gkImZK~()UM5*hVY4YeJEC;o*&O|n>$BA-rag4uCvp8$ z*~XEV|Chmk$%wIaOle_&5E^hZ0wHT+JS>KwR$ewV1DDj>vA=>R9Te{DziB70z%+H@ zxb9V3T3zzw`?t?xj+_*05PFUD7OzW#S$u%+6qqwD=)|$3)iJwO?et<7(&|cE7|GtI zH{towUXi*^@i$4!N)oGaP8~gp%J*$6ex0xlDJ{qew${2Op4$@eps9-?MTp_wiD7F7 z)I_6W2s>TTq;||dws8};fHNfV6ys-twbB=YDS#bT<8jYTRXGPXuQO|Q!c#bs*M3!y ztzp>;@ZV{!z{Go|BClobxC zI?Iy5K!WW)@M&z^2xdjLX3L?s@y_q?qC3$P;`ySp&>R+6E)3H*y~*c@ew5YM2{kN$ ztV?5tDc5BW^Jv8+u=6ENx{b3k+>!OY8Q*m>HL#rIvh3yH zU50%E*-n>c*Huotc8wg&UKAq8 zjp+o@%tC(3RldfVv*Qtr^gGj?q}8}Cwt+~K`l6?Q(1RtQ0vTN9C6+>Ts_S{++s&;^ z-@P_6Z`Zn;6yxdx!sQlOLbAZcG?uR??^%)I-`r5;<)Xr?OZpC82#t47%F&yt8%*#u z?3_tG{+AZ(b2P0axy|<3W8hP6!Of+mA;mA!p6rbaStH(CK`%t0j9WfN#&rV=l>=eU z=aw^nc3he4pFPqRZ)3VnCYpHM5m?TI(W8`rG#8aB0P}&|NHBVd`VmcbulDLXf%_+B!9= zDpyo%#PzuN^BsLJ{0%d!{g52k6_%dSRjF<3BG=JG8#e-!p;BKyNa;7${B7x0S^LbK z3C_@M(nWzxEMoY@090Hm9Q+$K7|JZ&0Ul$YcIec|(g!I;n&rYKr?8BN+g*QM2NWh8 z>Wm*GppI|T2%)G;6yG~$HW?r@$qE=&2Tb=cqsQr|@9R`=GIiq4Nhq%lef~8gpMVKV zsa%;$iP4#ZP0=3_5MGVW6u$O1`&N4s8q5SeU6JrYPz9z@Gq7l&1ppPY5xY~K+i;Y=#9)2ACWxQj%bJ;50B|%nFr4rU5Vj zUYIWwkJ?x}~UUfS=AvLkAU#Zk z*8`$yAe$&}IQSV>+m2mzg33SI?9i$<6*_`O_ew9}tX&4*AOyc4;gP@M@Ir66=T2fz zw`zD5_3!W|Yxgcr-ni>1+1$G?b8lSvAhm_BZz}=uU_sixMBuoKMj~Q0Sw*SEQLT%P z(;dZRP08uu4NoW6eM#0xf2!KY*><(>Er<83PvTjgkN^O$^jpV}a5>mi2C#CR5HD`|5}?mwUl7!a&6 zJsE`tHs)V_u1(=HrC=)DYopqQMSy*jT+L=!n|f*TaYT-~5Jf^#FO(Q)OIk5pCag)j zt|N3ErY49MF?cz>b`NO1@LlkI$R?q*xON*-RGC!2#M$AQN#m4_AlBA?T-ZK5h@m@L z%O?l|NU8-hA0C86ie8QGjxTwTaHXN6InlmcD8pk_FR;gE^K4J0Y!8EEj;8vaOHpMXCHZndHGRV7emc5y&=r>;> z;3{$dKp~eSti_t*Q4{RB8f0i|F=XpPT=o1lKJUSUy+(J_T4oi|!~7cL&xd>`z_0Hp zQW+^g;gSR2wcMx4F5hb@{Q)7(0XcnKp~hK3?A;hvM$C1Ya=G2ajkrTFwV9+S{GXzX zRO>;vzMz@E{L~Mk-|#A;z_3<{RDMVviC7RlO!k_aU0B!y5t{xTp+XdZq;6z;Z}l2m zknwsh4$Sppz z-p{HLG5b<*H;Y&qP5LfyvM`iAwo5=)f7tgnazOV{XRS9RUE7B1b85D2EOygx)%Qw3 zUZ{V2Fz1aIZSsyk6P#`6t3F^fhj%AX2_Jg5D8u06I^J5s6y){x!{l z>&tIHR`}j^OisrRxysPN#f^y8zvmgzfqwp*A-QYB=!qj7(Q!$&uPQ>eK0ikTi*O`? zDwx>I{)N>|)uOWHBJnL(=zjM;{M9JpD`ekzE>}xYe=r5vSBpiw8nKEAP?Z+3EGP&< z>jPJ5(3Q#^@VI=hHI&)TDIuAAzHmDN0LK}ueij7Kd%SDFyiB`^?|hQCL#e{@hhN_& z-9F|o%Q|gKu)6u>;Zs;`IbU9(D%5Uz(JdUNekv(Is`ZnNB$XXj#n`KY>y1PzINVD~ zBiZ!%(48p(nH=KEmfFRa;uzBpu!pC%IBDMcdX*`W$6OitT{-hNr!X48xD4FB;OPkEJq6F-&-#Y?D>+we+9+HYN6QQ zS*bNBJ>2FB3m4Da1xW)Ul+bj(TCZL!hkYIcq}-iDbq!VfpSn31ht+3o;gnA#tc;Y; z#r4Z3@ZrTG5`5(J#~J)KJ9hXyPI)Bv(01c4i9*Q|BY4Fv#fD!^_s2$P!q?0_!oi4_ zp7j9)cBe*8Cvdd#!QbPI#4sElPQtY@OvtB#l=T*A#1RNy=cb=g8aaXw2N&|LO~5wVB9pIM~t+Xoo~Di~WBVzT)TVbL{7*zDIB zUGBf9@83S1TzH;AH2-bFf-sveC;d|PpjSSV$x3>N!SM z6#nG1E6kiysvan|ks{|UJO##S8f2Bs=t1BD6zF;HpWQ}f4^|7e z8oj4S#wh+0EeUm)k0q|#zjbNVR+1-p+a1jlEgN(4>iKo;Cd+7dmv&0qLJkK z-K7F(g+t#T%nP9c)PLao^^4;wh-5sN93zsj^Q?xUByIb>`K2>y;OTir?YYOE?LC$z zq|ktEHDu{fAR>3QZolXQ+m`GQXDC$cLR>m1LTWtFf7vwY6k@|s^4H?&gWF;f+uBC< zC0p}zriBMywAhe()uv%a1kMbS)d@?Ee7#cx^GJU;22N|DxIDoRZCe7a4PHP(qUmEC z&18*!0Oat_WIk?{O2!!sb}o^2#3ER*DM8#ynu#SrlBA-2vA@BQUUm{_E-O>*crH)9 zLbjdXDLKGXV`}CKlb2!i?=kO_-%{M_i#Vf8gaQN?cizw}Jj7}sj6mc~X+b?uX}+_) zWsm%`()NE@{^XM*eY?}az8W`ta64%Mz@- zkMu@9^?muI2YJ`#YeA`@rM2(92@^gsu??HO#w6#;@aVtF)aDURe-$=i4m1iS($4auboY zH~xStIjiGb8jxaD+9WUx>&XsZatr+ z05^Cj0LwLo+oj62b4Zm<7k0G;^cO$S)sU7-vf@PB(N=vKFA-PnkhIC|~2M#xd$w{}XmC^o@mF2six7u1v=vV4rn@MB- zfP76Rp}bY?f{ry8R}}*2NN~=;M@F!3EKN2+>mSfu0Af zdiK|qSu1qa=TC6`Ue|m5t3!f6BN2o#0s2h!!u~1z4?iJ&v#z4>#{E7jjAfEd&$XIM zP+BGuOv;VOE5?fNX0CGA(3mP_5c2_gn-E0R2Kl#2#L;WXY=iiw)Jb@bftr-w)*eR%_;VR!dk-vlKIk zK1c+DC^P=M?_+3tNk($wEz5LMU^LRBs?2T%cgH42D=j|yQ^oT#(Tjqui8We3ktOz? zL&nn7)NOr@)zhxI5*fxXS)MdT6g8!9f9u}PNqCU}E6(;O#HgOAvdUekq#LytCI_7R zyhGl%o`b3QGWO7^ImE>P0=`2Y?W`p_AAJ5oG^t8yDljUY6;m(y;R9MW?Mwo3)$yA; zKdL6vjCILc4bUX3bmSaeUdS-*slTT+?KZf2##(kqg4#icf`4_|g`qWQm5M^5-!-G_ z=uNri`LvY<3Bo{qc_#xR=~M9UiQICOOz^gVQ$m%rE1bMKVFlCWCAXiap|8 zAYrE~s-DWjNhv(0x^6SIjkRs-uw~;PJcXLRWn}u=J3^U(YUJ^Nu+-$PuW78KbO-Mm zZ}zDAR1OQb5OhH4SZc$=i-DwU_{@H{$rg9s>$2_W!tdqeYj?7@HYEyQsDX3iMHtev zDD;jkbqq)5l5q{jOMak)nH>MoO~O>29g>#|i1ePDsE7U&RRdPDB3*a*(eiB0xlRcc z5|4Q?obW%?@pP>7XZKg&R_w9vV>fG%j@{ZN)^^Cq4wag4*SBb!R9cu&ni?^TJFY$U z5$>$(_Mf-W9rtcJ%@T%;BsDWnM%(E=2z2~L$)6g5>|3hhgzp+^Az~9Tbo>m5#>DZuPthKfpB=;C(W0qjT2s{w{aJv zEY1(|>V>NwXYCOE_wJA96!qVBEjeYh{8cEBJkz^^(kxtPtSk+$7M1^-0I!T8&nfV@ zDV4=u5V#>Gaa;hZ3maXClrEdGT=?fPw^V>@d2QB|T z88tM$46~W|lcqZ*UhT6y&kd0VehyqK^KtjBI{=VMZjEqdnh%pvAPB!85ao!l7iRY{ zmcK0hO&yHM~Tw#e+H(-1FbD){*mJSrOJ?yK(QcqCa8TjjqDLzcuZCuA67i ztIl%stBj^;r6rdn-k)Z}aTlD%vEN64>YB=+iA`q2xoOfJp+&91$xbV&heVMf&;^k? zK&HyZGX1ueR#KIpzP+mUs5D(pPeaeIavfwWsl<90HZX$_`qJ`l6aB8;B*XTcZGjK! z)dUG?i*LGe^g4DMNK_gv$yKrz=BAW7-4%tJdKgzp&R=4~iYJ4Nxsx-64Vkc!82X~B zjbbH4)BR|^NA0Hk#o6uLz);QB(_KAcKJwJgylUY~!wWNULPI)=U{Ax5<~*O{u;S>y6*|b7 z9!k|-V7k7aUfe)55(fIoPqs8aHr1i*6N5~{s?8!1cFhsqetV-7$Lzs=1dt}L&97&2 zFvezu;B~W{t@|7y){m%}ebb@vW11a7ebY^1l@gC4~JO{V9ZYbB?yyNz;r{G^Sq zwpcC&K`S*M2ga<3owl+pRljr?^xMdVQ?g(d}?^wCIEp6wZrlrGDtigQ#ijC+g@( zAAsk@#yG1{j{3?n94b(ie)_?60QI*bcpN$*CC{5aP0`(Libz6 z-x%5DC~f*_zG6;%U$AV!s%7Ar199k-h85 zM8tJ_9(is`a%y$J`j@mEOnq_8QJyz%Kql4L`lxK1p;9o#*AXN`M~2`v<)aO+J!z$f zy=gX0h3CYmL&kW8V>L-iB}f#Mj!(!apHoWH=lahRUhh;;8%Lz`3d2T`!^AA^^aArd0J6v6j8`77qkj-(rnW zr}JU}MDFpIfxoxH<8p)iFhefgjdPq#u%LWvTpd~PHrzF^pZ(h$^A}*>1zKhcS*i@k za0Goa@r=p&WA8cDJ3-7iQx2XSr#lsiL_*jxKD&B{lcI$w zcJ;Z)aAKkLzhDv&xwCs36`6V4&R5S6LXt8EE58|FdU*%9+44qTl*$Zlp&X%kPQV-F zm2X=iiQJ)|OFwqSI#LyU6ZaquT5ae~6WvQ-e6-wu{18!2rDPZQ{T)m2F7>J0 z-LJVzS=1TQ(s=f#);e$0jLw#L0zI58+f#YROnRpak z9|4l;?g`{Kq};CitWMuk68-L^S!u9VBjd+{-B%bOg62`ILQQMy&D|Yvg)w2npNb!- z;c~i%^&`2D&6bEko~%|mvIv#+m>Zl3!@_A*#-LP48KB=rxj%}-_OM?0u3sd0{?`Ks zHP9PMmkya5&5fF_I2AVb#@NK&!v!dR$rgJloub@WJ|d%m{p4S0UGptYpQ96vqXVoS zuBplt`W$n|u_a68T6|+10EEH~aR_T0)=qn5F3;fVxD5?|lG;|@wQ%Z_+Y&oEh`ciE zplKg!SIyN{n9fP@HB)9k`&%3Lb>oMOSYk*DUC5SiQxC2Hsb`NO^zQ5{E>v4Mnl)_Q~`D!b!jq2M?VY($S)O73= zuvEiZmt(6a&+g}Uz8NPsm3Hrus^jDURZ4|3gnmxZ(A986bh9GR%feFoGq94!y^+c> z{&UyUUT=KvU%<5=nR2=(!oMbTpAqRf^7eI;YL9!>YSPub;-l$`Xx&0vI`lkVW;{mV zQARLoTS?=tm}kKbqdc>Fq~znk+lv4<6f?)9WBTZIqB!p3>K2vcv|ddXsHON#;4bF8~!SwQ`Y>3s+U zvDMDns22uf2JEs`!nOQ`QGIczM1!js2(6{F^JpI)h=C7Eaj#QrMzg4F`X?=M(*YFl z>jN}^jJ)G*0(hn8e1r!f5jf{u(^cJY%Im1n3O?=kZXNDj4NzM=tgZM@3C760ht2mF ztV_OW$5EB59A3CoV?~Okz90N->?8iP7xhL3sp>=ugmYU3xeSSC;Q2cRx_=#fThKe# z)R`b#oCG1RNH-WL-AXyckY?e{_J}r$K?-uum}=-v=;8%nUA2ah7*Hpw*$?Ph-Q}mi zw!EN7p<;c5etC%ndq$QO5mgm0qL7*^YKiE4`^+!MEuDuKwKqnt+L2300)Qts32#RW zjU5+a#kf`77_~GSweKn&dGmH-2SrgqLkFE_9#m+@#IYmww+86lFnXDpR&t5;-DYid}iVkZy; zJKv^q|9HVV16hLQF(JQ2&>^19VUjN)bSrN`gAP%eTp&fqAGB0V#BK>CQHa2S@02^IoSL^{A~~>u25q`rsG$fj2H9+}jW2^|d&V%X$@&IrQr$ zbfie5wQ$3ZH+wCO!Rm<1U%#_@$>AJza}{mWo`kob`Lim$>r+hiE;K&Cjy_*)K3xO< z$126@CZvn&mE&IG^KaLP zZ-##WDzGuP5O7tw)T{Ym%%}zqR%${B6jVYf5gc|1W@6|lafuwloyA8qzo-L{$@aSg z8W>N7PGz0*pqJz4(d?V%;ms$T5UO4m{$zqvIoT=zJv{x!j&sEo)Q%Am{r%{Ms9Ku+ zY^IFSMvkgobXpoKD|b#C(EY{*%8x(u;mo$QaBiAX=IWzMp-4yI5>B!Phm z@6SgXn-o!;GGGLK=kpUPYicf6{yn%vZeoL)L~8s200NLx z;7*faC96@-?d0q?OW(wA3zrnVBVh$$bdWRS(GjqE!}Z2 zNFX7biwg_D0ULzbrZ%MX1v2o;S3VR{E>L^ikh(vP%^?zQFDpn$PubKg1DpZ{T5K`^ z_1;09O6^Qp55=66nt(LaqdZcef+R>Bq*@Za3MN07iDHR))vN6oxp^BbErIyMU|Ky% zE<7g4L0%ZL#e*(EtHe)pb2NRlKu8_W@g?st6-LgubEGm2WFs{xHs{n4pA$8>mGBcO z4@7s=(e_$DM^Bo)UkyOy3i}Vpp(QlHsLed^0ZkheFaSff5NLf>-dPO{A;G}6)Xf!1 zYtU%>=ZDN(Q2$g~K)HHvIfP}ck~We6@`|g{X4AXzR!B2z7={j3-@Nrp#(Bv?WZUpF zFYJC#^mUqNo=i4nQwT*VGeZi!i!V?^4scr<*%n2h^P^clKsqmy30ZbB4gYCR}@f2%x>xq!526|+2 z;Zc#8EFD23D3FSM!jvv}RYKddSogWf$F)+hEhRz|BJ1M0U<{X?TX~kughCH!e7>Vb z9-d?x8(B2w^&dWA_s-y&(KI5>L{xl|vGDrX$y&4;)7*UzvfVlbq0F){wCsHw_1D;` zWU@_0XtpEfvOx+Uur;czu}&$q)!D&fbuMh1e}9z9?M46)&V*b2gBZ#{KOGo1>B+`|3+IW*Wk z87dDz{8Wj54-77r%r;R^DZzb4$yA)?*brgGk&WX{Ul@lb@t}$-j`K# zp!5_PS#Q4=41%P~%&{25;1`T}Xk>1jg;_uaA;raqEPYm?Lz84C2qQ|(+>I_%nrSlK z+sQlfLIVtDxKxD5=&1;o$@ig1IfRFyNgft{67-*7TkDd?4zRbO-qBa=;eFJjw~Rq9 zSNetak$t@IiIkOW5+Hux>Vja7bCCS=?4tdmsTtL>Vg2t6oK3A2m*=7(mG*m9raTXp z=Od~k+}9?N%47;|_N-;SYeA!>r^WFFb)?gQ10-F%2<1;QCHfMx-DlYpYgMLu`IJdi zC&&7T&t_1*vQI44T@+2*L7T=3djY7S2&ig{{27U&7M){=ITqyQQcmK04D4jRW$E}d z&u(uA+&@nDo*5^LMraStmIReOEm3M;S8*2bxaz!mgN7B-FsP{l zq_wlek~rh(KC8JN8$mN`EEcR?P?r6@daVkuIxYh_O-KMlH-2K68Uw4^+MCUxwKcN( zn}?v004N&-3jh`v8!E5mDf=5Ze{6vX@h6JR&#(6Ls!~l`tO)@|`?j=!JM02tQo3Sn zmwH|@wDHZWP(`A4nb%~4nRQUfm6S}pkXx-KfmkBx7A#}CEUPzCAkZAl&_m{ucN8f? zw>wN65Gp|=XJ3(Y(9Iuo;%QddDAMmb=`np14T+?5PuEyfF>-> z+tPrpQ8yFX!?%mhAfbNsJeRYONBl;AvOi~#Ei4wfCNGOF(^N={i**1&%}H&asn;F4G~*mzcRUi{_9zbdrs;jhz8>`^3ktZG6(t^S;D@Ilz0dkaFrHRACI|V?1ur zA5%^VCFtvX4S^3xytds=Y-k260hCKH}9g~1h1!&Gh(m!^d z007bhJagSdl6;*lQGWiPgtJ2U6dQCZjUw;I zq|%hlNJVSTF>zR(bow-z0;-@_lH%VA0KG4K93NsoWyGi+62S)OJmi5(quOxo!Oqla zWj*U+cdd$1E6tfn0wK%wtb}hcdi%|4p5mTQuYCh1g8o)PHv%aToi0=OG5tV;8gBiv zH+FA4ZscEtRVplE2!3w@1V|wG==9An9Yfk?JBpx`g16e$hBWRt+Du^nA<5E+Yki@0 zlS=j5hcCNr{0sjm<95=#nWeZy9ZDiY!K5Nl5Egy6I6t&uHWr1nAkkok=Gozw>)6Hz zVChT{%>_3ljHze_yS5nzxd+L003-jJSF_$iBsc{E(=P_2oamt2G8X?E4L&7c^f{GF z$A;i}4E{;+XAmdCEEhrU?QAUVT#P1XgyyF5g$4Y^ncAynKt)?7R0MLf`#i}4wT}C; zzge8eV4r1Syh8JH`W2bgK!W}SAc!<0L=OJo=a1xeSwDP`_NGeeqOEE0ssD+QlV{JrzM*DAfl1eFr zJibwhf+VjUZg%K($)hC9EwiTWHhxn$FdGmvjc5T8xmOSOi|xXD$Q zO=Z0lmw8WEoSG7}o*ha;8+9wROs@qxSO_?TkUBYQsIqnPY1u*kG~?>4|1}m9em|T(rN$ds@-%O~1ZuZk~MlY)E*|4_N;?f7#!=qq<>0zXE(s zytb9c-nahT8*pjEK^b}dX6`POJs;%;`>2dpqOIW{$*Z%*QU=Qd1vIa1{CCM;zB;Wx zb?O#1|MA=I+#J>=f=@^L60g<%l&4$k{TAYnuXn5D3psnrOY!O?hPiXvg3yrMCr5Lb z#=2?KtY?tdOW!#A5w4ARoI>7Xn-FN__!RTQ&3c|(l*r(dT=yqBZ!JOM zCm-hcI5!EQTD1ywDSyODFXZ%oN2v!a*fE;;;<^a`S;bbUh5X6(_{F9^5S+ht!Fzmy zXCCJGM)v-xDYP8-`!fyx5}hha`%hP<&c_|GGucD_6Jhx7|0}QK)7#Hj27A7hAJCQD z@$2HRY6R-G%!aQiU--BOmDFIHO z{k#r-T!!Zv$inLk8R+jT-NqgidAog3t5zn0RNry5b~S#+-5)8$WOihxbgwQrj(qR( zQj3+huO3&4U-v|W~G?*eo0R+Tomd5!XW^;M|h_miB1BC{2gl7 zPf?%2l8ezP1GZ29$I=F6y&gNrT{Gm9x7kWhCF56j(y`@fs=qL^1upd=q_nBfCzZrY z*!GW~LE_fN_ww;?yWcc#J18lA5Bynz1ONYaq`&{6R_pzF>;LCqY7nNK8H%a-x(X&s z%fP2Kfl(93+0KE+uVa$E!~OX57llzL{IrOkzkynNe*!vx|6UUcfAH?m`ttg%*8_hJ zjmJFU@rD3!ANa;kPygg5yL2FsJ^(*O0060Y0RRH#10owZTs%S@GZ_FN0001TWoBh^ zWo~0-TxfJ{Y+Pw>WMz0RXmo9C0PrBAS`-1z5eUs4fEC@p==~LbJ^SQ=ybJ>dINOoA z1_PRJ*U>eE*|W{&@$&G?12y57o0oVGB;)tLoR|b=bPJ}sZ=*8vpc|VGZnznjYLzNf zsZvUnRo|o+;GFoCE}BKSba1>}z{Nkn@_&vQ)Mow}3wL|mG=IY$3{rEfANA2^6-TUw( zR<|w@!nZ^K5D{f;Z63eNpxK&-!q!}*i^^rXfoHeh;K9juuTG09+s`k)W-KXo{@bunCoa|n*e)C{hs;9<@%ndtF5nq-Z&n^Ep95< zD6a92S`lcKOpr|wBVG9GhF2{saz6a+81^9SHj^`MIboG)Nfx5KLs1+pLc9|K%~ zKjmM6!-ChYLvNfz&DW*4uLoJRN8}&|4I+;VH87`I8`&H;$AEY(MWpqcQ1aHl%joLw z#y#)`@Qr&*v>U(i2p;9p1PcYlZuAAhNKq;e24W463xV_LZWm@ZIDWN=h<`7Ig$vR| z0||WC1Q0u;cmuE4178CA0c;7& zV1^DC(!q@cAIX0g-hZK3g3OdV`n6`kaR9~zpQ2Fzu=#n$wI{yw{oeEf7^;QYC57?e z`$CjYfF=kCt*3!cTVDjAhrq9N>daSX?MCQdh7NIHYp&>p6Zv~>4aM;iD8wKQ0?c>; zc7U@CRe>phXQV@YZG0JtVQeu-47SuYZKp|sP@(r)___3Cf&LGL2ACe71>}sXFjx-I zd~aQB+JXO;;I(s1Foom8r$#mIkL}WLU0m!+>fS2WD=3uf^d8?v0{}Jk7&Zc>gVDG* zVADEr+ZsJW00>@gaRbNlwj#5#$PbeuEnq5wDr=#0rqK-lorGVVrw{qA80*`!rU?Rm zI5?8!A|`7n!4IK&>@(T8C-cG3A3o6O>UUXRMr}&pUGP?ZzL+8$F#7{xU1|gG-aoPH zuYe%IycG}P&ldPqDh)8gZaehgQECczXnu)T1WuPbTlAWE2#uxOB(E9%JsxmE-HsaE zR_$jp=_-@|Z}PvVz*HKkfVQvdA1^{@`b2;2SL@%D3Zw?x*YX0F;I+;o*>ekTz}Hda z=p2@7z`Qg{-Fv}qW%fOGdD`1LMUE^CX|U8Z>Osc;E%{rtVgOrq&IbhD7xW6Xr`x>P zE?B3Pkaf`dV6OII|$evZW2z*YQ14`hzE@25O%dX)X%2j*Hixvhd5B zY*5hl*52+Q&T?vMLfI`Si_hrdD5^lMwNg<+o_3V^bWDwhmL9%+Rz-N;7^}9A!h)=qI}@aX_xCGHI3y(O}r%^IRJzF|h$WnJ~&8n7{!2UER&J$U}6)5i9v&&7Cfa6fO6=nYYfK~Gg(BYt~ji6ao<$kgmEvb=qM%F%^+L+2f z1tqe9ms(atDqlS74I zKpiBC19<=DLmz7SZ8;8{k3SWyP+fV!w9%o}L~Lwno|{`BjO5!EURV@k|P zqa(@q3pI$vq*g>frV=d{SrTaK1U$cmH4KWA-;gxF=Bx`xn^iDe-;=80X0%~l78M1o zqhT$pbi%M&5Tg1%OeFC`R;B1OCKixQc79>a90pzO3erszS=Lypqo2Ke~!?gz}g4%E#qkAKS93tj`@4hA8I&B6JC`ELRVtQ&=D+$7?c0+1pjH#sUnR8Ym~95Qx+8}n|SLO*|c;4jQYzP+0#%EkJ?uT zo^QBm1W@$uVM*JH?x~LXV3>FTzrYNo;tGdy3qyya_74*716tpVFtn)!`4QrUqIEk_ zL&$F3LhI3kvS4+ATLQqUyfD4UF39@C5AM-n=)!C=J-~3CDsO@QzTR>%F1=ra!@0LG5mK zNpb~Zuk>G-_W^>CpMWi#0I_&H56EIHP~X05WTLSGWfCAG%VzrHC2Sv~V!Ghg8>+<^ z_{q>6vF)I#tiHOv|QSp$NYS*n=g(*W!dZE`nl>59(Pt;2iMQ7h@O(v%iSKDZgA*3{gNjP-vf^ zQlG&cu|e7Zh-EX9D?}?Q)FWE?8xDC7nGX(yEBzt!ZYMCm0j>tb7l-QEpH8HTv7+t9 z1WN&w8e22eset}~WSyu58sTAVO4$}6VuUkDRl7k=MFxm9!HiE_ZE#DvttzWnhL6S= zVF6SVpymck!~aL6tZ2U;@I!KYfnmGQOs+%q0H_sc5`Z{#TK0k1FYhpB3pfDegy+N_ zqjdv|0(;CE7K-2@hFy>|@Pe+e@Z~E7uZX3wG3E^#_GeCaB?nsgR`S7e68Ik^oZzeI z$Ch2IR_eH@=)FwIT$%?$_CyHmxRX8x1gyK~?Z zG$@td?*X<2rha2{A!jgFWkv5MDS-jK`VbeezZ@2bwvH@~;;s<6P}`5FYZfZUj0T3b zk9ADqNL=3x9eH5T-$Sp_`o2OOsolz*-lF0Q)ng8!Yv7MTQkVZ=`4oEByOzD#?t$8o zu!)lqkqt`OzpVftOQG|^D_RQqdLJTH4)xr-*JnL)9$0HtRmX!R{1N<|YtKiRQR~6_QnvZ<{%fU}yR5BC_p>E;Pe50LyttA4z z;ej3UIeAyt?9jGYCRD<>_hpW4qJv|f!?sCw?NiQe4c-2J6OOJHg$6esLMG2K66--M=Nl)2}Ui1L1~xh$iuve8pAFHmSJEUPaDPmq|h zu&Xvh_@D>g5V71_HY)EM#z|ntvyHPa029cYC@4!ruY*$v5*L;Vs%U6GLS8q;Ig;W= zh%diJ%Aro`;%a3JDSvF`5uY0~e515(;nP3p>5N=VM~9*h@k@>cQkdz7>)MDIy!7J*Z z$UAN!Z4={ag`}$so-un6b2M`h3)9RNN1?5UN_x6FKU0=n@rHwq!vS-)z14Odd!DaI zTntJnM#frGA$J!@Zj?s5=Y#-=2?DH+4ndODWc+) zK9Lm8D{fSl?ewbz$AxDRUQ>))`l5$tT5MH}qZUmW^Ssmuxk? z8ZwOOV+J^ddBgM?XzB{mzva2-e6>Nk8_|)jS5NJivtXCJ3gOvN$_rm%&`*i9`^!p!et;cK=I0)#uf7C{A8fx@1!#m|V=%T_aQ*#zEnio<{$)94|`xB<4B1f2wV zv{Bq#Tx7ZNKAtKRM>%npPruUucq62@O5LLn8(pK$vN zC2c3X@CZwYplL72A2jiCl!z5j&0@ZB$c(}XR0N<7lq7-t$qI~7K}|nL8|4!&q>(I@ zYBQt!7r`KETFn%rHeamIq{Vbn?I*Xvs4OkQHkxFe_`h4VKPLlrkXI zi=Vx^b_`h_4SURwCkg~c!>SYrC0VSPW6%NK?(LUGDYhZ!n(?JIWs95^WrZ)~YpR8$ zAUJ#NBpQ>i${+*)oxfFyN64$5bTp3j-PK4vm}%-Y9DIZS1=D7zro>khLK;^%951Gh zdD8Qe6OAetZ8v62(Ddd_W)yEr2Gxeg(HXL_UVhgYK(Zv{THygACSQRUR@M|W4B9S!igRaipuj6%~*r};YHtUAJ^tO{)` z%jFVyZ9Yn=RBRLycu;Z15%+0;`hw#KjDj^?B{WJ2Ksj{4#Ofz3t<)D3M%GgZ9LqK; zn21|z7rGO6%6hvOZ|mJ%_or4OkRFuz^ z2cz%qcPRCwSv}sn-4KN(nG%M8kMtKN0srIX zh2lc5Gxs7?WqWs~M&+?6@Ky~MI8OllDvmXKrR2RTZ1L)9^P*8mKs1M}8hL`xM?wt8 zg-3Dir@*0Ja9zP2dzwS^w572!$6Jmv&_NjtV&?dC<_#$pkw8_mE!9X2V80u|*PZO-I|D5a zj76UX0xJa&+%H5M~)Qv*iq(qWh^&C^zum9`kdkMvPl-N8p7%$jOI;BO02BT5o2 zE5V(FbSr3RF``s}v`H$D9bk35>7b05l!EeRN=A{f*y>+Q9BU=8Q0-I)+`3bD4gU~snok-T2JJkNfcsrYYhdp7qr zy!$@A&A(^%{5L&+l@!ur5?ZAno>TsXB^?`*BEgMWeYleA5PPnHku)9vCTOa%lxWyk zVw6#{_8I~%Ql?kT<|KIlO=2BII2+_AV6T1k#uk1?qZI!f)4n04t{ph8GOErdoJoyq z0S19mQo<;0C=rd>I;sf?Xu>EI;Hu37X3EKiS8>pwszZLmV)l9kZb5ITMcuGK3ca*z z+Z5YG=d*Xs?DYD#{hn`E;py9ZKrL19uw5D{w1@7ReFMr-Q01vZWpfxA9VqKg1vKQC z>!xl5rcF_}lLNvP#AZpcu{@$~jBpH(q`eiiWsXoKb~T%H6=E4zMg{$NLraXBZZ)gC zB?>~vR~wRR3v|nD%N|#FISPTZGhQ>H+gvr212PynAq!9pc=ua4po>rDhy_dA?Lld! zn5tZEubYH%X1J>OZ8n+*9oZKM93T|df{2dc1s}W!FuUARoZliZ$fV-7zTDmdn6>nb zs8lId7!;v+pIRL+SOCkBkFpKJI|BXy{!=nvPC`K=h8Oexk z9CaIK)3A6P3eE5M#^rJK@b@slGB78Av94rju>8d5WZ zII15$6_GHolqH!8SH^1+1{8uoO69FZQYFjSkw8aqP_YIPD50zsO@%P@<25uo%6Y9@ zy8vR{vg?bX==%DBC4-1l7ku;&tV3{QDo+8Paw98HQGogSOQ=(GU>kZ73A}zvI z*;yH$7)tmMLu36fJUE#1KZ`P#=?LT)N=<;t8G%X z3&3EqT!IWAt{)9sfk7mY^=%_dKlN4$)s60hK-PyB26mt_nq*Yl;CVR6yv0l-C8v=I zf@r|rZZ-)7^%G|U7Wo_RXEZaWpOv?TCb!eQS|_PG#+9HrJNe$<|JAJR2hyq#Cnu^$ zK|U^P7xx#F%VT3uXi8r}KkMI})KqMq2TKHouoGRFEj3LF6AD;+sVT)j=H+8N1_`A> zuv24Hf>xF%RV+9(AQdB0w?cVVh}h$MLTwt3)>Ni+TXufYz>>B&7vT2ADh)85>a(g5 zXzYGPi0E4kBrM+1dqD+V5@3iL1j~FJ0hBCs3k7!|U#RfOE`(ZPk4jbDplm^xYBH_% z&3qVx9Nq{N)@Oq0S2H0J2-7%X+3q3+(Jqt$K~Qa8fUh?2=rvFO@c|zp#mi9eI7R}Xgl)TE6iW_l|Uq+p_H7!>UfJ&lRT((t2ZA3EWk~sK8eBo;f#rFd^j( zDa|d$QdHVBPMi#8&q+M|%6-*MNl&V@A_UZ|R(tB=l&stvIVXh0P8 zqowv@V+-VBP`V1x$k0X-$$fq%tckC#s;@z6%x9F^CnlBCLMkCn>%t;HfHe$VOGQj7e zgj@cGJYR}jC3{i&$d}I9(Cg0a`AjEjXGsTfCr z%|fR>%#h`l`n8)XZQeRmNm6;T?G)9bDac_3ypE*y;`9=yJuUPwZ8%^V<1MX~vUzHp%S3rmS|&2INEgAu99HYBFZNbI@S{_(@5nKXLW>TWY6@T^9M{x+G|8$ zET7I81U4I?dm|y+{wiF5LR=%v{{W5NSQhXltaMy!;@iJ(b!9LCDL6C?rwG7nK6bU!U5qbAWv%WKWeN+T$cI>acV7V*dFEoVJ5?83O7F- z+{!<5#uu|96T8&>H&EELmf!z~dC}!s?P{2u*$8WJ%IYruC2GTwRaMrSJ;^dXS_`+r z48cP^w`dwhDPS&*$9D{mKygwbL^`4vNc$Cx!$7fI(zJ3Ocbj`b)Wmch@Pej-x!}=5 zwepNGkj37#3Su2yqhc(rX`w+1K$|61gwqfO@fKW=S5V-l4>VKwi!14!v$?oPxe>uQ z0E69ku@;<(8&TuIle>uN=s`mlAk4kMY;r-B*l41f3a?_TQzpiQ6vAidh>PfG_13vF&6ScUd~W~?us?%RtUY9EQwEzp?L|O~o-WjbgP(sQ{j|vdq1Pc` zibmKPbyji(WN(mghHf}hQ5RFF?ZJ2~I>N%V)wUXF;>kIj=^bQjD%*~hWX(tYgqY*h z9W}GZH@cAnaQez%!V|@}1RdfNSDdy3c546$nF81vAYRnqqafki$Odd-7PyHOrO;3}C+G zgzzbI3a;kacy(*?F@?A9T(-svrx}z5F!)Y!!nVir+-HMDn(&#cN@-|5pv=wDJ5|xq7%S`)RgQhZ$TLc6B$OlTkQ| zS89DZp|A>s6xz1RA^en&vZUF)F&5LzgLppyM zJS|psbB^W-ZP?AIn>Uvd!W zN^R8ZCATN2$=A{hugvJQ9qegPW;2-_47bTU!7S$q=My(xk}h+E_;J(t!`IwT3MNqg zr-@Wv6kj^_OVz>$tSyJbBaM!=Lnp)K0V-%TW~#x`N{`d{VCGBWu8wJ~Wb(5j^GH#0 zH})icvXDS>QjRKBRM~TmB|&#s&snh_8KmB~0ZQGZY;^^rU2U>6lkP%gLx2I^GTYq4 zNHk(P0vzqvGL?=MytrwEYD`F_lXM1>L|q9KCZP8f<|ekP42?2`xl3<`9e1kIG`>W( z5cMK@xs6Kp#;qGOGSE-==(<364J|8}t#cl3PYoiIVBy z@zy)7M`X*bs;eH8D^d8pkr&0&K#bGn!FNWBjSD+_6m2Wh_Ews1_5m8q0Mz;{}KS|IYL@nrAjm=ib5U^`F3`tIk1VnQNqxqSi z-X(FR(x9SVhg5Vap`u3}`wUi2E%Pi?Lwi^%6&je;%6mS@cwLw_(n94j`%F#75E&+mS0}1~Z zPa}B+RF+ApWuVU>;>!*nE_um4oU5F+DePTJ95GSF@s09U=+a9wJWg5$5$xiMZEMNcUCk^(iwSyv5&1FC0qdrJD)Koi z2W9JTfryZRG`g77oiP4m;jQju1&D{2n>7tmD|{i+EH00dNRZ4>V}>q6Aw<~MqpIPo zz4!sUS3tl0E2ArvSU?|&3fPJYc-XOYZ<-i4036mU|lw5SCIgX^k3#Bbv zwyumBUzvNjrWS5>2^vh)5S+%INb0b1$KH=b%c>6f@>U;;PTt0?)btLU^eZi_R+fb} zN??TjE*4}E{G-8~ct&N|QfunTHy?Kr2TN(UEq@cmoX<7kY;kS0$y9mE@hTZmor4q) zfa+WlTGZmrd#>!LQ&=b*Eimgc$*OTQc3B^0njNIZnvDWyMc#<;C7ea)_)Z(GycG*t zMSk&c1?<8{vG}tCHE5C52tLIdj6G7}hfhPm3)NUCF5==7GIWYGOaT95pJQI?xMyu; z)su}ThVGB>{03JPH9!?BRmO={8q2wyL)TVL5``^ zlt;2`96lh_W{1bE6x5EL*-*Ik?CVl}+X#(O*KNp$IS^3k&QYt`=ApSy%wn$&ZI(K38^Si5nao4lq2FI=5dkSNg-W!tuG+qP}nwr$(C zZQr(S_ifv@=Ds&E?_(mr>O@wZii-17nYq`_^;A}t)=;}RTHf|lMNffjDc)N)y_P0r zVKH>Sxq7Xuo3fRj7P6Wwjd-tO^v?X`?khU+-s@b}J8%C;#vX}D<* zKVja56Y_#B6NjvI?{O+l@1Ajq0zTlxsB#nruA6j&&pmNth09oHrnS zwv5fnr(H1o%9f{;a-WK|q9C`MxA6|drJB!`045HPm+~j#0rhP2}h|1oc?flXnN0cU$o*7S9`=8ERGAiX#f`N(@nu9-_KG<_3Eqau*Q?jQ) znUbutGv%EGL!7i-ol(ehWrtA9Mm*5q|B8kyl&>UW>}aWat>GN?@0U-3CqD~qGSD|M zcl+g>6NPiKYdMXWWdA^XWO3%)!B?~3hrDx8%Nj`xz0q^9I&54jOU1I$NI@i_u?3jtr+fIOFFKO z9fuI2;?#hR^EaH&CT8sN*gSw=@|lL}XSwq&@A>ov&=Nk$J9v5vZk;X!)#ALTj}Vq< zP?^{=nYTIS63h-Ga)K7eIV6RP)xs#~O0RU^_3kIj6OFle!~9aKJ~s?q4DU`A2Y{N0 z`#nr{!na=g@bO-`*p;u|w>J|s0Es}IM zTV#|Xc}aG!A;0nDg(KJ^$2Iugqxt1g0ufb|ddpo5_zZ&SUlm_Ws)#_QFbAW}Ag7ko#%jsrIfui+U&=)hM`*3`!D#Dc2=Hmx(9 zn;k64YvR{%pCiB01C|PG9Dp(LZQO=zD(W3I@QdYHycb!&m425sDU3wH+dBgESwRe&Tp!#q5c{GO_@(9OIL}3X! zR=r(9u$Ay>bD-m_V&0G^B~TYiAihuOL7Y1|-7yaUQ_}Za#V&$BVP>S(W|htYQaH7+ zY&e_&_ov2K+yMKhtZr;Wk`c5xq>vtf?2J$d{jnuZ)LB%Ep<(R)vJm#SPX1(ePmeNC zx)zEJ(W7Jz8ZZM{4M`O>#|r~DHoi~AR}|rjvA~KORdi=kxW-`W9H@tS{-g;CvZkqe zV5Uu1sJyrd_KhN?ro<+LK2J5#3mEn}4wM>Ze+dNa^Rl zE8P0v3a7f~{ZG0H5XSvrOm~C> zXf_N-`$ikFX(J;2+0WBP`eak6w)C|ESl$q;88yU80ERhv$P_EQ6g|3lTG_X!#{HFz zz9is+C5!5mWqh*6vCU~LdBKemtHWS%sqAU&N$ocWtSFwqjwaPt%%-(RB(ByN5)n9r z2}-x<3~w9)DRxT*bt+}$r7@{v<7$VL)$ck6YvmX-jYI+@HEYC(Jd#eU0!`{sHzd>f z`wS|K8sX)xj<-!D$T{xP#5pF7&PQmjnvvLAwE{kz={|yzuX}Y0rT6?>x<#UclMNm$)d{YyTikai&{rPNv zr8N3kN^{O<8x~+0I>U54L^N+{(?i}@23d294M|dfayo|#%>rdk6@m;3wlY8ib%9n1 z_sNDo8U!>5v3sjrLiq`WKy^hdelcFTeX*P8f*^uSB1)u%eP}nCV9f{Yu=Et^A0n6$ z5pH1hw-13oM|~~IwX1B3Srx2bPXTPDQ?tsBcbG!!i?ynkvjU3P@k=eHNwZ|?Z;Z6* zwbEGF(%0)($PQ4X4d7j$NC&|Ztdo|)j$m!xiM(!XeH6?wduF{=s%KTezySb24pl2nU6TD#Jnm3v8l^cA!fceYLPG1n-Yd!=-x#uXtF<27OV6{( zM8hSpXKGsot@rs#bF%Z-M(eQrgRj{esdQ1x+G=G(B#!<(nV*cK^xLD7b+_0Skfh)D zTh07B$$8B*LeI}N}1%^ zqKs)#xnrN)4C1{AD>mABw%aKJnnM&r<{lP^9o0Fx}l7rUBC;;RrX&5{5p| zYZ}I&^!e}JZGNRt|1^DS-4tZ48q{@sx{LZ%{#h~a#PAG+vM%{aI_jpW7wyUU3W!ti zvpbER>~*77efNf1g0uc+!jiM0#PX!1fvrZZs#2Kq3l)zHv@Gcgb+n89cyBU2hl=Kv{gB4i|?IL0wI0gx&(; zsq-MDB0M;UV*0>^YU|aJNPN3j(2n4NlNH6RG(QBcO8RfH%22*FgZ4BDw$#( z!f*A)b^?m`!oWKuWwiFc{PJ&w(z{pIiGBR!iRZ0D{S_L^r!+iD35J~cL)u{&>haKw zl$g9PX#!vs-_>1GlF~(MoPjs=Faiv>h2G?*sazTvw0n%7Si;`&1ShVyFD1`$cexd{ z%jU3%*BE^H{RiD`sC> zx*6|90n%fi(nFZvc2*WS{PIfctBY9^xU|SWWt+P^ zHNCRgFKaC*^Qk#bF^xFDnropr5XkJt-*BB-R& z`=TdyF5T8mySVC5twkpw0k*Lc453DkD7KK5VfQ_j~{Y3 zz#>ckI)@8Wts!N}yXfsGu+SC{57vsO$9%xmZOsf6*^MNdZ3)3Yp%>kKUEkdG7I|v1 z8XZ>hCMZ+pu`}?@A$|(rYg>d{E`mD8k@ptAnH1`pPac#sbl@tsp{=V2}GKAA8uOLOJ5az)dDNWFwcGoI{0= z9D)G1jPNr# z@Yf^L%5ygeq=E8FI0%BN_xO7u0zy|G^pB<3;uv?DO^ImGP7;`Kcs}ZzC9`qd zq9=n_C*N^^WdR?`xaFKaOf_T#kW&j^f|e|3k6`v%$0wuKOA!LHMpPX>UXAde*G;@U z`p74?ch(T6kd3rD$Fn7%r6x2&+oV@#xC$k2I%-|0Nf`|+rM?q!ol#s0CAHNOi}2md zN-DGrZ-|D8TZRNqwjy(#I^w2`m#B@Yr8x+|NRH!r^=riv6qi@`2Mw#@_I~?xl^00a z!J~k`ZvOr8!VhnB{-ygOAr*dT&M*UrKi*i~ZF>T6f6tMxRVBiA(+X?VTqp5=@!k$4A2M@jFVv%y$H#+6|j%mwjmdwG|R8j8AuouuNb`L;h3BQ}AMs3Qc zT4i&SJE@~m%05R$mvm9GlNZ}#k8Rp`nl}_;VkvDE%%WZ)>3KNA{ z>KUHq8i24NKO6Pz)R|%$=z#tRy#s<*iJ-u}}RG#iN@&YTY zb9)v%R$BV(e(TEYKBMjw=ii(l)wn5r(IfGi&NNKbf9CbgF!X7IqxikdrS`obNI!%yU~X}rqqq- z<3)Rhy-3GN-jjONM>}8%o4MDTr+=6^n9AzX$n%}e5^}(~QaL?>i+;|lfNszygyqeH zjjo?*!AT8n?4ibbb9;O3PO^$H6&PEA(1I~_2PwJ4LZf<2I5ry>Bb#8MqlA@ScgFBsf?mE-1>BvU&1CH zV{i78=I3Yyf)bNo%64xsk*Hlj5qEj)96n-UrGTsPrB&0!%b%rB=n@`Cc7VoYwek~u zX^u@qUabAlx!7lfFvi)GcNFZzIyjI^BLtSsg_vL22;jP7(D-CnH2zTjdVn*6VUZGf z<7?)z7X|>K5UXSUqJ?duog#=dzTJpyDC{nuzl*=JS9*2EZQ*L!W)Ym!IBd`_ak3q# z9{fd%&lyr{gp8gzp{M&=2TOcO18N{r`cc7`H93dD+&ca>Y?Ke3Ocy|8qZ7YZFp!kj zyZwdk*AoR)mddSyNI$So8-s3IhkMRMv)>J?nv1d zIB!JOLB;S~&d_?lVh?jdw7n1ch$>EVVSU(~q8yvL$VR^MZ@oapQj2_br)aCnX{H3M zeoih~G61jM;c@4=Ige7#Y2=u#i?mhpvGZjK`w*&a_8?2Vgpcd6;mJl9xHRi2M}gO8 z@$jH`=Bb;qy&e8=nvSibwcV<@)oz*`N1^>xw)pUG`Or!rD^KvOFt<94WuJmVh2xkf z038#Mk{J-8&MuEJ_gIt_^9cHwMN2^ISwKnTwzVWd14~=Ai?7-^Rn{q_a^`C5rE3g0n1&MVM)eY+`8CtEPRR@@+y_d)0)h^@JR$|5+E!%4tpi|oLiiI56L){Wv^o@^?5f^*ocCsrhbQCJ3S`i8HG&~s{q z_OZRliHIsA9-JzCRNVgfaHF`+cK_G*XfCMSjrwR#2t*zYLp^mYJg|cL#yn^PD(9fw zUEk+B3DuAjE5fs(Ua)RWO?aO>FN<<=q(WZetm~?po)GGer_;kSH^fFW3vfwe5s@|}6ltGecd#{rQZ9m1bK71OSyVn=GEfWr!MwZT6Fs_%k34L4` z=D5^@iPU5Cy079>K7R6_44V$+4*!Sa0qdV!sYW6aWC$0H(fReR(QwT4%cFv=(O;tzYQ<;D#*AYI{M1m)P zke~+P&z~%R8VBwDUPq!Cudf`@X{2aWI2gn~MkZpT=t;8N3^e0W?okn!dB%BrGRK$PtH{2iH z;^pTm@(WFerYFR#AWt7&EK6?IXCy`eT-bulZ)|A>(y%dY8GsZhv1s0yx>V4A%xk0g z3H;xhpKhJ{te@tW7bOXxe^guGIU|rvHwa`a-zU274-qEJM=GLM)S9JQ3 z^Do*fG;iMR%&qAJJa(dOaMs*n&4%SGYi8%F{KzphIqqZaRvY6n$aNbJeYyPQ2gFtf zeA!i|jB}=7+6qhAh{uUg8tKhZw!wc=mmXtV&)|xt~vB;)-NW0 zL5%ZD8jsz{PMVAlN@u^odFdY6SO~+eMUFd7?(YOa`g2df z(__T6hRe*S(yPZdJ!$DPVyBW3z}NUrBC+;BZyH?(@QJ!dreuKlxu$2|;07ps`;0>&I<^MbX23W>Ro8jk5WHUQ)-*P=FG3G`4A``2$c%*~ zU){bpMDr&mnDy)ZywNt+t?f8gnx@>jDlo^6O#=2le?= zI*~UoYJC8XMU{qhx4MW$EBVS^P&&qb$?wQ~0I{vNlZnbI&y%qEz$Y%^l69fTy{?|= z+rS@>=MQ1t7^TyH>K{zMF^|!YuVaJm^RVH$#>)^hg|c8MSZ2Plk$2#=b7sA9c&daJ z95cOfj9iI46;ysiU0O^|4~=B9D_aYpQ;%LnIT`UNPPHQ(ry-j$wKyd6HJs+|LZ23& za1I4VMLkhbsO~7mI)+CYZ8;HP`eBjh))&h0dqknPuaqN?h&n3R7H+w3Fxbwtv)WN( z%3vjP@3>&L++arREGig(o0K-piC#7sp>Xr)Ily*y^NDtd{Hr|9I<~y4m46IP`uK}q z&RKEV*(}g*Ce~@bA~$!v+G02Lu!pnyr22X%7rM8E3SJ5w8b%0JXLHn8vrJBX>wuE* zaUseQJ&p3WVk6|Gwy=}{)6F67xUuV3jyiu#cGIy1Sr3rE*U4PXqqr~0>$V_Wh9n|9 zx}4rTG`-+z{88m7!op<`#>&U@0%BFq3Q=?TwwUDs2pxd`c;2=ESqHqBUkl8_tW36y zXB(jp0T1)S94t7VYnt36htZktZFO2P{-b9cWWH#MwQf#-)S5_{%}@A;GV3{wl-XdC zL3eN&rX0)oK&2UtI>nA?w~%d583Ymo_h&kY@>?P2sQT^Z%fG7OjOJKxM%DFJve96- zTk3p%TL?_6tB+IL&?H_0+sCP{t2c3k6?~cw7AcHN;*DkUc!e_*<}>QP>rrZSL6weD z&8@bxyeKM~3EB$*)DxvAo@}an6QZ4*fwKMH-l64)m>K@5(e$Wg_|jGI#<|=)SD_fY z4d7bCzM}#Llu|)8c3x_?@-!jw6&_QniO#?o)YNBj++;s4K%p9B#q3+ph-*rdWx|JJC zm>(aGTOvlCz2U_8lf2z#-dPy)+4tEgf{u=M&u>2ClJoM-oy{Vuw*j@yFVDK@{P)>@ zp)NnZ9DQNIvd_J5ETx_@~9cMeHZ2!M#FFsZ6Kh?pZb zYM>?>7zos89_lmLBP4MZ}odSpaDC zIk|cHXh15~D+?VHH16&yRzyci{XZ+Nu3&*iD{F0`XQryJO~qiYr)zo!ix2lrUtDiT z0q4FsRO;W@&{l~G0D*pHFk@3&*!aI+RQrmEK5lP+8-sS^C>vXAeQh(er$`|R#pWzj z*wg3v!2v_^jW>%&GS+0DYp&$43$TTTk@>U9EH$u(4O#}1yw-3>sQ$7$L!Qdv=#=KK z6ZfD*rrq#4s$h*Z4J?9a@Jd`Ll3EFTt2XQLn$41x<;2#?S_JdnH-|HUmPnbg=xX^^ zlx0c$N(;sMP}Q-xWeI8dS_W)ic&P#Oeuzo1l4wCW$BY9(hWxzXi59-7cOCNq7xezn zNdPh}x;J!?&X5RKGc2vb8f0%Zb{Se7{#~@}_IFpv_R|H37vnUE%Qt8|@E6CyB(;jl zM+(Ev>>@=&Hu^5S7!w?f(5pN9#mE#5jeQOt)gR2CXp{hw-7x|; zfj;0NVHTalJb^S>xXJHf`z?Mz?4N=6%g6=&P5jMj8|q(C`*Un=OT`ZRO8&D#>+2b7 z3t2p=Qis`hl@rQI1p%^GY5qgX>)Tk^S?m5;D!@Mqg)M$-@E3k7=h^&Ma-Od)?36&z zPm+5pS<+%c4A1BA7++&NNCsk_DT`O0jA-#*=I~-GebqBY3`82BXE#Uu+|@6GA=F4* zE-@qRu`ctPg_PWjYcV#fGu$nm>qGql#Ih32kE`SK4{duRr#bf%RI|TD$h%F~-GfqT zqBQJTkMSow;wcF=76cA*e`q<2Nv4RfuOq^12)qc3pwoy_v5cX6&zNV(R$)wPYBY{a zDp9FB@!%7b9iA2>r7;z8p>L?fuh+T!o~J+u+-!ae$F@*Tlj+xk^10|(mbcvrsixY; z=+jg!l|id1F;*IR8F=%!;@hAGd>(@|&7K6wnU%;~FRk61Yt1+yGljA3u0_))1*QwdXKkS9&R%t`Z@L;Ygp1#duKEU335qa&~tq#!h%M69Gr_5G}2 zW6XqO`ON9Vt_iaER`!deJ9cXL{WiRlQUq0Ut=_Jo8?e*uO`Z%d`o&QZi_vte#xIho zZGU6E!Nn;M-;LO;o@gA|M>X+^0Poubuy7vi%|6Fzt!k(^1;{>pqF%derJq}4I+MX| z-vQicte9CcM5LS)jl8vP#y4*(3hgzEEGrSMvoASfCa&JM zrX1RzzB`*u_@JHTn);>>QNAPfzTV)`_f~gWVoJ6nYWVGSV%TwJ5L&m4`=Lp9+YDK=lVrlJ@Y8Rh9c221}Ic z^Cmg*q!IhqRtB-jKDeL3(w>@Z5{YrHSl*~bzvTma>aNI3@L|hE_uFAnentJWnN047 z%bbCDHIi5&841Hnrizm|-@L6^)Ih2bXGuCI(H(%BuxQ-%`C2Rnky;IkD3k)?tV)6V zuJM)5Y^EwV`hOEBlHBn7+*>vmSntkwFe3zFu5na;l_0{iR{-XhYo|I|pslT`*GV1H zJWn5iixcAU<-Can3b03)~Kqd_eC_fAXx7AS|)DaiXd z5n#l>#;@$cC0mD%%`9Z6>~PWI4w(q#ZqCGjNHh6MsiCvz-G(hD6TR*`VjNEM9(LOe zSYEql_x#3iH6HNio0yGQ5e^ZygTP5XgRCVXev{m~Rxz1DOZJ$y_uMgvq{6`Rq>Hxr zJW*%PA}tsCK1bXWJC{8ib(+@Lw7wiv>*S*OfHg^dbY?Jq7L+t88PWb3 zt`i-sIndotd<_z85-)9GdruoB~=jTHLkE|yp=lhSgPBre(VQ~HRu7h{(u$*Zbz$)hzhkt*XY`LhIprAq7Us}tu$_TIsmAmjMEvjGJc=HgKu5nn~@Ae z)b*_U^sd{AgQ6*uwkfqXv>MZahH&3k1u@u@epFfaC>H-iU!&^ROIpCy*P3Th<8$&Q z(e;(`^WONCI?Harsr01IaBXqG&8_wW;WD#bE6iaj2~;#SsRXW~>fRz7$qvu>n=bgJ zB@XhKYC9be%Yyd{AGFBXrylm~Ornhc2CA3Fo$B;?ghAZ>ebZWwen3ngWfry7KQQd7 z-hfGQa6VrDC=vhe1UH0kd|(Ihk6FKJgm!v{B2u<%i%O>zCMTCHZdtb+2b-4&87Y0& z7%j=U7S|UOs@LTEs7nfVZXzWQwkWnFuki8{MNK*vb*Q0r3bw(ov2{0Vl#d)m7zp9a zo^g6ep}SE1hybL+7yQ%G8*=d&{0m#q+}r|YLjOaV`9WW$j>gXR<5%n)e}4yl27QKH z4F}uR=O5#6c;@)T@d5C^0Q~rWf%6UL7tSx7UpP09{=dMV|8Fdq|HdJ|&+)(d@u!Pu ztO#~Gw!hm_#^z7F`Bc{y<}XZi7B=<+6&M0yVF$Cr{O-1~v3~$_Ui8lc;lBr$?S>&_ zVXdWa{$BnlNX7n6%ie}{rT-*=Km7bY0S&q8*ZH=xK)`>V?8Wv51pe$^^p-ya0Jt*1 ztA-QI@V7WW1NbX`VIV&N2>R208*^S5(7)`RA%KMg415b11OUi+1pvpd@k{)(&mjM_ z)7T>{P%!k0zx=&=eb~Lk(5pMe|AZ}2=sT?dvVb7$JCoz@b;3x+2Kdqb7{@e$~*1ygIhW?U(zJ~+yYr=75IIOnp z`)hv(glQ5C0e{sX94tWSZ-Z&#t9}dsd|@D0EliU@2oyFQ*efhMPQUzv{Z)W}$=;8v z?bi*{6gwnXe}E7c2(0h{{mdWs(+I%+(}4dn(?CBT0{sjQ*efUW9Sr)BKjfbR_-(ch zuD1K`w4bJb(C0rum{wp}9|)%DANETDa{AB1EZboUuwTKy02V4JOembc@{9dlfZ!to z`MZMu)5-Z2{1dPW0V{5xhLaNv{N4T`fWKxd@S^4Pt^phSmrnn4Aiy6Qvi&&Qfma52 zrTyvjEVd8q@CE^4$&~Y3vHg+&uMF^C_C;)*SAaFRQ0OOw^9Qm0qQHN%zg9i|b2X2H z?HByHFBRvnVgvus|KAPT|2^MV{=Mez^hs>DB)}`fdBuGNtjqpIzW@LO2l!d+H_dkT zKdTn_gM;?Z|6W`EFZ@O9uO{68U91GbIwyer?ZwUn!Zi3|eHQ@dl>z-(AOK;S`iy}8 zv8e|B!2kDk0N^VF`K1AVnKr&O_&!sx3h@;%O@FYziGP~ypsVHy(*VrzmF%!(46H^2 zzvcJ)Y6N0`Yrwyk>@W>Kb3YISg?+yN6|duu`z8VZbH{fNBfgz%u%+Kmz#jd<&->V6 zWA#`2e>eZN+4}DMEPe%kCK!@UzCr+)qP|-@2Kw)L(+b|T6Q;hiF3HaJ9p?bRY?z|H z=%WDsn7PAO+kFHV0MpdpVgE=Dm}Ox0FZ`&l5t#X{0XY2b-~zvaP?%-dL%-l}!GiZY z_@(_(0Dvp=Z?gpe(*y|cm2A*I74`u?^N0OW0DsOF@Kp=b*aOyO{UjJrSfv*L)A;>& z2mtVvf&A+&ntx!(kKHj-(zHlq!*g9#dFcKiqYVsKcTBa$cA!i|lhiEY4b5lH?p-+) zr+jdn>-}r+izOOZ>F1o;%lih)P+h~-0}f7^Otom*nXf)?+sO*yHCzBnZ30?&REfqn z@C`79c(bKZ^$X7!k4RtAe-2h(S*!X86VW%xmNQGWq3Kf2U%qxdXa*=TR2Af^mr&K7 zq?eCl+!!x{zAg7~=~0Rap&qpY+D!K0yThae_xF+Ci?N!NYqWMkIb7dJjw#k^$woMX z&GyBOsyF}hMw@<#H;5JP$jj+o>*ZE~}`&NP;c4ty)4 z$792`B62%IMf%>8-|T(|p$S?5VeUZS%B^j+{Dme+)_Zn}y+rf(`W&!76V1(>>OHI= zSHU_+i}9( zP3jy=JU9Kbpd-gcJ^-zm5A7lh&*b7*WAE?s_XSMzJc`b z+GxoaFvqy1qwAb@zim7780ETpJ(WKdR0mz|wluBXZsL7DqEnAhQ$&)%;$s+NJR-sBK{M z!&_J8&K@fE$M~t=$tXwE$fdOmm7b0IW%p6mJ|{!Ax55R^(@iy8F}5t)cg1C{V#SCp zbpFz)9#Lvd@B^*Z4@G9uhrW3)cA8fYTUKdNT6eI7%i4X!Z1nOuG4kVMjvpd*c_c5H zSs*LEGg^3?jZ3HrT)a^T(8|VQRUwtMgj01bcUp5~wr-sXp>*1eZ&XHa7&KhEW|o8A zYlOfrfP_dIl(`7L$n7$yI2&>ida^yEwc}!ko{o)#vppO4TBKWNw*_PjYpkmC^xo=3 zW265{B&!3L5!o^Jo<8=$MuEQ!XN8HC`p>)UVCcVdy$;AfTc?ElqYwB$wGH`S1w?&U zePfc4KkQj*{-;p(zfHr00vc4El--2P&2XrcXv`Tvd;@E7;F!0bMlV{F5C(VGRZMb1p~6>j<@o^)xAKY`0v z%)1$c&7c#3D7^nzjF--xtGvW3Sp_*l33(#&7cmN1QIm4RWsoT^CoA(Yk@Lciyf zB%k)hi?2oi4QFQF)HR(YI=jWPdDu5qGj`+9mV6aY(>r+#(#qM@HZTLUmmr=>_Jl2g zQ#i7PsNd0xp#_V#W#-bWv_r6aYH)pUG5B`MlLsAQ6``jrjMdodxomvnmKN~;nCL(N z|59jw`>+cClVMGkyP2x0VT+YGZn=-pD%O$hpfvOu0t5(M#HdcDcRLo5;4}6HB+D}M zm>g}(-l#4%WHZRmYv!sqw#+sZy_Q))T2YXMIZSAUVOZWOkz0^!*W|2Ojf%sk7z!h0S z<#P~{O;`%#7E4g^ZJs@-C+Ct2ZIcbM*A_v*@KzzBcl4H*`edE46wjl~VA|H8_yDD3 z<9v(nyP4E~jf|x&+Hf}0Mq;02`-G}^ysrI|DtGFl@)WU z&7t|^!f`Rh$@A0Xob3MeHjq$dqc+oBwa2rsj6-$uc3mIYRvbvjYz^?_`sdg4N5;?e zUCgs}AFSNWzk8{%p*_cJ&5yOvxG}<=r|rVZ+ey8e{3g8oRF;r$S$rt42}xplTl8-lM`>6;EVb@)&PXGG>qV)T*``azM?nF#7gs6 zf<}u{R;T3(a5z2>JrP-iFrpEpLd`;i+pKqJYHz9a>#OFAYdcy#Zg9N+j?#fPbguIk zZiqXU-nueZU3Dbs&>+thdE*4dHnUJtg|L7nXr76>NhMLGfJeTu8s(_*1OW$CRB<&X zRq!QdSN}7hV9Dj~n78X%jD(L-*w0u6NiUU;m@BGc*$R%I`{X37GOaczKX>o0UCZww zU4Pofu*l)e6wR!JFhL;%N$HSYh-H7A#~(ypc(Ju`YxpQ?KS)`|-<=3SuQSubzBgM7 zrlVNoz4T3Pb2jI;Yh`CdTV8jOaX5(YzJagk2)HivwpTcWXZj@*kBb;LE>_I+hf@ z<}r-(fd|-2uT~4buxlLTVTAS@&Y;0O*EK3Cx87~%^MktEqS;*7Mk|0MK_?13xn(rm zh3w~x*uOz6X^8%zWf~XojOYUi>g)0we;XILj$YxVR|yD|&Q2vi2=sD3wrU?YHX?>z zXi#@F(ntA02{zutw#?LFiZF*@h((^Xkf3oOO?sj8yA@<#h0Ln#YNUadDBq(#OIQdsxzGLZypj9pE0ay} zJJ0kzX9Xn_4F7Addw3)^aQOt=$9 zPEbULGPyfq@{)3QaL}QkMh2MX`|FtGoQzqb$P?SCnvZAd=5rMy#Z_At&!xt;HMYVj zb#Oe{o7JqNtoanlWUe+p&7?Wtrm~x&TEkODs45ks+R625@ri+?&h)YVkwEK?FYfaB z%n%#*%FCk>q$u$S^h-o$<)8!IRcb?a>T8UGW`zqzU@16jl>8TJza-oO4b5ogmB$5- zTWpbL9y0YldtMBpn>w`b{wD5z{!|UrC2`;*V?(*+Ih9BPKl`-^j&G}6fsTs0%6u%X zcCB($oRe6q9q-)_PIxD`;7~!V?Xb?X_-)%U7fP=89=6^ZLvjg?Q4h2>q%Hrb9vdUN z2P}0tuFj zs`SLFcqd~ze&>UT!oCL*27cc+=aWf)rst2X8-6pShTNGI$kd0Um?SqUF3gp?1buMzY!YJb+mvOYFPTf118(hf!xu5Tx=l65S7 zzn)8>{pLP;MjP%TCNxGl|#OmJVYK5Q|?yrwu={>GDy`6WJ`WW3Bf z1rsEz@2f^}SQ)W)RQSgRMxmVl|#srQu=Mc^d!LTh_={ ze>(zYW}eRPfsAJ`%4B@qZ1rdx(|u^t$HhWKG)%_!M}Pwl9fSRA_KF1zvoq514}H1R zaTH~guvD#gN^wh4D893lE%IyuRYF1H;oG1C3^wz4V>)Re-k$0`Eb{#rafiI?4NL!9By*5FtII*ona<4I>oldheX^lgzQy<=J61?8psU7V?r8CnV zlNH9Ob_(hfcx^V@$j29|OtQc_AN)`_QixeY6k-^xXyR&{J}a#vy4mazD!k@iME6Av zS}CJI?pYy~y|X;O^T11pzng=@a_UT3s{Y<>%VI4@?5WmS3fz8+_T!{qVY)@ z1af~iu1_@y=z>g!5d|E!ul3zuuC=jS9>O>_nWb3C33I|DiF=<0Y7Wz>Xh^6GFU(OJ zxWCgIxEZ3B@$S)f9;8Rh31sDjC$}j$TQ?~(FX;wleGI@7QT(qaPA#D^zqlGs2c~?`rZKtQ)oF=!(j8oV58bF@B z0&#Ief>#oYg`K*+d|L!hhYTYRvoreB&-uyr{akxr=d(UKBPL2;GO4cGDwRh{;0=5b zt~(lyX|OxFmF0p_M?g1nkJ63)Fi%hq!DXp0u;Pi(N7MZMPq!@-Gefo`vyPCBWf{fj z*n>@D@CZCa2@fJJ1tEEhe8>J9aZ^RmpivNO8vu?d4>+o)B2Ibq%X{zPjGePZzoLx> zT|MBu`hd@_?2zy3j`?b47L%1Y=YQ`}A3TQ{()eRJT(||Lia#$MWL}!`!eT8~S?#n={K5E=|BjbmA$N)KyqH_TAQJKHYH>#DXn5hJ!e+0GTbe}>_H*HLh# zB*KP2ptP`r2=%CT-cxUF58WF&?~rt~BLm)0fN|-Bk%O*Vr-YRnluEs164gj4smAx_ zQg$z{-Os$I2CQ$P%&l?Z zm>0+w=6lP)5+{D=A`f`&j8jT!UhiMgAx}OdA}`wdXkZa@eP{2VTD?pm^GTXibi7l| z1x@j?RSACbOVy!7Q{Rk+=w)m4(4c6S-Z(6JdK1TT5|#K?m^Z~Xq`4(JW+Ide$Pwn8 zwy2ZrU)L3p#!J1m{iZActaD{S_3GjIEZannw5?GJ2vQ!p^a;Elj1_S+5<43~AHoW$ zw9@U-cHjeRl@V11<(}3gTpK8=20L9ecz|q1B`bB&kv;a?yShGYJ^Sbl12>cmuzqmk zAWg(mJX{HcAUT(YVWlL7P~F@zt#wh!!3nh+?#_Kk&9`XoEBn$o#4vQulC*8g7~_F) zn*@>s-2UJ^(5ojoxUquWX2>${XpecZhnGtQ2xib`@CqF{^qDNa)vJN)*b%-sKhJ2` zA-=#Ci%WtON{9yGv1V}%5n-~ux;~V8;c|5OX0_4f1P&2k%aRtjqU|gG$*oEuuO0D6 z#i);{-p?`mEk8Bl>T`;0Nf+Eo!!Fju60BwLjzihKn&(EAt;YS7QvUbj<$yij)v)19 zK7*!Vhi#0CkJ=4svb?i__7xmvHY@q%Y2D5rcc{qst=bCMcSJlG7CoAbw5q^n&#H}3 zB3K=_aOcW0lfn|R;-s)eD8At6lH(U*OsihU88mZ?n9|deQ45ZqCYVc$-~A{`Io|?j zURXJ8_vQJD5cH|(Xi@d|%~j$IPn^_`O{D;`VM4nU$MQ~YnI6~kd_Z6I>utE&p_6&u z{!LgKvwyCoO5d|#d;%XOYQjX~m@Cn1N{$K*nCiPqeIjg3C#xHei%6T`q?oV>72nvZ zh|stI*mUR9RDpvsrdIEyToVWkmB8T=%@lI;m~bo-tvBf~9TvK8$jBxra6N+~Rm9^F zp8PXgNvdI|jpcLk8!<@U_UB?DUf=FJ>I=R*%fPJSO4DRz=Tq*Rt5neTA~~sM3SnTZ zt2lH@2S)bZ@Eqz)*T^Koire#*B_OZ@n-;g@l9h8f?aDEBi7?|-!$8t1oP?jPAA}vt zhY+zgsaa5@wj7A#5HJW+br%=qK4*HJs1e?{2*>Xcp%2AS`LMXCI;}XgnbKU|{DPub@49M0vi)fco)g!chkho%qr zqWpH~JPvzY85Hlv)RTC->1I(9mDgow7ul_pTgh&&5w^UU6cpX5O{}V5P#oAwQsQ~Y z85?@KG}~-c*_K`LWFmVmO|;T^9$eREHrt;;s$jZ9M8@+|EP0uG~}3 z+7dS)T&!h@Uk`4d*P^D!HEyv_7-3tYf9lz}K26MZzZA_p(bu*{1U*ZL0y5B3B5I$n z2fg<fH&G_Ch11l3ImrBPg|OBe_%@EdxDPLX&)H>hzUSeQ(a9gt6j zHCGmW)0o(7X_{Y;cNa1}CTT2VlSf^F{EnnsnfdvBARxmyA8t0o9wef8y2{trzX2neUVE0lnD0#TcB46d5d^&5CcZ1W?*_E3OZuI#;o=O>Kj=v3pZ%$pJI}Pmy#0A zROvEJpg-eT`NmV?lxL%kBbkp=*G0o5HKM3SlzOtdQzzSK)S+vu< zX?4hor0{-c&gV|p8A=Hwi9#}_ncptvov5n5MfKk0DdlOD_{W|+!|U+hB$Mp!aFSPi ziGA5l`%OG_C27&(YpMvJN@;lmOT=LJxr1n>Y>}3b(B0w0L0E z;?6r=623KM#VP|EJ5bWdAp4`JUwHT|!*WXLk})h&i3KwgtKAs6g;G&L~B>x`(EkM%0ye}G6 z@rsU!pl1pgal->Yt-0+*dDy-+H835kl2fP*<5@J>4>(2-Ig(#q69eC(!SRO4u$)t` zlILvr@)FyZ(R*#l{q#~x#{6sb`l_fXp&d5?JaM?(1TdW)Q&pn-@ z3>m5WY2!5^D$7+?cLiTjCH%S3Qni&Il@vp~k!l^nII@lxy#}UM*X$j`9caIxxYUw= zs;!&UZ&#gWS%Dzmb(;&gv3ZFuL8i|Hcw?n&xGGm@TbGc2^KHu-Ymbc z>8#t>P8TGcPz*x=iS0a0f}B>I`EWs@9%+|Myb%i4!@G@yE4v~vXpG+6vLd#2i=V;3 zMtLje2YtVBIL3-|=RVbflBdAmd-Wb!mp;2QWSH^sd^I7YU&o}d1_yjUJQ@&UtHzV; z$pX4=mV4qf#=WfFQHwZF10Y!Z&VG$fnmp39%<-+GV!=lH^N1sIHfZwelnJGI2FrOK zcrh2{Bz|tIMJ#>&pf(=Pe9rNF}+b5Hj+Ov6M zbjO7rN0_^V=<%J<4;z=G)ZV>hTjK1esn6u>pP+%6t4Mby5OH9^%{6eWQ`@;#6nH)0 z*yiBowl{#Ogz@*!Z*0s}rrHMA{iC(|UFA@7oVr4k70<%@g+Dsjk;2sAOPmZUSBALf zh2~jI6cpHHXlj=;c{6dkFR#v%uby|9g6f6-R6KfP`18M>*X+stEl_q6M*<45SbY6E z-*2byHhdKvN00YWOgf26!YIn5Cmr{#*J2Yg=to`klU>D_>7EY`hQ6FM+8DB&KdOkY zhcp7M?`oOthsHUx$aYUj2EjyzqA)*tZdK%NMZap|j*@{^pc?S738^!CHWTD*4oDeW z_-x{lJ=-I;4g=2fWIhs|Q7!>2q<>g4?mxvI_Xp9@cL#a0OCLAgn5S|!SH zV7OuD3NT$!k+C7HTg}YZv#pM;10mzg6l0*cJ<*+TS{SH zte(GhsSB8xdg$^t;6(J7_dSE(0R3sd9cv!z3lwaGcVL3?-A|16`SL-IwY?zQln~kn zdyQvQ+x#Aiu673-G;se#{cb(tYC16Qjk2T%YF1=Oph1N@5iSW=BW5{v6J&|8)Ro7J z)m4$#g3%L{Gndw)pOTA$G}m*=>vp>w_C|s``MEvp@QEY&R~gNn>zWz)?M58p-$TfW zFB*n5jF%9zzhr`@W%;7hT|va?fGfPUO%Pdg)>OH8JOklQ;#7oC8|SOCdC+xQBug%Y zksGv{r&+mAzI&4O&8{>2^SRs` z>sz^FXm~2c-rmIy&R;)w6+E5*hK5=>`SMoUT{L#WG;GR-7pu_rYOsmP~ByK#^W`=Y0L)r<|uv z)3EN8MB0sHx5`Gc{_H2vKeMWAQu(>^-JJP7PAl?j)yBh!QbN4R{ly*c2&5Av@}6ih zNcYK?XeS6v*eC9M$oEF{2MOBrWj>72R~Cdr6K`>?Dffs+-2!Q;d9HK;R|tiTM#tCP z!>b@NrVESnR?^G8X|ZSy@1B)=3Txqii+5O{UKzrrfOO6^yq##Eaj42@U%b9t_J(X`va{AQTb#4nxF{9<+c^yAsn?Q}bw_0vr^MN59X2E5#Ty}YNUvbPeO~h)f2wRb`UT-a<}??cAo?1Q55XI zmJ3Q(9Q((7UEXKqDlUj!%~cV@0fptKJ_2_weB9K+T0o9bTrWQ>tMM9~R$6a5yU(aj z&u4$=cJp~f)m+^{%Hq;7$}_s$HcVJBT}gq0&K>V=6Ei&^KIuRrkM5n7BZXUF9>Rtv z6h=Rz_;_2_G+MZxFO8_a9#H>3S?m{dBd2yj0^Ryby*_B~j1V|{b9AT91tLyX?{V2D zwy&b=3e4TeMB5-L3^ZaM%fuPk=JeP^jtJL}x;>wEgt%VAs}hVkbsha&Zl=O)ARNX| zYL(CkmGWen944gW(niY}XM-miV%3K~U^HWKh$vGto*2wWacjBneeniohU44lAMEsz z`haV`9I#`cUQ(3NIoFZr%HvXe(j8YM&{XE&){BIHf~vkuvnd!NT7Edtf)*B>EEaCv z#^j)!PT^(7V;Oh_1)!y2{B%>m4K)sQ=?8Y`0XyP+E_M>TD3Zk~Deba*GR$K;m$XLK zOef|EM{aVQ>;oZxe6d(WE;Q(S(KnZecB8AxTQyY~JlP*%$w5!V;C?SqM?*WB_w)jo54A*A>Z`1ygG z9YVPlt_b7@FA=Cz-T}6UDi<<1Yw$noV0jg)?lm>q840><1c?yU*icPWP&e-L;={#* z$f5kCPF}4<-oJ1`o76Kp(wL`kz`Wq@q!++y%PFn%SP~$&&+FD4xN~$3NWJ7b|E<)4 zO}f1w`StBh{=I&~ePfGO$%V-XI_tYbeUjQBE8gR|-0{3#Oj7yKO{3dMh6p54Y<-Ms z@8(BUbk&r2-fY;I5$Gyq{@=YP6meGBT}n)|p^>YHen#9}vM|3fao0`GMs~-4Kh2z8 z9lvRBb4ev^i@0XrnPEa8K}Qdl4+p1G@@1`C#ahVGZKwuw;}JH_qh zhN$Ex+j)Spp7I8Y`W zuZMlZi8=+>mAfj(jli%OnxzCzf=T;1@6b+|?q_Khc$vJ9OaJk0bkp9|EyRUfnw5;2 zMW+D&TXP5@Y!+f-T%jtrpd3Wzr2N92E`VEIshLo=-zz#@tn>nVcv>x1y`RON?Edq$ z)^-vk1BG)&mz+WpbrpN1G*py~hEClksj*rOh4$V0lO*Wt*qItYC#rarDC)llgNsu>-a|I>U)Ma@menswsudP z9)#%Ws0n#Z2nfaoLjkN4j0whDT1nYY71skjvVJ7MJHa2G;=5`-T8e$Qi62oYaEM-a=Ls+TiFQGRUtn;U!)>8IU&{HyIHKvL*tBJm`l9j;!%c%GPsLl0JtxW)C(fg~f@7#m zoFuwm37+7|-aZI??wOGeCr>bu&Cs+6ie!FbxIV&04tqp9caVzVS%SwjMxVzX=NNl` zHd)1*V9X?t<05N95kHYL?f9pAb{{%emC^;Gv~hAY zoSxxqCwwFqfTwo8w!fQ)FK?qSWYnblFE8h_Nqg>9x6nMNbUqdx)FF11S4{9GzwueI zzp&$5`4L<@7Hq?j$=1q1fa@Y?_8W1dJLV#Mb9bTPY&=drTpJ{?KpGpCa#skYm_A z4pL+2QFku}WUXDlEF^fYnfZ*fTOcVuiv59)L1gj4d~ZT#7Ux*s9#Md)VK6G{nGAgkMcyDHYP5lyX;1aGGd9HsI@>nn7P!Fgl`FNyWab!^#ow(>Ug^{LHD z1|5+j{q+%J*M?B@5=$jpn$gLg|9v>nykPNK+!zPHc7l3?mGazOt`Mhku&>#)kDC&4 zO%ewXxeSf(vGSC$))X?u6cZ!9ji_j^=lDB(H17Gl9%|b3?l*)D^#}iR(_>gniB^M8 zbJwI1Mk)to!qxf!&;QkuD|0V~AGU^r2@! zs_JkOQt?Si+rJbo`1tuHw!0(Zw<-PM3SQI-{h4;earkw(7y~0Vs<)=zh!&qF$&s+ykywm9)!secgIvRz;p_i_jQtT#nPozb$5uV9%w2 z8Le(0K;k*1Gyjh96>$@)=J3OZL9>IU6>9dOc)nCsOCAAY4^B$4e?!@3iE;%-+PN%x z6~o`EugwxZ^i|)g_AmOb*?eXDGN(kc6OPUgcf7qao{bN&QFkC@2cH`u;QQ#E5??V5kZeWPdFA_JP&sA1mgf@tR^! zBG`JLaWlN5h_YI#(SV+fk9h_%nbSb|;g36~0eXQDQ%HGCwJB%va4JjFHJgbxNsq5Z zPBH*B3qiTq;J%H+WL{+v%7D|1#b2yDXUWGKo{y%8hUP|DRwddw-Km7erhC|IV-@*g zWE=#-tD$AOC%XuGOJ>&vI>TI`!U-vC0_B=!6M7o_#RNB^L7(hjhr8vnPOPUhF*;rA zQjFbn??&LJ`-onwORhQuxMqiCZtH08U`sukr<7HSj3&Eca`B;SmZYe|{lPczS4>zy zIR_L(yHtI*e!7*?Z*$&}-vI&XgD+0$=u>@-u-eAA3)y43z|iJ1UJxM`+u|j^laodd z5$^Fx_A~Do$+tX=uX3SC@(9Y8$T>*c3u?eUTfUpGH^Xb?nLVxnx4U(w4!7pVd-a`^ z2vZZZ9TJjII`DI2R=2wR7e@G0L3_*8^+f7hj+#~7FovGHA^1YRB!0q-2YEXjZfU?j z)MD%*<2~I25_4avPk3b|U;IMlC@RFAYM;@uRMDig2ku>)Bu;gXfbV@a5k~~MJ|(Z< zdgJV5>$Q+Q(X(+k`l0m_UrZO(bDKh|oIRu2%Y>+Nt*}2~Elcp{ot~vmUTP<@Ca)O` zsUx*<+PHH-nI%}RHSeD`33s4w-&5mA$3VjCGqrH-i#)ay2*=b%^z!PDr5+JJ#fQe- zl`Ux|`d=S7$5|=M1#6MKqe_J|3r2L$rq7;lLfq7?>&&(5l?ClcirtN$TPNGx7rwem zA-6C?dMViSzRgw16l7ksJNLCJQF?c&NzcgvK%&|o-uVGaW7P-nm)dX6%ky(|%Mw=s z;W^9f-MKmmmayG8dAozws9_u1dOMN|c${x`rUUt>wqs|2+VJ3J#(Y&5y@Ld=0L8e* zoNs{4`XAQEU+3Y}DMsg^?3LgXMWB);C^tCtP%_qdnqX!-aW6H5=CiptV%BVqYVH?%b@`p<5p)! zE<=k-J8g6&wXQWC^t*LnMyZ;y@k%(n6$8(Sg?;^Te~Fi@N23ISD(lIOgg=R1Uq}bd zi%4S|14oq44Vvg$By$iw@nKYK0&qml*J{aJ>58z$Q< zIhA7j#?eo{2@eALfckm6a@za2FaxhpDvn91P%RFXEDvPLc@Imc0xRN1)c zrl1U18i^m6 zXF`SkeU7jI4FQJq;=qFb_z-`$I5_Ih$nxTX|5u{c6c_sbYH-*PAItC>;k12&oi+9r zWjt=;<~s{4$+^@W{1N0C9w0^+%;SwE`3iml0rcf;+{zu)*^5%VSeoW0!kR}*ryTZ> zfC;uVZ8F+AW44S7?6(&D#5+SS4Wu?F^=Um}e@e_|nQ~vpF42#UhncYSn>TK}SI+kK zN6(X&=3+4+@t<#E%2e3*x=T6H?IJq{pAy7qW}?@~B5I!TZ@PoCTq(GVx*vNzLu_EO zn%i2!^{jhS>p$Octn+S^bc{FmTf+O|c+n7q1VHtIKc(@*UCHOIW-C%2Eb*YSU~0@bVL&1?m|(*x=*nl3bnkwv?_i}sf! zUA)nH{7E+H>E;RrqSe&2W3qOr^Odjlh#0f3r0Yu&UTt?OC8ITDe6JDpxroIaiB>Q| ziWQ2L5LTUPnMu2v@*dd_uNuU;|9H4-LTQa=(mqRXSzPQo!6glvv~^7U7cBQ!@`ns# z!m9&cIg<4Fb&2W6T(CmN-#y)NS1k1o>G^av>_p9is__KKzkhp;tt=Qv5!GG5^Nz;| z{Pl;CY<(j2*V4OKg@er7ag_{#SmG?g_$i64O;i3jCJASb+=7+V{eDZ+0YVt_Ec7fM z)VaH3@|Iry295&G7m(onfbp0(Ju-QH``%OVWXP7{3VWCVp^WR|&S;lON-u@BKI_Or z-XEJ=wH(Hnj}X4(TaD-P>O*efH}{ZEzD>d^vkl(s2v}#k%C2l*3&Nm@m zc$FzvX_h$w=eeSY z^5s2&qcp-{iI}Feg@lnhPc)|^Nc34fM$_MGyDKY&^4!nd#jJN8H+)vtqUYi0CyH!Q zk2M+ZiyWj$cKmmXoPCSF{Fbd`rtGHYOMf51Z%}S)c%`SqEHBqm1I%+E$2(^Jo4h=7 zLu)XtbSx{qHjl^%lhYtqRXrh?rHVo>mp9$M10XJH71DOQlaI%U20QmF4IeKeJ7V$01XG=Cd_s_Msd)on9j8QUYl@Wh8sSPTtF)4Zz(&-B+xr+QlG!(LAfisy6fE z8HLv{_&ys~Abfad7+;f2<|Vz(^)5%8n*r??@O`5axg(KF`%jVGRS`F$-Xzh3abvFV z#ct>7{x>JvbZl7`+eaC!QjQp%xOeVGmyy(^jt?ZYFuZ%Yp)ZEVlXj~Q7JJy@!+0h3 zh3?Lpw(^3*vl2ONU|4F41K>Ir)nCm7JqKPcZCs z!vi6RM@@`H0+?5#dy2Fp`!^Bx`(3GC_o(jtX`AjYC62=a{w4M<4kg+day7F@0J@n6 zi*R5G-xHX-Q&~|g$lK#dApHVA-+XPPgaz~i)zrz=XtgJ@>)%pKQGL;KO+k>fGwwDT zUgIxG^$9)UgV61|_rD%c3N%HOD@pBpzi8vbY5ig3yXf|w;61`rtirw8S62}O(;%1gYwE+fFui`dDABEqX{(vKS=w#e@#EYNQ%;c zqU~&BUbVU2?!1Wfw`#43XB4*QHFq&7QSs-QnUu5|PFgDcXAIGSLxByK$5>#EP-4unzu zDr>NERhbKf-bUT))HoG@J~$dc+t06!80M>vz(k zU8Oz~?;#^Y1BmuSu-_6uP}|W~XFJcU7V)$z`;FejC-yV;eRFEo(uzfomMfWk5ovd( z{FP!6FoxF(W$xJej%^vjKR={USh|;dx6nViQ-t8W_jIQt1X(N_G{#wek7- zdE(7ECa5`Ca>rMF|9e5w)+R+L9=0kz^gG8H0n!r_F2R2rM+dmGdKkdo8bs*QVd4-j zMPZd7X$zluVz=?>ZTbAV35{XOvbBEM73gToZJ}DK0zLn7NS&k1-?_363o{!F41n4h zB>BUJ9+^Hia(JH@h0K16Xbe=sfr*_eSu_$?7=h*?I#b^TX!G~8r(=J*SMia=^NCFS zWZhO=mkROzQXO{-qpIV6zQ!o#WMeYJsZZg z2((m%i8BLl>~V*m3hCEDDu7B=!jM#l1bB5 z>PuZGI&u8olP4dabc5$_rRX@+(de6&#mQlIXu37sGkb5sDw9EFnBv2CP?BE>+~?h7 zBE2^)Zd$~)Lrl2U%)t4h^O>pRcgn!}UeTBrN-nw-55}>iUr}Q-nToGw#6vtZ!G^terFS}nEdUDtu%%a`v2Nr>pj(H~0z2^zmKlh%@#7g-7 zNJC^X>eg&i*<}IJ{2=Bu{F$lu!5;9K5WN2Sy@==M#}cUN(-YiE@FPHh08@tL`>?eA zJ;MadCX3`Is{)xUt&NHyzs9fwVj%do)IaYoDq<|;j4&P>b%X1;kh!MF7q8T932-(H zf_yKdb5E6p!|xRih;-$h5`Me%Bciqbif$-D*UNGH%6JxVSM4r7nK=})4pB}yt!6>O zx28Vwsw0Hh=UGkSuVy~Lv9vpSQCOWTQ61gYcVO)XS6+p8FJ>8VZ9_g5Z?^N~Yq?v> z|N2PH71e+p-4xwX=Rk*0qqz~-Xiz+Q*3xk=!l70)$b3&Q zdWf%V+4jVq`!|bUQaN)f8{j%DK6klKa|RhDXgA2o77d#-UI)-)`Iw9{%h>B0Q#QMD zuRYCxG+JK#ub{buRq5c^jXLd##L3Rxkr5u{>NTQr*sO-eOtH94lvv)o&j}4nD1~nn zOh8vPb+v~&-ubi#j5b$gtb^o{2ZDd!?e-|ioI7IeRQpW6o3}2#bVbdmvUey&b#AQ> zsXx_S7K8E?vj*P-fhtp7^&_W0wd4&G+|Y@#AnS#tT5om@fhZk>Id^y4LZ?3A^9pgJ z$sqLtF@QrC{uFXMF982P!awANv~Bw^YyX@pzxeB83{6c8f8^%5w!(Aizx`;L#GpjZ&)vFZZ^={X! z>UwKh&-Z?w1FtXBz~e#6!)`1Cc>^tvDLZBJVR%a4uLmT}*%`#pukJmql@-=xnnJ3y zuG%6j^ZV8vlg(PyIO+xl7DqnsR4P@m*pnU)Y;0xKJQpw%7Ieu0cgUKd=SW5Uk&oD; zP_64L#j}#Z!pbI!d87k*m8u~y8H67CjnfK+*25YA+IJ*wC zxJ@|F+oT#BueF15CC28VG|oF!EWz17?oL*|per%16XxRTd)7?`)vmrNw&*}eKJ`LY^*1u(Epk6_Yl$CA>9?q;x)GYGw#F`f`IQC zI#c~+IiWbgD_5&yp0|P}Pb8=1E&X;QW5-Jp=i4Uor~sYXsW%P+EP;!0aAL+HkGx(- zn8XuhyxlYGeC;qdoerz$ZcZuvx4qT0w-uD@1(NR5?i#a_TpsnG=n$$;0;R$To~Jn} zC60c`Tbd|l@1rBLb@$Y#0N)@mU7i4}TmK)S`$QN%>^lq6$a)Y-wmtE*<4L}gx0s_n zJUm2UZFV4#mcHx9zdSk|SZICXG`9L!f0a%vQt}Qli}7RwrqRn)ns^@(RaX|mnI!A0 z$6G^_OHXgMh^xi}UE=m;Q-meVGQRFbq;T_5dJJ|UUiNdyKxqyHY~Ajllps#}cR;&~ zdkoca&!`xgcVI(%es94x9W5RT83Ar=g8@p~<>2OrwLYaCELLO6-A9yUeP4q{C41E< zyras5@8(O1fR&XR8jWnV_17$X5L8JV52F2uA^^xE%^)~}jfm*dGrKapxypSN|4fIZ zD49jBHaTfkU?IWFO>ejG9PX1pO{-_3Rc>oWEyilbD{hBq_%ECMlC3?ae$E>jCcJf% ztw_>(;A5f=Lu&BYr)|?3%VV@CfsG|z3NB1(Kh{-I@XJ+$^90^Hpp;mw(b4sGSBCs3 zwlpZL0ZqH6I}4n;_}|PObR~zcgI0x2?*edZ#UDBwiNp5Fuppg4Kd# z8DMKmp%Pb_Qt;1L3JulK&#i0j{XFtnbpdwWY=$Qh-;Kh_1wl5w0k~gGW05xj{1;C) ze1ixZp`S0KQ1oUjon4;9u|BlkwoZ^|gA^FY6uV4Rw-EuW`V(RdKuh^goOrgX2;=tTjYI%45@bzaM0LzLI{tO`JbBgp-=K-PXVC*FvJu1 zRvfe1Afpasfi)~Jm_%uyYXmkKosm<50g>5Xb+uB}o~f1s2buou_ukSQ_#cXv9#8zk z8ItJ+@BZq4J#p5YsaUOcy zF>~7eaKlLFjNiFuVGl={n6gGi0IGQidW`wBrOM=frR?Zj*D)u%zHEw?-9j)SuY$U} zo`NbF@R#Xi_AlEZluKYto3MlKoUo77hUh*xXHdqc6iIPbk<;Upsme2x?PZiN&#G9N zVP}cV&$kqfpNHuR29U>yzPOJnOUVHSRPG>Db7PX>#A9gR!9z0JEFH5*s6xY6Lqbdb zl#ENx$eZ5U82`VD_VxhKKHNIu9C6k>db-W%fP0oPKMef`MIC{x*bJiPb(Fj1!!trB zv4#tPUH)i!xgxFC zgIkA|2VnS?cnX`5)F^*EPp-;~hbPwReP9MeTO(7wlP2K5sT+^_fJQkc0Kc9Tki7^O z*)=$dc|Y%JW{1`hIi%va0XPKnlRrB@-`6^nMQbk{*rN@nxE+L}XQY}SE3+%E&8?9C zTln`YttZA%Hl{tzJKDm71V3KjK@=ih+B4SjP_kF9qv07enpw=$@^0VgF58oeAtk;B zA@9ETuC##!0q2mu2-bK!iIL6wym~xro)~M^sYeXL<-E*RU@`JRr)z?LCh~MhHwZsL zNhMs8`?Gln3S%tPiV4#_+Rll)w+aj&*rq?Nn{dg#9UyV*eWi>bT{X^%RQ;#?BK5C{ zQ*5>vNdGWLW@n6t7NavQ?Z7sLh3fwXOEf8>J+d~Cg^`Zpjbz2XAWByk1|@=(VnYOdf=z zWK#$3{SYINv5_$+rWV9tn`QxGsq3)<20W0L*ub408XKrtmti`5TpOjUGou4 zCHf$-&^u7&wsRMx)Fa6H7=6++_CHamihdI_U2X}*REB|r+_1b(%W!KOgW>ybR`3!$J{h0s3Cdq++ z{z*5V;>Z7|gZKEmzw7_vlTY~iKlByF7@3xt|5vZ+XutMf*HJe9zD9qvG&lXb|6w3g zi<0}3I|*<7(qaD?v;EQm{}u(`#LO-w#wDhOuEov_Y@fNG#~<6vm>AdF97}(28rq1z z@5ET*!~Uyh_4$@Ef871J|N5ji{yP!>tg-X?llkxYulwx4!}@0SZT{c-YFGX|T>t!7 z;LH4)q()z`r-qA$vO*X_%?Hmh zsg(UajUPz61{76Mz~+xXqB?={{(vs6_AYIEI7X6(a*(WFHdJioPxyr$jhGss!rMk1rtmu*zuv@fA=lJDwug0Ml(0TAc@S(Vu zp~+!NGIVa9WOzJR9a4!YEf?}&_ao4=5$}fWhLxbMKE|X19?%%QOY_XWd7;y-jG@+q z&Fz+-bWgft7l8FczrZ{eghS~bqjSDANAa7yBqr5ADVjfn}}2OaIbj=$N)up!lM`L>jgFMj+raF&;$t+x%NS;aIj z?ACg%`_gunO$hiMeCWspV(Ls^pBUgNoX$#V;BV_@I+U|IR42w{$A%ZKS2t4 zBgb4Dk4DB`aTOLwGqW|y%9BA!t>^Mh(E?u9))p1!u8E3qiGq$~-pN?5v_?lxQeIv} zz96^BM`VW>q68OJ@pxt=;_waW71N04UwCZSN#`*i$(up>0~FD8)7yy>_sxy!d@OFc zJ^jIOap4SF}Ul6?e?PAz0{@T}a90&n!B?l* z_dqL~&uUJ*$SpQhPMoh?ub7cZv~)Ou7}-pAYKq#AC%1cR6uO|!|HRA3=ZK>!_==p& zH5_4)o0O>$?iP{qwpK(SiMV0btMCgW)@?S;gTR|(LY%v|o-^n=_{J8y*xN-a(`J4X zA4EwDAfbjYgVm?wc^iP$td*(=Mvh>J`dx@%RKh+h53$J(CniZCn!OD9*9VWbLHnP= zbnnKdd1M1=fi;X6X5l8|r-^g*#Ya-YTX-wWr-Cr}ZfWI=hF?xF2vr8gec287^eXsJ zoo01ntB^amt!xhFZq|OI?~}rG|g8wx=xK@dFK90yjK44B+n@;Ie!#9z8Ed2xg^>LXo6X#zh~{09{~3 zW{hGrMFx>>M}b>>&0DKUOw#Z?^GpBJia*^eFt6anLC~{A-@g$1(gzd!upCpy{Ab1^ zkXk9D6B1oVu*6A82!2x+1;#iSKsY0Bwb>1mn3U}5^5plOgNtYqHQ?eTLi-UL%`?W4 zj`op3h$i#k-_8WMFrdzbS)T2KK14d-nO)m%RS^A>4!8x|DaG?a^z7UT99M~)V-PR4 zXzZf6M9C(??SOA)GcvZuH@Z`BeO;}*U~6BLTudYlFd+WdJIogL%_-Hs`aVr>wkl_j zJ`*cJ%z8+Kr=nAMoR$lcKu+l=K&r}=q-ZU6?JRV8%lCRI46wIte*pijuLmQdh5;Bp zhbx;NYgrk>QKct|geNv>$?foRVf@Jc(m0SB^k-nedpudvP4CsO)GQG(g=-Bq?R#p} zax!m$m`~L~gD}W%vcQbx6?FXasMk#nx4ih*AWyEL3;xaAUHdu#d7)$QWGE+^6sBA3 z+AScugC_LL4TgaC+&19|%}TVJ@Nr#y#wDp(iOT3AG%NWkWxxmI-G$T|>epSGn;Vxe zq3k6@GxgV|6XE#cymt&O1 zevE_Kxobj_N&Ani29*5EBC+N-&?X|)fD3;mb1usZ&3=6GR@hhk`yUiD;MT|50U*st zZr?gFmAo*hk>x>Y=}7tx;CFwn-hl16FSz~HisQ#+?6y7LcZ#7^Qcsi59O)8|>Ux_~ zGZq%PMPZyT(2aw(<8H-V+mvaoqiy25ng}q#$VQCgH6%!7TCjvE+wO>ttw~HZLFLuY zWW*GT3}`}tGEOYY{2BPH2X5Mb9GFXq%u|2F=-R$Fy%F>hs z>aHT6j=*yhU%=2)-?!ye#PF_N;d|d!Ge)`6`AnB&bRPPXnDNZtQ61$mNs&>N3&Cm& zV($KcMJl@_zv5&}3;*esZ@<8K|MF#KpSGHQ-~Z2MS~dUMBJsg#k&pYh#BOQ(f@A$Q zqyJ1qjEhV^YyK=t85|ed*xi4)noB?XBfs|}pZJn|(7x!u|L{j2 z<8}>1?*0`*EsVfSM&rcL!cyFENYrSNf{fh5Q1k%W^ao8W_*td#r@3EyBvGN_Nk4!N zTx)kMHt+2pG-`diedPhg=u73R8CUCN_lMx0M$7j^276_QlNHPN0bfrZ{1p0p)_scY zNJ_yY=|$-AQ=5DiB^qn2M^%NW$R!fg#lGk=t_!M4>vB=Dhteh8ABu+Q+7L(_?uO}00XrEV`c<;uCa)%)hLOVmqwEMJ zsAl4;3CRv^@el5g8wB{O(-R^A7(JjdY-Vjs99veMOF?jWe6fg(@;WBHF!sNw3GI+V zSh{@lQ-mVLHhh$+%YRkP%19sJASUck<}=kw|H*$3RVHIF+ord}E^D=%3w#5!NFgyl z5|GBRv`bx?n@40zQ=R&#i5ERhJVe@%?cA@D-FLo=yKaf8^V`Rr4xdUXT2O)#>p#1# zYh=a~Opv+ciJZewnBKhJf9l>v+_PO^+w#Hl^y-q7U%wvDC~kmIj+ko_Oz4?dUMfWx zkLcC1(fxzd9Sp}F!E=S@$s#LZsF0>dBC49Bg346+=hcC-X2+WDk_ko& zeMNEZ^Noz4{#rq`t#KDA-z)FV_RVrkARMpJ_a-YDJexA@LKsa5h$7m&)YL@o9z$W5 zTX;XnxlBBC%RE?`K&Qm(V(w^;!V|)8-%TDhGNY+tr!36gNoYC|}x zeIP@O{7!}VeAhF6OZqEg!Y`^csS={5~=!Iwq)w1s-UO*c?hzzyid6d zXS<(gk`Bxlx=4(64NNI(9D=STiACycj6n@xF7>Z|OdJ+o$LEy&JF%kD%7eRJ zEoEG55H&Qc5vw)fK5|m6cPX`skpnO!&R-RbEj5d)VJ~DrR8s{d?;lUPPilT5>Udgv zn3qN^Cy|DQIbhO$xn&ATg*kJsT;&=#Wb`WR5;=5&eP59d<4$5E5d6n~byIn2Bp(BE z?5)QcZsR~DCL8*PwUi-g?US7QKy+iGiK$lxTuz!Lt69a<%>;D> zHtqpuqQDk;MH>6lI})$d#><*bsfc8;c{7C$f>Mk^f<|KFAN5sdywA1pn_=8e`7Q|z zGR?GRrQd*NJKcHUiIRIRE-pgRwc*QP>_WeLp0pk9WLKo97bA6a0Qqi-C_V?GD~ zVv=dL@3FMp{DN=29=VijLc4ATL@oDM>hf6yz+AUX)jj4%Z5Qi4HvEuAOw6(4fUM4M;UN};kDxg3(;sumL#cQ71KCMWKwJCQs+?LSP7A^rX7>8wnhd% zGk;rjWJ`)fI!oP3*ZZ!hktnS7Cf&hfm%w8NVY(yLyc6qzV2H>G{o9RdXEB1aN(wv8 zkGntvZbeG}c{!o2GD;#>(VngWfxhA2D#AdX3w;#l^MK%rPbmh4N^kbL12dN|4}LFR zA+#1`44c9VOE?DDYI?3cnQe0(OidX>k(~|+z~%AZweKjMkZ=mFA`7Zu=?nzEKxk`v z$em&l!k}1z6fg8Bjli6X;VyhjvH2b(s#eg~;@KF~?mqxwj4zTJb3<~$+RmL04G(Ch zkyrFtweg&5)+lqXi zTnqu8NU6z@Wj{ny6cz{wYF{{^pe_n)$2*Z{aw~KWE~N+x8k1)|KDNPWpE2Dx*ohJN z29gpEps=1YyDUGyrYIYX^kKm-WAF^(zejeY3qtLkg#Dh~e+ z8?n>Soxz6$2LmNk|DQuJnC?(xfa8fk(G$u6sIY9`nf~U-cRx$z*6g{gBOAv7RMl6l z>(b@lSLa9zsu!<)pD}3H$v4X zR~Rppbj({grMI`$9=@d{pIptJy#(gQ(j#LYu`619m^R_CkJ?&EjgQe-k}oDZexoKP zmF}tM<%YZR$G-f0UR<5vn~u0@DwXSh=)DZ~vN;iMPdZK;NGW8bqK9-fu3E9KcqfiH z46cu^*wZg#o@;)gGbN{Lr*SB026@>?iCDy-Vib47Vs=*&f0Lg)?w2VF8sUSScvg?P zQkyEE$@60cn0%cLgqEV$M+efxutqc$F~nXkEY^FdV>Pg@*Ups_vI(qgts@>*0GPUrRmqZJHy$_dW@UwEZLcwa9o5kCukkGA=2gB>( z0|;K^!c)>+555?oSdBq(^ZB^}1oV$(+CmW3AtxW&~%N*LY3=ex3j@nR?_3O5SQ0b{PBk(#F8l*S8Ajn5^gd9w8BWiC|lvDF{kk=$o2 zS1w%YU}N7if!OE+gW@sDh@FCbvCeH#W>Se~852Qvt(FnUg2gi?=Hk#g@64gA5Wj!w z6*js9u2|Xi00-u272bP}9!yVKXm}rUf^(DSm%Es*vHVL$@-VgO_=(}}Uf8ypXCz@k z3qvHZ52wu^lE7Bs{L9N1%7>%Y!6b9vL)%!WbC&3g-NlABug7Q~tTLA?@op_|b}#fJ z@PQlcXI^`=wt&1BG@<9%=d|KR4z#latw`bFABaGefNVPLjK`7zaHNq4I!T?7=xWB-5 zH`(@-Ib)=SXgJsP(d8Au8qIf11DdR+{7_6x(Hx_Yq`xw=|#uS9+Vm$9xGHT#9lXB(Leu<+{xTi+B zU{eO3IMIglu%&R+BpOk4y`y^qVgr7g+&PuWZ~DAxuvya*?C9B09jUV}A*v<&Gb;}f zje$k`9T{3~LREJa!&7`yHhUzGS`jwn{2q^RDT!`Vjn`=ilIF0(Y%^0+By7U(+MhYE zQ{qvN%si(jB^_RMDRJ`|Fp8Z@P#g#hZxkII5hMhyvZtc-Vb7+69|{a0_UH(a%d0Bv znNs{CM=b>v+$^g28dmCEc*OBNhW)lKjaHrM9oF{R3!xQlSctjtVJrKWO{0{#IpLHv8U}hj zHd*3d0S76>O>3$UWPYVC->{}vf8k{AR@y&pz>hH83s3Lk2xeq!5@WT}WmAzcXW;iP z=*9eEqws-u$~Q+)YDI5j{J0Y|b3+}Mm4_L}B_{Sk22!SIRz!MHs~0=&3wvQIR&|*sTB$rYs;^@iR#LSR@+XaIjSu5=D zlMtE3lnYannm5vx+Vu6WQ?K)67~H#P;}e0koejS(B1$o-w3ku#+f+6>{X@l-T-SAM zZ1Colsomi1ATgD5Jr$(l=?pS7*)MWMB0_<`ZBfXY6~|T?xmke@|M2= zXGq`PAZA8lRHs9V49`fRj1Xy4GbYAgBtkR_x_*2Qp(nRjEr~@ax!#8Wa#?13831}_ z3;2t`%7$O5|cSSjE z6_svUHlr$$#^;Dr#`m}__Js!xr-?GH^$i=IAkneHZkWUl=hoIUM~UqVS(opG0a?#V zlMckQD}?0e5LizI_n-Qr(*tHW-f97*!EdK7{dd!thQ6|eVAv)?#c-iYKvW)a_kbfT zPk3rsykUaPG;T~H8D_uZY!N-bX(_tP&EkMv;yps>R~Kbm9deN#$K7u6Srtx&hz?dk z`%?<}*eUBwP}2d5Y3L#u`mIfs2K)hf6)vfkQ>4T#Z6D3-n`y}`j%-4s9eDegcP zWFVL>?cbK3Dt}NI`bdJ(US!TYwtKYa6&>MI!YnKGduUld2o|c{8c11I?Qu=-%h9x4 z?EEhyGzS;-Tx`6#62P6TnTy9~VXD4>s_CkTllA4uou zKIw%i2xE0^$4d~^VVsbQ)d{(J0fbPAcvnCKcgHBI*xJ`Ny2Mt*5hzW}L-HvW?Hiy< zU%k~laf$w?trh1=ALJ(n1^=@rAGR2OkrkrzFZn;ieO(M}HgFpGovx5%@^mPb)tBB_7299rXjw zd22j=5qM_|Bto+e#uPRS5|`UMkyBHteKKws1ChnPey5IFWpd0qlW~iX*R-Yaa#2z; zIebhzk6wwpQ&F%e*Zgi9ebm!rM_B{){LwnF-%cqjN{%mN;U7)%Ff3-6 zjy7aj%-H*ATiybyb36p+=-g(+NB+$8_3b|5ytMmXl{RN<-_O5j=BJ~h3NMMpU9!D{ zW2lJ0^{Qrp-`;7i!Q`&0|6ODw^2v6vrWf7h0v!CCppD!QP9Bi8(Q0Z0}>5G zinCoFkEK^fU6dB5JG}vQS|80I(62I?cEZSxNFX{MpTL>pfduyP(d$2YF29oPB|#AMls!Bi;~NcjAfVD_OOX-TGkq$0#k@3D}LZKAw zx&uE|dsQ*`C`giw>q&#TK&8cDF&Rt332n%Tq3r!bBRRTC&0_H0l910SP>yA&t-329 z6PjOJ@}NK?$3i2Mh)V9=McgQxG;(#h7(wZ+&FtMYV#f9UigE*u zp5_29a@-?XxDss?s#>ob2K0%QkyG#IsfjA&8n^#c%I@_#=>}Bn)0kv@H1RY}_@`J$ zg1r`0y0uNLAJ<5af*D0^^HbZa^Lh( zNZB)2%lOC#!$Y<7I$kPAX6%?=?i%9TeImE|LA8C4i8mrB(tBz4RdfnV<^^+b!e%0+ zdPst&gfLohR{ehwGBR5F>>{A(_x&=ZUk4ipgb&ShB`MHu1?>>I-XA7o=KOa!g9t}{{E zMM#49HKMFBpzRA`&cmi{MT3WC>4V^1|9p;bkq09sx1H_XLf>G8&6 zT2ZSO>$7>baMCd8BN&!^vP5^hTFlh;UXA$Pmdd8gw!;8eYyuZ>BO^I1G*J2~6Z}h6 zA9Ni{V#{>&yA|Tz|Rko-GifdUz=^qr+B849J*vg@B7%fhiL`#3QO(kJl&d8Yo@p9k;wm}-|a zmokj#bo~(KPn09@SY!rR*Jt8y?g!lt^m*r|JJ$wXEdn`rZHA=pdh~Jw(p}jTqZcl< zc=^T>-}ps!-n2XYJMc?wG;=ko6%llWmA>obim3<3E9=cBDc9 zM2MiDFpi3zq>%^aFQ5d92EEdYot)jKVxrez*`g3v4-WLtjtN77A$ETwM?lc*t6h+3 zPqQQ;YgU&>^O%sWpwR@umiT%DV`6Q%)LS+ zF4FIny63*m;BudlPwUg{EVPdpgLrrupgt8scfh6(FGOFJO>warQM69EKh2HF^gJoU9#+Ee0C2w27;t$nMq+bgAHtBWlr`_J{Y`|{1*Mb zjy%|uB!vjT`T|A|^`SN74LYGRZtQe^%-y09b_+1QZ;L%iqC@#Tvo?iT|0q~7{g^N? z{kQy?Ps3AVFW6RJ(_qUn2iwcU2NL7F!ZUC$%Vff1RwSt?l4{>1f#;971Uz;Lf*F72 zIm0W3_p$^1uylNaV`oq};-;<^{4UlPU-AI!Z&>%_7BM>2*=upyCoAl@?bRMl{c~Ide z4e-YsRu1GZ__sQxIgi6)TADS$kb$d=88jX+79|D*-zS{e60?i(yS^88=rf%!LmtH8 zM6krD#rKq^N97R(=tRH=-;DPY!f2@~g0;-ed9P&+SLNkp^U*}LE^NY98PdS;vo;=t z{fYcoDg7ONrzG*+bZw6OGRbphHK3xpmG7!o{jh7qPRz{4+3ukUSM_d%R20ze`NOPE zC{?}|ud+}UBFS5Mw$tr+yzN;&#oH+I=aq5vk*y?rQs^q$k4DXV>G8xnEd}t_aol49) z1uGf@iapJ=P7fg)4ifW4l2vG#?|xTkyC}Kg9~(7xb~z(+%#oL&$fpfMK4i}8-1PADo3uNnc%%x^>J1q;2c5%3>bpQY2=Gnee?A5va)u{=PrTu&g)Hm`hcFs`0kvN zYNN2nU6}E1n#!~!ThV-Bz6Kpk3${gCZCu!k%b~`$)#Ms_g$rrv_a`O)#PbjJWLgH% z3s)tv@wwsC8qXS^DA<{KhQbZSb!r^!TzaJ=-Abs&j1;pC;tt~d?u3m*9$>3$m0(bAj3PGMfM+N@ZBDB=_dXBU?}ik2vk$!`HUmvK4JQ4TLfP^aocC5#k}C8xXh8|90wYFQaW>)>mKc8a#)W5r38 zLe-=urLSnIwK47Z6KIK3w5psq*~VMF#B{J9q}#9SIY@RBHyqEH?@{iCH$+by_#*cM zUuWr0II^{0F=tGL2)Yx^G3B;Bc|sldU64Gab zBIdKO!ow=P_0B8(ykMDn%mUwF1|pyhMqP<81P#H0`>}txh&5G5vF2p8gec_=8V@^O zu)d>IiM4sjtu;+sIvMTl2XlsJKbto&rsAE-l~NOp9@`NuaBxgU1C{RCO79U&UXVh~ zf1U14N1hJ0>AVKHMV6qsjFz#H2C52wJ9kq)bhx28u$g?FJgd6ShQBYpmSClW!)cdr zr#?|Squ#)ArC{0y;*e3%?*gzB~+jQus*t`fUtuR+xGxvMPT`hGPC35-f zBEoPrSq8Qux0BX*7M5b6lUu24izPkrLB}%eu$HdUb=VE>$?wn4MWq6GjA?cl3%BFy zKE-9taWUiP$Kz<;zeYd12rKjy0O1niNzE)C*(V4 zTBH|aT1m)JfGOgyt2u2$e3lu1G_*3V+w7ztUUQ+xlBMz7uft6vC;3^ zB{dptde7z~D4yA7!EY<8DC_SFCioow7_XZqLPBo%`wWk(HYGOtWv-bk7_8QRVaS&kFi20iz%CXU z$qWWe85=J^M6YEBBbad`gCQId7_rq_?p*xlo6IDtpnGxC7A~G$-AoTlvN6S5;-Rz} z*KI>$XVg+JkiA}c1dX@r`F=UWtpDeh$Zkk1^U>c(J;M8H7HIUIw&%T{b-40tm$jU7fh@_>kQG`~x78S2~(RqC>ieYU=|m zg!?aje6bo|veo$g?|#3paSqvEXLbw^>w*k;e5TjjfNh()wP*9u=hxOLi;Uj=k<=WA z^y>MGUic{5@A;!$tBJ2&8z~K`eJ&mS80z8$$MQ$-A`e7-kVLe9RC9=T=2$?raDNRo z#qHGFu{7STzmx&cj5b#a84XBN9>-`ivaXl-VUw5;oH2ZyAK&3UM}=7{iaq`p@C4K~e-a6ig_Q2=XT1DeA zbs@7g$<$+0m4z28jMxH){Ae+qJa6g#?UmRTATy&Ye(z)C8sEL8y#)ht2{yOP z$!9l;VJ?)36`7k;fq`9%`;zc@Iqts()}giaUGMA}rll(}0p8S=*W#@z8eqZ2DvIfz zDG?oYfLkQ@CoIvuAWY4|C4+u&c2-yL!;J`3NyoQ#tT>i2j85e*ylOF&t4* z*f=0Vga)iMkt&M4kUjOllb>5-d0+_Wq&0PsqEoE84)iFXL%0v)%2CuWH&pP+2ZziG zAIub#w*d~Ijq0z~N5V~Jm`}41-T~wj=A<(VWRG>ljRv1**Xqr8hdMD=;Ga*nk0Rl( z8h_?_#tcfcL+pjYg8a{%eST6=n^~n#$P|;9zl-I8cVB}od&S6-lQY{jul!C3ewUxS z5caj%6~EqMLhoxR$x(08kWEsw-hvbap)c#0*7u?*Jy5`-^fN~&i!*PGy;}1Tc^Thw z{dycy@i!&RC7Ji6d-gWJOawmE2v&T6@FS$T8h!KqYB zB3vM933e+IYi5{J-w)B$k!iSoCs>LU)gw?*m%-4flJhZdPzjk&kKLGI-%-*6ZNZrBIvqbpkiFF9$aCr?k!3IAh!TvVgChp*fHOfN#%cYi`0+pW$rSLx;=;&l(ZSs-@jY@?NmqxO^X_TJ zGYa>{HBF%_?Mt`k#iy98;Vn6`>GzSqA{XDv@fXIWa%Fo(v$1Gwh~-r~Vvn_GnhE`m z(6#N#>)MO)8tbRw++~JSUp}M$o;OtfPc{1pD35mX(Fs(=Mb@PqST4?IHeSXf13x&5 zvZ2ts8W22|{PiCg1t}~ob#+u{uWDa`=v~}0XERsW8xDj9oo}77?)v-dkfF0M17O`; zRxi-ER!SWQ+b$(-V^HYf?iNz&TNCfV@p83tIHQ_$VTAIbI8#f`n7chEtJ)*gLtnpI?9`hWYjgS!hnNYdo_9r|mJM}Vh-*a}P(*|ld3y5o=b7kZ zLNM=G9ynPw))^ zz1N?0M8SlLI!?-5%x?q!t4jnz>FZ+xS;G!XT2)kGbkwJ42g4GX;-L4ry_~czJ&9pn z`Y$}@_*zi|wUH$1lPJeQx#+RV_-sYg12keZMJolk?cvBF!gdh-h%xKgSfCG9Xs$*R zdE<*g`Y&-%8Vtf#>t4L{-xZNr$!9~2H%)QmQnIlgd0Xa9X(ym!5KV1y1)^p~WBmXW z&}Oc5s`+-xnvvu~?1ljK@)XnC^ln;AL>h-^hB5G}DY_UnD>suh>pAbGF^n$W3)ucs zmrEEfv{Wle>c*J-gUQBEg#D*X%X+RNx7GP?AD+FiUpf#+Vs6NB^VT*Gj^d43mQEa8j9`C^=v>bewVE)F(oIRHeEItsP>l5Lf_H zPLvceKZ|pWt2__*qW&Blb$f=+uF7laWJ{#to-=lrlbYlLy8DsnQbo>$rX=*Z^VwUXhNsnGpGktFjhVgs%bPbM*_mTx{#TfId1lv`{koKAfH&C&r1t zqhxtRynPAe^|HDNko{N1EjoRkHg~lqWonbQ2{PW9n>g^XGBlXiq5$W{NN~2ijiWC1 ztuF3v*Or$pro$dmr!1|=H0kTbmlqkSf4N&U%)j`SCy%#oNDKD-JB^Sq*A zr98D-W!b~JGz|eYP-Mu*PD&l&1v-A!=0c)mG9r^BJBl}QNi4LL1^tEM`Z9fP7_mPy zlUT7K;0LjZ<{bLlgI14CE=4A?wCu6AR9*D+Q>RzhTvGsug_(<@U|LNtL{x4Ev*|2t zAmkD0dbDdFp(iX|9if+NCtN1`Wo%xmkeLU!-aLc{@>wl(-R~gTQ}S#~WcmSh+Gj)% zo!Df~lT?wp0JMSQO6gGv3jG$>Qs|KA*P+>Rdag~LEPtAL(VyUg<1fSiCD%;I%**i= zf6107TEn}~+7b0O>7Hqc1v@(~Y4e`QA)@&f-qaB}!WHns_DwdPF96-jv@^43%$757 zxPzXWH_80D<8s#x&9`S+W7D65bF~Tsuv>M)tZD7#&g@$90Ix9R5QS#=T>wK2RI$Dh zkt^d4s8U#VwQMdC6bI}8`Ma{A{)_`Xk$HEaQKyiW!03m3^QUmu(MvLSY)thoP5LUOO{^`Bf8-5EBaxJGP@ zBRJT$v-QchWVH_TY$c@U!u4psL!4ZcG4B+W&mkX!frHUmFb7>RWOMGf&ZxJy^h~Kj zWx3|x?8$QVbGQ_ERS60+}+k2yFIzjGwAj8Tv!Yhzk zTv4T2GAAKJCXI*5=m+4W3*Tw__g^-Ufrw5-?zP>Gx3rd@6GQr)Exh8MlaY7X4hLnA zBBzPnoelTw^FUCs@DI-yYc=o?Nml)>H2dAtTvX>N@lG9UNc>|7Pz^}V<^1Oq2@K$P zfqMDlJQi*ER%-Vce0H8$MB#o0ddUIKTS1#Jp|sr(wz`Vtf3lW5<)})7*up;NCx&-% z`+oFQ;$2B!xeckc<5em^AP;wtJHDJ3e#=myojADwAv`uFa!X%Tu+{DNj(OqCb>J$x zi-kM0_x(zaH8#pib)0ZJgDQYkOkZXk<5_&^A{aaRGqtmRhC}wr@vVBA4-;8Uj=Ihn zbwzxx%e$Tlj8JuesX|MEXqjbb{gwtS(sjU79wGP?kDk;VvNfY~nU1rv7`7m|+mi@? zF6QoWu?n%PUpBTnFl}#$fwUNzp#XSzJ|lUXL;cb4^R`A-gsAlJ_9R7bhFZ>5`Vflj za{;?X9+1YOVla|SiGhgTzacTFp-!j;&;x5wP@jv&DYv(X?+ zmmMt3xg9cKyGHrPH6~F}zr+Me)#KCsmT)#(fOSJHn)!JypO#=_1w*;+glYFil#qUy z_|f|V&d|Gl0m+OFVW?&^{)PKTL7Ba-6vji~be$CyDPnKQn1_ZIMlN}>!-zGxB3S^o ze#}RPU4bNeNqeY)^-1=|@(PJRo8V4e)Z#kt^R~a6mZO214@7Md^R{VaI$yj4pG|zx z^45a2-lma#0kr-&VAwJ4JDROHKQSiI0N7?nnNZmvBvA@M6l8^guwBTwC>#6FHQ&Gz z4=o=~(<{qAv^LCG=A~g5EGcj=+xcmB)@cdWp%TP5-CrG%)Y4jR`E_6u0nk7Zq*~sp z)WWGuU)(Y|`$1X=ou1m?KDI7Zi3WB}@&ucFIY~jdv(PFY4g^1WcU;$&pts|Igh6QV z2xt)6Ar|$H9ah{eWX=n|!(b6-p1xXUyVf&2D-nyRIlm1uVCtE0JKl7%+$x767Km1x z|6I!gle218r8s9ERrCo-Bka4$VqnCW6n}jv;ydGpG=U@q$fX($V5Wf^_9vu{(h-uW zL_Zna0~XSlAtF3^g6wz0a?sAXgS>96hN%G9^F{(V={jZ$+o5v+g4REfi=~AhEN`j4 zaPlOsz8)W2!wPweNud#p+#UyyNPeLgQ$`%BtlqvqY5j`wik~Xs3j@}~WFDS)y7(wh zBtj9%3?B|eetusf2=lEFbI3-%!bTGAP*&UF+owYv2&u5UOLZ57=fWrU%PLWOYCGGw zvgbw#tXLdinkrjix~peyeIr(b)sDeqi88Do#vYrBdYx7hN=`oAMLZ47aNC@OBzsAw zxQ!6`IEnAvRVDgqVt!2#4Q|u85P`JO0lVRN>wBB87~&w4HLh0?7h?h98hV^y|c^QDg^+U)(udL&`9$yBdC{uo?l7hG{&g4k(Pk8tV~P#V8J< zHAfUE5X;nAh@-4kXMu0+kXF44cfk^C50vpmO$RZDZkHC(Big16mM1rBLh$<$1ai5_ z0i|pIFEBR(dgJm~la!CRZlhE-JuK0rw_|lDz8K?|UV;;IvDguXN~<4$L4FP`o)(cL zP#*g)VFarEKXO%?`;&-SjHc*6SyNX!%jBT3>%ftydTIS9{9fY zH|twVFdX;A;E&+j_o?q=-Z?tNkq2#V6^GzQ<@)$&V8Sz!{mD_Z{nRM<_G%XX#O9XrZz*@Kf>K|bAy=mAi}h&HPK@FyYLRPo!KvlARRq;`PjOVr z?!oDKJ+)?pK+zu@@;A~@e9V8ys1L=kXR?#!HyngB(saQ9R~m8#8Jy#+yaD+)orMS{ z6yNK%Sgete5Z66g%GDD`%gc?F>r&NBvYt~jsKF~ilkoE^3**!{)C&YYc)Y%838q>ltX=W4_e$2j>+?G; zndZhycP7gN!=)0q4?7DlHT)mgCjp`l9)9~D#h@{$c6oomlXW3py>ubRcSg}@0&XXP zjxT^tkAAzM%zbZJDswuE@6Y5C-P=v#7g^VBgS3i{7;x9?%$CHch_TYQCVg#JpINv+ zHSg#lmd;DE6PNt>)d9M+T0)*}5W8kO{XVe94Lag=tz+SC#WOJV!Cpyf>UE%vaE}Ee zOc_3m;JRQpQ+^PpUT>01ug%1w{Pm{Ifi`_R4t!zMuu-G zYbmz}IKLbHLWP@U@Co?`!U9pJ60N>-$LZP&FuvXawrK6nWJufE^Znq_ce46!y0Y?M z-VR4{cHu`b(S11jB3m}HtC=uf`dg=@8No;|fH;=^IUasF{sGx-S1{{t=8ztDU4bM6 zGo2mQv{2TTDmKYkj+x>SmCo;8{Clf^ur6J@d?R{zV|Gan;{x}70&J5W#rtDBXuzKl z@wMompvr`1#5(8BGbt>MiC){3!;z% zlvxq`4-?{~ycoy(walz7kM&GOdFF5h6Gg{ep7#G7b{FJ%jE>Jl*%mFbw;$ zArY{DSMZm)s28-aD+DXsG#+waR7FX7eLz>;5oy@{ATTr{t zS+>amIbLomD&u`Ot++N{+}7&`|Fi5@3r+%wqH`e_$Y$Tbzf|LqL)C%OJJ~cy%&3y`4oj20sLZ{rpPgzx8g|8vt4Sq0ZF0CQ{tke-2}^MO^fT!(ByJ9nwzsx$}>^U zzaj4fS?JWHQfby#DW0T}1t&I8T|%OaA$t+41U_ue6`-_WEl@Fi?%VNk18DBp@u@^v(GZ9#Rfa|46*Ir2M0O5eAwry({zPjeucEzu5HGy%sNSFM zI2M+RF@qxs5X+`0z~HZkU1y+wKZ9%4+*n`9M0{y!fS|R^={)bDWg5SEVpSyr<^s1O z3JJ-qTk|O=qS`H_&sNl~Urw>{1)m#ChVVeNh3sAe-96_<-A6i|hK#R-T{YQd9mH7h zWVt{Z*ngxa%;1Qp-{BtuZ~ip%J=+eE9|2Pwp@`v}tj3MMn{bY)Bw14zja<59YFvOp zycNgvtvOJCt}c%By^>R|74BE`1X3Hi@xb&=x*=M@>(<%>Hj-m(?PtoGdxT{TPQ9@$ zf}qTj%QH>1thkfauQs3A?oig8h}SMbI;ed|gYvXFr6w76Gi)UUiM(;Fqe_lNf5pBd zJ@aA`Mnr_XJC`yTg4#VLz>zobY0SJ`uz~x;JS1X6q~(}6A|?{$5q6~*nFg>uCl##p zfXdX`i9`IHPmHG|r3aRLFRe9n6)mbt-WTB-&xO5xy8A(w+myDVD)p18I|W&i+4^mg z$WV`oUHD#EB8xJ7@E$fzvsIgzd7A!rE)J5I0p8x8Jmr-j+khl1lu(R-!EkhkYXHEj z7z5Z}4)bJ-24qeaC(svS!l@JP_QlU_)rP>K|7~$^SfXWt!1YxjlQRwKnLJ` zhQ@gKqi#|s>?Pr0(fDRrMR`l}#Z^M$zhH#OEAwG)N~a z+kxE&)CwSU>w{eky3vn7laQLeKFv7tEbH^cr76;*p7Y}P>RQ$2oS-Z<0zt~!6~JGV zWmp)rRyFz`Z^*897J!S)M664TqU~YqYD6PA+Oo*6aK1*qq6e5tB~hyjcevOMBtASk zcDamv*1gr4sm!d%o#WaAlnp7Fx&3+o3(^}{v=H|5V_^_DDY81qB14z@-PdK-dWVKayeVQeiRypaw~GltZABHWgNoy zpA};s345<_4PS;oXYvCOytnXA{`@Ni|BOqG3_sGH#eS@=*Q#bF_2E(<=^O%NRk4P+ z%KGKcRW?yoeh3QC?wG(vAk42ZJX6PWvzLxO;`=^p(WwN6N$HUf!ZP$j>MCNzk-_9bm{^z zPnwMS*YI)c?BU##WY|^Kv=BRa`W(nEOOLQ`?H#pEuZBbsaYjz%G3Y4euBi}H^dgAA zWlO6iR<1~)CNHp*$H3l=vn9vlt4fkw9>Npo+*XU|k@%W)$la68Tp{W;(VqIQw*oWv zkK^dPBBPd3_8$O8J87&SR5L@C{i~-(#mzo7Pl2DOhojN(Us6V1(nhfFc05j08^|dk zEW|95m2N@xlEsbJM0Mn=$Uk`M50n3Th_7JB{IvuDEqW z(NBe0@3H8k5CESO;l+hidd@*SXqm+Gt7&~L4CK}2ke`tM;x9{NX+%Ykh> z!?)i>AEMX^X)<|V?_!s#@bD3Hq$(^nOefWzGR(uV2aZ<_qg48*+F45y6lC_UF*cuqQ2k{EL9WT~-R5N|!)n z8why)HLVYJYX^VOoUW2Zu?R7`UzT`6ZEmqhy?3n)kU|~pZHrKoVAMpM;Alc2kxOOH z6^9P>%mo>V1qrTSz=+_B_<#rO;NqS=dblis)=@!b-zo{Awq9w~i#gvoPQNmr>g8^x z=ku}7q4Z_^vLa{qbT5ZUki=<8@QiH=d!C^$ZinE~p`nFEH^)&wZ7|>=q|x5{WH7%D zr&Yj&Vn}blA$8TwLCsLO9WFkgM3B`({0HT+eK2 z!-CN4fj|lq@<$<}0B~>dM*G}nm@4QPcl6Pk-?NH#x4phv(sv2}1w=AP$=vj5q63bM zo7YHJ=EiugcV)OrK4R-ZoI>U=pCFQRM%=oUS=AtK$={w-2*_gER03=ORTdSoKZ$UE z>T7{y`cQkaYHp+vWn&W?ENG5u09%vC!{(BpnZ~*cP(#^2{6LiglD@g-jb70A5u(K? zssnrUUsHv@^OZRv;44NjnkT3=(zDs_F5X7%^V&=u##0CK&T*T^Zpc()GG!`i=-Sw>_@J3#6u5wgd!1oc{t_~cwP{AwLK?Iw@EC%*81cp(omRq8MXzt z;MFM<9K+eAfk)(L$x-7=p0SfW0Jyn{+ZwsK*9T){`YOW42?Ehht{b|!?O@?r*18z~ zV41=}(g#5Nyy$cNpTc(z)%@I5)RU;Q8kdGC%oyHM*y4+&2Vf!ny(_7Y^q|}E-fkJg z>*^;eB>!zwnfuD%50K9{=C<ku_F z4Ami;e>AUxbU3rV`)w1JHGkHIb9itP8uS_ zV~b-Q=2?nHQ_I_w$6`^DZ_`<9I&q!XijnvB&S%;KH(@oinzL-Bsih3M)^y!5F5+8Bi#7F<&hUwmfOovK!be+axxs3AWdKv`-eJD+-;^^!&ns}6$t z8qKQ|`a-9mEBKz-vw&FO2`xCZ`Zz5zPQ>M(yYsRsGC$-Z1jnANB)Vl+=)}-}32`h# zCL?chvD@%!VP(8!0=$wNlJ-0Ix6C&*?J^hs&Pw5aIeUsVsA|B z2~-AsF2*r*Jt5{0>4x57GAUAMWUKXL-Sm+blswS9G8|o2?g;q9oO^&2jk%HkF0bGA z{20RW@BJyR3(P+a{_216=lMED7k`s{vd{c>zw+)R3`~p4%*+eF-myk&`Yv7n;Tf2l zf3h_*|8)QBo1Xv6BmQ+bOY_(0-V8ciWBp?<@Xw7uM(|(%HYCsa0hDTK{*4#o9Z?;x zSj<25O`n~c9^(oQMqz!QZ>ZDAc!(*(E01-+l*%3R>4=nbH4LFYP+%b=5ZCHR=AbBXJ7YW@Bd0E+x-2pmh~LVi0K2MmZxLOyE7AR-_U$WtXV z>G{;STlZ_x_4Ss#J$8M%)g*~PoIwZ=wWz8TLqgS|HFb8!Xq0LH8i^qSR@_Jd5p}WT zDp1vl6j}fPHT%e{*6s9d1pH%gX8t%EN5bu`j~2q6YaNOw`V>@rmey9Z`|myKniDCC zyEyWW5_p358M)bExgxEi3Z;c6K_RIe$ckiUvNuwA-8uhoH zix$|j=}KV8mA?iqz_9+(h#S#`+5x|(g2Xi*#qpNW^TLdDFEPr_`mR`P3_aiF5pRJa z{I81j;t@%#=InadXYcpaBqNT4HizZ6#=0I6J(YohN?#vJ5gbAhGX7unBTTUFH#iR< z3?x4=k0ldN6NeSZuwn@vO48wAgkM}U$zaP!ToJyWe66xXF?U1)e3n7v=nU$rD-0e! zj=xrY9fk*X5SEQ0J|Cdk)zg)nC0EnnVcW&wti$-+5|u*g`ZX-d=dpB>-6}2l<>)rv zZGGsrJe{Q9OQ{LNFh*gPTx@h?UO=REq*g5rFlK2hX&O5$DZ6R9*yS8lW88T{ljz2K zm{@Avy9m2P5v1%qU)n8WTQ9lm3iMpa4{JKGZeG3R%L!(x45QK!9r3hz&1><159*ml zc)+8nXcRW!&&_$OTxUbFLhWhbwpx#WzU~=62X-G^bKZSmPe|3kkwvdDh;{eY`z{rj zbOg_W^zy^hj10$&r&~>7-30L&M+%r9-4^}f&>&zcy+v^+&cN&SH zN5s25dHe;1A@Nx`nrR^k}?8%*~O9G9S*jBWjoS&R?WB#!v z{-ixNnOEzgw7$3U(6txN*0SziyBt3R_vv3jEp@=Dr@1t+&H*>Y?I~&1LGRJ0X&TtXPe; z^A$0|wyTn|8?=tUUZwc{G#20+Gsi=jO#)a>8zp1~A|2pm9>|o2erM^CA13VYtw-+G9c$lPE+hy?&4IPAskw!v_+ff5LE%Z?4#}Sdz^yroOxSW0oI>s2tckMHwV)z|6mSu zFN=>}I^CmT1#zoeFErerUk;J=ia1utXfMoTt5H~W)#VRjo*j6@TlN%+XR*6{$BSd4 zGdJFbJ$@0S8?E}V(X?_wN6rwQtFz14XS3`f_(WBVfVJH!h96~b;ZT&YOf_8535!$! z%I-l;cjsvhkfP!8!H@2e*V=#K&BMiYE5h+%tf3Z4EO)sD#2)D@5UR#)NVwNaD-DVK z-3VXQ1UU`o%%(UXg4`o+>b@b=w1H@c-KVxh(V!bl1UptGmPY!DJmcnem%>xcHE^2< z_ZSUR8z6kjox$*);UiiiZR&!zl|Jirvj$F3#R(xZ!D6|5o_?mndd^+QLX@xZlH)oa zO@CqkB#IsO`PzI4Oyx&cFgZ|&?@dK38gNynLmSF%D#?RYsro>r>_4RfNyrP`eTfQ3 zu6rfVa9N(ISN{JnbsIewG7 za9oJnDYwFe-8@U?|NFjah1e~SCh-b|E^5A&?hyy!sz4~8Qus$m}==$<5LoY+3tI%+B_rDOkdpw6>xjdZL;L=wj8X#$=s0GbU!V2i4Wchb2r+ zM2@#fULbY{pN|Kwm)5&hdVP8of}b@b*0TIEah-uy5)`UGv5y(hGKh{uqh%-*#o;=4 zq`@z95V&Y`Js6w<30@^0j0nk{NF9mce~!N=#GhP*WOe^Zdni|E|b< zKZ%i#qZl|n8~?7S9UGtMk86Q@WW_RC#Tqwndjq@6J^3#i-_3P14_8@kXX7V7zntxEQJA+L=Y;@9qiY3E~S@l z#dDr%L!~+sS!J__z=~H=R!4im1ec$!=^qi=dX<1Y9J``i{FiJ|)GZ&H1DY(=oGluM zGEKC2@@t#~-TvQjewfMG-5s!GnNd<*zxAcoHt+~DFyxY3J79y1I1F!MAq~bePZ$Gt zmLuQo&d=v#hc@{CL1gU{v0XNH*CHmUBm}BHVTeIR-FR+(F}@w_2Dz?<)HKz<9E%_t zS68C=_9s2YO2P$<=dXtjMFFAor9Iu`xRW5%l+-{m6N$BZDDz z;5p=6z_Ny$vmG5@ou9fCv~BOS`+0U#sbb-ae02RjS|S9M-(8nI}yZS+L_VxGiLP$ zs2W~j8J75ey!hxSeM+=-FSe0(^VE3a@C0jn#vB{cqLsz+ZLCv#RYx>DrTiR68z5`! z-R62ENx)=n565U-+*CQeMT0$5azyr={nCYIh6UFK!9{CQLB7OV=(WxSx>=F7T+7X) z#D-f^DPzT-rsKIk&i+S2H|Yj5N^)ZaC0qWLJtkc3_aSPFb4*F{{Mz}fQ1?j82%yBH zm!FJXrbxTPv{i?b(_XA=;Q4y=i3;23Ydua`JVEbTSQ(393SJf&-%z~? zn}DkHdG3N-L9#WldH`%3rZQp_J*XLEyFmBn-{@TWh(BszK)9b8-oQflSmBftB+l*n zr1{f+)R=Y+_~BUiHfdti+FA0yfOeA;b~BgcVG}5FoHuL|@%#yma)Lb^ku`{pU?=}A z?4%%P%fon~ZVK4(rB<>`_Ag+-F+|4~02OJt4Ik#Ox|VzyLx2^scI(7P2>C^?e&}J~ zoUFhUyE1BZMXXLCN;S1!cVw6uYV5i4ny3Bz!RZ((96$9j5W{$+ViFRy2OD)sgEAJG zg&iI4cjWkpyGLH@qmwEUwNu$?JTrPZAu*NTSRB)Zku zoJA@vJs?41z2^2Ne|x(AkgQ43KO_B$K~7)NK+zkpI7|boXGr*_UaI331QM{7gv2tg zw`h+%qJV&E^ze1HgewDzWeVw=2YmTWQji$UO$LDHC5^_ z{)paPWfncd9K^3L2kGeL`wEx2PeBX~=FR!DV7mOoSI!y~5y~?77h>Ln>mj8`oV5)N zH#x{d&+mDx{um?4;Dp+H1J>LNgusn@YU3&CzE{#*xNZiViQbYiImmQi!sl?( z++HMJD9R1oaK@59=JPwN*Pd@2y4nMfK$Hi(Kv+(WEhZfZgCr>KLTj>B2H6n$OLbHr zMT>RDUh|I5=%-O09is?d-hU(nl-p9qI(qeg;|D`PT}7zx)~Q^-33OxTYSC;32IBHU zH1qt*(tfe`XaAfP;LHa`ctJPjl?Y-6|M(-2Q3q6p|69jtJq_p=9lG4K1kx~}tC!dP zi{8?lRV*B}*~JwYws;Q+R;~MPvM#B)xI}(e7O>nB(**UXIDfLeCz%R9%AMHJSPQ`i za?9HBs(N?Wz5nXQPieTNFbQEG-ItSr4);?rzz?wHHxsJ~i0yOx9AyH;OHIg3j>t?* z_Do_fFbg&6KVLllEGM7)PAS z;~%mw023n%H9g?Fr-7B4mF`Q3nBn{CUHZElJnkdW__F|&;Zr=eYI>#9i2S0ig|IJE zt=e{35s{E%j@`PQy(g6)s2o_sV4M+Mye0vZFaPvJf#lD6lcBK`^1%^1c9{CYvP%%s z%**!U{)eBmE{mptEgB{O2-oc37hVb-or{>a&eop{pcBYnvUjVUi zeUt|QYjiixhYd%YoyI>{E&>|cnkhGuZSieSrClEDFs}8{@{?#Wz ze~meTaGRdBBi7^1>ipG-gN#`!paHPHa;O!rz~2EM6>jXNo5D6Ogg|r|6qUwOuQ$dV z__O1SEwpXKU!U2=$49_wTu>MtP|kS)mA2knGcvwFkv}0V>?(nQgYzxnF_$rB=;$OZ zEo;IIzQ9AkLy*CS6#4#vv>n;wrkx&73MXk1rxKDVaYkW=#*|jML1YgRIa{Y6+V1m| z*);NVk8JXC+M=Fp5=DIMtcZ+iCc0X?Xi)Hx1O*c%e}#Ht$N6 zqOW$WY}+SioaUOp9?o{32HW=)S4N1rH9)61kgf7}DS1`!6-~ikTiWG-&6lfrl(M-}_LC zy|&FsdkP*{6Z0CwJBs+6#DO(JrRw zCm<(F%`#cjd&_zaDdT}~tJy|Oi;XVoAf_aHUOv=--9x$hON@EZL}LNo^{U4`;hS>o zgd+#=J2kHf3l;&o6nkZ!*1MP>&M3P`;*h^rpLdv>Abk021G}+iZnvujePmDdW5>sD z8mIJrVm?^0N8RAUK4eH|UTt{Ekw#KNj=8!d4X!rO!Gbaa;lCg#K@7kDyb%+2Cn;B86ibs7 zF_yBZ?>jLJ`q?if_t*Q7g513<1Wy0B4qHLRaVp(&R zV04dxYjkhVUn!3FN~-fdkt%VAe(O39df8@jvg*&`^BaMq>$159^E+bPNl%a8Gmxm` zFtslK8?V2=bgC$sJ;_&d_F-Ojd!`r_(o#0JM6Ty%GIJu;F1G9K+ROmypGJHM18iQEH^7Zjp$=J21@G5FOOv0T|kEIGirW;7AP+4PzS?7HVb3~Cs zv}%uHV;X268@`4{WECO5#LVBX6G^Z_e_qFl5^CZrz|j_E2;X<-V;>v8-SEr*f&Qh^ zNq>kW7?8Fb_Yel?c>qzrNBITQGoQSMkM5l2sf7=6as$Os`-IKimjO&CNd6YmH`pYO zfW|7=AT`YKQ(b6n$V-Y(8`6Jzo#eheE%wzJ>kf=WXN>aG`&bV*fS(Jf0-b|xU@cMd zhQ*YQ5z00o-vWJ|kXQA|p=&XT*DUx530t~}C@m?ly@Sk_93^;#KJlsZU4#FLZ2aUR zfTUQ}`h}EnCf{qoA}F})`3gUcbI`?UV(bzkPU(YNc%cH#J0qqq$?-ZU5(D=gM6Ye5 zjXr;(?0xkfr0MHLZVL)P-y`XINoiII9Ebml%fAsl^2H48QB|uuB+Ut7JRq8p&>B`~ zhtD$IfRGV08aL_|@85GN$cp)zVq`o(Y>7>>veuiSNJ&~KWoalLlh)f)Rg!oiI;v+T zApXMCQb&LtAOn?Ag%uI|Aw(<#(gkcuD|Qc{?~36E1Kc4g4BSQ3zH4uvKB1;|Dg8`@ zqcJ#@Kdh@-^cVRMSk=bzDS)3R#6&@{MaK7ns5myL#p{JIk8&0Eg5%_X|FRRp-F7;6BnTU39G z%3ncDD^y}T%Bhy$5P2MfG&;@soTHY~mmRD}g^#GqN8pDz;V zl1dVLdsty!p?l$9Xqmj#AH3%+xBF*188(Ea5dqH|1KIRP%*K6I99nEaQKWq4-5hmH z-!sleJx3UI$MX0kdsdSD+Af{MlMU=P$E+?>YoJr}r0y!Bc_6$`hv@Hk>EJcCQwc~^ z8G50HMRrr!ao$1$7BMtW(%sY&m=mahWEl5*Ci}=;Nhd3Wfg6u2=9ixv2$H(Kj?Xo6 zuqqI!qzFm;p#4ZM246dT-Jnpic^Y!*4z;Q)okwAlSohGCPzP_fgObU+K_x~KSU7U;T`O$1t}*eSV#vBen8)^RH6 z#Hk*)<1s#D%c>~#&QgW9G2L|u=wJVei*{>QHftg6Ca+2=L1t9JE`0lC^r_Ai6 z5z5?gxpjw0LpY@??7Ys5B@*deZq~%*n8KBa2@<6xp2}FaP;?#9XWqf0T;ekmn26DS z+!JZdq&#cq`d5n?c5P&?7vEw@6Q$K4#n$c5j6}pNdpstKLBv}4w6pXYfI0*Y{ro)z zP1$GlZNiOgW^Vo^e94vH%D4U=|3^547=By{e;DJZqw#BV-s>Ao&sh(Zjgk6$qjOqX z20;HFDeuC_?K>Bv%@DAF2BiO!-E9BPI>C+;rI0l+3nHZ>e*H!x_z@i|Dm zy={I2EMGr>Pl05-_L1QLMFrU z5I*q=!@I@rtlCDtP?^p^s=yk%qu}(J8D8s#hoiATV02f)S02B1fvX2G6z6nuG_2`f zuhrNOwXyfiPmVw-ZTBurNmX`XZNi>G>woqH$;j}7`DN?(0P;5QCxAN*zZ1T>bY=0# zKgV6q8`P&m--bqjBLaV)tumQ@`g)S*i;%7ASF9}{22dGCPm+0Id&BzJ-+?7K$s=*D%-pa?Hjfp z%W-5vktx7JdjqDQxW$XGBN>BVOd}vpf14C$>DX_gQ5i*EoP#hS1 zy}~SHv$7(dn3gY7{0$0EV*lM z>KTfUuy>k;_pNt$z=w}sM|;`(==Zha=ZeElf9&$Mu7wGa`9VK0aJtn3EK18V2-dg8 zUkj3}L@bqD;z{>1lR!gt3w$wbGX=hRmYZbI5u7T_`e6O}K0z5PvPRZ$Ej!633WMezkA=^PI6EW69jATJD+zmt=g017 zRVB%l)$zJw=I>{_@67if&S9FXU+FHoMp4!`PBh>oATBUY$4S=E7|OcC;v%51JLVHA z6&e02DH=#G3CYPLzNB^60=jWLhhns>3y(OzKvjL@-p7!^+GvXiUn?_hYIi^n=S7xv ztHD%+byo9TALbIlXnGqzGlPwx;di96`#A>niNc$D5n(n2a!8$C4J}`$F3^Mj4dRDw zH0Qf)R#na4G4|6-$1%?9 z=WRTGxLT|D*THVj4fRSnKelp#xKisJEYV{(qC1FM1u-DtJ5Wd-W4(M3=f2c;%o#bV zN@(}B7@?_amKSZVI}>7>E2aok>gcpjD6xIqZl4hm-<>I-8qbZ-9*RP8JOpJEZCpPv zTx?>M8n^Ed0<|Es)4jUYm~5!VH#YARXJ~1d+j#60OL2al(QvnPc346W=&EcnsXXI) z=eS(T_5G^zw-OI{uu)88fN1;%ZsN+%^Zb}fH(Z`_-utaLL0HY*8@$}Qc=phumG;Sd zz0x{UE9Z48{B^PSJMzW~{k73U`rLomxCNb=d}02DDy>t#;lT}~dL+m>eeaYSn|uq3 zlnt!UtG1j>zkhp5+Zq(!5$jare0Y;)8Rupdiq!!~B7C7Xc4s9*1o+epdP7LdjkGUurFv>gM`G7i9b`I7bvs z$A9{8T%lmikv z`aS+Y^MVu?^RyJ+o!>OvZ#|TjS@bg-!nxEDBE;Ph-+D37wDfuRj1@0-pEay%xGt+# zv+Y3`SG*;E9*(S+Yd2eGq+BARJatR)HM#E>nOb<9TwC<(gCV%%p@{djfqj55#~9hc%w&2d;1O7}^|OVfvu(9%x$-J_qshuCy+@0@!%>g_o2;ltspPX+ zgupBquF%==)2caGRcGa2`XUJvlFWeY-c6j|zucEcmj$mUFU~RtDRn<<$prh0ig9b1 zqxdfbQsB9yBB=Pt-IZTsVZ`!G(x3(zxl1#2ihAjYafOMfW~4O|9o#xPnzXc7Ph6gS z?<^caxhi~mi_! z()>`SeB?^F)kAw;GEGRWm;Obhjt_L4@8E{kQaD9V37&64xko{4ej)f>U9qf9<_dzu zZzL%GSk!ymXrylL|Iub&2fpQbMf=EnnD=kiXpw9G%uq)sz-vq6r@fv!x8Qu?^sZXB zLEd+|X3?Iw(U}*+pe%tyyK@mf<2b#%&|?|?J#39ph6MY_VTEhyZwWkS&9)yzNf>IXo(2fvPspE zoQ-iZCjud&9Z^pCHh56t6!Zn5Fv1=dNKm?{36W+pp6-+EKH&E|!`JVwU8>7RB5Ph1 zqhECEw$n&bxQzT$(hH5=5=$e~FPMwsJ z(yTsk{Cd5=4J0iY{J#SN2w)k{#6V1{MZkHd`}KvK`9KiAoRb@5wQHq)#)g-z`3nSZF zQ)D>u3?4Ps)cjLEs9Y#;+|sFgA>ah42q<86`x=c>ulkdY2UeBGoJ!76xrn7uYjlUH zF!8UM@3Eq6Muyf-XEx1S$2KDj6?-@RYj<3a6)%<|_E=e0 zQqb?_zPlLMtyr6ENnsio;!fOvZVG|w19+_j9#yfNn3u`8tj@ROiDXSk3}6UKwtvhdk2y^=s3M?o$il$ zkg4yu*5o?V>}CUtnxCQ8QZI7O5;~6}6)+b$ zFD6-n@bF0?H0qezQp7HGi?Vnay087SWv$QaoB%BSgQjloR*u=7Y47~}cNgsTu;Hgc zrE?PCT_JpKEg>gkO@)YaP~0e$9otBk=g{tyM1vy4>*lI|Rl;UYl2_~iG0>EL-~7hfK2QC6(>|fMGB9s!!RF$dT{v#^*=)l0^4T%s zWXE&HYWk&j)4mH9GNt2V=;m8I?EZZF9s1MD&S<(dZCl-#TR-7MpOrtW`Fq=b`p!F6 zn;W22)eX7wp$AdB*#y`sF%|~AQscCOZanbT900obE?6@wU#hz0)TfVqzStFu=?1#K zW^Adydm?U)TYcdXm@~Sb`5-GbSI6&oXx&zu*Q`jLxZ|+Fv#)slq?yA2lj#3!kG(&x z2U@tb$wB|F7?IlDXD@4Y%x<$$|DAb%gSkn1qjq`QcH*Bl{>-75T~|Hiy1MbT z*ZWdrTkW}7es}*8t$|tWUOM6K;)ASyY|>}m?eeATIbQ$JRj+>ZH76Z^{a%rcY3x-$ zV`!b3+thVy_~HSiCC(jnpLhh1_?c%_jJ|VkzbssIa)0UbR?pk&k01TX{8HbYI``I- zF9yI*q)m;}S*!0~*msc~*naYr0O+p`8Z~Nm>iTS|eO-54R(8Mq+V6VooxVKzg)h8{ zKAt+J5J)$)zP)n3Hc0`%wWn_}VuerNaiyUjo<02CtA+N#SNsKfS8DAsGnW%DZB;h`>qg!7+tpNuWMnU{rC(mYYnaV<$W0@6KJzx}mh8K3f{M0Pclal^j(b8rSQ}Tr zaS>Wy-e_u+Gb&H*v*=;!7L7i$OG)hM(WV~prUy=}>9y$bSFi2!Ac#{Itah$B<>Ib9 zyZG%B@2~Cplgu^!ZuoXWzObjgWXBG>@FCHrAF+GPznrslo{3#1+_SI!f;z9eM?i54 zKDpH2YPYt&XKDZ+jvrSylc*8tCx*vCsX?NcdeXK z)0qAz-j&9~L#`NBwSGYKl}C&#_F~`4xAJv6Z@1r*S7PJ8FZ^o1p-N3{>lgJm&&$@Y z^UuhNo7dVdKX&eGU$1NS%ln-f>z>!IW0$Wjz)`r8S{+`y0aL%1GS1oYP!s zYI!GH{{pXr&j*7_e$TrTf*C%c!Fzs0-Y>dcFSzTFfi@Q<{rqjZ=M)I7Ff6lbn zla$QpG3~KOpHke)U30Cd3ZS!}_RFhW9$Fl{lCXUeOYkD5rt8}hZk%DqW^itSdrAmg z_a=%e=rK(MnH1OcGDCJS!_2nwotV8s=x} zedoe+4nBmae3N@s&az?#zu-B&HTnk{c3r>7A%cT-Tm*ScTvQ7b^1Hh|xkb3<4`C-o z?-W&5%Hl#|3#QkZ%lvVMEy6(XA|725v!9SS6(pTl(P?}ONa_CZTvPJndXq9r=c-JT z;$eFnrLsVhw_nm6XaD1xxD8RkP0h5UlQ2=oqz+%zb)9K+RO%-o`32hI4V;65R~V=B z%Mg($lOoJdsD+>g`7XQFkrCy^Jvi0r&nbgKWI8p|N}~M8gLvaCs4eb^)z6f(i`%1Hsvj zjM;(S977KDOya5jF&j6`WWmjm;*?&|!kVG^p~}ITe#^fp3e-v?rzKlZd8ESet^ya# z*4zI6yH=*S^=}WWw-oSwh3~8RMtei^Ur?TBw&P~8IifXbX!V@%9kLz4_4($s@$Og+~p` zp+QV?EuNIjF-Rw|J5j4Bn8QKWd3tRkwGf`1Q&Oa4T9e_E^I z$gYjOhHDH43R?bUj*)Qi(8p(8As*I_{TzAl?LoR&p`(jtI#38f*M?EikfES66s>k) zr}`Sb@_JAEZRbs*QHfM!wA-up!GUSzZdQnKV%3TB}=2Y)`kMFdn7|@g%9pRjj<%+=8*T#P3x0LTA+6$s3Z;o;CEt8$(H__ z{VEpb0{fA<6lx(-TLM>06fi^eu_XbETI-OA#SZtW;kySXju@t{dcCav5#}cF8uMua-~M(Qq^wfX2i~n2>lBK(dLL%<5@G{ZUUQ&Q@&vl z*hS^Jef#=Gn9Yjx3H#l|GY+kiK)NJ8CkJ(9e?}inOQg%#LZWrtkV^pwqDK}n3wBs& zDF*uR8v{|sG}ARNxuvKkIUb(cE1=<8%mg=5E8zjWYB4?At zRoz=@Nx`x&GIgpbS0#AKHSq}C#Py3w5ux-1lkPaa{<114wj3HMVahmXhj1BFhyD^t z^9;{o5(hE3E>TYUiIN#nVjmO)nWH3*66or(b%_m_v4sRL{N!I)IoVz7-kE^WH>ZMW z+M^rqS4{d)2UaWI zlMme&Bi%+b321xEfNk~-;|#Nsuc&QmbfEi;tIuex$b$m2V|i!${m=dAL>;e6<;Nc% z;qUBM>1F;}^;tSe(?pn~&w>0$8N)|kqBKjBblx9HlT?vL=6PsWQ>K%R^s33P_Pw1( zx+oB!x~1oow+oyr6#~zOU^9mfYMH0dKp2<~?OUDtm>1dRc4|%)wyV~F0PS3`T>OxA z;nxB4w5qBe3!7qd>i2eCY#)@t%*_&YS`8Dy)i2b$I$9;{ecs`HjC1@o-9DdOPUeyx z;e4xt0da7Epx@NlR2Stdy~I97Iw%=nNe%)UOI416oaSj}Sr}Eu8$TN_C~PHg3^pfK z!6e@_R1Mk#)ks3~9eb~29o=;k1u{agqcgbVV?+;YVC7G=o=+8TsI^dFX7=PoHE5T} zo#0m<9@z-7@c^cm_rgfkL|5s3sSu$_P(K`zP&S*y)94IiIke@Wk%_vb5CPAiHyd*B zuJ-x@SO|p;=0tD)tz~~PD7=C+2U8+t^)X71Be&1j1N5AFO_OakST^VRX z_5kP*MxI-?WQx+cR<>W>)Epk;*p$Mv?p6j8RthzaDyyU^ql9KE?T*Mz)ZR>?f|F+t zREeQUMY^Vtyvn;zD>`)NBBO-a#%aDc-G4&hFh_W|UKe9om6hzxGlxSZLCT?uaf?(b(ib3xMypE&i>wMe!L-hCpi>R=Ri1VWuuhk!_XX}PHj;;w z9XY%8P~5)l2|ry2@i{f&a+Y~GHg&m;|Nd*V4;@@Z7YW|@MjN1sh~^1>4ovY6=3ppK z9eniWaZ5GSVUxLJP}b_*o)7PHG+L!&Wz-ldg2lC`CR2eyK;MEfY>Nmk;WDeYG4?_- z2A+kL6#Hu*a*~c3Z={C;&pZ=^oEG8$X)WLIN2$kvD72OKu&xF8nUMm-;kVkT!AQDT zb-m!{=>XaG2uXi|w8khH;=c8Azj#SvQwCAmC>IRK5qlbuj90?jS1~`0+F)}|*+7&2)wFaqj-2W{1luVURatT- zAnlZWhAM?Ddve5(bOnkwA9K!hh2#n80ZdF;+Rn#5iMIxGR9Kz1`|UWh6>Vwg$yY`y zpcOm}#2`Wg)Bx=EGNVcwg6c*QmDwf2&{aH!s__8GNm)lS&@$x|BkUdYQwI?>E2&V1~`5@DWh9Aw!%LnZf`gfn?aabSLCI2pW}iTf$oLwzj1`d)HTYX_xxGcYHCh zs$cpLm z)zRvZ$eiIP9H_ru*)^iYRNJG&4cA8PEd>~fic&i6f7~@n(9%!i2VLOzm|?7UCJm(w zi6a;2s9BP|)(^=(xu|B1;w26cNMVd|bl9ZgVEL57{#e4Ia|xG_M5aRt4-B``V~Vsl zCDN!v;v)_g1xQ@ZKOBRoPtZ6&HP4Ng2fGB;6Ugxl=9i)KOe`RUqE&(iW7oOFJ$oPg@4&V1CVe*}d8HxKlG2;lvH1dI)BZ0uc}oq%p}sX&?n ze^2fvs==Q1_Bedy!lvNA9*>Uz33 zhE&XXd(lylL4oIh!GZnHecj|txT>yO8>^qY%(y?B;Tppl#t7yOYze#vq#8^aMzDZb YLK^d5CO(feU_df>y85}Sb4q9e0Be`**{8_ndlqdgjcTGH1@5rAvWm>DH}V&z(E>{Q2|u@89nQ znoBxR{K>+|z@W#V1JVle69d~nhv}!E7VV7D!$l=+#gyARX+eW7x`wT@Cg?1ihH6;1 zs$!+xj1Yt%W31lvY*ooh8##Wqt4P*f&)W2{!b0}^@kv>5x2zLQef-gZgT0SEg>hLF z)Pd`+x;*(#oF^Yc1wYmptOPqEY|_Nz%wH;O`WPI6ayD{2tAO4N zo7{UG#GByI2%_fo|5LqMv{6N+A1o@_2o{w)&t4I@GfML`SWvEy;UY+Xf4Xzz&KO;h zV_?(HH9iCh`e$qcdSYD|*JluqH{jv}kl>0fV4tmS-PB+scb>_h18CFP6lf@4^@?vqT-$&hMpcE*)wGd!;~q-Q>IkUnZqz=PVt;M zK*p3gbLK2v%CK~4^3tV1#?q}@8MbbX+PXD)>(;G%_cH9=n|$sZ!?|yxmE{-7;w@N47?rU=3X_NkV zU|o{PnRTZ;lXp4>+)hZU_|Lw%*va*6=<@jI@BP^`_OsZ?pZg-2AaGf|;i2L0<>du@ zeRrO4er03}pLSxdREd>pap^;~&E+}=JYKy#vHnLI=Z$}pPyA_`zG;G~<$`Br2do;7 z$Heivv0AeyJYVI({@6?X6r+V~XS2Cs!|bddDqJz@2lKf$~4dA1c%lfOT+5KMUSWi#X5(9ePxx_W1Bsf2+N)z4*}Q$iB}K{RAP diff --git a/site/reference/html/images/admons/draft.png b/site/reference/html/images/admons/draft.png deleted file mode 100644 index 0084708c9b8287c51efa6b40b8d492854191455e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17454 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 diff --git a/site/reference/html/images/admons/home.gif b/site/reference/html/images/admons/home.gif deleted file mode 100644 index 6784f5bb01e0104c60e006a2ed525163a380135c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmV-H0lxl6Nk%v~VJHA70KxzO;Nak3U|_JYumAu6&;S7N@bCZt@Bjb+EC2ui04M+` z000C22)f+N_DFSAmXsV{#*oJWIwOJ|OFii&dHVi$1?u8o=2teG> zb~7H4%2JKz`Tcy)XEL^=cAP+G_P7moKVb2g%$4rYhp9PeRzLz zfrD6ufORfRiHeIHgKCh5l6Fj1nwy-RR)UybJ_V$url+TLhynwsuCA(~Rj;(Av5lgv zwwtvDw^OsE0|vwftp&x&!i>OQw#ml^r_#R6Z_dKdq|~Li{txWV+q;;-NCjLKH8RzODs`x)zXFqfx?o2&^85@jF7AWJN0jDQd6 TqQ?;{LW&$ovZP522><{)rIw!r diff --git a/site/reference/html/images/admons/home.png b/site/reference/html/images/admons/home.png deleted file mode 100644 index cbb711de712dcf06597a3a8a3d95f6fefda1f245..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcmeAS@N?(olHy`uVBq!ia0vp^%0SG|!3-oLGuzY{7?>FXd_r6WdIS`E6g8)48qP6v zn&afP)GK*ya`E2cmc1=K$9krmo3ixW(yjNl9=mt!-1BqS-d}tE{`vdw@Bfd2(GVCG zA@J$l5_e#hU`+CMcVXyYmGuB}CVRR#hE&{I8+eiLumVSprtq8v761QlTpYPgC-&05 zDJ{&8o?4V1EYqU7+)vOI#yLg7ec#$`gxH85}f}H9d0^ z(^GvD(=(H^6-@Mu^ehxCE%gm7^bHIZl8Z8nODY|5D~n4qll4-I^-@X;^7BgclJj#X z?o!+VG)@a_TxNP+Vo52`JVR3xV`HP#G)t4DL{lRpBV!ZeBojj;vlKG}W79NC!#D3= nHUM?;fpi4`tz|GatuQpzHqbT@s&o4Ulwt66^>bP0l+XkK0lack diff --git a/site/reference/html/images/admons/important.gif b/site/reference/html/images/admons/important.gif deleted file mode 100644 index 6795d9a819874ca8b833c4d4993988721489070f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1003 zcmd5)v2xQu5Iutd0|w+k5&Zs3?l2X}aDS zjTF}vbzOHH$Mba8b;e`IbzRT%eBTcOF$gq_YY0gQX<;}D0zVAhF!bZtiem@kQ53ld zc?kJw3X()jQz=b5X{r%YqZCjoWEse^T9yffD1>wGXnD2O6PLX4*vhfx$E#2ysKF~)d4pDz}RBuUaVC4^8)m&+y7^CACN zNWZET0BmraH<<4P+`FFGYnVCKQ9;ZBR3T)qVf|%U7d>simE()pGuDQwHb2TG+MBQ_ zvDDA4Qf1%Pj=rj3vOLN4H;wu(_qSJ$@rtK60JzIpt9fbL=6P}WBLJ%VyrBKnwv9gL z@+koKj|(oEHhf+1r)*HA;C;h{WiuO<>j@AFLq1UdID5A%&u-GCYUTM&`rF#A&P{r^ z_xRIVhqhjHEgv=NdwEBz@%x57)QYSpY=k4uyJx0tows>V2jGshqK7Z@I~q3m5W5c^ zZt#o~c$MEO+~MK7@*>Lh!0mEumT-7-ns3eG+lQO)ySz&7zEB7GF&sm<)jwePAZ~s8 Q_s=i~Dg!i1^#?fn4NukiE&u=k diff --git a/site/reference/html/images/admons/important.png b/site/reference/html/images/admons/important.png deleted file mode 100644 index ad57f6f72e2c4ecf45f1443887956132174516b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1178 zcmV;L1ZDe)P)moeK~^j3|1ZFhpMb?+WF}Ff9N7 zmErhobEp9j5E&T>5I`t;kO9cfTd$9u{p)!4mdSYr_oELMKxO`8fExuu`}Xa_X%s*J z;k5%RU^)9_1HbrEAnW_@&$?VY5IT%y0zUnF^O@-#d^ z;BG^A?vn+{PTFEX1{PN_GJ*uLxC){aAb@cC1E)8D`1jwRbIx0;O9}pC`Tg?kSGIp< zKB_&OY}`0CurjlYiG39lllaN_k5hz2i0S#$-wFT!|K4`;dcMU?>>(H|ck|bajPDf_+bTg z9%3_tgdnDq97;?KBm#f{qP-0yYXC*uuG?Mj|F0AjX8-!(|L1QU8UmSSvSIlAu=cKj zft)Ik{gLSn|38s`tUu4+xosx6OhMQHyOWrHdNZ*8{mAqd7%Lx{-+cQ2*+^dNDRk(nWU|nV9%kgwK6Q#22j7&lq?ctN;4*_ZRE0Uz={R|6yke zQkMELkC#ILdnjd^T)1_|=EBpfoPXH_ef2r?CH`jZX8HMLU>HeX6b8fym`sd4= z%V{i6<|iS`5=eaieto~1!*jh@!qUoy*wp&!-sMH10>A)SzI-{csg;q5nc@GxKY#u( zGcymu#0L;yBs+=bE+QxUz*ETMkC*SgJMtHp!dZa9&iL);Pf0#K32t>EE_rqq4)QF3 z2GNN}%g?_pcF{3rW8nk}{ABp~mFd0ke+i)MufM+@e|`A;&DUR_6;uTxO=TiDSh+~H z;N$nVt8RH1>2fgsXJP)&%EG|P@}K=H(+5TdM*e@opP4=~{%7Q2;A3HCeEi|*@!L;b zWv1y%d6E{%pMSnzbivnLlTDOI{O{kt{}}%LVfgif`TMuO9|i7mewF;q%`Xbfvfmg! zv9d6K`tbGKZI*b04V{+d%EvDF`_CUx+%WwA%le<`)en|+&lrFG z|K=yiq#(%6!2SO7>udMKWAv5*>raxC>7(~ow%@7b=f9<RrvN?@N=6_W$>fXUp?HoLmA7B{mTyQNIQz6=yDPUS?({d<7(_ z;Lo>@5Bl65mWsTpk!*AZH8Uh6B%VEcMnY{)5PbdqOG-`|ly8}!5q{vn0f-be%c31S scAPwUQdCqlK0cnCn|rtvb~LvD06A7<`Vr(<>Hq)$07*qoM6N<$fjIb=LGEI8QAA*>a1B0!;`T|n7uj>pG`jtu{evhJMNxcGSe4+aUA4;zBR~SJyxQRUcWR@_F-^jeWYB);NUiculZ3jmx6N0 zeB+OSXDhy@IoCx0FO{tph>zHm!T!klb*W-Q^N$-zxf}}=>~`{%GD&ps=U<*F$^Pgw z_kzS@O+PsF&r}G^Pim1AepDS}@Ytzl3Ts+UM}N_=nLk9*dAj;P>|etE;is#v!2PUi yKjIc2Q@7UKxAw<}hlktwFXd_r6qS{MX+1QdG|HK%AA z&M|bFA9tAudUsBZ|kvp$Id-JckTVP=kK4t z|Nj2}C>RZap&SB+ixVCKvjk(3x4R2N2dk_Hkkjkw;uunKYwyH|T!$5ST0$SiY~H5U zR{cLbR)lT!-5c|b6rGCX%N?2P<`-xxUu`gZx87&*3!~4wH@%p0)WuYX}UBIC~8cAiK_+plk!-xP|nq~%Rem@g?39waS$dFIAw`2be&`&H`~ zup7N@y!g@N+18CSR#dLnIlgB9pXN>WRz-=n38I0oRnmeW@(a^WRPZVkYb)}kZ6%y pT0bWnsEZGzD*$LMgRyCap{cfkwt-Nc+b5t5gQu&X%Q~loCIEjWXuALa diff --git a/site/reference/html/images/admons/note.gif b/site/reference/html/images/admons/note.gif deleted file mode 100644 index f329d359e55c7ed753170a6f04fbc0cba1e1e565..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 580 zcmZ?wbhEHblwgox_`=Ho1YTZVK|w)LQBlds$=TW2#l^+d)zvL6Ej>LwQ>IK=x^(H* zty}l*-FxiVv2*9nUAuPe-o1OzpFe;9{{8>||AFElBX9%7pDc_F45AD=ASEC>8Cd@% zghGJlBo$966GSzJUe!6ZN$1q35SXB^-zJAkEPj)pXq*a$h_ zXQ+sXsjhEmXhNv37hJ?OaLOg1X|~+1jSyWR(o`3y(c1;Ai!}%$em*Glyc1BwlJ~NK zuZpLThNs9@k1ImH0$Wth2s`>W>73rA(RIXT!4{9MLpCC+wq2hkd_`O*d~)g9;?U*N zC}OI4M1Z6Hl7Y`-pGiWx6O;l)uFCkcxOF@EUU3NwS>oY6#RI6O?U2byr$d1v9)TjN znwNw$j~n?OWwbpf2zH99Zo*Lqk)s;^7gg9U27sNV>(8nyV%m64QG)9cM8x-WNa$(j zzz`MJAQq_8eSmmjy7}|Lu@zf kf(CKug-JSrEM6BktMtGlBGk2ik;bV{KB5sIO^OWG0Fd3m^#A|> diff --git a/site/reference/html/images/admons/note.png b/site/reference/html/images/admons/note.png deleted file mode 100644 index ad57f6f72e2c4ecf45f1443887956132174516b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1178 zcmV;L1ZDe)P)moeK~^j3|1ZFhpMb?+WF}Ff9N7 zmErhobEp9j5E&T>5I`t;kO9cfTd$9u{p)!4mdSYr_oELMKxO`8fExuu`}Xa_X%s*J z;k5%RU^)9_1HbrEAnW_@&$?VY5IT%y0zUnF^O@-#d^ z;BG^A?vn+{PTFEX1{PN_GJ*uLxC){aAb@cC1E)8D`1jwRbIx0;O9}pC`Tg?kSGIp< zKB_&OY}`0CurjlYiG39lllaN_k5hz2i0S#$-wFT!|K4`;dcMU?>>(H|ck|bajPDf_+bTg z9%3_tgdnDq97;?KBm#f{qP-0yYXC*uuG?Mj|F0AjX8-!(|L1QU8UmSSvSIlAu=cKj zft)Ik{gLSn|38s`tUu4+xosx6OhMQHyOWrHdNZ*8{mAqd7%Lx{-+cQ2*+^dNDRk(nWU|nV9%kgwK6Q#22j7&lq?ctN;4*_ZRE0Uz={R|6yke zQkMELkC#ILdnjd^T)1_|=EBpfoPXH_ef2r?CH`jZX8HMLU>HeX6b8fym`sd4= z%V{i6<|iS`5=eaieto~1!*jh@!qUoy*wp&!-sMH10>A)SzI-{csg;q5nc@GxKY#u( zGcymu#0L;yBs+=bE+QxUz*ETMkC*SgJMtHp!dZa9&iL);Pf0#K32t>EE_rqq4)QF3 z2GNN}%g?_pcF{3rW8nk}{ABp~mFd0ke+i)MufM+@e|`A;&DUR_6;uTxO=TiDSh+~H z;N$nVt8RH1>2fgsXJP)&%EG|P@}K=H(+5TdM*e@opP4=~{%7Q2;A3HCeEi|*@!L;b zWv1y%d6E{%pMSnzbivnLlTDOI{O{kt{}}%LVfgif`TMuO9|i7mewF;q%`Xbfvfmg! zv9d6K`tbGKZI*b04V{+d%EvDF`_CUx+%WwA%le<`)en|+&lrFG z|K=yiq#(%6!2SO7>udMKWAv5*>raxC>7(~ow%@7b=f9<RrvN?@N=6_W$>fXUp?HoLmA7B{mTyQNIQz6=yDPUS?({d<7(_ z;Lo>@5Bl65mWsTpk!*AZH8Uh6B%VEcMnY{)5PbdqOG-`|ly8}!5q{vn0f-be%c31S scAPwUQdCqlK0cnCn|rtvb~LvD06A7<`Vr(<>Hq)$07*qoM6N<$fjIb=LGEI8QAA*>a1V#C72?E=btEDjqN9qpDd4zl5RF#mYJf^(P5PkwoZW(JQ{ zF_D*4y!wR%9~DOmG#sD7{_&y;#{p%(<{xE#Uw&*>uv^H)Skbd{qJrHLc7}?c9UtQz zYXTT6YHoZvu)pcYrmCD9p$~wJBmbf!%0P@OYB}B?fNF{YnIe9ySJ<~ln9<}1LcYr;@((b@HMtAlPLh^PsKR!G>+|CbXxWHL3#->LwIhe?U cW`4ULC`3qLrpm*X4$b9ricTFB5n!+e06MwKH~;_u diff --git a/site/reference/html/images/admons/prev.png b/site/reference/html/images/admons/prev.png deleted file mode 100644 index cf24654f8a9d6826bf5ee3f6b640d0b34f44d2ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 zcmeAS@N?(olHy`uVBq!ia0vp^%0SG|!3-oLGuzY{7?>FXd_r6qS{MX+1QdG|HK%AA z&M|bFA9tAudO|H@7THL=dQiK_Wb?x_ut?D z9|fZ!FvLS(&zmEwfLVeu$=lt9p@UV{1IVfNba4!+xV3fSLB2x#g-7SkiDHi<0%5c709k4@>c%U5PUn6XiNrQ7+$BX-K(BEj>;XDjvwZcIF~ zikDl%a$|T|&B@5M-I14sdv^1r*gkp|z3k=crb$1i`yH45`zBpRc(KYI-u^rPzjiy@ zGH(5%+Qq}Yvm59P=MvY5lHmNblJdl&R0anPWlhiA#Pn3(#PrPMYy}fNBRvZROG|wN z3w;Aah2)~l;*v^-+{)sT%w)aPV!f2og8aM^z2yAdiMtec0FBcE8<&}$msnB?G|wQ- z!aOlC%^=CZB-O|yDbdi(G|ec{Bq=S?EGaqB)I9sbjHy6fd>~x`Kx-L{O)CsdwGFfl UgzDTr0c99GUHx3vIVCg!0Q2->tpET3 diff --git a/site/reference/html/images/admons/tip.gif b/site/reference/html/images/admons/tip.gif deleted file mode 100644 index 823f2b417c797bcc5b5af0d86034bbbe68a9c5d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 598 zcmaKpzfZzI6vwMTVkAa>9EomJF@dB^cAyaw8YzNW>;V&-Ax?~pOgK0Qkwp3j7=?eJ zp(Bd}iDHPQ&cwK|BZjz$_padR<(hoox1W3W-n*l8G9sLBGh57bgCWc1aD#QQmI@nS1Ofyy{@WiyWQ4xz1!{fdcDD5FdB`<y3!k zEzMQ}>2XNH@2x$azJrio4y76u%{aaSQ8iI0-$_v{WV^70wC+frSXf@6n4D`V#?Bj* zZt`izA4lq-+})D%wiNUU4VVF+%2sLK@TMg8DV7ztp%Z(?@L;tQU1CsK&Qwqezj{Cq zSwCP?&P}GNbF_4EK-+twGeQq!I#zP|Y+{WP*FI?V_Kf=>vV0rySc_v6yVepU`O=gc N_rd2$!U|dD;1^e0&sYEe diff --git a/site/reference/html/images/admons/tip.png b/site/reference/html/images/admons/tip.png deleted file mode 100644 index ad57f6f72e2c4ecf45f1443887956132174516b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1178 zcmV;L1ZDe)P)moeK~^j3|1ZFhpMb?+WF}Ff9N7 zmErhobEp9j5E&T>5I`t;kO9cfTd$9u{p)!4mdSYr_oELMKxO`8fExuu`}Xa_X%s*J z;k5%RU^)9_1HbrEAnW_@&$?VY5IT%y0zUnF^O@-#d^ z;BG^A?vn+{PTFEX1{PN_GJ*uLxC){aAb@cC1E)8D`1jwRbIx0;O9}pC`Tg?kSGIp< zKB_&OY}`0CurjlYiG39lllaN_k5hz2i0S#$-wFT!|K4`;dcMU?>>(H|ck|bajPDf_+bTg z9%3_tgdnDq97;?KBm#f{qP-0yYXC*uuG?Mj|F0AjX8-!(|L1QU8UmSSvSIlAu=cKj zft)Ik{gLSn|38s`tUu4+xosx6OhMQHyOWrHdNZ*8{mAqd7%Lx{-+cQ2*+^dNDRk(nWU|nV9%kgwK6Q#22j7&lq?ctN;4*_ZRE0Uz={R|6yke zQkMELkC#ILdnjd^T)1_|=EBpfoPXH_ef2r?CH`jZX8HMLU>HeX6b8fym`sd4= z%V{i6<|iS`5=eaieto~1!*jh@!qUoy*wp&!-sMH10>A)SzI-{csg;q5nc@GxKY#u( zGcymu#0L;yBs+=bE+QxUz*ETMkC*SgJMtHp!dZa9&iL);Pf0#K32t>EE_rqq4)QF3 z2GNN}%g?_pcF{3rW8nk}{ABp~mFd0ke+i)MufM+@e|`A;&DUR_6;uTxO=TiDSh+~H z;N$nVt8RH1>2fgsXJP)&%EG|P@}K=H(+5TdM*e@opP4=~{%7Q2;A3HCeEi|*@!L;b zWv1y%d6E{%pMSnzbivnLlTDOI{O{kt{}}%LVfgif`TMuO9|i7mewF;q%`Xbfvfmg! zv9d6K`tbGKZI*b04V{+d%EvDF`_CUx+%WwA%le<`)en|+&lrFG z|K=yiq#(%6!2SO7>udMKWAv5*>raxC>7(~ow%@7b=f9<RrvN?@N=6_W$>fXUp?HoLmA7B{mTyQNIQz6=yDPUS?({d<7(_ z;Lo>@5Bl65mWsTpk!*AZH8Uh6B%VEcMnY{)5PbdqOG-`|ly8}!5q{vn0f-be%c31S scAPwUQdCqlK0cnCn|rtvb~LvD06A7<`Vr(<>Hq)$07*qoM6N<$fZ(@38 za<+nro{^q~f~BRtfrY+-p+a&|W^qZSLvCepNoKNMYO!8QX+eHoiC%Jk?!;Y+JAlS% zfsM;d&r2*R1)7&;o@#7ik&>8{Vv?F>U|?x(ZfKHZYGz`bmXczeoR*Z-Hs=yh7cWRx f0MJ?nL(>XNZ3Ars^Rf>h;}|?${an^LB{Ts5OHX0g diff --git a/site/reference/html/images/admons/toc-minus.png b/site/reference/html/images/admons/toc-minus.png deleted file mode 100644 index abbb020c8e2d6705ebc2f0fc17deed30f2977a46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngf0VEhsJkjh1QcOwS?k)@rt9q4-G!sMP)HD-wQzH`-1CumMgJctv6pLi@6hos# qqtv?{|7HPo@q%;(0Ig*(G_A1IHqbUOFZ%#8j=|H_&t;ucLK6V~f=xvL diff --git a/site/reference/html/images/admons/toc-plus.png b/site/reference/html/images/admons/toc-plus.png deleted file mode 100644 index 941312ce0dab168e0efcc5b572e387259880e541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^{6Ngf0VEhsJkjh1QcOwS?k)@rt9q49T#T`K7w7|w?rspM=lmg95OfodLFfd9rOi4*hH8wIdOfpPPHA_l1 vPBO4aOiebg{jIb=LGEI8QAA*>a1V#C72?E=bjEDjqN9qpDd4szjmF#mYJf^(P5Pk#A^PL<$Q zI+;RG?K?R>ZZ+XJpnRtJN17PRgOAG`Ypgh#KAaFZVBhwmiI3&M#ti2gFIJ`xI|LdI z)N_AywPiSv9NPY48`Fms0t^T1xjuG&jrgXxZ|i>{CW9aPigr7S6dxV77JO*m^5e&) zo(}&F0j>Y}9vSZmQL;N0Bl*v`gWrf@#t#YRf*HM~)&2b!mjeThEhE5z G!5RR%al9%3 diff --git a/site/reference/html/images/admons/up.png b/site/reference/html/images/admons/up.png deleted file mode 100644 index 07634de26b325b09b6686543e3743ec58426e64b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1111 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 Q|4LwNc=22{#`)I&0Kw?pcK`qY diff --git a/site/reference/html/images/callouts/1.png b/site/reference/html/images/callouts/1.png deleted file mode 100644 index 7d473430b7bec514f7de12f5769fe7c5859e8c5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQC}X^4DKU-G|w_t}fLBA)Suv#nrW z!^h2QnY_`l!BOq-UXEX{m2up>JTQkX)2m zTvF+fTUlI^nXH#utd~++ke^qgmzgTe~DWM4ffP81J diff --git a/site/reference/html/images/callouts/10.png b/site/reference/html/images/callouts/10.png deleted file mode 100644 index 997bbc8246a316e040e0804174ba260e219d7d33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQWtZ~+OvdJMW|Y+^UT?O-M{rKJsmzxdayJ{ zDCQA!%%@7Jj$q%-wf8e0_jRx8Dqi$}^?K=?6FriQFLv>>oc^CE+aVHhW3=nZ+fQ4!M=ZC7H>3sl|FJr3LwU zC3?yExf6FO?f@F61vV}-Juk7O6lk8Yg;}bFaZ-|HQc7Azopr01?u8M*si- diff --git a/site/reference/html/images/callouts/11.png b/site/reference/html/images/callouts/11.png deleted file mode 100644 index ce47dac3f52ac49017749a3fea53db57d006993c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1SD^YpWXnZI14-?iy0V%N{XE z)7O>#600DeuDZ?5tOl@ql94%{~0TwC?8m~C^ZqJRG}m@H-L1 z5L@scq?{XUcxG{OP9jig5ySQaTl#^*93bKF#G<^+ymW>G($Cs~V(bw8rA5i93}62@ zzlJGu&d<$F%`0K}c4pdspcorSSx9C{PAbEScbC)|7#JBmT^vIy=9KoYUDZ+`aP)jU z&ny=ErrK^#Gw!AcR}pdfMERuV^@&0$@(#^6b8c@rn^6RWX3pUb z4*6@PZ+H0#u=rjsXzS?6n6*sBGbHqGTU%mCsH?n#%j;eD^2}qe=iX*J@VQ3BRpz+u z{PX#N(^9X${`$90+;!pWs>o@z_n8G)7Uo7PJz`jrS+)QE@=PWHmc~UIw=WmUe73o7 z>^bR(M752aYoNg~ozu7U7&{(U>{s!;bn#f?ItjL^o`e{*EOQHqO;ccnz9hLK5@2cAyw@AaPFL~Cp#02|E|4xeQteNtB7waMs QVCXP-y85}Sb4q9e0GRUFb^rhX diff --git a/site/reference/html/images/callouts/12.png b/site/reference/html/images/callouts/12.png deleted file mode 100644 index 31daf4e2f25b6712499ee32de9c2e3b050b691ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 617 zcmeAS@N?(olHy`uVBq!ia0vp^JRr=$1SD^YpWXnZI14-?iy0V%N{XE z)7O>#600De9$%>2LVd81Yeb1-X-P(Y5yQ%LXFPyHJS9LOm(=3qqRfJl%=|nCVNOM5 zpg0#u+&RCXvM4h>ql94%{~0TwC?8m~C^ZqJRG}m@H-L1 z5L@scq?{XUcxG{OP9jig5ySQaTl#^*93bKF#G<^+ymW>G($Cs~V(bw8rA5i93}62@ zzlJGu&d<$F%`0K}c4pdspcorSSx9C{PAbEScbC)|7#JBmT^vIy=Cn>wTzx1(qV@bS z0hYvspf(--lM>otrqbK$7p{3DzJ|+KN8%5ows)AI?zWk_n>jwEHXrTJecpEW_0xL= z?}N`*R`T~d2{AN${y8T#GEn4hUb&52^}Op@TW4{oc)A6)%$5=G}h# z?O{QLj@aRcAIf&y&OiUN=H2gq=_}V|pWfuReDV|{jwXw~>#w)I|9${XE z)7O>#600Dep5bGK9wD%hYeb1-X-P(Y5yQ%LXFPyHJS9LOm(=3qqRfJl%=|nCVNOM5 zpg0#u+&RCXvM4h>ql94%{~0TwC?8m~C^ZqJRG}m@H-L1 z5L@scq?{XUcxG{OP9jig5ySQaTl#^*93bKF#G<^+ymW>G($Cs~V(bw8rA5i93}62@ zzlJGu&d<$F%`0K}c4pdspcorSSx9C{PAbEScbC)|7#JBmT^vIy=Cn>w>~AWNX^a2R zbkveVY|45D7UnZ&JtjPwvdCCscZp0EA*0()#GOw)UH4-^&)y^E*4%UC)*|J}q_Ss;tN`nd8$>x9$_Xb^O2EpX&@C ZI46EzbLxq-voTO7gQu&X%Q~loCIF_C`w;*D diff --git a/site/reference/html/images/callouts/14.png b/site/reference/html/images/callouts/14.png deleted file mode 100644 index 64014b75fe2e84d45ed861974c72462727979360..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 411 zcmV;M0c8G(P)!ax*-PXaQ9e~6^e1gu=a6a&KSz}bR`+prYG9ayB$BDjWGfIE;t#wl!+ zR3S(jA%y#i_@eOOedXoc%RQe%L;wH~k+s%ZI~)!<=dD%?4MaplaU9QPGski2q3`>r z(}{j@0a$CLl+)={2vLWml*i-oa5#J}DW$gCZB~Z!(!M#)2St|1_V^0qpmCrBof=Y&NUas@LmfSw=)4B4f;8Fu)(eFsv24 zJzXxBrayquXcR?J{XE z)7O>#600De0j~t#c`vY#Yeb1-X-P(Y5yQ%LXFPyHJS9LOm(=3qqRfJl%=|nCVNOM5 zpg0#u+&RCXvM4h>ql94%{~0TwC?8m~C^ZqJRG}m@H-L1 z5L@scq?{XUcxG{OP9jig5ySQaTl#^*93bKF#G<^+ymW>G($Cs~V(bw8rA5i93}62@ zzlJGu&d<$F%`0K}c4pdspcorSSx9C{PAbEScbC)|7#JBmT^vIy=9Eq_Jl&Ka(%QdX zh{H8O%#_7)Tc@t$mM`p4(Ne7omR*~(>gd8_8AZH{=3ms$Fmzm^yL@_+(#aQQ5>7QW z>3g2fIsH(ugM)!V$x4Rr_+!J_XU%4xbz0aE;^N{m@42Z|@0S@TQ=WbP`TMV5Ok;<| z^Ihv+@6tQ{sciRF9dD7Nr=KobwJJ68zJK$<1Pd9rz%4O)*;}Jzj&~nTGMecz>B%lV zK|`fmIc8mp-h8iSXiGFW=C(L+XH4DRxZQX87^-dLuD>odo6YLT@Sw)dfBEIG)v2@6 zR)%mL7GRj1x-&v&+2q@A%a&h0`Lw7|#(w_!tgT!PoJ|+re`lxaY7e*=hH)_rZeB4|imU1$R#1`!P>&$poQl;nzm}mD5ZFopaX|GsS%q*{P~< z;WtmO%lhToBL0i}yfkaOt?EN=nkLNGuU`ywhI5H)L`iUdT1k0gQ7VIjhO(w-Zen_> zZ(@38a<+nro{^q~f~BRtfrY+-p+a&|W^qZSLvCepNoKNMYO!8QX+eHoiC%Jk?!;Y+ zJAlS%fsM;d&r2*R1)67JkeZlkYGj#gX_9E3W@4U_nw*@Ln38B@k(iuhnUeN2eF0kK0(Y1u|9Rc(19XFPiEBhjaDG}zd16s2gM)^$re|(qda7?? zdS-IAf{C7yo`r&?rM`iMzJZ}aa#3b+Nu@(>WpPPnvR-PjUP@^}eqM=Qa(?c_U5Yz^ z#%Y0#%S_KpEGY$=XJL?(l#*ybuErX#^g`ttQfwn3r>K)tuC)r#2`iJ>Prt42#Ndx#Uc~1)>aw z3jE@Q4|!9Z%lVv}- zc=48cF7H)t`(Ck`^+mtha~Np7bBSw2NpOBzNqJ&XDuaWDvZiNlVtT4?VtQtBwt|VC zk)DNurKP@sg}#BILUK`NaY>~^Ze?*vX0l#tv0h4PL4IC|UUGi!#9fLzfW~Qojmu2W zODrh`nrE42VU(7fm~5G9U~HM3l#*m_WNcxOXkuzEX4g z+-vfUhb0A>b04=Im{6XiQd1v%r%>h0$G8U7E1If8OQ!N~xOYY5h0NDT$p9(iZ?Q&e z18-(+l~J8O`)kc}e&uL$eW&>P-#`~Qm$*ih1m~xflqVLYGB{``YkKA;rl!p+yCFkc(+@-h!Xq*<< zxXkpt#FA2=d1VEBsYynrsitN|Y01eJ$;p;U#>wWX2KP5v&I9V=1L+C? fTFYQ)RAFeOZJ=$?lDoSWD8u0C>gTe~DWM4f^}upZ diff --git a/site/reference/html/images/callouts/6.png b/site/reference/html/images/callouts/6.png deleted file mode 100644 index 0ba694af6c07d947d219b45a629bd32c60a0f5fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQ*)Bra@SU# zmiz#bR~{$s2si{S(aY|Z}Vd7tb ouUmn-_&~Y>fYve?8dVq?X&Y!8wB+ut1u%w%U~xZhnMEEs6JbBSw2NpOBzNqJ&XDuaWDvZiNlVtT4?VtQtBwt|VC zk)DNurKP@sg}#BILUK`NaY>~^Ze?*vX0l#tv0h4PL4IC|UUGi!#9fLzfW~Qojmu2W zODrh`nrCEbVQgk$XkwI@Y+{_8nv`N>YGIaQkz#0QY@Te9lBQ<)awbq0A4pdK&{_sV bqY6VKZ3AtCmfYR7Kp6&4S3j3^P6u&S`V$cAh@R~F=4@V4jxkzlaQrcFYWK{)(`o5XZnut z=nE4SU2g1ZW%;@@I$>_e3F8a=8WK~|CVXt1DqisQxtIX|`YW_n&?Nh#1gQ}d)$LrYTw(_{nVG)tp2V+#}WG*e^KRLdkoLz7g? qn(IA84Qgo42`r6v<+Hvch>@C7(8A5T-G@yGywn*$#_oy diff --git a/site/reference/html/images/callouts/9.png b/site/reference/html/images/callouts/9.png deleted file mode 100644 index a0676d26cc2ff1de12c4ecdeefb44a0d71bc6bde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQNRqa;^5&H%t0&v*|C|wdb9$wI zR@+N9#RIowg@Uqn&z-__Tzhhz!sG|vTxA7?=O|Y?u(d4T{!RM9c7chr6d%1?R=i16 z?@Ic{f32YJFJnVhX)qGzOMplv!L->5yAlT#}irms+fsQd*FoSE84k zpF44v;trs3T43Wc)AJHbN`dAXo0u6Hr<$gkq?lM38ycjV7+5A5Sr{ayr5c%-n;95g pF*H#D>f!_G3IJNmU}#ifXryhRZP1dtyA~+J;OXk;vd$@?2>@J{cB%jX diff --git a/site/reference/html/images/logo.png b/site/reference/html/images/logo.png deleted file mode 100644 index a9f6d959e77f14eed6bdb750190ff83289279793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9627 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 diff --git a/site/reference/html/index.html b/site/reference/html/index.html deleted file mode 100644 index fdc3f9e5..00000000 --- a/site/reference/html/index.html +++ /dev/null @@ -1,1088 +0,0 @@ - - - Spring Data Elasticsearch

Spring Data Elasticsearch

Authors

BioMed Central Development Team

- Copies of this document may be made for your own use and for - distribution to others, provided that you do not - charge any fee for - such copies and further provided that each copy - contains this - Copyright Notice, whether - distributed in print or electronically. -


Preface

The Spring Data Elasticsearch project applies core Spring concepts to - the - development of solutions using the Elasticsearch Search Engine. - We have povided a "template" as a high-level abstraction for - storing,querying,sorting and faceting documents. You will notice similarities - to the Spring data solr and - mongodb support in the Spring Framework. -

1. Project Metadata

2. Requirements

- Requires - Elasticsearch - 0.20.2 and above or optional dependency or not even that if you are using Embedded Node Client -

Part I. Reference Documentation

Chapter 1. Repositories

1.1. Introduction

Implementing a data access layer of an application has been - cumbersome for quite a while. Too much boilerplate code had to be written. - Domain classes were anemic and not designed in a real object oriented or - domain driven manner.

Using both of these technologies makes developers life a lot easier - regarding rich domain model's persistence. Nevertheless the amount of - boilerplate code to implement repositories especially is still quite high. - So the goal of the repository abstraction of Spring Data is to reduce the - effort to implement data access layers for various persistence stores - significantly.

The following chapters will introduce the core concepts and - interfaces of Spring Data repositories in general for detailled - information on the specific features of a particular store consult the - later chapters of this document.

[Note]Note

As this part of the documentation is pulled in from Spring Data - Commons we have to decide for a particular module to be used as example. - The configuration and code samples in this chapter are using the JPA - module. Make sure you adapt e.g. the XML namespace declaration, types to - be extended to the equivalents of the module you're actually - using.

1.2. Core concepts

The central interface in Spring Data repository abstraction is - Repository (probably not that much of a - surprise). It is typeable to the domain class to manage as well as the id - type of the domain class. This interface mainly acts as marker interface - to capture the types to deal with and help us when discovering interfaces - that extend this one. Beyond that there's - CrudRepository which provides some - sophisticated functionality around CRUD for the entity being - managed.

Example 1.1. CrudRepository interface

public interface CrudRepository<T, ID extends Serializable>
-    extends Repository<T, ID> {
-                                                                                         (1)
-    T save(T entity);
-                                                                                         (2)
-    T findOne(ID primaryKey);
-                                                                                         (3)
-    Iterable<T> findAll();
-
-    Long count();
-                                                                                         (4)
-    void delete(T entity);
-                                                                                         (5)
-    boolean exists(ID primaryKey);
-                                                                                         (6)
-    // … more functionality omitted.
-}
1

Saves the given entity.

2

Returns the entity identified by the given id.

3

Returns all entities.

4

Returns the number of entities.

5

Deletes the given entity.

6

Returns whether an entity with the given id exists.


Usually we will have persistence technology specific sub-interfaces - to include additional technology specific methods. We will now ship - implementations for a variety of Spring Data modules that implement this - interface.

On top of the CrudRepository there is - a PagingAndSortingRepository abstraction - that adds additional methods to ease paginated access to entities:

Example 1.2. PagingAndSortingRepository

public interface PagingAndSortingRepository<T, ID extends Serializable> extends CrudRepository<T, ID> {
-
-    Iterable<T> findAll(Sort sort);
-
-    Page<T> findAll(Pageable pageable);
-}

Accessing the second page of User by a page - size of 20 you could simply do something like this:

PagingAndSortingRepository<User, Long> repository = // … get access to a bean
-Page<User> users = repository.findAll(new PageRequest(1, 20));

1.3. Query methods

Next to standard CRUD functionality repositories are usually queries - on the underlying datastore. With Spring Data declaring those queries - becomes a four-step process:

  1. Declare an interface extending - Repository or one of its sub-interfaces - and type it to the domain class it shall handle.

    public interface PersonRepository extends Repository<User, Long> { … }
  2. Declare query methods on the interface.

    List<Person> findByLastname(String lastname);
  3. Setup Spring to create proxy instances for those - interfaces.

    <?xml version="1.0" encoding="UTF-8"?>
    -<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
    -  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    -  xmlns="http://www.springframework.org/schema/data/jpa"
    -  xsi:schemaLocation="http://www.springframework.org/schema/beans
    -    http://www.springframework.org/schema/beans/spring-beans.xsd
    -    http://www.springframework.org/schema/data/jpa
    -    http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
    -
    -  <repositories base-package="com.acme.repositories" />
    -
    -</beans>
    [Note]Note

    Note that we use the JPA namespace here just by example. If - you're using the repository abstraction for any other store you need - to change this to the appropriate namespace declaration of your - store module which should be exchanging jpa in favor of - e.g. mongodb.

  4. Get the repository instance injected and use it.

    public class SomeClient {
    -
    -  @Autowired
    -  private PersonRepository repository;
    -
    -  public void doSomething() {
    -    List<Person> persons = repository.findByLastname("Matthews");
    -  }

At this stage we barely scratched the surface of what's possible - with the repositories but the general approach should be clear. Let's go - through each of these steps and figure out details and various options - that you have at each stage.

1.3.1. Defining repository interfaces

As a very first step you define a domain class specific repository - interface. It's got to extend Repository - and be typed to the domain class and an ID type. If you want to expose - CRUD methods for that domain type, extend - CrudRepository instead of - Repository.

1.3.1.1. Fine tuning repository definition

Usually you will have your repository interface extend - Repository, - CrudRepository or - PagingAndSortingRepository. If you - don't like extending Spring Data interfaces at all you can also - annotate your repository interface with - @RepositoryDefinition. Extending - CrudRepository will expose a complete - set of methods to manipulate your entities. If you would rather be - selective about the methods being exposed, simply copy the ones you - want to expose from CrudRepository into - your domain repository.

Example 1.3. Selectively exposing CRUD methods

interface MyBaseRepository<T, ID extends Serializable> extends Repository<T, ID> {
-  T findOne(ID id);
-  T save(T entity);
-}
-
-interface UserRepository extends MyBaseRepository<User, Long> {
-
-  User findByEmailAddress(EmailAddress emailAddress);
-}

In the first step we define a common base interface for all our - domain repositories and expose findOne(…) as - well as save(…).These methods will be routed - into the base repository implementation of the store of your choice - because they are matching the method signatures in - CrudRepository. So our - UserRepository will now be able to save - users, find single ones by id as well as triggering a query to find - Users by their email address.

1.3.2. Defining query methods

1.3.2.1. Query lookup strategies

The next thing we have to discuss is the definition of query - methods. There are two main ways that the repository proxy is able to - come up with the store specific query from the method name. The first - option is to derive the query from the method name directly, the - second is using some kind of additionally created query. What detailed - options are available pretty much depends on the actual store, - however, there's got to be some algorithm that decides what actual - query is created.

There are three strategies available for the repository - infrastructure to resolve the query. The strategy to be used can be - configured at the namespace through the - query-lookup-strategy attribute. However, It might be the - case that some of the strategies are not supported for specific - datastores. Here are your options:

CREATE

This strategy will try to construct a store specific query - from the query method's name. The general approach is to remove a - given set of well-known prefixes from the method name and parse the - rest of the method. Read more about query construction in Section 1.3.2.2, “Query creation”.

USE_DECLARED_QUERY

This strategy tries to find a declared query which will be - used for execution first. The query could be defined by an - annotation somewhere or declared by other means. Please consult the - documentation of the specific store to find out what options are - available for that store. If the repository infrastructure does not - find a declared query for the method at bootstrap time it will - fail.

CREATE_IF_NOT_FOUND (default)

This strategy is actually a combination of CREATE - and USE_DECLARED_QUERY. It will try to lookup a - declared query first but create a custom method name based query if - no declared query was found. This is the default lookup strategy and - thus will be used if you don't configure anything explicitly. It - allows quick query definition by method names but also custom tuning - of these queries by introducing declared queries as needed.

1.3.2.2. Query creation

The query builder mechanism built into Spring Data repository - infrastructure is useful to build constraining queries over entities - of the repository. We will strip the prefixes findBy, - find, readBy, read, - getBy as well as get from the method and - start parsing the rest of it. At a very basic level you can define - conditions on entity properties and concatenate them with - AND and OR.

Example 1.4. Query creation from method names

public interface PersonRepository extends Repository<User, Long> {
-
-  List<Person> findByEmailAddressAndLastname(EmailAddress emailAddress, String lastname);
-}

The actual result of parsing that method will of course depend - on the persistence store we create the query for, however, there are - some general things to notice. The expressions are usually property - traversals combined with operators that can be concatenated. As you - can see in the example you can combine property expressions with And - and Or. Beyond that you also get support for various operators like - Between, LessThan, - GreaterThan, Like for the - property expressions. As the operators supported can vary from - datastore to datastore please consult the according part of the - reference documentation.

1.3.2.2.1. Property expressions

Property expressions can just refer to a direct property of - the managed entity (as you just saw in the example above). On query - creation time we already make sure that the parsed property is at a - property of the managed domain class. However, you can also define - constraints by traversing nested properties. Assume - Persons have Addresses - with ZipCodes. In that case a method name - of

List<Person> findByAddressZipCode(ZipCode zipCode);

will create the property traversal - x.address.zipCode. The resolution algorithm starts with - interpreting the entire part (AddressZipCode) as - property and checks the domain class for a property with that name - (uncapitalized). If it succeeds it just uses that. If not it starts - splitting up the source at the camel case parts from the right side - into a head and a tail and tries to find the according property, - e.g. AddressZip and Code. If - we find a property with that head we take the tail and continue - building the tree down from there. As in our case the first split - does not match we move the split point to the left - (Address, ZipCode).

Although this should work for most cases, there might be cases - where the algorithm could select the wrong property. Suppose our - Person class has an addressZip - property as well. Then our algorithm would match in the first split - round already and essentially choose the wrong property and finally - fail (as the type of addressZip probably has - no code property). To resolve this ambiguity you can use - _ inside your method name to manually define - traversal points. So our method name would end up like so:

List<Person> findByAddress_ZipCode(ZipCode zipCode);
-

1.3.2.3. Special parameter handling

To hand parameters to your query you simply define method - parameters as already seen in the examples above. Besides that we will - recognizes certain specific types to apply pagination and sorting to - your queries dynamically.

Example 1.5. Using Pageable and Sort in query methods

Page<User> findByLastname(String lastname, Pageable pageable);
-
-List<User> findByLastname(String lastname, Sort sort);
-
-List<User> findByLastname(String lastname, Pageable pageable);

The first method allows you to pass a Pageable - instance to the query method to dynamically add paging to your - statically defined query. Sorting options are handed via - the Pageable instance too. If you only - need sorting, simply add a Sort parameter to your method. - As you also can see, simply returning a - List is possible as well. We will then - not retrieve the additional metadata required to build the actual - Page instance but rather simply - restrict the query to lookup only the given range of entities.

[Note]Note

To find out how many pages you get for a query entirely we - have to trigger an additional count query. This will be derived from - the query you actually trigger by default.

1.3.3. Creating repository instances

So now the question is how to create instances and bean - definitions for the repository interfaces defined.

1.3.3.1. XML Configuration

The easiest way to do so is by using the Spring namespace that - is shipped with each Spring Data module that supports the repository - mechanism. Each of those includes a repositories element that allows - you to simply define a base package that Spring will scan for - you.

<?xml version="1.0" encoding="UTF-8"?>
-<beans:beans xmlns:beans="http://www.springframework.org/schema/beans"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xmlns="http://www.springframework.org/schema/data/jpa"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans
-    http://www.springframework.org/schema/beans/spring-beans.xsd
-    http://www.springframework.org/schema/data/jpa
-    http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
-
-  <repositories base-package="com.acme.repositories" />
-
-</beans:beans>

In this case we instruct Spring to scan - com.acme.repositories and all its sub packages for - interfaces extending Repository or one - of its sub-interfaces. For each interface found it will register the - persistence technology specific - FactoryBean to create the according - proxies that handle invocations of the query methods. Each of these - beans will be registered under a bean name that is derived from the - interface name, so an interface of - UserRepository would be registered - under userRepository. The base-package - attribute allows the use of wildcards, so that you can have a pattern - of scanned packages.

Using filters

By default we will pick up every interface extending the - persistence technology specific - Repository sub-interface located - underneath the configured base package and create a bean instance - for it. However, you might want finer grained control over which - interfaces bean instances get created for. To do this we support the - use of <include-filter /> and - <exclude-filter /> elements inside - <repositories />. The semantics are exactly - equivalent to the elements in Spring's context namespace. For - details see Spring reference documentation on these - elements.

E.g. to exclude certain interfaces from instantiation as - repository, you could use the following configuration:

Example 1.6. Using exclude-filter element

<repositories base-package="com.acme.repositories">
-  <context:exclude-filter type="regex" expression=".*SomeRepository" />
-</repositories>

This would exclude all interfaces ending in - SomeRepository from being - instantiated.


1.3.3.2. JavaConfig

The repository infrastructure can also be triggered using a - store-specific - @Enable${store}Repositories annotation - on a JavaConfig class. For an introduction into Java based - configuration of the Spring container please have a look at the - reference documentation.[1]

A sample configuration to enable Spring Data repositories would - look something like this.

Example 1.7. Sample annotation based repository configuration

@Configuration
-@EnableJpaRepositories("com.acme.repositories")
-class ApplicationConfiguration {
-
-  @Bean
-  public EntityManagerFactory entityManagerFactory() {
-    // …
-  }
-}

Note that the sample uses the JPA specific annotation which - would have to be exchanged dependingon which store module you actually - use. The same applies to the definition of the - EntityManagerFactory bean. Please - consult the sections covering the store-specific configuration.

1.3.3.3. Standalone usage

You can also use the repository infrastructure outside of a - Spring container usage. You will still need to have some of the Spring - libraries on your classpath but you can generally setup repositories - programmatically as well. The Spring Data modules providing repository - support ship a persistence technology specific - RepositoryFactory that can be used as - follows:

Example 1.8. Standalone usage of repository factory

RepositoryFactorySupport factory = … // Instantiate factory here
-UserRepository repository = factory.getRepository(UserRepository.class);

1.4. Custom implementations

1.4.1. Adding behaviour to single repositories

Often it is necessary to provide a custom implementation for a few - repository methods. Spring Data repositories easily allow you to provide - custom repository code and integrate it with generic CRUD abstraction - and query method functionality. To enrich a repository with custom - functionality you have to define an interface and an implementation for - that functionality first and let the repository interface you provided - so far extend that custom interface.

Example 1.9. Interface for custom repository functionality

interface UserRepositoryCustom {
-
-  public void someCustomMethod(User user);
-}

Example 1.10. Implementation of custom repository functionality

class UserRepositoryImpl implements UserRepositoryCustom {
-
-  public void someCustomMethod(User user) {
-    // Your custom implementation
-  }
-}

Note that the implementation itself does not depend on - Spring Data and can be a regular Spring bean. So you can use standard - dependency injection behaviour to inject references to other beans, - take part in aspects and so on.


Example 1.11. Changes to the your basic repository interface

public interface UserRepository extends CrudRepository<User, Long>, UserRepositoryCustom {
-
-  // Declare query methods here
-}

Let your standard repository interface extend the custom - one. This makes CRUD and custom functionality available to - clients.


Configuration

If you use namespace configuration the repository infrastructure - tries to autodetect custom implementations by looking up classes in - the package we found a repository using the naming conventions - appending the namespace element's attribute - repository-impl-postfix to the classname. This suffix - defaults to Impl.

Example 1.12. Configuration example

<repositories base-package="com.acme.repository" />
-
-<repositories base-package="com.acme.repository" repository-impl-postfix="FooBar" />

The first configuration example will try to lookup a class - com.acme.repository.UserRepositoryImpl to act - as custom repository implementation, where the second example will try - to lookup - com.acme.repository.UserRepositoryFooBar.

Manual wiring

The approach above works perfectly well if your custom - implementation uses annotation based configuration and autowiring - entirely as it will be treated as any other Spring bean. If your - custom implementation bean needs some special wiring you simply - declare the bean and name it after the conventions just described. We - will then pick up the custom bean by name rather than creating an - instance.

Example 1.13. Manual wiring of custom implementations (I)

<repositories base-package="com.acme.repository" />
-
-<beans:bean id="userRepositoryImpl" class="…">
-  <!-- further configuration -->
-</beans:bean>

1.4.2. Adding custom behaviour to all repositories

In other cases you might want to add a single method to all of - your repository interfaces. So the approach just shown is not feasible. - The first step to achieve this is adding and intermediate interface to - declare the shared behaviour

Example 1.14. An interface declaring custom shared behaviour

-public interface MyRepository<T, ID extends Serializable>
-  extends JpaRepository<T, ID> {
-
-  void sharedCustomMethod(ID id);
-}

Now your individual repository interfaces will extend this - intermediate interface instead of the - Repository interface to include the - functionality declared. The second step is to create an implementation - of this interface that extends the persistence technology specific - repository base class which will then act as a custom base class for the - repository proxies.

[Note]Note

The default behaviour of the Spring <repositories - /> namespace is to provide an implementation for all - interfaces that fall under the base-package. This means - that if left in it's current state, an implementation instance of - MyRepository will be created by Spring. - This is of course not desired as it is just supposed to act as an - intermediary between Repository and the - actual repository interfaces you want to define for each entity. To - exclude an interface extending - Repository from being instantiated as a - repository instance it can either be annotate it with - @NoRepositoryBean or moved out side of - the configured base-package.

Example 1.15. Custom repository base class

-public class MyRepositoryImpl<T, ID extends Serializable>
-  extends SimpleJpaRepository<T, ID> implements MyRepository<T, ID> {
-
-  private EntityManager entityManager;
-
-  // There are two constructors to choose from, either can be used.
-  public MyRepositoryImpl(Class<T> domainClass, EntityManager entityManager) {
-    super(domainClass, entityManager);
-
-    // This is the recommended method for accessing inherited class dependencies.
-    this.entityManager = entityManager;
-  }
-
-  public void sharedCustomMethod(ID id) {
-    // implementation goes here
-  }
-}

The last step is to create a custom repository factory to replace - the default RepositoryFactoryBean that will in - turn produce a custom RepositoryFactory. The new - repository factory will then provide your - MyRepositoryImpl as the implementation of any - interfaces that extend the Repository - interface, replacing the SimpleJpaRepository - implementation you just extended.

Example 1.16. Custom repository factory bean

-public class MyRepositoryFactoryBean<R extends JpaRepository<T, I>, T, I extends Serializable>
-  extends JpaRepositoryFactoryBean<R, T, I> {
-
-  protected RepositoryFactorySupport createRepositoryFactory(EntityManager entityManager) {
-
-    return new MyRepositoryFactory(entityManager);
-  }
-
-  private static class MyRepositoryFactory<T, I extends Serializable> extends JpaRepositoryFactory {
-
-    private EntityManager entityManager;
-
-    public MyRepositoryFactory(EntityManager entityManager) {
-      super(entityManager);
-
-      this.entityManager = entityManager;
-    }
-
-    protected Object getTargetRepository(RepositoryMetadata metadata) {
-
-      return new MyRepositoryImpl<T, I>((Class<T>) metadata.getDomainClass(), entityManager);
-    }
-
-    protected Class<?> getRepositoryBaseClass(RepositoryMetadata metadata) {
-
-      // The RepositoryMetadata can be safely ignored, it is used by the JpaRepositoryFactory
-      //to check for QueryDslJpaRepository's which is out of scope.
-      return MyRepository.class;
-    }
-  }
-}

Finally you can either declare beans of the custom factory - directly or use the factory-class attribute of the Spring - namespace to tell the repository infrastructure to use your custom - factory implementation.

Example 1.17. Using the custom factory with the namespace

<repositories base-package="com.acme.repository"
-  factory-class="com.acme.MyRepositoryFactoryBean" />

1.5. Extensions

This chapter documents a set of Spring Data extensions that enable - Spring Data usage in a variety of contexts. Currently most of the - integration is targeted towards Spring MVC.

1.5.1. Domain class web binding for Spring MVC

Given you are developing a Spring MVC web applications you - typically have to resolve domain class ids from URLs. By default it's - your task to transform that request parameter or URL part into the - domain class to hand it layers below then or execute business logic on - the entities directly. This should look something like this:

@Controller
-@RequestMapping("/users")
-public class UserController {
-
-  private final UserRepository userRepository;
-
-  public UserController(UserRepository userRepository) {
-    userRepository = userRepository;
-  }
-
-  @RequestMapping("/{id}")
-  public String showUserForm(@PathVariable("id") Long id, Model model) {
-    
-    // Do null check for id
-    User user = userRepository.findOne(id);
-    // Do null check for user
-    // Populate model
-    return "user";
-  }
-}

First you pretty much have to declare a repository dependency for - each controller to lookup the entity managed by the controller or - repository respectively. Beyond that looking up the entity is - boilerplate as well as it's always a findOne(…) - call. Fortunately Spring provides means to register custom converting - components that allow conversion between a String - value to an arbitrary type.

PropertyEditors

For versions up to Spring 3.0 simple Java - PropertyEditors had to be used. Thus, - we offer a DomainClassPropertyEditorRegistrar, - that will look up all Spring Data repositories registered in the - ApplicationContext and register a - custom PropertyEditor for the managed - domain class

<bean class="….web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
-  <property name="webBindingInitializer">
-    <bean class="….web.bind.support.ConfigurableWebBindingInitializer">
-      <property name="propertyEditorRegistrars">
-        <bean class="org.springframework.data.repository.support.DomainClassPropertyEditorRegistrar" />
-      </property>
-    </bean>
-  </property>
-</bean>

If you have configured Spring MVC like this you can turn your - controller into the following that reduces a lot of the clutter and - boilerplate.

@Controller
-@RequestMapping("/users")
-public class UserController {
-
-  @RequestMapping("/{id}")
-  public String showUserForm(@PathVariable("id") User user, Model model) {
-
-    // Do null check for user
-    // Populate model
-    return "userForm";
-  }
-}

ConversionService

As of Spring 3.0 the - PropertyEditor support is superseeded - by a new conversion infrstructure that leaves all the drawbacks of - PropertyEditors behind and uses a - stateless X to Y conversion approach. We now ship with a - DomainClassConverter that pretty much mimics - the behaviour of - DomainClassPropertyEditorRegistrar. To register - the converter you have to declare - ConversionServiceFactoryBean, register the - converter and tell the Spring MVC namespace to use the configured - conversion service:

<mvc:annotation-driven conversion-service="conversionService" />
-
-<bean id="conversionService" class="….context.support.ConversionServiceFactoryBean">
-  <property name="converters">
-    <list>
-      <bean class="org.springframework.data.repository.support.DomainClassConverter">
-        <constructor-arg ref="conversionService" />
-      </bean>
-    </list>
-  </property>
-</bean>

1.5.2. Web pagination

@Controller
-@RequestMapping("/users")
-public class UserController {
-
-  // DI code omitted
-
-  @RequestMapping
-  public String showUsers(Model model, HttpServletRequest request) {
-
-    int page = Integer.parseInt(request.getParameter("page"));
-    int pageSize = Integer.parseInt(request.getParameter("pageSize"));
-    model.addAttribute("users", userService.getUsers(pageable));
-    return "users";
-  }
-}

As you can see the naive approach requires the method to contain - an HttpServletRequest parameter that has - to be parsed manually. We even omitted an appropriate failure handling - which would make the code even more verbose. The bottom line is that the - controller actually shouldn't have to handle the functionality of - extracting pagination information from the request. So we include a - PageableArgumentResolver that will do the work - for you.

<bean class="….web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
-  <property name="customArgumentResolvers">
-    <list>
-      <bean class="org.springframework.data.web.PageableArgumentResolver" />
-    </list>
-  </property>
-</bean>

This configuration allows you to simplify controllers down to - something like this:

@Controller
-@RequestMapping("/users")
-public class UserController {
-
-  @RequestMapping
-  public String showUsers(Model model, Pageable pageable) {
-
-    model.addAttribute("users", userDao.readAll(pageable));
-    return "users";
-  }
-}

The PageableArgumentResolver will - automatically resolve request parameters to build a - PageRequest instance. By default it will expect - the following structure for the request parameters:

Table 1.1. Request parameters evaluated by - PageableArgumentResolver

pageThe page you want to retrieve
page.sizeThe size of the page you want to retrieve
page.sortThe property that should be sorted by
page.sort.dirThe direction that should be used for sorting

In case you need multiple Pageables - to be resolved from the request (for multiple tables e.g.) you can use - Spring's @Qualifier annotation to - distinguish one from another. The request parameters then have to be - prefixed with ${qualifier}_. So a method signature like - this:

public String showUsers(Model model, 
-      @Qualifier("foo") Pageable first,
-      @Qualifier("bar") Pageable second) { … }
-

you'd have to populate foo_page and - bar_page and the according subproperties.

Defaulting

The PageableArgumentResolver will use a - PageRequest with the first page and a page size - of 10 by default and will use that in case it can't resolve a - PageRequest from the request (because of - missing parameters e.g.). You can configure a global default on the - bean declaration directly. In case you might need controller method - specific defaults for the Pageable - simply annotate the method parameter with - @PageableDefaults and specify page and - page size as annotation attributes:

public String showUsers(Model model, 
-  @PageableDefaults(pageNumber = 0, value = 30) Pageable pageable) { … }
-

1.5.3. Repository populators

If you have been working with the JDBC module of Spring you're - probably familiar with the support to populate a DataSource using SQL - scripts. A similar abstraction is available on the repositories level - although we don't use SQL as data definition language as we need to be - store independent of course. Thus the populators support XML (through - Spring's OXM abstraction) and JSON (through Jackson) to define data for - the repositories to be populated with.

Assume you have a file data.json with the - following content:

Example 1.18. Data defined in JSON

[ { "_class" : "com.acme.Person",
- "firstname" : "Dave",
-  "lastname" : "Matthews" },
-  { "_class" : "com.acme.Person",
- "firstname" : "Carter",
-  "lastname" : "Beauford" } ]

You can easily populate you repositories by using the populator - elements of the repository namespace provided in Spring Data Commons. To - get the just shown data be populated to your - PersonRepository all you need to do is - the following:

Example 1.19. Declaring a Jackson repository populator

<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xmlns:repository="http://www.springframework.org/schema/data/repository"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans
-    http://www.springframework.org/schema/beans/spring-beans.xsd
-    http://www.springframework.org/schema/data/repository
-    http://www.springframework.org/schema/data/repository/spring-repository.xsd">
-
-  <repository:jackson-populator location="classpath:data.json" />
-
-</beans>

This declaration causes the data.json file being read, - deserialized by a Jackson ObjectMapper. The type - the JSON object will be unmarshalled to will be determined by inspecting - the _class attribute of the JSON document. We will - eventually select the appropriate repository being able to handle the - object just deserialized.

To rather use XML to define the repositories shall be populated - with you can use the unmarshaller-populator you hand one of the - marshaller options Spring OXM provides you with.

Example 1.20. Declaring an unmarshalling repository populator (using - JAXB)

<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xmlns:repository="http://www.springframework.org/schema/data/repository"
-  xmlns:oxm="http://www.springframework.org/schema/oxm"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans
-    http://www.springframework.org/schema/beans/spring-beans.xsd
-    http://www.springframework.org/schema/data/repository
-    http://www.springframework.org/schema/data/repository/spring-repository.xsd
-    http://www.springframework.org/schema/oxm
-    http://www.springframework.org/schema/oxm/spring-oxm.xsd">
-
-  <repository:unmarshaller-populator location="classpath:data.json" unmarshaller-ref="unmarshaller" />
-
-  <oxm:jaxb2-marshaller contextPath="com.acme" />
-
-</beans>

Chapter 2. Elasticsearch Repositories

Abstract

This chapter includes details of the Elasticsearch repository - implementation. -

2.1. Introduction

2.1.1. Spring Namespace

- The Spring Data Elasticsearch module contains a custom namespace allowing - definition of repository beans as well as elements for instantiating - a - ElasticsearchServer - . -

- Using the - repositories - element looks up Spring Data repositories as described in - Section 1.3.3, “Creating repository instances” - . -

Example 2.1. Setting up Elasticsearch repositories using Namespace

<?xml version="1.0" encoding="UTF-8"?>
-<beans xmlns="http://www.springframework.org/schema/beans"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans
-    http://www.springframework.org/schema/beans/spring-beans.xsd
-    http://www.springframework.org/schema/data/elasticsearch
-    http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd">
-
-  <elasticsearch:repositories base-package="com.acme.repositories" />
-</beans>

- Using the - Transport Client - or - Node Client - element registers an instance of - Elasticsearch Server - in the context. - -

Example 2.2. Transport Client using Namespace

<?xml version="1.0" encoding="UTF-8"?>
-                        <beans xmlns="http://www.springframework.org/schema/beans"
-                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                        xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
-                        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                        http://www.springframework.org/schema/beans/spring-beans.xsd
-                        http://www.springframework.org/schema/data/elasticsearch
-                        http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd">
-
-  <elasticsearch:transport-client id="client" cluster-nodes="localhost:9300,someip:9300" />
-</beans> 


- -

Example 2.3. Node Client using Namespace

<?xml version="1.0" encoding="UTF-8"?>
-                        <beans xmlns="http://www.springframework.org/schema/beans"
-                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-                        xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
-                        xsi:schemaLocation="http://www.springframework.org/schema/beans
-                        http://www.springframework.org/schema/beans/spring-beans.xsd
-                        http://www.springframework.org/schema/data/elasticsearch
-                        http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd">
-
-  <elasticsearch:node-client id="client" local="true"" />
-</beans> 


-

2.1.2. Annotation based configuration

The Spring Data Elasticsearch repositories support cannot only be - activated through an XML namespace but also using an annotation - through JavaConfig. -

Example 2.4. Spring Data Elasticsearch repositories using JavaConfig

-                    @Configuration
-                    @EnableElasticsearchRepositories(basePackages = "org/springframework/data/elasticsearch/repositories")
-                    static class Config {
-
-                    @Bean
-                    public ElasticsearchOperations elasticsearchTemplate() {
-                    return new ElasticsearchTemplate(nodeBuilder().local(true).node().client());
-                    }
-                    }

- The configuration above sets up an - Embedded Elasticsearch Server - which is used by the - ElasticsearchTemplate - . Spring Data Elasticsearch Repositories are activated using the - @EnableElasticsearchRepositories - annotation, which - essentially carries the same attributes as the XML - namespace does. If no - base package is configured, it will use the - one - the configuration class - resides in. -


2.1.3. Elasticsearch Repositores using CDI

The Spring Data Elasticsearch repositories can also be set up using CDI - functionality. -

Example 2.5. Spring Data Elasticsearch repositories using JavaConfig

class ElasticsearchTemplateProducer {
-
-  @Produces
-  @ApplicationScoped
-  public ElasticsearchOperations createElasticsearchTemplate() {
-    return new ElasticsearchTemplate(new EmbeddedElasticsearchServerFactory("classpath:com/acme/Elasticsearch"));
-  }
-}
-
-class ProductService {
-
-  private ProductRepository repository;
-
-  public Page<Product> findAvailableBookByName(String name, Pageable pageable) {
-    return repository.findByAvailableTrueAndNameStartingWith(name, pageable);
-  }
-
-  @Inject
-  public void setRepository(ProductRepository repository) {
-    this.repository = repository;
-  }
-}

2.2. Query methods

2.2.1. Query lookup strategies

- The Elasticsearch module supports all basic query building feature as String,Abstract,Criteria or - have - it being derived from the method name. -

Declared queries

- Deriving the query from the method name is not always sufficient - and/or may result in unreadable method names. In this case one - might make either use of - @Query - annotation (see - Section 2.2.3, “Using @Query Annotation” - ). -

2.2.2. Query creation

- Generally the query creation mechanism for Elasticsearch works as described - in - Section 1.3, “Query methods” - . Here's a short example - of what a Elasticsearch query method translates into: -

Example 2.6. Query creation from method names

public interface BookRepository extends Repository<Book, String> {
-  List<Book> findByNameAndPrice(String name, Integer price);
-}

- The method name above will be translated into the following - Elasticsearch json query -

-                        { "bool" : { "must" :
-                        [
-                        { "field" : {"name" : "?"} },
-                        { "field" : {"price" : "?"} }
-                        ]
-                        } }


-

- A list of supported keywords for Elasticsearch is shown below. -

Table 2.1. Supported keywords inside method names

KeywordSampleElasticsearch Query String
- And - - findByNameAndPrice - - { - "bool" : { - "must" : [ { - "field" : { - "name" : "?" - } - }, { - "field" : { - "price" : "?" - } - } ] - } - } -
- Or - - findByNameOrPrice - - { - "bool" : { - "should" : [ { - "field" : { - "name" : "?" - } - }, { - "field" : { - "price" : "?" - } - } ] - } - } -
- Is - - findByName - - { - "bool" : { - "must" : { - "field" : { - "name" : "?" - } - } - } - } -
- Not - - findByNameNot - - { - "bool" : { - "must_not" : { - "field" : { - "name" : "?" - } - } - } - } -
- Between - - findByPriceBetween - - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : ?, - "to" : ?, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } -
- LessThanEqual - - findByPriceLessThan - - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : null, - "to" : ?, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } -
- GreaterThanEqual - - findByPriceGreaterThan - - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : ?, - "to" : null, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } -
- Before - - findByPriceBefore - - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : null, - "to" : ?, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } -
- After - - findByPriceAfter - - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : ?, - "to" : null, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } - -
- Like - - findByNameLike - - { - "bool" : { - "must" : { - "field" : { - "name" : { - "query" : "?*", - "analyze_wildcard" : true - } - } - } - } - } -
- StartingWith - - findByNameStartingWith - - { - "bool" : { - "must" : { - "field" : { - "name" : { - "query" : "?*", - "analyze_wildcard" : true - } - } - } - } - } -
- EndingWith - - findByNameEndingWith - - { - "bool" : { - "must" : { - "field" : { - "name" : { - "query" : "*?", - "analyze_wildcard" : true - } - } - } - } - } -
- Contains/Containing - - findByNameContaining - - { - "bool" : { - "must" : { - "field" : { - "name" : { - "query" : "*?*", - "analyze_wildcard" : true - } - } - } - } - } -
- In - - findByNameIn(Collection<String> - names) - - - Not Supported Yet ! -
- NotIn - - findByNameNotIn(Collection<String> - names) - - - Not Supported Yet ! -
- Near - - findByStoreNear - - Not Supported Yet ! - -
- True - - findByAvailableTrue - - Not Supported Yet ! -
- False - - findByAvailableFalse - - Not Supported Yet ! -
- OrderBy - - findByAvailableTrueOrderByNameDesc - - Not Supported Yet ! -


-

2.2.3. Using @Query Annotation

Example 2.7.  - Declare query at the method using the - @Query - annotation. -

public interface BookRepository extends ElasticsearchRepository<Book, String> {
-  @Query("{"bool" : {"must" : {"field" : {"name" : "?0"}}}}")
-  Page<Book> findByName(String name,Pageable pageable);
-}

Chapter 3. Miscellaneous Elasticsearch Operation Support

Abstract

- This chapter covers additional support for Elasticsearch operations - that cannot be directly accessed via the repository - interface. - It is recommended to add those operations as custom - implementation as - described in - Section 1.4, “Custom implementations” - . -

3.1. Filter Builder

- Filter Builder improves query speed. -

Example 3.1. 

-                private ElasticsearchTemplate elasticsearchTemplate;
-                SearchQuery searchQuery = new SearchQuery();
-                searchQuery.setElasticsearchQuery(matchAllQuery());
-                searchQuery.setElasticsearchFilter(boolFilter().must(termFilter("id", documentId)));
-                Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery,SampleEntity.class);
-    

Part II. Appendix

Appendix A. Namespace reference

A.1. The <repositories /> element

The <repositories /> triggers the setup of the - Spring Data repository infrastructure. The most important attribute is - base-package which defines the package to scan for Spring - Data repository interfaces.[2]

Table A.1. Attributes

NameDescription
base-packageDefines the package to be used to be scanned for repository - interfaces extending *Repository - (actual interface is determined by specific Spring Data module) in - auto detection mode. All packages below the configured package - will be scanned, too. Wildcards are also allowed.
repository-impl-postfixDefines the postfix to autodetect custom repository - implementations. Classes whose names end with the configured - postfix will be considered as candidates. Defaults to - Impl.
query-lookup-strategyDetermines the strategy to be used to create finder - queries. See Section 1.3.2.1, “Query lookup strategies” for - details. Defaults to create-if-not-found.

Appendix B. Repository query keywords

B.1. Supported query keywords

The following table lists the keywords generally supported by the - Spring data repository query derivation mechanism. However consult the - store specific documentation for the exact list of supported keywords as - some of the ones listed here might not be supported in a particular - store.

Table B.1. Query keywords

Logical keywordKeyword expressions
AFTERAfter, - IsAfter
BEFOREBefore, - IsBefore
CONTAININGContaining, - IsContaining, - Contains
BETWEENBetween, - IsBetween
ENDING_WITHEndingWith, - IsEndingWith, - EndsWith
EXISTSExists
FALSEFalse, - IsFalse
GREATER_THANGreaterThan, - IsGreaterThan
GREATER_THAN_EQUALSGreaterThanEqual, - IsGreaterThanEqual
INIn, IsIn
ISIs, Equals, (or no - keyword)
IS_NOT_NULLNotNull, - IsNotNull
IS_NULLNull, IsNull
LESS_THANLessThan, - IsLessThan
LESS_THAN_EQUALLessThanEqual, - IsLessThanEqual
LIKELike, IsLike
NEARNear, IsNear
NOTNot, IsNot
NOT_INNotIn, - IsNotIn
NOT_LIKENotLike, - IsNotLike
REGEXRegex, MatchesRegex, - Matches
STARTING_WITHStartingWith, - IsStartingWith, - StartsWith
TRUETrue, IsTrue
WITHINWithin, - IsWithin

\ No newline at end of file diff --git a/site/reference/pdf/spring-data-elasticsearch-reference.pdf b/site/reference/pdf/spring-data-elasticsearch-reference.pdf deleted file mode 100644 index 9296333ed5166d251da73638c3cf7b52abec90ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82593 zcmcG$by$?$+CD5TAtjwd3ewCl!_cjyG}4{YDJk78or08fN;fDH+D4MRGw?=fa5%e%a}!!>OI^^zQm*%$oT9WPWruYK_|LBMoOM?y0_ENTJS0X3IYNTzW>G zxL{L8`mF%hcYCRYG!s(92V&@o@7`MM=~M2n80U7~#BNFr5M!1x^r8+_S{mt2buJ#4 z!e!}(j|LNEVLYZ+>P|D%NnkJ}t73Yqs!dxy^YSzTnXM-NTKPl=1IH52qX2GNgRouC z-Fx?w*pLh0Y0?FzXbJDZao*XqubvHDkxkqV#d3H1)Z0>hO%IwYF}z}6M#KrkO1+$2 zyj@tz?$Z-=W13lOYVyfSm9wYS+;q^Xq2b#N!{nadk@+08SmV(Yc)?O5mw= zr;B{skkVTT;n5gl+N&UpTw|Z3;nWvZZ&a=H=tv^*Ku>F=+)N`9vaL`&B;S|DQhLRn z$K1~0U(@l|Y=Zx7Hh<2)yuPV1Z2tA_jjbI49I!ttqOr*u8=32i*t`U2!eVv+7nBRY z4dMi7qp>L(JJ>kc8yY(RfIm}3ZLA$(pL77+@q2!HcP!2<+nWRE$PS$Hf zmR%beg*W#y95&{8JA1cQhn0xsr8@K)lKk8E{E@TVhlLtAJ|L9PWE( zo1XHWN16+RM)|mDxGG3yiLmb@!utrliHf1ss#mj3p#9`}Xv%(VPHJg3g-j|{XE^=b z51b#J6(*xK8*^=Jsv>yUr}~wz)Bw^^LyzNBrl8Gy_YDFW2EH}jjN=V}Bdx<+&nh{z z#!7RQ@wcH5&na#bTJiZzvb0B1q?gxYO9FHbo^N&#fUT4!_l8z1-6$e!5rB1VWfI1R=^)JoCqHLobx%f3#=qEmqx6j4!Hf=s7V&m$r6r| zxxf^8d?)7}(tRfl{3#Fq85x3lg)aZV$ZgoS0kF@%tOPa75KB zlH8x#k)3KDJ5)biP>Odu4p=zP4jIXD-l>}^&jJexUuZTR*clf!TF&S2K6tY8==K){ zr&G?`QW#cBAdJG>E4A~hrihd?;<5BwR)UI-;?TkB*y>90X6MRN7UG7Z2FkH5Z=uC} z;b%QvR8$WGiAvn4j*f)S0(See+ERhS{&Y!0q^%svK_0r;%9TN)%7n3fj4HWFCmUgPgM7@O~N>7gRRBUdZKrxy2QZ*C>r8 zmXq>j(^7c>2m5?)5j7ML;Vw<S1 z*%JSe`Cyf?Rsw%Z4TOJ|cFWqkp{GgySVd>|>S)SFtwvNTr0wB-z7rGtK(V}5wd?Oo z2RHpmA8REW=0G9uGyOdTVKZ=3X5dv|r*2PpMKoSizmWgU{+XIo#@deY?uV4Lbj5zT zmv0*^Zvl81@K|Qd@3zwu)Aa>k&e#ju0mmOF$Aei-T-;ZklqkPsQ;-jHA;9=?D5x30 zBj1dU&mrNY>T})c4Z8sD$Bo+~VjbjfWyUV!51w~cP7i+loZxzir#IjC#{?F8YvToL;2Vj-7i-hr>iaEaj4#^&8Jn|zH9 zemVC=45GrMyPZL|*2kJ?XHiw7mc}FBb3s?z{busUB7H+$A$_88zNQf!fPoC(%5qE_ zJbZ1;UP{yPZj-iWP((mBA^yaftzPR>H&qHg6qb@tqI z9Tm@*am;9PpwYSyGKIU;Bc57ic!Syf@lj5^-m@=UKGe!R|UsR7MJbdZ3EHQ(V(uY&+fMmEgpQ zx4cTle>u$yMet*c-vD%~jkD{2u^;{o)-E2nQ=S z1PI^&v$Jx8AppqjD=hvkB!4-beE)kDZYlK#NdBH3PHt8x1PU9I zzi7h&xr=`b$xp5Rb4>0;_y3=p?C3bA^A09@0OxJM*@b4n4KHOSZ*#>2$TZ=zMVB#{98zV z&Dguu@DGr1a02h92Mm)jgc}0j=Wxif_Z;Lh@_I-Yv-g4HB4)L9lHw=j|(O z=>@}Nd>j83lwVW!t|k0|oeN&fXQKKY;R=dcZIp zb3=guPS`6KloJ4k>G(GOEhN9@>|JgA10?^$6qt~2x2-@k}y`8NJ7D8FXyok#csD1Xfl7fiuWC~Tbt!)gx9HgG{e zckyo_`88?pY|0-X`Fno2Zj}tP1h<324lC+hw^D}1zXJvIYtr6XrT+%Xt%TWcS<4QS zFc1K1QryMA1?AVQy|Zio4U}6cvvUDBVdek|1p&Bjr3{OI3(BuqduJK{0Lot_nd?@{ z?68%V9cG-^p)f-SlQJy+EhN7tE$9!;!QZ64RWc00-zAyrR>`pVw~+jrw0Fk&560ww zNPDYfm@(x90$G7D2(ShJF8&=TT)!smoq7K+pnz_r%mE`U48rZA54x2yEdDJhzb5V7 z2I9Yg0+TYB1Gdz1aIkU#0U(%?Z^Pe0@@vlC?P2}^$zMzX!GsLtfEn7qj0y-Q{MVBVCI1GX1~ z6=M)g$+z+Ej0*VIq`lit{x?uyQU<}cg`8k0?3EJ$TXpZ^--7aM(%x-p{{YHg%Nq!$ zWDZy@=7iq*ea_oE8h7z;A^A0F?{?LHfaEXI0%2t3=Dgj7!4_CB00`6ZZTMS2e$Cmt zef=K*`D;4}gvpqT6SmH>Ls(%88~_N@@ooHDNPbP(yVk-VAo*)@fG{0%!kj4w%;j^# z=mLc4_%{9>B(P?~ZHMHa+rhi;#vdU0dvZXWtWelkaDrjmLD;4R2;{hne+$X4347OI z`2!?>j|oi0U?7aJ>@exTR%+O~b{GE^l3x?{uE+BSNd6uZn23Qum@@#v5W(C95GLZ= z__vV!nz4|7cLsmmD}r!y|IV$V2o-IcRCYYi4YlW<+d18Eq=u7*jgBMLa@wR;Dew8Y z7rh~EV@aylXH`D9GNV}Hp>;v-WrO_hu}n2>JbmEM^vMj%=iCK)n(v*j6W+rWqSP0n zfk%~Udk^0#SBAGx71xUJs_nGu9UXvO{k^?{!N0-qDHH$7s~1NQF=HPikj>vkf7b`X+jIM7{a2F&~^GfjgsdUNcM-#%7bQ0PllfLyb&+T zof|rmZ{VpoX_inKe6Y-A+W70fwz!(kd^Cvn3t1d98ek{9=ybEX3A08~QZE_wZ(5zI zhdPGF>pH%-cK1gBE!nxlsKqb~6i2H_n66>Q_YpZT4qxg8V57kQfQ!S#%KXo!Ijphv&!*h})ji)k;r^>_&i%8M z{I7e!cW>M-F`8(wrrPbo46C)bFaOh6zI*!*79kGUiVTGP>}{)o3jpGTZDfIWeTLsN zoVUjwR1_rv45sFeJZx;Rf6bf>SPgBg*hI{2V0XPmVYjmF^(|!_jo2J)?ai%CS&Z}@ z^;wK9^&K3|4IPa2?G4RXVV`1zHNJm-6YOIDS#0jE@ei&E=0Tt^qsheuTUcTBmkU;N zZufpL3keH=Tqi@9a{|0|sw*ChH_kDX< zRsD_g9!^pG=p91XVwacrO7sD#mwh_ZZ{SLlOCN?|vl_%8ieCMY5T^~6sp<4fS3{0b zL7t91L(am-CCmbBFfeTO@RS>VgVH#1(_OlyDHel(_&Nm8SQeH8L(3JSOM2FwlcCwh z$!8~yL#gSug$NM(Dp1|3o^Y-p!RH(aNmu6&1XuqYN~EX-b}XK@ zkn<=+cFTu3>x&^^_^T1ox%w;0;Jv-5$2?WW=Cj}8d{Wxp<2^mXYy!~>% zo5VT8@jam8s7J%blMn3F9=Chy7wXzqo93<=`n7ybn+vDN`Rj}H!iJ@u zZm>vQn?CbnE4_sR^GJi@11~0TH5bcCM-x1SI5A1uHT>KlnSaqdqY{?Pc`9*mHcg%Ms^L|I=WQ2u_6Tw@7O*lb0{?xIEw4kzHbFCwc5 zMm&N{q*a1wxBEVIQ-Q{CuxE+2zN@WXtLxKGl&&<9i@lh$W4wuU4wOZj>f>oACwN}S z+vgchxn#-!CVN7#$h5eVV=n2$eu&P|}CozIS4`#jLue-~ZGg#!Kbe&#{4p)x5)t5xO zevgp}IEguUv@*&k z3>|izM?-mS=vH21|EM{TPyOIcM~$e1P6$bgK^%5^7x+sbOVFTle~Luf7~ON*ES~Ur z@n_Ri4-|Ly+g5naKjLLK3JF!MET+E+^>e>>;9R^oFM;1?()=w-4uz4tT_Ne;|qAhV$xm@Sr3|1hHzD`SQ4eD>KW9+*qES;K!%y5CxM-&^$k6_3tw ziYSwb5Wg@YHm=FtTx3@^Oq4oWLO$0@)!kuHM}5v|Z^HO_iuh<|Z&yryQr-bhS`^gy zFw3$~1B=4*Nm~>}VkdR$xqQPio-(AQ2HUFD%;dhd9ypcHoG%U+w3{g#zsE9LTW#$z zYmayt9Av0B@>Nr+%Ot4x@)WGRFp)Nd>PfzhXz2ADAYaOjaPXnLIUPrelZ-*XL1ak} zJ2u>)GUaHv$0Te`xNH`cfwM^|c)bbF!YkC;fo4N_PVlnR5ozHi^Weu%9bnqo6X!2( zlEF_48nJGOLv_tf71kEjVhMs;Hex)7@PdC?<==g2vOrheEB--r{;Bjixxp{?0 z3S-4G8-gl6Y@YF;6vZ=o4L%rCNNJmWw!1BB7Yul5j_4s|tdh%Y%a|;%Tbih4q|ZaB z9z43NUN^Hm^^qv|8$js*Xp(M(xW?fWe_@thZV|y9t`Jw}k5&6o&T{JgS23ld93%|< zBW$i0Gr?}J^|oA^hn}E@GabDk3Kl8XAEex0N7fp64XSIVoIM$t+NlZ0iB5GdI2@0! zZI^k2oQnK4|9hL>=Ti!%_2IO0PK)B*y68Msws`v(h=mrJmUFJ*H*{ib4!+Y2|7o#2wy=*--e))06U1lkM64nP?8 zg}8VkzB^gQ8|4%R`Bnc7QDa+`AAd0qpQdG-3n|t2Eun|p$ygvI@K;_~j5C@@h zhz6vQp?J}q)2VtZ*XfCYq>#+7Aj3JCh8CBMGMffyP zt6YkjOq`a5*()!E*P7vWB)f?=uj;e#^ci2lfAW_%b2L7PL0MR)4SFHx8;LTL+Pcs* z)5rW2o>H$ugov8i-1!A)cXiS9{Ik%u-exj4mkXrA3l^tJq^t z#bT}yg=?|;@HeECr1ZW;9AmIsr<&8sitvv#oT@GnUI^;y4bh*t)8>Mimh zCSQYaI5UXZB9sys?5LBv+JC5QAbL44hLzp(A)@1H0Iye5AP=ID$}_Gl?LT9~LEy9} zS`iOFcI9}Jp9gBdHdL!!V`F(r&2NI7Mef(&dBgN7i<|qIeA1A58puPH3?mNo#kna6 zJ6h-4+Dx9T)XEUo0M77PuqI;B#wAU36KY)ySjVeBusnjhv6Vd&S%Xd1+uf zH$12B;rW59vBj$oC|l-%wuq9CG{``7x@8!j6mU0=292|qiapg=p>bD0yq%jL$87LW zZuMFI2n<=XIBGkzCCtaU{vUdO6cx66$L3so&}{|#@(U#;eGz_;S|#e%9}w6rd^2ep ze^Hb-oO>@wei-OE`lE(R_mYYz`_!VLez!`ID1|@tS+wCrJf_LP&2F9tMzav@`4d|& zx|8BiBPEa3q0!nGBHyj>kNv!NEiO;GPp>#5w%6p8;}cJ`&7))R5T$&Hc$7pGZSmcP zA12L}L&GM(Z0|!j<9y)&uf^Po>DG^bz?r)jiT}cg{pV4J|1%@@vkUTXM(nm3@lPYh z0o#!Lh7l{#u(Fx0!@1elr8<9&Fs2oQcd|?mrA?H!3z(Vj#w-<@!>SZJC>)k@j|IO! z82T}vB^DxTzV;<=<6gy6^T4BvK8)9AwWdW;V-5^-r4E<2>pVNa?YhGt9{5ut7hiVj zmiy^5B}ZjpyaaV+X|H%|Um@{uM4!<504!y`NrEp63v{80GIfXF#nU!SsKV%9aH_xd zVTv_jMlIjC0o>OH+|N$x8Me$($GhBXF79jaIF}&yJm0Gle)?YMsmwRw^~x9r#nP&> zN+Q(Lrl-tvzu?4pn0qV4+Q6=N&CM}x46FK@R(S$eY*Vo3X zph~yk*W!=~iBEQGyr!;Lv#Z2k zd#gT{Y8iylI=5zz9vK$z(KC!i=UnM}MWUA6CHH~Yp{l6Tz-pXw89Bzf*D-U3g93sg z)=p`(dDOlOggH)DRKEefAM)*VM0;9Qz%bR>n}E=#=~yujW3lrQj4AAps_MLS_eP)D ztBtEGsSdKO;yOT4wKQqtAtPk-7I~Q~t{h3&{tYeNTlp^^n0Tq>K#ae%jZ(+F#KVuiZjk4|em@bMTz>Uc!0ry5M{lEBcrLejk>XO0KKZ5K)t^6JNV zVbnr${9qk>$dq--*BSTv5U&UT3}?`1@Qa*237VmpO| z+G{hOVYk@MY~j5u>D8*%dXGSoY#_LM&^Sa`&x}%Wucf=D>@iXaIdkSohyrvixf{iJgub!+6 z8LSZ-Zc2NEk}Iwrg+USKG@8v^VGB=)DgFJKbl~Wy!+CTBeJ|rw%WQC#L{)PRzFqB$ zKtEVclsCAaY!H|F;$(hnuL6>NA$7`dtr_K28t}ZT0S`6&I74b0J6{qWK7p-aE-duw zbOYNK7Rhnq7VRW%MN)&7HK@>#*;~idJ)zJ@DIA`OToJEcDc4i+mdei;Uqqgsw6O~dJ;>qA6!Uq7r})uP8t}z$ zd+kZ~bpn#V^T#HPcaMh6hC!dmaxm+8(X`pTht`G_>Xh{TD$g63#~EB7E00|?Ly!Zs z{6zZDwQ`BDk`4nG2ng&TmK8m?RyCYy2T4qQ7A!dTFpzZ0X5bfEfl+6Q5kze58a5P} zoyU?mCJds0{jo<{c}j-14jFE zOnz2HQL|Y?cH|u_5bD{{PI$T|D+hR|o9;pPDIQ(6An+a$-ZyLm>LJ`4^2d?OI2=jU zP`rn8Z<3wny2MG;-Zfud=MPfurU!Y(IP&LGQ1lnIv#CSCNf5gkskaf=?C9CD?2B>L zdrlRzsT@Vr@hUgPaDBV^?EPbaaN5%wHn%=5-fJ?)0`Wksdu@*9RVX>i^sZVFpQS@C zjdG%gref|*FKZI;b?g;MC)p3z)fP#`JE{S*?a@bQ1F@pZDd#T|*3=v);n zRyYc*Z5-%IS{VvQ*t6;Jyu31YNVp%2qFpTh?$Ly>ZzWMk4thpR)4RQhPti8-(x*xL zkK`i1N3<|J+361ku+-XtIUhZ5D%D-rw3+7R>Wyc&E6^m9%leAp_^cc*`AFYFK-CU< zoT%^rn6>;{$BJlQlC@;FvA$59i1Il>8@uaF`Agsl29sF{I#1DQ*g%iWdY>DiGd?l*Au^O1g%W#RkfpFVv{p(VdI)~tf4OuA;50Ng)7Mc4--;3_0|B~V$}r^lcZZg)@4^&8wFyb zd`YLZ-|uixc9vy%P9gyE=LnEs@E}rVu=B7ce#ja^>D0UWLdgHvrQ5fDjh4hy`b$h2 zi2yq;&iDd%%lIj9G(ZA)J=4Lt8T^*R?;zuSeMnK+HgzlWe46NLTB?;gZLS4$KJ8V@ z^-JQ6R}-0`OOcl>v+A=86fK}P0v@E|KZ4Mbd{WG|i%t)G;@giAWR!P@l5qtHCfO> zb@QSZWFznzAaac38}9}%%@LmBM4(2#5WU{wc%J%X{&AaDV(HEI+MQI@m|hA}xv_5a zr#;*wYu*&>R5C66g%V@hR2pLFp4s#XUtT$X4JouOc&N3)#=Tm&;;c*t;% zojOJ@mEkifZ69EXnHqU~CR(pvp&=xB`Sk$<;UQRzqnW>fO$0hG8CpO4v8HLZ`%~iS zg*}PO@bTh`KB1HIN3jid@z>l_Qod^fX3u!|?YWe|@Y4z3Y)VOzytsmnNt6z2ZA$3H z@efNY&=~!qL_Q)^apbu@(N{S{IC8pY;{S;ZS#G(Z^A%cBowElnLh-k&WItpk;rY%! z%woog;`*gC!LN2i48QPB|9%(c|Mqk=?2O$%nppqdQ~s+<$jJpehwxk8Y3}t581vOa zYsYA!rHP^{-n%mMve7vY#}UZ``>FoXJ^mrE6_aULDQ($GWBre7p%`4$>B{s0IxKZP zR9r-%MHGg!D2QNFFMZr=vu|~EA@seZJRys0>GCPBxlLX(%ifO|`Lts4Eo!ELQ^9Z(h$h(`j@~t}Gm+*z)JSx_lY5DP?I?g%5-g z^hMu!<%`3LQ3UEWwTh`yI^n)EbTNvteQ|ONP1WA2i*fs+luDJ8_LTh|EsjTg@97Cf z^GdplSyYf3yVR{+)C)+4vv~j-?G-P@5uQkO!JXh}OG2N7t5Vs&$Nhq9GhF(4JuSGt zDSzErv&c$2l;FrSAG)tKFrH1Y{w?21oJM42c2dgxpi2@_q2NH3*P^bG3S!Zs>3-~` zGN3xY9Y0;N5t-p8y*4p`mj2pmk??ies@E(~PO{ITcs8+w`$+k@Vssi3wei}3cChK1 zc28>|tu$vTMielX-X|Aas8RU+I9!BpjW*YZ2(>BN8=IS|pNPRG;c&m5sM{;PWOPKr zm+A^Kbo9BJ*ijW zh(RinSF+R+987i^Wt8&@lRfJW9btS1)2{wog0Cf;)3|L2)-&{m{6Bn1pP6&i9%$<` zA4?{lHynMV$6JcWK_^)^=r`Rnv7@M3GP5Hn49abg@+L!YH5pxCb7@rF>(xN<;XmHK zJihGa2&s$Ed&)o9!K9IIgKhi)w`KK-I;8Mo6{WN}2z{OMM^h{gjRM%<*i>bJZHkYM zdDf(~`U{n)T5tYLe&R}CkVjF#Yu^~!TH_1RscOMw-XFWPwd8N@!dufg5!BES z08}5Oul6_9!`V6KC9e!ODHm17z#rrQyl@g9wmVHq3)LvadTxTOV)cGoF}0P8z|#4o zBTnq&4sNRpo_9XsbIL;zCAkS7DdR>S_wmJM#pS)c#>1QEwv0^bVO+~jDmt67ZiQO3 z7`|f(=xP=YQub)CF70gVA_VA{w!Q(5krlXuKB^k4Ihywr zjr-Ok=jHf4e6d}K{A3rKO+JMLbsi;kC3{B3v5WAw3i~`(O!)A627+tvC)`6p*a`QM ztw`1R*_-++6W0z&_&38%Qv>pn61aK}bwK*eTqFtvQ-yKaF!kx3B*TauA_q@W*VBUf z>HA?T$Qdlzo8={G@nNi6?z8vkA6&JwA|5TwJXzwF#-IJX=cb9Q(>)e>ilFE_O}<|t|Uqb}s^{7M|Au_oCMpRjY5d zy=90TCEE2bh_!>gkgxG~HrOcx_P-w#e)lWXJl|?aj7F%8^i6L7;XXl>B9p%0TQ*C5 zN@iGENXTMR()&uXkE4`RVXK1j%>t^cjTjUAN46>fUBr)}tm^|?JV5m^LUZM|caOg` z5HMFmCw^$G&JEhO*}y&J2fU|jiF^S#FbnmuhROmx7TE@hY)V~Q?P5ge(7{ws!)gaO z-VWZ!r8b4muWc`mACXHSn5R;tk%-pYG5ZuGkBklwu$iykSM}FJF5Z-#tJ{Lp?yd|k z-9Bl>Q>mXT>E9guRvgAcS41GgO1k{~fY7Xh=JdT?Iqk8M$)fqzJC~<46ZYc?gA~#- z54aD$Xng`ECQ0#*)@V4tPirONcmR81uX8gGvB(Wrnmp}>M-uW*3LLqel~-Tbj@uk( zFUVUv&8S}jUhyG7NC^8zR`k;84M$J5I_}fXQKhFZY$UdX7i@*t$zDf%>Ef1_lwq;< zcwzF@nn^p0{AB2I0^(#!qM7&L<8qM~@~r#!!mO+h#R{?YS^DkwnU=#uJLUINvZ!R? zu5%=7Rihw%92@z83$%vHJK{IG4xLH)huT5- zBl)6FQL(&l_h>U==j+_Uh%fG&ae|^s%{FvM0af(n+P+E&(9`6|#5CPAhZ`dMG*mb$L3GC_oR{w~pIhoU(FeWc;m74{=mSqP;jLG|iQt#~(@rwigI{kzVNRPxcnNGek^!)31R1n zbfYmqoQ5+ZR;n8Sbw>lxnK|vB1#gbL&}jI)zGY)UcGHSPBC2UB%%&`K)V~xDj|NW^ z{gTM7U|s$`BZ5@{W|6I&>Sq%p7jG5lGd9bN%^zAw1U*al8@XIAud!17r#=7Eph9nt z2mIY|`#(0QKM$b&tGNez{^4K0^|wLgh8;ov4TBo5F%vn%jq7<(HZ8(ub7T;%ao^LHfAgG9*d&$-$NNHZfS!Lj_W8zBgk#o*3Vl%Zr&4%n3$qQI^|u3Y04tw!N;<)&18Q` zCsfQhoR0FD6Is=LVq^*i8qvw;iKIyfpFa$%MHDx+-xKw)IP+kfb&lAD%sfoTA7yAt zTZ=RES8qe(o*A$E81Ej^wU(=%rT!jwZIQYK=sNEt`+dkIiK5Teiw4tTsCFRSWzA$J zUAJkfIQ;@D{aX1zm}#9%0m+aqV#&qgi2%2Nx7>6za!roZ<+To&C>KAc8NM|&ym$rf z;GF2QhDqB3VvSz1djkJ(KK1DWgB6mLo3AW=J=VTnwjL09^hQ>e4juqf&!6$405TAd_ zct_8Jtj-+@&L((JYdUb&hWR}S?!oi-`GZ!tm&~8wwJiF?ZKpe#`#vPqzK-hnP{(5J zjrs*V7CL|&ZAkPTP`JG|p+S)r8U1-;ZS>_bY9Vo)u#AzSx4t6ssAXt)lXJ?h>u4x? zVY@JEpNR>m5BUHoGh|*eNrYyNir3tA(Qh{-kyp}{r=!QhsgVBFE4+ax%w(N}$lu8V zhf$s!L@#EMdW70E;TR;6lYiFde##y8jPjtRspaxyZtr?-hmBHTZtllU<={v4o@Kro z4*@jXbwaNUO}S_C!KWSO!KRZvFT`CQbXegeDRirVL7QSL4;&{Go-(2OD+B?O*u%rs zXGn&Kl28E|U6m8LsN~$r?0p}UlO3Fsq^H!1j{Hb=)}dgWM^JQo@g>SbMYv~%vOfZ^ zI!~59=k+-cg=10m2`8JpaZAS+iSPAcA+>w-G9npuO^_+e-U6I{-Lj4GhPs%OF7aA! zZ2um|REF8J&IS?o<4i5ef~6y0WEt*y1ocNj{eaCjMERyvFvnUHoXU66dm1;`VJ}lK zhRC-lH##hL_onyOHfz`@FucT)Kh?(L4KPRNq-g{8HZ{k+wf@UzubNsE z&U}Q9l!8C{IoNYgXWFoS>|>CAzW>O%PbRFrAD!1o?#(FjPRnQOP8M@U7cAov?N5t- zkbcf9A_LjDDTJn;8 zA%~>2W?Tw>{|8>J@zx#5HGfi zU&e4WNLrg7rm;#kS*i-fY;qzHI_0Wl@iW&2oRX_AoJ7NgTSKZ)?LLU;elM@rdWJ^u zc1DBl+MjxbR;YGQlQdc6vwuOut5|$Lz|;Eo#s&SBdUQLPJftawUM~KF7dIJimd$nJ zdn=2^R6ZOpmAu6l3F6}hUW_O9ma*p0)DTnGHwe}*P=?TnBMZc6o1(s<@ zzAO<~<{3D<2v|2_k&`~xhgW5kd!jt9O`~=_q9`#n5RNH#QyTC*nYRWwC=^3k$ycqD z(ed2{AiKtvAImPC+#;^P48)2o-G6XAl=#KM$P#fjWG!LBxRKX-W(vDFxjH85QbJpU zbeHR(E@HCUf7`(v_51iVC-+!GnPne&KQ}*VhkaO)X|s|kSVkXc&>=VGENYxn8ucc{ z+7j{kks!rGCG`SKg>*%C?7` zod|8#NvnYW$bB?w$Yct1gQJM`s*RWo>dRbpc0Wu#0*1T|r&GAORt-#S-JR@#J~Zze zS-xa3LLfxjJ0%@XPnUp4e0-YzU}?adZ2yI&e|)z8?o;^)@E7(40rH zzK!H;MKfQ}IxO5Z%jV(KNip{}UR<<0;v&-dT}(2@7OYAY)qig!Z6A{h#8%{7^ZU^# z2M{k0y5Pn-A^# z%DjPl6xf5BlRyPFD-XAG&d!SNEfIa4Gvy=M9t|*?+(vSo^2Bj1UVt3c(=GIG%Zz7*{RW1!j*|^ z&v*}W$Q&R8zQPf;*t3jgZZ!7UrTi2oIxQVz7sH-j z`rmEnyEkrsS`!U+V)piL+PB+|+js8b|BdSZ`9D^0z#eb7d(aW~Y#;2ut+;#W1OkEp zxHviQ;@>%k3wyr!7Q;W!1H+!)|JMNhwHE=h!=7CFjlBr$ph48idz_n=)(*-uZ*-<@ zZ7cc3(x;<%!l|cVh9PSlTe@l0X9V~P8VmDf2l6>xR1>kyW)75<9(}G$w%kCn?Ul|s zo13Iv2Da+E0byiyPiQ`tK5RzW7e9a>EH3M2(3W>>GWFZ! zuX`tW;r@oK>Ve0URDK$}O)8k;KKKM?aMh$Pz+HQ}yw`@z4pl$po*oYNPi&&bkVM=t9C?kKg!p3g|>E344Q_V7K=37z2=ns$@S zo}03Z8!+MKZ1GHWrH< z8AfiLy_A+Ta^W8e3e_9q&>@i+oBw#u(guF2yZl#|&opQ3R| zr9ILcFgSbA|1@o*G2wn48$B6l zxH+kF_8`*+;b}Y9)iu*Zxywj$HsS{g@BG&R7jizUT58>v*aUrAhTGmwcDf_}MggBt zqs|O9D@!S!E4^BaFZJnQPO@NliYvG~XUAV>2u+~dh@Z_cE`<7r$GU?okktHZ4eGM{ zcYBF;Qry_B!|*pfzRtdVXsGK(L|Td+uXpkxC$qfb*AAc>gvNL&6EZ+gz>dMzBxZM$#@{*8$1B);6|533!X*YI&=`353D8kCWAB%7-}Y+{<%aD&K_Ky?K{w5LD9(H&9cwXK_UB<5qni*W*+MuCB~I zhe>@p+x{2X3GbMuf?KfmcW{#vegLl z1ucN!nMitVn1pZa)4f@v9BB0B^LX64+K*HFH?OzZrS^SCx715UaJiLTm+V{J)N`R@ z&csgd);Uo_1URvT_Le4UT+(6yJ=%G@2}U?bIFg&j=&s-RJqMc1`A9{a=5^TLbRyYs z8h~x81J)OP-ZW@WEmQ;GoIVGNrQ6LBr*;zhu4DVX(Ft!@u8H2$)E~-3qE|f;ctK)g z;)*w&g?%aoh4rC3xDErgdJ@Zw_nqF01e*(5Z?QKyQdDYvpKzxur=fj2OsW+jN7yx% z>)$O|!klCCagZL%@BEUXI#7J!8A`IaY?r z`WFmy&XYN8cBvKx^8njfzLo3B@3G>N`wz!T7++~OyAf8%k{f;a;;u-BGCCS3Aj0r5 z<2f&hVCuu0S&6i&^1TP#P*O;)09B;KsHVmrkHvy%`QAM zo7&U+=#veP&iHf{=-!0nVYJT~0gs58!z_bzIEDe=)qY2;4d{ErUdWAl?^UkKQvqy=0~qN^1X z3yaAo3ElC_^FVPqN=z(OvSeX0X9#@bfT~sS2^muePw`x8A2>bw77XGx%hFLq#4TG5{1yz z!~qaxr%{N^z`hr>Y0E-!X;j;_f(>s>@n}@bd*s}W+Y3EJp-;Yvi=>FnsIqI-y#{~b zhS~MUV}c(&t8X~hSFZE3CT2{%Z2H&^Sp1#G0O`V(Ij3K|mC}s48Ltj3hz2=moOH&! zMddzk%#Zw#ykb$Ed`bm+>n~wqNYQt#B#1Sc8YrHyXhp@{u*^)}!?(_AIA@|2m|jn& zK|l&=XIDFeK9Ox)J*iE^*zTou*m^TSmUJ^@q*B`sZ2vaZmVnAf!H`$qTl{zs6J=D< zfm<6b8Kf|$q%@FXON#Q{{)bZL=RSCx(j%KS-_ckwPtCSOX5Lu*ck=;+9r~b=48>y9hR6vPOql z@f-zQ_6a0s?ZtxP5V!xBiOB0u4ckdU0j_|gA}0Rv77!K~3{;J}sPFy%sC%d2TKhKJ zJNAlg+fG(&+qP}n$%<{;wr$(Cot2fHr=RZH@9utUfA6m9KKRb&JyA99c`$4IuQ9IQ z&*Z0(PBD};~^RZQdC@#5iZY&VSXCb;+cx)*rDf}39Yl0 zj_9!fdkTRs4(=dE@o(`GY$E*3Dw`AFBryJLeEx+PJc=^i6k)?UXXjp!l_8D#4*pVn zYJoryXfCQQUn1aShTc$>I*u9 zRWA=VV!3W3M<(ZX6A|%FuNaH$HfqAgBpN$pQ#AIv=OJOGDMIa0WCYY%U0cJs_C8y{ zW7w2UYl2S_!GpZ_A3rE2v$>6KReognvfJr;UHr;YG`UlVy4uykSMsmwq6I&pHiPX0 z2U02Rz7m)7x1PWv?<_zz5nP9sYT3KN22$XLaJsv13zhR7K0`ScPZYcYF$M^uuT-44 z=>h&NBK}XTlYh)A|Myxa|8_e0#|1Txf6Nj6hjqgG4J!E;jw?l&+O`L+cicS!qZ36# zA*dARRIOKlo?BhdcHXVhu;g-&{Bh=*+M4$g4w=6{qJ<e>-b~JVEXF_{64}3f znO&Tzn>9N;l%7wD$|K2|8vT^DuP)2Ca=WI&=N_16!eV(XbxdataB}>F9rx!+-300^V3-{>vCHD)o?8x zvK#~3C0Nk)qrr}(V`qgdW8A7Fotu1ZXli{0)Qok=XGd4wYchYUb$yiWr0CUi*#x=1 zB02P`P_D~aD-vQF(L6xLarLI6{pv{CYZxgzOdboBPYbrsm2$_(c8F4p3x zz7#W5T>f}tK!Ky)h$$ZVTBJ$&r*boG#-u-ASVc5!d2}FpRsKcs>Q%=mdzmb+iGJx) zSq*mkDt2mkxM7HeKz#iMVF=C22GpnaoFwAw^vZG` zJ=@?XSG-K@h^?T9u;Lo+fTtVnBI(Lf*zGBoLM4ci{Kph{F;Re=F+K?3eogj>MOKfK0@!?9#8GR*rXS1f=omeBIq1v9|p&-;JOI1>9qD zDf^mo7IF+yt5+N6wFi;Pm6V^-{<;wxk4+_=Z<9S$0OW2}vcmz<1V%eL7>yRi_vndZ zj3Ar#>@wf@+%mA|!c||`$yWZc_pY|Iqo!PgCfzOHVKpb|;JxObFI2$;l?FlNm3>m2 z%K1ZRXHl5l7ZW$DzORG>>=Q8P<^j}b|KksSi(v5Ga6>OmcmYV3@jkX3OV%Z~XB6}D z@Q4`Nx)CI#^<9tm^KijvSoj{Xw0%kVr^-<)J;5Pk8s-q2MqFh&x zYYQh!%iE7dRF47c9=(|<8I!NztG%0qtzO0j0K156;3{*-BAK)QqQg`BQXU^@GJoy;li( zvZq4M@5CbmQd6<8B5hh<*J*qZR3vfWi+&@B049iM2{?ixBQBQcyP0}Ar#w;rWx`7+ zGDYi{SS?iz2nVNS?b}K?cgeic)#gR2cGe=aV^(9-cHtHu^jTF$wcKTXbJ!SUJ+8^M zVoP2J#zk<#Ru3EHw#yjP#w`?qvBY{%bTXE_YpU`O)2hMGAbVT|DH=74i?43#VLudY zEEF|>(%og;&^cWn`!l#MBtrIGh1+sYGe^B;C+l)+kg}zAGmWELX6ty+%MJm!=Oo$% z)c3;rb(M=WT!H&oj4zvKN;(x`9@|o4V}5x3Ogi=LwNpi2<_c)qaKSXch_CW4|V??XKjL#Nnsb(>>gQ*sUd#d@2mg4Bmx~cwRgF zmAif&h9%BphBwX);l(pEn#e=}syrdQVm@0!r%wDzZ!UD!8Ogi*Y@*V3g%}9ygSxu& zf~YVb(l1Tk=(h<|s10PY8-nk08sb;XF8Dai6~@X@C>_-jn}<^(r#+fi&&=@*}G3FGnWI^wCgCmz96?g&(zjgt;Xj4h^;!c5yVxXlt3Lc{99LehUJ zA<}ab*?U_U|NT*KZvYE?J6uONmTNptU9%Sf-f4{dFfae2sDU*LFj;4=Db1(D%tGXi zVbBdBx~!tiM-1|}+3;2iCzrEfpAbE6F?_6b2Wy(Tel`Vf*0fj~#jxcaxFN;nC0PX2&6IVswF&>) z%6IBo@-YRrQr=nat)XBLe!T-h6e7JX=CvnmdG_Cl~Q{2!26{ zQk|slW={wxW11Bx$fe$`ImqsIC>Z>WGXC0Zhe^7VQW*kW*10H^-|`-Qt@V-0 zHfqfuXt65*|o^mmnxeKe1}rA$*VJ zkF6dSNGzQI)3k_!-nnGo%tp6Zznh{3=!rO7Bm0SV6HoRNx3^m9(bHeLaIN!?!3!xi zQ98f-MIcUSbYvtiLmM&3HUl)Oylw;n<4H*07|6xL!miLvH{|ls!7i<44!M;{=QIHi zKgQ#qH%?#q%zN_-JV*BkXFC|;f;JMD@lkM3I%2~o$;0FUjJ za`R%rCb1)mVRvzGXhiWf-J6Q6`p?xvMZYsNh~rI70JvN)Odc5bm0$fJsEVo)Twv%& z`i0QAz^!oF=8RslLOgK=;k(5A#;;frWrxhHYX{k?5*8SI(mC+O4sB>qbQ z|8LuYf&M>pP5yr7Z{vaCn_BtTyBX;J6WZkO7ychC2$pYFDf74b{tJ)x&FW?0_~uf6 z+Zf+$h`%oX6$9cwgFqae^uMtsw11;a{x0sI{R;*1_Y>bl5JN{gMp_nHH#!Gn6XWj& z5JO`+17m#~M_Mx{Yb&CEdr0GGsBdHQ7YfDX-x^;W|F8Ivzkh}Qmz(|@`ONqYKjHW$ zcrtub>X`rHPJYu*{<{AE%U%EFO#R1Q|Hqk$;hS0ZFPxc@)FmA^SrNNuYV?d9W8wO5 zKS!5UhFq*vwUVrsRbVycVbNhtLKs3b;d70ZDZjk2_!8V;D5{DAXYu?+T!Byj0Ccr) zbhd5$Zi5VT&DimQ>(|3GLV!FV9;H%961RiRXRq^T^}Fd4ytRMGnX2fRdbUPAB!;_& z%{^!h=MzR3YKRXz6vy1m3f!^DN9()k+wx?|CoaNfc##nY>S_o$w9oVGDakpz=>Ew( zg4Sn^i^>rm-w9!pKAkia-qt%ZG3&IQ>yNYA+rEC$esgg*$;mIg;Avqyrv?+v%=mgs zyPB(OE)riGv|A|8KTe(F#|qIGJRbxe3OmvZCk>^TROIqZJb2V`l`JV~(Vqm~i5Hq4 z=fiHpQVZ(%#!7(j7BG6HpKJO&3zuVK3fDqrZ`1Nqis zKCyd9$X3~@3FM_8Wu*~59k;CzFBhlXf#KdKk^z=mf2-+t_O~TQNK+shmJXJf8>XzV(9nd}{$ny1K2L>u-<#fH*n+|}c$r5k5# zyWO%y3h|SXwpCB?@ma0;cN#{PZq*@EmCTV*Vk?W6JAP2>6Hf)zCnhS#Cf63)qim`; zgdgbX^~sdzEyADN0%NKS2NTB|!de;%DCaOLs05!wFBo~GClOFQj_=oC6-Z}ZmG%>gAi~0@T^_R(w4Zv}`JJIrTdA8Hti5E*yav zlRR!#UR(a;?cUZXT?KPrnc?yKh+?XbsEip_9K*!yluE=qwAiOMB>{rS4#Tyo5;WnO zEz4~1K(?_!PIr4A^99$(7+UwnwlKxAnIAH)kR&u-VHkbzYWcAzX25DqY88Z7oI%8w zZiIo#5Fa&s<0Kq8i6mZDFU;pUczm0n67-PE{aBf&39w}#a}0*rA<1!hr1R^jsKSu8 z2laG$5W|O^udbRGag3o&I(NOTKWW6f&w$kkfjSvo~7 z=0fnsdFQZiJkW3O_WjmYFM1U=EvVo;N+{J(qqO9b9=$nT7+ba2%0XaYikz5l2Hc61 zJ$A+8(x>S$s+6nW2rwE|B!$n|y14{&ErXB-IEV13gtKtjc~YWT`eiI^uY5h{lIe+ z|1LE{{lTc%FWf&NqcT^wD}V2!4V12HzM{d^H^fsTcThDS@XgE97qR4!Ca_j-fb|S2-kk5 z?zWvO!fz5>2k16s=(FI<%?>1vdSs5#0)3lBO;Lx)Bw5gHfW7H6Q`;DOm$HMeZf%c& zwSJ0@4Dl=j!9P0p4BFc){=yB8%)L%XfNF~Xi&EPpC)?}}=hkYc-J`=Q%4_zU$OKgb4a*sV3fwsAj*=21h#CEac zx+5#&nm>nDI1vSh!hI%nqI&TI_e?*Djy4OHrg7r;Pr?1aEa(3nfW@$JczP6|}sR_<}od_n+Gfxb2{y z_+5=U9yh(IKYbi#TQ_kucS22%+45iioQfmty5VU7a@>L5YH~5DH+DqnY}_RMvpoZTaJ*OGlmp zRC_t+R@%PvsrNp@=sVwWHSw|lqs^!-Fz(Ila_nlyMr}>}A+%-#z=g5Z>CD8?JR4VZ z19@Wm6-!%B7Yj>6dOA1q)@bhD9Lr8ErGQ-35#`4XI3w#1EGX}{pQ4UD)af32@2fG3 zbuN9%q?@qdeI;i+&g?7Vo;*q>DyBjYT2A|``wI}I>L&5ON@WK6|2e)H!#6qo{}jvr znX~a1!2EA<^jCe(e<_yv$8gNwGXDRX)A@H=E#r3^#y3FtFDm&rE&7|>{ym@mpVEro zO!jYu{O>$K69;{3V^>=TOPc>Jng0^Y|5Z0z=)36ue`w`@oa+C(YW(H^|4WnhCN=Sx z4OZmt4^@aZWPCW@lL81z_t1T$biTv$V0?Q{S5evG7O|Ix$Yi z+MR~&{uZCbinq)6WN`EX`qUaz{o1rW{2*U!`dtLf+f*VMb^0ApUmouV<;!QyH|kbG zYLK`R^rBHY+Xszg%eqEfHMAmvWNBrzpMoh4x=QNWi80B133L~g-)Oc9|4&u=FXLwu zo)1Q7c})GuzJWg*GfczqHr`Q)gNWEdkia<$yOajx#>C{twW*)1o-8*kvFLyJ27c%vKslTP;^w(80r}F(T%P3$2&ot-k_tH$g~$ zmCcKC2+=5;PfBICzv}E12eMWG*^R;(^QzSUra!zYo-xCAS^F@Zb!!f^4{);tAtOIh z!dPRAv~Fg$xQVoK?pH-5IBwX-{ycS=V6uZSeW!Dk(+3A7`G-Er zVzp@@F7q-j%sAelbLjab5w&4OLYXj8Ra$<~l)~rvYG9Mmc-Gy?M2~kzc0qL#q!_fX zsN>ypY)rwQ8gFZ@BRb_i_4C}@tdk4@PW|F188s$P7SpW|hAcz`(N@pOipU+Fuwk0E z2meH;43En+k4C0I*~qogoki>r@{s+$EFLS1H@dW@&&Okp@D?m?g!qN7Hi^O4aLv@41>Eh+9p9ps>XGDVV)9>%9>}f@U5A1YP zI*w^~EI^8f{T1GtLTGuLobxQ;qFoeOsSc(impe|5b8jNN9_I6Bw&zl;Il4UaWAnpy z2WVb2faWQR^u5fDRKLLUE>$Gb06hVex$M7wNc~25H6iSX0J45CBF= zmTmWqEjvF!_PscrDb@nrc3>j3pXygnnxF$Z?J}#pXX3W#*L-ZhsdZEG%O_0K*^0;% zQ_^%ALX=w@&CU%-E_|f1Rzfl|jK={rv-gLDXd&^1<1LU|X(DEzZfhZkN<&feE^+ER zDxGw&bXt0Ulo=SBL0p>F*}KEhw$Y|nv;GiePejt5Xc>Q5Zuyb+gy&zmEg0(*MjiQq zYWRy1`v*4GZml9u`DM}gARMY3Jj zYrB|8N3n2m?@FzI*Ht7^)Vz}I4jQKq7=syhA+PozUk4gQbU@y2$6Bc~1~p55QP0Lt z3jo`R3jKR>7S>Wp5vecc)d2?f9qv;N3FJZh!ffhD97M@ef`tlM5vh1)PN#?Wqt_#B zK{J8L9)jZL0Nb##s^iVnb;gsC#bi#*g@bH3ecT_tr^rokfT|;ct}?iU0cjJku=bkB zH9{OJ&iLr7=B`}PkPyBKwb}HPO%Y}o5wu1ctGv|xq}Rw0?_H`&zU>r01o@6_vy$YGfb-m@@X znVk7Yhx)&F^!H7_|2H}Fzc&dPzKcHo>uiVl8;S8R%yz2&n(eeAbYG}SIfZLA1$?K( zjB%8gv3?d+)mPMKmvdJ-?8fGX+`(`Va9~oE{eEGFj6DV8fa6GpMdZoH`UN)onRjR7 z?)=iHYd4)a#MtA2Dy!eseS2t$PWI%m+P{oAKOYl1CObH*|EL%M!rNjbh6 zp}ss@K2%WI*Idex>_V&f>KODXHshB$O5594(fUep(sf4jdVcoCmdH1PoYY!A32cWA z@keT+vGI!<$*;-S{qo7k67MR{Ps6(3#`}JJ^mK9$vg10es8X-}FM46#nm7^dQ9 z#VAcmio#u3>$Do{JjmlXVCv%QHkN6P^Q`>}8HvlS${oop!8|v`A~i+|j8NQ%joj3c z{FC#!?$XJjunvQBJk;X5l(H!bCZCN#GkkJkL(+=YMZuRw8pK#o=|}YFsn+5yq}_7V z31_5bRRrrzpyVG6`E0>}L=a3j4U69xC|)2PMq9I- zI>uvWGOj;{z1%w8-Mk8Zc=vR^uOtl^^tnUqxxC)ks&>z~nOYyx(?y{DWqY{UL$gzx z(4bXR^yqeJ!a{8V`0({1FofR8kn)l){2WH1Ml7e}^Jga@$W6HEmJq@!COQ7m@c~aq zXt`uSf;LF~DA;6S+w{QK0fB>;7{>0m{Y+ssLcjkNDq9zDoyz7b0Qi|H>YjTXo`k%Xi3h%OkbUxbdUr-$JF^Qodv@l5neEBSX(tz6G&-66kexh{PUv5`=5=(b`cMz-J|DH&3=9mf3xfXk}Iu zq$u2A9YO&c8gOIZd`sapHW4-dSbtqSSslQdb(cA*YmTp8TXhYiYn<0i;cd{%GMe;S zp_AOd^GKW$ON7^}d3X^U5<}lc3PRb-Cc5NJ8zkast3X{9+&Rv_@d8u_B$>JK#|jSA zA)|T3k_aOd+zR_bO(~XSqxn%ZVV9&l7OBFhsia~@^RN1ivD!O^Vsd80bFa=Mb-aYTWrC%kt*c-?Q*e`pBGj-DbtH-iIbLna3Vp9RP zvKfxBiu9Wq8XnO$Q1lxYQ_D_B)g5(MSw|Vonmd!8;wWbBGd-~B~rTjMHdoJS( zvfJ5yeR*|cMNbIOsT6Rl5>ap)7+uN~E%N_vcy`^dSHmd$R%&sZyQ~#TJ9z8+S?X%A*!uLMCYR+^>?~# zaY`fSVG0Wtm=`ad=8--iIOT|}brph%TPfLoLz%j-)Z|WSi`#Y}o?!=C{`nZf%)}bW zxOK@?F_GT<;GO1Tgbu6tA<%t_T~y9W)ZTcA1)0fN5Ia3J9DSUaFPwG;n(BGkndxd*gv5 zzkmkG)*V^`sgS^)S`8UpP{W{JuM3D&+-%iY#ZvW{G)#)7Utb{GNxkna#H z;HU&|LN2-{_02;vLgr`+v~qG5`%>E0%WJ)I{j>4LPPawTa$svNY`-0m6k}wIyW-lm z3L4k1@Mx;ex~q-N!&z$O?!heqqpLG6YRSKxy%Q;sP+)(o;zSncxEkgv0^$HX z%piR~6f5N^sUOf>Vt~*Km{3w{w`XN=25>M~mcwZb4Um=G@FZsB>JA2TmEuU*HT(E)>v!VLJXJYSp- z^LbXg^ws`;8%oK(#>1j5y)a zd14fe2-wP9nB5jN)lQ48m?ClPJVJTwy@U266dblJlBxC;7CV<+U9DKN_Nf(Y}gRu&cP2haAcO99KP`{S_krO{B4|m^WRAPdyX71e_fUC=hWgdpLX#f?t!fub zLR0P5QTBd%u|?;mQqN#djCAIWDq<-EFP>Yz}oqMjj(E%lMuaf+35usq7dn!E&$>_PEob7wa(TxqBep^ zAv+`d1c`QwT_7b#*^1+6`Bz?xdM<^3A~^p^{qcVnmiBLX`H%TahJUL*{?BG2{dX6{ zzaTifFg9!sSf9Cd2_`2@{9uU`3d!@#QByS;K*1uX-Evqzaz~x=mz%Z3vzck0cV5H_ z2L&}8j7rRah)Jg$d+u+q_V)+&_gf;rm$DTwHsNx7I^hH4P(c}`Ark;)K_JyJJM$1o z5Kj1u0y-jd=(b_e)nIu2^s#A)8$s2j{eu7yN8*X8ucw=hf=HPF2li6+$bihZJyPwD zt9j<>#l+C5RcOdl^8AqEi~``k0?&C`bNL~9n8T0=HN%aeut6iGZ*wLpDpvY3*kJ%C zj`sPL$7z{5&2S|S$Z*H&MRqI7H@!?#%FX;xIkT;=_F?<3ESrdH z0>8i_b2RMBP*O_7(VHCNNzd|PPm0aZD3ft+9Ln2m_<0eN}7zGi3+SqaKa00e&yeXhG!Z93 zz=fATka-*k^7goR&Fe+ipLBctnvN-@2a+7I5qk3SqKZ6XvKcX`LWwH&@sn!sYN^R^ zcxYofxH>9%8C9AHN9UOM*k>kGh;q{f%&Y3HO0T4lNQ}Og4DJ*t88u|Ylpcb#oroy7 z`4cAQ?2?i>de}=!n5$HPGp(rYq9#Dj(${_}5Fj2KB2JEwvfK5mLy^tmNLyXyhWQ$UTRgVq!5}BH)e1C2!Np-x{ z{-08H_lk81rZThaVdBHG$U^r~t|1=Oi>8v*DqDl^FBBJqDQf$ye4#2n2!XcynbJ|N zb^UYhO6R!J!&+8cx`-H?6D)Mve^Hd!WLBU4m;fIZZhhg>qXIXp$Kh-)PDGL9ZP}*k0wsMq>g+INdQ{3K5mYY1pyjCcYh`3Y;`+KFD!6$6WeU{?#|969 zpLGGHT(ASZMd&=$lP9qAZ~@!Z5yN5o;L$TQV{fCSBRRnCI_zQZmTPi%w5T@qN$uhV zp2lK#x7XF;;{t8Q5C%$SP+8=j+)Tb?&n}e9-Gq)QSJ%A9;8lL6L}36Kv9zM}`M{03 zM_xs$nd+g*KcUF0&O44mZ1WKG6O5iL*}x zCnjyrz16Sr}@^%_=vg2&E(6m4|q3H{>5GF~H)5(b3uroUsd|mWu`Eshh zv&}|$aEGX&2i^VtL|5g-rsqn#p;$+Q>yL&sE9bPqGsr+{@`W-uc1#Ul!FsVq$EGgJ z#Mw8davd-jwlwJJUGQoiE@VejChsKsULDS?vnwjU@4ABH^SNGau=a_Ch!~79_S&!Z z4^X~27$KI(%7C6_e;fJW_sVpuG?p}`=nI!Wgfn>*;s*^AFpYKdBl|n>UAPy|^D^#r zFkM<8PIud|l6$WgC*Z~1P2^&9x>k?R(WLzkQP;f|?qBW)saqCj)+$s)m(bL{>yy)~ zIpScT`oD+zX`}5~-g@OsshUKB3tM-RlQakoQORL%rP{sI`PdO)O*Oc6TCjaji=v1S zpRX>Kl0Gu??{&#SHh6E8pB}q)eg^&VNB8z3zYn#?80SW;&d`6f7@NrAG(6vmB+LzX zSp2cdvBCrnKXQuEIZMoGWFpcr+>by&YLIF#)8B3UGSXR`V}w8^AR;Q-7uCnoX6tVn z6+kh2;@$VEX4T+)GKgSm_cL_IM<<)(v z1}_W0r;9`Y1u61^EndVOa%<;ODOkK%&5Um%?*%cFXkg)(tj` z5Y*w}UgqN+!;{Sn7aXbP&9TiWeXQUP;d$PdUq3d8F`GX-T$B#PKBz5Yc4v`l#YP%J9GHVv zk2YbCa`lSu-_kPS*i1>mTmG=iv=`)3QkqH~$^gzqVT6_0Z^lA&btX37;G2+oT05Ci zwTSl|_jsl(x1kNdZEKWz@EJ3`Ld17V_o-dy{%{9Q{*Chervpt(JVvmG2W9~us*v+Q z89cp+eyXfvBbIE7Tqpl*fxAI^13aI4cXr6c3e`tH(|{8$qXJ{JmW^)HjhTlVJO`Lx zfkmdIA)7y}jj^fRn=~IrPs$J4Z(kJ0MhZzN#K0Gj5d3E$^9d|RA%oqGi{H#{5uzJ3 zU9WvKw|J58H*YgrsK!4NEdO&m`G3ok|5LF1v-A@y8`HlcSei7xX|T-*zCAqxj&$5J z#Oy%7ZPI0|Mp8(TWVKJ?c^=;Z!ea*+gz10BI!qn<-UI-I!^OqR*j$0*sH_g{hi(mB z3)te?UgP}+jh1V5)7o*1ocf{Tc8f9Zva^nj)p|>#^B}z;6KU6$f+!EwS-sv$Sk# zBbaKZ75^t#nW0@C8AC*Xkib`Sg{5EPsc=X(`!J5J26ue_(au%!89!{KmBl)c5Lg|9 z$%4m#MluGnPp-3x)ExcT-G}aW{+vrMj5l&9(lAmH`kqn-ezFL90Wtu-AM=hpWMOd? z)H*ZkS#L6{ep*V}yeQI2XEUURxis+5%!U{88~LL_*^BF2cG9@(VjK6vH0f;mT2R!L zdS8Y9+h9E+H#0M~c~=Oj{%RMhg0gV;Ib0)0f!c>w-=u)XFH+mHZTZ%t=T?&+berO7 zJk@cb6wq&P2QkvN_z3(UQNH#s$7`4-R?;2$O=j*NCBuXO zU`@hi<_}|}cAjbr^?(O!Yf30QA_7xBS89d}lo|^-ig&h!4xSJj4r!S*iPa+W-cQ}4 zo1*g&ADh+9jg#29CegicauIc00RcP>>$e{yYIl7RR3b2OABnyVJFDfEze*b}(>slR z5mfAEcp2NJBx?yOtsPrW!%S1xtU(Fj%@^*G#uu1ObPzJ7?B_(;a%9deN9YRw2~V3i znaV-oyur2g>AKq;A7BrWbbh_)$bj!p@rwk=CDsBFhqx_@q_f8?VAoi*s_T3knaUX9 z2MXWC6HDEDfJf!J;J~$K284{Y!)H*XP7one14>1SPq`CY0!ubuy2hIq-VYj6vVrV3 zO)ZBx$Y`-kTl%K)Gp)K5n|Olg(?y2y`%M)p~Ax5hroYN@-*-DCu8A zB!2uoO1XVVQIs%xAhhM>J2~n9$TR$>i5A!*v^sI)W9Q*A#ymzo*+!;k*bwZfs};_T zj#nw+u0+LH3`#TX5!}8O&Q6zi%lpB&k+jt?~Z7TaX3&c3&b=oMun3>RS#ZJ+)p(r*dv#~AzGTwe5TSO|eRON7Nj&Apk zxHRCGY}a3NioYSVe8ZdRtKVd>7D9t6Gs9tp>&zt0r<84-s@ znUg={&jYQ3*Bz`x2;t$#w8_b^Mf3w+22pbmoi!&64O8{L&QbsN7-V|Q0PP2W5f#9S z=|&QOzzzm|H~LRRu&VMmo|)8!P@IAy!E@_1^cAZFwt7z1(u!(xVcy>SJBOL`XR|Yu z9pz4?Dj~;dZ(O)Kb(iEB&*tAg_9 zc30+eX(;4u$n;5NDejsJ>!@=Tqb=-WzZ%H2~Wuu4%W+(CyvCzhZMr zmk$JQUg~ln9))cc4OZ0#w|_p>?!@9on-q!j+*jHs+?03!tPtm&{S05gkF5n0H@dL6 zc^nk^oE7yyvD?sGpTAtpPHwKZn=={B=d$TIhK_WoRe$xEvNDska%E2o%H5+(zFKI> ze{X#GtaIh6%}_Ks^Q@)-$1y3u&!{4DE~wPtSd)PM_8E$5k->V+NL9n0}Q` zuR~c6YUD#uAih(&eAvxkLOC^U2rJ6SZ;5}cDH?FzDE`81kPS<2 z2%wN>yIh!O^gvM8GN@}azk84C(z;@jGJW3g3vyu91ZyK|PhRstOEW4=)~=+ECi#67 z9A~;|NUK|N-GIHHyq}*JEgABNv1G%5Za=R42Q{5_WE?&pKepKSdd_m8pnd@q;FG!P zv`a}Z677bHVHLyaEH7O9nielsu4- zL%1~njCX&1d}0dK^N!)8a_jxo?cN<3{8F0Mx@DgQfkj)HUm9D_uDZhIh?}Z!4P)^qtEO4#t>XkWhKsAZs8i&VA}ZG6%)CL{I}OlE&rf&Da{jtHtG|{%|CM2{IJJ zu4k5V)yc}8QyhHg{Lv$IN)Jea)3h^wtb5;ZayH1Gjj;)dWxk7A;~y)BaU371iSk<&4I3p)x6-!};@=$s0Ke3E6#o z!^Bs!k+OZ6)@4#-)U5djPNbtVNXSnP(4k>Y!hp$OV$%zVl$-n$XE+iE6XKxnhP!Ir z>AdV^&yW-qcsnkm(dFsxioi=ZF^*~<6}Dil+j1M3uPD(c^y+zngtkB8Td@w;{GX>y z*on|QFYZh54t*Ep3?EFms)6Vv149q-Ey@WuU-yj`w06hFOPLnk(YU-cI(LnfTk`Dr zFs6{Cj68gIvSKj1A<0xSk0S=Fm3V+;yBr|>F)EH04kUyvEM2pw06bpMmZY^oh`+*7 zUv(Fd2_pWPRQ?~##xeY7U=;(ye`MkQTGjZEMFF<&^^SjGw%3HI{VkR6K7E2kzLoMI z`+lIVc*59Pc!JX~Q?+;1#@UlUAwjrdgp$~Kq9y597c>wtU@S6;b_UmL?YcI=M;COr zd+XcX-th_+crc8iZ{69S_p@PV1X8EHPy)g~0id)FVy$jh49M|%^7ljM$2DxWoM3~2 zUw(b;X@Rx)>aua{0YQvH=;n6ZeI)Gs{QwgrDRZR>6!CWjTU`UwgnZNc`ZQu`H?4mB z-uv~}JHl=1o4dilUkAZ>_>`^h1lVSGwVJ;#p0BS_M#t>^Ca&Owzg&Gr>wQpc-G3M9 zR!7$BVpGCa_|oD2VO$-7jys9l6Tyr4B#5;5_Hl&!nT9~CgFh_m=#IJ-h-na#GQ(gLpVR8mS4x>*F?$;x)c&H|J6zw1Ssc=HEVJmnULiRz&(%ET& zyZe*b|Eaa}lPxd_L4XBDI=RLPE*NWYeO1%IgP1av2(*p-9iF1BahT)wmN?v5;97FZ zokMW^9{;Bsh(!(t43(3=wv}f2_fsk;!6*aZQ!*AJ+@m(bLy&&Ph7WlpH{Hbv zUP2@7IFc!85Fy;=NNzRkhqwIlF@eGbsUJwd9@k#@+rasnmgq6#i6|1hD`7M1#Y^afCP<$^Jn$Nn;80d)h7fVr4jGS>J6YrnU&7ZlhLlC6D4;+#FokS-+>H8Wco zFiNo{BLVi<)p{+ z^qhI9kXMObA{gANy*3aBOrxd^ZjizEHGnJFyJe8V4(4i@Smt)0ALqZa=lA6>XBA0B zxx*^D+1!N}-g)k&p}LW?+H0ZhK15}g`Brw5iOAnhl2vqwL~`_)Rxf4Y)SB zvjAQXUoU5%G9InTA;zoVIWtC^^r>XqMcDU11lGLVIq*E_(ZmT4Owguol*;g<^=? zBI8xinHmprP?gWB8 zYY#)n3HKtR^qvC8b(=DkX;XjAINPG}%fh*4VRc@yE02nc+o>j2hp*__84ROvst&lR zxawdX+@cG*onWPn)I*^4*&6KRr)!Bsme;sGXVvMb>FInDScxJ{q(fji=|+uYZKk2T z55KsQXzAfcK4R03-&Gn;0pa-p!2}MSXiC;#ffQ2| zObm7#z${2KW_eq2amYwCB+A3!zn}^0#lc#gWVtn2c^ z9aAx7eZJzpJa&~odDd?T3VFAuMM#xV(Y2CY4Z1nAH@z{UVSbOOroe@6ECimkpO=3O zP)ZtFS63DBdMj1ph3*cMIkWl(He3i;u6=If-PiYZLSZulu)(g58vQ}LniS6eF&(L` zvBJgS9h%&gI`Z?tqf@IBM{$;mVaQV}uoBjBaky>Mi0` zLH&NMo0V)dYv&*M@N~%XTzAoeR9IK-2y0O+1(6UmPp_xf^Nb5)A%=SmJPu6}&N%kV zl1JVzQx19caP*&a8&#slDC~kz+A7WXxm(B>g41k4WBKIb*Ov4TOL@npgHkN3^yoBX zg2m`FhFIDUi2S8cd<5U=(f#2$$^$wjPSVn?`|}dEtg%Oyjc0+8Y&Yiu0YUMq)?|Qzg$Y4kmmz?Cz z^gZxDwKRy(Wwp_e<}jSJma2-O%St)<_%KrDQNep>Z%zvxZ=|8#7d_8ehn6C6Ya&Ti zGDWyx=Y`|chmGh8FpCk3C^cxu?coIBkQ>5p1mpFlMghE^ zwO-H5K5C-oq&aXbyR730Qd1+Ir}i1F#kqkIf~>70XptG1aW4SMf|;F5)u-E3R^kcp zO&GxI6Uy@Ti=CE?2v)d-7~@0br56S(HG4AaHRpZFV+`FM^v0iZx-m)mX+) z@Z^|$$Zt9Si?(+Tu6*0phGRSFbZjRb+qRu_Y}>YNr(@eTI=0oZZNAxk&iUSR@80#* zzV+Vo*Qz~@=Y=2gs{muqE0{$ zP=-@pe#k#;nxX23Z!hx2&VK0%i?frWwkVz^F~V(XT{k{@rrB$){^?NApJ*TgtDo^F zk`|qbeu6X}I#|Uzf4dbf+`+Rjj1rquL#Lcah)>6I=X4=Qk#)appX)Iu{?ey4OvX7T zO|G1X0#WjP+3D5t8>G`-W;RE|BNI!;dQl(+SVY5H&uno$Tdh4^J$go$)>~Ozk1WMW zS2=zGy1_|TrHh!lv~)xuJc24xyK@n;McJ;vQ*xw1#VMgjXf0kLX0*+(kllFM?m)CL zlU_iy#f8}b0oGD`@p2D6cB}@~xMQW?3luIJ?r+-5>MI#i(qS-%6>y|-aG@(hvnxbS zU?x&wFhP*xbtSQOgBJT!nM+S#j7a*x&Yelkz!DpPgL>~Nvn&;8)wA6k?&3iNY}3(wdB0q&zN3E`BqlO5I?qB&m0A3X6LcMz!ItC%`P!$&nz)dfL6@*F z-IiL9;@jL#uO=xQ^6MU72n0iu)@A3Oa8u>kM%E+{_^Nd-iio>$GLO89#0kg}WGsED z82M|UwysREaEV@|>EvY>n@7`MR?h!C-toUyIsc8N|0@yw7XuaaOw3Gw4_%u^uQlGi zyodS9b({Y%5|p2t{^4`h3~A9X*3kwk?-1_8(3dJ#5j)84R0n&#`9c=AO-FcE9{=o5 z=ds=P)7f@&P2=@!fBQx#;2Lemp$6OA)42z&H-LJEQ-nyfA6)?P=T{p0FcWFiNL4Bt zZmo87$QY1!K;Kyt#9kyrhCn2-gpeG@@t}_GKyqqiGP+Z}T~k(d`bazV`l`+Wm)IN= z+d9BG)=7fa5FPl$57cm@w&rf6>Tc*HN;kD2q_l5V_u<}}IM0S^=Xt z_OnJIG@#Q+JJF&u)Dt%ijAkixz!(n+f+R(^LNdf#?VK6c+=S6a&~cm$5l*&u=GchT zS*=gk#>L_4o)FnWP*?~N5FkeEnJxUg`S9H)rWVri^YKTb>K>*wrv`+ObQ28NEq*Rx zuE>fbD^S7`^FkPlz(|8YWx%K4gkwG!PL$v#ZHZ6&(nnmw=zR3bT(f?|&)2}5i@ zry9+sXPYr6?bE-g*5x!lUeup4CKs(v?CdN{Uom{zE7?AM@Q_3?2wuNRBA<-QFw;rM zX3;J7JI+d_soFmQA-8$F?kvxNPdmU@nzrcElPy2bz#3G#^De~moiC*zEE8b!8+dM^ z+YfRw2Gz2{j`=SPSe!Gnw+&}a_`s(Y7njkxr??B(2A#AUQ~30EuKuT)0x%L-$skdoutk{m z8i%X4Lt82b-7OAaEYI8XGV5+r_JKy6uHY=dGC6!zCP?3z4DE2G6Ol!@<-praBNaDW znUzX}06Wyg^1= zs$gW2@hrM=A9h;Ut1RxZ%L%I_xI`8Ml7!T9gT8Kb21r_C3?!Gvl9Tv1_Bni!^!1-V zuRIJD7%f?d8FNAgpDqwqh%YUErmN+wkKgb&=_#q4=nxrrZN!Bv&!g*uK^;d4aT0|b zOeD@v9}D8U7Q=f&u5U;V>rO%c^5J$lH!k|hhHhzB{E!O}t#V>2O>ZmV?T)5%KExUe z5{DutW5cdyb2DFRwcypXLE}iS7J?dCewbgO7M7Bl*rB8V;;h4VMg)bwWLZxl!Y5Dc z{qa@G?}tV~s)+C;6Iq}#%Sa9NmyEkHmmpsG$+}(9@}VLI6aZ5{U@?PId)5;(GY$Br z75_t{pNLL2b)>IrPV4b%-BU@+#8K@9r;r(YtTgP2i{#RB0io{CWI?l_#XGb=f$FD+ z8mNDL`%&CpP*QXDK>heR=Y;PRW~^&pSs+`*cXLo;TWC#qNq$2oRdPy326Q#Z?;5bq zKV83_W10{?xYud&-O=^iSlKF-YT|@RueJ?~eECrGha#w>U2s2B)cP1N zAPyAu{AAIbl8;yPU|2-&%D12a^q89zYM4~@1AFOkN8?3rGh zWFu^6&XOWf9O#6mJ@`zcq(5>05@S_ojJy`PgPdtxj&B12KXJZ?c!rGZr|*jott-od z_da}(c(8q}x;NhCJkS{&=R@$h)RC-?-Y&1%20LN|^V5bNmpFjLZY6CiNginDiLl~ls zHcNH_4|WPg3l;AGeVfeSuPg(q*D zS(v~g0q!&VlA_Oy|3oFiXrp;^>Ipk;81s_L5a4%gCvdFXquO2|40~>9L|LkVb(TFYv6K33P*&}w(_1NH*syh6P7|=6mCle7%Nbh34vg!@Z33<`e(-Wr6 z%`~B)7d=u1zg)D0_G}fp$+~|HjbN}`N2#+WfN`VBj;x1%miewy2WlPWL4|EF`DzZf z4Ah?oX3ObbmEzM9cKIOv^exjRIB&5#KAd`3~b@ca_&v z?BE^!*h8VwY%>QbjtL;4#B-(FMf3UP7c|4)AK+Rf?3{_kch?K(jowcS|)Ub?TL2(fa{ z@7jtZTAP&GrDt5`5##FJy*`e1w6)#4+-@G?FAm~2Nx9=-b^uUJvfk-`Vf_*ZMJ2$| ziw?w6jNAA$V~v{{)wia5THQTskL3k<1%~AE;O_l0*&1C$uM&V_D}B_v}1f(cxi6^UgVzfZr&0Zrne$z6&XEh5uCe6 zEzC3M8e1@1ljt0gAynSexALY!)~La$O}Z!t};s20BNg8v?`L`IC&pzsW`}dH=UR` z^inQ5LM5}^`(A4Uf)hs6Q74A5SC?+olDEmcF<^RR5mQkmYVK&ySi-4&npe=~n&l~` zJTGMkT5U@n8^Vy;bN5BqbGq7VztEb`|Jt%~)zH+};+V5;^J063gscsw_btaJ z2_^mXu(+Om+3Qz`DM7nkqy4RK%z@>g5{tYE2^Q=x0QyyqW5qWEmo64{aLnTzl^iu`kRpi`yqm9{_F?IiwQ4dn*D_-Pp_sFPg}OA#~)MG z*rLHOL`S}kkyRrU&kza$t5p7;j}0-Swq=jdYj8Mwzc_lq*@UGE)aklp*+%&UZQv1C zU|kr4I#_^RG-?3~=*{r<^13d?`c}9+Z&D5M#nHDq-}{WDj@efn<qA?76V!(=B!)y7JUWV%nHEvi_85} zAAGi%fK^;QS)K!Wbba6>8AOVy#JN^ml2`<#OuEOSl;3D@s|GNzVq%V3(X8kV9uN`A zN;^S|62JFwl3c2y^InPXIH-{w9Ib4rXu5_z{S;dzU-9dnK8mPkzKCdg2`I}Qv>Vx4 zlwi2A4K+Cq;X0&n^is@^m>A<>%i9aGM8sK!UwTtTdd@Nr*Rwyn1?OkONY}goE8;hh zrjDH4t0*oaziU+OlJ)E=R#|$RAswPux4oO0A&HtC*-4%JGQv$vUmdwS?8MNUun+^~ zZtz%8&_L5y8uzxdrF*JS&^61K2yMAPX&gVsHZF!iymE9KV{tqY&Us~+&~fu>D8-~a zbH3@LXGf{2Q+1vNbKc=gZgU?pf&tj4|s?7OngUzD=#9hAxxKb(-dz+{6LOFLKUf|3VOUww~3WbfMD;} z@z**|MgMxbgx9_lmHMxD-(NwMak`%dU*)=qw1%$Mwm{fYjBRerr+#>cnZn8UHPHqa z&ZJB;%eB^armi-y6>Q!quH{Cp(+P4_`bva6w{n(|W4STgkby?`I@Xp*Cy4ov_LK0w z7$J*`g!OV~GGPX9@sbTDvp-nQ^y)SSJw|y*jzmgLGdPIIl1&lcNHa3Q8F?ow=+Do7VUCyNgITJe|Om z;w|_J6hp{&vMx;5VZK6fLe(5yFDDYu4e&@S=Y8Y6=c7+3tJAZb0{*E;id$Et1BMY- z1A-PaHXwY1L7g{RNc@6CjeL0Cqv4I63^~VE+f2PppWILxbc!6UYBjub#|9#WkO-ew zZ%n}2;A&>&OwB~$@g8sjB5h{puNMIP8nH$T%Gn3QxS z@T9LOC06vQPw6a~bb`)z*F)E`!o$RRAcIt^pmNt^kA@tu$H2}h(aq#Dp}uC4-+ErU zsXQwS5l#fh1*U-b2;+31+~o=776Y&*0&3ISvFd}vqjqz#oQa3`#mm(zkDBWjl+D!};lUtk#e|D5eA-EYM5Unn^Gzc5~}Lo6auC&SEtvmTXr7V^rG|L z*TB#reC(>4lQuRCgn&V~NDzLshQ9J>h<*O^%#SzQ>z2)vmd^yLvIQ}6!r)&~T(d7& zbd!eUjQSW`@7}N5)=AYeNKGy3zV>YP9Dl9;1_a~;wW`^cfhTR=R<_DYSq&1@@Kx?a zh&aS~df&=2lh`~x_-YW5Xz}dgslt-S?Ol1h-u6CS->7YKsbYOk7l)L?Aq4Q6G?o>~ zpApJdpcIXaK&jBd_wI&TCjL%S5wC?8rX)|4AD_Y{To6tzS#oA;+bnyq4O9D`d~L-7 zSJ;VjH4cLa#k5v)Uqk|gRkC@j;&g}>-cyVw{w%u@;kXbOgE(f`CHZLv&d4Eo@8?4D z*-AC%_&7<+MN3QL;uUpe?deFFn@QK(o7JAS#gctZ$%YkND6e7-Meu`Dohc=$1I4s5 z)2?VGa#d0t=h`0Koaz^eNSh@A6`6 z#`14r^{O{)W$gwSzyJwu^BMw`82%8q_298t%%~v&u(H_e?8#Zc=|oRyu5oQ053a@g z%8Fm@DK9ha-VvU&X&rJI-}M%=7&o54EZ6s=BJhHiBxG*C7MyCDoka4axe?=mm&P|) zuWyH1fT^~BY049ag$3w=+2&su`0TyRs{}PMQn_<9wC`da1<7WW(RY^IG{lj1*6Gk5 ze^2FeW5tJ(F5GX*Hsa^S_MJr`3^MI*@WGR;#tR@Iag15n8a-`VUR46-BYp)A0Tg20 zhRQs_&m<7QqBLR9s{D2uGBV)<7i{P!tyr32?hwVH;+WVKSO^7`_GwOZC6LJnZ~z6} zy(O&g^vEM>?dRWVFzj%<$!QUOMQqzbL(54|wxwcUoajo~*hZ$-2iBS9t>vkD_>?|a z+($qbFY4H>?OfJ&g-bAhOAg2iaJN;-XSTO<9JD~qevIH*0@}2sY z3PC*P&}`iL#>2ZsV`FnOuRKF+k({yHGtNs$%&l%L_j?;`vLW8hEJ19mLlkC&LErL- zC^c^FqX}dFSVj>oj#MVF%xL6(RwAHm#Lw$!Z62*eU#hfUjC80{2pKk3R13ItZ^b`; zNUAt;Qv7@Y`}B=r%D|PFtO(_!@I#q)j8XGY`{gB>JB1(O6>(Q>!!)FCLBC@rRnjMY z0F-P9nvox}P_7HKRI6T1#xo_*h{OAJDmz2k_u^s*fYJC{g%_0rauBITcQF-z8tyVj zGm@hFf%*m9Kp{ODxNspZ9m*F9%phW-!q zcnn(vXEByw>k?lQ^(`=6fNmp$Ys7mxJmXL^)O5ETbAM!AFx!gd1ur)#Lr~&Uhy_a_ z>pZJFTX>5vIHjpU`3oW74*Ytx#F2MLHfEbb(Z)J|z1WAiE*Q|XAw!5_^5eeKJhWS5 z&YezA!o&DN$<^+{QeU=ihX8Z5FPGoUyBhooVmBGWkHo^#$K6r{*WwJFkIJ;_K(Zh$ z6)Vq>+2H&|M)wS40Yj>==H661(LQoQaX~t#j?op!@&RCCVwLOm{FNvyd5G*=^z4wN zZ0<2tGX!!mM_^mr(J{QO^N6VT)uY&)LGQd9*twS|i6q$gPgd8WsrlS8S{%3nPX=Ss zi(s7}Bf2J1x)$VsLif>2!3NaG1)P9SeP?r`H4+bJ_+ zyKyhk!I*U>Mz-LWY#R1cJdB}ebg1Gg?*O4>e6ejPaAbaQ0c7_cjGK0ZXi$GvSJKh9 zfQC*!FjLP*WzHESD(z&LkAwlVIKuG~IVIa#LK(^rW` zX<+*v4U;S^+iARc+zMuEtz8d0`L?KamXM=7;B`(1e|@v6!tytWrS(O_^@22lQ!7V* zySeP&PKC^{b|rA&B(+N*ak`UsTO$^wP@@K=tgWTLuIJz@@G2`|ETk9o(>)#~RSeJb zcJey(gP#^4{B{1A;=CS&-3kzm7hL&_#^SJ;#d)AnU~CXXs~^DqOQ{Jz==?d}HK**> zqF$CfU_75?J?Odl^ZD?r9J$-_t7)_pwI4DkOet}uBDRVf;|1ipWVkT14>QG`a$dB| z|M(_s;pk#oiV!F_1}l(2u|zP9IeKQMTK+Vp_i#6u=T+{~5ctAPP=5Y7?dbdtyng9Y z`&ZZXe{gi;_vQR=!p8J}>QDQ<^T+Jzr&il%SK4o3WBPw6y8VCFivM`yUjwRtL$i&M ziJqGIQw;aFqA@Eg9@D3yF*73@9uw=Q*zf21?+CYje*L%1oG2cR7}US1v-}S3e-O(* z_2ZaWKULk>@aR5ehME3|h=u--<^NM4|6b|*mzWzX+uxFj8CU&oy~d2{^-zWIx(h%j z(k@Cc3yoAXLC|x~Tmf6(?S{*Wv7Bc_Wl9{WnRn>DDG-Y!7RkuqbR*m4;?i&La(+Na zQz=7TCG+l#M9@Pk?br5ekw-cgLYLoP5JE7{=L#ZF5afW0pMZcb6Ld5_TbddSkSK@; zfp#2~pj_4JK$U+0N$%6J9 z$OITs$aOEW%dJI*+ZGD;S^z~N-}_01mR$J}>eP%GOiLaTJtMHCyGNqpngBEs$5M3i zah1CZh$0x)7~w$>`e}h45czV3k}o;kSCWk=H@d1l-WFKYCd!D9ZZmhSE*LejaX`^7 zIP$Qw2bo3dmqvGL8RJEiD)-TW>#AtpJ=f#@81@_~_|EoT#9lT+Vm-<}iSZ#(S5aDP z<*7%Jn8RH`#Vo^Z$TlNiX!(w}I)Mz=qPe(tZl z^PT#lOv*?Iu|Gx=R+q^fS-uVasXclpNG>syD#^S9t*taf|kjR`!Jnzy2t&+D>uLyEe=A?YGq?}l%JX<^=or> zrp>xTT^;7B80Q%px^?-as`z2*h z%GVbH6TcfogA?fD#gXpWsp|&LQ8zvrCC-bx&jF^TGX%2f6m&WnL?+BlrmJj@4ItR} z6CgkG954rB8CjlMuQ2GM`$!QqbLg^>iUt5(NSYsnYb3$HZ;+T{MpsvOMD^NJI6LA? z;*rtGB#*urHmW-+AS?JH7SgSry-yUCm3s{zbD=UI<&lNH>EkTAk`7a(MUPFP4I(AU zY}6`or!$m0(*tza$fTXhVFTZY0<{=@|=5lzaBqbSu6%wDiSUz6Y@i3o(s~Nwq z@X;l$OsYt*jbOv*xVY>(EbU+d{qT$4Q#-xJK+!L!JmMZPN@apo{7%h+?ZnWpxG)GE zG?h9-gMmiuM7-KK0qD@Ox`$;BzFpXjo;Ov=uP{Yj%V1-uWEANi&b_g+83?>PcUxa3 zJ}DD)F8iQLcjty!h)6 z)45VWR3!n&;glCfoH(vI4-DRP+{VY{mCZ^1lwGJd+tV`y^PNo#_*U{n=#*z>wNf2K zGef!dnpL=>keJo={SgF$4BhPy-HkK9$HNQA?NFbi-m|<}wjMfh6Ay&JX!PiwE39Wc z9s33)Y{FZ*7vI-9mwK}xL%5%~upwj6AiscOhv()IRTInsc59@h8z&uGRtn9iCh-+- z)P<3%Ylez~%2Jo1oL2;IcXl+D0D;b0$CcETmye%{tCOKkrC*#pP^y*S3H1m4hnXuF zY{pi^ybo*^z`CY=v7sP&vr%pdSQ6OQMTer=?3s~K-9-bKBTYg|Z6-(>A@obe#VW7veOUth7p&N;W8KPj^P!+Y>W89Xgit#eC6K=WOP6Dcqt42Hsa3wgHSCdxa4Dqb)#CEZ(%qe2SGFKI*=gka zyh5GGI-p0MnB$T8?wf~3*ZcZjvuMKm>BU;(%p)J9#R*%e)pz!wStH-5)lh5Iv!H$L zkX{rNp146X!6-q+2tTsa5MFXA@4az3h(V<1!YG=Oova@ljmqQCHA zrPxT;Ur>>4nn)p2uw8vjwy#A&#Z$IH6i9=c0yB^wrfYy=46vw4W)I-O7J_&Hoi@->pCOUcDx( z5Uy)chE-$d0!M-@#}}N|gRInQi|Ww~(xV!NuJZ5uw?Xg%=^aty~c4bhZ!R!hNs)s<(@LJW%uM-Edba13_>Y_`np3e%%otj$MUw zYd4xM)l#bMg4dcgs89gg^|P57 z!wtT5w{vA^KFFUW44r^36!>D-F>67pvD{Vt8_T`Qs$Ih<_Pv|4vx>5mrNS&{ z6J&V(L=y8+{7UN2hS6&!<+Y_bCYf~2y(KB^@MI}azoIJCZK9;{qiCgtO9~0g%G%n+ z^xL{T7IUm*mlGNH!U;Cv2>kuvYb+I=QwHtO;(*TX?pBH>xB2>^a#SQ7H_iO-QIgdW zL*Jm#!ysety|za=EAsgu*=@7xwsGbBfG`}~x~&~|A%(oQNi&<=)`Lrnir1yWZ{6pJ zYNWzr=I)uX4m!oa6X%p&Z~J(weoTqEt)cm>94#(6IjL$&9DSXJBVWIcTc0TJR5rio&~Ul^($RT|(t zN^wtM9cVjtwP(&Wt>(;Qnb&XLNGydDBQmqChfMQt1?nh{vDBM>sVOt=sllhaKrsVK zAVhs3({AHNM#1lBt?saip+8jChb=Xys;Y|O#_stEjy6O~=qO_y-HV|6OBsehRs;yO z_X9-SGyqSxBg{QKFFfz2Od2?J3mAiB*CQZs%uT$I3rL*Lc@#>Sz|@eR0H894Q$mo9 zgn01H?Fmdj`sd>#nJC(r5(2T{z|c)8rcCg+*yAl8DaEf{tKY7jsKZ{VZ`;+2B&_C5 zH?c+OEJ&OjGy7B@NxLXd%E=?sxK?@me#(-6%v|=S7>KOn`waIi)KhLkO-kR9>=oZ< zl5nygVbUFm#{B44u^+KkTdxm;X>n98pTOM!X4U>u##3tXlZR|CO@w!``V9{5vG6QD z%w{pH<8iP8k3!XE3Q*bd?8t^3{uN*VkU`{xi`;N7R_JM2b;J1VwOkpRTb@SQsUszY zanUd<`Qe)PezC;ctPabAzV$dKAUK2&mt8CS(sn9qIVZq*Z=Z;BfX=}ywNr;A&gkCw zway^HT-<=-;DzcC83{!JA3~*{NEZFFSk9@PZ1h#NYLe>mL1R^OeMtkA%$*Vu<}yb- z;)J{~rke~2R#VNGQ(NlMj!K8^ef{cTNXG5Xf!&bV$86cLVA*JuD#OrugbL-Ta@IRz z8=sc>IbX&|+JV9FD}u=(6vJowdP{ zpMYInUpx>bZFgteWf`V452=p6baTdzqw?JHF|TP|5ooO1$QLM3CdqbybCrPpJTaQ) zoRNA4Kt_rMdR-Eb!Bl^MSR3j(in+KaA51jaz?~(+P8ZxMJ49C6q|@ng7xYWMu$8cv z=3z5on*cPq;%B9-I(I7~U-|xAS853F0VfoOAa^9#_3QZ}&`9FCqk#ep!eHs{io#h5 zpp=Zux&7j3;<^%NptT8&6(;Ldx38dB{8J%RyJx378S4&c?EBNK5gOh~qBcO-y%!e| z@xM|IB)&#Rxoh!K;RZ2GDB7?S-sI||o1QqJtYnH;PTuDIoOdn-T)b=cq5g2cD}C3W zzt}JYv!_hLY1-B;#t6{jM2{|dewx-<%nDeE$4|Es18x)xf1W<$d&9|vcyeh4hvmBv z38AM)z72DgzUrAO9=I#I+kN;f?$w<>@T#ma_*%98@O^i0z&#ill*~wH7W6Vp9NGeCc;zJELQXLI+wbwThcX#z4(P2~rFl^D5|GuF5{0FKO_o z7jiU{By)arj5@V9@=!q2L93||JjCINk|$*#7MGR08|OxkdSaJDxyaxY>#tC4eX^pR zcTl4rbxI}*bJdDM+jk6-EC`z6q+x&=|1f_0xDeXh!U&Wclbw2d&5`8}iaO8{j_{3e zRQMvbB<=mx@W!GCM;AO_n1&EW70F@)h~HckOA8z_5C%GcNT9RJyYWoh z$8fd@zga145hm~6T@n(&hjJSn)ew=P;!+zbagpJ#0K>nxX#8&jhW}U z?~o(R{|JKSzq2&IgZv-F@=unAnU0Q{fr$?9(?a04D-<&=?eF#fQz(Cg_&*4Rk(Qa7 z=`(&NMi%N%{)~x%m710AlQCjo{$u%fBKaqO_UDK42fy~ONd5%}S(yHoY|6U2rp%f! zisyk!GiP839L^+5ski{J(h8X+l#&vY((Wmou9Ck0;&<_~*N3PxboarwjSd7wz-`}# z2bc3y_lc_^H#nK5DCwrk#_hu$)IKt4QKAI?(2!yRGP)1_fIN8-SVawi7Y^dchVY4A}aEw0kJ_eGmk4S-J?WF!$uyyod6Iqn@2< z2x4twM^nJoYf5+T_Q)CysHQhnvfd0$chaQvwFM1>%phH-e7^%OSelh)+fM z;N0Oxf6bSk1pu#_6qP2QWYc%KO(1WzNl(blTOCt*ND=-RFL|i+ApO)7-HDNHJ&vUY zTnp^epvTf?ShpmZ+5yF`$uM(GYV77TDrtl-_x%cq&>bg21CdS5?G{7dqZB-c&#vp~ z)H8@h<-x*}fCX{~5}#I7+fq-=xw5mfik_zD3C0J3!1A_%_NS_SKrPyR*!1)v?Ui&O zp-VXv18jAz43PGu#7lL1pFiVN?i{XNzl>ov&oxi!d5k|iQ;QM^S0 zL21@gVW54>4*Xgn#~&%#2tupo6-pXkPDIBaB4R(US0kuV5}ZIK{w0j<5*!XZh$vj# zD#Loxt;*OtN~=x>Mxz=F1GU^o5VM@+C=e%4!F(60Tki{s3D&S$o>6j%lY7_4VO}d) zg;3_W1M@n}i5JX?ETxpFke?pvT2~rdiggP5PU-uVEyr35Pd66l<_7ku_zh#*lSo%r zmf@_Jy7Xf7mc`n|6XReaBvA^N`TF{*w(u{CZGwdgV5$z_NO@7>XN_X5W#+Rm_ zjR0g`B)bw#42?Jpw-F=XMWuiZUOb!yhaB7sUYw~LzSQh|pRL;eGP^&(y|kAOYmGCP zYBpKkUtIFY-uIoh|1uPi?&0${dFU>t`ZlqN3VY+soAdBc_L?cClXN7;M0s7clDwl0 z&%P1aLo6P^RW)~>+O>)v8E6O|F4TQ4C3mNnnKIOrTYg)=d6$0Q`Jtyc_N=zh>Ayl% z2|Xaw6QctHWmYvO0-$u&=>2R31Vf z5y3GYCsX6bfUnPgrjpXc1Zx#KbesuW!g`MadI7e!fPIivbn00&bUUR|)9tCQlWL#A z9x?ss3Bp$pPwYwbO}hD+O1D@vAhaSxiD%0j;71bhUjQzKe-}*nUj|$Z|0r<%TQ!N{ zFN!!!pZE9QAZQX5C8B3(5jqc4RJj^vDz8@Q@OTqZiQqy4*BaeLzZVJSi;2mHnhkh= z_8^O~L_*yGrhbM_^RE8M? zo|dVb3|e6JqjsX!VByJ)tDf~6%*V=Y;KNWZ);u%TsMaNuUc_OJD$1$>N8#X)vlpfo zaj96o0wdGrraV32h|rGmZb;nyo2-Z{VCQw0uQ}dZuL}GTjDu!$)2?B91*+J0Ol!-f zfi&#QVY6q~x1eU#W-Bf3_K7XFKWs9W&Y!2&%2BP|au2@YqZg_(k~7iW`Pr3)Dq~Is zhca0)@qyDVWr2(umx=LfM@v$&s6qz^$&u(8sP~Y@Cr&z9>3^3@(ZP7(mvS+w+rETy z@{n}R8x|FL{Hjf<@9-q{yww+g=b{=3!ahn6WRZrQ>-Lmy-Ex7d5R&p3V6%Z z;YU&L0Ty!6*>#qJ_8U*PR?G;yL*+-08ohZ&t|hGEEGLNbhof=H<65;QDp6q&Llx>h zGK3CIg=Il_{Pg??M`Ys!Q$(YZFmFA*>L#2TN++g?rI4tQQ*+t+d>_?TH4+UQm5i+Y z<5%hH8YU`6NV-D6L~?ebW={9=6S9k41BF zFWOV*pva)jm#KSwzUTPFv72!)qOJro@-iHRi+>TI_*qj;cM49D0`LApX`hHL>tO{ucxHFc8D6~`Kvdn`>WynmR}KJC|zGQ0xPb5cSwY;J_U{0?jXb9FCz&JsZ+8qqol;P)a(tm{yG@kxU8vQoo+uCf;Sxa9kyNuao!S z3!ub&2eYst-;>D1noM9uErreQ#gLkxg(OuIBFZ8@vG;vd>{|v`zQ^M1`vHM0Vvk;i z;96;R5i~EdYutfZCp%9XW_xo$eFv8~@OLF}CW}~RwahA>1VeZaAoe)bsmF^cuQ-*@ zF4vLsk7F!r9m0xzJWF;%Ob9p0%YJa^k)dCnB(uZDt*j?lB0@WU&z0z_S};v2DIOOK zo0`AuI1`DdbVDCL(zr^R9>)Ee*B4sf-@N7s{nc3{OikkBHAB-Y8fX)NwIiWj>7oKY zx>ohbJ(?mFhJF3H)~)@7tKNd3o`ilW2WV%LOVI`@^%D0bkaQD!H7J9b(@H* z153yjbr*PIkf9g90s|1t=_ zH~y8N{^RcbJKlWEY>d=@_~_8nGgE&SH<SprAo(-_RvX>hS_E)sRWd zL%t0jtdg`qQU8KF$XC{9ACKNvb*rHh5CuqI1;w9v$L#MoMtxJ+&O@spn7g3k44PTq znMTB5azNqt)jz96ee{BBhO(6Bc5yXr>OXAO*$=mI_Abnf!>H^HEKkeScH`~9T|T`f z{^B?={+XWmUmKYJ{S^PpO~LqA6a)jy->OJusz`h~5F&g!5MDNapNkNUO#ndwWnOMH znMM^|)JwEu;>>?> zKFsy(l|iIh4ez40ptH z6Ms7S#20ibom3kiX*6jS+WnfQuqC3QT9kqYULvjcaC!^LM>IIc!YdjS9}$S^b-3Gd zMmg`4c-oT?GU(R+d?ieT!jF##3Hwt$%OJ145pn%_6hx51CTXek3Ey~Bm=p!NM?o+<0w4@jUhI$QBegux^~tGEhohm?B^OecHHD)0mcM=*|)CT8;A4KeY9&F z`^4Z3wqzRoF0&Ep3ndn;xhXNM_vY`<>Vf?A=S{~=dPsVnD>g@*{s>{~#qTx|xVtY#pwE3T}9he{ji1bppz zM$BkgUr@L&iCuH)z9yMOHe^eLFsid`>Ic9lM=EE!wIC+KIvay-&x=JUGy}swSt-s? zc=K8{LlP(UOc^T+1lZRKwe+1o0?B>1J{AM1jin3vs*?JN^amjB5b#j0$0$gvUVx#(cAVzPVzvL>0yU;lDN?u zmvHqi&gQpgAgY6Yolp7j`b7 z*Xmv4)q3n^G>0*(;0E}7hl;5)toQE{y!Xbg#UsbnNgW|JBj4& z6|KTPHuP>r;MuIpBc)$AV=wnY%31r$7jTSB@ADyH)V&efL$jyy zRm7Ze8y+(WeC?YmyGOb1-5I@d+}|PR@PZzj{1AeY3u4f_x|GU%=x9;j8vL0X(T&E{ z)B(d9$^8xtrz2LZP;%g-Ta}#(2kv6jw*A;RhBg`T7Fg0rv1@W{7DTn9iU2Lp!ZKS8 zDx|b))*iVZFP`)yOZj1EzQ`v}m>Gh~?G-q($uEMo96;@`&;)K(KCDH9AcJ8s`OIAn zGLd|g@WLpn8rW*d19$LkZ71gX3e{^e@g|Z}nwB${K>{xr1Z#Q04dwt3!Cb(tYpV8Q z4>nSO)V^WLFVcS@m^0JT(CyeZdl#dY{&8@!Fnrk40h$-Mtc<6<NlE=4u=A2gbCgny-?!uTId zf`4BD|Bey<)V9F*ucY`7jPQ@4Rl3i*z#mnIf5QrY&T#&JvBGC@frS~5k(Qd}^BSk8 zWuRtdW5r{jqh|YD{vD)1$N0}`$$u|3{EqB@09xqj*r*vl`F%#_Kblb)KSN@oW?}n$ zW%{f+e6IgiFiigdR)4}RpS6oW;}*70L*&1cimA(ec6=awc6?0fLs?{q#v(nXSV^CJ zv!7NK0=E#@VizYEtI-fsoAvIB7ZN7=GQ+Zqk9xK4yz9KXE_c6reOfe1rJEs|O1!tO zmbR8XO%%wJ1|cq=L@Y!dqC-KB8_zRI0~c)O{hg;v%*#NCFF{f%E2E3}{KnDIq_x$0 z<>LHtv1kPMx#;=5!qmEr<>#i@(}^uJBdK0WI1fCUj1c$4&bORA8L^pNk2eQaMoaB= zX@U5%ot?2rQL?GdZIWa*xj-$eCs{!7NvK{Z<;&gI%H^{(>$~?2>~j`vCmcH!XU~Hi zk497F`$Nx$s+Do8hjr}pav}9T?apkQTJHL~rwyy;NRF8m{JO!&s7BlQg%7Le)@5@h zPf%!KJ24SZ+_JMiBW>sCA)7r5h{2cr?|0Vo(!i@mn_OqlraBq{UWYo$_d7W&3(j{= z7%i5KGSTy$i}v(=&Qh2<M^_O_k4jqVJeD!dv1;`SMVJ>3DqYKgN+HB*f5pI- zMsN$7jazt_+$*tg!6IXNMo+>knd{=7yaao>t+6cheT6=t(!(l!m^~Q3y{a~SaeJv> ztxvl9!R^Y%B6PV%D{L}x+cJH?XP+|5&h5!4V()PqwV%uR;wC8&OUFt4u_m zBlexx*%)_nBMFtA7;4H7F)JDm(C^^Yk@g?}lFB6`7%V#lY%gqAk%V8IpoF~_OgBGF z&b&HKknERS*D#fEIfbb5p{2w8+T!ZCRbc_mo~`l|W0|Ba0THxIE&=9rW7#H5ovjiV z?n>#&R{uD`0|9>)vX(3%f1!aS2&|V?k4Agn z|7q?@fUGF8ZHO$|Zlj=s@#S0K_yv)EwO73s(Pn8u1)2tieQDvrZ*98UUJxA=6hxF^ z5CU`&$o~x#HCEM^CA{?}Q6hFPbp@v1O0nwr*;-vpSx!s_lyD z9d=jVzwwEO3JcF2o4WRdOGdApd+cQmm%sYa@yE2;ykY8zTTAclyZ`&lC*Ln!@N(B~ z1=n;KGG|DaDcx4K8~4rCKdn16b?XBke?G3X|G&b}k{&Wk4>IQ8id*7ZMi?Ky3R9y#L1nmeZtZu|P|A=g}Z`rWSc!{&`gWp-*Z~I_KcJL(|T$>vZ=wgO0lHts!%) zqT2B3nxP%!kyw z6E8dYZ2zSV8!OC9E<2^Nc3h{z)I-~z+c9P2;!Eph1Wy)@-?8btXRY4r+Z}uLyYE)* zDk%GMap&&K4qMS-<;@)~y6>~gw=X#AzaOr8W#6wqJnJu;7xymucG_RBIqCkn|1oLz zhUd)HnZ>igmvES%2eRo}(16%jK+2e)x{^;D(;gR2TG%pC(Z9b|lb>yCsfj4w` zz4OAq-SE5PUw`b`Bc}dy(U`(r*WJ71%liM_IJV|cQT6BpU%ayW)*rVon>exKx3#B? zdj06{XN{lftXlq=xv~7JNB5WRe6ZKJac$<@`@S(J^XS^!uim?ULFVYKPZdp>zw7OB zeLpF>ee)~lby;Gpn^ogJ(|9EQU)b`WbmpwnT=lqUC ze^oSm(|tbbHx?y+u2^bewX>yu!=hZa8EA;j3q#vv>E!A76Mzt9H-q z?m4)wNBNb#JOBOG!&a<+_2d_a&lvrOJBv$)ytZiATVE~Te#Il*JD#-k%1zd&QN=44 z-8FgPW3A6xG55&H8E4{>$Ch?EbL-}xF8N{1mqio%FTS>D{oZr8yf?eou0I^}(QRkX zc=NKa?LVb%scCi7-j`+%`MS7!kCokyTCm`QzyG$+jZ5CRdyT*4@--#B-fMf>T??;2 zD}BY%&F5zZ%{_11$%k)x8IIK1G|>CLblzLe9pT=w+ddq#y#LgD=l4J7kGIXZ>HeXo z&U$cb@fY)U_UQN9j)#|2j4-0nd+Y<-XYe_)ed%I`@{t8=m>}w$A(ewVSoXy0vY$ z>)s!}*tho1ecM0Y*l@+?Z^Lmr^IpAs z&-JM{2S1aVSGL4{!{0H$>N4}-BQIPz=g}9^JIA#BV%^tYoj+mAzOAJYm9|~9aO2#; zy(cXD{Q05dXBDjKKJbR4Ztt_BSNRj(d#$%jd*{o{)E{Pi+{P5#W{PLwPgReQ_guOrf>dvC^PibU$z)8z&HM?d;ZKYIL{ zsMzwcU0#AMx>&;hy1c%Njq$tUub$Zrx>;IYo2jZdEZDTb(m^9NC^Lh7#VpZC6~kw- z$YNxwCbPT@f5i+fhon;PT$B_`SYJ>KkE_IGqLW;_w^;0PjgaUluTA&6uwQY0FSs}mLJdWqdBsi>`En#4RC&I&JQUwzCoLGjpI zp=VUPj}v%Cs!w$TSfz&zy#fnhX|G;UzoRL~#D4p%dt8Y&D%Y0eAQdAN5F8PJu)2lC z{I3K+%a!aZ$`#>-wn-czEXaWPl4RhTXaqz)>!2co)MGB7*J<00b3Z_p;wWv#8+--+Z1*t*g6j47Qrp6F(Tw-HJV5Q9Ie!G zL~cYM7S|CfR>!%dS0q{#7AX?R5rIqPygrd8SEGuNtV0U52sNQMhbq~G0z$%lEz|=R z%X(nVG=}{wUNi|glq?0+C<6k5>k0jWfj$jG#jnjR8&gn*bWdD&c=H(<1wyFRX+{3&q8RI}33~+ZJU5iix0} zJ)1IMR_e&8BtK;*C?b!BavCFlmQotY=48-(98*>)QkRqlD2$m9mBAX28p$M=MTAhY zpfQTg;w!mA%$rH6I;pYCnhB*ysnI8)UQMN3Py`lo7sWljBJ&`s*dij7^i83@Q7aRZ zqGiZ?6@3fTLP+&>y)peZS8q%#*%?~~#$UvP1>F$10udAuT!HwRxJsx7v6l63@?e(- z4qFQxywMixOv9R;ha!-^(7O0nN;-IqCB$Jd(lnwETjwQ|JYxgAoZMG+P~mc<6_F0J zlnm7=kr^y<{u}twB2*r_pol8DR({EqFT@hiP_qbl&!$Z7S>TWo1aJhob7-WoR8~j+ zIYq?nS$B%mp@T#lJ78ud^Di=iOdp&$0=!geKv*5gnf;}JLG*#;GKp|AvjH7|AizK; zOU?Aqa)-!jLd13iG4C)zmX}b5$bsuIKojP%BH~=aydM80W#OfsbSdRL=xO*D?}Sk; zkkygJ67qqBp1Ws3q7ABgN?P)Vs&bcjGJtPAyyG0gICc)oGd8&wdI0lS%tjHl3c?_r0_mBC23;+3HQRFC=MJ?Cvtr_ ztB!w`#NofTT%5Q=&^#VjxB^GH1kE9_8fO5a4Ni`TYHR?ls?H>3Ek+Vc77Mjt$cF&= ziO71Uq)^CtQlI1zGN&@4EF>kY$g#_*P)t|wa^yLLEjE)t7LrzC3Az}_klThLGLqYh zVGp^jaB{+c_)1=klV`LcO-4ihfikNq&38?%3rdpF)~KC05#sbGsYT*^^aDBgVOGz5 znqU%Phzg`wM9hGyWwo- z{_4#ayg#QM$m!8M>@S(;m(n`IJ?jjhb!{-kXQJ}+e`a6B|GB{_Rf~`$=9py6kQkH_b}3cIaL(J3+&%B*AXD^xB5AWI-I9Y4b_+YieS>!b(>DH5)`-b# zP|TMdM6x6ekvVCQpI}YYCXxxeE4o6Ld*83X@0L+4*C{RCbYrXes1_ zPTDXhDVjIh7}sXKL?ff0d-guN;y?*gTI9jVyJ?X>k$^&cg?DKupe$fhGb;%KYNF;( zXVQp388~yWC{#kQl4&AqVG>bvd4N!zYKOt6xVha}u3HZERN*Ce54_2qC>Da8QkW8{zA%cGCDm1YP0}5pPH|!KMm-&|VRlKUgcxlv3x9Jmf_g(M|9#HzAob3N!Kq z5{6mXW61rm0e)8j5XH=bJjq=|J_7EdC9dhF64$J8BYKHGSSH zC4F2R$w}1}Vcv}I%J$LHIx!bUG$p>G`Ld)&G=&SdwD>DqvWbM5E1zpuBPSCBKZXhp zG@9&+l4#OAN`slRR9#+P^=(4=5Wp;5TJg7)De zf+V6DX_o&=`2s>6FT!T{XNoPd^2l{13rE|fgxW;Lz|m}*;wuj{krov+)4GqWwkDEW zD^h?4XIn}ZA~6F5wj`@Eq~($kP2u%O3A{dKs;HGL5piaQ4Y7g=P~lC@A}hKRASyO! z*;G~m1Kclw943*BoR*DRr9_PzfEIBGbX;pv6_0?!u*i#H2L<~~!3~Xq29l?Mba08Z zg}^1ga;l6xRs~l)Z?#Q!S)-cG>PQC{m!v7WXR@IxINy+;ap%NKe{MYqasnV>z9R!E zN?>6p_Z2l6c-*VHs=gpKwBh1<{*@J41*t*h)7WpY;VRX;ye`8k@y)xn6`9%|y{juH z7o_@CO{$(;Q8m>_ji{(9uBxlZ7DUI^*k+V4=66H+e*H6*(=+uIlgjhGS(L)%cQaGI z8z6;CH~8Ypipv@@`Q9_in)14*C*N{d#k5RakFx4% z!@@e}QP{hL*N>AFpewacd3||hHN2{aYr+t5Zg4|=Wkpq{4q6e6#VQP}o(#k@ye=bt zhq+2dMs-Hdo<^!~rViB2K4IAy!{}O5o0(ERDbvjuBNUk$IchXKHCt%H_Sn#L3qg#k zhRRA~oY58PX5hgPtWFAVqg#omr98N}Ey-J4&#T(H{(+vS53EnRqIuUO~2dfQ7H#nXSG`{?mXkisbFbpIkxpWWNt4hBKfwy#-=Q^PXH9qm2Y#XL=m5mrH`tU0Hct`l$TE30=kS5rW&S;I~)GOskvNWLU zLJzVTt&yC1rNl~ZB!^1)lv$!Q32pcxuo`3pT1Rr?wej3WW>8(CACXRp0?QVMD9lh%~XJ zxJg1It_gV^gjc;07S0lTqJtt0ksp@7v^Myb+N3s;k`T{?u$|y*Ghp0Q03!~|DKNAD z89tDmXG}4$EN~$&H2AMZRkkc(0}%FKROXp1uqkEmg*}@bFJns^u`&kPc$v?#HMO2? zYkh&yAmg1_J)ga~LMaP8i!HP$Wu^^LCRP@}@ymeNSUq-xl3E7uOV_c;S z>M_Dl%1p;%d%Tshz;juARLV@pVJ|#a$^y@0FZxo-Ovh!b+DaMJW6P#Wndx|p)s(Wp z^Vz;4rOX7C>T(2{PE99daYMNlQg5~-q?DPinShs2$AQbw`BJWhp04{Nxo1P!Uu?F=R zJIC%DviS+63_MWBJ-{@6ZQzGGNBE}Z(@;;74TdbXu9viCbJKTpJ^+))Wix$G=L4X` zxNPut8yyD$tdGQWVEO^$b5$>a%~C+6%=FW2u1_foz%4ag1z-`q9(zJVxfVP@`>P!lxe!M(}0dx zdmx5Z&w&Ic-e<>wfn5ArI5k)+^FlTnRr(AePxB)u^x6EES})Y&7BH+9%Umm9ld{US zuIsQ}sj)IWp1VGDCSK3iV~Pv@5yzwpeU9VV4S^)$?S-M{TW%V<7OUr(X)SN^V96og zo(J@zT?=VRye}*rirdX|94)>uvRZ*JK)uOK>8B*UvNuZ-n6UdW&t?0)}F7m2ZKH> zUV^4H`}!7SnX&dj3_Zt$!nh86D`dxbD6$1XsO3nI4rx9E^ui`-m1})4hjtI!XA2Io zdZ88XuQlb*-J9idf-U9 z{?ZzsLK>#`1;*C#{(;A6d6*9q#c|w23ZmyAA)nk;`{zR<7VC2WGl6mJ`aqpp8RR~i z-N27Dy@1PT^+HR_@8JZ0Ep`L@Y5oDJo)!ZjMbfwvuGDpv4)lAZ)7n@lV1vZCUQ9h6 zK~&K4M5dOw{{|LBxOjUoNfNhP02`|`d)Rzui()sRHJuOaK=TDi6Sdq2(mIV31IN>N z7idz89|7c2aa+O+wBBc+Q%!#mST!BEwmyb+m3+Luw!ES;Q(M5-!z!-K@QI65S#@>2 p0f>Zotki(2Db)se8GMFy*t+`i+Il|65ri-cTyXm7{RWp5{2xFCFhl?V diff --git a/src/docbkx/reference/data-elasticsearch.xml b/src/docbkx/reference/data-elasticsearch.xml index fa514271..aac5bdc6 100644 --- a/src/docbkx/reference/data-elasticsearch.xml +++ b/src/docbkx/reference/data-elasticsearch.xml @@ -32,16 +32,16 @@ Setting up Elasticsearch repositories using Namespace - <?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/data/elasticsearch - http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd"> +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" +xsi:schemaLocation="http://www.springframework.org/schema/beans +http://www.springframework.org/schema/beans/spring-beans-3.2.xsd +http://www.springframework.org/schema/data/elasticsearch +http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd"> - <elasticsearch:repositories base-package="com.acme.repositories" /> +<elasticsearch:repositories base-package="com.acme.repositories" /> </beans> @@ -61,7 +61,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" xsi:schemaLocation="http://www.springframework.org/schema/beans -http://www.springframework.org/schema/beans/spring-beans.xsd +http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd"> @@ -71,16 +71,16 @@ http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1. Node Client using Namespace - <?xml version="1.0" encoding="UTF-8"?> - <beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/data/elasticsearch - http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd"> +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" +xsi:schemaLocation="http://www.springframework.org/schema/beans +http://www.springframework.org/schema/beans/spring-beans-3.2.xsd +http://www.springframework.org/schema/data/elasticsearch +http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd"> - <elasticsearch:node-client id="client" local="true"" /> +<elasticsearch:node-client id="client" local="true"" /> </beans> @@ -93,16 +93,16 @@ http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1. Spring Data Elasticsearch repositories using JavaConfig - - @Configuration - @EnableElasticsearchRepositories(basePackages = "org/springframework/data/elasticsearch/repositories") - static class Config { + +@Configuration +@EnableElasticsearchRepositories(basePackages = "org/springframework/data/elasticsearch/repositories") +static class Config { - @Bean - public ElasticsearchOperations elasticsearchTemplate() { - return new ElasticsearchTemplate(nodeBuilder().local(true).node().client()); - } - } +@Bean +public ElasticsearchOperations elasticsearchTemplate() { +return new ElasticsearchTemplate(nodeBuilder().local(true).node().client()); + } +} The configuration above sets up an Embedded Elasticsearch Server @@ -127,27 +127,27 @@ http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1. Spring Data Elasticsearch repositories using JavaConfig - class ElasticsearchTemplateProducer { +class ElasticsearchTemplateProducer { - @Produces - @ApplicationScoped - public ElasticsearchOperations createElasticsearchTemplate() { +@Produces +@ApplicationScoped +public ElasticsearchOperations createElasticsearchTemplate() { return new ElasticsearchTemplate(new EmbeddedElasticsearchServerFactory("classpath:com/acme/Elasticsearch")); } } class ProductService { - private ProductRepository repository; +private ProductRepository repository; - public Page<Product> findAvailableBookByName(String name, Pageable pageable) { - return repository.findByAvailableTrueAndNameStartingWith(name, pageable); - } +public Page<Product> findAvailableBookByName(String name, Pageable pageable) { + return repository.findByAvailableTrueAndNameStartingWith(name, pageable); +} - @Inject - public void setRepository(ProductRepository repository) { - this.repository = repository; - } +@Inject +public void setRepository(ProductRepository repository) { + this.repository = repository; + } } @@ -195,12 +195,12 @@ class ProductService { Elasticsearch json query - { "bool" : { "must" : + { "bool" : + { "must" : [ { "field" : {"name" : "?"} }, { "field" : {"price" : "?"} } - ] - } } + ] } } @@ -227,19 +227,7 @@ class ProductService { findByNameAndPrice - { - "bool" : { - "must" : [ { - "field" : { - "name" : "?" - } - }, { - "field" : { - "price" : "?" - } - } ] - } - } + {"bool" : {"must" : [ {"field" : {"name" : "?"}}, {"field" : {"price" : "?"}} ]}} @@ -250,19 +238,7 @@ class ProductService { findByNameOrPrice - { - "bool" : { - "should" : [ { - "field" : { - "name" : "?" - } - }, { - "field" : { - "price" : "?" - } - } ] - } - } + {"bool" : {"should" : [ {"field" : {"name" : "?"}}, {"field" : {"price" : "?"}} ]}} @@ -273,15 +249,7 @@ class ProductService { findByName - { - "bool" : { - "must" : { - "field" : { - "name" : "?" - } - } - } - } + {"bool" : {"must" : {"field" : {"name" : "?"}}}} @@ -292,15 +260,7 @@ class ProductService { findByNameNot - { - "bool" : { - "must_not" : { - "field" : { - "name" : "?" - } - } - } - } + {"bool" : {"must_not" : {"field" : {"name" : "?"}}}} @@ -311,20 +271,7 @@ class ProductService { findByPriceBetween - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : ?, - "to" : ?, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } + {"bool" : {"must" : {"range" : {"price" : {"from" : ?,"to" : ?,"include_lower" : true,"include_upper" : true}}}}} @@ -335,20 +282,7 @@ class ProductService { findByPriceLessThan - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : null, - "to" : ?, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } + {"bool" : {"must" : {"range" : {"price" : {"from" : null,"to" : ?,"include_lower" : true,"include_upper" : true}}}}} @@ -359,20 +293,7 @@ class ProductService { findByPriceGreaterThan - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : ?, - "to" : null, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } + {"bool" : {"must" : {"range" : {"price" : {"from" : ?,"to" : null,"include_lower" : true,"include_upper" : true}}}}} @@ -383,20 +304,7 @@ class ProductService { findByPriceBefore - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : null, - "to" : ?, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } + {"bool" : {"must" : {"range" : {"price" : {"from" : null,"to" : ?,"include_lower" : true,"include_upper" : true}}}}} @@ -407,21 +315,7 @@ class ProductService { findByPriceAfter - { - "bool" : { - "must" : { - "range" : { - "price" : { - "from" : ?, - "to" : null, - "include_lower" : true, - "include_upper" : true - } - } - } - } - } - + {"bool" : {"must" : {"range" : {"price" : {"from" : ?,"to" : null,"include_lower" : true,"include_upper" : true}}}}} @@ -432,18 +326,7 @@ class ProductService { findByNameLike - { - "bool" : { - "must" : { - "field" : { - "name" : { - "query" : "?*", - "analyze_wildcard" : true - } - } - } - } - } + {"bool" : {"must" : {"field" : {"name" : {"query" : "?*","analyze_wildcard" : true}}}}} @@ -454,18 +337,7 @@ class ProductService { findByNameStartingWith - { - "bool" : { - "must" : { - "field" : { - "name" : { - "query" : "?*", - "analyze_wildcard" : true - } - } - } - } - } + {"bool" : {"must" : {"field" : {"name" : {"query" : "?*","analyze_wildcard" : true}}}}} @@ -476,18 +348,7 @@ class ProductService { findByNameEndingWith - { - "bool" : { - "must" : { - "field" : { - "name" : { - "query" : "*?", - "analyze_wildcard" : true - } - } - } - } - } + {"bool" : {"must" : {"field" : {"name" : {"query" : "*?","analyze_wildcard" : true}}}}} @@ -498,18 +359,7 @@ class ProductService { findByNameContaining - { - "bool" : { - "must" : { - "field" : { - "name" : { - "query" : "*?*", - "analyze_wildcard" : true - } - } - } - } - } + {"bool" : {"must" : {"field" : {"name" : {"query" : "*?*","analyze_wildcard" : true}}}}} diff --git a/src/docbkx/reference/elasticsearch-misc.xml b/src/docbkx/reference/elasticsearch-misc.xml index 4e611c9d..a152b78d 100644 --- a/src/docbkx/reference/elasticsearch-misc.xml +++ b/src/docbkx/reference/elasticsearch-misc.xml @@ -21,13 +21,13 @@ Filter Builder improves query speed. - - private ElasticsearchTemplate elasticsearchTemplate; - SearchQuery searchQuery = new SearchQuery(); - searchQuery.setElasticsearchQuery(matchAllQuery()); - searchQuery.setElasticsearchFilter(boolFilter().must(termFilter("id", documentId))); - Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery,SampleEntity.class); - + +private ElasticsearchTemplate elasticsearchTemplate; +SearchQuery searchQuery = new SearchQuery(); +searchQuery.setElasticsearchQuery(matchAllQuery()); +searchQuery.setElasticsearchFilter(boolFilter().must(termFilter("id", documentId))); +Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery,SampleEntity.class); + \ No newline at end of file diff --git a/src/docbkx/reference/misc.xml b/src/docbkx/reference/misc.xml deleted file mode 100644 index c7a30318..00000000 --- a/src/docbkx/reference/misc.xml +++ /dev/null @@ -1,99 +0,0 @@ - - - - Miscellaneous Solr Operation Support - - - This chapter covers additional support for Solr operations (such as - faceting) that cannot be directly accessed via the repository - interface. - It is recommended to add those operations as custom - implementation as - described in - - . - - -
- Partial Updates - - PartialUpdates can be done using - PartialUpdate - which implements - Update - . - - With Solr 4.0.0 it is not possible to update mulitvalue fields. - - - - PartialUpdate update = new PartialUpdate("id", "123"); -update.add("name", "updated-name"); -solrTemplate.saveBean(update); - -
-
- Projection - - Projections can be applied via - @Query - using the fields value. - - - @Query(fields = { "name", "id" }) -List<ProductBean> findByNameStartingWith(String name); - -
-
- Faceting - - Faceting cannot be directly applied using the - SolrRepository - but the - SolrTemplate - holds support for this feature. - - - FacetQuery query = new SimpleFacetQuery(new Criteria(Criteria.WILDCARD).expression(Criteria.WILDCARD)) - .setFacetOptions(new FacetOptions().addFacetOnField("name").setFacetLimit(5)); -FacetPage<Product> page = solrTemplate.queryForFacetPage(query, Product.class); - - - Facets on fields can also be defined using - @Facet - . Please mind that the result will be a - FacetPage - . - @Query(value = "*:*") -@Facet(fields = { "name" }, limit = 5) -FacetPage<Product> findAllFacetOnPopularity(Pageable page); - -
-
- Filter Query - - Filter Queries improve query speed. It is recommended to - implement - geospatial search as filter query. - - Please note that in solr, unless otherwise specified, all units of - distance are kilometers and points are in degrees of - latitude,longitude. - - - - Query query = new SimpleQuery(new Criteria("category").is("supercalifragilisticexpialidocious")); -FilterQuery fq = new SimpleFilterQuery(new Criteria("store") - .near(new GeoLocation(48.305478, 14.286699), new Distance(5))); -query.addFilterQuery(fq); - - - Simple filter queries can also be defined using - @Query - . - - @Query(value = "*:*", filters = { "inStock:true", "popularity:[* TO 3]" }) -List<ProductBean> findAllFilterAvailableTrueAndPopularityLessThanEqual3(); -
-
\ No newline at end of file diff --git a/src/test/resources/custom-method-repository-test.xml b/src/test/resources/custom-method-repository-test.xml index f9e22139..f2146a07 100644 --- a/src/test/resources/custom-method-repository-test.xml +++ b/src/test/resources/custom-method-repository-test.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" xsi:schemaLocation="http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> diff --git a/src/test/resources/elasticsearch-template-test.xml b/src/test/resources/elasticsearch-template-test.xml index 1ac063b0..257d9910 100644 --- a/src/test/resources/elasticsearch-template-test.xml +++ b/src/test/resources/elasticsearch-template-test.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" xsi:schemaLocation="http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> diff --git a/src/test/resources/repository-test.xml b/src/test/resources/repository-test.xml index f128c99c..5d430587 100644 --- a/src/test/resources/repository-test.xml +++ b/src/test/resources/repository-test.xml @@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch" xsi:schemaLocation="http://www.springframework.org/schema/data/elasticsearch http://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch-1.0.xsd - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> + http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">