Package Class

A Package object corresponds to a Package element in the Enterprise Architect Project Browser. Packages can be accessed either through the Repository Models collection (a Model is a special form of Package) or through the Package Packages collection.

Note that a Package has an Element object as an attribute; this corresponds to an Enterprise Architect Package element in the t_object table and is used to associate additional information (such as scenarios and constraints) with the logical Package.

To set additional information for a Package, reference the Element object directly. Also note that if you add a Package to a diagram, you should add an instance of the element (not the Package itself) to the DiagramObject Class for a diagram.

Associated table in .EAP file

t_package

Package Attributes

Attribute

Remarks

See also

Alias

String

Notes: Read only

Alias

BatchLoad

Long

Notes: Read/Write

Flag to indicate that the Package is batch loaded during batch import from controlled Packages.

Not currently used.

BatchSave

Long

Notes: Read/Write

Boolean value to indicate whether the Package is included in the batch XMI export list or not.

CodePath

String

Notes: Read/Write

The path where associated source code is found.

Not currently used.

Connectors

Collection

Notes: Read only

The collection of connectors.

Collection Class

Created

Date

Notes: Read/Write

Date the Package was created.

Diagrams

Collection

Notes: Read only

A collection of diagrams contained in this Package.

Collection Class

Element

Element

Notes: Read only

The associated element object; use to get/set common information such as Stereotype, Complexity, Alias, Author, Constraints, Tagged Values and Scenarios.

Element Class

Elements

Collection

Notes: Read only

A collection of elements that belong to this Package.

Collection Class

Flags

String

Notes: Read/Write

Extended information about the Package.

IsControlled

Boolean

Notes: Read/Write

Indicates if the Package has been marked as Controlled.

IsModel

Boolean

Notes: Read only

Indicates if the Package is a model or a Package.

IsNamespace

Boolean

Notes: Read/Write

True indicates that 'Package is a Namespace root'.

Use 0 and 1 to set False and True.

IsProtected

Boolean

Notes: Read/Write

Indicates if the Package has been marked as 'Protected'.

IsVersionControlled

Boolean

Notes: Read only

Indicates whether or not this Package is under version control.

LastLoadDate

Date

Notes: Read/Write

The date XML was last loaded for the Package.

LastSaveDate

Date

Notes: Read/Write

The date XML was last saved from the Package.

LogXML

Boolean

Notes: Read/Write

Indicates if XMI export information is to be logged.

Modified

Date

Notes: Read/Write

Date the Package was last modified.

Name

String

Notes: Read/Write

The name of the Package.

Notes

String

Notes: Read/Write

Notes about this Package.

ObjectType

ObjectType

Notes: Read only

Distinguishes objects referenced through a Dispatch interface.

ObjectType

Owner

String

Notes: Read/Write.

The Package owner when using controlled Packages.

PackageGUID

Variant

Notes: Read only

The global Package ID; valid across models.

PackageID

Long

Notes: Read only

The local Package ID number.

Valid only in this model file.

Packages

Collection

Notes: Read only

A collection of contained Packages that can be walked through.

Collection Class

ParentID

Long

Notes: Read/Write

The ID of the Package that is the parent of this one.

0 indicates that this Package is a model (that is, it has no parent).

TreePos

Long

Notes: Read/Write

The relative position in the tree compared to other Packages (use to sort Packages).

UMLVersion

String

Notes: Read/Write

The UML version for XMI export purposes.

UseDTD

Boolean

Notes: Read/Write

Indicates if a DTD is to be used when exporting XMI.

Version

String

Notes: Read/Write

The version of the Package.

XMLPath

String

Notes: Read/Write

The path to which the XML is saved when using controlled Packages.

Package Methods

Method

Remarks

See also

ApplyGroupLock (string aGroupName)

Boolean

Notes: Applies a group lock to the Package object, for the specified group, on behalf of the current user.

Returns True if the operation is successful; returns False if the operation is unsuccessful. Use GetLastError() to retrieve error information.

Parameters:

  • aGroupName: String - The name of the security group for which to apply the lock

ApplyGroupLockRecursive (string aGroupName, boolean IncludeElements, boolean IncludeDiagrams, boolean IncludeSubPackages)

Boolean

Notes: Applies a group lock to the Package object, object, and all of the Package, diagrams and elements contained within that Package, for the specified group, on behalf of the current user.

Returns True if the operation is successful; returns False if the operation is unsuccessful. Use 'GetLastError()' to retrieve error information.

