Persistate API documentation
Environment Class
NamespacesPersistateEnvironment

[This is preliminary documentation and is subject to change.]

Environments are the major subdivisions of Domains.
Declaration Syntax
C#
public class Environment : Persistent, 
	IMetaReferable
Members
All MembersMethodsPropertiesFieldsEvents



IconMemberDescription
AccessUri
The Uri used by Persistate Servers to provide service for Packages hosted in the Environment.

AccessUriKey
Key value for access uri index.

Adopt(Persistent, IReference%, Int32)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
Adopted
Occurs when this object is adopted as a contained (not associated) child object of another object.
(Inherited from Persistent.)
AnnotationSeparator
This string is used to separate the text in NominativeText and DiscriminativeText properties
(Inherited from Persistent.)
Associate(Persistent, IReference%, Int32)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
Associated
Occurs when this object is taken as an associated child object of another object.
(Inherited from Persistent.)
AssociatorCount()()()()
Gets the number of associations made to this object.
(Inherited from Persistent.)
AvailablePackages
The set of Packages imported into the environment. Also contains all the ProductPackages in the Environment.

AvailablePackagesCount
Gets the number of items in the AvailablePackages collection.

BaseClassReference(Persistent, Reference)
Here only to allow consistent use of new keyword in generated classes. Always throws an exception.
(Inherited from Persistent.)
BuildNames(List<(Of <<'(String>)>>))
Builds a list of names for use in creating a MetaReference to this object or a contained object.

CallTree(CallTreeData, Int32)
In derived classes, calls a particular delegate for every node in a persistent tree.
(Inherited from Persistent.)
CallTree(CallTreeData)
Starts a recursive descent of the persistent containment tree from this object, calling a delegate for every node in the tree below this object.
(Inherited from Persistent.)
Class
Gets the ObjectClass object associated with this object.
(Overrides Persistent.Class.)
ClassFlags
Gets the class flags for the Environment class.
(Overrides Persistent.ClassFlags.)
Clone()()()()
Creates a copy of this object.
(Inherited from Persistent.)
Collection()()()()
Creates a Environment collection to contain provisional objects.

Collection(Persistent, FlagSet, Int32, Boolean)
Creates a Environment collection to contain persistent objects.

ContainingEnvironment
Gets the Environment that this object is contained within.
(Inherited from Persistent.)
CopyFrom(Persistent)
Copies values of fields from another Persistent of the same type.
(Inherited from Persistent.)
CopyTransientFrom(Persistent)
Allows derived classes to copy transient data when CopyFrom is called.
(Inherited from Persistent.)
Database
Gets the Database containing this Environment object.
(Overrides Persistent.Database.)
DeAssociateFrom(Persistent, Int32)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
Deleted
This event occurs when an object is deleted.
(Inherited from Persistent.)
DeleteVolatile(IReference)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
DePersist(Object)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
DePersistFrom(IPersistateList, Object)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
DeReference(Persistent)
Returns this object.
(Inherited from Persistent.)
DeReferenceSection(String)
Dereferences a section in a MetaReference by returning the object indexed by the given collection indicator and name

DiscriminativeText
Gets a string containing values of discriminative properties.
(Overrides Persistent.DiscriminativeText.)
Disowned
Occurs when this object is disowned from being a contained (not associated) child object of another object.
(Inherited from Persistent.)
Dissociated
Occurs when this object is removed from being an associated child object of another object.
(Inherited from Persistent.)
Equals(Persistent)
Determines if this Persistent is equal to another.
(Inherited from Persistent.)
Equals(Object)
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
FillFromDatabase(Database, IDataReader)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
FillFromMessage(Message)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
Finalize()()()()
Allows an Object to attempt to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection.
(Inherited from Object.)
FindClass(String, String)
Finds the PersistentClass in this environment with a particular Package and class name.

FindClass(String)
Finds the PersistentClass in this environment with a particular fully qualified name.

GetAssociators()()()()
Gets a collection of all objects which have associations to this object.
(Inherited from Persistent.)
GetChildren<(Of <<'(T>)>>)(IndexedList<(Of <<'(T>)>>), ObjectClass, FlagSet, Int32, String, array<Object>[]()[][])
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
GetChildren<(Of <<'(T>)>>)(IndexedList<(Of <<'(T>)>>), ObjectClass, String, array<Object>[]()[][])
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
GetDefaultLayout()()()()
Finds the default layout for this object. This will always be of layout type Form.
(Inherited from Persistent.)
GetFieldValue(Int32)
Gets the value of the field backing the member with a particular slot number.
(Overrides Persistent.GetFieldValue(Int32).)
GetHashCode()()()()
Serves as a hash function for a particular type.
(Inherited from Object.)
GetKey(Int32)
Returns property value for given key number.
(Overrides Persistent.GetKey(Int32).)
GetMemberValue(Int32)
Gets the value of the member property with a particular slot number.
(Overrides Persistent.GetMemberValue(Int32).)
GetSelected<(Of <<'(T>)>>)(IndexedList<(Of <<'(T>)>>), ObjectClass, array<Object>[]()[][])
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
GetType()()()()
Gets the Type of the current instance.
(Inherited from Object.)
HoldingDatabase
The Database holding the Environment object and by default the persistent tree under it.

