Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2015-2015 Amazon Technologies, Inc.
   *
   * 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://aws.amazon.com/apache2.0
   *
  * This file 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 com.amazonaws.services.dynamodbv2.xspec;
 
 import java.util.List;
 
Internal representation of a path to an attribute.
 
 final class Path extends UnitOfExpression {
     private final List<PathElementelements;
     
     Path(String path) {
         this. = parse(path);
     }
 
     private List<PathElementparse(String path) {
         if (path == null) {
             throw new NullPointerException("path");
         }
 
         final String[] split = path.split(Pattern.quote("."));
         final List<PathElementelements = new ArrayList<PathElement>();
 
         for (String element : split) {
             int index = element.indexOf('[');
             if (index == -1) {
                 elements.add(new NamedElement(element));
                 continue;
             }
 
             if (index == 0) {
                 throw new IllegalArgumentException("Bogus path: " + path);
             }
 
             elements.add(new NamedElement(element.substring(0, index)));
 
             do {
                 element = element.substring(index + 1);
                 index = element.indexOf(']');
 
                 if (index == -1) {
                     throw new IllegalArgumentException("Bogus path: " + path);
                 }
 
                 int arrayIndex = Integer.parseInt(element.substring(0, index));
                 elements.add(new ArrayIndexElement(arrayIndex));
 
                 element = element.substring(index + 1);
                 index = element.indexOf('[');
 
                 if (index > 0)
                     throw new IllegalArgumentException("Bogus path: " + path);
             } while (index != -1);
 
             if (!element.isEmpty()) {
                 throw new IllegalArgumentException("Bogus path: " + path);
             }
         }
 
         return elements;
     }
 
     @Override
         StringBuffer sb = new StringBuffer();
         for (PathElement e) {
             if (sb.length() == 0)
                 sb.append(e.asToken(context));
             else {
                 sb.append(e.asNestedToken(context));
             }
         }
         return sb.toString();
     }
 
     // Reverse to the original input path for debug purposes.
     @Override
     public String toString() {
         StringBuffer sb = new StringBuffer();
         for (PathElement e) {
             if (sb.length() == 0)
                sb.append(e.toString());
            else {
                sb.append(e.asNestedPath());
            }
        }
        return sb.toString();
    }
        return ;
    }
New to GrepCode? Check out our FAQ X