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