+
+ if (value instanceof YangInstanceIdentifier) {
+ builder.setInstanceIdentifierValue(
+ InstanceIdentifierUtils.toSerializable((YangInstanceIdentifier) value, context));
+ } else if (value instanceof Set) {
+ Set<?> set = (Set<?>) value;
+ if (!set.isEmpty()) {
+ for (Object o : set) {
+ if (o instanceof String) {
+ builder.addBitsValue(o.toString());
+ } else {
+ throw new IllegalArgumentException("Expected value type to be Bits but was : "
+ + value.toString());
+ }
+ }
+ }
+ } else if (value instanceof byte[]) {
+ builder.setBytesValue(ByteString.copyFrom((byte[]) value));
+ } else if (value == null) {
+ builder.setValue(NULL_VALUE);
+ } else {
+ builder.setValue(value.toString());
+ }