public final class RoutineAliasKey extends Object
The legacy index keys a routine by text: its name folded by the legacy normal-name function, followed by one of
three alias suffixes rendered from the declaration ((int,int), (2), (in1)), appended
unchanged. This key keeps that suffix as the same raw text, so aliases and overloads behave exactly as before, and
replaces the folded name with the name's levels as written, in positional order, each keyed by the analysis's
identifier rules. The routine level is keyed under the routine rules. Every qualifier is keyed under the schema
rules, whether it is a server, a database, a schema or a package: which one it is cannot be known at a call, and
two keys compare level by level.
An explicitly empty middle level (db..p) is a level of its own, so db..p keeps three levels, as
its legacy text did. A database link (p@link) is part of the key, as the legacy kept @link in the
text.
| Modifier and Type | Class and Description |
|---|---|
static class |
RoutineAliasKey.Display
The key of a model's display name (
Procedure, OraclePackage), built beside the composition that
renders it, branch for branch: the composition appends written segments and filled-in database or schema
values, and this appends the matching levels. |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object o) |
List<Object> |
getLevels()
The name's levels (a
CanonKey, or the empty level), outermost first. |
CanonKey |
getRoutineKey()
The routine level's key.
|
String |
getSignature()
The alias suffix as raw text, or null.
|
int |
hashCode() |
boolean |
hasSignature() |
boolean |
isQualified() |
boolean |
looksSuffixed()
Whether the legacy lookup took this key's text for a name with a suffix: it has one, or a
( as written. |
RoutineAliasKey |
nameOnly()
This key without an alias suffix: the name alone.
|
static RoutineAliasKey |
ofLegacyText(String text)
The key of a routine name given as legacy normal-name text (
SCHEMA.NAME(suffix)), for the deprecated
text-keyed API of ModelBindingManager only. |
static RoutineAliasKey |
ofLegacyText(String text,
IdentifierService service)
ofLegacyText(String) under the given analysis's identifier rules. |
static RoutineAliasKey |
ofWrittenLevels(List<String> qualifiers,
String routine,
String signature,
IdentifierService service)
The key of a name whose levels are already separate identifiers as written: a model's database and schema
fields and its routine name.
|
RoutineAliasKey |
qualifiedBy(RoutineAliasKey qualifiers)
This key with
qualifiers' levels in front, for a member of the package qualifiers names. |
static IdentifierService |
service()
The analysis's identifier service, or the vendor default when no analysis has published one.
|
int |
size() |
String |
toString()
For diagnostics only: never compare or key by this text.
|
RoutineAliasKey |
withQualifier(String qualifier)
This key with
qualifier as written in front, a single identifier (a model's schema field); for a lookup
the legacy made by prefixing that text. |
RoutineAliasKey |
withQualifier(String qualifier,
IdentifierService service) |
RoutineAliasKey |
withSignature(String otherSignature)
This key's levels with another alias suffix.
|
RoutineAliasKey |
withSignature(String otherSignature,
IdentifierService service) |
static RoutineAliasKey |
written(TObjectName name,
String signature)
The key of a routine name as written at a call or a declaration, with the legacy alias suffix
signature (null when the legacy key had none). |
static RoutineAliasKey |
written(TObjectName name,
String signature,
IdentifierService service) |
public static IdentifierService service()
public static RoutineAliasKey written(TObjectName name, String signature)
signature (null when the legacy key had none). Null when the name has no routine level.public static RoutineAliasKey written(TObjectName name, String signature, IdentifierService service)
public static RoutineAliasKey ofWrittenLevels(List<String> qualifiers, String routine, String signature, IdentifierService service)
db..p.public static RoutineAliasKey ofLegacyText(String text)
SCHEMA.NAME(suffix)), for the deprecated
text-keyed API of ModelBindingManager only. That text is already a stored spelling (the legacy maps
compared it as stored text: foo there is not FOO), so its levels are keyed as stored names: the text
before its last ( (when it ends with )) is split into levels, and the rest is the alias suffix.
Null when it names nothing.public static RoutineAliasKey ofLegacyText(String text, IdentifierService service)
ofLegacyText(String) under the given analysis's identifier rules.public RoutineAliasKey qualifiedBy(RoutineAliasKey qualifiers)
qualifiers' levels in front, for a member of the package qualifiers names.public RoutineAliasKey withSignature(String otherSignature)
public RoutineAliasKey withSignature(String otherSignature, IdentifierService service)
public RoutineAliasKey nameOnly()
public int size()
public boolean isQualified()
public boolean hasSignature()
public boolean looksSuffixed()
( as written.public RoutineAliasKey withQualifier(String qualifier)
qualifier as written in front, a single identifier (a model's schema field); for a lookup
the legacy made by prefixing that text.public RoutineAliasKey withQualifier(String qualifier, IdentifierService service)
public String getSignature()
public CanonKey getRoutineKey()
public List<Object> getLevels()
CanonKey, or the empty level), outermost first.