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.nio.charset.*; 018import java.util.*; 019 020import org.apache.juneau.*; 021import org.apache.juneau.http.*; 022 023/** 024 * Base builder class for building instances of reader-based parsers. 025 */ 026public abstract class ReaderParserBuilder extends ParserBuilder { 027 028 /** 029 * Constructor, default settings. 030 */ 031 public ReaderParserBuilder() { 032 super(); 033 } 034 035 /** 036 * Constructor. 037 * 038 * @param ps The initial configuration settings for this builder. 039 */ 040 public ReaderParserBuilder(PropertyStore ps) { 041 super(ps); 042 } 043 044 045 //----------------------------------------------------------------------------------------------------------------- 046 // Properties 047 //----------------------------------------------------------------------------------------------------------------- 048 049 /** 050 * Configuration property: File charset. 051 * 052 * <p> 053 * The character set to use for reading <code>Files</code> from the file system. 054 * 055 * <h5 class='section'>See Also:</h5> 056 * <ul> 057 * <li class='jf'>{@link ReaderParser#RPARSER_fileCharset} 058 * </ul> 059 * 060 * @param value 061 * The new value for this property. 062 * <br>The default value is <js>"DEFAULT"</js> which causes the system default to be used. 063 * @return This object (for method chaining). 064 */ 065 @Override 066 public ReaderParserBuilder fileCharset(String value) { 067 return set(RPARSER_fileCharset, value); 068 } 069 070 /** 071 * Configuration property: File charset. 072 * 073 * <p> 074 * The character set to use for reading <code>Files</code> from the file system. 075 * 076 * <h5 class='section'>See Also:</h5> 077 * <ul> 078 * <li class='jf'>{@link ReaderParser#RPARSER_fileCharset} 079 * </ul> 080 * 081 * @param value 082 * The new value for this property. 083 * <br>The default value is <js>"DEFAULT"</js> which causes the system default to be used. 084 * @return This object (for method chaining). 085 */ 086 @Override 087 public ReaderParserBuilder fileCharset(Charset value) { 088 return set(RPARSER_fileCharset, value); 089 } 090 091 /** 092 * Configuration property: Input stream charset. 093 * 094 * <p> 095 * The character set to use for converting <code>InputStreams</code> and byte arrays to readers. 096 * 097 * <h5 class='section'>See Also:</h5> 098 * <ul> 099 * <li class='jf'>{@link ReaderParser#RPARSER_inputStreamCharset} 100 * </ul> 101 * 102 * @param value 103 * The new value for this property. 104 * <br>The default value is <js>"UTF-8"</js>. 105 * @return This object (for method chaining). 106 */ 107 @Override 108 public ReaderParserBuilder inputStreamCharset(String value) { 109 return set(RPARSER_inputStreamCharset, value); 110 } 111 112 /** 113 * Configuration property: Input stream charset. 114 * 115 * <p> 116 * The character set to use for converting <code>InputStreams</code> and byte arrays to readers. 117 * 118 * <h5 class='section'>See Also:</h5> 119 * <ul> 120 * <li class='jf'>{@link ReaderParser#RPARSER_inputStreamCharset} 121 * </ul> 122 * 123 * @param value 124 * The new value for this property. 125 * <br>The default value is <js>"UTF-8"</js>. 126 * @return This object (for method chaining). 127 */ 128 @Override 129 public ReaderParserBuilder inputStreamCharset(Charset value) { 130 return set(RPARSER_inputStreamCharset, value); 131 } 132 133 @Override /* ParserBuilder */ 134 public ReaderParserBuilder autoCloseStreams(boolean value) { 135 super.autoCloseStreams(value); 136 return this; 137 } 138 139 @Override /* ParserBuilder */ 140 public ReaderParserBuilder autoCloseStreams() { 141 super.autoCloseStreams(); 142 return this; 143 } 144 145 @Override /* ParserBuilder */ 146 public ReaderParserBuilder debugOutputLines(int value) { 147 super.debugOutputLines(value); 148 return this; 149 } 150 151 @Override /* ParserBuilder */ 152 public ReaderParserBuilder listener(Class<? extends ParserListener> value) { 153 super.listener(value); 154 return this; 155 } 156 157 @Override /* ParserBuilder */ 158 public ReaderParserBuilder strict(boolean value) { 159 super.strict(value); 160 return this; 161 } 162 163 @Override /* ParserBuilder */ 164 public ReaderParserBuilder strict() { 165 super.strict(); 166 return this; 167 } 168 169 @Override /* ParserBuilder */ 170 public ReaderParserBuilder trimStrings(boolean value) { 171 super.trimStrings(value); 172 return this; 173 } 174 175 @Override /* ParserBuilder */ 176 public ReaderParserBuilder trimStrings() { 177 super.trimStrings(); 178 return this; 179 } 180 181 @Override /* ParserBuilder */ 182 public ReaderParserBuilder unbuffered(boolean value) { 183 super.unbuffered(value); 184 return this; 185 } 186 187 @Override /* ParserBuilder */ 188 public ReaderParserBuilder unbuffered() { 189 super.unbuffered(); 190 return this; 191 } 192 193 @Override /* BeanContextBuilder */ 194 public ReaderParserBuilder beanClassVisibility(Visibility value) { 195 super.beanClassVisibility(value); 196 return this; 197 } 198 199 @Override /* BeanContextBuilder */ 200 public ReaderParserBuilder beanConstructorVisibility(Visibility value) { 201 super.beanConstructorVisibility(value); 202 return this; 203 } 204 205 @Override /* BeanContextBuilder */ 206 public ReaderParserBuilder beanDictionary(boolean append, Object...values) { 207 super.beanDictionary(append, values); 208 return this; 209 } 210 211 @Override /* BeanContextBuilder */ 212 public ReaderParserBuilder beanDictionary(Class<?>...values) { 213 super.beanDictionary(values); 214 return this; 215 } 216 217 @Override /* BeanContextBuilder */ 218 public ReaderParserBuilder beanDictionary(Object...values) { 219 super.beanDictionary(values); 220 return this; 221 } 222 223 @Override /* BeanContextBuilder */ 224 public ReaderParserBuilder beanDictionaryRemove(Object...values) { 225 super.beanDictionaryRemove(values); 226 return this; 227 } 228 229 @Override /* BeanContextBuilder */ 230 public ReaderParserBuilder beanFieldVisibility(Visibility value) { 231 super.beanFieldVisibility(value); 232 return this; 233 } 234 235 @Override /* BeanContextBuilder */ 236 public ReaderParserBuilder beanFilters(boolean append, Object...values) { 237 super.beanFilters(append, values); 238 return this; 239 } 240 241 @Override /* BeanContextBuilder */ 242 public ReaderParserBuilder beanFilters(Class<?>...values) { 243 super.beanFilters(values); 244 return this; 245 } 246 247 @Override /* BeanContextBuilder */ 248 public ReaderParserBuilder beanFilters(Object...values) { 249 super.beanFilters(values); 250 return this; 251 } 252 253 @Override /* BeanContextBuilder */ 254 public ReaderParserBuilder beanFiltersRemove(Object...values) { 255 super.beanFiltersRemove(values); 256 return this; 257 } 258 259 @Override /* BeanContextBuilder */ 260 public ReaderParserBuilder beanMapPutReturnsOldValue(boolean value) { 261 super.beanMapPutReturnsOldValue(value); 262 return this; 263 } 264 265 @Override /* BeanContextBuilder */ 266 public ReaderParserBuilder beanMapPutReturnsOldValue() { 267 super.beanMapPutReturnsOldValue(); 268 return this; 269 } 270 271 @Override /* BeanContextBuilder */ 272 public ReaderParserBuilder beanMethodVisibility(Visibility value) { 273 super.beanMethodVisibility(value); 274 return this; 275 } 276 277 @Override /* BeanContextBuilder */ 278 public ReaderParserBuilder beansRequireDefaultConstructor(boolean value) { 279 super.beansRequireDefaultConstructor(value); 280 return this; 281 } 282 283 @Override /* BeanContextBuilder */ 284 public ReaderParserBuilder beansRequireDefaultConstructor() { 285 super.beansRequireDefaultConstructor(); 286 return this; 287 } 288 289 @Override /* BeanContextBuilder */ 290 public ReaderParserBuilder beansRequireSerializable(boolean value) { 291 super.beansRequireSerializable(value); 292 return this; 293 } 294 295 @Override /* BeanContextBuilder */ 296 public ReaderParserBuilder beansRequireSerializable() { 297 super.beansRequireSerializable(); 298 return this; 299 } 300 301 @Override /* BeanContextBuilder */ 302 public ReaderParserBuilder beansRequireSettersForGetters(boolean value) { 303 super.beansRequireSettersForGetters(value); 304 return this; 305 } 306 307 @Override /* BeanContextBuilder */ 308 public ReaderParserBuilder beansRequireSettersForGetters() { 309 super.beansRequireSettersForGetters(); 310 return this; 311 } 312 313 @Override /* BeanContextBuilder */ 314 public ReaderParserBuilder beansRequireSomeProperties(boolean value) { 315 super.beansRequireSomeProperties(value); 316 return this; 317 } 318 319 @Override /* BeanContextBuilder */ 320 public ReaderParserBuilder beanTypePropertyName(String value) { 321 super.beanTypePropertyName(value); 322 return this; 323 } 324 325 @Override /* BeanContextBuilder */ 326 public ReaderParserBuilder debug() { 327 super.debug(); 328 return this; 329 } 330 331 @Override /* BeanContextBuilder */ 332 public <T> ReaderParserBuilder example(Class<T> c, T o) { 333 super.example(c, o); 334 return this; 335 } 336 337 @Override /* BeanContextBuilder */ 338 public ReaderParserBuilder ignoreInvocationExceptionsOnGetters(boolean value) { 339 super.ignoreInvocationExceptionsOnGetters(value); 340 return this; 341 } 342 343 @Override /* BeanContextBuilder */ 344 public ReaderParserBuilder ignoreInvocationExceptionsOnGetters() { 345 super.ignoreInvocationExceptionsOnGetters(); 346 return this; 347 } 348 349 @Override /* BeanContextBuilder */ 350 public ReaderParserBuilder ignoreInvocationExceptionsOnSetters(boolean value) { 351 super.ignoreInvocationExceptionsOnSetters(value); 352 return this; 353 } 354 355 @Override /* BeanContextBuilder */ 356 public ReaderParserBuilder ignoreInvocationExceptionsOnSetters() { 357 super.ignoreInvocationExceptionsOnSetters(); 358 return this; 359 } 360 361 @Override /* BeanContextBuilder */ 362 public ReaderParserBuilder ignorePropertiesWithoutSetters(boolean value) { 363 super.ignorePropertiesWithoutSetters(value); 364 return this; 365 } 366 367 @Override /* BeanContextBuilder */ 368 public ReaderParserBuilder ignoreUnknownBeanProperties(boolean value) { 369 super.ignoreUnknownBeanProperties(value); 370 return this; 371 } 372 373 @Override /* BeanContextBuilder */ 374 public ReaderParserBuilder ignoreUnknownBeanProperties() { 375 super.ignoreUnknownBeanProperties(); 376 return this; 377 } 378 379 @Override /* BeanContextBuilder */ 380 public ReaderParserBuilder ignoreUnknownNullBeanProperties(boolean value) { 381 super.ignoreUnknownNullBeanProperties(value); 382 return this; 383 } 384 385 @Override /* BeanContextBuilder */ 386 public <T> ReaderParserBuilder implClass(Class<T> interfaceClass, Class<? extends T> implClass) { 387 super.implClass(interfaceClass, implClass); 388 return this; 389 } 390 391 @Override /* BeanContextBuilder */ 392 public ReaderParserBuilder implClasses(Map<String,Class<?>> values) { 393 super.implClasses(values); 394 return this; 395 } 396 397 @Override /* BeanContextBuilder */ 398 public ReaderParserBuilder locale(Locale value) { 399 super.locale(value); 400 return this; 401 } 402 403 @Override /* BeanContextBuilder */ 404 public ReaderParserBuilder mediaType(MediaType value) { 405 super.mediaType(value); 406 return this; 407 } 408 409 @Override /* BeanContextBuilder */ 410 public ReaderParserBuilder notBeanClasses(boolean append, Object...values) { 411 super.notBeanClasses(append, values); 412 return this; 413 } 414 415 @Override /* BeanContextBuilder */ 416 public ReaderParserBuilder notBeanClasses(Class<?>...values) { 417 super.notBeanClasses(values); 418 return this; 419 } 420 421 @Override /* BeanContextBuilder */ 422 public ReaderParserBuilder notBeanClasses(Object...values) { 423 super.notBeanClasses(values); 424 return this; 425 } 426 427 @Override /* BeanContextBuilder */ 428 public ReaderParserBuilder notBeanClassesRemove(Object...values) { 429 super.notBeanClassesRemove(values); 430 return this; 431 } 432 433 @Override /* BeanContextBuilder */ 434 public ReaderParserBuilder notBeanPackages(boolean append, Object...values) { 435 super.notBeanPackages(append, values); 436 return this; 437 } 438 439 @Override /* BeanContextBuilder */ 440 public ReaderParserBuilder notBeanPackages(Object...values) { 441 super.notBeanPackages(values); 442 return this; 443 } 444 445 @Override /* BeanContextBuilder */ 446 public ReaderParserBuilder notBeanPackages(String...values) { 447 super.notBeanPackages(values); 448 return this; 449 } 450 451 @Override /* BeanContextBuilder */ 452 public ReaderParserBuilder notBeanPackagesRemove(Object...values) { 453 super.notBeanPackagesRemove(values); 454 return this; 455 } 456 457 @Override /* BeanContextBuilder */ 458 public ReaderParserBuilder pojoSwaps(boolean append, Object...values) { 459 super.pojoSwaps(append, values); 460 return this; 461 } 462 463 @Override /* BeanContextBuilder */ 464 public ReaderParserBuilder pojoSwaps(Class<?>...values) { 465 super.pojoSwaps(values); 466 return this; 467 } 468 469 @Override /* BeanContextBuilder */ 470 public ReaderParserBuilder pojoSwaps(Object...values) { 471 super.pojoSwaps(values); 472 return this; 473 } 474 475 @Override /* BeanContextBuilder */ 476 public ReaderParserBuilder pojoSwapsRemove(Object...values) { 477 super.pojoSwapsRemove(values); 478 return this; 479 } 480 481 @Override /* BeanContextBuilder */ 482 public ReaderParserBuilder sortProperties(boolean value) { 483 super.sortProperties(value); 484 return this; 485 } 486 487 @Override /* BeanContextBuilder */ 488 public ReaderParserBuilder sortProperties() { 489 super.sortProperties(); 490 return this; 491 } 492 493 @Override /* BeanContextBuilder */ 494 public ReaderParserBuilder timeZone(TimeZone value) { 495 super.timeZone(value); 496 return this; 497 } 498 499 @Override /* BeanContextBuilder */ 500 public ReaderParserBuilder useEnumNames() { 501 super.useEnumNames(); 502 return this; 503 } 504 505 @Override /* BeanContextBuilder */ 506 public ReaderParserBuilder useInterfaceProxies(boolean value) { 507 super.useInterfaceProxies(value); 508 return this; 509 } 510 511 @Override /* BeanContextBuilder */ 512 public ReaderParserBuilder useJavaBeanIntrospector(boolean value) { 513 super.useJavaBeanIntrospector(value); 514 return this; 515 } 516 517 @Override /* BeanContextBuilder */ 518 public ReaderParserBuilder useJavaBeanIntrospector() { 519 super.useJavaBeanIntrospector(); 520 return this; 521 } 522 523 @Override /* ContextBuilder */ 524 public ReaderParserBuilder set(String name, Object value) { 525 super.set(name, value); 526 return this; 527 } 528 529 @Override /* ContextBuilder */ 530 public ReaderParserBuilder set(boolean append, String name, Object value) { 531 super.set(append, name, value); 532 return this; 533 } 534 535 @Override /* ContextBuilder */ 536 public ReaderParserBuilder set(Map<String,Object> properties) { 537 super.set(properties); 538 return this; 539 } 540 541 @Override /* ContextBuilder */ 542 public ReaderParserBuilder add(Map<String,Object> properties) { 543 super.add(properties); 544 return this; 545 } 546 547 @Override /* ContextBuilder */ 548 public ReaderParserBuilder addTo(String name, Object value) { 549 super.addTo(name, value); 550 return this; 551 } 552 553 @Override /* ContextBuilder */ 554 public ReaderParserBuilder addTo(String name, String key, Object value) { 555 super.addTo(name, key, value); 556 return this; 557 } 558 559 @Override /* ContextBuilder */ 560 public ReaderParserBuilder removeFrom(String name, Object value) { 561 super.removeFrom(name, value); 562 return this; 563 } 564 565 @Override /* ContextBuilder */ 566 public ReaderParserBuilder apply(PropertyStore copyFrom) { 567 super.apply(copyFrom); 568 return this; 569 } 570}