Integration of OCCT 6.5.0 from SVN
[occt.git] / src / MDataStd / MDataStd_ExtStringArrayRetrievalDriver.cxx
CommitLineData
7fd59977 1// File: MDataStd_ExtStringArrayRetrievalDriver.cxx
2// Created: 27.09.04 08:37:09
3// Author: Pavel TELKOV
4// Copyright: Open CASCADE 2004
5
6
7#include <MDataStd_ExtStringArrayRetrievalDriver.ixx>
8
9#include <CDM_MessageDriver.hxx>
10#include <MDataStd.hxx>
11#include <PCollection_HExtendedString.hxx>
12#include <PDataStd_ExtStringArray.hxx>
13#include <TDataStd_ExtStringArray.hxx>
14
15//=======================================================================
16//function : MDataStd_ExtStringArrayRetrievalDriver
17//purpose : Constructor
18//=======================================================================
19
20MDataStd_ExtStringArrayRetrievalDriver::MDataStd_ExtStringArrayRetrievalDriver
21 ( const Handle(CDM_MessageDriver)& theMsgDriver )
22 :MDF_ARDriver(theMsgDriver)
23{}
24
25
26//=======================================================================
27//function : VersionNumber
28//purpose :
29//=======================================================================
30
31Standard_Integer MDataStd_ExtStringArrayRetrievalDriver::VersionNumber() const
32{ return 0; }
33
34
35//=======================================================================
36//function : SourceType
37//purpose :
38//=======================================================================
39
40Handle(Standard_Type) MDataStd_ExtStringArrayRetrievalDriver::SourceType() const
41{
42 static Handle(Standard_Type) sourceType = STANDARD_TYPE(PDataStd_ExtStringArray);
43 return sourceType;
44}
45
46
47//=======================================================================
48//function : NewEmpty
49//purpose :
50//=======================================================================
51
52Handle(TDF_Attribute) MDataStd_ExtStringArrayRetrievalDriver::NewEmpty() const
53{
54 return new TDataStd_ExtStringArray ();
55}
56
57
58//=======================================================================
59//function : Paste
60//purpose :
61//=======================================================================
62
63void MDataStd_ExtStringArrayRetrievalDriver::Paste
64 ( const Handle(PDF_Attribute)& Source,
65 const Handle(TDF_Attribute)& Target,
66 const Handle(MDF_RRelocationTable)& ) const
67{
68 Handle(PDataStd_ExtStringArray) S = Handle(PDataStd_ExtStringArray)::DownCast (Source);
69 Handle(TDataStd_ExtStringArray) T = Handle(TDataStd_ExtStringArray)::DownCast (Target);
70
71 Standard_Integer i, lower = S->Lower() , upper = S->Upper();
72 T->Init(lower, upper);
73
74 for(i = lower; i<=upper; i++)
75 {
76 Handle(PCollection_HExtendedString) aPExtStr = S->Value( i );
77 if ( !aPExtStr.IsNull() )
78 T->SetValue( i, aPExtStr->Convert() );
79 }
80}
81