001package com.hfg.util; 002 003import java.lang.reflect.Method; 004 005public class StackTraceElementFilter 006{ 007 public Package mPackage; 008 public Class mClass; 009 public Method mMethod; 010 011 //--------------------------------------------------------------------------- 012 public StackTraceElementFilter() 013 { 014 015 } 016 017 //--------------------------------------------------------------------------- 018 public StackTraceElementFilter setPackage(Package inValue) 019 { 020 mPackage = inValue; 021 return this; 022 } 023 024 //--------------------------------------------------------------------------- 025 public Package getPackage() 026 { 027 return mPackage; 028 } 029 030 //--------------------------------------------------------------------------- 031 public StackTraceElementFilter setClass(Class inValue) 032 { 033 mClass = inValue; 034 return this; 035 } 036 037 //--------------------------------------------------------------------------- 038 public String getClassName() 039 { 040 return mClass != null ? mClass.getName() : null; 041 } 042 043 //--------------------------------------------------------------------------- 044 public StackTraceElementFilter setMethod(Method inValue) 045 { 046 mMethod = inValue; 047 return this; 048 } 049 050 //--------------------------------------------------------------------------- 051 public String getMethodName() 052 { 053 return mMethod != null ? mMethod.getName() : null; 054 } 055 056 //--------------------------------------------------------------------------- 057 public boolean accept(StackTraceElement inElement) 058 { 059 boolean accept = false; 060 try 061 { 062 if (null == getPackage() 063 || Class.forName(inElement.getClassName()).getPackage().equals(getPackage())) 064 { 065 // Package is a match 066 if (null == getClassName() 067 || inElement.getClassName().equals(getClassName())) 068 { 069 // Class is a match 070 if (null == getMethodName() 071 || inElement.getMethodName().equals(getMethodName())) 072 { 073 accept = true; 074 } 075 } 076 } 077 } 078 catch (Exception e) 079 { 080 throw new RuntimeException(e); 081 } 082 083 return accept; 084 } 085}