001    package org.mesopotamia.lang.java.ref;
002    
003    import java.util.List;
004    
005    
006    /**
007     * Base interface representing information about referenced language construct.
008     * For types info scope is type scope, for variables - variable type scope, for methods - return
009     * type scope.
010     * @author Pavel
011     *
012     */
013    public interface Info {
014            
015            /**
016             * @return Fully qualified name. Null for local variables
017             * and local and anonymous classes/interfaces.
018             */
019            String getFcn();
020            
021            /**
022             * @return Variable, type of method name.
023             */
024            String getName();
025            
026            /**
027             * @return Information about declaring type. 
028             * Null for local variables and local and anonymous classes. 
029             */
030            TypeInfo getDeclaringType();
031    
032            List<String> getModifiers();
033    }