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 org.codehaus.groovy.ast.expr;
 
 import java.util.List;
 
Represents an array object construction either using a fixed size or an initializer expression

Author(s):
James Strachan
Version:
$Revision: 6778 $
 
 public class ArrayExpression extends Expression {
     private List expressions;
     private List sizeExpression;
 
     private ClassNode elementType;
     
     private static ClassNode makeArray(ClassNode baseList sizeExpression) {
     	ClassNode ret = base.makeArray();
     	if (sizeExpression==nullreturn ret;
     	int size = sizeExpression.size();
     	for (int i=1; i<sizei++) {
     		ret = ret.makeArray();
     	}
     	return ret;
     }
     
     public ArrayExpression(ClassNode elementTypeList expressionsList sizeExpression) {
         //expect to get the elementType
         super.setType(makeArray(elementType,sizeExpression));
         if (expressions==nullexpressions=.;
         this. = elementType;
         this. = expressions;
         this. = sizeExpression;
         
         for (Iterator iter = expressions.iterator(); iter.hasNext();) {
             Object item = iter.next();
             if (item!=null && !(item instanceof Expression)) {
                 throw new ClassCastException("Item: " + item + " is not an Expression");
             }
         }
         if (sizeExpression!=null) {
 	        for (Iterator iter = sizeExpression.iterator(); iter.hasNext();) {
 	            Object item = iter.next();
 	            if (!(item instanceof Expression)) {
 	                throw new ClassCastException("Item: " + item + " is not an Expression");
 	            }
 	        }
         }
     }
    
    
    
Creates an array using an initializer expression
 
     public ArrayExpression(ClassNode elementTypeList expressions) {
         this(elementType,expressions,null);
     }
 
     public void addExpression(Expression expression) {
         .add(expression);
     }
 
     public List getExpressions() {
         return ;
     }
 
     public void visit(GroovyCodeVisitor visitor) {
         visitor.visitArrayExpression(this);
     }
 
     public boolean isDynamic() {
         return false;
     }
 
     public Expression transformExpression(ExpressionTransformer transformer) {
     	List exprList = transformExpressions(transformer);
     	List sizes = null;
     	if (!=nullsizes = transformExpressions(,transformer);
        Expression ret = new ArrayExpression(exprListsizes);
        ret.setSourcePosition(this);
        return ret;
    }
    public Expression getExpression(int i) {
        Object object = .get(i);
        return (Expressionobject;
    }
    public ClassNode getElementType() {
        return ;
    }
    
    public String getText() {
        StringBuffer buffer = new StringBuffer("[");
        boolean first = true;
        for (Iterator iter = .iterator(); iter.hasNext();) {
            if (first) {
                first = false;
            }
            else {
                buffer.append(", ");
            }
            buffer.append(((Expressioniter.next()).getText());
        }
        buffer.append("]");
        return buffer.toString();
    }
    public List getSizeExpression() {
        return ;
    }
    public String toString() {
        return super.toString() + ;
    }
New to GrepCode? Check out our FAQ X