| | import java.util.HashSet; |
| | import java.util.List; |
| | +import java.util.LinkedHashSet; |
| | import java.util.Set; |
| | import java.util.stream.Collectors; |
 |
| | @Override |
| | public String getStart() { |
| | - DivergentList<String> list = new DivergentList<String>( getElementNames() ); |
| | + DivergentList<String> list = new DivergentList<String>( elementNames() ); |
| | |
| | //System.out.println( "NEXT: " + getNextContext() ); |
| | //System.out.println( "PREV: " + getPrevContext() ); |
| | - |
| | - /* |
| | - for( String s : list ) { |
| | - System.out.println( "list item: " + s ); |
| | - } |
| | - */ |
| | |
| | return String.format( ",%s,%s.%s", |
 |
| | } |
| | |
| | - private Set<String> getElementNames() { |
| | - return new HashSet<String>( Arrays.asList( getPathSplit() ) ); |
| | - } |
| | + /** |
| | + * Returns an insertion-order set of element names. |
| | + */ |
| | + private Set<String> elementNames() { |
| | + Set<String> set = new LinkedHashSet<String>(); |
| | |
| | - private String[] getPathSplit() { |
| | - return new String[1]; |
| | + element().forEach( e -> set.add( e.getText() ) ); |
| | + |
| | + return set; |
| | } |
| | |
 |
| | protected QueryParser.PathContext path() { |
| | return getColumnMapContext().path(); |
| | + } |
| | + |
| | + protected QueryParser.ElementPathContext elementPath() { |
| | + return path().elementPath(); |
| | + } |
| | + |
| | + protected List<QueryParser.ElementContext> element() { |
| | + return elementPath().element(); |
| | } |
| | } |