00001 #ifndef FdoBulkCopyMappingClass_H
00002 #define FdoBulkCopyMappingClass_H
00003 //
00004
00005 //
00006 // Copyright (C) 2004-2006 Autodesk, Inc.
00007 //
00008 // This library is free software; you can redistribute it and/or
00009 // modify it under the terms of version 2.1 of the GNU Lesser
00010 // General Public License as published by the Free Software Foundation.
00011 //
00012 // This library is distributed in the hope that it will be useful,
00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00015 // Lesser General Public License for more details.
00016 //
00017 // You should have received a copy of the GNU Lesser General Public
00018 // License along with this library; if not, write to the Free Software
00019 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00020
00021 #include <Utilities/FdoBulkCopy.h>
00022 #include <Fdo/Filter/Filter.h>
00023 #include <Utilities/BulkCopy/FdoBulkCopyMappingPropertyCollection.h>
00024
00025 ///<summary>The FdoBulkCopyMappingClass class specified which classes are copied.</summary>
00026 class FdoBulkCopyMappingClass: public FdoIDisposable, public FdoXmlSaxHandler {
00027
00028 public:
00029
00030 ///<summary>Constructs a default empty instance of a FdoBulkCopyMappingClass.</summary>
00031 /// <returns>Returns FdoBulkCopyMappingClass</returns>
00032 FDOBULKCOPY_API static FdoBulkCopyMappingClass* Create();
00033
00034 ///<summary>Sets the source class name.</summary>
00035 /// <param name="className">The source class name</param>
00036 /// <returns>Returns nothing</returns>
00037 FDOBULKCOPY_API void SetSourceClassName(FdoString* className);
00038
00039 ///<summary>Gets the source class name.</summary>
00040 /// <returns>Returns the source class name</returns>
00041 FDOBULKCOPY_API FdoString* GetSourceClassName();
00042
00043 ///<summary>Sets the target class name.</summary>
00044 /// <param name="className">The target class name</param>
00045 /// <returns>Returns nothing</returns>
00046 FDOBULKCOPY_API void SetTargetClassName(FdoString* className);
00047
00048 ///<summary>Gets the target class name.</summary>
00049 /// <returns>Returns the target class name</returns>
00050 FDOBULKCOPY_API FdoString* GetTargetClassName();
00051
00052 ///<summary>Sets the filter.</summary>
00053 /// <param name="filter">The filter</param>
00054 /// <returns>Returns nothing</returns>
00055 FDOBULKCOPY_API void SetFilter(FdoFilter* filter);
00056
00057 ///<summary>Gets the filter.</summary>
00058 /// <returns>Returns the filter</returns>
00059 FDOBULKCOPY_API FdoFilter* GetFilter();
00060
00061 ///<summary>Gets the mapping properties. Returns an empty FdoBulkCopyMappingClassCollection
00062 ///collection if ReadXML is not called. Otherwise, returns the mapping data from the XML
00063 ///mapping file. An empty collection will copy all the classes from the source datastore.
00064 ///If a subset of the classes should be copied, a FdoBulkCopyMappingClass object should
00065 // be added to the collection for each class. </summary>
00066 /// <returns>Returns the mapping properties</returns>
00067 FDOBULKCOPY_API FdoBulkCopyMappingPropertyCollection* GetMappingProperties();
00068
00069 protected:
00070 FdoBulkCopyMappingClass();
00071 virtual ~FdoBulkCopyMappingClass();
00072 virtual void Dispose();
00073
00074 private:
00075 FdoStringP mSourceClassName;
00076 FdoStringP mTargetClassName;
00077 FdoPtr<FdoBulkCopyMappingPropertyCollection> mProperties;
00078 FdoPtr<FdoFilter> mFilter;
00079 };
00080
00081 #endif