code review

This commit is contained in:
Yuriy Lytvynchuk 2022-09-21 16:57:22 +03:00
parent 13130ff257
commit baf17c6488
3 changed files with 13 additions and 6 deletions

View File

@ -50,6 +50,10 @@ public class EntityFieldsData {
}
public String getFieldValue(String field) {
return getFieldValue(field, false);
}
public String getFieldValue(String field, boolean ignoreNullStrings) {
String[] fieldsTree = field.split("\\.");
JsonNode current = fieldsData;
for (String key : fieldsTree) {
@ -61,6 +65,9 @@ public class EntityFieldsData {
}
}
if (current != null) {
if(current.isNull() && ignoreNullStrings){
return null;
}
if (current.isValueNode()) {
return current.asText();
} else {

View File

@ -25,7 +25,7 @@ import java.util.Map;
public class TbGetOriginatorFieldsConfiguration implements NodeConfiguration<TbGetOriginatorFieldsConfiguration> {
private Map<String, String> fieldsMapping;
private boolean ignoreStringNull;
private boolean ignoreNullStrings;
@Override
public TbGetOriginatorFieldsConfiguration defaultConfiguration() {
@ -34,7 +34,7 @@ public class TbGetOriginatorFieldsConfiguration implements NodeConfiguration<TbG
fieldsMapping.put("name", "originatorName");
fieldsMapping.put("type", "originatorType");
configuration.setFieldsMapping(fieldsMapping);
configuration.setIgnoreStringNull(false);
configuration.setIgnoreNullStrings(false);
return configuration;
}
}

View File

@ -46,12 +46,12 @@ import static org.thingsboard.common.util.DonAsynchron.withCallback;
public class TbGetOriginatorFieldsNode implements TbNode {
private TbGetOriginatorFieldsConfiguration config;
private boolean ignoreStringNull;
private boolean ignoreNullStrings;
@Override
public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException {
config = TbNodeUtils.convert(configuration, TbGetOriginatorFieldsConfiguration.class);
ignoreStringNull = config.isIgnoreStringNull();
ignoreNullStrings = config.isIgnoreNullStrings();
}
@Override
@ -71,8 +71,8 @@ public class TbGetOriginatorFieldsNode implements TbNode {
return Futures.transform(EntitiesFieldsAsyncLoader.findAsync(ctx, entityId),
data -> {
config.getFieldsMapping().forEach((field, metaKey) -> {
String val = data.getFieldValue(field);
if (val != null && (!val.equals("null") || !ignoreStringNull)) {
String val = data.getFieldValue(field, ignoreNullStrings);
if (val != null) {
msg.getMetaData().putValue(metaKey, val);
}
});