00001 #ifndef FDO_SqlServerOvColumn_H
00002 #define FDO_SqlServerOvColumn_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/SQLServerSpatial/SqlServerOv.h>
00022 #include <Rdbms/Override/RdbmsOvColumn.h>
00023
00024 /// \brief
00025 /// Concrete class defining physical schema overrides for a column.
00026 class FdoSqlServerOvColumn : public FdoRdbmsOvColumn
00027 {
00028
00029 public:
00030 /// \brief
00031 /// Constructs a default of an FdoSqlServerOvColumn
00032 ///
00033 /// \return
00034 /// Returns FdoSqlServerOvColumn
00035 ///
00036 FDOSQLSERVER_OV_API static FdoSqlServerOvColumn* Create();
00037
00038 /// \brief
00039 /// Constructs an instance of an FdoSqlServerOvColumn using the specified arguments
00040 ///
00041 /// \param name
00042 /// Input name
00043 ///
00044 /// \return
00045 /// Returns FdoSqlServerOvColumn
00046 ///
00047 FDOSQLSERVER_OV_API static FdoSqlServerOvColumn* Create(FdoString* name);
00048
00049 /// \brief
00050 /// Gets the SQL Server formula for this column
00051 ///
00052 /// \remarks
00053 /// An empty string denotes that there is no formula for this column;
00054 /// otherwise, the column's value is computed based on the formula.
00055 ///
00056 /// \return
00057 /// Returns the SQL Server formula
00058 ///
00059 FDOSQLSERVER_OV_API FdoString* GetFormula();
00060
00061 /// \brief
00062 /// Sets the SQL Server formula for this column
00063 ///
00064 /// \remarks
00065 /// An empty string denotes that there is no formula for this column;
00066 /// otherwise, the column's value is computed based on the formula.
00067 ///
00068 /// \return
00069 /// Returns nothing
00070 ///
00071 FDOSQLSERVER_OV_API void SetFormula(FdoString* formula);
00072
00073 /// \cond DOXYGEN-IGNORE
00074
00075 /// XML serialization functions, not part of the API.
00076
00077 /// Initialize this element from its XML attributes
00078 virtual void InitFromXml(FdoXmlSaxContext* pContext, FdoXmlAttributeCollection* attrs);
00079
00080 /// \endcond
00081
00082 protected:
00083 FdoSqlServerOvColumn();
00084 FdoSqlServerOvColumn(FdoString* name);
00085 virtual ~FdoSqlServerOvColumn();
00086 virtual void Dispose();
00087
00088 /// Serialize this property to XML.
00089 virtual void _writeXmlContents(FdoXmlWriter* xmlWriter, const FdoXmlFlags* flags);
00090
00091 private:
00092 FdoStringP mFormula;
00093 };
00094
00095 /// \brief
00096 /// FdoSqlServerOvColumnP is a FdoPtr on FdoSqlServerOvColumn, provided for convenience.
00097 typedef FdoPtr<FdoSqlServerOvColumn> FdoSqlServerOvColumnP;
00098
00099 #endif
00100
00101