@@ -61,82 +61,62 @@ public void put(String name, Object value) {
6161 });
6262 }
6363
64- /**
65- * Retrieves {@link Byte} property.
66- *
67- * @param countersReader countersReader
68- * @param name property name
69- * @return property value, or {@code null} if not found
70- */
71- public static Byte getByteProperty (CountersReader countersReader , String name ) {
72- return getProperty (countersReader , name , Byte ::parseByte );
73- }
74-
75- /**
76- * Retrieves {@link Short} property.
77- *
78- * @param countersReader countersReader
79- * @param name property name
80- * @return property value, or {@code null} if not found
81- */
82- public static Short getShortProperty (CountersReader countersReader , String name ) {
83- return getProperty (countersReader , name , Short ::parseShort );
84- }
85-
8664 /**
8765 * Retrieves {@link Integer} property.
8866 *
8967 * @param countersReader countersReader
9068 * @param name property name
91- * @return property value, or {@code null} if not found
69+ * @return property value, or {@code null} if not found or malformed, or throws exception if
70+ * unparsable
9271 */
93- public static Integer getIntProperty (CountersReader countersReader , String name ) {
94- return getProperty (countersReader , name , Integer ::parseInt );
72+ public static Integer getInt (CountersReader countersReader , String name ) {
73+ return get (countersReader , name , Integer ::parseInt );
9574 }
9675
9776 /**
9877 * Retrieves {@link Long} property.
9978 *
10079 * @param countersReader countersReader
10180 * @param name property name
102- * @return property value, or {@code null} if not found
81+ * @return property value, or {@code null} if not found or malformed, or throws exception if
82+ * unparsable
10383 */
104- public static Long getLongProperty (CountersReader countersReader , String name ) {
105- return getProperty (countersReader , name , Long ::parseLong );
84+ public static Long getLong (CountersReader countersReader , String name ) {
85+ return get (countersReader , name , Long ::parseLong );
10686 }
10787
10888 /**
109- * Retrieves {@link Double} property.
89+ * Retrieves enum property.
11090 *
11191 * @param countersReader countersReader
11292 * @param name property name
113- * @return property value, or {@code null} if not found
93+ * @return property value, or {@code null} if not found or malformed
11494 */
115- public static Double getDoubleProperty (CountersReader countersReader , String name ) {
116- return getProperty (countersReader , name , Double ::parseDouble );
95+ public static <T extends Enum <T >> T getEnum (
96+ CountersReader countersReader , String name , Function <String , T > enumFunc ) {
97+ return get (countersReader , name , enumFunc );
11798 }
11899
119100 /**
120- * Retrieves enum property.
101+ * Retrieves {@link Boolean} property.
121102 *
122103 * @param countersReader countersReader
123104 * @param name property name
124- * @return property value, or {@code null} if not found
105+ * @return property value, or {@code null} if not found or malformed
125106 */
126- public static <T extends Enum <T >> T getEnumProperty (
127- CountersReader countersReader , String name , Function <String , T > enumFunc ) {
128- return getProperty (countersReader , name , enumFunc );
107+ public static Boolean getBoolean (CountersReader countersReader , String name ) {
108+ return get (countersReader , name , Boolean ::parseBoolean );
129109 }
130110
131111 /**
132112 * Retrieves {@link String} property.
133113 *
134114 * @param countersReader countersReader
135115 * @param name property name
136- * @return property value, or {@code null} if not found
116+ * @return property value, or {@code null} if not found or malformed
137117 */
138- public static String getProperty (CountersReader countersReader , String name ) {
139- return getProperty (countersReader , name , s -> s );
118+ public static String getString (CountersReader countersReader , String name ) {
119+ return get (countersReader , name , s -> s );
140120 }
141121
142122 /**
@@ -146,12 +126,20 @@ public static String getProperty(CountersReader countersReader, String name) {
146126 * @param name property name
147127 * @param converter function to convert string value
148128 * @param <T> result type
149- * @return converted property value, or {@code null} if not found
129+ * @return converted property value, or {@code null} if not found or malformed
150130 */
151- public static <T > T getProperty (
131+ public static <T > T get (
152132 CountersReader countersReader , String name , Function <String , T > converter ) {
153133 final var counter = CounterDescriptor .findFirstCounter (countersReader , byPropertyName (name ));
154- return counter != null ? converter .apply (counter .label ().split ("=" )[1 ]) : null ;
134+ if (counter == null ) {
135+ return null ;
136+ }
137+ final var label = counter .label ();
138+ final var equalsIndex = label .indexOf ('=' );
139+ if (equalsIndex == -1 ) {
140+ return null ; // malformed label
141+ }
142+ return converter .apply (label .substring (equalsIndex + 1 ));
155143 }
156144
157145 /**
@@ -162,6 +150,11 @@ public static <T> T getProperty(
162150 */
163151 public static Predicate <CounterDescriptor > byPropertyName (String name ) {
164152 return byType (PropertiesRegistry .PROPERTY_COUNTER_TYPE_ID )
165- .and (descriptor -> name .equals (descriptor .label ().split ("=" )[0 ]));
153+ .and (
154+ descriptor -> {
155+ final var label = descriptor .label ();
156+ final var equalsIndex = label .indexOf ('=' );
157+ return equalsIndex != -1 && name .equals (label .substring (0 , equalsIndex ));
158+ });
166159 }
167160}
0 commit comments