Parameters

  • aGroupName: String - The name of the security group for which to apply the lock
  • IncludeElements: Boolean - Recursively apply group lock to child elements
  • IncludeDiagrams: Boolean - Recursively apply group lock to child diagrams
  • IncludeSubPackages: Boolean - Recursively apply group lock to child Packages

ApplyUserLock ()

Boolean

Notes: Applies a user lock to the Package object for the current user.

Returns True if the operation is successful; returns False if the operation is unsuccessful. Use 'GetLastError()' to retrieve error information.

ApplyUserLockRecursive (boolean IncludeElements,
boolean IncludeDiagrams,
boolean IncludeSubPackages)

Boolean

Notes: Applies user locks to the Package object, and all of the Packages, diagrams and elements contained within that Package.

Returns True if the operation is successful; returns False if the operation is unsuccessful. Use GetLastError() to retrieve error information.

Parameters

  • IncludeElements: Boolean - Recursively apply user lock to child elements
  • IncludeDiagrams: Boolean - Recursively apply user lock to child diagrams
  • IncludeSubPackages: Boolean - Recursively apply user lock to child Packages

Clone

LDISPATCH

Notes: Inserts a copy of the Package into the same parent as the original Package.

Returns the newly-created Package.

FindObject (string DottedID)

LPDISPATCH

Notes: Returns a Package, element, attribute or operation matching the parameter DottedID.

If the DottedID is not found, an error is returned: Can't find matching object.

Parameters

  • DottedID: String - Is in the form 'object.object.object' where object is replaced by the name of a Package, element attribute or operation; examples include MyNamespace.Class1, CStudent.m_Name, MathClass.DoubleIt(int)

GetLastError ()

String

Notes: Returns a string value describing the most recent error that occurred in relation to this object.

ReleaseUserLock ()

Boolean

Notes: Removes an existing User or Group lock from the Package object.

Returns True if the operation is successful; returns False if the operation is unsuccessful. Use GetLastError() to retrieve error information.

ReleaseUserLockRecursive ()

Boolean

Notes: Releases user locks and group locks from the Package object, and all of the Packages, diagrams and elements contained within that Package.

Returns True if the operation is successful; returns False if the operation is unsuccessful. Use GetLastError() to retrieve error information.

SetReadOnly (boolean ReadOnly, boolean IncludeSubPkgs)

Void

Notes: Sets a Package Flag to mark a Package as ReadOnly=1.

If Project Security is enabled, the user must have Configure Packages permission to use this method.

Throws an exception if the operation fails due to the user not having Configure Packages permission; use 'GetLastError()' to retrieve error information.

Parameters

  • ReadOnly: Boolean - Sets or clears the Read Only flag on the Package(s); if:

                            False, any Read Only flag is removed from the Package

                            True, a Read Only flag is applied to the Package

  • IncludeSubPkgs: Boolean - Indicates whether to set/reset the Read Only flag on just the object Package, or on the object Package and all of the nested sub-Packages that it contains; if:

                            False, only the flag on the object Package is set or cleared

                            True, flags are set (or cleared, according to the ReadOnly parameter) for the object Package plus all of the nested sub-Packages that it contains

When working with version controlled Packages, the Read Only flag can be applied to Packages whether they are checked-in or checked-out.

User Security applies to setting this flag - if you are prevented from editing the Package, you are also prevented from setting the flag.

Update ()

Boolean

Notes: Updates the current Package object after modification or appending a new item.

If False is returned, check the 'GetLastError()' function for more information.

Note that a Package object also has an element component that must be taken into account; the Package object contains information about the Package attributes such as hierarchy or contents.

The element attribute contains information about, for example, Stereotypes, Constraints or Files - all the attributes of a typical element.

VersionControlAdd (string ConfigGuid, string XMLFile, string Comment, boolean KeepCheckedOut)

Void

Notes: Places the Package under version control, using the specified Version Control Configuration and the specified XMI filename.

Throws an exception if the operation fails; use GetLastError() to retrieve error information.

It is recommended that the Package be saved using Update() before calling VersionControlAdd(), so that any outstanding changes are not lost.

Parameters

  • ConfigGuid: String - Name corresponding to the Unique ID of the version control configuration to use
  • XMLFile: String - Name of the XML file to use for this Package; this filename is relative to the Working Copy folder specified for the Config
  • Comment: String - Log message that is added to the version controlled file's history (where applicable)
  • KeepCheckedOut: Boolean - Specify True to add to version control and keep the Package checked-out

VersionControlCheckin (string Comment)

Void

Notes: Perform checkin of the version controlled Package (also see VersionControlCheckinEx).

Throws an exception if the operation fails; use GetLastError() to retrieve error information.

Parameters

  • Comment: String - Log message that is added to the version controlled file's history (where applicable)

