// File generated by CPPExt (Transient)
//
//
//                     Copyright (C) 1991 - 2000 by  
//                      Matra Datavision SA.  All rights reserved.
//  
//                     Copyright (C) 2001 - 2004 by
//                     Open CASCADE SA.  All rights reserved.
// 
// This file is part of the Open CASCADE Technology software.
//
// This software may be distributed and/or modified under the terms and
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
// and appearing in the file LICENSE included in the packaging of this file.
//  
// This software is distributed on an "AS IS" basis, without warranty of any
// kind, and Open CASCADE SA hereby disclaims all such warranties,
// including without limitation, any warranties of merchantability, fitness
// for a particular purpose or non-infringement. Please see the License for
// the specific terms and conditions governing rights and limitations under the
// License.

#ifndef _MS_Class_HeaderFile
#define _MS_Class_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Handle_MS_Class_HeaderFile
#include <Handle_MS_Class.hxx>
#endif

#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_TColStd_HSequenceOfHAsciiString_HeaderFile
#include <Handle_TColStd_HSequenceOfHAsciiString.hxx>
#endif
#ifndef _Handle_MS_HSequenceOfField_HeaderFile
#include <Handle_MS_HSequenceOfField.hxx>
#endif
#ifndef _Handle_MS_HSequenceOfMemberMet_HeaderFile
#include <Handle_MS_HSequenceOfMemberMet.hxx>
#endif
#ifndef _Handle_TCollection_HAsciiString_HeaderFile
#include <Handle_TCollection_HAsciiString.hxx>
#endif
#ifndef _MS_Type_HeaderFile
#include <MS_Type.hxx>
#endif
#ifndef _Handle_MS_HSequenceOfClass_HeaderFile
#include <Handle_MS_HSequenceOfClass.hxx>
#endif
#ifndef _Handle_MS_HSequenceOfType_HeaderFile
#include <Handle_MS_HSequenceOfType.hxx>
#endif
#ifndef _Handle_MS_Field_HeaderFile
#include <Handle_MS_Field.hxx>
#endif
#ifndef _Handle_MS_MemberMet_HeaderFile
#include <Handle_MS_MemberMet.hxx>
#endif
class TColStd_HSequenceOfHAsciiString;
class MS_HSequenceOfField;
class MS_HSequenceOfMemberMet;
class TCollection_HAsciiString;
class MS_HSequenceOfClass;
class MS_HSequenceOfType;
class MS_Field;
class MS_MemberMet;



