00001 #ifndef FDO_SqlServerOVASSOCIATIONPROPERTYDEFINITION_H
00002 #define FDO_SqlServerOVASSOCIATIONPROPERTYDEFINITION_H
00003 /*
00004 * Copyright (C) 2004-2008 Autodesk, Inc.
00005 *
00006 * This library is free software; you can redistribute it and/or
00007 * modify it under the terms of version 2.1 of the GNU Lesser
00008 * General Public License as published by the Free Software Foundation.
00009 *
00010 * This library is distributed in the hope that it will be useful,
00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00013 * Lesser General Public License for more details.
00014 *
00015 * You should have received a copy of the GNU Lesser General Public
00016 * License along with this library; if not, write to the Free Software
00017 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00018 *
00019 */
00020
00021 #include <FdoCommon.h>
00022 #include <Rdbms/Override/SQLServerSpatial/SqlServerOv.h>
00023 #include <Rdbms/Override/SQLServerSpatial/SqlServerOvPropertyDefinitionCollection.h>
00024 #include <Rdbms/Override/RdbmsOvAssociationPropertyDefinition.h>
00025
00026
00027 /// \brief
00028 /// Concrete class defining physical schema overrides for an association property
00029 /// definition.
00030 class FdoSqlServerOvAssociationPropertyDefinition : public FdoSqlServerOvPropertyDefinition, public FdoRdbmsOvAssociationPropertyDefinition
00031 {
00032 public:
00033 /// \brief
00034 /// Constructs a default of an FdoSqlServerOvAssociationPropertyDefinition
00035 ///
00036 /// \return
00037 /// Returns FdoSqlServerOvAssociationPropertyDefinition
00038 ///
00039 FDOSQLSERVER_OV_API static FdoSqlServerOvAssociationPropertyDefinition* Create();
00040
00041 /// \brief
00042 /// Constructs an instance of an FdoSqlServerOvAssociationPropertyDefinition using the specified arguments
00043 ///
00044 /// \param name
00045 /// Input name
00046 ///
00047 /// \return
00048 /// Returns FdoSqlServerOvAssociationPropertyDefinition
00049 ///
00050 FDOSQLSERVER_OV_API static FdoSqlServerOvAssociationPropertyDefinition* Create(FdoString* name);
00051
00052 /// \brief
00053 /// Gets a collection of property definitions
00054 ///
00055 /// \return
00056 /// Returns a collection of property definitions
00057 ///
00058 FDOSQLSERVER_OV_API FdoSqlServerOvPropertyDefinitionCollection *GetIdentityProperties();
00059
00060 protected:
00061 FdoSqlServerOvAssociationPropertyDefinition();
00062 FdoSqlServerOvAssociationPropertyDefinition(FdoString* name);
00063 virtual ~FdoSqlServerOvAssociationPropertyDefinition();
00064 virtual void Dispose();
00065
00066 private:
00067 void Init();
00068 FdoSqlServerOvPropertiesP mPropertyDefinitions;
00069 };
00070
00071 #endif
00072
00073