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