class MS_Class : public MS_Type {

public:
 // Methods PUBLIC
 // 


Standard_EXPORT virtual  void Validity(const Handle(TCollection_HAsciiString)& aName,const Handle(TCollection_HAsciiString)& aPackage) const = 0;


Standard_EXPORT   void Deferred(const Standard_Boolean aDeferred) ;


Standard_EXPORT   Standard_Boolean Deferred() const;


Standard_EXPORT   void Private(const Standard_Boolean aPrivate) ;


Standard_EXPORT   Standard_Boolean Private() const;


Standard_EXPORT   void Check(const Handle(TCollection_HAsciiString)& aName,const Handle(TCollection_HAsciiString)& aPackage) const;


Standard_EXPORT   void Inherit(const Handle(TCollection_HAsciiString)& aClass) ;


Standard_EXPORT   void Inherit(const Handle(MS_Class)& aClass) ;


Standard_EXPORT   void Inherit(const Handle(TCollection_HAsciiString)& aClass,const Handle(TCollection_HAsciiString)& aPackage) ;


Standard_EXPORT   Handle_MS_HSequenceOfClass GetInherits() const;

//! returns the first ancestors <br>
Standard_EXPORT   Handle_TColStd_HSequenceOfHAsciiString GetInheritsNames() const;

//! returns the full inheritance of <me> <br>
Standard_EXPORT   Handle_TColStd_HSequenceOfHAsciiString GetFullInheritsNames() ;


Standard_EXPORT   void Use(const Handle(TCollection_HAsciiString)& aClass) ;


Standard_EXPORT   void Use(const Handle(TCollection_HAsciiString)& aClass,const Handle(TCollection_HAsciiString)& aPackage) ;


Standard_EXPORT   Handle_MS_HSequenceOfType GetUses() const;


Standard_EXPORT   Handle_TColStd_HSequenceOfHAsciiString GetUsesNames() const;


Standard_EXPORT   void Field(const Handle(MS_Field)& aField) ;


Standard_EXPORT   Handle_MS_HSequenceOfField GetFields() const;


Standard_EXPORT   void Method(const Handle(MS_MemberMet)& aMethod) ;


Standard_EXPORT   Handle_MS_HSequenceOfMemberMet GetMethods() const;


Standard_EXPORT   void Raises(const Handle(TCollection_HAsciiString)& aExcept) ;


Standard_EXPORT   void Raises(const Handle(TCollection_HAsciiString)& aExcept,const Handle(TCollection_HAsciiString)& aPackage) ;


Standard_EXPORT   Handle_TColStd_HSequenceOfHAsciiString GetRaises() const;


Standard_EXPORT   void FriendMet(const Handle(TCollection_HAsciiString)& aMethod) ;


Standard_EXPORT   Handle_TColStd_HSequenceOfHAsciiString GetFriendMets() const;


Standard_EXPORT   void Friend(const Handle(TCollection_HAsciiString)& aClass) ;


Standard_EXPORT   void Friend(const Handle(TCollection_HAsciiString)& aClass,const Handle(TCollection_HAsciiString)& aPackage) ;


Standard_EXPORT   void Friend(const Handle(MS_Class)& aClass) ;


Standard_EXPORT   Handle_TColStd_HSequenceOfHAsciiString GetFriendsNames() const;


Standard_EXPORT virtual  void Incomplete(const Standard_Boolean aIncomplete) ;


Standard_EXPORT virtual  Standard_Boolean Incomplete() const;


Standard_EXPORT   void Mother(const Handle(TCollection_HAsciiString)& aMother) ;


Standard_EXPORT   Handle_TCollection_HAsciiString GetMother() const;


Standard_EXPORT   Standard_Boolean IsNested() const;


Standard_EXPORT   void NestingClass(const Handle(TCollection_HAsciiString)& aNesting) ;


Standard_EXPORT   Handle_TCollection_HAsciiString GetNestingClass() const;


Standard_EXPORT   Standard_Boolean IsPersistent() ;


Standard_EXPORT   Standard_Boolean IsTransient() ;


Standard_EXPORT   Standard_Boolean IsStorable() ;


Standard_EXPORT   Handle_TCollection_HAsciiString Comment() const;


Standard_EXPORT   void SetComment(const Handle(TCollection_HAsciiString)& aComment) ;
//Standard_EXPORT ~MS_Class();




 // Type management
 //
 Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
 //Standard_EXPORT Standard_Boolean	       IsKind(const Handle(Standard_Type)&) const;

protected:

 // Methods PROTECTED
 // 


Standard_EXPORT MS_Class(const Handle(TCollection_HAsciiString)& aName,const Handle(TCollection_HAsciiString)& aPackage);


Standard_EXPORT MS_Class(const Handle(TCollection_HAsciiString)& aName,const Handle(TCollection_HAsciiString)& aPackage,const Handle(TCollection_HAsciiString)& Mother,const Standard_Boolean aPrivate,const Standard_Boolean aDeferred,const Standard_Boolean aInComplete);


 // Fields PROTECTED
 //


private: 

 // Methods PRIVATE
 // 


 // Fields PRIVATE
 //
Standard_Boolean myIncomplete;
Standard_Boolean myDeferred;
Standard_Boolean myPrivate;
Handle_TColStd_HSequenceOfHAsciiString myInherits;
Handle_TColStd_HSequenceOfHAsciiString myUses;
Handle_MS_HSequenceOfField myFields;
Handle_MS_HSequenceOfMemberMet myMethods;
Handle_TColStd_HSequenceOfHAsciiString myRaises;
Handle_TColStd_HSequenceOfHAsciiString myFriendMets;
Handle_TColStd_HSequenceOfHAsciiString myFriends;
Handle_TCollection_HAsciiString myMother;
Handle_TCollection_HAsciiString myNestingClass;
Handle_TCollection_HAsciiString myComment;


};





// other Inline functions and methods (like "C++: function call" methods)
//


#endif
