Overview | Package | Class | Use | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.togethersoft.openapi.sci
Class SciUtil

public class SciUtil

This class contains a set of useful static methods for finding members in classes, checking the relationship between classes(interfaces), and getting a function call expression from a reference to a function.

Author:
  TogetherSoft

Method Summary
`static Enumeration` | `allMembers(SciClass sciClass, boolean filterOverriden)` Returns an enumeration of all the members this class has, including inherited members.
`static SciAttribute` | `findAttributeByName(SciClass sciClass, String name)` Finds an attribute by its name and containing class.
`static SciClass` | `findClassByName(SciContainer container, String name)`
`static SciClass` | `findClassByName(SciContainer container, SciClass aClass)`
`static SciMember` | `findMemberBySignature(SciClass sciClass, String signature)` Finds `SciMember` by its containing class and the signature.
`static SciMember` | `findMemberBySignature(SciClass sciClass, SciMember patternMember)` Finds `SciMember` by its containing class and another member having the same signature.
`static SciMember` | `findMemberBySignature(SciClass sciClass, String signature, boolean searchInBaseClasses)` Finds `SciMember` by the signature in the specified class(interface), or in its parents.
`static SciMember` | `findMemberBySignature(SciClass sciClass, SciMember patternMember, boolean searchInBaseClasses)` Finds `SciMember` by another member having the same signature, in the specified class(interface), or in its parents.
`static SciFunctionCallExpression` | `getFunctionCallFromReference(SciReferenceExpression referenceExpression)` Returns a `SciFunctionCallExpression` for the specified reference to a function.
`static boolean` | `isInheritor(SciClass aClass, SciClass base, boolean checkDeepInheritance)` Checks whether the specified class(interface) is a descendant of another class or interface.

Method Detail

### allMembers

    public static Enumeration allMembers(SciClass sciClass, boolean filterOverriden)

  Returns an enumeration of all the members this class has, including inherited members.
  Parameters:
    sciClass - the `SciClass` in which members are being searched
    filterOverriden - The boolena flag. If `true` then this method will not return overriden members in superclasses.
  Returns: `Enumeration`

### findAttributeByName

    public static SciAttribute findAttributeByName(SciClass sciClass, String name)

  Finds an attribute by its name and containing class.
  Parameters:
    sciClass - the `SciClass` in which an attribute is being searched
    name - the string containg a name of an attribute
  Returns: `SciAttribute` containing in the specified class and having the specified name, `null` otherwise

### findClassByName

    public static SciClass findClassByName(SciContainer container, String name)

### findClassByName

    public static SciClass findClassByName(SciContainer container, SciClass aClass)

### findMemberBySignature

    public static SciMember findMemberBySignature(SciClass sciClass, String signature)

  Finds `SciMember` by its containing class and the signature.
  Parameters:
    sciClass - `SciClass` in which a member is being searched
    signature - the string containing the signature of a member
  Returns: `SciMember` having the specified signature and contained in the specified class; `null` otherwise.
  See Also:
    findMemberBySignature(com.togethersoft.openapi.sci.SciClass,java.lang.String), SciMember.getSignature()

### findMemberBySignature

    public static SciMember findMemberBySignature(SciClass sciClass, SciMember patternMember)

  Finds `SciMember` by its containing class and another member having the same signature. This method works faster than findMemberBySignature(SciClass,String), because it calculates and compares signatures only if the names of the members being compared are matching.
  Parameters:
    sciClass - `SciClass` in which a member is being searched
    patternMember - `SciMember` having the same signature as the target member
  Returns: `SciMember` containing in the specified class and having the same signature as the specified member, `null` otherwise.
  See Also:
    SciMember.getSignature()

### findMemberBySignature

    public static SciMember findMemberBySignature(SciClass sciClass, String signature, boolean searchInBaseClasses)

  Finds `SciMember` by the signature in the specified class(interface), or in its parents.
  Parameters:
    sciClass - the starting `SciClass` in which a member is being searched
    signature - the string containing the signature of a member
    searchInBaseClasses - The boolean flag. If `true` then a member will be searched in the classes and interfaces (in classes first) which `sciClass` extends and/or implements. If `false` then it will be searched in the `sciClass` only.
  Returns: `SciMember` having the specified signature and contained in the specified class(interface), or in its parents, `null` otherwise.
  See Also:
    findMemberBySignature(com.togethersoft.openapi.sci.SciClass,java.lang.String), SciMember.getSignature()

### findMemberBySignature

    public static SciMember findMemberBySignature(SciClass sciClass, SciMember patternMember, boolean searchInBaseClasses)

  Finds `SciMember` by another member having the same signature, in the specified class(interface), or in its parents. This method works faster than findMemberBySignature(SciClass, String, boolean), because it calculates and compares signatures only if the names of the members being compared are matching.
  Parameters:
    sciClass - the starting `SciClass` in which a member is being searched
    patternMember - `SciMember` having the same signature as the target member
    searchInBaseClasses - The boolean flag. If `true` then a member will be searched in the classes and interfaces (in classes first) which `sciClass` extends and/or implements. If `false` then it will be searched in the `sciClass` only.
  Returns: `SciMember` having the same signature as the specified member, and contained in the specified class(interface), or in its parents; `null` otherwise.
  See Also:
    findMemberBySignature(com.togethersoft.openapi.sci.SciClass,java.lang.String), SciMember.getSignature()

### getFunctionCallFromReference

    public static SciFunctionCallExpression getFunctionCallFromReference(SciReferenceExpression referenceExpression)

  Returns a `SciFunctionCallExpression` for the specified reference to a function. For references not to the functions this method returns `null`. It is very convenient method, because once you've got a reference (for example, in a SciReferenceVisitor), you can check if it appears in the function call expression, and get this expression if it does.

  Let us suppose we have a line in the source code:

       someObject.someMethod();

  For `SciReference` representing a reference to `someMethod` this method will return `SciFuncionCallExpression` for the original source code line.
  For `SciReference` representing a reference to `someObject` this method will return `null`.

  Note that since in Java (unlike C++) any usage of a method's name may appear only in the function call expressions, this method won't return `null` for references to methods.

  Parameters:
    referenceExpression - the `SciReferenceExpression`
  Returns: `SciFunctionCallExpression`, or `null`
  See Also:
    SciFunctionCallExpression, SciReferenceExpression

### isInheritor

    public static boolean isInheritor(SciClass aClass, SciClass base, boolean checkDeepInheritance)

  Checks whether the specified class(interface) is a descendant of another class or interface.
  Parameters:
    aClass - the child `SciClass`
    base - the target `SciClass`
    checkDeepInheritance - The boolean flag. If `true` then this method will analyze not only direct inheritances, but will scan the whole hierarchy of parents of `aClass`.
  Returns: `true` if `aClass` is a descendant of `base`, `false` otherwise

Overview | Package | Class | Use | Tree | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD