AttributeFilterChain { public Object getAttribute(UaNode node, AttributeId attributeId) { return getAttribute(null, node, attributeId); } AttributeFilterChain();  AttributeFilterChain(AttributeFilter filter);  AttributeFilterChain(List<AttributeFilter> filters); Object getAttribute(UaNode node, AttributeId attributeId); Object getAttribute(@Nullable Session session, UaNode node, AttributeId attributeId); void setAttribute(UaNode node, AttributeId attributeId, Object value); void setAttribute(@Nullable Session session, UaNode node, AttributeId attributeId, Object value); AttributeFilterChain addFirst(AttributeFilter attributeFilter); AttributeFilterChain addFirst(AttributeFilter... attributeFilters); AttributeFilterChain addLast(AttributeFilter attributeFilter); AttributeFilterChain addLast(AttributeFilter... attributeFilters);  }
@Test public void testEmptyChain() { UaVariableNode node = new UaVariableNode.UaVariableNodeBuilder(context) .setNodeId(NodeId.NULL_VALUE) .setAccessLevel(AccessLevel.READ_WRITE) .setBrowseName(QualifiedName.NULL_VALUE) .setDisplayName(LocalizedText.NULL_VALUE) .setDataType(Identifiers.String) .setTypeDefinition(Identifiers.BaseDataVariableType) .build(); node.setValue(new DataValue(new Variant("foo"))); DataValue value = (DataValue) node.getFilterChain().getAttribute(node, AttributeId.Value); assertEquals(value.getValue().getValue(), "foo"); }