FDO .NET API Reference Feature Data Objects

mgIRasterPropertyDictionaryImp.h

Go to the documentation of this file.
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.