Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014 Attila Szegedi, Daniel Dekany, Jonathan Revusky
   * 
   * 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 freemarker.core;
 
 import java.util.List;
 
 
 final class ListLiteral extends Expression {
 
     final ArrayList/*<Expression>*/ items;
 
     ListLiteral(ArrayList items) {
         this. = items;
         items.trimToSize();
     }
 
     TemplateModel _eval(Environment envthrows TemplateException {
         SimpleSequence list = new SimpleSequence(.size());
         for (Iterator it = .iterator(); it.hasNext();) {
             Expression exp = (Expressionit.next();
             TemplateModel tm = exp.eval(env);
             if (env == null || !env.isClassicCompatible()) {            
                 exp.assertNonNull(tmenv);
             }
             list.add(tm);
         }
         return list;
     }

    
For freemarker.template.TemplateMethodModel calls, but not for freemarker.template.TemplateMethodModelEx-es, returns the list of arguments as java.lang.String-s.
 
     List/*<String>*/ getValueList(Environment envthrows TemplateException {
         int size = .size();
         switch(size) {
             case 0: {
                 return .;
             }
             case 1: {
                 return Collections.singletonList(((Expression).get(0)).evalAndCoerceToString(env));
             }
             default: {
                 List result = new ArrayList(.size());
                 for (ListIterator iterator = .listIterator(); iterator.hasNext();) {
                     Expression exp = (Expression)iterator.next();
                     result.add(exp.evalAndCoerceToString(env));
                 }
                 return result;
             }
         }
     }

    
For freemarker.template.TemplateMethodModelEx calls, returns the list of arguments as freemarker.template.TemplateModel-s.
 
     List/*<TemplateModel>*/ getModelList(Environment envthrows TemplateException {
         int size = .size();
         switch(size) {
             case 0: {
                 return .;
             }
             case 1: {
                 return Collections.singletonList(((Expression).get(0)).eval(env));
             }
             default: {
                 List result = new ArrayList(.size());
                 for (ListIterator iterator = .listIterator(); iterator.hasNext();) {
                     Expression exp = (Expression)iterator.next();
                     result.add(exp.eval(env));
                 }
                 return result;
             }
         }
    }
    public String getCanonicalForm() {
        StringBuffer buf = new StringBuffer("[");
        int size = .size();
        for (int i = 0; i<sizei++) {
            Expression value = (Expression.get(i);
            buf.append(value.getCanonicalForm());
            if (i != size-1) {
                buf.append(", ");
            }
        }
        buf.append("]");
        return buf.toString();
    }
    
        return "[...]";
    }
    
    boolean isLiteral() {
        if ( != null) {
            return true;
        }
        for (int i = 0; i<.size(); i++) {
            Expression exp = (Expression.get(i);
            if (!exp.isLiteral()) {
                return false;
            }
        }
        return true;
    }
    
    // A hacky routine used by VisitNode and RecurseNode
    
        TemplateSequenceModel val = (TemplateSequenceModeleval(env);
        SimpleSequence result = new SimpleSequence(val.size());
        for (int i=0; i<.size(); i++) {
            Object itemExpr = .get(i);
            if (itemExpr instanceof StringLiteral) {
                String s = ((StringLiteralitemExpr).getAsString();
                try {
                    Environment.Namespace ns = env.importLib(snull);
                    result.add(ns);
                } 
                catch (IOException ioe) {
                    throw new _MiscTemplateException(((StringLiteralitemExpr), new Object[] {
                            "Couldn't import library "new _DelayedJQuote(s), ": ",
                            new _DelayedGetMessage(ioe) });
                }
            }
            else {
                result.add(val.get(i));
            }
        }
        return result;
    }
    
            String replacedIdentifierExpression replacementReplacemenetState replacementState) {
		ArrayList clonedValues = (ArrayList).clone();
		for (ListIterator iter = clonedValues.listIterator(); iter.hasNext();) {
            iter.set(((Expression)iter.next()).deepCloneWithIdentifierReplaced(
                    replacedIdentifierreplacementreplacementState));
        }
        return new ListLiteral(clonedValues);
    }
    int getParameterCount() {
        return  != null ? .size() : 0;
    }
    Object getParameterValue(int idx) {
        checkIndex(idx);
        return .get(idx);
    }
    ParameterRole getParameterRole(int idx) {
        checkIndex(idx);
        return .;
    }
    private void checkIndex(int idx) {
        if ( == null || idx >= .size()) {
            throw new IndexOutOfBoundsException();
        }
    }
New to GrepCode? Check out our FAQ X