如何在FlowFile的getAttribute
中使用模式?
我打算编写一个从ListenTCP和ListenUDP处理器接收流文件的处理器。 ListenTCP具有属性tcp.sender
,而ListenUDP散列属性udp.sender
。我如何获得FlowFile的sender属性。
目前的解决方案是:
String sender = flowfile.getAttribute("tcp.sender");
if(sender!=null && !sender.isEmpty()) {
// do something
}
else {
sender = flowfile.getAttribute("udp.sender");
if(sender!=null && !sender.isEmpty()) {
//do something
}
}
如何避免使用 if 。我需要这样的东西:
String sender = flowfile.getAttribute("*.sender");
答案 0 :(得分:4)
目前没有办法根据模式获取属性。如果有,它将返回多个属性值的列表,您仍然需要浏览列表并找到您感兴趣的列表。
您可以使自定义处理器需要像“network.sender”这样的属性,并且在ListenTCP和ListenUDP之后,为每个属性设置一个UpdateAttribute处理器,将“tcp.sender”重命名为“network.sender”和“udp.sender” “to”network.sender“。