Class SplitPackageBinding

All Implemented Interfaces:
TypeConstants

public class SplitPackageBinding extends PackageBinding
  • Field Details

  • Constructor Details

  • Method Details

    • combine

      public static PackageBinding combine(PackageBinding binding, PackageBinding previous, ModuleBinding primaryModule)
      Combine two potential package bindings, answering either the better of those if the other has a problem, or combine both into a split package.
      Parameters:
      binding - one candidate
      previous - a previous candidate
      primaryModule - when constructing a new SplitPackageBinding this primary module will define the focus when later an UnresolvedReferenceBinding is resolved relative to this SplitPackageBinding.
      Returns:
      one of: null, a regular PackageBinding or a SplitPackageBinding.
    • add

      public void add(PackageBinding packageBinding)
    • findPackage

      protected PackageBinding findPackage(char[] name, ModuleBinding module)
      Overrides:
      findPackage in class PackageBinding
    • getIncarnation

      public PlainPackageBinding getIncarnation(ModuleBinding requestedModule)
      Specified by:
      getIncarnation in class PackageBinding
    • subsumes

      public boolean subsumes(PackageBinding binding)
      Overrides:
      subsumes in class PackageBinding
    • isDeclaredIn

      public boolean isDeclaredIn(ModuleBinding moduleBinding)
      Overrides:
      isDeclaredIn in class PackageBinding
    • getVisibleFor

      public PackageBinding getVisibleFor(ModuleBinding clientModule, boolean preferLocal)
      Description copied from class: PackageBinding
      If this package is uniquely visible to 'module' return a plain PackageBinding. In case of a conflict between a local package and foreign package flag preferLocal will select the behavior:
      • if true the plain local package is returned, because this conflict will more appropriately be reported against the package declaration, not its references.
      • if false a conflict local vs. foreign will be treated just like any other conflict, see next.
      In case of multiple accessible foreign packages a SplitPackageBinding is returned to indicate a conflict.
      Overrides:
      getVisibleFor in class PackageBinding
    • toString

      public String toString()
      Overrides:
      toString in class PackageBinding