00001 /*
00002 * (C) Copyright 2005 by Autodesk, Inc. All Rights Reserved.
00003 *
00004 * By using this code, you are agreeing to the terms and conditions of
00005 * the License Agreement included in the documentation for this code.
00006 *
00007 * AUTODESK MAKES NO WARRANTIES, EXPRESS OR IMPLIED, AS TO THE
00008 * CORRECTNESS OF THIS CODE OR ANY DERIVATIVE WORKS WHICH INCORPORATE
00009 * IT. AUTODESK PROVIDES THE CODE ON AN "AS-IS" BASIS AND EXPLICITLY
00010 * DISCLAIMS ANY LIABILITY, INCLUDING CONSEQUENTIAL AND INCIDENTAL
00011 * DAMAGES FOR ERRORS, OMISSIONS, AND OTHER PROBLEMS IN THE CODE.
00012 *
00013 * Use, duplication, or disclosure by the U.S. Government is subject
00014 * to restrictions set forth in FAR 52.227-19 (Commercial Computer
00015 * Software Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
00016 * (Rights in Technical Data and Computer Software), as applicable.
00017 *
00018 * Revision Control Modification History
00019 *
00020 * $Id$
00021 * $Author$
00022 * $DateTime$
00023 * $Change$
00024 *
00025 */
00026
00027 #pragma once
00028
00029 class FdoRfpRasterLocationCollection;
00030
00031 BEGIN_NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE
00032 public __gc class RasterLocation;
00033 public __gc class RasterDefinition;
00034
00035 /// <summary> Concrete class defining a collection of FDO class definitions
00036 /// with overrides in the physical schema.</summary>
00037 [System::Reflection::DefaultMemberAttribute("RealTypeItem")]
00038 public __sealed __gc class RasterLocationCollection : public NAMESPACE_OSGEO_RUNTIME::Disposable, public System::Collections::IList
00039 {
00040 private:
00041 /// <summary>
00042 /// nested class defined to provide Enumerator.
00043 /// </summary>
00044 __gc class Enumerator : public System::Collections::IEnumerator
00045 {
00046 private:
00047 RasterLocationCollection* m_pCol;
00048 System::Int32 m_nIdx;
00049
00050 public:
00051 Enumerator(RasterLocationCollection* elements) : m_pCol(elements), m_nIdx(-1)
00052 {
00053
00054 }
00055
00056 __property System::Object* get_Current();
00057
00058 System::Boolean MoveNext();
00059
00060 System::Void Reset();
00061 };
00062
00063 public private:
00064 RasterLocationCollection(System::IntPtr unmanaged, System::Boolean autoDelete);
00065
00066 inline FdoRfpRasterLocationCollection* GetImpObj();
00067
00068 protected:
00069 __sealed System::Void ReleaseUnmanagedObject();
00070
00071 private:
00072 // System::Collections::ICollection interfaces
00073 System::Void System::Collections::ICollection::CopyTo(System::Array* array,System::Int32 index);
00074
00075 __property System::Object* System::Collections::ICollection::get_SyncRoot();
00076
00077 __property System::Boolean System::Collections::ICollection::get_IsSynchronized();
00078
00079 //System::Collections::IList interfaces
00080 __property System::Boolean System::Collections::IList::get_IsFixedSize();
00081
00082 __property System::Boolean System::Collections::IList::get_IsReadOnly();
00083
00084 System::Int32 System::Collections::IList::Add(Object* value);
00085
00086 System::Boolean System::Collections::IList::Contains(Object* value);
00087
00088 System::Int32 System::Collections::IList::IndexOf(Object* value);
00089
00090 System::Void System::Collections::IList::Insert(System::Int32 index, Object* value);
00091
00092 System::Void System::Collections::IList::Remove(Object* value);
00093
00094 __property Object* System::Collections::IList::get_Item(System::Int32 index);
00095
00096 __property System::Void System::Collections::IList::set_Item(System::Int32 index, Object* value);
00097
00098 public:
00099 /// <summary>Constructs a new empty collection of Raster Band Definition.</summary>
00100 /// <param name="parent">Input parent object</param>
00101 RasterLocationCollection(NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterDefinition* parent);
00102
00103 /// <summary>
00104 /// Gets the count of items in collection.
00105 /// </summary>
00106 __property System::Int32 get_Count(System::Void);
00107
00108 /// <summary>
00109 /// Gets an enumerator that can iterate through a collection.
00110 /// </summary>
00111 __sealed System::Collections::IEnumerator* GetEnumerator(System::Void);
00112
00113 /// <summary>
00114 /// Removes the index-th RasterLocation from this collection.
00115 /// </summary>
00116 /// <param name="index">
00117 /// Input index of the element to remove.
00118 /// </param>
00119 System::Void RemoveAt(System::Int32 index);
00120
00121 /// <summary>
00122 /// Removes all elements from the collection.
00123 /// </summary>
00124 System::Void Clear();
00125
00126 /// <summary>
00127 /// Adds a RasterLocation object into the collection.
00128 /// </summary>
00129 /// <param name="value">
00130 /// Input the RasterLocation object to add.
00131 /// </param>
00132 /// <returns>
00133 /// Returns the position into which the new element was inserted.
00134 /// </returns>
00135 System::Int32 Add(NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* value);
00136
00137 /// <summary>
00138 /// Determines the index of a specific RasterLocation object.
00139 /// </summary>
00140 /// <param name="value">
00141 /// Input the RasterLocation object to locate in the collection.
00142 /// </param>
00143 /// <returns>
00144 /// The index of value if found in the collection; otherwise, -1.
00145 /// </returns>
00146 System::Int32 IndexOf(NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* value);
00147
00148 System::Int32 IndexOf(System::String* name);
00149
00150 /// <summary>
00151 /// Inserts a RasterLocation object into the collection at the specified position.
00152 /// </summary>
00153 /// <param name="index">
00154 /// Input the zero-based index at which value should be inserted.
00155 /// </param>
00156 /// <param name="value">
00157 /// Input the RasterLocation object to insert.
00158 /// </param>
00159 System::Void Insert(System::Int32 index, NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* value);
00160
00161 /// <summary>
00162 /// Removes the first occurrence of a specific RasterLocation object.
00163 /// </summary>
00164 /// <param name="value">
00165 /// Input the RasterLocation object to remove from the collection.
00166 /// </param>
00167 System::Void Remove(NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* value);
00168
00169 /// <summary>
00170 /// Determines whether the collection contains a specific RasterLocation object.
00171 /// </summary>
00172 /// <param name="value">
00173 /// Input The RasterLocation object to search in the collection.
00174 /// </param>
00175 /// <returns>
00176 /// Returns true if the value is found in the collection; otherwise, false.
00177 /// </returns>
00178 System::Boolean Contains(NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* value);
00179
00180 System::Boolean Contains(System::String* name);
00181
00182 /// <summary>
00183 /// Copies the elements of the collection to an array.
00184 /// </summary>
00185 /// <param name="array">
00186 /// Output the one-dimensional Array that is the destination of the elements copied from this collection.
00187 /// </param>
00188 /// <param name="startAt">
00189 /// Input an integer that represents the index in array at which copying begins.
00190 /// </param>
00191 System::Void CopyTo(NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* array[],System::Int32 size);
00192
00193 //this is a hedious workaround for a bug in VS2002.
00194 /// <summary>
00195 /// Gets or sets a RasterLocation in the collection.
00196 /// </summary>
00197 /// <param name="index">
00198 /// Input index of the RasterLocation to retrieve or set (System::Int32).
00199 /// </param>
00200 __property NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* get_RealTypeItem(System::Int32 index);
00201
00202 __property System::Void set_RealTypeItem(System::Int32 index, NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* value);
00203
00204 __property NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* get_Item(System::Int32 index);
00205
00206 __property System::Void set_Item(System::Int32 index, NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE::RasterLocation* value);
00207 };
00208
00209 END_NAMESPACE_AUTODESK_GIS_FDO_PROVIDERS_RASTERFILE_OVERRIDE