Class AbstractModel

java.lang.Object
software.coley.sourcesolver.model.AbstractModel
All Implemented Interfaces:
Model
Direct Known Subclasses:
AbstractCaseLabelModel, AbstractExpressionModel, AbstractPatternModel, AbstractStatementModel, AnnotationArgumentModel, CaseModel, CatchModel, CompilationUnitModel, ImplementsModel, ImportModel, MethodBodyModel, MethodModel, ModifiersMapper.ModifiersParsePair, ModifiersModel, PackageModel, PermitsModel, TypeArgumentsMapper.Args, TypeModel, TypeParameterModel

public abstract class AbstractModel extends Object implements Model
  • Constructor Details

    • AbstractModel

      protected AbstractModel(@Nonnull Range range)
    • AbstractModel

      protected AbstractModel(@Nonnull Range range, Model... children)
    • AbstractModel

      protected AbstractModel(@Nonnull Range range, ChildSupplier... suppliers)
    • AbstractModel

      protected AbstractModel(@Nonnull Range range, @Nonnull Collection<? extends Model> children)
  • Method Details

    • resolveAt

      @Nonnull public Resolution resolveAt(@Nonnull Resolver resolver, int position)
      Specified by:
      resolveAt in interface Model
      Parameters:
      resolver - Resolver to utilize.
      position - Absolute position in the source code of the item we want to resolve.
      Returns:
      Resolution of what this model represents at the given position.
    • getChildren

      @Nonnull public List<Model> getChildren()
      Specified by:
      getChildren in interface Model
      Returns:
      Direct child models.
    • getParent

      @Nullable public Model getParent()
      Specified by:
      getParent in interface Model
      Returns:
      Direct parent model. Should only ever be null for CompilationUnitModel.
    • getRange

      @Nonnull public Range getRange()
      Specified by:
      getRange in interface Model
      Returns:
      Range within the source code this model originates from.
    • equals

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

      public abstract int hashCode()
      Overrides:
      hashCode in class Object