oaConstraintGroupDef.h

Go to the documentation of this file.
00001 // *****************************************************************************
00002 // *****************************************************************************
00003 // oaConstraintGroupDef.h
00004 //
00005 // This file contains the definitions for the following classes:
00006 //      oaConstraintGroupDef
00007 //
00008 // *****************************************************************************
00009 // Except as specified in the OpenAccess terms of use of Cadence or Silicon
00010 // Integration Initiative, this material may not be copied, modified,
00011 // re-published, uploaded, executed, or distributed in any way, in any medium,
00012 // in whole or in part, without prior written permission from Cadence.
00013 //
00014 //                Copyright 2006 Cadence Design Systems, Inc.
00015 //                           All Rights Reserved.
00016 //
00017 //  $Author: dell $
00018 //  $Revision: #1 $
00019 //  $Date: 2006/12/20 $
00020 //  $State: Exp $
00021 // *****************************************************************************
00022 // *****************************************************************************
00023 
00024 
00025 
00026 #if !defined(oaConstraintGroupDef_P)
00027 #define oaConstraintGroupDef_P
00028 
00029 
00030 
00031 // *****************************************************************************
00032 // Nested includes
00033 // *****************************************************************************
00034 #include "oaCommonTypes.h"
00035 #include "oaBaseTypes.h"
00036 #include "oaBaseModTypes.h"
00037 #include "oaString.h"
00038 #include "oaType.h"
00039 #include "oaArray.h"
00040 #include "oaDomain.h"
00041 #include "oaObject.h"
00042 #include "oaSessionObject.h"
00043 
00044 
00045 
00046 // *****************************************************************************
00047 // Declare and define types in the OpenAccess namespace.
00048 // *****************************************************************************
00049 BEGIN_OA_NAMESPACE
00050 
00051 
00052 
00053 // *****************************************************************************
00054 // oaConstraintGroupTypeEnum
00055 // *****************************************************************************
00056 #define oavNumConstraintGroupTypes      11
00057 
00058 enum oaConstraintGroupTypeEnum {
00059     oacUserDefinedConstraintGroupType       = 0,
00060     oacImplicitConstraintGroupType          = 1,
00061     oacDefaultConstraintGroupType           = 2,
00062     oacFoundryConstraintGroupType           = 3,
00063     oacTaperConstraintGroupType             = 4,
00064     oacInputTaperConstraintGroupType        = 5,
00065     oacOutputTaperConstraintGroupType       = 6,
00066     oacShieldingConstraintGroupType         = 7,
00067     oacTransReflexiveConstraintGroupType    = 8,
00068     oacReflexiveConstraintGroupType         = 9,
00069     oacInterChildConstraintGroupType        = 10
00070 };
00071 
00072 
00073 
00074 // *****************************************************************************
00075 // oaConstraintGroupType
00076 // *****************************************************************************
00077 class OA_BASE_DLL_API oaConstraintGroupType {
00078 public:
00079                                 oaConstraintGroupType(oaConstraintGroupTypeEnum valueIn);
00080                                 oaConstraintGroupType(const oaString &name);
00081                                 ~oaConstraintGroupType();
00082 
00083     const oaString              &getName() const;
00084                                 operator                    oaConstraintGroupTypeEnum() const;
00085 
00086 private:
00087     static const oaString       *initNames();
00088 
00089     oaConstraintGroupTypeEnum   value;
00090 };
00091 
00092 
00093 
00094 // *****************************************************************************
00095 // oaConstraintGroupDef
00096 // *****************************************************************************
00097 class OA_BASE_DLL_API oaConstraintGroupDef : public oaSessionObject {
00098 public:
00099     static oaConstraintGroupDef *create(const oaString              &name,
00100                                         const oaManagedTypeArray    &allowedOwners,
00101                                         const oaSubset<oaDBType>    &allowedDatabases,
00102                                         oaBoolean                   uniqueInDatabase = false);
00103     static oaConstraintGroupDef *find(const oaString &name);
00104     static oaConstraintGroupDef *get(oaConstraintGroupType type);
00105 
00106     void                        destroy();
00107     void                        remove(oaObject *database);
00108 
00109     void                        getName(oaString &name) const;
00110     oaConstraintGroupType       getConstraintGroupType() const;
00111     oaBoolean                   isBuiltIn() const;
00112     oaBoolean                   isUniqueInDB() const;
00113     void                        getAllowedOwners(oaManagedTypeArray &allowedOwners) const;
00114     void                        getAllowedDatabases(oaSubset<oaDBType> &allowedDatabases) const;
00115 
00116     enum {dtIndex = oacBaseConstraintGroupDefDataType};
00117 };
00118 
00119 
00120 
00121 // *****************************************************************************
00122 // Traits
00123 // *****************************************************************************
00124 template<>
00125 class oaTraits<oaConstraintGroupDef> {
00126 public:
00127     typedef oaSessionObject         parentType;
00128     typedef oaObjectDefModTypeEnum  modTypeType;
00129     enum {domain = oacNoDomain};
00130     enum {isMultiDomain = false};
00131     enum {dbType = oacBaseDBType};
00132     enum {dtIndex = oacBaseConstraintGroupDefDataType};
00133     enum {isConcrete = true};
00134     enum {objectTypeEnumVal = oacConstraintGroupDefType};
00135     enum {dataTypeEnumVal = oacBaseConstraintGroupDefDataType};
00136 };
00137 
00138 END_OA_NAMESPACE
00139 
00140 #endif

Return to top of page