View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.lang3.builder;
18  
19  import java.lang.reflect.Array;
20  import java.util.Collection;
21  import java.util.Map;
22  
23  /**
24   * Works with {@link ToStringBuilder} to create a {@code toString}.
25   *
26   * <p>This class is intended to be used as a singleton.
27   * There is no need to instantiate a new style each time.
28   * Simply instantiate the class once, customize the values as required, and
29   * store the result in a public static final variable for the rest of the
30   * program to access.</p>
31   *
32   * @since 1.0
33   */
34  public class StandardToStringStyle extends ToStringStyle {
35  
36      /**
37       * Required for serialization support.
38       *
39       * @see java.io.Serializable
40       */
41      private static final long serialVersionUID = 1L;
42  
43      /**
44       * Constructor.
45       */
46      public StandardToStringStyle() {
47      }
48  
49      /**
50       * Gets the array end text.
51       *
52       * @return the current array end text
53       */
54      @Override
55      public String getArrayEnd() {
56          return super.getArrayEnd();
57      }
58  
59      /**
60       * Gets the array separator text.
61       *
62       * @return the current array separator text
63       */
64      @Override
65      public String getArraySeparator() {
66          return super.getArraySeparator();
67      }
68  
69      /**
70       * Gets the array start text.
71       *
72       * @return the current array start text
73       */
74      @Override
75      public String getArrayStart() {
76          return super.getArrayStart();
77      }
78  
79      /**
80       * Gets the content end text.
81       *
82       * @return the current content end text
83       */
84      @Override
85      public String getContentEnd() {
86          return super.getContentEnd();
87      }
88  
89      /**
90       * Gets the content start text.
91       *
92       * @return the current content start text
93       */
94      @Override
95      public String getContentStart() {
96          return super.getContentStart();
97      }
98  
99      /**
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      * @return the current useIdentityHashCode flag
249      */
250     @Override
251     public boolean isUseIdentityHashCode() {
252         return super.isUseIdentityHashCode();
253     }
254 
255     /**
256      * Gets whether to output short or long class names.
257      *
258      * @return the current useShortClassName flag
259      * @since 2.0
260      */
261     @Override
262     public boolean isUseShortClassName() {
263         return super.isUseShortClassName();
264     }
265 
266     /**
267      * Sets whether to output array content detail.
268      *
269      * @param arrayContentDetail  the new arrayContentDetail flag
270      */
271     @Override
272     public void setArrayContentDetail(final boolean arrayContentDetail) {
273         super.setArrayContentDetail(arrayContentDetail);
274     }
275 
276     /**
277      * Sets the array end text.
278      *
279      * <p>{@code null} is accepted, but will be converted
280      * to an empty String.</p>
281      *
282      * @param arrayEnd  the new array end text
283      */
284     @Override
285     public void setArrayEnd(final String arrayEnd) {
286         super.setArrayEnd(arrayEnd);
287     }
288 
289     /**
290      * Sets the array separator text.
291      *
292      * <p>{@code null} is accepted, but will be converted
293      * to an empty String.</p>
294      *
295      * @param arraySeparator  the new array separator text
296      */
297     @Override
298     public void setArraySeparator(final String arraySeparator) {
299         super.setArraySeparator(arraySeparator);
300     }
301 
302     /**
303      * Sets the array start text.
304      *
305      * <p>{@code null} is accepted, but will be converted
306      * to an empty String.</p>
307      *
308      * @param arrayStart  the new array start text
309      */
310     @Override
311     public void setArrayStart(final String arrayStart) {
312         super.setArrayStart(arrayStart);
313     }
314 
315     /**
316      * Sets the content end text.
317      *
318      * <p>{@code null} is accepted, but will be converted
319      * to an empty String.</p>
320      *
321      * @param contentEnd  the new content end text
322      */
323     @Override
324     public void setContentEnd(final String contentEnd) {
325         super.setContentEnd(contentEnd);
326     }
327 
328     /**
329      * Sets the content start text.
330      *
331      * <p>{@code null} is accepted, but will be converted
332      * to an empty String.</p>
333      *
334      * @param contentStart  the new content start text
335      */
336     @Override
337     public void setContentStart(final String contentStart) {
338         super.setContentStart(contentStart);
339     }
340 
341     /**
342      * Sets whether to use full detail when the caller doesn't
343      * specify.
344      *
345      * @param defaultFullDetail  the new defaultFullDetail flag
346      */
347     @Override
348     public void setDefaultFullDetail(final boolean defaultFullDetail) {
349         super.setDefaultFullDetail(defaultFullDetail);
350     }
351 
352     /**
353      * Sets the field name value separator text.
354      *
355      * <p>{@code null} is accepted, but will be converted
356      * to an empty String.</p>
357      *
358      * @param fieldNameValueSeparator  the new field name value separator text
359      */
360     @Override
361     public void setFieldNameValueSeparator(final String fieldNameValueSeparator) {
362         super.setFieldNameValueSeparator(fieldNameValueSeparator);
363     }
364 
365     /**
366      * Sets the field separator text.
367      *
368      * <p>{@code null} is accepted, but will be converted
369      * to an empty String.</p>
370      *
371      * @param fieldSeparator  the new field separator text
372      */
373     @Override
374     public void setFieldSeparator(final String fieldSeparator) {
375         super.setFieldSeparator(fieldSeparator);
376     }
377 
378     /**
379      * Sets whether the field separator should be added at the end
380      * of each buffer.
381      *
382      * @param fieldSeparatorAtEnd  the fieldSeparatorAtEnd flag
383      * @since 2.0
384      */
385     @Override
386     public void setFieldSeparatorAtEnd(final boolean fieldSeparatorAtEnd) {
387         super.setFieldSeparatorAtEnd(fieldSeparatorAtEnd);
388     }
389 
390     /**
391      * Sets whether the field separator should be added at the start
392      * of each buffer.
393      *
394      * @param fieldSeparatorAtStart  the fieldSeparatorAtStart flag
395      * @since 2.0
396      */
397     @Override
398     public void setFieldSeparatorAtStart(final boolean fieldSeparatorAtStart) {
399         super.setFieldSeparatorAtStart(fieldSeparatorAtStart);
400     }
401 
402     /**
403      * Sets the text to output when {@code null} found.
404      *
405      * <p>{@code null} is accepted, but will be converted
406      * to an empty String.</p>
407      *
408      * @param nullText  the new text to output when {@code null} found
409      */
410     @Override
411     public void setNullText(final String nullText) {
412         super.setNullText(nullText);
413     }
414 
415     /**
416      * Sets the end text to output when a {@link Collection},
417      * {@link Map} or {@link Array} size is output.
418      *
419      * <p>This is output after the size value.</p>
420      *
421      * <p>{@code null} is accepted, but will be converted
422      * to an empty String.</p>
423      *
424      * @param sizeEndText  the new end of size text
425      */
426     @Override
427     public void setSizeEndText(final String sizeEndText) {
428         super.setSizeEndText(sizeEndText);
429     }
430 
431     /**
432      * Sets the start text to output when a {@link Collection},
433      * {@link Map} or {@link Array} size is output.
434      *
435      * <p>This is output before the size value.</p>
436      *
437      * <p>{@code null} is accepted, but will be converted to
438      * an empty String.</p>
439      *
440      * @param sizeStartText  the new start of size text
441      */
442     @Override
443     public void setSizeStartText(final String sizeStartText) {
444         super.setSizeStartText(sizeStartText);
445     }
446 
447     /**
448      * Sets the end text to output when an {@link Object} is
449      * output in summary mode.
450      *
451      * <p>This is output after the size value.</p>
452      *
453      * <p>{@code null} is accepted, but will be converted to
454      * an empty String.</p>
455      *
456      * @param summaryObjectEndText  the new end of summary text
457      */
458     @Override
459     public void setSummaryObjectEndText(final String summaryObjectEndText) {
460         super.setSummaryObjectEndText(summaryObjectEndText);
461     }
462 
463     /**
464      * Sets the start text to output when an {@link Object} is
465      * output in summary mode.
466      *
467      * <p>This is output before the size value.</p>
468      *
469      * <p>{@code null} is accepted, but will be converted to
470      * an empty String.</p>
471      *
472      * @param summaryObjectStartText  the new start of summary text
473      */
474     @Override
475     public void setSummaryObjectStartText(final String summaryObjectStartText) {
476         super.setSummaryObjectStartText(summaryObjectStartText);
477     }
478 
479     /**
480      * Sets whether to use the class name.
481      *
482      * @param useClassName  the new useClassName flag
483      */
484     @Override
485     public void setUseClassName(final boolean useClassName) {
486         super.setUseClassName(useClassName);
487     }
488 
489     /**
490      * Sets whether to use the field names passed in.
491      *
492      * @param useFieldNames  the new useFieldNames flag
493      */
494     @Override
495     public void setUseFieldNames(final boolean useFieldNames) {
496         super.setUseFieldNames(useFieldNames);
497     }
498 
499     /**
500      * Sets whether to use the identity hash code.
501      *
502      * @param useIdentityHashCode  the new useIdentityHashCode flag
503      */
504     @Override
505     public void setUseIdentityHashCode(final boolean useIdentityHashCode) {
506         super.setUseIdentityHashCode(useIdentityHashCode);
507     }
508 
509     /**
510      * Sets whether to output short or long class names.
511      *
512      * @param useShortClassName  the new useShortClassName flag
513      * @since 2.0
514      */
515     @Override
516     public void setUseShortClassName(final boolean useShortClassName) {
517         super.setUseShortClassName(useShortClassName);
518     }
519 
520 }