public void visit(Vertex<String> parent, Set<Vertex<String>> children)
{
if (parent instanceof ValueMetaDataAware)
{
StringValueMetaData value = new StringValueMetaData(getName());
Set<Vertex<String>> parentsChildren = getChildren(parent);
for (Vertex<String> vertex : parentsChildren)
{
if (vertex == this)
continue;
String name = vertex.getName();
if (name.endsWith("type"))
{
Vertex<String> next = getNext(vertex);
value.setType(next.getName());
}
else if (name.endsWith("trim"))
{
Vertex<String> next = getNext(vertex);
value.setTrim(Boolean.parseBoolean(next.getName()));
}
else if (name.endsWith("replace"))
{
Vertex<String> next = getNext(vertex);
value.setReplace(Boolean.parseBoolean(next.getName()));
}
}
ValueMetaDataAware valueMetaDataAware = (ValueMetaDataAware)parent;
valueMetaDataAware.setValue(value);
}