00001 /*
00002 * Copyright (C) 2004-2006 Autodesk, Inc.
00003 *
00004 * This library is free software; you can redistribute it and/or
00005 * modify it under the terms of version 2.1 of the GNU Lesser
00006 * General Public License as published by the Free Software Foundation.
00007 *
00008 * This library is distributed in the hope that it will be useful,
00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00011 * Lesser General Public License for more details.
00012 *
00013 * You should have received a copy of the GNU Lesser General Public
00014 * License along with this library; if not, write to the Free Software
00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00016 *
00017 */
00018
00019 #pragma once
00020
00021 class FdoRdbmsOvSchemaAutoGeneration;
00022
00023 BEGIN_NAMESPACE_OSGEO_COMMON
00024 public __gc class StringCollection;
00025 END_NAMESPACE_OSGEO_COMMON
00026
00027 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00028
00029 ///<summary>
00030 ///This class provides directives for reverse-engineering FDO
00031 ///Feature Schema elements from the physical schema of the currently
00032 ///connected datastore.
00033 ///</summary>
00034 public __gc class OvSchemaAutoGeneration: public NAMESPACE_OSGEO_FDO_COMMANDS_SCHEMA::PhysicalElementMapping
00035 {
00036 public private:
00037 FdoRdbmsOvSchemaAutoGeneration* GetImpObj();
00038
00039 OvSchemaAutoGeneration(System::IntPtr unmanaged, System::Boolean autoDelete);
00040
00041 public:
00042 ///<summary>Creates a set of schema autogeneration settings.
00043 ///</summary>
00044 ///<returns>Returns OvSchemaAutoGeneration</returns>
00045 OvSchemaAutoGeneration();
00046
00047 ///<summary>Gets the table prefix for autogenerating class definitions.
00048 ///When set, an FDO Class Definition is automatically generated for
00049 ///each table whose name begins with this prefix. Any table already
00050 ///referenced by a class definition is skipped. Each generated class is
00051 ///added to the Feature Schema for this Schema Mapping Set.
00052 ///</summary>
00053 ///<returns>Returns the class autogeneration table name prefix</returns>
00054 __property System::String* get_GenTablePrefix();
00055
00056 ///<summary>
00057 ///Sets the table prefix for autogenerating class definitions.
00058 ///</summary>
00059 /// <param name="tablePrefix">
00060 /// Input the table prefix. If L"" then no
00061 /// classes will be generated by table prefix.
00062 /// </param>
00063 ///<returns>Returns nothing</returns>
00064 __property System::Void set_GenTablePrefix(System::String* tablePrefix);
00065
00066 ///<summary>Gets the table prefix removal setting. This setting affects
00067 ///how classes, generated from tables matching the table prefix, are named:
00068 /// * when true, the class name is the table name with prefix removed.
00069 /// true is the default setting.
00070 /// * when false, the class name is the table name.
00071 ///</summary>
00072 ///<returns>Returns Boolean.</returns>
00073 __property System::Boolean get_RemoveTablePrefix();
00074
00075 ///<summary>Sets the "remove table prefix" setting.</summary>
00076 /// <param name="removeTablePrefix">
00077 /// Input the "remove table prefix" setting.
00078 // </param>
00079 ///<returns>Returns nothing</returns>
00080 __property System::Void set_RemoveTablePrefix(System::Boolean removeTablePrefix);
00081
00082 ///<summary>Gets the list of tables or views for which class definitions
00083 ///will be autogenerated. Once retrieved, the caller can populate this
00084 ///list.
00085 ///When set, an FDO Class Definition is automatically generated for
00086 ///each table in this list. Any table already
00087 ///referenced by a class definition is skipped. Each generated class is
00088 ///added to the Feature Schema for this Schema Mapping Set.
00089 ///
00090 ///Note: the only way to autogenerate a class definition from a view
00091 ///is to add the view name to this list. There is one caveat in that
00092 ///the generated class will not have identity properties.
00093 ///</summary>
00094 ///<returns>Returns StringCollection</returns>
00095 __property NAMESPACE_OSGEO_COMMON::StringCollection* get_GenTableList();
00096
00097 ///<summary>Gets the maximum number of rows to sample when table data
00098 ///must be examined to determine schema information. The situations
00099 ///where this must be done depend on the provider. For example,
00100 ///when a geometric property is generated from a geometric column, the
00101 ///geomety types might be determined by examining some of the geometry
00102 ///values in the column.
00103 ///
00104 ///MaxSampleRows can be any positive integer or one of the following:
00105 /// * 0: all rows in the table are sampled. (Not recommended for
00106 /// large datastores).
00107 /// * -1: no rows are sampled.
00108 ///
00109 ///</summary>
00110 ///<returns>Returns Int32.</returns>
00111 __property System::Int32 get_MaxSampleRows();
00112
00113 ///<summary>Sets the maximum number of rows to sample when
00114 ///determining schema from table data. Higher values give a more
00115 ///accurate result but lower values provide better performance.</summary>
00116 /// <param name="maxRows">Input the maximum number of rows to sample.</param>
00117 ///<returns>Returns nothing</returns>
00118 __property System::Void set_MaxSampleRows(System::Int32 maxRows);
00119 };
00120
00121 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE
00122