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