01: /*
02: * FindBugs - Find Bugs in Java programs
03: * Copyright (C) 2003-2007 University of Maryland
04: *
05: * This library is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU Lesser General Public
07: * License as published by the Free Software Foundation; either
08: * version 2.1 of the License, or (at your option) any later version.
09: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library; if not, write to the Free Software
17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: */
19:
20: package edu.umd.cs.findbugs.ba.jsr305;
21:
22: import edu.umd.cs.findbugs.ba.XMethod;
23:
24: /**
25: * Accumulate type qualifier annotations for a method parameter.
26: *
27: * @author David Hovemeyer
28: */
29: public class ParameterAnnotationAccumulator extends
30: AbstractMethodAnnotationAccumulator {
31: private int parameter;
32: private ParameterAnnotationLookupResult result;
33:
34: /**
35: * Constructor.
36: *
37: * @param typeQualifierValue TypeQualifierValue specifying kind of application to lookup
38: * @param xmethod method we want to find parameter annotation for
39: * @param parameter the parameter (0 == first parameter)
40: */
41: protected ParameterAnnotationAccumulator(
42: TypeQualifierValue typeQualifierValue, XMethod xmethod,
43: int parameter) {
44: super (typeQualifierValue, xmethod);
45: this .parameter = parameter;
46: this .result = new ParameterAnnotationLookupResult();
47: }
48:
49: /* (non-Javadoc)
50: * @see edu.umd.cs.findbugs.ba.jsr305.AbstractMethodAnnotationAccumulator#getResult()
51: */
52: @Override
53: public TypeQualifierAnnotationLookupResult getResult() {
54: return result;
55: }
56:
57: /* (non-Javadoc)
58: * @see edu.umd.cs.findbugs.ba.jsr305.AbstractMethodAnnotationAccumulator#lookupAnnotation(edu.umd.cs.findbugs.ba.XMethod)
59: */
60: @Override
61: protected TypeQualifierAnnotation lookupAnnotation(XMethod xm) {
62: return TypeQualifierApplications
63: .getEffectiveTypeQualifierAnnotation(xm, parameter,
64: getTypeQualifierValue());
65: }
66:
67: }
|