public class BufferList
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private BufferScopeTracker |
active
The current active buffer scope for this buffer name.
|
private java.util.Set<BufferScopeTracker> |
buffers
All
BufferScopeTracker instances that use this buffer. |
private java.lang.String |
bufName
The Progress buffer name being referenced.
|
private java.lang.String |
dbName
The logical database name for the buffer.
|
private boolean |
dynamicTable
true if the buffer is for a dynamic table. |
private java.lang.String |
forceDMOAlias
Explicit DMO alias for the converted buffer.
|
private boolean |
implicit
true if the buffer was not explicitly defined. |
private java.lang.String |
javaName
The explicit Progress buffer's Java name.
|
private BufferScopeTracker |
pending
A pending free reference for this buffer name.
|
private boolean |
readOnly
true if the buffer is read-only (like the OLD buffer of a
database WRITE trigger). |
private java.lang.String |
schemaName
The fully qualified Progress schema name being referenced.
|
private BufferScopeTracker |
staged
A staging area to temporarily hold a buffer until the block opens.
|
private java.lang.String |
uniqueName
The Progress qualified buffer name being referenced.
|
private BufferScopeTracker |
zombies
All non-scoping free references are stored in this special scope.
|
Constructor and Description |
---|
BufferList(java.lang.String unique,
java.lang.String buf,
java.lang.String forceDMOAlias,
java.lang.String schema,
java.lang.String java,
java.lang.String dbname,
boolean implicit,
boolean readOnly,
boolean dynamicTable)
Create an instance to track a buffer scope of a given buffer name
which is directly mapped to a specific fully-qualified schema name.
|
Modifier and Type | Method and Description |
---|---|
void |
addBufferScope(BufferScopeTracker bst)
Add a new buffer scope to the list of all buffer scopes for the current file.
|
void |
addZombie(Aast node)
Add a node to the zombie list, creating the zombie list first if needed.
|
BufferScopeTracker |
getActive()
Accesses the current active buffer scope for this buffer name.
|
java.lang.String |
getBufName()
Returns the buffer's name.
|
java.lang.String |
getDbName()
Returns the logical database name for the buffer.
|
java.lang.String |
getForceDMOAlias()
Get the explicit DMO alias for the converted buffer.
|
boolean |
getImplicit()
Specifies if the buffer was created due to an implicit record reference
or due to an explicit definition (e.g.
|
java.lang.String |
getJavaName()
Returns the explicitly defined buffer's Java name which is the
converted name for this buffer.
|
BufferScopeTracker |
getPending()
Accesses the current pending (unbound) free reference for this buffer name.
|
java.lang.String |
getSchemaName()
Returns the fully-qualified schema name which is referenced by this buffer.
|
java.util.Iterator |
getScopeList()
Returns an iterator to the list of buffer scopes associated with this buffer name.
|
BufferScopeTracker |
getStaged()
Accesses the current staged strong or weak reference for this buffer name.
|
java.lang.String |
getUniqueName()
Returns the buffer's qualified name.
|
BufferScopeTracker |
getZombies()
Accesses the list of zombie nodes for this buffer name.
|
boolean |
isDynamicTable()
Specifies if this instance tracks a buffer of a dynamic table.
|
boolean |
isReadOnly()
Specifies if the buffer is read-only (like the OLD buffer of a database WRITE trigger).
|
void |
removeBufferScope(BufferScopeTracker bst)
Remove a buffer scope from the list of all buffer scopes for the current file.
|
void |
setActive(BufferScopeTracker active)
Sets the current active buffer scope for this buffer name.
|
void |
setPending(BufferScopeTracker pending)
Sets the current pending (unbound) free reference for this buffer name.
|
void |
setStaged(BufferScopeTracker staged)
Sets the current staged strong or weak reference for this buffer name.
|
private java.lang.String uniqueName
private java.lang.String bufName
private java.lang.String forceDMOAlias
private boolean dynamicTable
true
if the buffer is for a dynamic table.private java.lang.String schemaName
private java.lang.String javaName
private java.lang.String dbName
private boolean implicit
true
if the buffer was not explicitly defined.private boolean readOnly
true
if the buffer is read-only (like the OLD buffer of a
database WRITE trigger).private java.util.Set<BufferScopeTracker> buffers
BufferScopeTracker
instances that use this buffer.
Provides a stable iteration order.private BufferScopeTracker staged
private BufferScopeTracker pending
private BufferScopeTracker active
private BufferScopeTracker zombies
public BufferList(java.lang.String unique, java.lang.String buf, java.lang.String forceDMOAlias, java.lang.String schema, java.lang.String java, java.lang.String dbname, boolean implicit, boolean readOnly, boolean dynamicTable)
unique
- The buffer's qualified name.buf
- The buffer's Progress name.forceDMOAlias
- Explicit DMO alias for the converted buffer. Used for dynamic buffers.
null
if auto-converted alias should be used.schema
- The fully-qualified schema name referenced by this buffer.java
- The converted Java name for this buffer. null
if this is an implicitly defined buffer.dbname
- The logical database name for the buffer (this may be
different from the database name in the schema parameter).implicit
- true
if this buffer is being created due to
an implicit record reference, false
if the
buffer was explicitly defined (e.g. with a DEFINE BUFFER
statement).readOnly
- true
if the buffer is read-only (like the OLD
buffer of a database WRITE trigger).dynamicTable
- true
if the buffer is for a dynamic table.public java.lang.String getUniqueName()
public java.lang.String getBufName()
public java.lang.String getForceDMOAlias()
null
if this buffer uses auto-converted alias.public java.lang.String getSchemaName()
public java.lang.String getJavaName()
null
if this
is not an explicitly defined buffer.public java.lang.String getDbName()
public boolean getImplicit()
true
if the buffer was created due to an
implicit record reference, false
otherwise.public boolean isReadOnly()
true
if the buffer is read-only.public boolean isDynamicTable()
true
if this tracks a buffer of a dynamic table.public BufferScopeTracker getStaged()
null
if
there is no staged reference.public void setStaged(BufferScopeTracker staged)
staged
- The strong or weak reference to stage or null
to
clear the staged reference.public BufferScopeTracker getPending()
null
if
there is no pending free reference.public void setPending(BufferScopeTracker pending)
pending
- The pending unbound free reference or null
to
clear the pending free reference.public BufferScopeTracker getActive()
null
if there is no
active buffer scope.public void setActive(BufferScopeTracker active)
active
- The active buffer scope or null
to
clear the current active scope.public BufferScopeTracker getZombies()
NO_REFERENCE
so that it
has no affect on buffer scoping calcuations BUT it is still tracked
and assigned a buffer such that the references can be resolved at
runtime since such references really do access data.null
if there were
no such nodes for this buffer.public void addBufferScope(BufferScopeTracker bst)
bst
- The scope to add.public void removeBufferScope(BufferScopeTracker bst)
bst
- The scope to remove.public java.util.Iterator getScopeList()
BufferScopeTracker
instances
associated with this buffer name.public void addZombie(Aast node)
A zombie node is an AST that is marked as a NO_REFERENCE
so that it has no affect on buffer scoping calcuations BUT it is still
tracked and assigned a buffer such that the references can be resolved
at runtime since such references really do access data.
node
- The zombie node to add.