001// *************************************************************************************************************************** 002// * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file * 003// * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file * 004// * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance * 005// * with the License. You may obtain a copy of the License at * 006// * * 007// * http://www.apache.org/licenses/LICENSE-2.0 * 008// * * 009// * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an * 010// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * 011// * specific language governing permissions and limitations under the License. * 012// *************************************************************************************************************************** 013package org.apache.juneau.parser; 014 015import static org.apache.juneau.parser.ReaderParser.*; 016 017import java.lang.annotation.*; 018import java.lang.reflect.*; 019import java.nio.charset.*; 020import java.util.*; 021 022import org.apache.juneau.*; 023import org.apache.juneau.http.*; 024import org.apache.juneau.internal.*; 025import org.apache.juneau.reflect.*; 026import org.apache.juneau.svl.*; 027 028/** 029 * Base builder class for building instances of reader-based parsers. 030 */ 031public abstract class ReaderParserBuilder extends ParserBuilder { 032 033 /** 034 * Constructor, default settings. 035 */ 036 public ReaderParserBuilder() { 037 super(); 038 } 039 040 /** 041 * Constructor. 042 * 043 * @param ps The initial configuration settings for this builder. 044 */ 045 public ReaderParserBuilder(PropertyStore ps) { 046 super(ps); 047 } 048 049 //----------------------------------------------------------------------------------------------------------------- 050 // Properties 051 //----------------------------------------------------------------------------------------------------------------- 052 053 /** 054 * <i><l>ReaderParser</l> configuration property: </i> File charset. 055 * 056 * <p> 057 * The character set to use for reading <c>Files</c> from the file system. 058 * 059 * <p> 060 * Used when passing in files to {@link Parser#parse(Object, Class)}. 061 * 062 * <h5 class='section'>Example:</h5> 063 * <p class='bcode w800'> 064 * <jc>// Create a parser that reads UTF-8 files.</jc> 065 * ReaderParser p = JsonParser 066 * .<jsm>create</jsm>() 067 * .fileCharset(<js>"UTF-8"</js>) 068 * .build(); 069 * 070 * <jc>// Use it to read a UTF-8 encoded file.</jc> 071 * MyBean myBean = p.parse(<jk>new</jk> File(<js>"MyBean.txt"</js>), MyBean.<jk>class</jk>); 072 * </p> 073 * 074 * <ul class='seealso'> 075 * <li class='jf'>{@link ReaderParser#RPARSER_fileCharset} 076 * </ul> 077 * 078 * @param value 079 * The new value for this property. 080 * <br>The default value is <js>"DEFAULT"</js> which causes the system default to be used. 081 * @return This object (for method chaining). 082 */ 083 @FluentSetter 084 public ReaderParserBuilder fileCharset(Charset value) { 085 return set(RPARSER_fileCharset, value); 086 } 087 088 /** 089 * <i><l>ReaderParser</l> configuration property: </i> Input stream charset. 090 * 091 * <p> 092 * The character set to use for converting <c>InputStreams</c> and byte arrays to readers. 093 * 094 * <p> 095 * Used when passing in input streams and byte arrays to {@link Parser#parse(Object, Class)}. 096 * 097 * <h5 class='section'>Example:</h5> 098 * <p class='bcode w800'> 099 * <jc>// Create a parser that reads UTF-8 files.</jc> 100 * ReaderParser p = JsonParser 101 * .<jsm>create</jsm>() 102 * .streamCharset(Charset.<jsm>forName</jsm>(<js>"UTF-8"</js>)) 103 * .build(); 104 * 105 * <jc>// Use it to read a UTF-8 encoded input stream.</jc> 106 * MyBean myBean = p.parse(<jk>new</jk> FileInputStream(<js>"MyBean.txt"</js>), MyBean.<jk>class</jk>); 107 * </p> 108 * 109 * <ul class='seealso'> 110 * <li class='jf'>{@link ReaderParser#RPARSER_streamCharset} 111 * </ul> 112 * 113 * @param value 114 * The new value for this property. 115 * <br>The default value is <js>"UTF-8"</js>. 116 * @return This object (for method chaining). 117 */ 118 @FluentSetter 119 public ReaderParserBuilder streamCharset(Charset value) { 120 return set(RPARSER_streamCharset, value); 121 } 122 123 // <FluentSetters> 124 125 @Override /* GENERATED - ContextBuilder */ 126 public ReaderParserBuilder add(Map<String,Object> properties) { 127 super.add(properties); 128 return this; 129 } 130 131 @Override /* GENERATED - ContextBuilder */ 132 public ReaderParserBuilder addTo(String name, Object value) { 133 super.addTo(name, value); 134 return this; 135 } 136 137 @Override /* GENERATED - ContextBuilder */ 138 public ReaderParserBuilder appendTo(String name, Object value) { 139 super.appendTo(name, value); 140 return this; 141 } 142 143 @Override /* GENERATED - ContextBuilder */ 144 public ReaderParserBuilder apply(PropertyStore copyFrom) { 145 super.apply(copyFrom); 146 return this; 147 } 148 149 @Override /* GENERATED - ContextBuilder */ 150 public ReaderParserBuilder applyAnnotations(java.lang.Class<?>...fromClasses) { 151 super.applyAnnotations(fromClasses); 152 return this; 153 } 154 155 @Override /* GENERATED - ContextBuilder */ 156 public ReaderParserBuilder applyAnnotations(Method...fromMethods) { 157 super.applyAnnotations(fromMethods); 158 return this; 159 } 160 161 @Override /* GENERATED - ContextBuilder */ 162 public ReaderParserBuilder applyAnnotations(AnnotationList al, VarResolverSession r) { 163 super.applyAnnotations(al, r); 164 return this; 165 } 166 167 @Override /* GENERATED - ContextBuilder */ 168 public ReaderParserBuilder debug() { 169 super.debug(); 170 return this; 171 } 172 173 @Override /* GENERATED - ContextBuilder */ 174 public ReaderParserBuilder locale(Locale value) { 175 super.locale(value); 176 return this; 177 } 178 179 @Override /* GENERATED - ContextBuilder */ 180 public ReaderParserBuilder mediaType(MediaType value) { 181 super.mediaType(value); 182 return this; 183 } 184 185 @Override /* GENERATED - ContextBuilder */ 186 public ReaderParserBuilder prependTo(String name, Object value) { 187 super.prependTo(name, value); 188 return this; 189 } 190 191 @Override /* GENERATED - ContextBuilder */ 192 public ReaderParserBuilder putAllTo(String name, Object value) { 193 super.putAllTo(name, value); 194 return this; 195 } 196 197 @Override /* GENERATED - ContextBuilder */ 198 public ReaderParserBuilder putTo(String name, String key, Object value) { 199 super.putTo(name, key, value); 200 return this; 201 } 202 203 @Override /* GENERATED - ContextBuilder */ 204 public ReaderParserBuilder removeFrom(String name, Object value) { 205 super.removeFrom(name, value); 206 return this; 207 } 208 209 @Override /* GENERATED - ContextBuilder */ 210 public ReaderParserBuilder set(Map<String,Object> properties) { 211 super.set(properties); 212 return this; 213 } 214 215 @Override /* GENERATED - ContextBuilder */ 216 public ReaderParserBuilder set(String name, Object value) { 217 super.set(name, value); 218 return this; 219 } 220 221 @Override /* GENERATED - ContextBuilder */ 222 public ReaderParserBuilder timeZone(TimeZone value) { 223 super.timeZone(value); 224 return this; 225 } 226 227 @Override /* GENERATED - BeanContextBuilder */ 228 public ReaderParserBuilder annotations(Annotation...values) { 229 super.annotations(values); 230 return this; 231 } 232 233 @Override /* GENERATED - BeanContextBuilder */ 234 public ReaderParserBuilder beanClassVisibility(Visibility value) { 235 super.beanClassVisibility(value); 236 return this; 237 } 238 239 @Override /* GENERATED - BeanContextBuilder */ 240 public ReaderParserBuilder beanConstructorVisibility(Visibility value) { 241 super.beanConstructorVisibility(value); 242 return this; 243 } 244 245 @Override /* GENERATED - BeanContextBuilder */ 246 public ReaderParserBuilder beanFieldVisibility(Visibility value) { 247 super.beanFieldVisibility(value); 248 return this; 249 } 250 251 @Override /* GENERATED - BeanContextBuilder */ 252 public ReaderParserBuilder beanInterceptor(Class<?> on, Class<? extends org.apache.juneau.transform.BeanInterceptor<?>> value) { 253 super.beanInterceptor(on, value); 254 return this; 255 } 256 257 @Override /* GENERATED - BeanContextBuilder */ 258 public ReaderParserBuilder beanMapPutReturnsOldValue() { 259 super.beanMapPutReturnsOldValue(); 260 return this; 261 } 262 263 @Override /* GENERATED - BeanContextBuilder */ 264 public ReaderParserBuilder beanMethodVisibility(Visibility value) { 265 super.beanMethodVisibility(value); 266 return this; 267 } 268 269 @Override /* GENERATED - BeanContextBuilder */ 270 public ReaderParserBuilder beansDontRequireSomeProperties() { 271 super.beansDontRequireSomeProperties(); 272 return this; 273 } 274 275 @Override /* GENERATED - BeanContextBuilder */ 276 public ReaderParserBuilder beansRequireDefaultConstructor() { 277 super.beansRequireDefaultConstructor(); 278 return this; 279 } 280 281 @Override /* GENERATED - BeanContextBuilder */ 282 public ReaderParserBuilder beansRequireSerializable() { 283 super.beansRequireSerializable(); 284 return this; 285 } 286 287 @Override /* GENERATED - BeanContextBuilder */ 288 public ReaderParserBuilder beansRequireSettersForGetters() { 289 super.beansRequireSettersForGetters(); 290 return this; 291 } 292 293 @Override /* GENERATED - BeanContextBuilder */ 294 public ReaderParserBuilder bpi(Map<String,Object> values) { 295 super.bpi(values); 296 return this; 297 } 298 299 @Override /* GENERATED - BeanContextBuilder */ 300 public ReaderParserBuilder bpi(Class<?> beanClass, String properties) { 301 super.bpi(beanClass, properties); 302 return this; 303 } 304 305 @Override /* GENERATED - BeanContextBuilder */ 306 public ReaderParserBuilder bpi(String beanClassName, String properties) { 307 super.bpi(beanClassName, properties); 308 return this; 309 } 310 311 @Override /* GENERATED - BeanContextBuilder */ 312 public ReaderParserBuilder bpro(Map<String,Object> values) { 313 super.bpro(values); 314 return this; 315 } 316 317 @Override /* GENERATED - BeanContextBuilder */ 318 public ReaderParserBuilder bpro(Class<?> beanClass, String properties) { 319 super.bpro(beanClass, properties); 320 return this; 321 } 322 323 @Override /* GENERATED - BeanContextBuilder */ 324 public ReaderParserBuilder bpro(String beanClassName, String properties) { 325 super.bpro(beanClassName, properties); 326 return this; 327 } 328 329 @Override /* GENERATED - BeanContextBuilder */ 330 public ReaderParserBuilder bpwo(Map<String,Object> values) { 331 super.bpwo(values); 332 return this; 333 } 334 335 @Override /* GENERATED - BeanContextBuilder */ 336 public ReaderParserBuilder bpwo(Class<?> beanClass, String properties) { 337 super.bpwo(beanClass, properties); 338 return this; 339 } 340 341 @Override /* GENERATED - BeanContextBuilder */ 342 public ReaderParserBuilder bpwo(String beanClassName, String properties) { 343 super.bpwo(beanClassName, properties); 344 return this; 345 } 346 347 @Override /* GENERATED - BeanContextBuilder */ 348 public ReaderParserBuilder bpx(Map<String,Object> values) { 349 super.bpx(values); 350 return this; 351 } 352 353 @Override /* GENERATED - BeanContextBuilder */ 354 public ReaderParserBuilder bpx(Class<?> beanClass, String properties) { 355 super.bpx(beanClass, properties); 356 return this; 357 } 358 359 @Override /* GENERATED - BeanContextBuilder */ 360 public ReaderParserBuilder bpx(String beanClassName, String properties) { 361 super.bpx(beanClassName, properties); 362 return this; 363 } 364 365 @Override /* GENERATED - BeanContextBuilder */ 366 public ReaderParserBuilder dictionary(Object...values) { 367 super.dictionary(values); 368 return this; 369 } 370 371 @Override /* GENERATED - BeanContextBuilder */ 372 public ReaderParserBuilder dictionaryOn(Class<?> on, java.lang.Class<?>...values) { 373 super.dictionaryOn(on, values); 374 return this; 375 } 376 377 @Override /* GENERATED - BeanContextBuilder */ 378 public ReaderParserBuilder dontIgnorePropertiesWithoutSetters() { 379 super.dontIgnorePropertiesWithoutSetters(); 380 return this; 381 } 382 383 @Override /* GENERATED - BeanContextBuilder */ 384 public ReaderParserBuilder dontIgnoreTransientFields() { 385 super.dontIgnoreTransientFields(); 386 return this; 387 } 388 389 @Override /* GENERATED - BeanContextBuilder */ 390 public ReaderParserBuilder dontIgnoreUnknownNullBeanProperties() { 391 super.dontIgnoreUnknownNullBeanProperties(); 392 return this; 393 } 394 395 @Override /* GENERATED - BeanContextBuilder */ 396 public ReaderParserBuilder dontUseInterfaceProxies() { 397 super.dontUseInterfaceProxies(); 398 return this; 399 } 400 401 @Override /* GENERATED - BeanContextBuilder */ 402 public <T> ReaderParserBuilder example(Class<T> pojoClass, T o) { 403 super.example(pojoClass, o); 404 return this; 405 } 406 407 @Override /* GENERATED - BeanContextBuilder */ 408 public <T> ReaderParserBuilder exampleJson(Class<T> pojoClass, String json) { 409 super.exampleJson(pojoClass, json); 410 return this; 411 } 412 413 @Override /* GENERATED - BeanContextBuilder */ 414 public ReaderParserBuilder fluentSetters() { 415 super.fluentSetters(); 416 return this; 417 } 418 419 @Override /* GENERATED - BeanContextBuilder */ 420 public ReaderParserBuilder fluentSetters(Class<?> on) { 421 super.fluentSetters(on); 422 return this; 423 } 424 425 @Override /* GENERATED - BeanContextBuilder */ 426 public ReaderParserBuilder ignoreInvocationExceptionsOnGetters() { 427 super.ignoreInvocationExceptionsOnGetters(); 428 return this; 429 } 430 431 @Override /* GENERATED - BeanContextBuilder */ 432 public ReaderParserBuilder ignoreInvocationExceptionsOnSetters() { 433 super.ignoreInvocationExceptionsOnSetters(); 434 return this; 435 } 436 437 @Override /* GENERATED - BeanContextBuilder */ 438 public ReaderParserBuilder ignoreUnknownBeanProperties() { 439 super.ignoreUnknownBeanProperties(); 440 return this; 441 } 442 443 @Override /* GENERATED - BeanContextBuilder */ 444 public ReaderParserBuilder implClass(Class<?> interfaceClass, Class<?> implClass) { 445 super.implClass(interfaceClass, implClass); 446 return this; 447 } 448 449 @Override /* GENERATED - BeanContextBuilder */ 450 public ReaderParserBuilder implClasses(Map<Class<?>,Class<?>> values) { 451 super.implClasses(values); 452 return this; 453 } 454 455 @Override /* GENERATED - BeanContextBuilder */ 456 public ReaderParserBuilder interfaceClass(Class<?> on, Class<?> value) { 457 super.interfaceClass(on, value); 458 return this; 459 } 460 461 @Override /* GENERATED - BeanContextBuilder */ 462 public ReaderParserBuilder interfaces(java.lang.Class<?>...value) { 463 super.interfaces(value); 464 return this; 465 } 466 467 @Override /* GENERATED - BeanContextBuilder */ 468 public ReaderParserBuilder notBeanClasses(Object...values) { 469 super.notBeanClasses(values); 470 return this; 471 } 472 473 @Override /* GENERATED - BeanContextBuilder */ 474 public ReaderParserBuilder notBeanPackages(Object...values) { 475 super.notBeanPackages(values); 476 return this; 477 } 478 479 @Override /* GENERATED - BeanContextBuilder */ 480 public ReaderParserBuilder propertyNamer(Class<? extends org.apache.juneau.PropertyNamer> value) { 481 super.propertyNamer(value); 482 return this; 483 } 484 485 @Override /* GENERATED - BeanContextBuilder */ 486 public ReaderParserBuilder propertyNamer(Class<?> on, Class<? extends org.apache.juneau.PropertyNamer> value) { 487 super.propertyNamer(on, value); 488 return this; 489 } 490 491 @Override /* GENERATED - BeanContextBuilder */ 492 public ReaderParserBuilder sortProperties() { 493 super.sortProperties(); 494 return this; 495 } 496 497 @Override /* GENERATED - BeanContextBuilder */ 498 public ReaderParserBuilder sortProperties(java.lang.Class<?>...on) { 499 super.sortProperties(on); 500 return this; 501 } 502 503 @Override /* GENERATED - BeanContextBuilder */ 504 public ReaderParserBuilder stopClass(Class<?> on, Class<?> value) { 505 super.stopClass(on, value); 506 return this; 507 } 508 509 @Override /* GENERATED - BeanContextBuilder */ 510 public ReaderParserBuilder swaps(Object...values) { 511 super.swaps(values); 512 return this; 513 } 514 515 @Override /* GENERATED - BeanContextBuilder */ 516 public ReaderParserBuilder typeName(Class<?> on, String value) { 517 super.typeName(on, value); 518 return this; 519 } 520 521 @Override /* GENERATED - BeanContextBuilder */ 522 public ReaderParserBuilder typePropertyName(String value) { 523 super.typePropertyName(value); 524 return this; 525 } 526 527 @Override /* GENERATED - BeanContextBuilder */ 528 public ReaderParserBuilder typePropertyName(Class<?> on, String value) { 529 super.typePropertyName(on, value); 530 return this; 531 } 532 533 @Override /* GENERATED - BeanContextBuilder */ 534 public ReaderParserBuilder useEnumNames() { 535 super.useEnumNames(); 536 return this; 537 } 538 539 @Override /* GENERATED - BeanContextBuilder */ 540 public ReaderParserBuilder useJavaBeanIntrospector() { 541 super.useJavaBeanIntrospector(); 542 return this; 543 } 544 545 @Override /* GENERATED - ParserBuilder */ 546 public ReaderParserBuilder autoCloseStreams() { 547 super.autoCloseStreams(); 548 return this; 549 } 550 551 @Override /* GENERATED - ParserBuilder */ 552 public ReaderParserBuilder debugOutputLines(int value) { 553 super.debugOutputLines(value); 554 return this; 555 } 556 557 @Override /* GENERATED - ParserBuilder */ 558 public ReaderParserBuilder listener(Class<? extends org.apache.juneau.parser.ParserListener> value) { 559 super.listener(value); 560 return this; 561 } 562 563 @Override /* GENERATED - ParserBuilder */ 564 public ReaderParserBuilder strict() { 565 super.strict(); 566 return this; 567 } 568 569 @Override /* GENERATED - ParserBuilder */ 570 public ReaderParserBuilder trimStrings() { 571 super.trimStrings(); 572 return this; 573 } 574 575 @Override /* GENERATED - ParserBuilder */ 576 public ReaderParserBuilder unbuffered() { 577 super.unbuffered(); 578 return this; 579 } 580 581 // </FluentSetters> 582}