001/* 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * https://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package org.apache.commons.lang3.builder; 018 019import java.lang.reflect.Array; 020import java.util.Collection; 021import java.util.Map; 022 023/** 024 * Works with {@link ToStringBuilder} to create a {@code toString}. 025 * 026 * <p> 027 * This class is intended to be used as a singleton. 028 * There is no need to instantiate a new style each time. 029 * Simply instantiate the class once, customize the values as required, and 030 * store the result in a public static final variable for the rest of the 031 * program to access. 032 * </p> 033 * 034 * @since 1.0 035 */ 036public class StandardToStringStyle extends ToStringStyle { 037 038 /** 039 * Required for serialization support. 040 * 041 * @see java.io.Serializable 042 */ 043 private static final long serialVersionUID = 1L; 044 045 /** 046 * Constructs a new instance. 047 */ 048 public StandardToStringStyle() { 049 } 050 051 /** 052 * Gets the array end text. 053 * 054 * @return The current array end text 055 */ 056 @Override 057 public String getArrayEnd() { 058 return super.getArrayEnd(); 059 } 060 061 /** 062 * Gets the array separator text. 063 * 064 * @return The current array separator text 065 */ 066 @Override 067 public String getArraySeparator() { 068 return super.getArraySeparator(); 069 } 070 071 /** 072 * Gets the array start text. 073 * 074 * @return The current array start text 075 */ 076 @Override 077 public String getArrayStart() { 078 return super.getArrayStart(); 079 } 080 081 /** 082 * Gets the content end text. 083 * 084 * @return The current content end text 085 */ 086 @Override 087 public String getContentEnd() { 088 return super.getContentEnd(); 089 } 090 091 /** 092 * Gets the content start text. 093 * 094 * @return The current content start text 095 */ 096 @Override 097 public String getContentStart() { 098 return super.getContentStart(); 099 } 100 101 /** 102 * Gets the field name value separator text. 103 * 104 * @return The current field name value separator text 105 */ 106 @Override 107 public String getFieldNameValueSeparator() { 108 return super.getFieldNameValueSeparator(); 109 } 110 111 /** 112 * Gets the field separator text. 113 * 114 * @return The current field separator text 115 */ 116 @Override 117 public String getFieldSeparator() { 118 return super.getFieldSeparator(); 119 } 120 121 /** 122 * Gets the text to output when {@code null} found. 123 * 124 * @return The current text to output when {@code null} found 125 */ 126 @Override 127 public String getNullText() { 128 return super.getNullText(); 129 } 130 131 /** 132 * Gets the end text to output when a {@link Collection}, 133 * {@link Map} or {@link Array} size is output. 134 * 135 * <p> 136 * This is output after the size value. 137 * </p> 138 * 139 * @return The current end of size text 140 */ 141 @Override 142 public String getSizeEndText() { 143 return super.getSizeEndText(); 144 } 145 146 /** 147 * Gets the text to output when a {@link Collection}, 148 * {@link Map} or {@link Array} size is output. 149 * 150 * <p> 151 * This is output before the size value. 152 * </p> 153 * 154 * @return The current start of size text 155 */ 156 @Override 157 public String getSizeStartText() { 158 return super.getSizeStartText(); 159 } 160 161 /** 162 * Gets the end text to output when an {@link Object} is 163 * output in summary mode. 164 * 165 * <p> 166 * This is output after the size value. 167 * </p> 168 * 169 * @return The current end of summary text 170 */ 171 @Override 172 public String getSummaryObjectEndText() { 173 return super.getSummaryObjectEndText(); 174 } 175 176 /** 177 * Gets the start text to output when an {@link Object} is 178 * output in summary mode. 179 * 180 * <p> 181 * This is output before the size value. 182 * </p> 183 * 184 * @return The current start of summary text 185 */ 186 @Override 187 public String getSummaryObjectStartText() { 188 return super.getSummaryObjectStartText(); 189 } 190 191 /** 192 * Tests whether to output array content detail. 193 * 194 * @return The current array content detail setting 195 */ 196 @Override 197 public boolean isArrayContentDetail() { 198 return super.isArrayContentDetail(); 199 } 200 201 /** 202 * Tests whether full detail is used when the caller does not specify a detail level. 203 * 204 * @return The current defaultFullDetail flag 205 */ 206 @Override 207 public boolean isDefaultFullDetail() { 208 return super.isDefaultFullDetail(); 209 } 210 211 /** 212 * Tests whether the field separator should be added at the end of each buffer. 213 * 214 * @return fieldSeparatorAtEnd flag 215 * @since 2.0 216 */ 217 @Override 218 public boolean isFieldSeparatorAtEnd() { 219 return super.isFieldSeparatorAtEnd(); 220 } 221 222 /** 223 * Tests whether the field separator should be added at the start of each buffer. 224 * 225 * @return The fieldSeparatorAtStart flag 226 * @since 2.0 227 */ 228 @Override 229 public boolean isFieldSeparatorAtStart() { 230 return super.isFieldSeparatorAtStart(); 231 } 232 233 /** 234 * Tests whether to use the class name. 235 * 236 * @return The current useClassName flag 237 */ 238 @Override 239 public boolean isUseClassName() { 240 return super.isUseClassName(); 241 } 242 243 /** 244 * Tests whether to use the field names passed in. 245 * 246 * @return The current useFieldNames flag 247 */ 248 @Override 249 public boolean isUseFieldNames() { 250 return super.isUseFieldNames(); 251 } 252 253 /** 254 * Tests whether to use the identity hash code. 255 * 256 * @return The current useIdentityHashCode flag 257 */ 258 @Override 259 public boolean isUseIdentityHashCode() { 260 return super.isUseIdentityHashCode(); 261 } 262 263 /** 264 * Tests whether short class names should be output. 265 * 266 * @return The current useShortClassName flag 267 * @since 2.0 268 */ 269 @Override 270 public boolean isUseShortClassName() { 271 return super.isUseShortClassName(); 272 } 273 274 /** 275 * Sets whether to output array content detail. 276 * 277 * @param arrayContentDetail The new arrayContentDetail flag 278 */ 279 @Override 280 public void setArrayContentDetail(final boolean arrayContentDetail) { 281 super.setArrayContentDetail(arrayContentDetail); 282 } 283 284 /** 285 * Sets the array end text. 286 * 287 * <p> 288 * {@code null} is accepted, but will be converted 289 * to an empty String. 290 * </p> 291 * 292 * @param arrayEnd The new array end text 293 */ 294 @Override 295 public void setArrayEnd(final String arrayEnd) { 296 super.setArrayEnd(arrayEnd); 297 } 298 299 /** 300 * Sets the array separator text. 301 * 302 * <p> 303 * {@code null} is accepted, but will be converted 304 * to an empty String. 305 * </p> 306 * 307 * @param arraySeparator The new array separator text 308 */ 309 @Override 310 public void setArraySeparator(final String arraySeparator) { 311 super.setArraySeparator(arraySeparator); 312 } 313 314 /** 315 * Sets the array start text. 316 * 317 * <p> 318 * {@code null} is accepted, but will be converted 319 * to an empty String. 320 * </p> 321 * 322 * @param arrayStart The new array start text 323 */ 324 @Override 325 public void setArrayStart(final String arrayStart) { 326 super.setArrayStart(arrayStart); 327 } 328 329 /** 330 * Sets the content end text. 331 * 332 * <p> 333 * {@code null} is accepted, but will be converted 334 * to an empty String. 335 * </p> 336 * 337 * @param contentEnd The new content end text 338 */ 339 @Override 340 public void setContentEnd(final String contentEnd) { 341 super.setContentEnd(contentEnd); 342 } 343 344 /** 345 * Sets the content start text. 346 * 347 * <p> 348 * {@code null} is accepted, but will be converted 349 * to an empty String. 350 * </p> 351 * 352 * @param contentStart The new content start text 353 */ 354 @Override 355 public void setContentStart(final String contentStart) { 356 super.setContentStart(contentStart); 357 } 358 359 /** 360 * Sets whether to use full detail when the caller doesn't 361 * specify. 362 * 363 * @param defaultFullDetail The new defaultFullDetail flag 364 */ 365 @Override 366 public void setDefaultFullDetail(final boolean defaultFullDetail) { 367 super.setDefaultFullDetail(defaultFullDetail); 368 } 369 370 /** 371 * Sets the field name value separator text. 372 * 373 * <p> 374 * {@code null} is accepted, but will be converted 375 * to an empty String. 376 * </p> 377 * 378 * @param fieldNameValueSeparator The new field name value separator text 379 */ 380 @Override 381 public void setFieldNameValueSeparator(final String fieldNameValueSeparator) { 382 super.setFieldNameValueSeparator(fieldNameValueSeparator); 383 } 384 385 /** 386 * Sets the field separator text. 387 * 388 * <p> 389 * {@code null} is accepted, but will be converted 390 * to an empty String. 391 * </p> 392 * 393 * @param fieldSeparator The new field separator text 394 */ 395 @Override 396 public void setFieldSeparator(final String fieldSeparator) { 397 super.setFieldSeparator(fieldSeparator); 398 } 399 400 /** 401 * Sets whether the field separator should be added at the end 402 * of each buffer. 403 * 404 * @param fieldSeparatorAtEnd The fieldSeparatorAtEnd flag 405 * @since 2.0 406 */ 407 @Override 408 public void setFieldSeparatorAtEnd(final boolean fieldSeparatorAtEnd) { 409 super.setFieldSeparatorAtEnd(fieldSeparatorAtEnd); 410 } 411 412 /** 413 * Sets whether the field separator should be added at the start 414 * of each buffer. 415 * 416 * @param fieldSeparatorAtStart The fieldSeparatorAtStart flag 417 * @since 2.0 418 */ 419 @Override 420 public void setFieldSeparatorAtStart(final boolean fieldSeparatorAtStart) { 421 super.setFieldSeparatorAtStart(fieldSeparatorAtStart); 422 } 423 424 /** 425 * Sets the text to output when {@code null} found. 426 * 427 * <p> 428 * {@code null} is accepted, but will be converted 429 * to an empty String. 430 * </p> 431 * 432 * @param nullText The new text to output when {@code null} found 433 */ 434 @Override 435 public void setNullText(final String nullText) { 436 super.setNullText(nullText); 437 } 438 439 /** 440 * Sets the end text to output when a {@link Collection}, 441 * {@link Map} or {@link Array} size is output. 442 * 443 * <p> 444 * This is output after the size value. 445 * </p> 446 * 447 * <p> 448 * {@code null} is accepted, but will be converted 449 * to an empty String. 450 * </p> 451 * 452 * @param sizeEndText The new end of size text 453 */ 454 @Override 455 public void setSizeEndText(final String sizeEndText) { 456 super.setSizeEndText(sizeEndText); 457 } 458 459 /** 460 * Sets the start text to output when a {@link Collection}, 461 * {@link Map} or {@link Array} size is output. 462 * 463 * <p> 464 * This is output before the size value. 465 * </p> 466 * 467 * <p> 468 * {@code null} is accepted, but will be converted to 469 * an empty String. 470 * </p> 471 * 472 * @param sizeStartText The new start of size text 473 */ 474 @Override 475 public void setSizeStartText(final String sizeStartText) { 476 super.setSizeStartText(sizeStartText); 477 } 478 479 /** 480 * Sets the end text to output when an {@link Object} is 481 * output in summary mode. 482 * 483 * <p> 484 * This is output after the size value. 485 * </p> 486 * 487 * <p> 488 * {@code null} is accepted, but will be converted to 489 * an empty String. 490 * </p> 491 * 492 * @param summaryObjectEndText The new end of summary text 493 */ 494 @Override 495 public void setSummaryObjectEndText(final String summaryObjectEndText) { 496 super.setSummaryObjectEndText(summaryObjectEndText); 497 } 498 499 /** 500 * Sets the start text to output when an {@link Object} is 501 * output in summary mode. 502 * 503 * <p> 504 * This is output before the size value. 505 * </p> 506 * 507 * <p> 508 * {@code null} is accepted, but will be converted to 509 * an empty String. 510 * </p> 511 * 512 * @param summaryObjectStartText The new start of summary text 513 */ 514 @Override 515 public void setSummaryObjectStartText(final String summaryObjectStartText) { 516 super.setSummaryObjectStartText(summaryObjectStartText); 517 } 518 519 /** 520 * Sets whether to use the class name. 521 * 522 * @param useClassName The new useClassName flag 523 */ 524 @Override 525 public void setUseClassName(final boolean useClassName) { 526 super.setUseClassName(useClassName); 527 } 528 529 /** 530 * Sets whether to use the field names passed in. 531 * 532 * @param useFieldNames The new useFieldNames flag 533 */ 534 @Override 535 public void setUseFieldNames(final boolean useFieldNames) { 536 super.setUseFieldNames(useFieldNames); 537 } 538 539 /** 540 * Sets whether to use the identity hash code. 541 * 542 * @param useIdentityHashCode The new useIdentityHashCode flag 543 */ 544 @Override 545 public void setUseIdentityHashCode(final boolean useIdentityHashCode) { 546 super.setUseIdentityHashCode(useIdentityHashCode); 547 } 548 549 /** 550 * Sets whether to output short or long class names. 551 * 552 * @param useShortClassName The new useShortClassName flag 553 * @since 2.0 554 */ 555 @Override 556 public void setUseShortClassName(final boolean useShortClassName) { 557 super.setUseShortClassName(useShortClassName); 558 } 559 560}