001 package sysModel.classFile.attributes.visitors; 002 003 import sysModel.classFile.attributes.*; 004 005 /** 006 * A visitor that operates on attributes. 007 * 008 * @author Mathias Ricken 009 */ 010 public interface IAttributeVisitor <R, D> { 011 /** 012 * Case for SourceFile attribute. 013 * 014 * @param host attribute 015 * @param param visitor-specific parameter 016 * 017 * @return visitor-specific return vakue 018 */ 019 R sourceFileCase(SourceFileAttributeInfo host, D param); 020 021 /** 022 * Case for Code attribute. 023 * 024 * @param host attribute 025 * @param param visitor-specific parameter 026 * 027 * @return visitor-specific return vakue 028 */ 029 R codeCase(CodeAttributeInfo host, D param); 030 031 /** 032 * Case for an unknown attribute. 033 * 034 * @param host attribute 035 * @param param visitor-specific parameter 036 * 037 * @return visitor-specific return vakue 038 */ 039 R unknownCase(UnknownAttributeInfo host, D param);}