00001 //
00002 // Copyright (C) 2004-2008 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 #pragma once
00019
00020 class FdoSqlServerOvDataPropertyDefinitionCollection;
00021
00022 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL
00023 public __gc class OvDataPropertyDefinition;
00024
00025 /// <summary> Concrete class defining a collection of FDO class definitions
00026 /// with overrides in the physical schema.</summary>
00027 [System::Reflection::DefaultMemberAttribute("RealTypeItem")]
00028 public __sealed __gc class OvDataPropertyDefinitionCollection : public NAMESPACE_OSGEO_RUNTIME::Disposable, public System::Collections::IList
00029 {
00030 private:
00031 /// <summary>
00032 /// nested class defined to provide Enumerator.
00033 /// </summary>
00034 __gc class Enumerator : public System::Collections::IEnumerator
00035 {
00036 private:
00037 OvDataPropertyDefinitionCollection* m_pCol;
00038 System::Int32 m_nIdx;
00039
00040 public:
00041 Enumerator(OvDataPropertyDefinitionCollection* elements) : m_pCol(elements), m_nIdx(-1)
00042 {
00043
00044 }
00045
00046 __property System::Object* get_Current();
00047
00048 System::Boolean MoveNext();
00049
00050 System::Void Reset();
00051 };
00052
00053 public private:
00054 OvDataPropertyDefinitionCollection(System::IntPtr unmanaged, System::Boolean autoDelete);
00055
00056 inline FdoSqlServerOvDataPropertyDefinitionCollection* GetImpObj();
00057
00058 protected:
00059 __sealed System::Void ReleaseUnmanagedObject();
00060
00061 private:
00062 // System::Collections::ICollection interfaces
00063 System::Void System::Collections::ICollection::CopyTo(System::Array* array,System::Int32 index);
00064
00065 __property System::Object* System::Collections::ICollection::get_SyncRoot();
00066
00067 __property System::Boolean System::Collections::ICollection::get_IsSynchronized();
00068
00069 //System::Collections::IList interfaces
00070 __property System::Boolean System::Collections::IList::get_IsFixedSize();
00071
00072 __property System::Boolean System::Collections::IList::get_IsReadOnly();
00073
00074 System::Int32 System::Collections::IList::Add(Object* value);
00075
00076 System::Boolean System::Collections::IList::Contains(Object* value);
00077
00078 System::Int32 System::Collections::IList::IndexOf(Object* value);
00079
00080 System::Void System::Collections::IList::Insert(System::Int32 index, Object* value);
00081
00082 System::Void System::Collections::IList::Remove(Object* value);
00083
00084 __property Object* System::Collections::IList::get_Item(System::Int32 index);
00085
00086 __property System::Void System::Collections::IList::set_Item(System::Int32 index, Object* value);
00087
00088 public:
00089 /// <summary>Constructs a new empty collection of Raster Band Definition.</summary>
00090 /// <param name="parent">Input parent object</param>
00091 OvDataPropertyDefinitionCollection();
00092
00093 OvDataPropertyDefinitionCollection(NAMESPACE_OSGEO_FDO_COMMANDS_SCHEMA::PhysicalElementMapping* parent);
00094
00095 /// <summary>
00096 /// Gets the count of items in collection.
00097 /// </summary>
00098 __property System::Int32 get_Count(System::Void);
00099
00100 /// <summary>
00101 /// Gets an enumerator that can iterate through a collection.
00102 /// </summary>
00103 __sealed System::Collections::IEnumerator* GetEnumerator(System::Void);
00104
00105 /// <summary>
00106 /// Removes the index-th OvDataPropertyDefinition from this collection.
00107 /// </summary>
00108 /// <param name="index">
00109 /// Input index of the element to remove.
00110 /// </param>
00111 System::Void RemoveAt(System::Int32 index);
00112
00113 /// <summary>
00114 /// Removes all elements from the collection.
00115 /// </summary>
00116 System::Void Clear();
00117
00118 /// <summary>
00119 /// Adds a OvDataPropertyDefinition object into the collection.
00120 /// </summary>
00121 /// <param name="value">
00122 /// Input the OvDataPropertyDefinition object to add.
00123 /// </param>
00124 /// <returns>
00125 /// Returns the position into which the new element was inserted.
00126 /// </returns>
00127 System::Int32 Add(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* value);
00128
00129 /// <summary>
00130 /// Determines the index of a specific OvDataPropertyDefinition object.
00131 /// </summary>
00132 /// <param name="value">
00133 /// Input the OvDataPropertyDefinition object to locate in the collection.
00134 /// </param>
00135 /// <returns>
00136 /// The index of value if found in the collection; otherwise, -1.
00137 /// </returns>
00138 System::Int32 IndexOf(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* value);
00139
00140 System::Int32 IndexOf(System::String* name);
00141
00142 /// <summary>
00143 /// Inserts a OvDataPropertyDefinition object into the collection at the specified position.
00144 /// </summary>
00145 /// <param name="index">
00146 /// Input the zero-based index at which value should be inserted.
00147 /// </param>
00148 /// <param name="value">
00149 /// Input the OvDataPropertyDefinition object to insert.
00150 /// </param>
00151 System::Void Insert(System::Int32 index, NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* value);
00152
00153 /// <summary>
00154 /// Removes the first occurrence of a specific OvDataPropertyDefinition object.
00155 /// </summary>
00156 /// <param name="value">
00157 /// Input the OvDataPropertyDefinition object to remove from the collection.
00158 /// </param>
00159 System::Void Remove(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* value);
00160
00161 /// <summary>
00162 /// Determines whether the collection contains a specific OvDataPropertyDefinition object.
00163 /// </summary>
00164 /// <param name="value">
00165 /// Input The OvDataPropertyDefinition object to search in the collection.
00166 /// </param>
00167 /// <returns>
00168 /// Returns true if the value is found in the collection; otherwise, false.
00169 /// </returns>
00170 System::Boolean Contains(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* value);
00171
00172 System::Boolean Contains(System::String* name);
00173
00174 /// <summary>
00175 /// Copies the elements of the collection to an array.
00176 /// </summary>
00177 /// <param name="array">
00178 /// Output the one-dimensional Array that is the destination of the elements copied from this collection.
00179 /// </param>
00180 /// <param name="startAt">
00181 /// Input an integer that represents the index in array at which copying begins.
00182 /// </param>
00183 System::Void CopyTo(NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* array[],System::Int32 size);
00184
00185 //this is a hedious workaround for a bug in VS2002.
00186 /// <summary>
00187 /// Gets or sets a OvDataPropertyDefinition in the collection.
00188 /// </summary>
00189 /// <param name="index">
00190 /// Input index of the OvDataPropertyDefinition to retrieve or set (System::Int32).
00191 /// </param>
00192 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* get_RealTypeItem(System::Int32 index);
00193 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* get_RealTypeItem(System::String* index);
00194
00195 __property System::Void set_RealTypeItem(System::Int32 index, NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* value);
00196
00197 __property NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* get_Item(System::Int32 index);
00198
00199 __property System::Void set_Item(System::Int32 index, NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL::OvDataPropertyDefinition* value);
00200 };
00201
00202 END_NAMESPACE_OSGEO_FDO_PROVIDERS_RDBMS_OVERRIDE_SQLSERVERSPATIAL