FDO .NET API Reference | Feature Data Objects |
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 #pragma once 00018 00019 #include "FDO\Raster\mgIRasterPropertyDictionary.h" 00020 00021 class FdoIRasterPropertyDictionary; 00022 00023 BEGIN_NAMESPACE_OSGEO_FDO_RASTER 00024 00025 /// \ingroup (OSGeoFDORaster) 00026 /// \brief 00027 /// The IRasterPropertyDictionary exposes a dictionary style 00028 /// interface to the raster properties. Through this interface the 00029 /// non-standard properties of a raster image can be determined and 00030 /// their values can be retrieved and set. Data values are exchanged 00031 /// through the DataValue object to accommodate various data types, 00032 /// boolean, integer, double, string etc. 00033 private __gc class IRasterPropertyDictionaryImp: public NAMESPACE_OSGEO_RUNTIME::Disposable, public NAMESPACE_OSGEO_FDO_RASTER::IRasterPropertyDictionary 00034 { 00035 public: 00036 /// \brief 00037 /// Gets the names of all the properties that apply to this 00038 /// image as a collection of Strings. The order of the property names 00039 /// in the collection dictate the order in which they need to 00040 /// be specified. This is especially important for the success of 00041 /// the EnumeratePropertyValues method as properties that occur 00042 /// earlier in the collection may be required for successful enumeration 00043 /// of properties that appear later in the collection. 00044 /// 00045 /// \return 00046 /// A collection of the names of properties in this dictionary. 00047 /// 00048 __property NAMESPACE_OSGEO_COMMON::StringCollection* get_PropertyNames (); 00049 00050 /// \brief 00051 /// Gets the data type for the specified property. 00052 /// 00053 /// \param name 00054 /// The name of the property to get the data type of. 00055 /// 00056 /// \return 00057 /// The data type of the property. 00058 /// 00059 __property NAMESPACE_OSGEO_FDO_SCHEMA::DataType get_PropertyDataType (System::String* name); 00060 00061 /// \brief 00062 /// Gets the value of the specified property (or its default). 00063 /// 00064 /// \param name 00065 /// The name of the property to get the value of. 00066 /// 00067 /// \return 00068 /// The value of the property. 00069 /// 00070 __property NAMESPACE_OSGEO_FDO_EXPRESSION::DataValue* get_Property (System::String* name); 00071 00072 /// \brief 00073 /// Sets the value of the specified property. 00074 /// 00075 /// \param name 00076 /// The name of the property to set the value of. 00077 /// \param value 00078 /// The new value for the property. 00079 /// 00080 __property System::Void set_Property (System::String* name, NAMESPACE_OSGEO_FDO_EXPRESSION::DataValue* value); 00081 00082 /// \brief 00083 /// Gets the default value for the specified property. 00084 /// 00085 /// \param name 00086 /// The name of the property to get the default value of. 00087 /// 00088 /// \return 00089 /// The default value of the property. 00090 /// 00091 __property NAMESPACE_OSGEO_FDO_EXPRESSION::DataValue* get_PropertyDefault (System::String* name); 00092 00093 /// \brief 00094 /// Predicate to determine if the property is required to be set. 00095 /// 00096 /// \param name 00097 /// The name of the property to get the required status of. 00098 /// 00099 /// \return 00100 /// Returns true if the specified property is required, false if it is optional. 00101 /// 00102 System::Boolean IsPropertyRequired (System::String* name); 00103 00104 /// \brief 00105 /// Predicate to determine if the property is enumerable (has more than one value). 00106 /// 00107 /// \param name 00108 /// The name of the property to get the enumerable status of. 00109 /// 00110 /// \return 00111 /// Returns true if the possible values for the specified property 00112 /// can be enumerated via the GetPropertyValues method. 00113 /// 00114 System::Boolean IsPropertyEnumerable (System::String* name); 00115 00116 /// \brief 00117 /// Access the values of the specified enumerable property. 00118 /// The property must respond TRUE to IsPropertyEnumerable. 00119 /// 00120 /// \param name 00121 /// The name of the property to get the collection of values for. 00122 /// 00123 /// \return 00124 /// A collection of datavaluesfor the enumerable property. 00125 /// 00126 __property NAMESPACE_OSGEO_FDO_RASTER::DataValueCollection* get_PropertyValues (System::String* name); 00127 00128 /// \brief 00129 /// Set the values of the specified enumerable property. 00130 /// The property must respond TRUE to IsPropertyEnumerable. 00131 /// Clients will need to use SetPropertyValues when creating an image 00132 /// with specific values for the enumerable property. 00133 /// An example would be setting a table of wavelength ranges corresponding 00134 /// to the false colour used to encode the image. 00135 /// 00136 /// \param name 00137 /// The name of the property to set the collection of values for. 00138 /// \param collection 00139 /// The collection of values for the enumerable property. 00140 /// 00141 __property System::Void set_PropertyValues (System::String* name, NAMESPACE_OSGEO_FDO_RASTER::DataValueCollection* collection); 00142 00143 /// \brief 00144 /// Constructs a IRasterPropertyDictionaryImp object based on an unmanaged instance of the object 00145 /// 00146 /// \param unmanaged 00147 /// Input A Pointer to the unmanaged object. 00148 /// 00149 /// \param autoDelete 00150 /// Input Indicates if the constructed object should be automatically deleted 00151 /// once it no longer referenced. 00152 /// 00153 IRasterPropertyDictionaryImp(System::IntPtr unmanaged, System::Boolean autoDelete); 00154 00155 /// \cond DOXYGEN-IGNORE 00156 protected: 00157 System::Void ReleaseUnmanagedObject(); 00158 /// \endcond 00159 00160 public private: 00161 inline FdoIRasterPropertyDictionary* GetImpObj(); 00162 }; 00163 END_NAMESPACE_OSGEO_FDO_RASTER 00164 00165
Comments or suggestions? Send us feedback. |