public DeclarationFilter and(DeclarationFilter f) {
		final DeclarationFilter f1 = this;
		final DeclarationFilter f2 = f;
		return new DeclarationFilter() {
			public boolean matches(Declaration d) {
				return f1.matches(d) && f2.matches(d);
			}
		};
	}
public DeclarationFilter and(DeclarationFilter f) {
		final DeclarationFilter f1 = this;
		final DeclarationFilter f2 = f;
		return new DeclarationFilter() {
			public boolean matches(Declaration d) {
				return f1.matches(d) && f2.matches(d);
			}
		};
	}
public DeclarationFilter and ( DeclarationFilter f ) { final DeclarationFilter f1 = this ; final DeclarationFilter f2 = f ; return new DeclarationFilter ( ) { public boolean matches ( Declaration d ) { return f1 . matches ( d ) && f2 . matches ( d ) ; } } ; }
Returns a filter that selects those declarations selected
by both this filter and another.

@param f filter to be composed with this one
@return a filter that selects those declarations selected by
both this filter and another
Returns a filter that selects those declarations selected by both this filter and another .