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;
 
 
An instruction representing a switch-case structure.
 
 final class SwitchBlock extends TemplateElement {
 
     private Case defaultCase;
     private final Expression searched;

    

Parameters:
searched the expression to be tested.
 
     SwitchBlock(Expression searched) {
         this. = searched;
         setRegulatedChildBufferCapacity(4);
     }

    

Parameters:
cas a Case element.
 
     void addCase(Case cas) {
         if (cas.condition == null) {
              = cas;
         }
         addRegulatedChild(cas);
     }
 
     void accept(Environment env
         throws TemplateExceptionIOException 
     {
         boolean processedCase = false;
         int ln = getRegulatedChildCount();
         try {
             for (int i = 0; i < lni++) {
                 Case cas = (CasegetRegulatedChild(i);
                 boolean processCase = false;
 
                 // Fall through if a previous case tested true.
                 if (processedCase) {
                     processCase = true;
                 } else if (cas.condition != null) {
                     // Otherwise, if this case isn't the default, test it.
                     processCase = EvalUtil.compare(
                             ,
                             ."case=="cas.conditioncas.conditionenv);
                 }
                 if (processCase) {
                     env.visitByHiddingParent(cas);
                     processedCase = true;
                 }
             }
 
             // If we didn't process any nestedElements, and we have a default,
             // process it.
             if (!processedCase &&  != null) {
                 env.visitByHiddingParent();
             }
         }
         catch (BreakInstruction.Break br) {}
     }
 
     protected String dump(boolean canonical) {
         StringBuffer buf = new StringBuffer();
         if (canonicalbuf.append('<');
         buf.append(getNodeTypeSymbol());
         buf.append(' ');
         buf.append(.getCanonicalForm());
         if (canonical) {
             buf.append('>');
             int ln = getRegulatedChildCount();
             for (int i = 0; ilni++) {
                 Case cas = (CasegetRegulatedChild(i);
                 buf.append(cas.getCanonicalForm());
             }
             buf.append("</").append(getNodeTypeSymbol()).append('>');
         }
         return buf.toString();
     }
        return "#switch";
    }
    int getParameterCount() {
        return 1;
    }
    Object getParameterValue(int idx) {
        if (idx != 0) throw new IndexOutOfBoundsException();
        return ;
    }
    ParameterRole getParameterRole(int idx) {
        if (idx != 0) throw new IndexOutOfBoundsException();
        return .;
    }
    boolean isNestedBlockRepeater() {
        return false;
    }
    
New to GrepCode? Check out our FAQ X