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 FdoShpOvPhysicalSchemaMapping;
00022
00023 BEGIN_NAMESPACE_OSGEO_FDO_PROVIDERS_SHP_OVERRIDE
00024 public __gc class ClassCollection;
00025 public __gc class ClassDefinition;
00026
00027 /// <summary>
00028 /// PhysicalSchemaMapping is the concrete class that
00029 /// defines the physical schema mappings for a SHP Provider logical schema.
00030 /// </summary>
00031 public __gc class PhysicalSchemaMapping : public NAMESPACE_OSGEO_FDO_COMMANDS_SCHEMA::PhysicalSchemaMapping
00032 {
00033 public:
00034 /// <summary>Constructs a new managed physical schema mapping object.</summary>
00035 PhysicalSchemaMapping();
00036
00037 /// <summary>Constructs a physical schema mapping instance using the
00038 /// result returned from IConnection::CreateSchemaMapping OR using the result of
00039 /// executing an IDescribeSchemaMapping command. This constructor is provided
00040 /// in order that clients are provided a mechanism to downcast from the FDO
00041 /// PhysicalSchemaMapping base class to an FDO Provider specific class
00042 /// that derives from PhysicalSchemaMapping. This constructor is the only
00043 /// mechanism provided by the FDO Managed API that will allow the client to correctly
00044 /// construct a provider specific PhysicalSchemaMapping class.
00045 /// NOTE: If the Provider name associated to the input parameter schemaMapping does not
00046 /// correspond to the provider name of the expected FDO Provider, and InvalidArgumentException
00047 /// will be thrown.
00048 /// </summary>
00049 PhysicalSchemaMapping(NAMESPACE_OSGEO_FDO_COMMANDS_SCHEMA::PhysicalSchemaMapping* schemaMapping, System::Boolean autoDelete);
00050
00051 public:
00052 /// <summary>Retrieves the list of classes for whom physical schema mappings have been specified.</summary>
00053 /// <returns>Returns the set of classes as a Class Collection.</returns>
00054 __property NAMESPACE_OSGEO_FDO_PROVIDERS_SHP_OVERRIDE::ClassCollection* get_Classes();
00055
00056 /// <summary>Helper method to find a class mapping that maps to a given shapefile</summary>
00057 /// <returns>Returns the Class Definition corresponding to the shape file name.</returns>
00058 NAMESPACE_OSGEO_FDO_PROVIDERS_SHP_OVERRIDE::ClassDefinition* FindByShapefile(System::String* shapeFilePath);
00059
00060 /// <summary>Helper method to find a class mapping that maps to a given classname </summary>
00061 /// <returns>Returns the Class Definition corresponding to the class name.</returns>
00062 NAMESPACE_OSGEO_FDO_PROVIDERS_SHP_OVERRIDE::ClassDefinition* FindByClassName(System::String* class_name);
00063
00064 public private:
00065 PhysicalSchemaMapping(System::IntPtr unmanaged, System::Boolean autoDelete);
00066
00067 inline FdoShpOvPhysicalSchemaMapping* GetImpObj();
00068 };
00069
00070 END_NAMESPACE_OSGEO_FDO_PROVIDERS_SHP_OVERRIDE