Class OraclePackageRegistry

Object
gudusoft.gsqlparser.resolver2.OraclePackageRegistry

public class OraclePackageRegistry extends Object
Registry for Oracle packages encountered during scope building.

Pre-built during the initial scan of statements to allow:

  • Cross-package references (pkg1 references pkg2.constant)
  • Spec/body merging for complete member visibility
  • O(1) lookup of package namespaces by name

Usage in ScopeBuilder:

 // During build() pre-traversal:
 packageRegistry = new OraclePackageRegistry();
 packageRegistry.buildFromStatements(statements);

 // During visitor traversal (when entering package body):
 OraclePackageNamespace pkgNs = packageRegistry.getPackage(packageName);
 
  • Constructor Details

  • Method Details

    • setDebug

      public void setDebug(boolean debug)
      Enable/disable debug logging.
      Parameters:
      debug - true to enable debug output
    • buildFromStatements

      public void buildFromStatements(TStatementList statements)
      Build the registry from a list of statements. Call this during ScopeBuilder pre-traversal.
      Parameters:
      statements - The statement list to scan
    • getPackage

      Look up a package namespace by name.
      Parameters:
      name - Package name (can be simple or qualified)
      Returns:
      The namespace, or null if not found
    • isPackage

      public boolean isPackage(String name)
      Check if a name corresponds to a known package.
      Parameters:
      name - The name to check
      Returns:
      true if this is a known package
    • getAllPackages

      Get all registered packages.
      Returns:
      Unmodifiable collection of all packages
    • size

      public int size()
      Get the number of registered packages.
      Returns:
      The package count
    • clear

      public void clear()
      Clear the registry. Call this at reset.
    • toString

      public String toString()
      Overrides:
      toString in class Object