/*
 * Copyright (c) 2002 - 2012 IBM Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 */
package com.ibm.wala.cast.js.callgraph.fieldbased.flowgraph.vertices;

/**
 * Visitor class for {@link Vertex}.
 *
 * @author mschaefer
 */
public class AbstractVertexVisitor<T> implements VertexVisitor<T> {
  public T visitVertex() {
    return null;
  }

  @Override
  public T visitVarVertex(VarVertex varVertex) {
    return visitVertex();
  }

  @Override
  public T visitPropVertex(PropVertex propVertex) {
    return visitVertex();
  }

  @Override
  public T visitUnknownVertex(UnknownVertex unknownVertex) {
    return visitVertex();
  }

  @Override
  public T visitFuncVertex(FuncVertex funcVertex) {
    return visitVertex();
  }

  @Override
  public T visitCreationSiteVertex(CreationSiteVertex csVertex) {
    return visitVertex();
  }

  @Override
  public T visitParamVertex(ParamVertex paramVertex) {
    return visitVertex();
  }

  @Override
  public T visitRetVertex(RetVertex retVertex) {
    return visitVertex();
  }

  @Override
  public T visitArgVertex(ArgVertex argVertex) {
    return visitVertex();
  }

  @Override
  public T visitCalleeVertex(CallVertex calleeVertex) {
    return visitVertex();
  }

  @Override
  public T visitLexicalAccessVertex(LexicalVarVertex lexicalAccessVertex) {
    return visitVertex();
  }

  @Override
  public T visitGlobalVertex(GlobalVertex globalVertex) {
    return visitVertex();
  }

  @Override
  public T visitPrototypeVertex(PrototypeFieldVertex protoVertex) {
    return visitVertex();
  }

  @Override
  public T visitReflectiveCallVertex(ReflectiveCallVertex reflectiveCallVertex) {
    return visitVertex();
  }
}
