Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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 com.facebook.presto.byteCode;
 
 
 public class ByteCodeVisitor<T>
 {
     public T visitClass(ClassDefinition classDefinition)
     {
         for (AnnotationDefinition annotationDefinition : classDefinition.getAnnotations()) {
             visitAnnotation(classDefinitionannotationDefinition);
         }
         for (FieldDefinition fieldDefinition : classDefinition.getFields()) {
             visitField(classDefinitionfieldDefinition);
         }
         for (MethodDefinition methodDefinition : classDefinition.getMethods()) {
             visitMethod(classDefinitionmethodDefinition);
         }
         return null;
     }
 
     public T visitAnnotation(Object parentAnnotationDefinition annotationDefinition)
     {
         return null;
     }
 
     public T visitField(ClassDefinition classDefinitionFieldDefinition fieldDefinition)
     {
         for (AnnotationDefinition annotationDefinition : fieldDefinition.getAnnotations()) {
             visitAnnotation(fieldDefinitionannotationDefinition);
         }
         return null;
     }
 
     public T visitMethod(ClassDefinition classDefinitionMethodDefinition methodDefinition)
     {
         for (AnnotationDefinition annotationDefinition : methodDefinition.getAnnotations()) {
             visitAnnotation(methodDefinitionannotationDefinition);
         }
         methodDefinition.getBody().accept(nullthis);
         return null;
     }
 
     public T visitNode(ByteCodeNode parentByteCodeNode node)
     {
         for (ByteCodeNode byteCodeNode : node.getChildNodes()) {
             byteCodeNode.accept(nodethis);
         }
         return null;
     }
 
     //
    // Comment
    //
    public T visitComment(ByteCodeNode parentComment node)
    {
        return visitNode(parentnode);
    }
    //
    // Block
    //
    public T visitBlock(ByteCodeNode parentBlock block)
    {
        return visitNode(parentblock);
    }
    //
    // Byte Code Expression
    //
    public T visitByteCodeExpression(ByteCodeNode parentByteCodeExpression byteCodeExpression)
    {
        return visitNode(parentbyteCodeExpression);
    }
    //
    // Flow Control
    //
    public T visitFlowControl(ByteCodeNode parentFlowControl flowControl)
    {
        return visitNode(parentflowControl);
    }
    public T visitTryCatch(ByteCodeNode parentTryCatch tryCatch)
    {
        return visitFlowControl(parenttryCatch);
    }
    public T visitIf(ByteCodeNode parentIfStatement ifStatement)
    {
        return visitFlowControl(parentifStatement);
    }
    public T visitFor(ByteCodeNode parentForLoop forLoop)
    {
        return visitFlowControl(parentforLoop);
    }
    public T visitWhile(ByteCodeNode parentWhileLoop whileLoop)
    {
        return visitFlowControl(parentwhileLoop);
    }
    public T visitDoWhile(ByteCodeNode parentDoWhileLoop doWhileLoop)
    {
        return visitFlowControl(parentdoWhileLoop);
    }
    public T visitLookupSwitch(ByteCodeNode parentLookupSwitch lookupSwitch)
    {
        return visitFlowControl(parentlookupSwitch);
    }
    //
    // Instructions
    //
    public T visitInstruction(ByteCodeNode parentInstructionNode node)
    {
        return visitNode(parentnode);
    }
    public T visitLabel(ByteCodeNode parentLabelNode labelNode)
    {
        return visitInstruction(parentlabelNode);
    }
    public T visitJumpInstruction(ByteCodeNode parentJumpInstruction jumpInstruction)
    {
        return visitInstruction(parentjumpInstruction);
    }
    //
    // Constants
    //
    public T visitConstant(ByteCodeNode parentConstant constant)
    {
        return visitInstruction(parentconstant);
    }
    public T visitBoxedBooleanConstant(ByteCodeNode parentBoxedBooleanConstant boxedBooleanConstant)
    {
        return visitConstant(parentboxedBooleanConstant);
    }
    public T visitBooleanConstant(ByteCodeNode parentBooleanConstant booleanConstant)
    {
        return visitConstant(parentbooleanConstant);
    }
    public T visitIntConstant(ByteCodeNode parentIntConstant intConstant)
    {
        return visitConstant(parentintConstant);
    }
    public T visitBoxedIntegerConstant(ByteCodeNode parentBoxedIntegerConstant boxedIntegerConstant)
    {
        return visitConstant(parentboxedIntegerConstant);
    }
    public T visitFloatConstant(ByteCodeNode parentFloatConstant floatConstant)
    {
        return visitConstant(parentfloatConstant);
    }
    public T visitBoxedFloatConstant(ByteCodeNode parentBoxedFloatConstant boxedFloatConstant)
    {
        return visitConstant(parentboxedFloatConstant);
    }
    public T visitLongConstant(ByteCodeNode parentLongConstant longConstant)
    {
        return visitConstant(parentlongConstant);
    }
    public T visitBoxedLongConstant(ByteCodeNode parentBoxedLongConstant boxedLongConstant)
    {
        return visitConstant(parentboxedLongConstant);
    }
    public T visitDoubleConstant(ByteCodeNode parentDoubleConstant doubleConstant)
    {
        return visitConstant(parentdoubleConstant);
    }
    public T visitBoxedDoubleConstant(ByteCodeNode parentBoxedDoubleConstant boxedDoubleConstant)
    {
        return visitConstant(parentboxedDoubleConstant);
    }
    public T visitStringConstant(ByteCodeNode parentStringConstant stringConstant)
    {
        return visitConstant(parentstringConstant);
    }
    public T visitClassConstant(ByteCodeNode parentClassConstant classConstant)
    {
        return visitConstant(parentclassConstant);
    }
    //
    // Local Variable Instructions
    //
    public T visitVariableInstruction(ByteCodeNode parentVariableInstruction variableInstruction)
    {
        return visitInstruction(parentvariableInstruction);
    }
    public T visitLoadVariable(ByteCodeNode parentLoadVariableInstruction loadVariableInstruction)
    {
        return visitVariableInstruction(parentloadVariableInstruction);
    }
    public T visitStoreVariable(ByteCodeNode parentStoreVariableInstruction storeVariableInstruction)
    {
        return visitVariableInstruction(parentstoreVariableInstruction);
    }
    public T visitIncrementVariable(ByteCodeNode parentIncrementVariableInstruction incrementVariableInstruction)
    {
        return visitVariableInstruction(parentincrementVariableInstruction);
    }
    //
    // Field Instructions
    //
    public T visitFieldInstruction(ByteCodeNode parentFieldInstruction fieldInstruction)
    {
        return visitInstruction(parentfieldInstruction);
    }
    public T visitGetField(ByteCodeNode parentGetFieldInstruction getFieldInstruction)
    {
        return visitFieldInstruction(parentgetFieldInstruction);
    }
    public T visitPutField(ByteCodeNode parentPutFieldInstruction putFieldInstruction)
    {
        return visitFieldInstruction(parentputFieldInstruction);
    }
    //
    // Invoke
    //
    public T visitInvoke(ByteCodeNode parentInvokeInstruction invokeInstruction)
    {
        return visitInstruction(parentinvokeInstruction);
    }
    public T visitInvokeDynamic(ByteCodeNode parentInvokeDynamicInstruction invokeDynamicInstruction)
    {
        return visitInvoke(parentinvokeDynamicInstruction);
    }
    //
    // Debug
    //
    public T visitDebug(ByteCodeNode parentDebugNode debugNode)
    {
        return visitNode(parentdebugNode);
    }
    public T visitLineNumber(ByteCodeNode parentLineNumberNode lineNumberNode)
    {
        return visitDebug(parentlineNumberNode);
    }
    public T visitLocalVariable(ByteCodeNode parentLocalVariableNode localVariableNode)
    {
        return visitDebug(parentlocalVariableNode);
    }
New to GrepCode? Check out our FAQ X