00001 #ifndef FDO_SqlServerOVPROPERTYMAPPINGRELATION_H
00002 #define FDO_SqlServerOVPROPERTYMAPPINGRELATION_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 <Rdbms/Override/RdbmsOvPropertyMappingConcrete.h>
00022 #include <Rdbms/Override/SQLServerSpatial/SqlServerOv.h>
00023 #include <Rdbms/Override/SQLServerSpatial/SqlServerOvPropertyMappingDefinition.h>
00024
00025 class FdoSqlServerOvClassDefinition;
00026
00027 /// \brief
00028 /// Abstract class defining the physical schema overrides for relation type object property
00029 /// table mappings.
00030 class FdoSqlServerOvPropertyMappingRelation : public FdoSqlServerOvPropertyMappingDefinition, public virtual FdoRdbmsOvPropertyMappingRelation
00031 {
00032
00033 public:
00034
00035 /// \brief
00036 /// Gets the internal class
00037 ///
00038 /// \return
00039 /// Returns the internal class
00040 ///
00041 FDOSQLSERVER_OV_API FdoSqlServerOvClassDefinition* GetInternalClass();
00042
00043 /// \brief
00044 /// Sets the internal class
00045 ///
00046 /// \return
00047 /// Returns nothing
00048 ///
00049 FDOSQLSERVER_OV_API void SetInternalClass(FdoSqlServerOvClassDefinition* classDefinition);
00050
00051 protected:
00052 FdoSqlServerOvPropertyMappingRelation();
00053 virtual ~FdoSqlServerOvPropertyMappingRelation();
00054
00055 /// Creates and optionally attaches an internal class override object.
00056 virtual FdoRdbmsOvClassDefinition* CreateInternalClass(
00057 bool attach
00058 );
00059 };
00060
00061 /// \brief
00062 /// FdoSqlServerOvPropertyMappingRelationP is a FdoPtr on FdoSqlServerOvPropertyMappingRelation, provided for convenience.
00063 typedef FdoPtr<FdoSqlServerOvPropertyMappingRelation> FdoSqlServerOvPropertyMappingRelationP;
00064
00065 #endif
00066
00067