001 package sysModel.classFile.constantPool.visitors; 002 003 import sysModel.classFile.constantPool.APoolInfo; 004 import sysModel.classFile.constantPool.MethodPoolInfo; 005 006 /** 007 * Check that the host is a method info. 008 * 009 * @author Mathias Ricken 010 */ 011 public class CheckMethodVisitor extends ADefaultPoolInfoVisitor<MethodPoolInfo, Object> { 012 /** 013 * Singleton constructor. 014 */ 015 private CheckMethodVisitor() { 016 } 017 018 /** 019 * Singleton instance. 020 */ 021 private static CheckMethodVisitor _instance = new CheckMethodVisitor(); 022 023 /** 024 * Singleton accessor. 025 * 026 * @return singleton 027 */ 028 public static CheckMethodVisitor singleton() { 029 return _instance; 030 } 031 032 /** 033 * All other cases throw. 034 * 035 * @param host non-class host 036 * @param o not used 037 * 038 * @return nothing 039 */ 040 public MethodPoolInfo defaultCase(APoolInfo host, Object o) { 041 throw new ClassFormatError("Info is of type " + host.getClass().getName() + ", needs to be Method"); 042 } 043 044 /** 045 * Case for method info. 046 * 047 * @param host method info 048 * @param o not used 049 * 050 * @return visitor-specific return value 051 */ 052 public MethodPoolInfo methodCase(MethodPoolInfo host, Object o) { 053 return host; 054 } 055 }