// Copyright (c) 2005 DMTF.  All rights reserved.
   [Association, Abstract, Aggregation, Version ( "2.7.0" ), 
    UMLPackagePath ( "CIM::Policy" ), 
    Description ( 
       "PolicyConditions may be aggregated into rules and into "
       "compound conditions. PolicyConditionStructure is the abstract "
       "aggregation class for the structuring of policy conditions. \n"
       "\n"
       "The Conditions aggregated by a PolicyRule or "
       "CompoundPolicyCondition are grouped into two levels of lists: "
       "either an ORed set of ANDed sets of conditions (DNF, the "
       "default) or an ANDed set of ORed sets of conditions (CNF). "
       "Individual PolicyConditions in these lists may be negated. The "
       "property ConditionListType specifies which of these two "
       "grouping schemes applies to a particular PolicyRule or "
       "CompoundPolicyCondition instance. \n"
       "\n"
       "One or more PolicyTimePeriodConditions may be among the "
       "conditions associated with a PolicyRule or "
       "CompoundPolicyCondition via the PolicyConditionStructure "
       "subclass association. In this case, the time periods are "
       "simply additional Conditions to be evaluated along with any "
       "others that are specified." )]
class CIM_PolicyConditionStructure : CIM_PolicyComponent {

      [Aggregate, Override ( "GroupComponent" ), 
       Description ( 
          "This property represents the Policy that contains one or "
          "more PolicyConditions." )]
   CIM_Policy REF GroupComponent;

      [Override ( "PartComponent" ), 
       Description ( 
          "This property holds the name of a PolicyCondition "
          "contained by one or more PolicyRule or "
          "CompoundPolicyCondition instances." )]
   CIM_PolicyCondition REF PartComponent;

      [Description ( 
          "Unsigned integer indicating the group to which the "
          "contained PolicyCondition belongs. This integer segments "
          "the Conditions into the ANDed sets (when the "
          "ConditionListType is \"DNF\") or, similarly, into the "
          "ORed sets (when the ConditionListType is \"CNF\")." )]
   uint16 GroupNumber;

      [Description ( 
          "Indication of whether the contained PolicyCondition is "
          "negated. TRUE indicates that the PolicyCondition IS "
          "negated, FALSE indicates that it IS NOT negated." )]
   boolean ConditionNegated;


};
