Fixing an issue in basic device config where config always overrode the type to switch.
Change-Id: I0c48e3d9b41fd60f0429d6a2c989a9f5e6e12f40
Showing
2 changed files
with
7 additions
and
2 deletions
| ... | @@ -321,7 +321,12 @@ public abstract class Config<S> { | ... | @@ -321,7 +321,12 @@ public abstract class Config<S> { |
| 321 | * @return property value or default value | 321 | * @return property value or default value |
| 322 | */ | 322 | */ |
| 323 | protected <E extends Enum<E>> E get(String name, E defaultValue, Class<E> enumClass) { | 323 | protected <E extends Enum<E>> E get(String name, E defaultValue, Class<E> enumClass) { |
| 324 | - return Enum.valueOf(enumClass, object.path(name).asText(defaultValue.toString())); | 324 | + if (defaultValue != null) { |
| 325 | + Enum.valueOf(enumClass, object.path(name).asText(defaultValue.toString())); | ||
| 326 | + } | ||
| 327 | + | ||
| 328 | + JsonNode node = object.get(name); | ||
| 329 | + return node == null ? null : Enum.valueOf(enumClass, node.asText()); | ||
| 325 | } | 330 | } |
| 326 | 331 | ||
| 327 | /** | 332 | /** | ... | ... |
| ... | @@ -45,7 +45,7 @@ public final class BasicDeviceConfig extends BasicElementConfig<DeviceId> { | ... | @@ -45,7 +45,7 @@ public final class BasicDeviceConfig extends BasicElementConfig<DeviceId> { |
| 45 | * @return device type override | 45 | * @return device type override |
| 46 | */ | 46 | */ |
| 47 | public Device.Type type() { | 47 | public Device.Type type() { |
| 48 | - return get(TYPE, Device.Type.SWITCH, Device.Type.class); | 48 | + return get(TYPE, null, Device.Type.class); |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | /** | 51 | /** | ... | ... |
-
Please register or login to post a comment