Namespace: OpenEdge.Core.Collections
Type: Class AbstractTTCollection
Parent Classes:
Inherits: Progress.Lang.Object
Implements: OpenEdge.Core.Collections.ICollection


Copyright (c) 2013-2017, 2021 by Progress Software Corporation. All rights reserved.
File:AbstractTTCollection
Author(s):hdaniels
Created:Sun Dec 16 22:41:40 EST 2007
Notes:This is an ABL specific abstraction that uses only dynamic
constructs to access temp-tables and buffers in order to
allow it to be reused by subclasses that have different
temp-tables.
- The most important behavioral encapsulation/reuse provided by
this is the management of the size().
Purpose: Abstract collection class
Notes: All temp-table operations are dynamic
Subclasses should define internal temp-table and pass the
handle to super the constructor. They must override
findBufferUseObject (see below) and could also override other
methods with static code for performance.



Method Summary
  Options Name Purpose
  LOGICAL Add (Object)
  LOGICAL AddAll (ICollection)
  LOGICAL AddArray (Object[])
  Clear ()
  Progress.Lang.Object Clone () /* Deep clone. or rather deep enough since we don't know what the elements' Clone() operations do, so this may end up being a memberwise clone */
  CloneElements (ICollection)
  LOGICAL Contains (Object)
  LOGICAL ContainsAll (ICollection)
  FindBufferUseObject (Object) /* override this in subclass - used by remove(obj) and others */
  LOGICAL IsEmpty ()
  OpenEdge.Core.Collections.IIterator Iterator () /* Returns a new IIterator over the collection. */
  LOGICAL Remove (Object)
  LOGICAL RemoveAll (ICollection)
  Resize () /** Recalculates the Size of this collections. Used particularly by Lists since there are operations like Remove() that are index-based and not item-based. */
  LOGICAL RetainAll (ICollection)
  Progress.Lang.Object ToArray () /* ToArray should not be used with large collections If there is too much data the ABL will throw: Attempt to update data exceeding 32000. (12371) */
  ToTable (table-handle)

Constructor Summary
  Options Name Purpose
  AbstractTTCollection () /* default public ctor for Serialization only */
  AbstractTTCollection (handle, character) /* pass temp-table handle and name of object field */
  AbstractTTCollection (handle, handle) /* pass temp-table handle and object field */
  AbstractTTCollection (ICollection, handle, character) /* pass Collection */

Property Summary
  Options Name Purpose
  INTEGER Size


Method Detail
Top

LOGICAL Add (Object)

Parameters:
newObject Progress.Lang.Object
 
Returns LOGICAL
 
Top

LOGICAL AddAll (ICollection)

Parameters:
newCollection OpenEdge.Core.Collections.ICollection
 
Returns LOGICAL
 
Top

LOGICAL AddArray (Object[])

Parameters:
objectArray Progress.Lang.Object
 
Returns LOGICAL
 
Top

Clear ()

Top

Progress.Lang.Object Clone ()

/* Deep clone. or rather deep enough since we don't know what the elements' Clone()
operations do, so this may end up being a memberwise clone
Returns Progress.Lang.Object
 
Top

CloneElements (ICollection)

Parameters:
poClone OpenEdge.Core.Collections.ICollection
 
Top

LOGICAL Contains (Object)

Parameters:
checkObject Progress.Lang.Object
 
Returns LOGICAL
 
Top

LOGICAL ContainsAll (ICollection)

Parameters:
poCollection OpenEdge.Core.Collections.ICollection
 
Returns LOGICAL
 
Top

FindBufferUseObject (Object)

/* override this in subclass - used by remove(obj) and others
Parameters:
obj Progress.Lang.Object
 
Top

LOGICAL IsEmpty ()

Returns LOGICAL
 
Top

OpenEdge.Core.Collections.IIterator Iterator ()

/* Returns a new IIterator over the collection.
Returns OpenEdge.Core.Collections.IIterator
 
Top

LOGICAL Remove (Object)

Parameters:
oldObject Progress.Lang.Object
 
Returns LOGICAL
 
Top

LOGICAL RemoveAll (ICollection)

Parameters:
collection OpenEdge.Core.Collections.ICollection
 
Returns LOGICAL
 
Top

Resize ()

Purpose: Recalculates the Size of this collections.
Used particularly by Lists since there are operations
like Remove() that are index-based and not item-based.
Top

LOGICAL RetainAll (ICollection)

Parameters:
oCol OpenEdge.Core.Collections.ICollection
 
Returns LOGICAL
 
Top

Progress.Lang.Object ToArray ()

/* ToArray should not be used with large collections
If there is too much data the ABL will throw:
Attempt to update data exceeding 32000. (12371)
Returns Progress.Lang.Object
 
Top

ToTable (table-handle)

Parameters:
tt TABLE-HANDLE
 


Constructor Detail
Top

AbstractTTCollection ()

/* default public ctor for Serialization only
Top

AbstractTTCollection (handle, character)

/* pass temp-table handle and name of object field
Parameters:
phtt HANDLE
 
pcField CHARACTER
 
Top

AbstractTTCollection (handle, handle)

/* pass temp-table handle and object field
Parameters:
phtt HANDLE
 
hField HANDLE
 
Top

AbstractTTCollection (ICollection, handle, character)

/* pass Collection
Parameters:
poCol OpenEdge.Core.Collections.ICollection
 
phtt HANDLE
 
pcField CHARACTER
 


Property Detail
Top

INTEGER Size

Returns INTEGER