23
23
*/
24
24
public class DimensionSet {
25
25
private static final int MAX_DIMENSION_SET_SIZE = 9 ;
26
-
26
+
27
27
private final Map <String , String > dimensions = new LinkedHashMap <>();
28
28
29
29
/**
@@ -54,7 +54,7 @@ public static DimensionSet of(String key1, String value1, String key2, String va
54
54
dimensionSet .addDimension (key2 , value2 );
55
55
return dimensionSet ;
56
56
}
57
-
57
+
58
58
/**
59
59
* Create a dimension set with three key-value pairs
60
60
*
@@ -73,7 +73,7 @@ public static DimensionSet of(String key1, String value1, String key2, String va
73
73
dimensionSet .addDimension (key3 , value3 );
74
74
return dimensionSet ;
75
75
}
76
-
76
+
77
77
/**
78
78
* Create a dimension set with four key-value pairs
79
79
*
@@ -87,16 +87,16 @@ public static DimensionSet of(String key1, String value1, String key2, String va
87
87
* @param value4 fourth dimension value
88
88
* @return a new DimensionSet
89
89
*/
90
- public static DimensionSet of (String key1 , String value1 , String key2 , String value2 ,
91
- String key3 , String value3 , String key4 , String value4 ) {
90
+ public static DimensionSet of (String key1 , String value1 , String key2 , String value2 ,
91
+ String key3 , String value3 , String key4 , String value4 ) {
92
92
DimensionSet dimensionSet = new DimensionSet ();
93
93
dimensionSet .addDimension (key1 , value1 );
94
94
dimensionSet .addDimension (key2 , value2 );
95
95
dimensionSet .addDimension (key3 , value3 );
96
96
dimensionSet .addDimension (key4 , value4 );
97
97
return dimensionSet ;
98
98
}
99
-
99
+
100
100
/**
101
101
* Create a dimension set with five key-value pairs
102
102
*
@@ -112,9 +112,9 @@ public static DimensionSet of(String key1, String value1, String key2, String va
112
112
* @param value5 fifth dimension value
113
113
* @return a new DimensionSet
114
114
*/
115
- public static DimensionSet of (String key1 , String value1 , String key2 , String value2 ,
116
- String key3 , String value3 , String key4 , String value4 ,
117
- String key5 , String value5 ) {
115
+ public static DimensionSet of (String key1 , String value1 , String key2 , String value2 ,
116
+ String key3 , String value3 , String key4 , String value4 ,
117
+ String key5 , String value5 ) {
118
118
DimensionSet dimensionSet = new DimensionSet ();
119
119
dimensionSet .addDimension (key1 , value1 );
120
120
dimensionSet .addDimension (key2 , value2 );
@@ -135,7 +135,7 @@ public static DimensionSet of(Map<String, String> dimensions) {
135
135
dimensions .forEach (dimensionSet ::addDimension );
136
136
return dimensionSet ;
137
137
}
138
-
138
+
139
139
/**
140
140
* Add a dimension to this dimension set
141
141
*
@@ -147,15 +147,16 @@ public static DimensionSet of(Map<String, String> dimensions) {
147
147
*/
148
148
public DimensionSet addDimension (String key , String value ) {
149
149
validateDimension (key , value );
150
-
150
+
151
151
if (dimensions .size () >= MAX_DIMENSION_SET_SIZE ) {
152
- throw new IllegalStateException ("Cannot exceed " + MAX_DIMENSION_SET_SIZE + " dimensions per dimension set" );
152
+ throw new IllegalStateException (
153
+ "Cannot exceed " + MAX_DIMENSION_SET_SIZE + " dimensions per dimension set" );
153
154
}
154
-
155
+
155
156
dimensions .put (key , value );
156
157
return this ;
157
158
}
158
-
159
+
159
160
/**
160
161
* Get the dimension keys in this dimension set
161
162
*
@@ -164,7 +165,7 @@ public DimensionSet addDimension(String key, String value) {
164
165
public Set <String > getDimensionKeys () {
165
166
return dimensions .keySet ();
166
167
}
167
-
168
+
168
169
/**
169
170
* Get the value for a dimension key
170
171
*
@@ -176,21 +177,21 @@ public String getDimensionValue(String key) {
176
177
}
177
178
178
179
/**
179
- * Get the dimensions as a map
180
+ * Get the dimensions as a map. Creates a shallow copy
180
181
*
181
182
* @return map of dimensions
182
183
*/
183
184
public Map <String , String > getDimensions () {
184
185
return new LinkedHashMap <>(dimensions );
185
186
}
186
-
187
+
187
188
private void validateDimension (String key , String value ) {
188
189
if (key == null || key .isEmpty ()) {
189
190
throw new IllegalArgumentException ("Dimension key cannot be null or empty" );
190
191
}
191
-
192
+
192
193
if (value == null ) {
193
194
throw new IllegalArgumentException ("Dimension value cannot be null" );
194
195
}
195
196
}
196
- }
197
+ }
0 commit comments