示例#1
0
 private void getVariables(GroovyNode groovyNode, List<MetadataVariable> variables) {
   if (groovyNode.value() instanceof GroovyList) {
     GroovyList list = (GroovyList) groovyNode.value();
     for (Object member : list) {
       GroovyNode childNode = (GroovyNode) member;
       getVariables(childNode, variables);
     }
   } else {
     List<GroovyNode> path = new ArrayList<GroovyNode>();
     GroovyNode walk = groovyNode;
     while (walk != null) {
       path.add(walk);
       walk = walk.parent();
     }
     Collections.reverse(path);
     StringBuilder out = new StringBuilder();
     Iterator<GroovyNode> nodeWalk = path.iterator();
     while (nodeWalk.hasNext()) {
       String nodeName = nodeWalk.next().name();
       out.append(nodeName);
       if (nodeWalk.hasNext()) {
         out.append('.');
       }
     }
     String variableName = out.toString();
     variables.add(new MetadataVariable(variableName, (String) groovyNode.value()));
   }
 }
示例#2
0
 private boolean checkFor(GroovyNode groovyNode, Pattern pattern) {
   if (groovyNode.value() instanceof GroovyList) {
     GroovyList list = (GroovyList) groovyNode.value();
     for (Object member : list) {
       GroovyNode childNode = (GroovyNode) member;
       if (checkFor(childNode, pattern)) {
         return true;
       }
     }
     return false;
   } else {
     return pattern.matcher(groovyNode.text()).matches();
   }
 }