My favorites | Sign in
Google
                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
* Copyright (C) 2006 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.google.inject.internal;

import java.util.LinkedHashMap;
import java.util.Map;

/**
* Helps with {@code toString()} methods.
*
* @author crazybob@google.com (Bob Lee)
*/
public class ToStringBuilder {

// Linked hash map ensures ordering.
final Map<String, Object> map = new LinkedHashMap<String, Object>();

final String name;

public ToStringBuilder(Class type) {
this.name = type.getSimpleName();
}

public ToStringBuilder add(String name, Object value) {
if (map.put(name, value) != null) {
throw new RuntimeException("Duplicate names: " + name);
}
return this;
}

@Override public String toString() {
return name + map.toString().replace('{', '[').replace('}', ']');
}
}
Show details Hide details

Change log

r1004 by limpbizkit on Jun 06, 2009   Diff
I did some cleanup after the previous
refactoring round, driven by a run of
coverage.
Go to: 
Sign in to write a code review

Older revisions

r494 by limpbizkit on May 31, 2008   Diff
I ran emma coverage and deleted some
dead code. There's a few things that
have insufficient test coverage that
we need tests for...
r331 by kevinb9n on May 15, 2007   Diff
very minor javadoc tweeks
r316 by kevinb9n on Apr 20, 2007   Diff
 Issue 93 : run an optimize-imports over
all the source.
All revisions of this file

File info

Size: 1333 bytes, 48 lines