Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2003-2007 the original author or authors.
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package groovy.util.slurpersupport;
 
 
 import java.io.Writer;
 import java.util.Map;
 import java.util.List;

Author(s):
John Wilson
 
 
 class Attributes extends NodeChildren {
     final String attributeName;
 
     public Attributes(final GPathResult parentfinal String namefinal String namespacePrefixfinal Map namespaceTagHints) {
         super(parentnamenamespacePrefixnamespaceTagHints);
         this. = this..substring(1);
     }
 
     public Attributes(final GPathResult parentfinal String namefinal Map namespaceTagHints) {
         this(parentname"*"namespaceTagHints);
     }
 
     public String name() {
         // this name contains @name we need to return name
         return this..substring(1);
     }
 
     public Iterator childNodes() {
         throw new GroovyRuntimeException("Can't get the child nodes on a a GPath expression selecting attributes: ...." + this..name() + "." + name() + ".childNodes()");
     }
 
     public Iterator iterator() {
         return new NodeIterator(nodeIterator()) {
             protected Object getNextNode(final Iterator iter) {
                 while (iter.hasNext()) {
                     final Object next = iter.next();
                     if (next instanceof Attribute) {
                         return next;
                     } else {
                         final String value = (String) ((Nodenext).attributes().get(Attributes.this.);
                         if (value != null) {
                             return new Attribute(Attributes.this.,
                                     value,
                                     new NodeChild((NodenextAttributes.this..""Attributes.this.),
                                     "",
                                     Attributes.this.);
                         }
                     }
                 }
                 return null;
             }
         };
     }
 
     public Iterator nodeIterator() {
         return this..nodeIterator();
     }
 
     public GPathResult parents() {
         return super.parents();
     }
 
     public String text() {
         final StringBuffer buf = new StringBuffer();
         final Iterator iter = iterator();
         while (iter.hasNext()) {
             buf.append(iter.next());
         }
         return buf.toString();
     }
 
     public List list() {
         final Iterator iter = iterator();
         final List result = new ArrayList();
         while (iter.hasNext()) {
             result.add(iter.next());
         }
        return result;
    }
    public GPathResult findAll(final Closure closure) {
        return new FilteredAttributes(thisclosurethis.);
    }
    public Writer writeTo(final Writer outthrows IOException {
        out.write(text());
        return out;
    }
    public void build(final GroovyObject builder) {
        builder.getProperty("mkp");
        builder.invokeMethod("yield"new Object[]{text()});
    }
New to GrepCode? Check out our FAQ X