version 1.13, 2001/05/20 20:33:58
|
version 1.25.2.1, 2001/08/01 11:17:35
|
|
|
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
// | // |
// Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM |
// Copyright (c) 2000, 2001 The Open group, BMC Software, Tivoli Systems, IBM |
// | // |
// Permission is hereby granted, free of charge, to any person obtaining a |
// Permission is hereby granted, free of charge, to any person obtaining a copy |
// copy of this software and associated documentation files (the "Software"), |
// of this software and associated documentation files (the "Software"), to |
// to deal in the Software without restriction, including without limitation |
// deal in the Software without restriction, including without limitation the |
// the rights to use, copy, modify, merge, publish, distribute, sublicense, |
// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or |
// and/or sell copies of the Software, and to permit persons to whom the |
// sell copies of the Software, and to permit persons to whom the Software is |
// Software is furnished to do so, subject to the following conditions: |
// furnished to do so, subject to the following conditions: |
// | // |
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
// THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN |
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
// ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED |
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL |
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT |
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR |
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN |
// DEALINGS IN THE SOFTWARE. |
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
// | // |
//============================================================================== | //============================================================================== |
// | // |
|
|
PEGASUS_NAMESPACE_BEGIN | PEGASUS_NAMESPACE_BEGIN |
| |
class CIMConstClass; | class CIMConstClass; |
|
class CIMObject; |
| |
/** The CIMClass class is used to represent CIM classes in Pegasus. In CIM, | /** The CIMClass class is used to represent CIM classes in Pegasus. In CIM, |
a class object may be a class or an associator. A CIM class must contain a | a class object may be a class or an associator. A CIM class must contain a |
|
|
association class include pointers, or references, to the two (or | association class include pointers, or references, to the two (or |
more) instances. All CIM classes can be included in one or more | more) instances. All CIM classes can be included in one or more |
associations. | associations. |
ATTN: Move the association definition elsewhere |
|
@return Boolean True if this CIM class belongs to an association; | @return Boolean True if this CIM class belongs to an association; |
otherwise, false. | otherwise, false. |
*/ | */ |
|
|
return _rep->isAssociation(); | return _rep->isAssociation(); |
} | } |
| |
/// CIMMethod isAbstract |
/** isAbstract Test if the CIMClass is abstract. |
|
@return - True if the CIMClass Object is abstract |
|
SeeAlso: Abstract |
|
*/ |
Boolean isAbstract() const | Boolean isAbstract() const |
{ | { |
_checkRep(); | _checkRep(); |
|
|
return _rep->getClassName(); | return _rep->getClassName(); |
} | } |
| |
/** CIMMethod getSuperClassName - Gets the name of the Parent |
/** getSuperClassName - Gets the name of the Parent |
@return String with parent class name. | @return String with parent class name. |
*/ | */ |
const String& getSuperClassName() const | const String& getSuperClassName() const |
|
|
return _rep->getSuperClassName(); | return _rep->getSuperClassName(); |
} | } |
| |
/** CIMMethod setSuperClassName - Sets the name of the parent class from |
/** setSuperClassName - Sets the name of the parent class from |
the input parameter. \REF{CLASSNAME}. ATTN: Define legal classnames | the input parameter. \REF{CLASSNAME}. ATTN: Define legal classnames |
@param String defining parent name. | @param String defining parent name. |
@return Throws IllegalName if superClassName argument not legal CIM | @return Throws IllegalName if superClassName argument not legal CIM |
|
|
input name if it exists in the class | input name if it exists in the class |
@param name CIMName of the qualifier | @param name CIMName of the qualifier |
to be found @return Position of the qualifier in the Class. | to be found @return Position of the qualifier in the Class. |
@return Returns index of the qualifier found or -1 if not found. |
@return Returns index of the qualifier found or PEG_NOT_FOUND |
|
if not found. |
*/ | */ |
Uint32 findQualifier(const String& name) | Uint32 findQualifier(const String& name) |
{ | { |
|
|
_checkRep(); | _checkRep(); |
return _rep->findQualifier(name); | return _rep->findQualifier(name); |
} | } |
|
/** existsQualifier - Returns true if the qualifier with the |
|
specified name exists in the class |
|
@param name String name of the qualifier object being tested. |
|
@return True if the qualifier exits. Otherwise false is returned. |
|
*/ |
|
Boolean existsQualifier(const String& name) |
|
{ |
|
_checkRep(); |
|
return _rep->existsQualifier(name); |
|
} |
|
/// |
|
Boolean existsQualifier(const String& name) const |
|
{ |
|
_checkRep(); |
|
return _rep->existsQualifier(name); |
|
} |
| |
/** getQualifier - Gets the CIMQualifier object defined | /** getQualifier - Gets the CIMQualifier object defined |
by the input parameter | by the input parameter |
|
|
return _rep->getQualifier(pos); | return _rep->getQualifier(pos); |
} | } |
| |
|
/** removeQualifier - Removes the qualifier defined by the |
|
index parameter. |
|
@param Defines the index of the qualifier to be removed. |
|
@return There is no return. |
|
@exception Throw OutOfBound exception if the index is outside |
|
the range of existing qualifier objects for this class |
|
*/ |
|
void removeQualifier(Uint32 pos) const |
|
{ |
|
_checkRep(); |
|
_rep->removeQualifier(pos); |
|
} |
|
|
/** getQualifierCount - Returns the number of qualifiers | /** getQualifierCount - Returns the number of qualifiers |
in the class. | in the class. |
@return ATTN: | @return ATTN: |
|
|
return *this; | return *this; |
} | } |
| |
/** removeProperty - Removes the property represented |
|
by the position input parameter from the class |
|
@param pos Index to the property to be removed from the |
|
findPropety method |
|
@exception Throws OutofBounds if index is not a property object |
|
*/ |
|
void removeProperty(Uint32 pos) |
|
{ |
|
_checkRep(); |
|
_rep->removeProperty(pos); |
|
} |
|
| |
/** CIMMethod findProperty - Finds the property object with the |
|
|
/** findProperty - Finds the property object with the |
name defined by the input parameter in the class. | name defined by the input parameter in the class. |
@param String parameter with the property name. | @param String parameter with the property name. |
@return position representing the property object found or -1 if the |
@return position representing the property object found or |
property is not found. |
PEG_NOT_FOUND if the property is not found. |
*/ | */ |
Uint32 findProperty(const String& name) | Uint32 findProperty(const String& name) |
{ | { |
|
|
return _rep->findProperty(name); | return _rep->findProperty(name); |
} | } |
| |
|
/** existsPropery - Determines if a property object with the |
|
name defined by the input parameter exists in the class. |
|
@parm String parameter with the property name. |
|
@return True if the property object exists. |
|
*/ |
|
Boolean existsProperty(const String& name) |
|
{ |
|
_checkRep(); |
|
return _rep->existsProperty(name); |
|
} |
|
Boolean existsProperty(const String& name) const |
|
{ |
|
_checkRep(); |
|
return _rep->existsProperty(name); |
|
} |
|
|
/** getProperty - Returns a property representing the property | /** getProperty - Returns a property representing the property |
defined by the input parameter | defined by the input parameter |
@param position for this property | @param position for this property |
|
|
return _rep->getProperty(pos); | return _rep->getProperty(pos); |
} | } |
| |
/** getProperty - Gets the count of the number of properties |
/** removeProperty - Removes the property represented |
|
by the position input parameter from the class |
|
@param pos Index to the property to be removed from the |
|
findPropety method |
|
@exception Throws OutofBounds if index is not a property object |
|
*/ |
|
void removeProperty(Uint32 pos) |
|
{ |
|
_checkRep(); |
|
_rep->removeProperty(pos); |
|
} |
|
|
|
/** getPropertyCount - Gets the count of the number of properties |
defined in the class. | defined in the class. |
@return count of number of proerties in the class | @return count of number of proerties in the class |
*/ | */ |
|
|
return *this; | return *this; |
} | } |
| |
/** findMethod - Located the method object defined by the |
/** findMethod - Locate the method object defined by the |
name input | name input |
@param String representing the name of the method to be found | @param String representing the name of the method to be found |
@return Position of the method object in the class to be used in | @return Position of the method object in the class to be used in |
|
|
return _rep->findMethod(name); | return _rep->findMethod(name); |
} | } |
| |
|
/** existsMethod - Determine if the method object defined by the |
|
name input exists |
|
@param String representing the name of the method to be found |
|
@return True if the method exists |
|
*/ |
|
Boolean existsMethod(const String& name) |
|
{ |
|
_checkRep(); |
|
return _rep->existsMethod(name); |
|
} |
|
|
|
Boolean existsMethod(const String& name) const |
|
{ |
|
_checkRep(); |
|
return _rep->existsMethod(name); |
|
} |
|
|
|
|
/** getMethod - Gets the method object defined by the | /** getMethod - Gets the method object defined by the |
input parameter. | input parameter. |
@param pos Index to the CIMMethod object to get |
@param pos Index to the method object to get |
@return Returns handle of the CIMMethod requested |
@return Returns handle of the method requested |
@exception Throws OutofBounds if the index represented by pos is greater | @exception Throws OutofBounds if the index represented by pos is greater |
than the number of methods defined in the class object | than the number of methods defined in the class object |
*/ | */ |
|
|
return _rep->getMethod(pos); | return _rep->getMethod(pos); |
} | } |
| |
/** CIMMethod getMethodCount - Count of the number of methods in the class |
/** removeMethod - Removes the method defined by the |
|
index parameter. |
|
@param Defines the index of the method to be removed. |
|
@return There is no return. |
|
@exception Throw OutOfBound exception if the index is outside |
|
the range of existing method objects for this class |
|
*/ |
|
void removeMethod(Uint32 pos) const |
|
{ |
|
_checkRep(); |
|
_rep->removeMethod(pos); |
|
} |
|
|
|
/** getMethodCount - Count of the number of methods in the class |
@return integer representing the number of methods in the class object. | @return integer representing the number of methods in the class object. |
*/ | */ |
Uint32 getMethodCount() const | Uint32 getMethodCount() const |
|
|
/// operator - ATTN: | /// operator - ATTN: |
operator int() const { return _rep != 0; } | operator int() const { return _rep != 0; } |
| |
/// CIMMethod toXML |
/** toXML - prepares an XML representation of the CIMClass object |
|
in the provided Sint8 variable. |
|
@param out Sint8 array for the XML representation |
|
*/ |
void toXml(Array<Sint8>& out) const | void toXml(Array<Sint8>& out) const |
{ | { |
_checkRep(); | _checkRep(); |
_rep->toXml(out); | _rep->toXml(out); |
} | } |
| |
/// CIMMethod print |
/** print - Prints the toXML output to cout |
|
*/ |
void print(PEGASUS_STD(ostream) &o=PEGASUS_STD(cout)) const | void print(PEGASUS_STD(ostream) &o=PEGASUS_STD(cout)) const |
{ | { |
_checkRep(); | _checkRep(); |
_rep->print(o); | _rep->print(o); |
} | } |
| |
/** CIMMethod identical - Compares with another class |
/** toMof - prepares a MOF representation of the CIMClass object |
|
in the provided Sint8 variable. |
|
@param out Sint8 array for the XML representation |
|
*/ |
|
void toMof(Array<Sint8>& out) const |
|
{ |
|
_checkRep(); |
|
_rep->toMof(out); |
|
} |
|
/** printMof - Prints the toMof output to cout |
|
*/ |
|
void printMof(PEGASUS_STD(ostream) &o=PEGASUS_STD(cout)) const |
|
{ |
|
_checkRep(); |
|
_rep->printMof(o); |
|
} |
|
|
|
|
|
/** identical - Compares with another class |
ATTN: Clarify exactly what identical means | ATTN: Clarify exactly what identical means |
@param Class object for the class to be compared | @param Class object for the class to be compared |
@return True if the classes are identical | @return True if the classes are identical |
*/ | */ |
Boolean identical(const CIMConstClass& x) const; | Boolean identical(const CIMConstClass& x) const; |
| |
/// CIMMethod clone - ATTN: |
/** Makes a deep copy (clone) of the given object. */ |
CIMClass clone() const | CIMClass clone() const |
{ | { |
return CIMClass(_rep->clone()); | return CIMClass(_rep->clone()); |
} | } |
| |
|
/** Get names of all keys of this class. */ |
void getKeyNames(Array<String>& keyNames) const | void getKeyNames(Array<String>& keyNames) const |
{ | { |
_checkRep(); | _checkRep(); |
_rep->getKeyNames(keyNames); | _rep->getKeyNames(keyNames); |
} | } |
| |
|
Boolean hasKeys() const |
|
{ |
|
_checkRep(); |
|
return _rep->hasKeys(); |
|
} |
|
|
private: | private: |
| |
CIMClass(CIMClassRep* rep) : _rep(rep) | CIMClass(CIMClassRep* rep) : _rep(rep) |
|
|
| |
CIMClassRep* _rep; | CIMClassRep* _rep; |
friend class CIMConstClass; | friend class CIMConstClass; |
|
friend class CIMObject; |
}; | }; |
| |
|
#define PEGASUS_ARRAY_T CIMClass |
|
# include "ArrayInter.h" |
|
#undef PEGASUS_ARRAY_T |
|
|
/** CIMConstClass - ATTN: define this. | /** CIMConstClass - ATTN: define this. |
| |
*/ | */ |
|
|
class PEGASUS_COMMON_LINKAGE CIMConstClass | class PEGASUS_COMMON_LINKAGE CIMConstClass |
{ | { |
public: | public: |
|
|
_rep->getKeyNames(keyNames); | _rep->getKeyNames(keyNames); |
} | } |
| |
|
Boolean hasKeys() const |
|
{ |
|
_checkRep(); |
|
return _rep->hasKeys(); |
|
} |
|
|
private: | private: |
| |
void _checkRep() const | void _checkRep() const |
|
|
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |
| |
#endif /* Pegasus_CIMClass_h */ | #endif /* Pegasus_CIMClass_h */ |
|
|
|
|