2222import java .util .HashMap ;
2323import java .util .List ;
2424import java .util .Map ;
25+ import java .util .Objects ;
2526
2627/**
2728 * <p>Minimal implementation of the <code>DynaBean</code> interface. Can be
@@ -80,18 +81,12 @@ public BasicDynaBean(final DynaClass dynaClass) {
8081 */
8182 @ Override
8283 public boolean contains (final String name , final String key ) {
83-
8484 final Object value = values .get (name );
85- if (value == null ) {
86- throw new NullPointerException
87- ("No mapped value for '" + name + "(" + key + ")'" );
88- }
85+ Objects .requireNonNull (value , () -> "No mapped value for '" + name + "(" + key + ")'" );
8986 if (value instanceof Map ) {
9087 return ((Map <?, ?>) value ).containsKey (key );
9188 }
92- throw new IllegalArgumentException
93- ("Non-mapped property for '" + name + "(" + key + ")'" );
94-
89+ throw new IllegalArgumentException ("Non-mapped property for '" + name + "(" + key + ")'" );
9590 }
9691
9792 /**
@@ -162,21 +157,15 @@ public Object get(final String name) {
162157 */
163158 @ Override
164159 public Object get (final String name , final int index ) {
165-
166160 final Object value = values .get (name );
167- if (value == null ) {
168- throw new NullPointerException
169- ("No indexed value for '" + name + "[" + index + "]'" );
170- }
161+ Objects .requireNonNull (value , () -> "No indexed value for '" + name + "[" + index + "]'" );
171162 if (value .getClass ().isArray ()) {
172163 return Array .get (value , index );
173164 }
174165 if (value instanceof List ) {
175166 return ((List <?>) value ).get (index );
176167 }
177- throw new IllegalArgumentException
178- ("Non-indexed property for '" + name + "[" + index + "]'" );
179-
168+ throw new IllegalArgumentException ("Non-indexed property for '" + name + "[" + index + "]'" );
180169 }
181170
182171 /**
@@ -193,18 +182,12 @@ public Object get(final String name, final int index) {
193182 */
194183 @ Override
195184 public Object get (final String name , final String key ) {
196-
197185 final Object value = values .get (name );
198- if (value == null ) {
199- throw new NullPointerException
200- ("No mapped value for '" + name + "(" + key + ")'" );
201- }
186+ Objects .requireNonNull (value , () -> "No mapped value for '" + name + "(" + key + ")'" );
202187 if (value instanceof Map ) {
203188 return ((Map <?, ?>) value ).get (key );
204189 }
205- throw new IllegalArgumentException
206- ("Non-mapped property for '" + name + "(" + key + ")'" );
207-
190+ throw new IllegalArgumentException ("Non-mapped property for '" + name + "(" + key + ")'" );
208191 }
209192
210193 /**
@@ -297,18 +280,12 @@ protected boolean isAssignable(final Class<?> dest, final Class<?> source) {
297280 */
298281 @ Override
299282 public void remove (final String name , final String key ) {
300-
301283 final Object value = values .get (name );
302- if (value == null ) {
303- throw new NullPointerException
304- ("No mapped value for '" + name + "(" + key + ")'" );
305- }
284+ Objects .requireNonNull (value , () -> "No mapped value for '" + name + "(" + key + ")'" );
306285 if (!(value instanceof Map )) {
307- throw new IllegalArgumentException
308- ("Non-mapped property for '" + name + "(" + key + ")'" );
286+ throw new IllegalArgumentException ("Non-mapped property for '" + name + "(" + key + ")'" );
309287 }
310288 ((Map <?, ?>) value ).remove (key );
311-
312289 }
313290
314291 /**
@@ -330,10 +307,7 @@ public void remove(final String name, final String key) {
330307 public void set (final String name , final int index , final Object value ) {
331308
332309 final Object prop = values .get (name );
333- if (prop == null ) {
334- throw new NullPointerException
335- ("No indexed value for '" + name + "[" + index + "]'" );
336- }
310+ Objects .requireNonNull (prop , () -> "No indexed value for '" + name + "[" + index + "]'" );
337311 if (prop .getClass ().isArray ()) {
338312 Array .set (prop , index , value );
339313 } else if (prop instanceof List ) {
@@ -401,23 +375,18 @@ public void set(final String name, final Object value) {
401375 */
402376 @ Override
403377 public void set (final String name , final String key , final Object value ) {
404-
405378 final Object prop = values .get (name );
406- if (prop == null ) {
407- throw new NullPointerException
408- ("No mapped value for '" + name + "(" + key + ")'" );
409- }
379+ Objects .requireNonNull (prop , () -> "No mapped value for '" + name + "(" + key + ")'" );
410380 if (!(prop instanceof Map )) {
411381 throw new IllegalArgumentException
412382 ("Non-mapped property for '" + name + "(" + key + ")'" );
413383 }
414- @ SuppressWarnings ("unchecked" )
415- final
416384 // This is safe to cast because mapped properties are always
417385 // maps of types String -> Object
418- Map <String , Object > map = (Map <String , Object >) prop ;
386+ @ SuppressWarnings ("unchecked" )
387+ final Map <String , Object > map = (Map <String , Object >) prop ;
419388 map .put (key , value );
420-
421389 }
422390
423391}
392+
0 commit comments