// Copyright (c) 2005 DMTF.  All rights reserved.
   [Association, Version ( "2.6.0" ), 
    UMLPackagePath ( "CIM::Core::StorageExtent" ), 
    Description ( 
       "BasedOn is an association describing how StorageExtents can be "
       "assembled from lower level Extents. For example, "
       "ProtectedSpaceExtents are parts of PhysicalExtents, while "
       "VolumeSets are assembled from one or more Physical or "
       "ProtectedSpaceExtents. As another example, CacheMemory can be "
       "defined independently and realized in a PhysicalElement or can "
       "be \'based on\' Volatile or NonVolatileStorageExtents." )]
class CIM_BasedOn : CIM_Dependency {

      [Override ( "Antecedent" ), 
       Description ( "The lower level StorageExtent." )]
   CIM_StorageExtent REF Antecedent;

      [Override ( "Dependent" ), 
       Description ( "The higher level StorageExtent." )]
   CIM_StorageExtent REF Dependent;

      [Description ( 
          "StartingAddress indicates where in lower level storage, "
          "the higher level Extent begins." )]
   uint64 StartingAddress;

      [Description ( 
          "EndingAddress indicates where in lower level storage, "
          "the higher level Extent ends. This property is useful "
          "when mapping non-contiguous Extents into a higher level "
          "grouping." )]
   uint64 EndingAddress;

      [Description ( 
          "If there is an order to the BasedOn associations that "
          "describe how a higher level StorageExtent is assembled, "
          "the OrderIndex property indicates this. When an order "
          "exists, the instances of BasedOn with the same Dependent "
          "value (i.e., the same higher level Extent) should place "
          "unique values in the OrderIndex property. The lowest "
          "value implies the first member of the collection of "
          "lower level Extents, and increasing values imply "
          "successive members of the collection. If there is no "
          "ordered relationship, a value of zero should be "
          "specified. An example of the use of this property is to "
          "define a RAID-0 striped array of 3 disks. The resultant "
          "RAID array is a StorageExtent that is dependent on "
          "(BasedOn) the StorageExtents that describe each of the 3 "
          "disks. The OrderIndex of each BasedOn association from "
          "the disk Extents to the RAID array could be specified as "
          "1, 2 and 3 to indicate the order in which the disk "
          "Extents are used to access the RAID data." )]
   uint16 OrderIndex;


};
