1 /* 2 * Licensed under the Apache License, Version 2.0 (the "License"); 3 * you may not use this file except in compliance with the License. 4 * You may obtain a copy of the License at 5 * 6 * http://www.apache.org/licenses/LICENSE-2.0 7 * 8 * Unless required by applicable law or agreed to in writing, software 9 * distributed under the License is distributed on an "AS IS" BASIS, 10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 * See the License for the specific language governing permissions and 12 * limitations under the License. 13 */ 14 package org.apache.commons.classscan.model; 15 16 import java.util.Set; 17 18 import org.apache.commons.classscan.HasName; 19 20 /** 21 * Metadata about a Class field 22 */ 23 public interface MetaField extends HasName { 24 /** 25 * Get the name of the method or constructor 26 */ 27 String getName(); 28 29 /** 30 * Get metadata about the annotations on the field. 31 * 32 * @return A read-only set of annotations 33 */ 34 Set<? extends MetaAnnotation> getAnnotations(); 35 36 /** 37 * Get metadata about a particular annotation on the corresponding field. 38 * 39 * @param annotationName 40 * The name of the annotation desired 41 * 42 * @return The annotation information, or null if not specified on the 43 * corresponding field 44 */ 45 MetaAnnotation getAnnotation(String annotationName); 46 47 /** 48 * Get whether the corresponding field is a static field 49 */ 50 boolean isStatic(); 51 52 /** 53 * Get metadata about the field's type 54 */ 55 MetaType getType(); 56 }