00001 #ifndef FdoBulkCopyMappingProperty_H
00002 #define FdoBulkCopyMappingProperty_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 <Fdo.h>
00022 #include <Fdo/Expression/DataValue.h>
00023 #include <common/Xml/SaxHandler.h>
00024 #include <Utilities/FdoBulkCopy.h>
00025
00026 ///<summary>The FdoBulkCopyMappingProperty class specified which properties are copied.</summary>
00027 class FdoBulkCopyMappingProperty: public FdoIDisposable, public FdoXmlSaxHandler
00028 {
00029 public:
00030
00031 ///<summary>Constructs a default empty instance of a FdoBulkCopyMappingProperty.</summary>
00032 /// <returns>Returns FdoBulkCopyMappingProperty</returns>
00033 FDOBULKCOPY_API static FdoBulkCopyMappingProperty* Create();
00034
00035 ///<summary>Sets the source property name.</summary>
00036 /// <param name="propertyName">The property name</param>
00037 /// <returns>Returns nothing</returns>
00038 FDOBULKCOPY_API void SetSourcePropertyName(FdoString* propertyName);
00039
00040 ///<summary>Gets the source property name.</summary>
00041 /// <returns>Returns the source property name</returns>
00042 FDOBULKCOPY_API FdoString* GetSourcePropertyName();
00043
00044 ///<summary>Sets the target property name.</summary>
00045 /// <param name="propertyName">The target name</param>
00046 /// <returns>Returns nothing</returns>
00047 FDOBULKCOPY_API void SetTargetPropertyName(FdoString* propertyName);
00048
00049 ///<summary>Gets the target property name.</summary>
00050 /// <returns>Returns the target property name</returns>
00051 FDOBULKCOPY_API FdoString* GetTargetPropertyName();
00052
00053 ///<summary>Sets the default value. Only used if the source property name is not set and the target property name is set.</summary>
00054 /// <param name="value">The default value</param>
00055 /// <returns>Returns nothing</returns>
00056 FDOBULKCOPY_API void SetDefaultValue(FdoDataValue* value);
00057
00058 ///<summary>Gets the default value.</summary>
00059 /// <returns>Returns the defalut value</returns>
00060 FDOBULKCOPY_API FdoDataValue* GetDefaultValue();
00061
00062 protected:
00063 FdoBulkCopyMappingProperty();
00064 virtual ~FdoBulkCopyMappingProperty();
00065 virtual void Dispose();
00066
00067 private:
00068 FdoStringP mSourceProperty;
00069 FdoStringP mTargetProperty;
00070 FdoPtr<FdoDataValue> mDefaultValue;
00071 };
00072
00073 #endif