0024428: Implementation of LGPL license
[occt.git] / src / MDataStd / MDataStd_ExtStringArrayRetrievalDriver.cxx
CommitLineData
b311480e 1// Created on: 2004-09-27
2// Created by: Pavel TELKOV
973c2be1 3// Copyright (c) 2004-2014 OPEN CASCADE SAS
b311480e 4//
973c2be1 5// This file is part of Open CASCADE Technology software library.
b311480e 6//
973c2be1 7// This library is free software; you can redistribute it and / or modify it
8// under the terms of the GNU Lesser General Public version 2.1 as published
9// by the Free Software Foundation, with special exception defined in the file
10// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11// distribution for complete text of the license and disclaimer of any warranty.
b311480e 12//
973c2be1 13// Alternatively, this file may be used under the terms of Open CASCADE
14// commercial license or contractual agreement.
7fd59977 15
16#include <MDataStd_ExtStringArrayRetrievalDriver.ixx>
17
18#include <CDM_MessageDriver.hxx>
19#include <MDataStd.hxx>
20#include <PCollection_HExtendedString.hxx>
21#include <PDataStd_ExtStringArray.hxx>
22#include <TDataStd_ExtStringArray.hxx>
23
24//=======================================================================
25//function : MDataStd_ExtStringArrayRetrievalDriver
26//purpose : Constructor
27//=======================================================================
28
29MDataStd_ExtStringArrayRetrievalDriver::MDataStd_ExtStringArrayRetrievalDriver
30 ( const Handle(CDM_MessageDriver)& theMsgDriver )
31 :MDF_ARDriver(theMsgDriver)
32{}
33
34
35//=======================================================================
36//function : VersionNumber
37//purpose :
38//=======================================================================
39
40Standard_Integer MDataStd_ExtStringArrayRetrievalDriver::VersionNumber() const
41{ return 0; }
42
43
44//=======================================================================
45//function : SourceType
46//purpose :
47//=======================================================================
48
49Handle(Standard_Type) MDataStd_ExtStringArrayRetrievalDriver::SourceType() const
50{
51 static Handle(Standard_Type) sourceType = STANDARD_TYPE(PDataStd_ExtStringArray);
52 return sourceType;
53}
54
55
56//=======================================================================
57//function : NewEmpty
58//purpose :
59//=======================================================================
60
61Handle(TDF_Attribute) MDataStd_ExtStringArrayRetrievalDriver::NewEmpty() const
62{
63 return new TDataStd_ExtStringArray ();
64}
65
66
67//=======================================================================
68//function : Paste
69//purpose :
70//=======================================================================
71
72void MDataStd_ExtStringArrayRetrievalDriver::Paste
73 ( const Handle(PDF_Attribute)& Source,
74 const Handle(TDF_Attribute)& Target,
75 const Handle(MDF_RRelocationTable)& ) const
76{
77 Handle(PDataStd_ExtStringArray) S = Handle(PDataStd_ExtStringArray)::DownCast (Source);
78 Handle(TDataStd_ExtStringArray) T = Handle(TDataStd_ExtStringArray)::DownCast (Target);
79
80 Standard_Integer i, lower = S->Lower() , upper = S->Upper();
81 T->Init(lower, upper);
82
83 for(i = lower; i<=upper; i++)
84 {
85 Handle(PCollection_HExtendedString) aPExtStr = S->Value( i );
86 if ( !aPExtStr.IsNull() )
87 T->SetValue( i, aPExtStr->Convert() );
88 }
89}
90