VersionControlCheckinEx (string Comment,
boolean PreserveCrossPkgRefs)

Void

Notes: Perform checkin of the version controlled Package.

Throws an exception if the operation fails; use GetLastError() to retrieve error information.

Parameters

  • Comment: String - Log message that is added to the version controlled file's history (where applicable)
  • PreserveCrossPkgRefs: Boolean - Flag to indicate whether to preserve or discard pre-existing Cross Package References when checking-in; this parameter overrides the setting in the 'Options' dialog, 'XML Specifications' page
    Unsatisfied cross-Package references are preserved or discarded according to this setting, without prompting the user; see Learn more

VersionControlCheckout (string Comment)

Void

Notes: Perform checkout of the version controlled Package.

Throws an exception if the operation fails; use GetLastError() to retrieve error information.

Parameters:

  • Comment: String - Log message that is added to the version controlled file's history (where applicable)

When working in an environment that uses a Private Model deployment and your model contains a significant number of cross-Package references, it is recommended that you invoke the Repository.ScanXMIAndReconcile() method from time to time, following the re-importation of controlled Packages - for example, after using Package.VersionControlGetLatest() to update a number of Packages, or after performing a number of Package check-outs.

VersionControlGetLatest (boolean ForceImport)

Void

Notes: Updates the local working copy of the Package file associated with the object Package, before re-importing the Package data from the Package file.

Parameters:

  • ForceImport: Boolean - Used if the Package data in the model is found to be up-to-date with respect to the version controlled Package file; if:
         -  False, the Package data that exists in the model is accepted as being up-to-date and no attempt is made to re-import data from the Package file
         -  True, the system re-imports the Package from the Package file regardless

See also the version control menu option 'Get Latest'.

When working in an environment that uses a Private Model deployment and your model contains a significant number of cross-Package references, it is recommended that you invoke the 'Repository.ScanXMIAndReconcile()' method from time to time, following the re-importation of controlled Packages - for example, after using 'Package.VersionControlGetLatest()' to update a number of Packages, or after performing a number of Package check-outs.

VersionControlGetStatus ()

Long

Notes: Returns the version control status of the Package, as recorded in the current  project database.

Throws an exception if the operation fails; use GetLastError() to retrieve error information.

Return value maps to this enumerated type:

     enum EnumCheckOutStatus

     {

          csUncontrolled = 0,

          csCheckedIn,

          csCheckedOutToThisUser,

          csReadOnlyVersion,

          csCheckedOutToAnotherUser,

          csOfflineCheckedIn,

          csCheckedOutOfflineByUser,

          csCheckedOutOfflineByOther,

          csDeleted,

     };

  • csUncontrolled - Either unable to communicate with the version control provider associated with the Package, or the Package file is unknown to the provider
  • csCheckedIn - The Package is not checked-out to anybody in the current project database
  • csCheckedOutToThisUser - The Package is marked as checked-out to the current user, in the current project database
  • csReadOnlyVersion - The Package is marked as read-only; an earlier revision of the  Packagehas been retrieved from version control
  • csCheckedOutToAnotherUser - The Package is marked as checked-out in the current project database, by a user other than the current user
  • csOfflineCheckedIn - The Package is not checked-out to anybody in the current project database; however, the version control configuration associated with the Package was unable to connect to the VC server
  • csCheckedOutOfflineByUser - The Package was 'checked out' in this database, by this user, whilst disconnected from version control
  • csCheckedOutOfflineByOther - The Package was checked out in this project database, by another user, whilst disconnected from version control
  • csDeleted - The Package file has been deleted from version control

VersionControlPutLatest (string CheckInComment)

Void

Notes: Perform a checkin of the version controlled Package, whilst keeping the Package checked-out.

Throws an exception if the operation fails; use GetLastError() to retrieve error information.

When a Package that was previously marked as Checked Out Offline, is successfully 'Put' (checkedin) to version control, that Package's flags are updated to clear the Checked Out Offline indicator.

Parameters:

  • Comment: String - Log message added to the version controlled file's history (where applicable)

VersionControlRemove ()

Void

Notes: Removes version control from the Package.

Throws an exception if the operation fails; use 'GetLastError()' to retrieve error information.

VersionControlResynchPkgStatus (boolean ClearSettings)

Notes: Synchronizes the version control status of the single object Package recorded in your current model with the Package status reported by your version control provider.

Parameters:

  • ClearSettings: Boolean - used if the Package file associated with the specified Package is reported by the version control provider as uncontrolled; if ClearSettings is:

                               True, the version control settings are cleared from the Package

                               False, the version control settings remain unchanged

Learn more