ProjectAres/PGM/src/main/java/tc/oc/pgm/xml/NodeSplitter.java

43 lines
1005 B
Java

package tc.oc.pgm.xml;
import java.util.stream.Stream;
import javax.inject.Singleton;
public interface NodeSplitter {
Stream<String> split(Node node);
/**
* The node name as a single value
*/
@Singleton
class Name implements NodeSplitter {
@Override public Stream<String> split(Node node) {
return Stream.of(node.getName());
}
}
/**
* The node content as a single value
*/
@Singleton
class Atom implements NodeSplitter {
@Override public Stream<String> split(Node node) {
return Stream.of(node.getValue());
}
}
/**
* The node content, split by spaces/commas
*/
@Singleton
class List implements NodeSplitter {
@Override public Stream<String> split(Node node) {
return Stream.of(node.getValue().split("\\s+|\\s*,\\s*"));
}
}
NodeSplitter NAME = new Name();
NodeSplitter ATOM = new Atom();
NodeSplitter LIST = new List();
}