// ===================================================================
// Title:       Core Method Parameters 2.7
// Filename:    Core27_MethodParms.mof
// Version:     2.7.0
// Release:     Final
// Date:        03/31/03
// ===================================================================
// Copyright 2001-2003 Distributed Management Task Force, Inc. (DMTF).
// All rights reserved.  
// DMTF is a not-for-profit association of industry members dedicated 
// to promoting enterprise and systems management and interoperability. 
// DMTF specifications and documents may be reproduced for uses
// consistent with this purpose by members and non-members, 
// provided that correct attribution is given. 
// As DMTF specifications may be revised from time to time, 
// the particular version and release date should always be noted.
//
// Implementation of certain elements of this standard or proposed 
// standard may be subject to third party patent rights, including 
// provisional patent rights (herein "patent rights"). DMTF makes 
// no representations to users of the standard as to the existence 
// of such rights, and is not responsible to recognize, disclose, or
// identify any or all such third party patent right, owners or 
// claimants, nor for any incomplete or inaccurate identification or 
// disclosure of such rights, owners or claimants. DMTF shall have no 
// liability to any party, in any manner or circumstance, under any 
// legal theory whatsoever, for failure to recognize, disclose, or 
// identify any such third party patent rights, or for such party's
// reliance on the standard or incorporation thereof in its product, 
// protocols or testing procedures. DMTF shall have no liability to 
// any party implementing such standard, whether such implementation 
// is foreseeable or not, nor to any patent owner or claimant, and shall 
// have no liability or responsibility for costs or losses incurred if 
// a standard is withdrawn or modified after publication, and shall be
// indemnified and held harmless by any party implementing the 
// standard from any and all claims of infringement by a patent owner 
// for such implementations.
//
// For information about patents held by third-parties which have 
// notified the DMTF that, in their opinion, such patent may relate to 
// or impact implementations of DMTF standards, visit 
// http://www.dmtf.org/about/policies/disclosures.php.
// ===================================================================
// Description: The Core Model defines basic management concepts. 
//              This file defines the values of a method's parameters.
//
//              The object classes below are listed in an order that
//              avoids forward references. Required objects, defined 
//              by other working groups, are omitted.
// ==================================================================
// Change Log for v2.7 - None
// ==================================================================

#pragma locale ("en_US")


// ================================================================== 
// MethodParameters 
// ================================================================== 
[Abstract, Version ("2.6.0"), Description (
    "  CIM_MethodParameters represents a set of values to be used "
    "as the parameters of a method. These parameters may be passed "
    "to the method, diretly used by the method in its invocation, "
    "or accessed by the method when it is called. The properties "
    "of a concrete subclass of MethodParameters are mapped to the "
    "parameters of a method by the method itself or by the method "
    "caller. This is an implementation detail independent of the "
    "definition of the class. For ease of use, property names "
    "should match parameter names. \n"
    "  Property values should be set before the method is invoked. " 
    "The ModelCorrespondence qualifier can be used to indicate " 
    "if the property value should come from another class's property. " 
    "The instances that the property values should be gleaned from " 
    "should be associated with MethodParameters using the Parameter"
    "ValueSources association. If the property is declared as an "
    "array, then the same property value (identified by the Model"
    "Correspondence) will be retrieved from all appropriate "
    "ParameterValueSources instances and stored in the array. If "
    "the property is declared as an array and the Model"
    "Correspondence is to an array property, then only one instance "
    "of the array will be copied from one ParameterValueSource. " 
    "If the property is not declared as an array and there are " 
    "multiple instances of the class and property associated with " 
    "it through ModelCorrespondence where the values are not all "
    "the same, then an error will occur and the property's value "
    "will not be set. Several MethodParameters instances can be "
    "associated with any ManagedElement's methods. This allows the " 
    "maintenance of 'canned' method invocation and reduces the " 
    "overhead of recreating all method parameters for every method " 
    "invocation.") ] 
class CIM_MethodParameters : CIM_ManagedElement { 
    
    [Maxlen (256) , Description ( 
        "The identifier by which the MethodParameters object is "
        "known.") ]
    string MethodParametersId; 
    
    [Description ( 
        "The resetValues method updates the values of the properties "
        "of MethodParameters which have ModelCorrespondence to the " 
        "SourceME ManagedElement. This allows the association of " 
        "several source candidates with the MethodParameters with " 
        "one being chosen as the source for this set of values. " 
        "If resetValues is invoked and sourceME is null, then all " 
        "associated MEs in ParameterValueSources will be used " 
        "to set the values of the MethodParameters properties.") ]
     uint32 ResetValues(
         [IN] CIM_ManagedElement REF SourceME); 
}; 


// =================================================================== 
// ParameterValueSources 
// =================================================================== 
[Association, Version ("2.6.0"), Description ( 
    "ParameterValueSources represents the association between " 
    "a MethodParameters instance and the ManagedElement instances " 
    "which contain properties to be used to create values " 
    "for the MethodParameters properties.") ] 
class CIM_ParameterValueSources {        
      
    [Key, Description ( 
        "The MethodParameters instance whose property values "
        "are to be set.") ] 
    CIM_MethodParameters REF Parameters; 
    
    [Key, Description (
        "The ManagedElement which contains properties to be used " 
        "to populate the values of the properties of the "
        "MethodParameters instance.") ] 
    CIM_ManagedElement REF ValueSource; 
}; 


// =================================================================== 
// ParametersForMethod 
// =================================================================== 
[Association, Version ("2.6.0"), Description ( 
    "ParametersForMethod represents the association between "
    "MethodParameters class(es) and a ManagedElement which has a "
    "method that may use the MethodParameters during its "
    "invocation. This association is optional, as the Method"
    "Parameters instance may be passed as a parameter to a method " 
    "or used to create a method signature before the method is "
    "invoked. This association is useful for finding all the valid "
    "MethodParameters instances for a particular method. It may "
    "be particularly useful for user-oriented interfaces and "
    "automated or policy driven method invocations.") ] 
class CIM_ParametersForMethod {       
    
    [Key, Description (
        "The MethodParameters instance which may be used by the "
        "ParametersForMethod's method invocation.") ]
    CIM_MethodParameters REF Parameters;
    
    [Key, Description ("The ManagedElement which has "
        "a method that may use this instance of MethodParameters.") ]
    CIM_ManagedElement REF TheMethod;
    
    [Key, MaxLen(64),Description ("The name of the method that "
        "may use the referenced instance of MethodParameters during "
        "its invocation.") ]
    string MethodName;
}; 


// ===================================================================
// end of file
// ===================================================================