InitialiseMembers(Boolean, Boolean)
In derived classes, initialises members of the Persistent object.
(Inherited from Persistent.)
IsAttached
Determines whether this object is attached to the persistent tree.
(Inherited from Persistent.)
IsDistributedFrom(Persistent)
Determines whether this object is held or is to be held in a different Database than another object.
(Inherited from Persistent.)
IsEmpty
Determines whether this is the Empty object of its class, as returned by the EmptyObject property.
(Inherited from Persistent.)
IsForeign
Gets a value determining whether this object is originally from a Domain other than the local Domain.
(Inherited from Persistent.)
IsInvalid
Gets a value indicating the validity of the current state of this object.
(Inherited from Persistent.)
IsModified
Gets a value indicating whether this object has been modified
(Inherited from Persistent.)
IsPersisted
Gets a value indicating whether the object has been persisted in a Database.
(Inherited from Persistent.)
IsProvisional
Gets a value indicating whether this object is still provisional - has not been persisted in a Database.
(Inherited from Persistent.)
ItsObjectClass
Gets the ObjectClass object associated with this class.

locker
This object is used to synchronise fetches of contained objects and collections in generated code.
(Inherited from Persistent.)
MemberwiseClone()()()()
Creates a shallow copy of the current Object.
(Inherited from Object.)
Modified
Occurs when an object is modified.
(Inherited from Persistent.)
Move(String, Persistent, String)
Moves this object from its current parent object to a new one.
(Inherited from Persistent.)
Move(String, Persistent, String, Int32)
Moves this object from its current parent object to a new one, optionally inserting it at a particular position in a collection.
(Inherited from Persistent.)
Name
The name of the Environment, used to index it in the Environments collection.

NameKey
Key value for name index.

NominativeText
Gets a string containing values of nominative properties.
(Overrides Persistent.NominativeText.)
ObjectNumber
This returns the object number part of the object's Reference.
(Inherited from Persistent.)
OnModified()()()()
Raises events signalling that the current object has been modified.
(Inherited from Persistent.)
OwningDomain
Gets the Domain to which this object originally belongs.
(Inherited from Persistent.)
Parent
This returns the parent object of this one.
(Inherited from Persistent.)
ParentReference
Gets a Reference to this object's parent object.
(Inherited from Persistent.)
Permits
The set of Permitsdefined in the Environment to secure the contents.

PermitsCount
Gets the number of items in the Permits collection.

PreviousVersion
Returns the previous version of this object.
(Inherited from Persistent.)
ProductPackages
The Packages produced in this Environment.

ProductPackagesCount
Gets the number of items in the ProductPackages collection.

