diff --git a/src/Property.js b/src/Property.js index 35137750dbf9af169a1ee7491bb636821343e668..946baf6ab2fb223eb0249e9a25bc524f72387202 100644 --- a/src/Property.js +++ b/src/Property.js @@ -37,23 +37,15 @@ function _getScalarValue(value) { return value.getBooleanValue(); case valueCases.STRING_VALUE: return value.getStringValue(); + case valueCases.SPECIAL_VALUE: + return value.getSpecialValue(); default: throw `Unkown value type ${value.getScalarValueCase()}.`; } } -function _getListValue(listDataType, values) { - const listCases = api.v1.ListDataType.ListDataTypeCase; - switch (listDataType.getListDataTypeCase()) { - case listCases.LIST_DATA_TYPE_NOT_SET: - return undefined; - case listCases.ATOMIC_DATA_TYPE: - return values.map(value => _getScalarValue(value)); - case listCases.REFERENCE_DATA_TYPE: - return values.map(value => _getScalarValue(value)); - default: - throw `Unknown list data type ${listDataType.getListDataTypeCase()}.` - } +function _getListValue(values) { + return values.map(value => _getScalarValue(value)); } export class Property { @@ -80,19 +72,16 @@ export class Property { // Empty values are undefined regardless of data type return undefined; } - const wrappedDataType = this.wrappedProperty.getDataType(); - const dtypeCases = api.v1.DataType.DataTypeCase; - switch (wrappedDataType.getDataTypeCase()) { - case dtypeCases.DATA_TYPE_NOT_SET: + const valueCases = api.v1.Value.ValueCase; + switch (wrappedValue.getValueCase()) { + case valueCases.VALUE_NOT_SET: return undefined; - case dtypeCases.ATOMIC_DATA_TYPE: - return _getScalarValue(wrappedValue.getScalarValue()); - case dtypeCases.LIST_DATA_TYPE: - return _getListValue(wrappedDataType.getListDataType(), wrappedValue.getListValues().getValuesList()); - case dtypeCases.REFERENCE_DATA_TYPE: + case valueCases.SCALAR_VALUE: return _getScalarValue(wrappedValue.getScalarValue()); + case valueCases.LIST_VALUES: + return _getListValue(wrappedValue.getListValues().getValuesList()); default: - throw `Unknown data type ${wrappedDataType.getDataTypeCase()}.`; + throw `Unknown value type ${wrappedValue.getValueCase()}.`; } }