Class DeclareParents

All Implemented Interfaces:
IHasPosition, IHasSourceLocation
Direct Known Subclasses:
DeclareParentsMixin

public class DeclareParents extends Declare
Author:
Thomas Kiviaho, Andy Clement, PARC
  • Field Details

  • Constructor Details

  • Method Details

    • match

      public boolean match(ResolvedType typeX)
    • accept

      public Object accept(PatternNodeVisitor visitor, Object data)
      Specified by:
      accept in class PatternNode
    • parameterizeWith

      public Declare parameterizeWith(Map<String,​UnresolvedType> typeVariableBindingMap, World w)
      Description copied from class: Declare
      Returns a version of this declare element in which all references to type variables are replaced with their bindings given in the map.
      Specified by:
      parameterizeWith in class Declare
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • write

      public void write(CompressingDataOutputStream s) throws IOException
      Specified by:
      write in class PatternNode
      Throws:
      IOException
    • read

      public static Declare read(VersionedDataInputStream s, ISourceContext context) throws IOException
      Throws:
      IOException
    • parentsIncludeInterface

      public boolean parentsIncludeInterface(World w)
    • parentsIncludeClass

      public boolean parentsIncludeClass(World w)
    • resolve

      public void resolve(IScope scope)
      Description copied from class: Declare
      Returns this declare mutated
      Specified by:
      resolve in class Declare
    • getParents

      public TypePatternList getParents()
    • getChild

      public TypePattern getChild()
    • isExtends

      public boolean isExtends()
    • isAdviceLike

      public boolean isAdviceLike()
      Description copied from class: Declare
      Indicates if this declare should be treated like advice. If true, the declare will have no effect in an abstract aspect. It will be inherited by any concrete aspects and will have an effect for each concrete aspect it is ultimately inherited by.
      Specified by:
      isAdviceLike in class Declare
    • findMatchingNewParents

      public List<ResolvedType> findMatchingNewParents(ResolvedType onType, boolean reportErrors)
    • getNameSuffix

      public String getNameSuffix()
      Description copied from class: Declare
      Declares have methods in the .class file against which info can be stored (for example, the annotation in the case of declare annotation). The name is of the form ajc$declare_XXX_NNN where XXX can optionally be set in this 'getNameSuffix()' method - depending on whether, at weave time, we want to easily differentiate between the declare methods.
      Specified by:
      getNameSuffix in class Declare
    • isMixin

      public boolean isMixin()