public class OraclePackageNamespace extends Object implements INamespace
Package members declared in PACKAGE or PACKAGE BODY can be referenced:
gn_err_nopkg_name.gn_err_noschema.pkg_name.gn_err_noThis namespace returns getFinalTable() == null since package members
are not table columns.
| Modifier and Type | Class and Description |
|---|---|
static class |
OraclePackageNamespace.MemberKind
Represents the kind of package member.
|
static class |
OraclePackageNamespace.PackageMember
Represents a single package member (variable, constant, cursor, etc.)
|
| Constructor and Description |
|---|
OraclePackageNamespace(String packageName,
String schemaName,
TPlsqlCreatePackage packageNode)
Create a new Oracle package namespace.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addCursor(TCursorDeclStmt cursorDecl)
Add a cursor member from TCursorDeclStmt.
|
void |
addMember(String name,
OraclePackageNamespace.MemberKind kind,
Object definitionNode)
Add a member directly by name and kind.
|
void |
addVariable(TVarDeclStmt varDecl)
Add a variable/constant member from TVarDeclStmt.
|
Map<String,ColumnSource> |
getAllColumnSources()
Get all column sources exposed by this namespace.
|
List<TTable> |
getAllFinalTables()
Get all final physical tables this namespace depends on.
|
String |
getDisplayName()
Get a display name for this namespace (for debugging/error messages)
|
TTable |
getFinalTable()
Get the final physical table this namespace represents.
|
OraclePackageNamespace.PackageMember |
getMember(String name)
Get a specific member by name.
|
Map<String,OraclePackageNamespace.PackageMember> |
getMembers()
Get all members in this package.
|
Object |
getNode()
Get the associated AST node (TTable, TSelectSqlStatement, etc.)
|
String |
getPackageName()
Get the package name.
|
String |
getSchemaName()
Get the schema name.
|
ColumnLevel |
hasColumn(String columnName)
Check if a column exists in this namespace.
|
boolean |
hasMember(String name)
Check if this package has a member with the given name.
|
boolean |
isValidated()
Check if this namespace is validated/resolved.
|
void |
mergeFrom(OraclePackageNamespace other)
Merge members from another package namespace (spec + body merging).
|
ColumnSource |
resolveColumn(String columnName)
Resolve a column name to its source.
|
String |
toString() |
void |
validate()
Validate/resolve this namespace.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddInferredColumn, getInferredColumns, getSelectStatement, getSourceTable, getStarColumn, hasStarColumn, resolveColumnPath, supportsDynamicInferencepublic OraclePackageNamespace(String packageName, String schemaName, TPlsqlCreatePackage packageNode)
packageName - The simple package nameschemaName - The schema name (may be null)packageNode - The AST node for the packagepublic void addVariable(TVarDeclStmt varDecl)
varDecl - The variable declaration statementpublic void addCursor(TCursorDeclStmt cursorDecl)
cursorDecl - The cursor declaration statementpublic void addMember(String name, OraclePackageNamespace.MemberKind kind, Object definitionNode)
name - The member namekind - The member kinddefinitionNode - The AST node where this member is definedpublic void mergeFrom(OraclePackageNamespace other)
other - The other namespace to merge frompublic String getDisplayName()
INamespacegetDisplayName in interface INamespacepublic ColumnLevel hasColumn(String columnName)
INamespacehasColumn in interface INamespacecolumnName - Column name to checkpublic ColumnSource resolveColumn(String columnName)
INamespaceresolveColumn in interface INamespacecolumnName - Column name to resolvepublic Map<String,ColumnSource> getAllColumnSources()
INamespacegetAllColumnSources in interface INamespacepublic TTable getFinalTable()
INamespacegetFinalTable in interface INamespacepublic List<TTable> getAllFinalTables()
INamespacegetAllFinalTables in interface INamespacepublic boolean isValidated()
INamespaceisValidated in interface INamespacepublic void validate()
INamespacevalidate in interface INamespacepublic Object getNode()
INamespacegetNode in interface INamespacepublic String getPackageName()
public String getSchemaName()
public Map<String,OraclePackageNamespace.PackageMember> getMembers()
public boolean hasMember(String name)
name - The member name to checkpublic OraclePackageNamespace.PackageMember getMember(String name)
name - The member name