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

View File

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

View File

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