Refresh()()()()
Gets the current value of this object from persistent storage.
(Inherited from Persistent.)
RefreshAndLock()()()()
Gets the current value of this object from persistent storage and sets a database lock.
(Inherited from Persistent.)
RefreshTree()()()()
Refreshes the entire persistent containment tree under this object.
(Inherited from Persistent.)
RestoreUnmodified(Boolean)
Restores the values of an object's members to those of the previous version.
(Inherited from Persistent.)
RootEntryPoints
Contains one EntryPoint for each singleton in each Package in the Environment's AvailablePackages collection.

RootEntryPointsCount
Gets the number of items in the RootEntryPoints collection.

SaveToDatabase(Database, Reference, Object)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
SaveToMessage(Message)
Saves this Persistent object to a Message.
(Inherited from Persistent.)
SaveToMessage(Message, Boolean)
Saves this Persistent object to a Message.
(Inherited from Persistent.)
SetFieldValue(Int32, Object)
Sets the value of the field backing the member with a particular slot number.
(Overrides Persistent.SetFieldValue(Int32, Object).)
SetMemberFromMessage(Int32, Int32, Message)
This method is intended for use only from generated code, and you should not use it in open code.
(Inherited from Persistent.)
SetMemberValue(Int32, Object)
Sets the value of the member property with a particularn slot number.
(Overrides Persistent.SetMemberValue(Int32, Object).)
SetModified()()()()
Signals to Persistate that an object has been modified.
(Inherited from Persistent.)
SetModifiedSynced()()()()
Signals to Persistate that an object has been modified. The call is protected by a lock on this object.
(Inherited from Persistent.)
StoreInDatabase(Database)
Marks this object so that it will be stored in a particular Database.
(Inherited from Persistent.)
ThisObj
This property is used in binding combo box selected values. It returns the current object.
(Inherited from Persistent.)
TitleText
Gets a title for this object.
(Inherited from Persistent.)
ToMetaReference()()()()
Creates a MetaReference referring to this object, if possible.
(Inherited from Persistent.)
ToMetaReference(Boolean)
Creates an environment relative MetaReference referring to this object, if possible.
(Inherited from Persistent.)
ToReference()()()()
Obtains a Reference to this Object.
(Inherited from Persistent.)
ToString()()()()
Obtains a string describing the object.
(Inherited from Persistent.)
Traverse(String)
Traverses the persistent object graph from this object using a period delimited navigation path.
(Inherited from Persistent.)
Validate()()()()
Validates this Environment.
(Overrides Persistent.Validate()()()().)
VersionNumber
Gets the version number of this object.
(Inherited from Persistent.)
WriteTestAssociations(IClassified, Int32, CreateTestDataParameterSet)
Creates test association(s) for an associated member of this object.
(Inherited from Persistent.)
WriteTestData(Persistent, Int32, CreateTestDataParameterSet)
Fills this object with test data.
(Inherited from Persistent.)
Remarks

Environments fulfil several roles. They are containers for the Packages that are Persistate applications. An Environment has two collections of Packages. The ProductPackages collection contains the packages which have been created in this environment. An Environment is the development environment for the packages in this collection. AvailablePackages is an associated collection containing all the packages in the ProductPackages collection, plus any number of other packages which have been imported into the environment. These others will be in the ProductPackages collection of another environment, in the same or another domain.

Environments are also the root objects for all the persistent sub-trees used by its packages. When you develop or import a package in an environment, the package's defined persistent tree is instantiated within the environment. When you run the package, your application sees just this persistent tree with the defined singletons at the top, accessible through the generated "The" class.

This last facility of course begs the question of security - although it is possible, we don't want to allow any application to freely access any other's persistent data. Environments also deal with this issue, by allowing the definition of Permits. Permits allow precise access to the data within specific portions of the persistent tree, and the Operations which act on the objects within it. These permits can be granted to the Principals which represent the agents (e.g. users) which perform operations on persistent data.

Environments are also used as the unit of service for Persistate servers. This means that, at least, a particular Persistate server provides service for all the available packages in a single environment, though it may service more than one environment. Each environment has its own AccessUri used to access this service.

Inheritance Hierarchy
Object
Persistent
 Environment

Assembly: Persistate (Module: Persistate) Version: 0.6.1.20 (0.6.1.20)