1  /*
     2   * Copyright the original author or authors.
     3   * 
     4   * Licensed under the MOZILLA PUBLIC LICENSE, Version 1.1 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   * 
     8   *      http://www.mozilla.org/MPL/MPL-1.1.html
     9   * 
    10   * Unless required by applicable law or agreed to in writing, software
    11   * distributed under the License is distributed on an "AS IS" BASIS,
    12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13   * See the License for the specific language governing permissions and
    14   * limitations under the License.
    15   */
    16  
    17  import org.as2lib.env.reflect.TypeInfo;
    18  import org.as2lib.env.reflect.MemberInfo;
    19  
    20  /**
    21   * {@code TypeMemberInfo} represents a type member.
    22   * 
    23   * <p>Type members are methods, implicit get/set methods (referred to as properties)
    24   * and variables (not supported right now).
    25   *
    26   * <p>Class or instance variables are not supported because they can only be
    27   * evaluated if they got initialized previously. Therefore results could vary
    28   * dramatically.
    29   * 
    30   * @author Simon Wacker
    31   */
    32  interface org.as2lib.env.reflect.TypeMemberInfo extends MemberInfo {
    33  	
    34  	/**
    35  	 * Returns the full name of this type member.
    36  	 * 
    37  	 * <p>The full name is the name of this type member plus the fully qualified name
    38  	 * of the declaring type.
    39  	 * 
    40  	 * @return the full name of this type member
    41  	 */
    42  	public function getFullName(Void):String;
    43  	
    44  	/**
    45  	 * Returns the declaring type of this type member.
    46  	 *
    47  	 * @return this type member's declaring type
    48  	 */
    49  	public function getDeclaringType(Void):TypeInfo;
    50  	
    51  	/**
    52  	 * Returns whether this type member is static or not.
    53  	 * 
    54  	 * <p>Static type members are members per type. Speaking of classes static type
    55  	 * members are class variables or class methods.
    56  	 *
    57  	 * <p>Non-Static type members are members per instance. For example instance
    58  	 * variables or instance methods.
    59  	 *
    60  	 * @return {@code true} if this type member is static else {@code false}
    61  	 */
    62  	public function isStatic(Void):Boolean;
    63  	
    64  }