#ifndef _BinMDataStd_HeaderFile
#define _BinMDataStd_HeaderFile
-#include <Standard.hxx>
+#include <Standard_GUID.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <Standard_Integer.hxx>
+#include <BinObjMgt_Persistent.hxx>
+
class BinMDF_ADriverTable;
class CDM_MessageDriver;
class BinMDataStd_NameDriver;
class BinMDataStd_ByteArrayDriver;
class BinMDataStd_NamedDataDriver;
-
//! Storage and Retrieval drivers for modelling attributes.
class BinMDataStd
{
Standard_EXPORT static Standard_Integer DocumentVersion();
-
+template<class T>
+static void SetAttributeID(const BinObjMgt_Persistent& theSource, const Handle(T)& anAtt)
+{
+ Standard_Boolean ok = Standard_True;
+ if(BinMDataStd::DocumentVersion() > 9) { // process user defined guid
+ const Standard_Integer& aPos = theSource.Position();
+ Standard_GUID aGuid;
+ ok = theSource >> aGuid;
+ if (!ok) {
+ theSource.SetPosition(aPos);
+ anAtt->SetID(T::GetID());
+ ok = Standard_True;
+ } else {
+ anAtt->SetID(aGuid);
+ }
+ } else
+ anAtt->SetID(T::GetID());
+}
protected:
#include <BinMDataStd_BooleanArrayDriver.hxx>
+#include <BinMDataStd.hxx>
#include <BinObjMgt_Persistent.hxx>
#include <CDM_MessageDriver.hxx>
#include <Standard_Type.hxx>
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean BinMDataStd_BooleanArrayDriver::Paste(const BinObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- BinObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ BinObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd;
if (! (theSource >> aFirstInd >> aLastInd))
TColStd_Array1OfByte aTargetArray(0, (aLastInd - aFirstInd + 1) >> 3);
theSource.GetByteArray (&aTargetArray(0), aTargetArray.Length());
- Handle(TDataStd_BooleanArray) anAtt = Handle(TDataStd_BooleanArray)::DownCast(theTarget);
+ const Handle(TDataStd_BooleanArray) anAtt = Handle(TDataStd_BooleanArray)::DownCast(theTarget);
anAtt->Init(aFirstInd, aLastInd);
Handle(TColStd_HArray1OfByte) bytes = new TColStd_HArray1OfByte(aTargetArray.Lower(), aTargetArray.Upper());
Standard_Integer lower = bytes->Lower(), i = lower, upper = bytes->Upper();
bytes->SetValue(i, aTargetArray.Value(i));
}
anAtt->SetInternalArray(bytes);
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void BinMDataStd_BooleanArrayDriver::Paste(const Handle(TDF_Attribute)& theSource,
- BinObjMgt_Persistent& theTarget,
- BinObjMgt_SRelocationTable& ) const
+ BinObjMgt_Persistent& theTarget,
+ BinObjMgt_SRelocationTable& ) const
{
Handle(TDataStd_BooleanArray) anAtt = Handle(TDataStd_BooleanArray)::DownCast(theSource);
const Standard_Integer aFirstInd = anAtt->Lower();
}
Standard_Byte *aPtr = (Standard_Byte *) &aSourceArray(lower);
theTarget.PutByteArray(aPtr, upper - lower + 1);
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_BooleanArray::GetID())
+ theTarget << anAtt->ID();
}
#include <BinMDataStd_BooleanListDriver.hxx>
+#include <BinMDataStd.hxx>
#include <BinObjMgt_Persistent.hxx>
#include <CDM_MessageDriver.hxx>
#include <Standard_Type.hxx>
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean BinMDataStd_BooleanListDriver::Paste(const BinObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- BinObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ BinObjMgt_RRelocationTable& ) const
{
Standard_Integer aIndex, aFirstInd, aLastInd;
if (! (theSource >> aFirstInd >> aLastInd))
return Standard_False;
- if(aLastInd == 0) return Standard_True;
-
- const Standard_Integer aLength = aLastInd - aFirstInd + 1;
- if (aLength <= 0)
- return Standard_False;
- TColStd_Array1OfByte aTargetArray(aFirstInd, aLastInd);
- theSource.GetByteArray (&aTargetArray(aFirstInd), aLength);
const Handle(TDataStd_BooleanList) anAtt = Handle(TDataStd_BooleanList)::DownCast(theTarget);
- for (aIndex = aFirstInd; aIndex <= aLastInd; aIndex++)
- {
- anAtt->Append(aTargetArray.Value(aIndex) ? Standard_True : Standard_False);
+ if(aLastInd > 0) {
+
+ const Standard_Integer aLength = aLastInd - aFirstInd + 1;
+ if (aLength > 0) {
+ TColStd_Array1OfByte aTargetArray(aFirstInd, aLastInd);
+ theSource.GetByteArray (&aTargetArray(aFirstInd), aLength);
+ for (aIndex = aFirstInd; aIndex <= aLastInd; aIndex++)
+ {
+ anAtt->Append(aTargetArray.Value(aIndex) ? Standard_True : Standard_False);
+ }
+ }
}
+
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
}
Standard_Byte *aPtr = (Standard_Byte *) &aSourceArray(aFirstInd);
theTarget.PutByteArray(aPtr, aLength);
-}
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_BooleanList::GetID())
+ theTarget << anAtt->ID();
+}
\ No newline at end of file
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean BinMDataStd_ByteArrayDriver::Paste(const BinObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- BinObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ BinObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd;
if (! (theSource >> aFirstInd >> aLastInd))
TColStd_Array1OfByte aTargetArray(aFirstInd, aLastInd);
theSource.GetByteArray (&aTargetArray(aFirstInd), aTargetArray.Length());
- Handle(TDataStd_ByteArray) anAtt = Handle(TDataStd_ByteArray)::DownCast(theTarget);
+ const Handle(TDataStd_ByteArray) anAtt = Handle(TDataStd_ByteArray)::DownCast(theTarget);
Handle(TColStd_HArray1OfByte) bytes = new TColStd_HArray1OfByte(aFirstInd, aLastInd);
for (Standard_Integer i = aFirstInd; i <= aLastInd; i++)
{
aDelta = (aDeltaValue != 0);
}
anAtt->SetDelta(aDelta);
+
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void BinMDataStd_ByteArrayDriver::Paste(const Handle(TDF_Attribute)& theSource,
- BinObjMgt_Persistent& theTarget,
- BinObjMgt_SRelocationTable& ) const
+ BinObjMgt_Persistent& theTarget,
+ BinObjMgt_SRelocationTable& ) const
{
Handle(TDataStd_ByteArray) anAtt = Handle(TDataStd_ByteArray)::DownCast(theSource);
const Standard_Integer aFirstInd = anAtt->Lower();
Standard_Byte *aPtr = (Standard_Byte *) &aSourceArray(lower);
theTarget.PutByteArray(aPtr, bytes->Length());
theTarget << (Standard_Byte)(anAtt->GetDelta() ? 1 : 0);
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_ByteArray::GetID())
+ theTarget << anAtt->ID();
}
Standard_Boolean aDelta(Standard_False);
if(BinMDataStd::DocumentVersion() > 2) {
Standard_Byte aDeltaValue;
- if (! (theSource >> aDeltaValue)) {
- return Standard_False;
- }
+ if (! (theSource >> aDeltaValue)) {
+ return Standard_False;
+ }
else
- aDelta = (aDeltaValue != 0);
- }
+ aDelta = (aDeltaValue != 0);
+ }
anAtt->SetDelta(aDelta);
}
+
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return ok;
}
BinObjMgt_Persistent& theTarget,
BinObjMgt_SRelocationTable& ) const
{
- Handle(TDataStd_ExtStringArray) anAtt =
+ const Handle(TDataStd_ExtStringArray) anAtt =
Handle(TDataStd_ExtStringArray)::DownCast(theSource);
const TColStd_Array1OfExtendedString& aSourceArray = anAtt->Array()->Array1();
const Standard_Integer aFirstInd = aSourceArray.Lower();
theTarget << anAtt->Value( i );
theTarget << (Standard_Byte)(anAtt->GetDelta() ? 1 : 0);
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_ExtStringArray::GetID())
+ theTarget << anAtt->ID();
}
#include <BinMDataStd_ExtStringListDriver.hxx>
+#include <BinMDataStd.hxx>
#include <BinObjMgt_Persistent.hxx>
#include <CDM_MessageDriver.hxx>
#include <Standard_Type.hxx>
Standard_Integer aFirstInd, aLastInd;
if (! (theSource >> aFirstInd >> aLastInd))
return Standard_False;
- if(aLastInd == 0) return Standard_True;
- const Standard_Integer aLength = aLastInd - aFirstInd + 1;
- if (aLength <= 0)
- return Standard_False;
- const Handle(TDataStd_ExtStringList) anAtt =
- Handle(TDataStd_ExtStringList)::DownCast(theTarget);
- for (Standard_Integer i = aFirstInd; i <= aLastInd; i ++)
- {
- TCollection_ExtendedString aStr;
- if ( !(theSource >> aStr) )
- {
+
+ const Handle(TDataStd_ExtStringList) anAtt = Handle(TDataStd_ExtStringList)::DownCast(theTarget);
+ if(aLastInd > 0) {
+ const Standard_Integer aLength = aLastInd - aFirstInd + 1;
+ if (aLength <= 0)
return Standard_False;
+ for (Standard_Integer i = aFirstInd; i <= aLastInd; i ++)
+ {
+ TCollection_ExtendedString aStr;
+ if ( !(theSource >> aStr) )
+ {
+ return Standard_False;
+ }
+ anAtt->Append(aStr);
}
- anAtt->Append(aStr);
}
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
{
theTarget << itr.Value();
}
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_ExtStringList::GetID())
+ theTarget << anAtt->ID();
}
if (aLength <= 0)
return Standard_False;
- Handle(TDataStd_IntegerArray) anAtt =
+ const Handle(TDataStd_IntegerArray) anAtt =
Handle(TDataStd_IntegerArray)::DownCast(theTarget);
anAtt->Init(aFirstInd, aLastInd);
TColStd_Array1OfInteger& aTargetArray = anAtt->Array()->ChangeArray1();
cout << "Current DocVersion field is not initialized. " <<endl;
#endif
anAtt->SetDelta(aDelta);
+
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
Standard_Integer *aPtr = (Standard_Integer *) &aSourceArray(aFirstInd);
theTarget.PutIntArray (aPtr, aLength);
theTarget << (Standard_Byte)(anAtt->GetDelta() ? 1 : 0);
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_IntegerArray::GetID())
+ theTarget << anAtt->ID();
}
#include <BinMDataStd_IntegerListDriver.hxx>
+#include <BinMDataStd.hxx>
#include <BinObjMgt_Persistent.hxx>
#include <CDM_MessageDriver.hxx>
#include <Standard_Type.hxx>
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean BinMDataStd_IntegerListDriver::Paste(const BinObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- BinObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ BinObjMgt_RRelocationTable& ) const
{
Standard_Integer aIndex, aFirstInd, aLastInd;
if (! (theSource >> aFirstInd >> aLastInd))
return Standard_False;
- if(aLastInd == 0) return Standard_True;
-
- const Standard_Integer aLength = aLastInd - aFirstInd + 1;
- if (aLength <= 0)
- return Standard_False;
-
- TColStd_Array1OfInteger aTargetArray(aFirstInd, aLastInd);
- theSource.GetIntArray (&aTargetArray(aFirstInd), aLength);
-
const Handle(TDataStd_IntegerList) anAtt = Handle(TDataStd_IntegerList)::DownCast(theTarget);
- for (aIndex = aFirstInd; aIndex <= aLastInd; aIndex++)
- {
- anAtt->Append(aTargetArray.Value(aIndex));
+ if(aLastInd > 0) {
+ const Standard_Integer aLength = aLastInd - aFirstInd + 1;
+ if (aLength > 0) {
+ TColStd_Array1OfInteger aTargetArray(aFirstInd, aLastInd);
+ theSource.GetIntArray (&aTargetArray(aFirstInd), aLength);
+ for (aIndex = aFirstInd; aIndex <= aLastInd; aIndex++)
+ anAtt->Append(aTargetArray.Value(aIndex));
+ }
}
+
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
Standard_Integer *aPtr = (Standard_Integer *) &aSourceArray(aFirstInd);
theTarget.PutIntArray(aPtr, aLength);
}
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_IntegerList::GetID())
+ theTarget << anAtt->ID();
}
if (aLength <= 0)
return Standard_False;
- Handle(TDataStd_RealArray) anAtt =
+ const Handle(TDataStd_RealArray) anAtt =
Handle(TDataStd_RealArray)::DownCast(theTarget);
anAtt->Init(aFirstInd, aLastInd);
TColStd_Array1OfReal& aTargetArray = anAtt->Array()->ChangeArray1();
aDelta = (aDeltaValue != 0);
}
anAtt->SetDelta(aDelta);
+
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
Standard_Real *aPtr = (Standard_Real *) &aSourceArray(aFirstInd);
theTarget.PutRealArray (aPtr, aLength);
theTarget << (Standard_Byte)(anAtt->GetDelta() ? 1 : 0);
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_RealArray::GetID())
+ theTarget << anAtt->ID();
}
#include <BinMDataStd_RealListDriver.hxx>
+#include <BinMDataStd.hxx>
#include <BinObjMgt_Persistent.hxx>
#include <CDM_MessageDriver.hxx>
#include <Standard_Type.hxx>
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean BinMDataStd_RealListDriver::Paste(const BinObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- BinObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ BinObjMgt_RRelocationTable& ) const
{
Standard_Integer aIndex, aFirstInd, aLastInd;
if (! (theSource >> aFirstInd >> aLastInd))
return Standard_False;
- if(aLastInd == 0) return Standard_True;
-
- const Standard_Integer aLength = aLastInd - aFirstInd + 1;
- if (aLength <= 0)
- return Standard_False;
-
- TColStd_Array1OfReal aTargetArray(aFirstInd, aLastInd);
- theSource.GetRealArray (&aTargetArray(aFirstInd), aLength);
const Handle(TDataStd_RealList) anAtt = Handle(TDataStd_RealList)::DownCast(theTarget);
- for (aIndex = aFirstInd; aIndex <= aLastInd; aIndex++)
- {
- anAtt->Append(aTargetArray.Value(aIndex));
+ if(aLastInd > 0) {
+ const Standard_Integer aLength = aLastInd - aFirstInd + 1;
+ if (aLength > 0) {
+ TColStd_Array1OfReal aTargetArray(aFirstInd, aLastInd);
+ theSource.GetRealArray (&aTargetArray(aFirstInd), aLength);
+ for (aIndex = aFirstInd; aIndex <= aLastInd; aIndex++)
+ anAtt->Append(aTargetArray.Value(aIndex));
+ }
}
+
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void BinMDataStd_RealListDriver::Paste(const Handle(TDF_Attribute)& theSource,
- BinObjMgt_Persistent& theTarget,
- BinObjMgt_SRelocationTable& ) const
+ BinObjMgt_Persistent& theTarget,
+ BinObjMgt_SRelocationTable& ) const
{
const Handle(TDataStd_RealList) anAtt = Handle(TDataStd_RealList)::DownCast(theSource);
const Standard_Integer aFirstInd = (anAtt->Extent()> 0) ? 1 : 0;
Standard_Real *aPtr = (Standard_Real *) &aSourceArray(aFirstInd);
theTarget.PutRealArray(aPtr, aLength);
}
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_RealList::GetID())
+ theTarget << anAtt->ID();
}
#include <BinMDataStd_ReferenceArrayDriver.hxx>
+#include <BinMDataStd.hxx>
#include <BinObjMgt_Persistent.hxx>
#include <CDM_MessageDriver.hxx>
#include <Standard_Type.hxx>
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean BinMDataStd_ReferenceArrayDriver::Paste(const BinObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- BinObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ BinObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd;
if (! (theSource >> aFirstInd >> aLastInd))
if (aLength <= 0)
return Standard_False;
- Handle(TDataStd_ReferenceArray) anAtt = Handle(TDataStd_ReferenceArray)::DownCast(theTarget);
+ const Handle(TDataStd_ReferenceArray) anAtt = Handle(TDataStd_ReferenceArray)::DownCast(theTarget);
anAtt->Init(aFirstInd, aLastInd);
for (Standard_Integer i = aFirstInd; i <= aLastInd; i++)
{
anAtt->SetValue(i, L);
}
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void BinMDataStd_ReferenceArrayDriver::Paste(const Handle(TDF_Attribute)& theSource,
- BinObjMgt_Persistent& theTarget,
- BinObjMgt_SRelocationTable& ) const
+ BinObjMgt_Persistent& theTarget,
+ BinObjMgt_SRelocationTable& ) const
{
Handle(TDataStd_ReferenceArray) anAtt = Handle(TDataStd_ReferenceArray)::DownCast(theSource);
Standard_Integer aFirstInd = anAtt->Lower(), aLastInd = anAtt->Upper(), i = aFirstInd;
theTarget << entry;
}
}
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_ReferenceArray::GetID())
+ theTarget << anAtt->ID();
}
#include <BinMDataStd_ReferenceListDriver.hxx>
+#include <BinMDataStd.hxx>
#include <BinObjMgt_Persistent.hxx>
#include <CDM_MessageDriver.hxx>
#include <Standard_Type.hxx>
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean BinMDataStd_ReferenceListDriver::Paste(const BinObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- BinObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ BinObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd;
if (! (theSource >> aFirstInd >> aLastInd))
return Standard_False;
- if(aLastInd == 0) return Standard_True;
-
- const Standard_Integer aLength = aLastInd - aFirstInd + 1;
- if (aLength <= 0)
- return Standard_False;
const Handle(TDataStd_ReferenceList) anAtt = Handle(TDataStd_ReferenceList)::DownCast(theTarget);
- for (Standard_Integer i = aFirstInd; i <= aLastInd; i++)
- {
- TCollection_AsciiString entry;
- if ( !(theSource >> entry) )
+ if(aLastInd > 0) {
+
+ const Standard_Integer aLength = aLastInd - aFirstInd + 1;
+ if (aLength <= 0)
return Standard_False;
- TDF_Label L;
- TDF_Tool::Label(anAtt->Label().Data(), entry, L, Standard_True);
- if (!L.IsNull())
- anAtt->Append(L);
+ for (Standard_Integer i = aFirstInd; i <= aLastInd; i++)
+ {
+ TCollection_AsciiString entry;
+ if ( !(theSource >> entry) )
+ return Standard_False;
+ TDF_Label L;
+ TDF_Tool::Label(anAtt->Label().Data(), entry, L, Standard_True);
+ if (!L.IsNull())
+ anAtt->Append(L);
+ }
}
+ BinMDataStd::SetAttributeID(theSource, anAtt);
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void BinMDataStd_ReferenceListDriver::Paste(const Handle(TDF_Attribute)& theSource,
- BinObjMgt_Persistent& theTarget,
- BinObjMgt_SRelocationTable& ) const
+ BinObjMgt_Persistent& theTarget,
+ BinObjMgt_SRelocationTable& ) const
{
const Handle(TDataStd_ReferenceList) anAtt = Handle(TDataStd_ReferenceList)::DownCast(theSource);
if (anAtt.IsNull())
theTarget << entry;
}
}
+
+ // process user defined guid
+ if(anAtt->ID() != TDataStd_ReferenceList::GetID())
+ theTarget << anAtt->ID();
}
#include <TDataStd_ReferenceList.hxx>
#include <TDF_ListIteratorOfLabelList.hxx>
#include <TDataStd_ListIteratorOfListOfExtendedString.hxx>
-#define DEB_DDataStd
+#define MAXLENGTH 10
+//#define DEB_DDataStd
//=======================================================================
//function : DDataStd_SetInteger
if (!DDF::GetDF(arg[1],DF)) return 1;
TDF_Label L;
DDF::AddLabel(DF, arg[2], L);
- if(nb == 4)
+ if(nb == 4)
TDataStd_Integer::Set(L,Draw::Atoi(arg[3]));
- else {
- if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ else {
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
di<<"DDataStd_SetInteger: The format of GUID is invalid\n";
return 1;
- }
- Standard_GUID guid(arg[4]);
- TDataStd_Integer::Set(L, guid, Draw::Atoi(arg[3]));
- }
+ }
+ Standard_GUID guid(arg[4]);
+ TDataStd_Integer::Set(L, guid, Draw::Atoi(arg[3]));
+ }
return 0;
}
di << "DDataStd_SetInteger : Error\n";
if (!DDF::GetDF(arg[1],DF)) return 1;
TDF_Label L;
DDF::AddLabel(DF, arg[2], L);
- if(nb == 4)
+ if(nb == 4)
TDataStd_Real::Set(L,Draw::Atof(arg[3]));
- else {
- if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ else {
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
di<<"DDataStd_SetReal: The format of GUID is invalid\n";
return 1;
- }
- Standard_GUID guid(arg[4]);
- TDataStd_Real::Set(L, guid, Draw::Atof(arg[3]));
- }
- return 0;
- }
+ }
+ Standard_GUID guid(arg[4]);
+ TDataStd_Real::Set(L, guid, Draw::Atof(arg[3]));
+ }
+ return 0;
+ }
di << "DDataStd_SetReal : Error\n";
return 1;
}
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF)) return 1;
Handle(TDataStd_Integer) A;
- Standard_GUID aGuid;
- Standard_GUID aNullGuid("00000000-0000-0000-0000-000000000000");
- Standard_Boolean isdrawname(Standard_False);
- if(nb < 5 ) {
+ Standard_GUID aGuid;
+ Standard_GUID aNullGuid("00000000-0000-0000-0000-000000000000");
+ Standard_Boolean isdrawname(Standard_False);
+ if(nb < 5 ) {
if(nb == 4) { //DF, entry, guid
- if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
aGuid = Standard_GUID(arg[3]);
- }
- if(Standard_GUID::IsEqual(aGuid, aNullGuid)) {
- isdrawname = Standard_True;
- aGuid = TDataStd_Integer::GetID();
- }
- } else if(nb == 5) {
- isdrawname = Standard_True;
- if (Standard_GUID::CheckGUIDFormat(arg[4]))
+ }
+ if(Standard_GUID::IsEqual(aGuid, aNullGuid)) {
+ isdrawname = Standard_True;
+ aGuid = TDataStd_Integer::GetID();
+ }
+ } else if(nb == 5) {
+ isdrawname = Standard_True;
+ if (Standard_GUID::CheckGUIDFormat(arg[4]))
aGuid = Standard_GUID(arg[4]);
- else {
+ else {
di<<"DDataStd_GetInteger: The format of GUID is invalid\n";
return 1;
- }
- }
-
+ }
+ }
+
if (!DDF::Find(DF,arg[2],aGuid,A)) return 1;
if (nb == 4 && isdrawname) Draw::Set(arg[3],A->Get());
else Draw::Set(arg[2],A->Get());
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF)) return 1;
Handle(TDataStd_Real) A;
- Standard_GUID aGuid;
+ Standard_GUID aGuid;
Standard_GUID aNullGuid("00000000-0000-0000-0000-000000000000");
- Standard_Boolean isdrawname(Standard_False);
+ Standard_Boolean isdrawname(Standard_False);
if(nb < 5 ) {
- if(nb == 4) {
- if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
aGuid = Standard_GUID(arg[3]);
- }
- if(Standard_GUID::IsEqual(aGuid, aNullGuid)) {
- isdrawname = Standard_True;
- aGuid = TDataStd_Real::GetID();
- }
- }
- else if(nb == 5) {
- isdrawname = Standard_True;
- if (Standard_GUID::CheckGUIDFormat(arg[4]))
+ }
+ if(Standard_GUID::IsEqual(aGuid, aNullGuid)) {
+ isdrawname = Standard_True;
+ aGuid = TDataStd_Real::GetID();
+ }
+ }
+ else if(nb == 5) {
+ isdrawname = Standard_True;
+ if (Standard_GUID::CheckGUIDFormat(arg[4]))
aGuid = Standard_GUID(arg[4]);
- else {
+ else {
di<<"DDataStd_GetReal: The format of GUID is invalid\n";
return 1;
- }
- }
+ }
+ }
if (!DDF::Find(DF,arg[2],aGuid,A)) return 1;
if (nb == 4 && isdrawname) Draw::Set(arg[3],A->Get());
else Draw::Set(arg[2],A->Get());
//=======================================================================
-//function : SetIntArray (DF, entry , isDelta, From, To, elmt1, elmt2, ...
+//function : SetIntArray (DF, entry , isDelta, [-g Guid,] From, To, elmt1, elmt2, ...
//=======================================================================
static Standard_Integer DDataStd_SetIntArray (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- DDF::AddLabel(DF, arg[2], label);
- Standard_Boolean isDelta = Draw::Atoi(arg[3]) != 0;
- Standard_Integer From = Draw::Atoi(arg[4]), To = Draw::Atoi( arg[5] ), j;
- di << "Array of Standard_Integer with bounds from = " << From << " to = " << To << "\n";
- Handle(TDataStd_IntegerArray) A = TDataStd_IntegerArray::Set(label, From, To, isDelta);
-
- if (nb > 6) {
- j = 6;
- for(Standard_Integer i = From; i<=To; i++) {
- A->SetValue(i, Draw::Atoi(arg[j]) );
- j++;
+ if (nb >= 6) {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ DDF::AddLabel(DF, arg[2], label);
+ Standard_Boolean isDelta = Draw::Atoi(arg[3]) != 0;
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ Standard_Character c1(arg[4][0]), c2(arg[4][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[5])) {
+ di<<"DDataStd_SetIntArray: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[5]);
+ isGuid = Standard_True;
}
- }
-
- return 0;
+ Standard_Integer j(4);
+ if(isGuid) j = 6;
+ if((strlen(arg[j]) > MAXLENGTH || strlen(arg[j+1]) > MAXLENGTH) ||
+ !TCollection_AsciiString (arg[j]).IsIntegerValue() ||
+ !TCollection_AsciiString (arg[j+1]).IsIntegerValue())
+ {
+ di << "DDataStd_SetIntArray: From, To may be wrong\n";
+ return 1;
+ }
+ Standard_Integer From = Draw::Atoi(arg[j]), To = Draw::Atoi( arg[j+1] );
+ di << "Array of Standard_Integer with bounds from = " << From << " to = " << To << "\n";
+ Handle(TDataStd_IntegerArray) A;
+ if(!isGuid)
+ A = TDataStd_IntegerArray::Set(label, From, To, isDelta);
+ else
+ A = TDataStd_IntegerArray::Set(label, guid, From, To, isDelta);
+
+ if ((!isGuid && nb > 6) || (isGuid && nb > 8)) {
+ j = j + 2;
+ for(Standard_Integer i = From; i<=To; i++) {
+ A->SetValue(i, Draw::Atoi(arg[j]) );
+ j++;
+ }
+ }
+ return 0;
+ }
+ di << "DDataStd_SetIntArray: Error\n";
+ return 1;
}
//=======================================================================
}
//=======================================================================
-//function : GetIntArray (DF, entry )
+//function : GetIntArray (DF, entry [, guid] )
//=======================================================================
static Standard_Integer DDataStd_GetIntArray (Draw_Interpretor& di,
- Standard_Integer,
+ Standard_Integer nb,
const char** arg)
{
+ if (nb >= 3)
+ {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ if( !DDF::FindLabel(DF, arg[2], label) ) {
+ di << "No label for entry" << "\n";
+ return 1;
+ }
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_IntegerArray::GetID();
+ Handle(TDataStd_IntegerArray) A;
+ if ( !label.FindAttribute(aGuid, A) ) {
+ di << "There is no TDataStd_IntegerArray with the specified GUID under label" << "\n";
+ return 1;
+ }
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- if( !DDF::FindLabel(DF, arg[2], label) ) {
- di << "No label for entry" << "\n";
- return 1;
- }
-
- Handle(TDataStd_IntegerArray) A;
- if ( !label.FindAttribute(TDataStd_IntegerArray::GetID(), A) ) {
- di << "There is no TDataStd_IntegerArray under label" << "\n";
- return 1;
- }
-
- for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
- //cout << A->Value(i) << endl;
- di << A->Value(i);
- if(i<A->Upper())
- di<<" ";
- }
- di<<"\n";
- return 0;
+ for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
+ //cout << A->Value(i) << endl;
+ di << A->Value(i);
+ if(i<A->Upper())
+ di<<" ";
+ }
+ di<<"\n";
+ return 0;
+ }
+ di << "DDataStd_GetIntArray: Error\n";
+ return 1;
}
-
//=======================================================================
//function : GetIntArrayValue (DF, entry, index)
//=======================================================================
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
- return 1;
+ return 1;
TDF_Label label;
if (!DDF::FindLabel(DF, arg[2], label)) {
di << "No label for entry" << "\n";
return 1;
}
-
+
Handle(TDataStd_IntegerArray) A;
if ( !label.FindAttribute(TDataStd_IntegerArray::GetID(), A) ) {
di << "There is no TDataStd_IntegerArray under label" << "\n";
return 1;
}
-
+
Standard_Integer index = Draw::Atoi(arg[3]);
if (index < A->Lower() || index > A->Upper()) {
di << "Index is out of range\n";
Handle(TColStd_HArray1OfInteger) arr;
Standard_Integer i;
if(indx > up) {
- up = indx;
- arr = new TColStd_HArray1OfInteger(low, up);
- for(i=low; i<= Arr->Upper(); i++)
- arr->SetValue(i, Arr->Value(i));
- for(i=Arr->Upper()+1; i<= up; i++) {
- if(i == up)
- arr->SetValue(i, val);
- else
- arr->SetValue(i, 0);
- }
+ up = indx;
+ arr = new TColStd_HArray1OfInteger(low, up);
+ for(i=low; i<= Arr->Upper(); i++)
+ arr->SetValue(i, Arr->Value(i));
+ for(i=Arr->Upper()+1; i<= up; i++) {
+ if(i == up)
+ arr->SetValue(i, val);
+ else
+ arr->SetValue(i, 0);
+ }
} else if(indx < up) {//clip array : indx to be negative
- up = abs(indx);
- arr = new TColStd_HArray1OfInteger(low, up);
- for(i=low; i< up; i++)
- arr->SetValue(i, Arr->Value(i));
- arr->SetValue(up, val);
+ up = abs(indx);
+ arr = new TColStd_HArray1OfInteger(low, up);
+ for(i=low; i< up; i++)
+ arr->SetValue(i, Arr->Value(i));
+ arr->SetValue(up, val);
}
A->ChangeArray(arr);
}
}
//=======================================================================
-//function : SetRealArray (DF, entry , isDelta, From, To, elmt1, elmt2, ...
+//function : SetRealArray (DF, entry , isDelta, [-g Guid,] From, To, elmt1, elmt2, ...
//=======================================================================
static Standard_Integer DDataStd_SetRealArray (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
-
-
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- DDF::AddLabel(DF, arg[2], label);
- Standard_Boolean isDelta = Draw::Atoi(arg[3]) != 0;
-
- Standard_Integer From = Draw::Atoi(arg[4]), To = Draw::Atoi( arg[5] ), j;
- di << " Array of Standard_Real with bounds from = " << From << " to = " << To << "\n";
- Handle(TDataStd_RealArray) A = TDataStd_RealArray::Set(label, From, To, isDelta);
-
- if (nb > 6) {
- j = 6;
- for(Standard_Integer i = From; i<=To; i++) {
- A->SetValue(i, Draw::Atof(arg[j]) );
- j++;
+ if (nb >= 6) {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ DDF::AddLabel(DF, arg[2], label);
+ Standard_Boolean isDelta = Draw::Atoi(arg[3]) != 0;
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ Standard_Character c1(arg[4][0]), c2(arg[4][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[5])) {
+ di<<"DDataStd_SetRealArray: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[5]);
+ isGuid = Standard_True;
}
- }
-
- return 0;
+ Standard_Integer j(4);
+ if(isGuid) j = 6;
+ if((strlen(arg[j]) > MAXLENGTH || strlen(arg[j+1]) > MAXLENGTH) ||
+ !TCollection_AsciiString (arg[j]).IsIntegerValue() ||
+ !TCollection_AsciiString (arg[j+1]).IsIntegerValue())
+ {
+ di << "DDataStd_SetRealArray: From, To may be wrong\n";
+ return 1;
+ }
+ Standard_Integer From = Draw::Atoi(arg[j]), To = Draw::Atoi( arg[j+1] );
+ di << " Array of Standard_Real with bounds from = " << From << " to = " << To << "\n";
+ Handle(TDataStd_RealArray) A;
+ if(!isGuid)
+ A = TDataStd_RealArray::Set(label, From, To, isDelta);
+ else
+ A = TDataStd_RealArray::Set(label, guid, From, To, isDelta);
+ if ((!isGuid && nb > 6) || (isGuid && nb > 8)) {
+ j = j + 2;
+ for(Standard_Integer i = From; i<=To; i++) {
+ A->SetValue(i, Draw::Atof(arg[j]) );
+ j++;
+ }
+ }
+ return 0;
+ }
+ di << "DDataStd_SetRealArray: Error\n";
+ return 1;
}
-
//=======================================================================
//function : SetRealArrayValue (DF, entry, index value)
//=======================================================================
}
//=======================================================================
-//function : GetRealArray (DF, entry )
+//function : GetRealArray (DF, entry [, guid])
//=======================================================================
static Standard_Integer DDataStd_GetRealArray (Draw_Interpretor& di,
- Standard_Integer,
+ Standard_Integer nb,
const char** arg)
{
+ if (nb >= 3)
+ {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ if( !DDF::FindLabel(DF, arg[2], label) ) {
+ di << "No label for entry" << "\n";
+ return 1;
+ }
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_RealArray::GetID();
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- if( !DDF::FindLabel(DF, arg[2], label) ) {
- di << "No label for entry" << "\n";
- return 1;
- }
-
- Handle(TDataStd_RealArray) A;
- if ( !label.FindAttribute(TDataStd_RealArray::GetID(), A) ) {
- di << "There is no TDataStd_RealArray under label" << "\n";
- return 1;
- }
-
- for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
- //cout << A->Value(i) << endl;
- di << A->Value(i);
- if(i<A->Upper())
- di<<" ";
- }
- di<<"\n";
-
- return 0;
-}
+ Handle(TDataStd_RealArray) A;
+ if ( !label.FindAttribute(aGuid, A) ) {
+ di << "There is no TDataStd_RealArray with the specified GUID at the label" << "\n";
+#ifdef DEB_DDataStd
+ aGuid.ShallowDump(cout);
+#endif
+ return 1;
+ }
+ for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
+#ifdef DEB_DDataStd
+ cout << A->Value(i) << endl;
+#endif
+ di << A->Value(i);
+ if(i<A->Upper())
+ di<<" ";
+ }
+ di<<"\n";
+ return 0;
+ }
+ di << "TDataStd_RealArray: Error\n";
+ return 1;
+}
//=======================================================================
//function : GetRealArrayValue (DF, entry, index)
//=======================================================================
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
- return 1;
+ return 1;
TDF_Label label;
if (!DDF::FindLabel(DF, arg[2], label)) {
di << "No label for entry" << "\n";
return 1;
}
-
+
Handle(TDataStd_RealArray) A;
if ( !label.FindAttribute(TDataStd_RealArray::GetID(), A) ) {
di << "There is no TDataStd_RealArray under label" << "\n";
return 1;
}
-
+
Standard_Integer index = Draw::Atoi(arg[3]);
if (index < A->Lower() || index > A->Upper()) {
di << "Index is out of range\n";
Handle(TColStd_HArray1OfReal) arr;
Standard_Integer i;
if(indx > up) {
- up = indx;
- arr = new TColStd_HArray1OfReal(low, up);
- for(i=low; i<= Arr->Upper(); i++)
- arr->SetValue(i, Arr->Value(i));
- for(i=Arr->Upper()+1; i<= up; i++) {
- if(i == up)
- arr->SetValue(i, val);
- else
- arr->SetValue(i, 0);
- }
+ up = indx;
+ arr = new TColStd_HArray1OfReal(low, up);
+ for(i=low; i<= Arr->Upper(); i++)
+ arr->SetValue(i, Arr->Value(i));
+ for(i=Arr->Upper()+1; i<= up; i++) {
+ if(i == up)
+ arr->SetValue(i, val);
+ else
+ arr->SetValue(i, 0);
+ }
} else if(indx < up) {//clip array : indx to be negative
- up = abs(indx);
- arr = new TColStd_HArray1OfReal(low, up);
- for(i=low; i< up; i++)
- arr->SetValue(i, Arr->Value(i));
- arr->SetValue(up, val);
+ up = abs(indx);
+ arr = new TColStd_HArray1OfReal(low, up);
+ for(i=low; i< up; i++)
+ arr->SetValue(i, Arr->Value(i));
+ arr->SetValue(up, val);
}
A->ChangeArray(arr);
}
}
//=======================================================================
-//function : SetExtStringArray (DF, entry , isDelta, From, To, elmt1, elmt2, ...
+//function : SetExtStringArray (DF, entry , isDelta, [-g Guid, ]From, To, elmt1, elmt2, ...
//=======================================================================
static Standard_Integer DDataStd_SetExtStringArray (Draw_Interpretor& di,
- Standard_Integer nb,
- const char** arg)
-{
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- DDF::AddLabel(DF, arg[2], label);
- Standard_Boolean isDelta = Draw::Atoi(arg[3]) != 0;
+ Standard_Integer nb,
+ const char** arg)
+{
+ if (nb >= 6) {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ DDF::AddLabel(DF, arg[2], label);
+ Standard_Boolean isDelta = Draw::Atoi(arg[3]) != 0;
- Standard_Integer From = Draw::Atoi(arg[4]), To = Draw::Atoi( arg[5] ), j;
- di << "Array of ExtString with bounds from = " << From << " to = " << To << "\n";
- Handle(TDataStd_ExtStringArray) A = TDataStd_ExtStringArray::Set(label, From, To, isDelta);
-
- if (nb > 6) {
- j = 6;
- for(Standard_Integer i = From; i<=To; i++) {
- A->SetValue(i, arg[j] );
- j++;
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ Standard_Character c1(arg[4][0]), c2(arg[4][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[5])) {
+ di<<"DDataStd_SetExtStringArray: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[5]);
+ isGuid = Standard_True;
}
- }
+ Standard_Integer j(4);
+ if(isGuid) j = 6;
+ if((strlen(arg[j]) > MAXLENGTH || strlen(arg[j+1]) > MAXLENGTH) ||
+ !TCollection_AsciiString (arg[j]).IsIntegerValue() ||
+ !TCollection_AsciiString (arg[j+1]).IsIntegerValue())
+ {
+ di << "DDataStd_SetExtStringArray: From, To may be wrong\n";
+ return 1;
+ }
+ Standard_Integer From = Draw::Atoi(arg[j]), To = Draw::Atoi( arg[j+1] );
+ di << "Array of ExtString with bounds from = " << From << " to = " << To << "\n";
+ Handle(TDataStd_ExtStringArray) A;
+ if(!isGuid)
+ A = TDataStd_ExtStringArray::Set(label, From, To, isDelta);
+ else
+ A = TDataStd_ExtStringArray::Set(label, guid, From, To, isDelta);
- return 0;
+ if ((!isGuid && nb > 6) || (isGuid && nb > 8)) {
+ j = j + 2;
+ for(Standard_Integer i = From; i<=To; ++i) {
+ A->SetValue(i, arg[j] );
+ j++;
+ }
+ }
+ return 0;
+ }
+ di << "TDataStd_ExtStringArray: Error\n";
+ return 1;
}
//=======================================================================
//function : GetExtStringArray (DF, entry )
//=======================================================================
static Standard_Integer DDataStd_GetExtStringArray (Draw_Interpretor& di,
- Standard_Integer,
- const char** arg)
+ Standard_Integer nb,
+ const char** arg)
{
+ if (nb >= 3)
+ {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ if( !DDF::FindLabel(DF, arg[2], label) ) {
+ di << "No label for entry" << "\n";
+ return 1;
+ }
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_ExtStringArray::GetID();
+ Handle(TDataStd_ExtStringArray) A;
+ if ( !label.FindAttribute(aGuid, A) ) {
+ di << "There is no TDataStd_ExtStringArray with the specified GUID at the label" << "\n";
+ return 1;
+ }
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- if( !DDF::FindLabel(DF, arg[2], label) ) {
- di << "No label for entry" << "\n";
- return 1;
- }
-
- Handle(TDataStd_ExtStringArray) A;
- if ( !label.FindAttribute(TDataStd_ExtStringArray::GetID(), A) ) {
- di << "There is no TDataStd_ExtStringArray under label" << "\n";
- return 1;
- }
-
- for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
- TCollection_AsciiString anAsciiString(A->Value(i),'?');
- di << anAsciiString.ToCString();
- if(i<A->Upper())
- di<<" ";
- }
- di<<"\n";
- return 0;
+ for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
+ TCollection_AsciiString anAsciiString(A->Value(i),'?');
+ di << anAsciiString.ToCString();
+ if(i<A->Upper())
+ di<<" ";
+ }
+ di<<"\n";
+ return 0;
+ }
+ di << "DDataStd_GetExtStringArray: Error\n";
+ return 1;
}
//=======================================================================
Handle(TColStd_HArray1OfExtendedString) arr;
Standard_Integer i;
if(indx > up) {
- up = indx;
- arr = new TColStd_HArray1OfExtendedString(low, up);
- for(i=low; i<= Arr->Upper(); i++)
- arr->SetValue(i, Arr->Value(i));
- for(i=Arr->Upper()+1; i<= up; i++) {
- if(i == up)
- arr->SetValue(i, val);
- else
- arr->SetValue(i, 0);
- }
+ up = indx;
+ arr = new TColStd_HArray1OfExtendedString(low, up);
+ for(i=low; i<= Arr->Upper(); i++)
+ arr->SetValue(i, Arr->Value(i));
+ for(i=Arr->Upper()+1; i<= up; i++) {
+ if(i == up)
+ arr->SetValue(i, val);
+ else
+ arr->SetValue(i, 0);
+ }
} else if(indx < up) {//clip array : indx to be negative
- up = abs(indx);
- arr = new TColStd_HArray1OfExtendedString(low, up);
- for(i=low; i< up; i++)
- arr->SetValue(i, Arr->Value(i));
- arr->SetValue(up, val);
+ up = abs(indx);
+ arr = new TColStd_HArray1OfExtendedString(low, up);
+ for(i=low; i< up; i++)
+ arr->SetValue(i, Arr->Value(i));
+ arr->SetValue(up, val);
}
A->ChangeArray(arr);
}
for(;anIt.More();anIt.Next()) {
const TDF_Label& aLab = anIt.Value();
if(!aLab.IsNull()) {
- Handle(TDataStd_Name) anAtt;
- if(aLab.FindAttribute(TDataStd_Name::GetID(), anAtt)) {
- if(anAtt->Get().Length()) {
- if (aF)
- aES +='\n';
- aES +=anAtt->Get();
- aF = Standard_True;
- }
- }
+ Handle(TDataStd_Name) anAtt;
+ if(aLab.FindAttribute(TDataStd_Name::GetID(), anAtt)) {
+ if(anAtt->Get().Length()) {
+ if (aF)
+ aES +='\n';
+ aES +=anAtt->Get();
+ aF = Standard_True;
+ }
+ }
}
}
}
//=======================================================================
-//function : SetByteArray (DF, entry, isDelta, From, To, elmt1, elmt2, ... )
+//function : SetByteArray (DF, entry, isDelta, [-g Guid,] From, To, elmt1, elmt2, ... )
//=======================================================================
static Standard_Integer DDataStd_SetByteArray (Draw_Interpretor& di,
Standard_Integer nb,
TDF_Label label;
DDF::AddLabel(DF, arg[2], label);
Standard_Boolean isDelta = Draw::Atoi(arg[3]) != 0;
- Standard_Integer From = Draw::Atoi(arg[4]), To = Draw::Atoi( arg[5] ), j;
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ Standard_Character c1(arg[4][0]), c2(arg[4][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[5])) {
+ di<<"DDataStd_SetByteArray: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[5]);
+ isGuid = Standard_True;
+ }
+ Standard_Integer j(4);
+ if(isGuid) j = 6;
+ if((strlen(arg[j]) > MAXLENGTH || strlen(arg[j+1]) > MAXLENGTH) ||
+ !TCollection_AsciiString (arg[j]).IsIntegerValue() ||
+ !TCollection_AsciiString (arg[j+1]).IsIntegerValue())
+ {
+ di << "DDataStd_SetByteArray: From, To may be wrong\n";
+ return 1;
+ }
+ Standard_Integer From = Draw::Atoi(arg[j]), To = Draw::Atoi( arg[j+1] );
di << "Array of Standard_Byte with bounds from = " << From << " to = " << To << "\n";
- Handle(TDataStd_ByteArray) A = TDataStd_ByteArray::Set(label, From, To, isDelta);
-
- if (nb > 6) {
- j = 6;
+ Handle(TDataStd_ByteArray) A;
+ if(!isGuid)
+ A = TDataStd_ByteArray::Set(label, From, To, isDelta);
+ else
+ A = TDataStd_ByteArray::Set(label, guid, From, To, isDelta);
+
+ if ((!isGuid && nb > 6) || (isGuid && nb > 8)) {
+ j = j + 2;
for(Standard_Integer i = From; i<=To; ++i) {
Standard_Integer ival = Draw::Atoi(arg[j]);
if(ival < 0 || 255 < ival) {
}
//=======================================================================
-//function : SetBooleanArray (DF, entry, isDelta, From, To, elmt1, elmt2, ... )
+//function : SetBooleanArray (DF, entry, [-g Guid,] From, To, elmt1, elmt2, ... )
//=======================================================================
static Standard_Integer DDataStd_SetBooleanArray (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
- if (nb >= 6)
+ if (nb >= 5)
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
- return 1;
+ return 1;
TDF_Label label;
DDF::AddLabel(DF, arg[2], label);
- Standard_Integer From = Draw::Atoi(arg[4]), To = Draw::Atoi( arg[5] ), j;
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ Standard_Character c1(arg[3][0]), c2(arg[3][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ di<<"DDataStd_SetBooleanArray: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[4]);
+ isGuid = Standard_True;
+ }
+ Standard_Integer j(3);
+ if(isGuid) j = 5;
+ if((strlen(arg[j]) > MAXLENGTH || strlen(arg[j+1]) > MAXLENGTH) ||
+ !TCollection_AsciiString (arg[j]).IsIntegerValue() ||
+ !TCollection_AsciiString (arg[j+1]).IsIntegerValue())
+ {
+ di << "DDataStd_SetBooleanArray: From, To may be wrong\n";
+ return 1;
+ }
+ Standard_Integer From = Draw::Atoi(arg[j]), To = Draw::Atoi( arg[j+1] );
di << "Array of Standard_Boolean with bounds from = " << From << " to = " << To << "\n";
- Handle(TDataStd_BooleanArray) A = TDataStd_BooleanArray::Set(label, From, To);
-
- if (nb > 6) {
- j = 6;
+ Handle(TDataStd_BooleanArray) A;
+ if(!isGuid)
+ A = TDataStd_BooleanArray::Set(label, From, To);
+ else
+ A = TDataStd_BooleanArray::Set(label, guid, From, To);
+
+ if ((!isGuid && nb > 5) || (isGuid && nb > 7)) {
+ j = j + 2;
for(Standard_Integer i = From; i<=To; i++)
{
Standard_Integer ival = Draw::Atoi(arg[j]);
if(ival > 1)
{
- cout << "Bad value = " << ival<< ". 0 or 1 is expected." << endl;
+ cout << "Bad value (" <<i <<") = " << ival<< ". 0 or 1 is expected." << endl;
return 1;
}
A->SetValue(i, ival != 0);
}
//=======================================================================
-//function : DDataStd_SetExtStringList (DF, entry, elmt1, elmt2, ... )
+//function : DDataStd_SetExtStringList (DF, entry, [-g guid,] elmt1, elmt2, ... )
//=======================================================================
static Standard_Integer DDataStd_SetExtStringList (Draw_Interpretor& di,
Standard_Integer nb,
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
- return 1;
+ return 1;
TDF_Label label;
DDF::AddLabel(DF, arg[2], label);
- Handle(TDataStd_ExtStringList) A = TDataStd_ExtStringList::Set(label);
- for(Standard_Integer i = 3; i <= nb - 1; i++)
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ if(nb > 4) {
+ Standard_Character c1(arg[3][0]), c2(arg[3][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ di<<"DDataStd_SetExtStringList: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[4]);
+ isGuid = Standard_True;
+ }
+ }
+ Standard_Integer j(0);
+ Handle(TDataStd_ExtStringList) A;
+ if(!isGuid) {
+ A = TDataStd_ExtStringList::Set(label);
+ j = 3;
+ }
+ else {
+ A = TDataStd_ExtStringList::Set(label, guid);
+ j = 5;
+ }
+ for(Standard_Integer i = j; i <= nb - 1; i++)
{
TCollection_ExtendedString aValue(arg[i]);
A->Append(aValue);
}
//
//=======================================================================
-//function : DDataStd_SetReferenceList (DF, entry, elmt1, elmt2, ... )
+//function : DDataStd_SetReferenceList (DF, entry, [-g guid] elmt1, elmt2, ... )
//=======================================================================
static Standard_Integer DDataStd_SetReferenceList (Draw_Interpretor& di,
Standard_Integer nb,
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
- return 1;
+ return 1;
TDF_Label label;
DDF::AddLabel(DF, arg[2], label);
- if(!label.IsNull()) {
- Handle(TDataStd_ReferenceList) A = TDataStd_ReferenceList::Set(label);
- for(Standard_Integer i = 3; i <= nb - 1; i++)
- {
- TDF_Label aValueLabel;
- DDF::AddLabel(DF, arg[i], aValueLabel);
- if(aValueLabel.IsNull()) continue;
- A->Append(aValueLabel);
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ if(nb > 4) {
+ Standard_Character c1(arg[3][0]), c2(arg[3][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ di<<"DDataStd_SetReferenceList: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[4]);
+ isGuid = Standard_True;
}
- return 0;
}
+ Standard_Integer j(0);
+ Handle(TDataStd_ReferenceList) A;
+ if(!isGuid) {
+ A = TDataStd_ReferenceList::Set(label);
+ j = 3;
+ }
+ else {
+ A = TDataStd_ReferenceList::Set(label, guid);
+ j = 5;
+ }
+ for(Standard_Integer i = j; i <= nb - 1; i++)
+ {
+ TDF_Label aValueLabel;
+ DDF::AddLabel(DF, arg[i], aValueLabel);
+ if(aValueLabel.IsNull()) continue;
+ A->Append(aValueLabel);
+ }
+ return 0;
}
di << "DDataStd_SetReferenceList: Error\n";
return 1;
//=======================================================================
-//function : SetBooleanList (DF, entry, elmt1, elmt2, ... )
+//function : SetBooleanList (DF, entry, [-g Guid,] elmt1, elmt2, ... )
//=======================================================================
static Standard_Integer DDataStd_SetBooleanList (Draw_Interpretor& di,
Standard_Integer nb,
TDF_Label label;
DDF::AddLabel(DF, arg[2], label);
- Handle(TDataStd_BooleanList) A = TDataStd_BooleanList::Set(label);
- for(Standard_Integer i = 3; i <= nb - 1; i++)
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ if(nb > 4) {
+ Standard_Character c1(arg[3][0]), c2(arg[3][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ di<<"DDataStd_SetBooleanList: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[4]);
+ isGuid = Standard_True;
+ }
+ }
+ Standard_Integer j(0);
+ Handle(TDataStd_BooleanList) A;
+ if(!isGuid) {
+ A = TDataStd_BooleanList::Set(label);
+ j = 3;
+ }
+ else {
+ A = TDataStd_BooleanList::Set(label, guid);
+ j = 5;
+ }
+ for(Standard_Integer i = j; i <= nb - 1; i++)
{
Standard_Integer ival = Draw::Atoi(arg[i]);
if(ival > 1)
}
//=======================================================================
-//function : SetIntegerList (DF, entry, elmt1, elmt2, ... )
+//function : SetIntegerList (DF, entry, [-g guid] elmt1, elmt2, ... )
//=======================================================================
static Standard_Integer DDataStd_SetIntegerList (Draw_Interpretor& di,
Standard_Integer nb,
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
- return 1;
+ return 1;
TDF_Label label;
DDF::AddLabel(DF, arg[2], label);
- Handle(TDataStd_IntegerList) A = TDataStd_IntegerList::Set(label);
- for(Standard_Integer i = 3; i <= nb - 1; i++)
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ if(nb > 4) {
+ Standard_Character c1(arg[3][0]), c2(arg[3][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ di<<"DDataStd_SetIntegerList: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[4]);
+ isGuid = Standard_True;
+ }
+ }
+ Standard_Integer j(0);
+ Handle(TDataStd_IntegerList) A;
+ if(!isGuid) {
+ A = TDataStd_IntegerList::Set(label);
+ j = 3;
+ }
+ else {
+ A = TDataStd_IntegerList::Set(label, guid);
+ j = 5;
+ }
+ for(Standard_Integer i = j; i <= nb - 1; i++)
{
Standard_Integer ival = Draw::Atoi(arg[i]);
A->Append(ival);
}
//=======================================================================
-//function : SetRealList (DF, entry, elmt1, elmt2, ... )
+//function : SetRealList (DF, entry, [-g guid,] elmt1, elmt2, ... )
//=======================================================================
static Standard_Integer DDataStd_SetRealList (Draw_Interpretor& di,
Standard_Integer nb,
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
- return 1;
+ return 1;
TDF_Label label;
DDF::AddLabel(DF, arg[2], label);
- Handle(TDataStd_RealList) A = TDataStd_RealList::Set(label);
- for(Standard_Integer i = 3; i <= nb - 1; i++)
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ if(nb > 4) {
+ Standard_Character c1(arg[3][0]), c2(arg[3][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ di<<"DDataStd_SetRealList: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[4]);
+ isGuid = Standard_True;
+ }
+ }
+ Standard_Integer j(0);
+ Handle(TDataStd_RealList) A;
+ if(!isGuid) {
+ A = TDataStd_RealList::Set(label);
+ j = 3;
+ }
+ else {
+ A = TDataStd_RealList::Set(label, guid);
+ j = 5;
+ }
+ for(Standard_Integer i = j; i <= nb - 1; i++)
{
Standard_Real fval = Draw::Atof(arg[i]);
A->Append(fval);
}
//=======================================================================
-//function : GetByteArray (DF, entry )
+//function : GetByteArray (DF, entry [, guid] )
//=======================================================================
static Standard_Integer DDataStd_GetByteArray (Draw_Interpretor& di,
- Standard_Integer,
+ Standard_Integer nb,
const char** arg)
{
+ if (nb >= 3)
+ {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ if( !DDF::FindLabel(DF, arg[2], label) ) {
+ di << "No label for entry" << "\n";
+ return 1;
+ }
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_ByteArray::GetID();
+ Handle(TDataStd_ByteArray) A;
+ if ( !label.FindAttribute(aGuid, A) ) {
+ di << "There is no TDataStd_ByteArray with the specified GUID at the label" << "\n";
+ return 1;
+ }
-
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- if( !DDF::FindLabel(DF, arg[2], label) ) {
- di << "No label for entry" << "\n";
- return 1;
- }
-
- Handle(TDataStd_ByteArray) A;
- if ( !label.FindAttribute(TDataStd_ByteArray::GetID(), A) ) {
- di << "There is no TDataStd_ByteArray at label" << "\n";
- return 1;
- }
-
- for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
- //cout << A->Value(i) << endl;
- di << A->Value(i);
- if(i<A->Upper())
- di<<" ";
+ for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
+ //cout << A->Value(i) << endl;
+ di << A->Value(i);
+ if(i<A->Upper())
+ di<<" ";
+ }
+ di<<"\n";
+ return 0;
}
- di<<"\n";
- return 0;
+ di << "DDataStd_GetByteArray: Error\n";
+ return 1;
}
//=======================================================================
}
//=======================================================================
-//function : GetBooleanArray (DF, entry )
+//function : GetBooleanArray (DF, entry [, guid] )
//=======================================================================
static Standard_Integer DDataStd_GetBooleanArray (Draw_Interpretor& di,
- Standard_Integer,
+ Standard_Integer nb,
const char** arg)
{
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF))
+ if (nb >= 3)
+ {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF))
return 1;
- TDF_Label label;
- if ( !DDF::FindLabel(DF, arg[2], label) )
- {
- di << "No label for entry" << "\n";
- return 1;
- }
-
- Handle(TDataStd_BooleanArray) A;
- if ( !label.FindAttribute(TDataStd_BooleanArray::GetID(), A) )
- {
- di << "There is no TDataStd_BooleanArray at label" << "\n";
- return 1;
- }
-
- for (Standard_Integer i = A->Lower(); i<=A->Upper(); i++)
- {
- di << (Standard_Integer) A->Value(i);
- if (i < A->Upper())
- di << " ";
+ TDF_Label label;
+ if ( !DDF::FindLabel(DF, arg[2], label) )
+ {
+ di << "No label for entry" << "\n";
+ return 1;
+ }
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_BooleanArray::GetID();
+
+ Handle(TDataStd_BooleanArray) A;
+ if ( !label.FindAttribute(aGuid, A) )
+ {
+ di << "There is no TDataStd_BooleanArray at label" << "\n";
+ return 1;
+ }
+
+ for (Standard_Integer i = A->Lower(); i<=A->Upper(); i++)
+ {
+ di << (Standard_Integer) A->Value(i);
+ if (i < A->Upper())
+ di << " ";
+ }
+ di << "\n";
+ return 0;
}
- di << "\n";
- return 0;
+ di << "DDataStd_GetBooleanArray: Error\n";
+ return 1;
}
//=======================================================================
Standard_Integer ival = Draw::Atoi(arg[4]);
if (ival > 255 || ival < 0) {
di << "DDataStd_ChangeByteArray: Bad value = " <<ival << "\n";
- return 1;
+ return 1;
}
Standard_Integer low = A->Lower(), up = A->Upper();
if(low <= indx && indx <= up)
Handle(TColStd_HArray1OfByte) arr;
Standard_Integer i;
if(indx > up) {
- up = indx;
- arr = new TColStd_HArray1OfByte(low, up);
- for(i=low; i<= Arr->Upper(); i++)
- arr->SetValue(i, Arr->Value(i));
- for(i=Arr->Upper()+1; i<= up; i++) {
- if(i == up)
- arr->SetValue(i, (Standard_Byte)ival);
- else
- arr->SetValue(i, 0);
- }
+ up = indx;
+ arr = new TColStd_HArray1OfByte(low, up);
+ for(i=low; i<= Arr->Upper(); i++)
+ arr->SetValue(i, Arr->Value(i));
+ for(i=Arr->Upper()+1; i<= up; i++) {
+ if(i == up)
+ arr->SetValue(i, (Standard_Byte)ival);
+ else
+ arr->SetValue(i, 0);
+ }
} else if(indx < up) {//clip array : indx to be negative
- up = abs(indx);
- arr = new TColStd_HArray1OfByte(low, up);
- for(i=low; i< up; i++)
- arr->SetValue(i, Arr->Value(i));
- arr->SetValue(up, (Standard_Byte)ival);
+ up = abs(indx);
+ arr = new TColStd_HArray1OfByte(low, up);
+ for(i=low; i< up; i++)
+ arr->SetValue(i, Arr->Value(i));
+ arr->SetValue(up, (Standard_Byte)ival);
}
A->ChangeArray(arr);
}
}
//=======================================================================
-//function : GetBooleanList (DF, entry )
+//function : GetBooleanList (DF, entry [, guid])
//=======================================================================
static Standard_Integer DDataStd_GetBooleanList (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
- if (nb == 3) {
+ if (nb >= 3) {
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
return 1;
di << "No label for entry" << "\n";
return 1;
}
-
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_BooleanList::GetID();
+
Handle(TDataStd_BooleanList) A;
- if ( !label.FindAttribute(TDataStd_BooleanList::GetID(), A) )
+ if ( !label.FindAttribute(aGuid, A) )
{
- di << "There is no TDataStd_BooleanList at label" << "\n";
+ di << "There is no TDataStd_BooleanList with the specified Guid at the label" << "\n";
return 1;
}
-
+
const TDataStd_ListOfByte& bList = A->List();
Standard_Boolean isEmpty = (bList.Extent() > 0) ? Standard_False : Standard_True;
if(!isEmpty) {
}
di << "\n";
} else
- di << "List is empty\n";
+ di << "List is empty\n";
return 0;
}
di << "DDataStd_GetBooleanList: Error\n";
}
//=======================================================================
-//function : GetIntegerList (DF, entry )
+//function : GetIntegerList (DF, entry [, guid])
//=======================================================================
static Standard_Integer DDataStd_GetIntegerList (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
- if (nb == 3) {
+ if (nb >= 3) {
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
return 1;
di << "No label for entry" << "\n";
return 1;
}
-
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_IntegerList::GetID();
+
Handle(TDataStd_IntegerList) A;
- if ( !label.FindAttribute(TDataStd_IntegerList::GetID(), A) )
+ if ( !label.FindAttribute(aGuid, A) )
{
- di << "There is no TDataStd_IntegerList at label" << "\n";
+ di << "There is no TDataStd_IntegerList with the specified GUID at the label" << "\n";
return 1;
}
-
+
const TColStd_ListOfInteger& iList = A->List();
Standard_Boolean isEmpty = (iList.Extent() > 0) ? Standard_False : Standard_True;
if(!isEmpty) {
}
//=======================================================================
-//function : GetRealList (DF, entry )
+//function : GetRealList (DF, entry [, guid])
//=======================================================================
static Standard_Integer DDataStd_GetRealList (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
- if (nb == 3) {
+ if (nb >= 3) {
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
return 1;
di << "No label for entry" << "\n";
return 1;
}
-
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_RealList::GetID();
+
Handle(TDataStd_RealList) A;
- if ( !label.FindAttribute(TDataStd_RealList::GetID(), A) )
+ if ( !label.FindAttribute(aGuid, A) )
{
- di << "There is no TDataStd_RealList at label" << "\n";
+ di << "There is no TDataStd_RealList with the specified GUID at the label" << "\n";
return 1;
}
-
+
const TColStd_ListOfReal& rList = A->List();
Standard_Boolean isEmpty = (rList.Extent() > 0) ? Standard_False : Standard_True;
if(!isEmpty) {
}
//=======================================================================
-//function : DDataStd_GetExtStringList (DF, entry)
+//function : DDataStd_GetExtStringList (DF, entry [, guid])
//=======================================================================
static Standard_Integer DDataStd_GetExtStringList (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
- if (nb == 3)
+ if (nb >= 3)
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
di << "No label for entry" << "\n";
return 1;
}
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_ExtStringList::GetID();
Handle(TDataStd_ExtStringList) A;
- if ( !label.FindAttribute(TDataStd_ExtStringList::GetID(), A) )
+ if ( !label.FindAttribute(aGuid, A) )
{
di << "There is no TDataStd_ExtStringList at label" << "\n";
return 1;
}
//=======================================================================
-//function : DDataStd_GetReferenceList (DF, entry )
+//function : DDataStd_GetReferenceList (DF, entry [, guid])
//=======================================================================
static Standard_Integer DDataStd_GetReferenceList (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
- if (nb == 3)
+ if (nb >= 3)
{
Handle(TDF_Data) DF;
if (!DDF::GetDF(arg[1],DF))
- return 1;
+ return 1;
TDF_Label label;
if ( !DDF::FindLabel(DF, arg[2], label) )
di << "No label for entry" << "\n";
return 1;
}
-
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_ReferenceList::GetID();
+
Handle(TDataStd_ReferenceList) A;
- if ( !label.FindAttribute(TDataStd_ReferenceList::GetID(), A) )
+ if ( !label.FindAttribute(aGuid, A) )
{
- di << "There is no TDataStd_ReferenceList at label" << "\n";
+ di << "There is no TDataStd_ReferenceList [with the specified guid] at the label" << "\n";
return 1;
}
-
+
const TDF_LabelList& aList = A->List();
Standard_Boolean isEmpty = (aList.Extent() > 0) ? Standard_False : Standard_True;
if(!isEmpty) {
if(!aHMap.IsNull()) {
ahMap->ChangeMap().Assign(aHMap->Map());
for(i=1; i<=aNum;i++) {
- Standard_Integer val = Draw::Atoi(arg[i+2]);
- if(!ahMap->Map().Contains(val))
- ahMap->ChangeMap().Add(val);
+ Standard_Integer val = Draw::Atoi(arg[i+2]);
+ if(!ahMap->Map().Contains(val))
+ ahMap->ChangeMap().Add(val);
}
A->ChangeMap(ahMap);
if(!aHMap.IsNull()) {
ahMap->ChangeMap().Assign(aHMap->Map());
for(i=1; i<=aNum;i++) {
- Standard_Integer val = Draw::Atoi(arg[i+2]);
- if(ahMap->Map().Contains(val))
- ahMap->ChangeMap().Remove(val);
+ Standard_Integer val = Draw::Atoi(arg[i+2]);
+ if(ahMap->Map().Contains(val))
+ ahMap->ChangeMap().Remove(val);
}
A->ChangeMap(ahMap);
if(!aHMap.IsNull()) {
ahMap->ChangeMap().Assign(aHMap->Map());
for(i=1; i<=aNum;i++) {
- Standard_Integer val = Draw::Atoi(arg[i+2]);
- if(!ahMap->Map().Contains(val))
- ahMap->ChangeMap().Add(val);
- else
- ahMap->ChangeMap().Remove(val);
+ Standard_Integer val = Draw::Atoi(arg[i+2]);
+ if(!ahMap->Map().Contains(val))
+ ahMap->ChangeMap().Add(val);
+ else
+ ahMap->ChangeMap().Remove(val);
}
A->ChangeMap(ahMap);
TDF_Label aLabel;
DDF::AddLabel(DF, arg[2], aLabel);
TCollection_AsciiString aString(arg[3]);
- Standard_GUID aGuid (TDataStd_AsciiString::GetID());
- if(nb == 5) {
- if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ Standard_GUID aGuid (TDataStd_AsciiString::GetID());
+ if(nb == 5) {
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
di<<"DDataStd_SetAsciiString: The format of GUID is invalid\n";
return 1;
- }
- aGuid = Standard_GUID (arg[4]);
- }
+ }
+ aGuid = Standard_GUID (arg[4]);
+ }
Handle(TDataStd_AsciiString) anAtt = TDataStd_AsciiString::Set(aLabel, aGuid, aString);
if(anAtt.IsNull()) {
di << "AsciiString attribute is not found or not set" << "\n";
return 1;
- }
+ }
cout << "String = " << anAtt->Get().ToCString() << " is kept in DF" << endl;
return 0;
if (!Standard_GUID::CheckGUIDFormat(arg[3])) {
di<<"DDataStd_GetAsciiString: The format of GUID is invalid\n";
return 1;
- }
- aGuid = Standard_GUID(arg[3]);
- }
- Handle(TDataStd_AsciiString) anAtt;
- if( !aLabel.FindAttribute(aGuid, anAtt) ) {
+ }
+ aGuid = Standard_GUID(arg[3]);
+ }
+ Handle(TDataStd_AsciiString) anAtt;
+ if( !aLabel.FindAttribute(aGuid, anAtt) ) {
cout << "AsciiString attribute is not found or not set" << endl;
- return 1;
- }
+ return 1;
+ }
#ifdef DEB_DDataStd
cout << "String = " << anAtt->Get().ToCString() << endl;
//function : GetNDInteger(DF, entry, key [drawname])
//=======================================================================
static Standard_Integer DDataStd_GetNDInteger (Draw_Interpretor& di,
- Standard_Integer nb,
- const char** arg)
-{
+ Standard_Integer nb,
+ const char** arg)
+{
if (nb >=4) {
Handle(TDF_Data) DF;
} else {
cout << "Key = " << arg[3] << " Value = " <<anAtt->GetInteger(arg[3])<<endl;
if(nb == 5)
- Draw::Set(arg[4], anAtt->GetInteger(arg[3]));
+ Draw::Set(arg[4], anAtt->GetInteger(arg[3]));
return 0;
}
}
} else {
cout << "Key = " << arg[3] << " Value = " <<anAtt->GetReal(arg[3])<<endl;
if(nb == 5)
- Draw::Set(arg[4], anAtt->GetReal(arg[3]));
+ Draw::Set(arg[4], anAtt->GetReal(arg[3]));
return 0;
}
}
TCollection_AsciiString aValue (anAtt->GetString(arg[3]), '?');
cout << "Key = " << arg[3] << " Value = " << aValue.ToCString() << endl;
if(nb == 5)
- Draw::Set(arg[4], aValue.ToCString());
+ Draw::Set(arg[4], aValue.ToCString());
return 0;
}
}
} else {
cout << "Key = " << arg[3] << " Value = " <<anAtt->GetByte(arg[3])<< endl;
if(nb == 5)
- Draw::Set(arg[4], anAtt->GetByte(arg[3]));
+ Draw::Set(arg[4], anAtt->GetByte(arg[3]));
return 0;
}
}
cout << "Key = " << aStr.ToCString()<< endl;
Handle(TColStd_HArray1OfInteger) anArrValue = itr.Value();
if(!anArrValue.IsNull()) {
- Standard_Integer lower = anArrValue->Lower();
- Standard_Integer upper = anArrValue->Upper();
- for(Standard_Integer i = lower; i<=upper;i++) {
- Standard_Integer aValue = anArrValue->Value(i);
- cout << "\tValue("<<i<<") = " <<aValue<<endl;
- }
+ Standard_Integer lower = anArrValue->Lower();
+ Standard_Integer upper = anArrValue->Upper();
+ for(Standard_Integer i = lower; i<=upper;i++) {
+ Standard_Integer aValue = anArrValue->Value(i);
+ cout << "\tValue("<<i<<") = " <<aValue<<endl;
+ }
} else
- cout << "\tthe specified array is Null "<<endl;
+ cout << "\tthe specified array is Null "<<endl;
}
return 0;
}
Handle(TColStd_HArray1OfInteger) anArrValue = anAtt->GetArrayOfIntegers(arg[3]);
if(!anArrValue.IsNull()) {
- Standard_Integer lower = anArrValue->Lower();
- Standard_Integer upper = anArrValue->Upper();
- for(Standard_Integer i = lower; i<=upper;i++) {
- Standard_Integer aValue = anArrValue->Value(i);
- cout << "\tValue("<<i<<") = " <<aValue<<endl;
- }
+ Standard_Integer lower = anArrValue->Lower();
+ Standard_Integer upper = anArrValue->Upper();
+ for(Standard_Integer i = lower; i<=upper;i++) {
+ Standard_Integer aValue = anArrValue->Value(i);
+ cout << "\tValue("<<i<<") = " <<aValue<<endl;
+ }
} else
- cout << "\tthe specified array is Null or not found"<<endl;
+ cout << "\tthe specified array is Null or not found"<<endl;
return 0;
}
}
cout << "Key = " << aStr.ToCString()<<endl;
Handle(TColStd_HArray1OfReal) anArrValue = itr.Value();
if(!anArrValue.IsNull()) {
- Standard_Integer lower = anArrValue->Lower();
- Standard_Integer upper = anArrValue->Upper();
- for(Standard_Integer i = lower; i<=upper;i++) {
- Standard_Real aValue = anArrValue->Value(i);
- cout << "\tValue("<<i<<") = " <<aValue<<endl;
- }
+ Standard_Integer lower = anArrValue->Lower();
+ Standard_Integer upper = anArrValue->Upper();
+ for(Standard_Integer i = lower; i<=upper;i++) {
+ Standard_Real aValue = anArrValue->Value(i);
+ cout << "\tValue("<<i<<") = " <<aValue<<endl;
+ }
} else
- cout << "\tthe specified array is Null "<<endl;
+ cout << "\tthe specified array is Null "<<endl;
}
return 0;
}
Handle(TColStd_HArray1OfReal) anArrValue = anAtt->GetArrayOfReals(arg[3]);
if(!anArrValue.IsNull()) {
- Standard_Integer lower = anArrValue->Lower();
- Standard_Integer upper = anArrValue->Upper();
- for(Standard_Integer i = lower; i<=upper;i++) {
- Standard_Real aValue = anArrValue->Value(i);
- cout << "\tValue("<<i<<") = " <<aValue<<endl;
- }
+ Standard_Integer lower = anArrValue->Lower();
+ Standard_Integer upper = anArrValue->Upper();
+ for(Standard_Integer i = lower; i<=upper;i++) {
+ Standard_Real aValue = anArrValue->Value(i);
+ cout << "\tValue("<<i<<") = " <<aValue<<endl;
+ }
} else
- cout << "\tthe specified array is Null or not found"<<endl;
+ cout << "\tthe specified array is Null or not found"<<endl;
return 0;
}
}
}
//=======================================================================
-//function : SetRefArray (DF, entry , From, To, elmt1, elmt2, ...
+//function : SetRefArray (DF, entry , [-g Guid,] From, To, elmt1, elmt2, ...
//=======================================================================
static Standard_Integer DDataStd_SetRefArray (Draw_Interpretor& di,
Standard_Integer nb,
const char** arg)
{
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- DDF::AddLabel(DF, arg[2], label);
-
- Standard_Integer From = Draw::Atoi(arg[3]), To = Draw::Atoi( arg[4] ), j;
- di << "RefArray with bounds from = " << From << " to = " << To << "\n";
+ if (nb >= 5)
+ {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ DDF::AddLabel(DF, arg[2], label);
+ Standard_GUID guid;
+ Standard_Boolean isGuid(Standard_False);
+ Standard_Character c1(arg[3][0]), c2(arg[3][1]);
+ if(c1 == '-' && c2 == 'g') { //guid
+ if (!Standard_GUID::CheckGUIDFormat(arg[4])) {
+ di<<"DDataStd_SetRefArray: The format of GUID is invalid\n";
+ return 1;
+ }
+ guid = Standard_GUID (arg[4]);
+ isGuid = Standard_True;
+ }
+ Standard_Integer j(3);
+ if(isGuid) j = 5;
- Handle(TDataStd_ReferenceArray) A = TDataStd_ReferenceArray::Set(label, From, To);
-
- if (nb >= 6) {
- j = 5;
- for(Standard_Integer i = From; i<=To; i++) {
- TDF_Label aRefLabel;
- DDF::AddLabel(DF, arg[j], aRefLabel);
- A->SetValue(i, aRefLabel);
- j++;
+ if((strlen(arg[j]) > MAXLENGTH || strlen(arg[j+1]) > MAXLENGTH) ||
+ !TCollection_AsciiString (arg[j]).IsIntegerValue() ||
+ !TCollection_AsciiString (arg[j+1]).IsIntegerValue())
+ {
+ di << "DDataStd_SetRefArray: From, To may be wrong\n";
+ return 1;
}
- }
- return 0;
+ Standard_Integer From = Draw::Atoi(arg[j]), To = Draw::Atoi( arg[j+1] );
+ di << "RefArray with bounds from = " << From << " to = " << To << "\n";
+
+ Handle(TDataStd_ReferenceArray) A;
+ if(!isGuid)
+ A = TDataStd_ReferenceArray::Set(label, From, To);
+ else
+ A = TDataStd_ReferenceArray::Set(label, guid, From, To);
+
+ if ((!isGuid && nb > 5) || (isGuid && nb > 7)) {
+ j = j + 2;
+ for(Standard_Integer i = From; i<=To; i++) {
+ TDF_Label aRefLabel;
+ DDF::AddLabel(DF, arg[j], aRefLabel);
+ A->SetValue(i, aRefLabel);
+ j++;
+ }
+ }
+ return 0;
+ }
+ di << "DDataStd_SetRefArray: Error\n";
+ return 1;
}
-
//=======================================================================
//function : SetRefArrayValue (DF, entry, index, value)
//=======================================================================
}
//=======================================================================
-//function : GetRefArray (DF, entry )
+//function : GetRefArray (DF, entry [, guid])
//=======================================================================
static Standard_Integer DDataStd_GetRefArray (Draw_Interpretor& di,
- Standard_Integer,
+ Standard_Integer nb,
const char** arg)
{
+ if (nb >= 3)
+ {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF)) return 1;
+ TDF_Label label;
+ if( !DDF::FindLabel(DF, arg[2], label) ) {
+ di << "No label for entry" << "\n";
+ return 1;
+ }
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_ReferenceArray::GetID();
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF)) return 1;
- TDF_Label label;
- if( !DDF::FindLabel(DF, arg[2], label) ) {
- di << "No label for entry" << "\n";
- return 1;
- }
-
- Handle(TDataStd_ReferenceArray) A;
- if ( !label.FindAttribute(TDataStd_ReferenceArray::GetID(), A) ) {
- di << "There is no TDataStd_ReferenceArray under label" << "\n";
- return 1;
- }
-
- for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
- const TDF_Label& aLabel = A->Value(i);
- TCollection_AsciiString entry;
- TDF_Tool::Entry(aLabel, entry);
- di << entry.ToCString();
- if(i<A->Upper())
- di<<" ";
- }
- di<<"\n";
- return 0;
-}
+ Handle(TDataStd_ReferenceArray) A;
+ if ( !label.FindAttribute(aGuid, A) ) {
+ di << "There is no TDataStd_ReferenceArray at the label" << "\n";
+ return 1;
+ }
+ for(Standard_Integer i = A->Lower(); i<=A->Upper(); i++){
+ const TDF_Label& aLabel = A->Value(i);
+ TCollection_AsciiString entry;
+ TDF_Tool::Entry(aLabel, entry);
+ di << entry.ToCString();
+ if(i<A->Upper())
+ di<<" ";
+ }
+ di<<"\n";
+ return 0;
+ }
+ di << "TDataStd_ReferenceArray: Error\n";
+ return 1;
+}
//=======================================================================
//function : GetRefArrayValue (DF, entry, index)
//=======================================================================
static Standard_Integer DDataStd_GetRefArrayValue (Draw_Interpretor& di,
- Standard_Integer,
+ Standard_Integer nb,
const char** arg)
{
- Handle(TDF_Data) DF;
- if (!DDF::GetDF(arg[1],DF))
+ if (nb >= 3)
+ {
+ Handle(TDF_Data) DF;
+ if (!DDF::GetDF(arg[1],DF))
return 1;
- TDF_Label label;
- if (!DDF::FindLabel(DF, arg[2], label)) {
- di << "No label for entry" << "\n";
- return 1;
- }
-
- Handle(TDataStd_ReferenceArray) A;
- if ( !label.FindAttribute(TDataStd_ReferenceArray::GetID(), A) ) {
- di << "There is no TDataStd_ReferenceArray under label" << "\n";
- return 1;
- }
-
- Standard_Integer index = Draw::Atoi(arg[3]);
- if (index < A->Lower() || index > A->Upper()) {
- di << "Index is out of range\n";
- return 1;
- } else {
- const TDF_Label& value = A->Value(index);
- TCollection_AsciiString entry;
- TDF_Tool::Entry(value, entry);
- di << entry.ToCString() << "\n";
- }
+ TDF_Label label;
+ if (!DDF::FindLabel(DF, arg[2], label)) {
+ di << "No label for entry" << "\n";
+ return 1;
+ }
+ Standard_GUID aGuid;
+ if(nb == 4) {
+ if (Standard_GUID::CheckGUIDFormat(arg[3]))
+ aGuid = Standard_GUID(arg[3]);
+ else {
+ di << "Wrong GUID format" << "\n";
+ return 1;
+ }
+ } else
+ aGuid = TDataStd_ReferenceArray::GetID();
- return 0;
-}
+ Handle(TDataStd_ReferenceArray) A;
+ if ( !label.FindAttribute(aGuid, A) ) {
+ di << "There is no TDataStd_ReferenceArray at the label" << "\n";
+ return 1;
+ }
+
+ Standard_Integer index = Draw::Atoi(arg[3]);
+ if (index < A->Lower() || index > A->Upper()) {
+ di << "Index is out of range\n";
+ return 1;
+ } else {
+ const TDF_Label& value = A->Value(index);
+ TCollection_AsciiString entry;
+ TDF_Tool::Entry(value, entry);
+ di << entry.ToCString() << "\n";
+ }
+ return 0;
+ }
+ di << "TDataStd_ReferenceArray: Error\n";
+ return 1;
+}
//=======================================================================
//function : DDataStd_SetTriangulation
__FILE__, DDataStd_SetInteger, g);
theCommands.Add ("SetIntArray",
- "SetIntArray (DF, entry, isDelta, From, To, [elmt1, elmt2, ...])",
+ "SetIntArray (DF, entry, isDelta, [-g Guid,] From, To [, elmt1, elmt2, ...])",
__FILE__, DDataStd_SetIntArray, g);
theCommands.Add ("SetIntArrayValue",
__FILE__, DDataStd_SetReal, g);
theCommands.Add ("SetRealArray",
- "SetRealArray (DF, entry, isDelta, From, To, [elmt1, elmt2, ...])",
+ "SetRealArray (DF, entry, isDelta, [-g Guid,] From, To [, elmt1, elmt2, ...])",
__FILE__, DDataStd_SetRealArray, g);
theCommands.Add ("SetRealArrayValue",
__FILE__, DDataStd_SetRealArrayValue, g);
theCommands.Add ("SetByteArray",
- "SetByteArray (DF, entry, isDelta, From, To, [elmt1, elmt2, ...])",
+ "SetByteArray (DF, entry, isDelta, [-g Guid,] From, To [, elmt1, elmt2, ...])",
__FILE__, DDataStd_SetByteArray, g);
theCommands.Add ("SetByteArrayValue",
__FILE__, DDataStd_SetByteArrayValue, g);
theCommands.Add ("SetExtStringArray",
- "SetExtStringArray (DF, entry, isDelta, From, To, [elmt1, elmt2, ...])",
+ "SetExtStringArray (DF, entry, isDelta, [-g Guid,] From, To [, elmt1, elmt2, ...])",
__FILE__, DDataStd_SetExtStringArray, g);
theCommands.Add ("SetExtStringArrayValue",
__FILE__, DDataStd_SetExtStringArrayValue, g);
theCommands.Add ("SetRefArray",
- "SetRefArray (DF, entry, From, To, [lab1, lab2, ...])",
+ "SetRefArray (DF, entry, [-g Guid,] From, To [, lab1, lab2, ...])",
__FILE__, DDataStd_SetRefArray, g);
theCommands.Add ("SetRefArrayValue",
__FILE__, DDataStd_SetAsciiString, g);
theCommands.Add ("SetBooleanArray",
- "SetBooleanArray (DF, entry, isDelta, From, To, [elmt1, elmt2, ...])",
+ "SetBooleanArray (DF, entry, [-g Guid,] From, To [, elmt1, elmt2, ...])",
__FILE__, DDataStd_SetBooleanArray, g);
theCommands.Add ("SetBooleanArrayValue",
__FILE__, DDataStd_SetBooleanArrayValue, g);
theCommands.Add ("SetBooleanList",
- "SetBooleanList (DF, entry, elmt1, elmt2, ... )",
+ "SetBooleanList (DF, entry, [-g Guid,] elmt1, elmt2, ... )",
__FILE__, DDataStd_SetBooleanList, g);
theCommands.Add ("SetIntegerList",
- "SetIntegerList (DF, entry, elmt1, elmt2, ... )",
+ "SetIntegerList (DF, entry, [-g Guid,] elmt1, elmt2, ... )",
__FILE__, DDataStd_SetIntegerList, g);
theCommands.Add ("SetRealList",
- "SetRealList (DF, entry, elmt1, elmt2, ... )",
+ "SetRealList (DF, entry, [-g guid,] elmt1, elmt2, ... )",
__FILE__, DDataStd_SetRealList, g);
theCommands.Add ("SetExtStringList",
- "SetExtStringList (DF, entry, elmt1, elmt2, ... )",
+ "SetExtStringList (DF, entry,[-g Guid,] elmt1, elmt2, ... )",
__FILE__, DDataStd_SetExtStringList, g);
theCommands.Add ("SetReferenceList",
- "SetReferenceList (DF, entry, elmt1, elmt2, ... )",
+ "SetReferenceList (DF, entry, [-g Guid,] elmt1, elmt2, ... )",
__FILE__, DDataStd_SetReferenceList, g);
- theCommands.Add ("SetTriangulation",
+ theCommands.Add ("SetTriangulation",
"SetTriangulation (DF, entry, face) - adds label with passed entry to \
DF and put an attribute with the triangulation from passed face",
__FILE__, DDataStd_SetTriangulation, g);
- // Insert before and after (for lists)
-
theCommands.Add ("InsertBeforeExtStringList",
"InsertBeforeExtStringList (DF, entry, index, value )",
__FILE__, DDataStd_InsertBeforeExtStringList, g);
__FILE__, DDataStd_GetInteger, g);
theCommands.Add ("GetIntArray",
- "GetIntArray (DF, entry )",
+ "GetIntArray (DF, entry [, guid])",
__FILE__, DDataStd_GetIntArray, g);
theCommands.Add ("GetIntArrayValue",
__FILE__, DDataStd_GetIntArrayValue, g);
theCommands.Add ("GetRealArray",
- "GetRealArray (DF, entry )",
+ "GetRealArray (DF, entry [, guid])",
__FILE__, DDataStd_GetRealArray, g);
theCommands.Add ("GetRealArrayValue",
__FILE__, DDataStd_GetRealArrayValue, g);
theCommands.Add ("GetByteArray",
- "GetByteArray (DF, entry )",
+ "GetByteArray (DF, entry [, guid])",
__FILE__, DDataStd_GetByteArray, g);
theCommands.Add ("GetByteArrayValue",
__FILE__, DDataStd_GetByteArrayValue, g);
theCommands.Add ("GetExtStringArray",
- "GetExtStringArray (DF, entry )",
+ "GetExtStringArray (DF, entry [, guid])",
__FILE__, DDataStd_GetExtStringArray, g);
theCommands.Add ("GetExtStringArrayValue",
__FILE__, DDataStd_GetExtStringArrayValue, g);
theCommands.Add ("GetRefArray",
- "GetRefArray (DF, entry )",
+ "GetRefArray (DF, entry [, guid])",
__FILE__, DDataStd_GetRefArray, g);
theCommands.Add ("GetRefArrayValue",
__FILE__, DDataStd_DumpRelation, g);
theCommands.Add ("GetBooleanArray",
- "GetBooleanArray (DF, entry )",
+ "GetBooleanArray (DF, entry [, guid])",
__FILE__, DDataStd_GetBooleanArray, g);
theCommands.Add ("GetBooleanArrayValue",
__FILE__, DDataStd_GetBooleanArrayValue, g);
theCommands.Add ("GetBooleanList",
- "GetBooleanList (DF, entry )",
+ "GetBooleanList (DF, entry [, guid])",
__FILE__, DDataStd_GetBooleanList, g);
theCommands.Add ("GetIntegerList",
- "GetIntegerList (DF, entry )",
+ "GetIntegerList (DF, entry [, guid])",
__FILE__, DDataStd_GetIntegerList, g);
theCommands.Add ("GetRealList",
- "GetRealList (DF, entry )",
+ "GetRealList (DF, entry [, guid])",
__FILE__, DDataStd_GetRealList, g);
theCommands.Add ("GetExtStringList",
- "GetExtStringList (DF, entry)",
+ "GetExtStringList (DF, entry [, guid])",
__FILE__, DDataStd_GetExtStringList, g);
theCommands.Add ("GetReferenceList",
- "GetReferenceList (DF, entry)",
+ "GetReferenceList (DF, entry [, guid])",
__FILE__, DDataStd_GetReferenceList, g);
// ========================= UTF =====================================
#include <Standard_Integer.hxx>
class Standard_ErrorHandler;
-class Standard_GUID;
class Standard_Persistent;
class Standard_Transient;
class Standard_Failure;
#ifndef _Standard_GUID_HeaderFile
#define _Standard_GUID_HeaderFile
-#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Handle.hxx>
#include <TDF_Data.hxx>
#include <TDF_Attribute.hxx>
-
//! Create a transient label tree from persistent data
class StdLPersistent_Data::Parser
{
// read persistent attribute
Handle(StdObjMgt_Persistent)& aPAttrib = myAttribIter.ChangeValue();
myAttribIter.Next();
-
// create transient attribute and add it to the label
- if (aPAttrib)
- theLabel.AddAttribute (aPAttrib->CreateAttribute());
+ if (aPAttrib) {
+ Handle (TDF_Attribute) anAtt = aPAttrib->CreateAttribute();
+ anAtt->SetID();
+ theLabel.AddAttribute (anAtt);
+ }
}
// Read child labels count
//! Returns the ID of the attribute.
Standard_EXPORT virtual const Standard_GUID& ID() const = 0;
-
+
+ //! Sets specific ID of the attribute (supports several attributes
+ //! of one type at the same label feature).
+ Standard_EXPORT virtual void SetID(const Standard_GUID& theGuid);
+
+ //! Sets default ID defined in nested class (to be used for attributes having User ID feature).
+ Standard_EXPORT virtual void SetID();
+
//! Returns the label to which the attribute is
//! attached. If the label is not included in a DF,
//! the label is null. See Label.
// operator <<
inline Standard_OStream& operator << (Standard_OStream& anOS,
- const Handle(TDF_Attribute)& anAtt)
+ const Handle(TDF_Attribute)& anAtt)
{ return anAtt->Dump(anOS); }
+
+//=======================================================================
+inline void TDF_Attribute::SetID(const Standard_GUID& )
+{}
+
+//=======================================================================
+inline void TDF_Attribute::SetID()
+{}
\ No newline at end of file
if (theLabMap.IsBound(sLab)) {
TDF_Label tIns(theLabMap.Find(sLab));
TDF_CopyTool::CopyLabels(sLab,tIns,
- theLabMap,theAttMap,srcLabs,srcAtts);
+ theLabMap,theAttMap,srcLabs,srcAtts);
}
// if not bound : do nothing!
}
// 2 - The target attribute is present BUT its privilege over the
// source one must be ignored. The source attribute can be copied.
if ((sAtt != tAtt) && aPrivilegeFilter.IsIgnored(tAtt->ID()))
- sAtt->Paste(tAtt,aRelocationTable);
+ sAtt->Paste(tAtt,aRelocationTable);
}
}
}
const TDF_AttributeMap& aSrcAttributeMap)
{
TDF_CopyTool::CopyAttributes(aSLabel,aTargetLabel,
- aAttMap,aSrcAttributeMap);
+ aAttMap,aSrcAttributeMap);
// Does the same for the children.
for (TDF_ChildIterator childItr(aSLabel); childItr.More(); childItr.Next()){
TDF_Label childTIns = aTargetLabel.FindChild(childSLab.Tag());
aLabMap.Bind(childSLab,childTIns);
TDF_CopyTool::CopyLabels(childSLab,childTIns,
- aLabMap,aAttMap,
- aSrcLabelMap,aSrcAttributeMap);
+ aLabMap,aAttMap,
+ aSrcLabelMap,aSrcAttributeMap);
}
}
}
-
//=======================================================================
//function : CopyAttributes
//purpose : Internal attribute copy method.
if (aSrcAttributeMap.Contains(sAtt)) {
const Standard_GUID& id = sAtt->ID();
if (!aTargetLabel.FindAttribute(id,tAtt)) {
- tAtt = sAtt->NewEmpty();
- aTargetLabel.AddAttribute(tAtt);
- aAttMap.Bind(sAtt,tAtt);
+ tAtt = sAtt->NewEmpty();
+ if(tAtt->ID() != id)
+ tAtt->SetID(id);//
+ aTargetLabel.AddAttribute(tAtt);
+ aAttMap.Bind(sAtt,tAtt);
}
else {
- // Some attributes have the same ID, but are different and
- // exclusive. This obliged to test the dynamic type identity.
- if (tAtt->IsInstance(sAtt->DynamicType()))
- aAttMap.Bind(sAtt,tAtt);
- else
- throw Standard_TypeMismatch("TDF_CopyTool: Cannot paste to a different type attribute.");
+ // Some attributes have the same ID, but are different and
+ // exclusive. This obliged to test the dynamic type identity.
+ if (tAtt->IsInstance(sAtt->DynamicType()))
+ aAttMap.Bind(sAtt,tAtt);
+ else
+ throw Standard_TypeMismatch("TDF_CopyTool: Cannot paste to a different type attribute.");
}
}
}
myID = theGuid;
}
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_AsciiString::SetID()
+{
+ Backup();
+ myID = GetID();
+}
//=======================================================================
//function : NewEmpty
//purpose :
Standard_EXPORT void Set (const TCollection_AsciiString& S);
//! Sets the explicit user defined GUID to the attribute.
- Standard_EXPORT void SetID (const Standard_GUID& guid);
+ Standard_EXPORT void SetID (const Standard_GUID& guid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
Standard_EXPORT const TCollection_AsciiString& Get() const;
return TDataStd_BooleanArrayID;
}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_BooleanArray) SetAttr(const TDF_Label& label,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_BooleanArray) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_BooleanArray;
+ A->SetID(theGuid);
+ A->Init (lower, upper);
+ label.AddAttribute(A);
+ }
+ else if (lower != A->Lower() || upper != A->Upper())
+ {
+ A->Init(lower, upper);
+ }
+ return A;
+}
+
//=======================================================================
//function : TDataStd_BooleanArray
//purpose : Empty Constructor
//purpose :
//=======================================================================
void TDataStd_BooleanArray::Init(const Standard_Integer lower,
- const Standard_Integer upper)
+ const Standard_Integer upper)
{
+ Standard_RangeError_Raise_if(upper < lower,"TDataStd_BooleanArray::Init");
Backup();
-
myLower = lower;
myUpper = upper;
- if (myUpper >= myLower)
- myValues = new TColStd_HArray1OfByte(0, Length() >> 3, 0/*initialize to FALSE*/);
+ myValues = new TColStd_HArray1OfByte(0, Length() >> 3, 0/*initialize to FALSE*/);
}
//=======================================================================
//purpose :
//=======================================================================
Handle(TDataStd_BooleanArray) TDataStd_BooleanArray::Set(const TDF_Label& label,
- const Standard_Integer lower,
- const Standard_Integer upper)
+ const Standard_Integer lower,
+ const Standard_Integer upper)
{
- Handle(TDataStd_BooleanArray) A;
- if (!label.FindAttribute (TDataStd_BooleanArray::GetID(), A))
- {
- A = new TDataStd_BooleanArray;
- A->Init (lower, upper);
- label.AddAttribute(A);
- }
- else if (lower != A->Lower() || upper != A->Upper())
- {
- A->Init(lower, upper);
- }
- return A;
+ return SetAttr(label, lower, upper, GetID());
}
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_BooleanArray) TDataStd_BooleanArray::Set(const TDF_Label& label,
+ const Standard_GUID& theGuid,
+ const Standard_Integer lower,
+ const Standard_Integer upper)
+{
+ return SetAttr(label, lower, upper, theGuid);
+}
+
//=======================================================================
//function : SetValue
//purpose :
//=======================================================================
void TDataStd_BooleanArray::SetValue (const Standard_Integer index,
- const Standard_Boolean value)
+ const Standard_Boolean value)
{
if (myValues.IsNull())
//=======================================================================
const Standard_GUID& TDataStd_BooleanArray::ID () const
{
- return GetID();
+ return myID;
}
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_BooleanArray::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_BooleanArray::SetID()
+{
+ Backup();
+ myID = GetID();
+}
//=======================================================================
//function : NewEmpty
//purpose :
{
myValues->SetValue(i, with_array.Value(i));
}
+ myID = anArray->ID();
}
else
{
anArray->Init(myLower, myUpper);
for (Standard_Integer i = myLower; i <= myUpper; i++)
{
- anArray->SetValue(i, Value(i));
+ anArray->SetValue(i, Value(i));
}
}
+ anArray->SetID(myID);
}
}
//=======================================================================
Standard_OStream& TDataStd_BooleanArray::Dump (Standard_OStream& anOS) const
{
- anOS << "BooleanArray";
+ anOS << "\nBooleanArray: ";
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
+ anOS <<endl;
return anOS;
}
#include <TDF_Attribute.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
class Standard_GUID;
class TDF_Label;
class TDF_Attribute;
//! Returns an ID for array.
Standard_EXPORT static const Standard_GUID& GetID();
- //! Finds or creates an attribute with the array.
+ //! Finds or creates an attribute with internal boolean array.
Standard_EXPORT static Handle(TDataStd_BooleanArray) Set (const TDF_Label& label, const Standard_Integer lower, const Standard_Integer upper);
-
+
+ //! Finds or creates an attribute with the array using explicit user defined <guid>.
+ Standard_EXPORT static Handle(TDataStd_BooleanArray) Set (const TDF_Label& label, const Standard_GUID& theGuid,
+ const Standard_Integer lower, const Standard_Integer upper);
+
//! Initialize the inner array with bounds from <lower> to <upper>
Standard_EXPORT void Init (const Standard_Integer lower, const Standard_Integer upper);
//! Sets the <Index>th element of the array to <Value>
//! OutOfRange exception is raised if <Index> doesn't respect Lower and Upper bounds of the internal array.
Standard_EXPORT void SetValue (const Standard_Integer index, const Standard_Boolean value);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Return the value of the <Index>th element of the array.
Standard_EXPORT Standard_Boolean Value (const Standard_Integer Index) const;
-Standard_Boolean operator () (const Standard_Integer Index) const
-{
- return Value(Index);
-}
+
+ Standard_Boolean operator () (const Standard_Integer Index) const
+ {
+ return Value(Index);
+ }
//! Returns the lower boundary of the array.
Standard_EXPORT Standard_Integer Lower() const;
Handle(TColStd_HArray1OfByte) myValues;
Standard_Integer myLower;
Standard_Integer myUpper;
-
+ Standard_GUID myID;
};
return TDataStd_BooleanListID;
}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_BooleanList) SetAttr(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_BooleanList) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_BooleanList;
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ return A;
+}
+
//=======================================================================
//function : TDataStd_BooleanList
//purpose : Empty Constructor
//=======================================================================
Handle(TDataStd_BooleanList) TDataStd_BooleanList::Set(const TDF_Label& label)
{
- Handle(TDataStd_BooleanList) A;
- if (!label.FindAttribute (TDataStd_BooleanList::GetID(), A))
- {
- A = new TDataStd_BooleanList;
- label.AddAttribute(A);
- }
- return A;
+ return SetAttr(label, GetID());
}
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_BooleanList) TDataStd_BooleanList::Set(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ return SetAttr(label, theGuid);
+}
//=======================================================================
//function : IsEmpty
//purpose :
//=======================================================================
const Standard_GUID& TDataStd_BooleanList::ID () const
{
- return GetID();
+ return myID;
+}
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_BooleanList::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+
+void TDataStd_BooleanList::SetID()
+{
+ Backup();
+ myID = GetID();
}
//=======================================================================
{
myList.Append (itr.Value() ? 1 : 0);
}
+ myID = aList->ID();
}
//=======================================================================
{
aList->Append (itr.Value() != 0);
}
+ aList->SetID(myID);
}
//=======================================================================
//=======================================================================
Standard_OStream& TDataStd_BooleanList::Dump (Standard_OStream& anOS) const
{
- anOS << "BooleanList";
+ anOS << "\nBooleanList: ";
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
+ anOS << endl;
return anOS;
}
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class Standard_GUID;
class TDF_Label;
class TDF_Attribute;
//! Finds or creates a list of boolean values attribute.
Standard_EXPORT static Handle(TDataStd_BooleanList) Set (const TDF_Label& label);
+
+ //! Finds or creates a list of boolean values attribute with explicit user defined <guid>.
+ Standard_EXPORT static Handle(TDataStd_BooleanList) Set (const TDF_Label& label, const Standard_GUID& theGuid);
Standard_EXPORT TDataStd_BooleanList();
//! Removes a value at <index> position.
Standard_EXPORT Standard_Boolean Remove (const Standard_Integer index);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
TDataStd_ListOfByte myList;
-
+ Standard_GUID myID;
};
//function : TDataStd_ByteArray
//purpose : Empty Constructor
//=======================================================================
-TDataStd_ByteArray::TDataStd_ByteArray() : myIsDelta(Standard_False){}
-
+TDataStd_ByteArray::TDataStd_ByteArray() : myIsDelta(Standard_False)
+{}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_ByteArray) SetAttr(const TDF_Label& label,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_ByteArray) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_ByteArray;
+ A->Init (lower, upper);
+ A->SetDelta(isDelta);
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ else if (lower != A->Lower() || upper != A->Upper())
+ {
+ A->Init(lower, upper);
+ }
+ return A;
+}
//=======================================================================
//function : Init
//purpose :
//=======================================================================
void TDataStd_ByteArray::Init(const Standard_Integer lower,
- const Standard_Integer upper)
+ const Standard_Integer upper)
{
+ Standard_RangeError_Raise_if(upper < lower,"TDataStd_ByteArray::Init");
Backup();
-
- if (upper >= lower)
- myValue = new TColStd_HArray1OfByte(lower, upper, 0x00);
+ myValue = new TColStd_HArray1OfByte(lower, upper, 0x00);
}
//=======================================================================
//purpose :
//=======================================================================
Handle(TDataStd_ByteArray) TDataStd_ByteArray::Set(const TDF_Label& label,
- const Standard_Integer lower,
- const Standard_Integer upper,
- const Standard_Boolean isDelta)
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta)
{
- Handle(TDataStd_ByteArray) A;
- if (!label.FindAttribute (TDataStd_ByteArray::GetID(), A))
- {
- A = new TDataStd_ByteArray;
- A->Init (lower, upper);
- A->SetDelta(isDelta);
- label.AddAttribute(A);
- }
- return A;
+ return SetAttr(label, lower, upper, isDelta, GetID());
+}
+
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_ByteArray) TDataStd_ByteArray::Set(const TDF_Label& label,
+ const Standard_GUID& theGuid,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta)
+{
+ return SetAttr(label, lower, upper, isDelta, theGuid);
}
//=======================================================================
//purpose :
//=======================================================================
void TDataStd_ByteArray::SetValue (const Standard_Integer index,
- const Standard_Byte value)
+ const Standard_Byte value)
{
if (myValue.IsNull())
return;
// : that holds <newArray>
//=======================================================================
void TDataStd_ByteArray::ChangeArray (const Handle(TColStd_HArray1OfByte)& newArray,
- const Standard_Boolean isCheckItems)
+ const Standard_Boolean isCheckItems)
{
Standard_Integer aLower = newArray->Lower();
if(isCheckItems) {
Standard_Boolean isEqual = Standard_True;
for(i = aLower; i <= anUpper; i++) {
- if(myValue->Value(i) != newArray->Value(i)) {
- isEqual = Standard_False;
- break;
- }
+ if(myValue->Value(i) != newArray->Value(i)) {
+ isEqual = Standard_False;
+ break;
+ }
}
if(isEqual)
- return;
+ return;
}
}
//=======================================================================
const Standard_GUID& TDataStd_ByteArray::ID () const
{
- return GetID();
+ return myID;
+}
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_ByteArray::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+
+void TDataStd_ByteArray::SetID()
+{
+ Backup();
+ myID = GetID();
}
//=======================================================================
for (; i <= upper; i++)
myValue->SetValue(i, with_array.Value(i));
myIsDelta = anArray->myIsDelta;
+ myID = anArray->ID();
}
else
myValue.Nullify();
//purpose :
//=======================================================================
void TDataStd_ByteArray::Paste (const Handle(TDF_Attribute)& Into,
- const Handle(TDF_RelocationTable)& ) const
+ const Handle(TDF_RelocationTable)& ) const
{
if (!myValue.IsNull())
{
{
anAtt->ChangeArray( myValue, Standard_False);
anAtt->SetDelta(myIsDelta);
+ anAtt->SetID(myID);
}
}
}
//=======================================================================
Standard_OStream& TDataStd_ByteArray::Dump (Standard_OStream& anOS) const
{
- anOS << "ByteArray";
+ anOS << "\nByteArray: ";
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid << endl;
return anOS;
}
#include <Standard_Integer.hxx>
#include <Standard_Byte.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class TDataStd_DeltaOnModificationOfByteArray;
class Standard_GUID;
class TDF_Label;
DEFINE_STANDARD_RTTIEXT(TDataStd_ByteArray, TDF_Attribute)
public:
+
//! Static methods
//! ==============
//! Returns an ID for array.
//! attribute is returned.
Standard_EXPORT static Handle(TDataStd_ByteArray) Set (const TDF_Label& label, const Standard_Integer lower, const Standard_Integer upper, const Standard_Boolean isDelta = Standard_False);
+ //! Finds or creates an attribute with byte array and explicit user defined <guid> on the specified label.
+ Standard_EXPORT static Handle(TDataStd_ByteArray) Set (const TDF_Label& label, const Standard_GUID& theGuid,
+ const Standard_Integer lower, const Standard_Integer upper,
+ const Standard_Boolean isDelta = Standard_False);
+
//! Initialize the inner array with bounds from <lower> to <upper>
Standard_EXPORT void Init (const Standard_Integer lower, const Standard_Integer upper);
//! OutOfRange exception is raised if <Index> doesn't respect Lower and Upper bounds of the internal array.
Standard_EXPORT void SetValue (const Standard_Integer index, const Standard_Byte value);
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Return the value of the <Index>th element of the array.
Standard_EXPORT Standard_Byte Value (const Standard_Integer Index) const;
-Standard_Byte operator () (const Standard_Integer Index) const
-{
- return Value(Index);
-}
+
+ Standard_Byte operator () (const Standard_Integer Index) const
+ {
+ return Value(Index);
+ }
//! Returns the lower boundary of the array.
Standard_EXPORT Standard_Integer Lower() const;
Handle(TColStd_HArray1OfByte) myValue;
Standard_Boolean myIsDelta;
+ Standard_GUID myID;
};
return anExtStringArrayID;
}
-
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+Handle(TDataStd_ExtStringArray) SetAttr(const TDF_Label& label,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_ExtStringArray) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_ExtStringArray;
+ A->SetID(theGuid);
+ A->Init (lower, upper);
+ A->SetDelta(isDelta);
+ label.AddAttribute(A);
+ }
+ else if (lower != A->Lower() || upper != A->Upper())
+ {
+ A->Init(lower, upper);
+ }
+ return A;
+}
//=======================================================================
//function : TDataStd_ExtStringArray::TDataStd_ExtStringArray
//purpose :
//=======================================================================
void TDataStd_ExtStringArray::Init(const Standard_Integer lower,
- const Standard_Integer upper)
+ const Standard_Integer upper)
{
+ Standard_RangeError_Raise_if(upper < lower,"TDataStd_ExtStringArray::Init");
Backup();
myValue = new TColStd_HArray1OfExtendedString(lower, upper, "");
}
//=======================================================================
Handle(TDataStd_ExtStringArray) TDataStd_ExtStringArray::Set (
- const TDF_Label& label,
- const Standard_Integer lower,
- const Standard_Integer upper,
- const Standard_Boolean isDelta)
+ const TDF_Label& label,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta)
{
- Handle(TDataStd_ExtStringArray) A;
- if (!label.FindAttribute (TDataStd_ExtStringArray::GetID(), A)) {
- A = new TDataStd_ExtStringArray;
- A->Init (lower, upper);
- A->SetDelta(isDelta);
- label.AddAttribute(A);
- }
- else if (lower != A->Lower() || upper != A->Upper())
- {
- A->Init (lower, upper);
- }
- return A;
+ return SetAttr(label, lower, upper, isDelta, GetID());
}
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+
+Handle(TDataStd_ExtStringArray) TDataStd_ExtStringArray::Set (
+ const TDF_Label& label,
+ const Standard_GUID& theGuid,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta)
+{
+ return SetAttr(label, lower, upper, isDelta, theGuid);
+}
//=======================================================================
//function : SetValue
//purpose :
const TCollection_ExtendedString& TDataStd_ExtStringArray::Value (const Standard_Integer index) const
{
- if (myValue.IsNull())
- {
- static TCollection_ExtendedString staticEmptyValue;
- return staticEmptyValue;
- }
- return myValue->Value(index);
+ if (myValue.IsNull())
+ {
+ static TCollection_ExtendedString staticEmptyValue;
+ return staticEmptyValue;
+ }
+ return myValue->Value(index);
}
//=======================================================================
//=======================================================================
void TDataStd_ExtStringArray::ChangeArray(const Handle(TColStd_HArray1OfExtendedString)& newArray,
- const Standard_Boolean isCheckItems)
+ const Standard_Boolean isCheckItems)
{
Standard_Integer aLower = newArray->Lower();
Standard_Integer anUpper = newArray->Upper();
Standard_Boolean isEqual = Standard_True;
if(isCheckItems) {
for(i = aLower; i <= anUpper; i++) {
- if(myValue->Value(i) != newArray->Value(i)) {
- isEqual = Standard_False;
- break;
- }
+ if(myValue->Value(i) != newArray->Value(i)) {
+ isEqual = Standard_False;
+ break;
+ }
}
if(isEqual)
- return;
+ return;
}
}
//purpose :
//=======================================================================
-const Standard_GUID& TDataStd_ExtStringArray::ID () const { return GetID(); }
+const Standard_GUID& TDataStd_ExtStringArray::ID () const { return myID; }
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_ExtStringArray::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_ExtStringArray::SetID()
+{
+ Backup();
+ myID = GetID();
+}
//=======================================================================
//function : NewEmpty
for(i = lower; i<=upper; i++)
myValue->SetValue(i, anArray->Value(i));
myIsDelta = anArray->myIsDelta;
+ myID = anArray->ID();
}
else
myValue.Nullify();
//=======================================================================
void TDataStd_ExtStringArray::Paste (const Handle(TDF_Attribute)& Into,
- const Handle(TDF_RelocationTable)& ) const
+ const Handle(TDF_RelocationTable)& ) const
{
if(!myValue.IsNull()) {
Handle(TDataStd_ExtStringArray) anAtt = Handle(TDataStd_ExtStringArray)::DownCast(Into);
if(!anAtt.IsNull()) {
anAtt->ChangeArray( myValue, Standard_False );
anAtt->SetDelta(myIsDelta);
+ anAtt->SetID(myID);
}
}
}
Standard_OStream& TDataStd_ExtStringArray::Dump (Standard_OStream& anOS) const
{
- anOS << "ExtStringArray :";
+ anOS << "\nExtStringArray :";
if(!myValue.IsNull()) {
Standard_Integer i, lower, upper;
lower = myValue->Lower();
anOS << "\t" <<myValue->Value(i)<<endl;
}
anOS << " Delta is " << (myIsDelta ? "ON":"OFF");
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
anOS << endl;
return anOS;
}
#include <TDF_Attribute.hxx>
#include <Standard_Integer.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class TDataStd_DeltaOnModificationOfExtStringArray;
class Standard_GUID;
class TDF_Label;
//! If attribute is already set, all input parameters are refused and the found
//! attribute is returned.
Standard_EXPORT static Handle(TDataStd_ExtStringArray) Set (const TDF_Label& label, const Standard_Integer lower, const Standard_Integer upper, const Standard_Boolean isDelta = Standard_False);
-
+
+ //! Finds, or creates, an ExtStringArray attribute with explicit user defined <guid>.
+ //! The ExtStringArray attribute is returned.
+ Standard_EXPORT static Handle(TDataStd_ExtStringArray) Set (const TDF_Label& label, const Standard_GUID& theGuid,
+ const Standard_Integer lower, const Standard_Integer upper,
+ const Standard_Boolean isDelta = Standard_False);
+
+
//! Initializes the inner array with bounds from <lower> to <upper>
Standard_EXPORT void Init (const Standard_Integer lower, const Standard_Integer upper);
//! Sets the <Index>th element of the array to <Value>
//! OutOfRange exception is raised if <Index> doesn't respect Lower and Upper bounds of the internal array.
Standard_EXPORT void SetValue (const Standard_Integer Index, const TCollection_ExtendedString& Value);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Returns the value of the <Index>th element of the array
Standard_EXPORT const TCollection_ExtendedString& Value (const Standard_Integer Index) const;
-const TCollection_ExtendedString& operator () (const Standard_Integer Index) const
-{
- return Value(Index);
-}
+
+ const TCollection_ExtendedString& operator () (const Standard_Integer Index) const
+ {
+ return Value(Index);
+ }
//! Return the lower bound.
Standard_EXPORT Standard_Integer Lower() const;
Handle(TColStd_HArray1OfExtendedString) myValue;
Standard_Boolean myIsDelta;
+ Standard_GUID myID;
};
}
//=======================================================================
-//function : TDataStd_ExtStringList
-//purpose : Empty Constructor
+//function : SetAttr
+//purpose : Implements Set functionality
//=======================================================================
-TDataStd_ExtStringList::TDataStd_ExtStringList()
+static Handle(TDataStd_ExtStringList) SetAttr(const TDF_Label& label,
+ const Standard_GUID& theGuid)
{
-
+ Handle(TDataStd_ExtStringList) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_ExtStringList;
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ return A;
}
+//=======================================================================
+//function : TDataStd_ExtStringList
+//purpose : Empty Constructor
+//=======================================================================
+TDataStd_ExtStringList::TDataStd_ExtStringList()
+{}
+
//=======================================================================
//function : Set
//purpose :
//=======================================================================
Handle(TDataStd_ExtStringList) TDataStd_ExtStringList::Set(const TDF_Label& label)
{
- Handle(TDataStd_ExtStringList) A;
- if (!label.FindAttribute (TDataStd_ExtStringList::GetID(), A))
- {
- A = new TDataStd_ExtStringList;
- label.AddAttribute(A);
- }
- return A;
+ return SetAttr(label, GetID());
+}
+
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_ExtStringList) TDataStd_ExtStringList::Set(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ return SetAttr(label, theGuid);
}
//=======================================================================
//purpose :
//=======================================================================
Standard_Boolean TDataStd_ExtStringList::InsertBefore(const TCollection_ExtendedString& value,
- const TCollection_ExtendedString& before_value)
+ const TCollection_ExtendedString& before_value)
{
TDataStd_ListIteratorOfListOfExtendedString itr(myList);
for (; itr.More(); itr.Next())
//purpose :
//=======================================================================
Standard_Boolean TDataStd_ExtStringList::InsertAfter(const TCollection_ExtendedString& value,
- const TCollection_ExtendedString& after_value)
+ const TCollection_ExtendedString& after_value)
{
TDataStd_ListIteratorOfListOfExtendedString itr(myList);
for (; itr.More(); itr.Next())
//=======================================================================
const Standard_GUID& TDataStd_ExtStringList::ID () const
{
- return GetID();
+ return myID;
+}
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_ExtStringList::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
}
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+
+void TDataStd_ExtStringList::SetID()
+{
+ Backup();
+ myID = GetID();
+}
//=======================================================================
//function : NewEmpty
//purpose :
{
myList.Append(itr.Value());
}
+ myID = aList->ID();
}
//=======================================================================
//purpose :
//=======================================================================
void TDataStd_ExtStringList::Paste (const Handle(TDF_Attribute)& Into,
- const Handle(TDF_RelocationTable)& ) const
+ const Handle(TDF_RelocationTable)& ) const
{
Handle(TDataStd_ExtStringList) aList = Handle(TDataStd_ExtStringList)::DownCast(Into);
aList->Clear();
{
aList->Append(itr.Value());
}
+ aList->SetID(myID);
}
//=======================================================================
//=======================================================================
Standard_OStream& TDataStd_ExtStringList::Dump (Standard_OStream& anOS) const
{
- anOS << "ExtStringList";
+ anOS << "\nExtStringList: ";
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
+ anOS << endl;
return anOS;
}
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class Standard_GUID;
class TDF_Label;
class TCollection_ExtendedString;
//! Returns the ID of the list of strings attribute.
Standard_EXPORT static const Standard_GUID& GetID();
- //! Finds or creates a list of string values attribute.
+ //! Finds or creates a list of string values attribute with explicit user defined <guid>.
Standard_EXPORT static Handle(TDataStd_ExtStringList) Set (const TDF_Label& label);
+
+ //! Finds or creates a list of string values attribute.
+ Standard_EXPORT static Handle(TDataStd_ExtStringList) Set (const TDF_Label& label, const Standard_GUID& theGuid);
Standard_EXPORT TDataStd_ExtStringList();
Standard_EXPORT void Prepend (const TCollection_ExtendedString& value);
Standard_EXPORT void Append (const TCollection_ExtendedString& value);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Inserts the <value> before the first meet of <before_value>.
Standard_EXPORT Standard_Boolean InsertBefore (const TCollection_ExtendedString& value, const TCollection_ExtendedString& before_value);
TDataStd_ListOfExtendedString myList;
-
+ Standard_GUID myID;
};
Backup();
myID = theGuid;
}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_Integer::SetID()
+{
+ Backup();
+ myID = GetID();
+}
+
//=======================================================================
//function : NewEmpty
//purpose :
Standard_EXPORT void Set (const Standard_Integer V);
//! Sets the explicit GUID (user defined) for the attribute.
- Standard_EXPORT void SetID (const Standard_GUID& guid);
+ Standard_EXPORT void SetID (const Standard_GUID& guid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
//! Returns the integer value contained in the attribute.
Standard_EXPORT Standard_Integer Get() const;
return TDataStd_IntegerArrayID;
}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_IntegerArray) SetAttr(const TDF_Label& label,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_IntegerArray) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_IntegerArray;
+ A->Init (lower, upper);
+ A->SetDelta(isDelta);
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ else if (lower != A->Lower() || upper != A->Upper())
+ {
+ A->Init(lower, upper);
+ }
+ return A;
+}
//=======================================================================
//function : TDataStd_IntegerArray
//=======================================================================
TDataStd_IntegerArray::TDataStd_IntegerArray()
- :myIsDelta(Standard_False) {}
+ :myIsDelta(Standard_False)
+{}
//=======================================================================
//function : Init
void TDataStd_IntegerArray::Init(const Standard_Integer lower,
const Standard_Integer upper)
{
+ Standard_RangeError_Raise_if(upper < lower,"TDataStd_IntegerArray::Init");
Backup();
myValue = new TColStd_HArray1OfInteger(lower, upper, 0);
}
(const TDF_Label& label,
const Standard_Integer lower,
const Standard_Integer upper,
- const Standard_Boolean isDelta)
+ const Standard_Boolean isDelta)
{
- Handle(TDataStd_IntegerArray) A;
- if (!label.FindAttribute (TDataStd_IntegerArray::GetID(), A)) {
- A = new TDataStd_IntegerArray;
- A->Init (lower, upper);
- A->SetDelta(isDelta);
- label.AddAttribute(A);
- }
- else if (lower != A->Lower() || upper != A->Upper())
- {
- A->Init (lower, upper);
- }
- return A;
+ return SetAttr(label, lower, upper, isDelta, GetID());
}
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+
+Handle(TDataStd_IntegerArray) TDataStd_IntegerArray::Set
+ (const TDF_Label& label,
+ const Standard_GUID& theGuid,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta)
+
+{
+ return SetAttr(label, lower, upper, isDelta, theGuid);
+}
//=======================================================================
//function : SetValue
//purpose :
//=======================================================================
void TDataStd_IntegerArray::ChangeArray(const Handle(TColStd_HArray1OfInteger)& newArray,
- const Standard_Boolean isCheckItems)
+ const Standard_Boolean isCheckItems)
{
Standard_Integer aLower = newArray->Lower();
Standard_Integer anUpper = newArray->Upper();
if(isCheckItems) {
Standard_Boolean isEqual = Standard_True;
for(i = aLower; i <= anUpper; i++) {
- if(myValue->Value(i) != newArray->Value(i)) {
- isEqual = Standard_False;
- break;
- }
+ if(myValue->Value(i) != newArray->Value(i)) {
+ isEqual = Standard_False;
+ break;
+ }
}
if(isEqual)
- return;
+ return;
}
}
-
+
Backup();
// Handles of myValue of current and backuped attributes will be different!
if(myValue.IsNull() || !aDimEqual)
//purpose :
//=======================================================================
-const Standard_GUID& TDataStd_IntegerArray::ID () const { return GetID(); }
+const Standard_GUID& TDataStd_IntegerArray::ID () const { return myID; }
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_IntegerArray::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+
+void TDataStd_IntegerArray::SetID()
+{
+ Backup();
+ myID = GetID();
+}
//=======================================================================
//function : NewEmpty
for(i = lower; i<=upper; i++)
myValue->SetValue(i, anArray->Value(i));
myIsDelta = anArray->myIsDelta;
+ myID = anArray->ID();
}
else
myValue.Nullify();
if(!anAtt.IsNull()) {
anAtt->ChangeArray( myValue, Standard_False );
anAtt->SetDelta(myIsDelta);
+ anAtt->SetID(myID);
}
}
}
anOS << " " <<myValue->Value(i);
}
anOS << " Delta is " << (myIsDelta ? "ON":"OFF");
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
anOS << endl;
// anOS <<"\nAttribute fields: ";
return new TDataStd_DeltaOnModificationOfIntArray(Handle(TDataStd_IntegerArray)::DownCast (OldAttribute));
else return new TDF_DefaultDeltaOnModification(OldAttribute);
}
-
-
#include <TDF_Attribute.hxx>
#include <Standard_Integer.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class TDataStd_DeltaOnModificationOfIntArray;
class Standard_GUID;
class TDF_Label;
//! If <isDelta> == True, DeltaOnModification of the current attribute is used.
//! If attribute is already set, all input parameters are refused and the found
//! attribute is returned.
- Standard_EXPORT static Handle(TDataStd_IntegerArray) Set (const TDF_Label& label, const Standard_Integer lower, const Standard_Integer upper, const Standard_Boolean isDelta = Standard_False);
+ Standard_EXPORT static Handle(TDataStd_IntegerArray) Set (const TDF_Label& label, const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta = Standard_False);
+ //! Finds, or creates, an IntegerArray attribute with explicit user defined <guid>.
+ //! The IntegerArray attribute is returned.
+ Standard_EXPORT static Handle(TDataStd_IntegerArray) Set (const TDF_Label& label, const Standard_GUID& theGuid,
+ const Standard_Integer lower, const Standard_Integer upper,
+ const Standard_Boolean isDelta = Standard_False);
+
//! Initialize the inner array with bounds from <lower> to <upper>
Standard_EXPORT void Init (const Standard_Integer lower, const Standard_Integer upper);
//! OutOfRange exception is raised if <Index> doesn't respect Lower and Upper bounds of the internal array.
Standard_EXPORT void SetValue (const Standard_Integer Index, const Standard_Integer Value);
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Return the value of the <Index>th element of the array
Standard_EXPORT Standard_Integer Value (const Standard_Integer Index) const;
-Standard_Integer operator () (const Standard_Integer Index) const
-{
- return Value(Index);
-}
+
+ Standard_Integer operator () (const Standard_Integer Index) const
+ {
+ return Value(Index);
+ }
//! Returns the lower boundary of this array of integers.
Standard_EXPORT Standard_Integer Lower() const;
Handle(TColStd_HArray1OfInteger) myValue;
Standard_Boolean myIsDelta;
+ Standard_GUID myID;
+
};
return TDataStd_IntegerListID;
}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_IntegerList) SetAttr(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_IntegerList) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_IntegerList;
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ return A;
+}
+
//=======================================================================
//function : TDataStd_IntegerList
//purpose : Empty Constructor
//=======================================================================
Handle(TDataStd_IntegerList) TDataStd_IntegerList::Set(const TDF_Label& label)
{
- Handle(TDataStd_IntegerList) A;
- if (!label.FindAttribute (TDataStd_IntegerList::GetID(), A))
- {
- A = new TDataStd_IntegerList;
- label.AddAttribute(A);
- }
- return A;
+ return SetAttr(label, GetID());
+}
+
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_IntegerList) TDataStd_IntegerList::Set(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ return SetAttr(label, theGuid);
}
//=======================================================================
//purpose :
//=======================================================================
Standard_Boolean TDataStd_IntegerList::InsertBefore(const Standard_Integer value,
- const Standard_Integer before_value)
+ const Standard_Integer before_value)
{
TColStd_ListIteratorOfListOfInteger itr(myList);
for (; itr.More(); itr.Next())
//purpose :
//=======================================================================
Standard_Boolean TDataStd_IntegerList::InsertAfter(const Standard_Integer value,
- const Standard_Integer after_value)
+ const Standard_Integer after_value)
{
TColStd_ListIteratorOfListOfInteger itr(myList);
for (; itr.More(); itr.Next())
//=======================================================================
const Standard_GUID& TDataStd_IntegerList::ID () const
{
- return GetID();
+ return myID;
+}
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_IntegerList::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+
+void TDataStd_IntegerList::SetID()
+{
+ Backup();
+ myID = GetID();
}
//=======================================================================
{
myList.Append(itr.Value());
}
+ myID = aList->ID();
}
//=======================================================================
//purpose :
//=======================================================================
void TDataStd_IntegerList::Paste (const Handle(TDF_Attribute)& Into,
- const Handle(TDF_RelocationTable)& ) const
+ const Handle(TDF_RelocationTable)& ) const
{
Handle(TDataStd_IntegerList) aList = Handle(TDataStd_IntegerList)::DownCast(Into);
aList->Clear();
{
aList->Append(itr.Value());
}
+ aList->SetID(myID);
}
//=======================================================================
//=======================================================================
Standard_OStream& TDataStd_IntegerList::Dump (Standard_OStream& anOS) const
{
- anOS << "IntegerList";
+ anOS << "\nIntegerList: ";
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
+ anOS << endl;
return anOS;
}
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class Standard_GUID;
class TDF_Label;
class TDF_Attribute;
//! Finds or creates a list of integer values attribute.
Standard_EXPORT static Handle(TDataStd_IntegerList) Set (const TDF_Label& label);
-
+
+ //! Finds or creates a list of integer values attribute with explicit user defined <guid>.
+ Standard_EXPORT static Handle(TDataStd_IntegerList) Set (const TDF_Label& label, const Standard_GUID& theGuid);
+
Standard_EXPORT TDataStd_IntegerList();
Standard_EXPORT Standard_Boolean IsEmpty() const;
Standard_EXPORT void Prepend (const Standard_Integer value);
Standard_EXPORT void Append (const Standard_Integer value);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Inserts the <value> before the first meet of <before_value>.
Standard_EXPORT Standard_Boolean InsertBefore (const Standard_Integer value, const Standard_Integer before_value);
TColStd_ListOfInteger myList;
-
+ Standard_GUID myID;
};
myID = theGuid;
}
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_Name::SetID()
+{
+ Backup();
+ myID = GetID();
+}
+
// TDF_Attribute methods
//=======================================================================
//function : ID
Standard_EXPORT void Set (const TCollection_ExtendedString& S);
//! Sets the explicit user defined GUID to the attribute.
- Standard_EXPORT void SetID (const Standard_GUID& guid);
+ Standard_EXPORT void SetID (const Standard_GUID& guid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
//! Returns the name contained in this name attribute.
Standard_EXPORT const TCollection_ExtendedString& Get() const;
Backup();
myID = theGuid;
}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_Real::SetID()
+{
+ Backup();
+ myID = GetID();
+}
//=======================================================================
//function : NewEmpty
//purpose :
Standard_EXPORT void Set (const Standard_Real V);
//! Sets the explicit GUID for the attribute.
- Standard_EXPORT void SetID (const Standard_GUID& guid);
+ Standard_EXPORT void SetID (const Standard_GUID& guid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
//! Returns the real number value contained in the attribute.
Standard_EXPORT Standard_Real Get() const;
return TDataStd_RealArrayID;
}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_RealArray) SetAttr(const TDF_Label& label,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_RealArray) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_RealArray;
+ A->Init (lower, upper);
+ A->SetDelta(isDelta);
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ else if (lower != A->Lower() || upper != A->Upper())
+ {
+ A->Init(lower, upper);
+ }
+ return A;
+}
//=======================================================================
//function : TDataStd_RealArray
//purpose : Empty Constructor
//=======================================================================
-TDataStd_RealArray::TDataStd_RealArray() : myIsDelta(Standard_False){}
+TDataStd_RealArray::TDataStd_RealArray() : myIsDelta(Standard_False)
+{}
//=======================================================================
//function : Init
void TDataStd_RealArray::Init(const Standard_Integer lower,
const Standard_Integer upper)
{
+ Standard_RangeError_Raise_if(upper < lower,"TDataStd_RealArray::Init");
Backup(); // jfa 15.01.2003 for LH3D1378
-
myValue = new TColStd_HArray1OfReal(lower, upper, 0.);
}
(const TDF_Label& label,
const Standard_Integer lower,
const Standard_Integer upper,
- const Standard_Boolean isDelta)
+ const Standard_Boolean isDelta)
{
- Handle(TDataStd_RealArray) A;
- if (!label.FindAttribute (TDataStd_RealArray::GetID(), A)) {
- A = new TDataStd_RealArray;
- A->Init (lower, upper);
- A->SetDelta(isDelta);
- label.AddAttribute(A);
- }
- else if (lower != A->Lower() || upper != A->Upper())
- {
- A->Init (lower, upper);
- }
- return A;
+ return SetAttr(label, lower, upper, isDelta, GetID());
}
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_RealArray) TDataStd_RealArray::Set
+ (const TDF_Label& label,
+ const Standard_GUID& theGuid,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_Boolean isDelta)
+{
+ return SetAttr(label, lower, upper, isDelta, theGuid);
+}
//=======================================================================
//function : SetValue
//purpose :
// OCC2932 correction
if(myValue.IsNull()) return;
if(myValue->Value(index) == value)
- return;
+ return;
Backup();
myValue->SetValue(index, value);
}
//=======================================================================
void TDataStd_RealArray::ChangeArray(const Handle(TColStd_HArray1OfReal)& newArray,
- const Standard_Boolean isCheckItems)
+ const Standard_Boolean isCheckItems)
{
Standard_Integer aLower = newArray->Lower();
Standard_Integer anUpper = newArray->Upper();
Standard_Boolean isEqual = Standard_True;
if(isCheckItems) {
for(i = aLower; i <= anUpper; i++) {
- if(myValue->Value(i) != newArray->Value(i)) {
- isEqual = Standard_False;
- break;
- }
+ if(myValue->Value(i) != newArray->Value(i)) {
+ isEqual = Standard_False;
+ break;
+ }
}
if(isEqual)
- return;
+ return;
}
}
//purpose :
//=======================================================================
-const Standard_GUID& TDataStd_RealArray::ID () const { return GetID(); }
+const Standard_GUID& TDataStd_RealArray::ID () const { return myID; }
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_RealArray::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_RealArray::SetID()
+{
+ Backup();
+ myID = GetID();
+}
//=======================================================================
//function : NewEmpty
myValue = new TColStd_HArray1OfReal(lower, upper);
for(i = lower; i<=upper; i++)
myValue->SetValue(i, anArray->Value(i));
+ myID = anArray->ID();
}
else
myValue.Nullify();
if(!anAtt.IsNull()) {
anAtt->ChangeArray( myValue, Standard_False );
anAtt->SetDelta(myIsDelta);
+ anAtt->SetID(myID);
}
}
}
anOS << " " <<myValue->Value(i);
}
anOS << " Delta is " << (myIsDelta ? "ON":"OFF");
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
anOS << endl;
return anOS;
}
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class TDataStd_DeltaOnModificationOfRealArray;
class Standard_GUID;
class TDF_Label;
//! If attribute is already set, input parameter <isDelta> is refused and the found
//! attribute returned.
Standard_EXPORT static Handle(TDataStd_RealArray) Set (const TDF_Label& label, const Standard_Integer lower, const Standard_Integer upper, const Standard_Boolean isDelta = Standard_False);
-
+
+ //! Finds, or creates, an RealArray attribute with explicit user defined <guid>.
+ //! The RealArray attribute is returned.
+ Standard_EXPORT static Handle(TDataStd_RealArray) Set (const TDF_Label& label, const Standard_GUID& theGuid,
+ const Standard_Integer lower, const Standard_Integer upper,
+ const Standard_Boolean isDelta = Standard_False);
+
//! Initialize the inner array with bounds from <lower> to <upper>
Standard_EXPORT void Init (const Standard_Integer lower, const Standard_Integer upper);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Sets the <Index>th element of the array to <Value>
//! OutOfRange exception is raised if <Index> doesn't respect Lower and Upper bounds of the internal array.
Standard_EXPORT void SetValue (const Standard_Integer Index, const Standard_Real Value);
//! Return the value of the <Index>th element of the array
Standard_EXPORT Standard_Real Value (const Standard_Integer Index) const;
-Standard_Real operator () (const Standard_Integer Index) const
-{
- return Value(Index);
-}
+
+ Standard_Real operator () (const Standard_Integer Index) const
+ {
+ return Value(Index);
+ }
//! Returns the lower boundary of the array.
Standard_EXPORT Standard_Integer Lower() const;
Handle(TColStd_HArray1OfReal) myValue;
Standard_Boolean myIsDelta;
+ Standard_GUID myID;
};
return TDataStd_RealListID;
}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_RealList) SetAttr(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_RealList) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_RealList;
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ return A;
+}
+
//=======================================================================
//function : TDataStd_RealList
//purpose : Empty Constructor
//=======================================================================
Handle(TDataStd_RealList) TDataStd_RealList::Set(const TDF_Label& label)
{
- Handle(TDataStd_RealList) A;
- if (!label.FindAttribute (TDataStd_RealList::GetID(), A))
- {
- A = new TDataStd_RealList;
- label.AddAttribute(A);
- }
- return A;
+ return SetAttr(label, GetID());
+}
+
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_RealList) TDataStd_RealList::Set(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ return SetAttr(label, theGuid);
}
//=======================================================================
//purpose :
//=======================================================================
Standard_Boolean TDataStd_RealList::InsertBefore(const Standard_Real value,
- const Standard_Real before_value)
+ const Standard_Real before_value)
{
TColStd_ListIteratorOfListOfReal itr(myList);
for (; itr.More(); itr.Next())
//purpose :
//=======================================================================
Standard_Boolean TDataStd_RealList::InsertAfter(const Standard_Real value,
- const Standard_Real after_value)
+ const Standard_Real after_value)
{
TColStd_ListIteratorOfListOfReal itr(myList);
for (; itr.More(); itr.Next())
//=======================================================================
const Standard_GUID& TDataStd_RealList::ID () const
{
- return GetID();
+ return myID;
+}
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+void TDataStd_RealList::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_RealList::SetID()
+{
+ Backup();
+ myID = GetID();
}
//=======================================================================
{
myList.Append(itr.Value());
}
+ myID = aList->ID();
}
//=======================================================================
//purpose :
//=======================================================================
void TDataStd_RealList::Paste (const Handle(TDF_Attribute)& Into,
- const Handle(TDF_RelocationTable)& ) const
+ const Handle(TDF_RelocationTable)& ) const
{
Handle(TDataStd_RealList) aList = Handle(TDataStd_RealList)::DownCast(Into);
aList->Clear();
{
aList->Append(itr.Value());
}
+ aList->SetID(myID);
}
//=======================================================================
//=======================================================================
Standard_OStream& TDataStd_RealList::Dump (Standard_OStream& anOS) const
{
- anOS << "RealList";
+ anOS << "\nRealList: ";
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
+ anOS << endl;
return anOS;
}
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class Standard_GUID;
class TDF_Label;
class TDF_Attribute;
//! Finds or creates a list of double values attribute.
Standard_EXPORT static Handle(TDataStd_RealList) Set (const TDF_Label& label);
-
+
+ //! Finds or creates a list of double values attribute with explicit user defined <guid>.
+ Standard_EXPORT static Handle(TDataStd_RealList) Set (const TDF_Label& label, const Standard_GUID& theGuid);
+
Standard_EXPORT TDataStd_RealList();
Standard_EXPORT Standard_Boolean IsEmpty() const;
Standard_EXPORT void Prepend (const Standard_Real value);
Standard_EXPORT void Append (const Standard_Real value);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Inserts the <value> before the first meet of <before_value>.
Standard_EXPORT Standard_Boolean InsertBefore (const Standard_Real value, const Standard_Real before_value);
TColStd_ListOfReal myList;
-
+ Standard_GUID myID;
};
return TDataStd_ReferenceArrayID;
}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_ReferenceArray) SetAttr(const TDF_Label& label,
+ const Standard_Integer lower,
+ const Standard_Integer upper,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_ReferenceArray) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_ReferenceArray;
+ A->Init (lower, upper);
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ else if (lower != A->Lower() || upper != A->Upper())
+ {
+ A->Init(lower, upper);
+ }
+ return A;
+}
+
//=======================================================================
//function : TDataStd_ReferenceArray
//purpose : Empty Constructor
//purpose :
//=======================================================================
void TDataStd_ReferenceArray::Init(const Standard_Integer lower,
- const Standard_Integer upper)
+ const Standard_Integer upper)
{
Standard_RangeError_Raise_if(upper < lower,"TDataStd_ReferenceArray::Init");
Backup();
//purpose :
//=======================================================================
Handle(TDataStd_ReferenceArray) TDataStd_ReferenceArray::Set(const TDF_Label& label,
- const Standard_Integer lower,
- const Standard_Integer upper)
+ const Standard_Integer lower,
+ const Standard_Integer upper)
{
- Handle(TDataStd_ReferenceArray) A;
- if (!label.FindAttribute (TDataStd_ReferenceArray::GetID(), A))
- {
- A = new TDataStd_ReferenceArray;
- A->Init (lower, upper);
- label.AddAttribute(A);
- }
- else if (lower != A->Lower() || upper != A->Upper())
- {
- A->Init(lower, upper);
- }
- return A;
+ return SetAttr(label, lower, upper, GetID());
}
+
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_ReferenceArray) TDataStd_ReferenceArray::Set(const TDF_Label& label,
+ const Standard_GUID& theGuid,
+ const Standard_Integer lower,
+ const Standard_Integer upper)
+{
+ return SetAttr(label, lower, upper, theGuid);
+}
//=======================================================================
//function : SetValue
//purpose :
//=======================================================================
void TDataStd_ReferenceArray::SetValue (const Standard_Integer index,
- const TDF_Label& value)
+ const TDF_Label& value)
{
if(myArray.IsNull()) return;
if (value == myArray->Value(index))
Standard_Boolean isEqual = Standard_True;
if(isCheckItems) {
for(i = aLower; i <= anUpper; i++) {
- if(myArray->Value(i) != values->Value(i)) {
- isEqual = Standard_False;
- break;
- }
+ if(myArray->Value(i) != values->Value(i)) {
+ isEqual = Standard_False;
+ break;
+ }
}
if(isEqual)
- return;
+ return;
}
}
#endif
//=======================================================================
const Standard_GUID& TDataStd_ReferenceArray::ID () const
{
- return GetID();
+ return myID;
+}
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+
+void TDataStd_ReferenceArray::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+
+void TDataStd_ReferenceArray::SetID()
+{
+ Backup();
+ myID = GetID();
}
//=======================================================================
{
myArray->SetValue(i, arr.Value(i));
}
+ myID = anArray->ID();
}
else
{
//purpose :
//=======================================================================
void TDataStd_ReferenceArray::Paste (const Handle(TDF_Attribute)& Into,
- const Handle(TDF_RelocationTable)& RT) const
+ const Handle(TDF_RelocationTable)& RT) const
{
Handle(TDataStd_ReferenceArray) anArray = Handle(TDataStd_ReferenceArray)::DownCast(Into);
if (myArray.IsNull())
if (!L.IsNull())
{
if (!RT->HasRelocation(L, rL))
- rL = L;
+ rL = L;
anArray->myArray->SetValue(i, rL);
}
}
+ anArray->SetID(myID);
}
//=======================================================================
for (; i <= upper; i++)
{
if (!arr.Value(i).IsNull())
- aDataSet->AddLabel(arr.Value(i));
+ aDataSet->AddLabel(arr.Value(i));
}
}
}
//=======================================================================
Standard_OStream& TDataStd_ReferenceArray::Dump (Standard_OStream& anOS) const
{
- anOS << "ReferenceArray";
+ anOS << "\nReferenceArray: ";
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid << endl;
return anOS;
}
#include <TDF_Label.hxx>
#include <Standard_Boolean.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class Standard_GUID;
class TDF_Label;
class TDF_Attribute;
//! Finds or creates an array of reference values (labels) attribute.
Standard_EXPORT static Handle(TDataStd_ReferenceArray) Set (const TDF_Label& label, const Standard_Integer lower, const Standard_Integer upper);
+
+ //! Finds or creates an array of reference values (labels) attribute with explicit user defined <guid>.
+ Standard_EXPORT static Handle(TDataStd_ReferenceArray) Set (const TDF_Label& label, const Standard_GUID& theGuid,
+ const Standard_Integer lower, const Standard_Integer upper);
//! Initialize the inner array with bounds from <lower> to <upper>
Standard_EXPORT void Init (const Standard_Integer lower, const Standard_Integer upper);
//! Sets the <Index>th element of the array to <Value>
//! OutOfRange exception is raised if <Index> doesn't respect Lower and Upper bounds of the internal array.
Standard_EXPORT void SetValue (const Standard_Integer index, const TDF_Label& value);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Returns the value of the <Index>th element of the array.
Standard_EXPORT TDF_Label Value (const Standard_Integer Index) const;
-TDF_Label operator () (const Standard_Integer Index) const
-{
- return Value(Index);
-}
+
+ TDF_Label operator () (const Standard_Integer Index) const
+ {
+ return Value(Index);
+ }
//! Returns the lower boundary of the array.
Standard_EXPORT Standard_Integer Lower() const;
Handle(TDataStd_HLabelArray1) myArray;
-
+ Standard_GUID myID;
};
return TDataStd_ReferenceListID;
}
+//=======================================================================
+//function : SetAttr
+//purpose : Implements Set functionality
+//=======================================================================
+static Handle(TDataStd_ReferenceList) SetAttr(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ Handle(TDataStd_ReferenceList) A;
+ if (!label.FindAttribute (theGuid, A))
+ {
+ A = new TDataStd_ReferenceList;
+ A->SetID(theGuid);
+ label.AddAttribute(A);
+ }
+ return A;
+}
+
//=======================================================================
//function : TDataStd_ReferenceList
//purpose : Empty Constructor
//=======================================================================
Handle(TDataStd_ReferenceList) TDataStd_ReferenceList::Set(const TDF_Label& label)
{
- Handle(TDataStd_ReferenceList) A;
- if (!label.FindAttribute (TDataStd_ReferenceList::GetID(), A))
- {
- A = new TDataStd_ReferenceList;
- label.AddAttribute(A);
- }
- return A;
+ return SetAttr(label, GetID());
+}
+
+//=======================================================================
+//function : Set
+//purpose : Set user defined attribute with specific ID
+//=======================================================================
+Handle(TDataStd_ReferenceList) TDataStd_ReferenceList::Set(const TDF_Label& label,
+ const Standard_GUID& theGuid)
+{
+ return SetAttr(label, theGuid);
}
//=======================================================================
//purpose :
//=======================================================================
Standard_Boolean TDataStd_ReferenceList::InsertBefore(const TDF_Label& value,
- const TDF_Label& before_value)
+ const TDF_Label& before_value)
{
TDF_ListIteratorOfLabelList itr(myList);
for (; itr.More(); itr.Next())
//purpose :
//=======================================================================
Standard_Boolean TDataStd_ReferenceList::InsertAfter(const TDF_Label& value,
- const TDF_Label& after_value)
+ const TDF_Label& after_value)
{
TDF_ListIteratorOfLabelList itr(myList);
for (; itr.More(); itr.Next())
//=======================================================================
const Standard_GUID& TDataStd_ReferenceList::ID () const
{
- return GetID();
+ return myID;
+}
+
+//=======================================================================
+//function : SetID
+//purpose :
+//=======================================================================
+void TDataStd_ReferenceList::SetID( const Standard_GUID& theGuid)
+{
+ if(myID == theGuid) return;
+ Backup();
+ myID = theGuid;
+}
+
+//=======================================================================
+//function : SetID
+//purpose : sets default ID
+//=======================================================================
+void TDataStd_ReferenceList::SetID()
+{
+ Backup();
+ myID = GetID();
}
//=======================================================================
//purpose :
//=======================================================================
Handle(TDF_Attribute) TDataStd_ReferenceList::NewEmpty () const
-{
+{
return new TDataStd_ReferenceList();
}
{
myList.Append(itr.Value());
}
+ myID = aList->ID();
}
//=======================================================================
//purpose :
//=======================================================================
void TDataStd_ReferenceList::Paste (const Handle(TDF_Attribute)& Into,
- const Handle(TDF_RelocationTable)& RT) const
+ const Handle(TDF_RelocationTable)& RT) const
{
Handle(TDataStd_ReferenceList) aList = Handle(TDataStd_ReferenceList)::DownCast(Into);
aList->Clear();
if (!L.IsNull())
{
if (!RT->HasRelocation(L, rL))
- rL = L;
+ rL = L;
aList->Append(rL);
}
}
+ aList->SetID(myID);
}
//=======================================================================
//=======================================================================
Standard_OStream& TDataStd_ReferenceList::Dump (Standard_OStream& anOS) const
{
- anOS << "ReferenceList";
+ anOS << "\nReferenceList: ";
+ Standard_Character sguid[Standard_GUID_SIZE_ALLOC];
+ myID.ToCString(sguid);
+ anOS << sguid;
+ anOS << endl;
return anOS;
}
#include <Standard_Boolean.hxx>
#include <Standard_Integer.hxx>
#include <Standard_OStream.hxx>
+#include <Standard_GUID.hxx>
+
class Standard_GUID;
class TDF_Label;
class TDF_Attribute;
//! Finds or creates a list of reference values (labels) attribute.
Standard_EXPORT static Handle(TDataStd_ReferenceList) Set (const TDF_Label& label);
+
+ //! Finds or creates a list of reference values (labels) attribute with explicit user defined <guid>.
+ Standard_EXPORT static Handle(TDataStd_ReferenceList) Set (const TDF_Label& label, const Standard_GUID& theGuid);
Standard_EXPORT TDataStd_ReferenceList();
Standard_EXPORT void Prepend (const TDF_Label& value);
Standard_EXPORT void Append (const TDF_Label& value);
-
+
+ //! Sets the explicit GUID (user defined) for the attribute.
+ Standard_EXPORT void SetID( const Standard_GUID& theGuid) Standard_OVERRIDE;
+
+ //! Sets default GUID for the attribute.
+ Standard_EXPORT void SetID() Standard_OVERRIDE;
+
//! Inserts the <value> before the first meet of <before_value>.
Standard_EXPORT Standard_Boolean InsertBefore (const TDF_Label& value, const TDF_Label& before_value);
TDF_LabelList myList;
-
+ Standard_GUID myID;
};
Standard_EXPORT TDataStd_UAttribute();
- Standard_EXPORT void SetID (const Standard_GUID& LocalID);
+ Standard_EXPORT void SetID (const Standard_GUID& LocalID) Standard_OVERRIDE;
Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
anIter.Value().ForgetAllAttributes();
}
if (!theObject->GetName().IsNull() && !theObject->GetName()->IsEmpty())
- Handle(TDataStd_AsciiString) anAttName = TDataStd_AsciiString::Set(Label().FindChild(ChildLab_Name),
- theObject->GetName()->String());
+ Handle(TDataStd_AsciiString) anAttName = TDataStd_AsciiString::Set(Label().FindChild(ChildLab_Name),
+ theObject->GetName()->String());
Handle(TDataStd_Integer) aPosition = TDataStd_Integer::Set(Label().FindChild(ChildLab_Position),
- theObject->GetPosition());
+ theObject->GetPosition());
if(theObject->GetModifiers().Length() > 0)
- {
- Handle(TDataStd_IntegerArray) aModifiers;
- if(!Label().FindChild(ChildLab_Modifiers).FindAttribute(TDataStd_IntegerArray::GetID(), aModifiers))
- {
- aModifiers = new TDataStd_IntegerArray();
- Label().FindChild(ChildLab_Modifiers).AddAttribute(aModifiers);
- }
+ {
Handle(TColStd_HArray1OfInteger) anArr = new TColStd_HArray1OfInteger(1,theObject->GetModifiers().Length());
for(Standard_Integer i = 1; i <= theObject->GetModifiers().Length(); i++)
anArr->SetValue(i,theObject->GetModifiers().Value(i));
- aModifiers->ChangeArray(anArr);
+ Handle(TDataStd_IntegerArray) aModifiers = TDataStd_IntegerArray::Set(Label().FindChild(ChildLab_Modifiers),
+ 1, theObject->GetModifiers().Length());
+ if(!aModifiers.IsNull())
+ aModifiers->ChangeArray(anArr);
}
XCAFDimTolObjects_DatumModifWithValue aM;
if(aM != XCAFDimTolObjects_DatumModifWithValue_None)
{
Handle(TDataStd_Integer) aModifierWithValueM =
- TDataStd_Integer::Set(Label().FindChild(ChildLab_ModifierWithValue), aM);
+ TDataStd_Integer::Set(Label().FindChild(ChildLab_ModifierWithValue), aM);
Handle(TDataStd_Real) aModifierWithValueV =
- TDataStd_Real::Set(Label().FindChild(ChildLab_ModifierWithValue), aV);
+ TDataStd_Real::Set(Label().FindChild(ChildLab_ModifierWithValue), aV);
}
Handle(TDataStd_Integer) aIsTarget = TDataStd_Integer::Set(Label().FindChild(ChildLab_IsDTarget),
- theObject->IsDatumTarget());
+ theObject->IsDatumTarget());
if(theObject->IsDatumTarget())
{
Handle(TDataStd_Integer) aType = TDataStd_Integer::Set(Label().FindChild(ChildLab_DTargetType),
- theObject->GetDatumTargetType());
+ theObject->GetDatumTargetType());
if(theObject->GetDatumTargetType() == XCAFDimTolObjects_DatumTargetType_Area)
{
}
else if (theObject->HasDatumTargetParams())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
gp_Ax2 anAx = theObject->GetDatumTargetAxis();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, anAx.Location().Coord(i));
- aLoc->ChangeArray(aLocArr);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisLoc), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aNArr->SetValue(i, anAx.Direction().Coord(i));
- aN->ChangeArray(aNArr);
+ Handle(TDataStd_RealArray) aN = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisN), 1, 3);
+ if(!aN.IsNull())
+ aN->ChangeArray(aNArr);
Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aRArr->SetValue(i, anAx.XDirection().Coord(i));
- aR->ChangeArray(aRArr);
-
- Label().FindChild(ChildLab_AxisLoc).AddAttribute(aLoc);
- Label().FindChild(ChildLab_AxisN).AddAttribute(aN);
- Label().FindChild(ChildLab_AxisRef).AddAttribute(aR);
+ Handle(TDataStd_RealArray) aR = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisRef), 1, 3);
+ if(!aR.IsNull())
+ aR->ChangeArray(aRArr);
if(theObject->GetDatumTargetType() != XCAFDimTolObjects_DatumTargetType_Point)
{
Handle(TDataStd_Real) aLen = TDataStd_Real::Set(Label().FindChild(ChildLab_DTargetLength),
- theObject->GetDatumTargetLength());
+ theObject->GetDatumTargetLength());
if(theObject->GetDatumTargetType() == XCAFDimTolObjects_DatumTargetType_Rectangle)
Handle(TDataStd_Real) aWidth = TDataStd_Real::Set(Label().FindChild(ChildLab_DTargetWidth),
- theObject->GetDatumTargetWidth());
+ theObject->GetDatumTargetWidth());
}
}
Handle(TDataStd_Integer) aNum = TDataStd_Integer::Set(Label().FindChild(ChildLab_DTargetNumber),
- theObject->GetDatumTargetNumber());
+ theObject->GetDatumTargetNumber());
}
if (theObject->HasPlane())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
gp_Ax2 anAx = theObject->GetPlane();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, anAx.Location().Coord(i));
- aLoc->ChangeArray(aLocArr);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneLoc), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aNArr->SetValue(i, anAx.Direction().Coord(i));
- aN->ChangeArray(aNArr);
+ Handle(TDataStd_RealArray) aN = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneN), 1, 3);
+ if(!aN.IsNull())
+ aN->ChangeArray(aNArr);
Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aRArr->SetValue(i, anAx.XDirection().Coord(i));
- aR->ChangeArray(aRArr);
-
- Label().FindChild(ChildLab_PlaneLoc).AddAttribute(aLoc);
- Label().FindChild(ChildLab_PlaneN).AddAttribute(aN);
- Label().FindChild(ChildLab_PlaneRef).AddAttribute(aR);
+ Handle(TDataStd_RealArray) aR = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneRef), 1, 3);
+ if(!aR.IsNull())
+ aR->ChangeArray(aRArr);
}
if (theObject->HasPoint())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
gp_Pnt aPnt = theObject->GetPoint();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, aPnt.Coord(i));
- aLoc->ChangeArray(aLocArr);
-
- Label().FindChild(ChildLab_Pnt).AddAttribute(aLoc);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_Pnt), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
if (theObject->HasPointText())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
gp_Pnt aPntText = theObject->GetPointTextAttach();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, aPntText.Coord(i));
- aLoc->ChangeArray(aLocArr);
-
- Label().FindChild(ChildLab_PntText).AddAttribute(aLoc);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PntText), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
TopoDS_Shape aPresentation = theObject->GetPresentation();
if( !aPresentation.IsNull())
if(!theObject->GetValues().IsNull())
{
- Handle(TDataStd_RealArray) aVal = new TDataStd_RealArray();
- Label().FindChild(ChildLab_Value).AddAttribute(aVal);
- aVal->ChangeArray(theObject->GetValues());
+ Handle(TDataStd_RealArray) aVal = TDataStd_RealArray::Set(Label().FindChild(ChildLab_Value), theObject->GetValues()->Lower(),
+ theObject->GetValues()->Lower() + theObject->GetValues()->Length() - 1);
+ if(!aVal.IsNull())
+ aVal->ChangeArray(theObject->GetValues());
}
Handle(TDataStd_Integer) aQualifier = TDataStd_Integer::Set(Label().FindChild(ChildLab_Qualifier), theObject->GetQualifier());
Handle(TColStd_HArray1OfInteger) anArrI;
if(aF != XCAFDimTolObjects_DimensionFormVariance_None)
{
- Handle(TDataStd_IntegerArray) aClass = new TDataStd_IntegerArray();
- Label().FindChild(ChildLab_Class).AddAttribute(aClass);
anArrI = new TColStd_HArray1OfInteger(1,3);
anArrI->SetValue(1,aH);
anArrI->SetValue(2,aF);
anArrI->SetValue(3,aG);
- aClass->ChangeArray(anArrI);
+ Handle(TDataStd_IntegerArray) aClass = TDataStd_IntegerArray::Set(Label().FindChild(ChildLab_Class), 1, 3);
+ if(!aClass.IsNull())
+ aClass->ChangeArray(anArrI);
}
Standard_Integer aL, aR;
theObject->GetNbOfDecimalPlaces(aL, aR);
if (aL > 0 || aR > 0)
{
- Handle(TDataStd_IntegerArray) aDec = new TDataStd_IntegerArray();
- Label().FindChild(ChildLab_Dec).AddAttribute(aDec);
anArrI = new TColStd_HArray1OfInteger(1,2);
anArrI->SetValue(1,aL);
anArrI->SetValue(2,aR);
- aDec->ChangeArray(anArrI);
+ Handle(TDataStd_IntegerArray) aDec = TDataStd_IntegerArray::Set(Label().FindChild(ChildLab_Dec), 1, 2);
+ if(!aDec.IsNull())
+ aDec->ChangeArray(anArrI);
}
if(theObject->GetModifiers().Length() > 0)
{
- Handle(TDataStd_IntegerArray) aModifiers = new TDataStd_IntegerArray();
- Label().FindChild(ChildLab_Modifiers).AddAttribute(aModifiers);
anArrI = new TColStd_HArray1OfInteger(1,theObject->GetModifiers().Length());
for(Standard_Integer i = 1; i <= theObject->GetModifiers().Length(); i++)
anArrI->SetValue(i,theObject->GetModifiers().Value(i));
- aModifiers->ChangeArray(anArrI);
+ Handle(TDataStd_IntegerArray) aModifiers = TDataStd_IntegerArray::Set(Label().FindChild(ChildLab_Modifiers),
+ 1, theObject->GetModifiers().Length());
+ if(!aModifiers.IsNull())
+ aModifiers->ChangeArray(anArrI);
}
if(!theObject->GetPath().IsNull())
{
gp_Dir aD;
theObject->GetDirection(aD);
- Handle(TDataStd_RealArray) aDir = new TDataStd_RealArray();
- Label().FindChild(ChildLab_Dir).AddAttribute(aDir);
anArrR = new TColStd_HArray1OfReal(1,3);
anArrR->SetValue(1,aD.X());
anArrR->SetValue(2,aD.Y());
anArrR->SetValue(3,aD.Z());
- aDir->ChangeArray(anArrR);
+ Handle(TDataStd_RealArray) aDir = TDataStd_RealArray::Set(Label().FindChild(ChildLab_Dir), 1, 3);
+ if(!aDir.IsNull())
+ aDir->ChangeArray(anArrR);
}
if (theObject->HasPoint())
{
- Handle(TDataStd_RealArray) aPnt = new TDataStd_RealArray();
gp_Pnt aPnt1 = theObject->GetPoint();
Handle(TColStd_HArray1OfReal) aPntArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aPntArr->SetValue(i, aPnt1.Coord(i));
- aPnt->ChangeArray(aPntArr);
-
- Label().FindChild(ChildLab_Pnt1).AddAttribute(aPnt);
+ Handle(TDataStd_RealArray) aPnt = TDataStd_RealArray::Set(Label().FindChild(ChildLab_Pnt1), 1, 3);
+ if(!aPnt.IsNull())
+ aPnt->ChangeArray(aPntArr);
}
if (theObject->HasPoint2())
{
- Handle(TDataStd_RealArray) aPnt = new TDataStd_RealArray();
gp_Pnt aPnt2 = theObject->GetPoint2();
Handle(TColStd_HArray1OfReal) aPntArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aPntArr->SetValue(i, aPnt2.Coord(i));
- aPnt->ChangeArray(aPntArr);
-
- Label().FindChild(ChildLab_Pnt2).AddAttribute(aPnt);
+ Handle(TDataStd_RealArray) aPnt = TDataStd_RealArray::Set(Label().FindChild(ChildLab_Pnt2), 1, 3);
+ if(!aPnt.IsNull())
+ aPnt->ChangeArray(aPntArr);
}
if (theObject->HasPlane())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aRAtt = new TDataStd_RealArray();
gp_Ax2 anAx = theObject->GetPlane();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, anAx.Location().Coord(i));
- aLoc->ChangeArray(aLocArr);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneLoc), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aNArr->SetValue(i, anAx.Direction().Coord(i));
- aN->ChangeArray(aNArr);
+ Handle(TDataStd_RealArray) aN = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneN), 1, 3);
+ if(!aN.IsNull())
+ aN->ChangeArray(aNArr);
Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aRArr->SetValue(i, anAx.XDirection().Coord(i));
- aRAtt->ChangeArray(aRArr);
-
- Label().FindChild(ChildLab_PlaneLoc).AddAttribute(aLoc);
- Label().FindChild(ChildLab_PlaneN).AddAttribute(aN);
- Label().FindChild(ChildLab_PlaneRef).AddAttribute(aRAtt);
+ Handle(TDataStd_RealArray) aRAtt = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneRef), 1, 3);
+ if(!aRAtt.IsNull())
+ aRAtt->ChangeArray(aRArr);
}
if (theObject->HasTextPoint())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
gp_Pnt aPntText = theObject->GetPointTextAttach();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, aPntText.Coord(i));
- aLoc->ChangeArray(aLocArr);
-
- Label().FindChild(ChildLab_PntText).AddAttribute(aLoc);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PntText), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
TopoDS_Shape aPresentation = theObject->GetPresentation();
if (theObject->HasDescriptions())
{
- Handle(TDataStd_ExtStringArray) aDescriptions = new TDataStd_ExtStringArray();
- Handle(TDataStd_ExtStringArray) aDescriptionNames = new TDataStd_ExtStringArray();
Handle(TColStd_HArray1OfExtendedString) aDescrArr = new TColStd_HArray1OfExtendedString(1, theObject->NbDescriptions());
Handle(TColStd_HArray1OfExtendedString) aDescrNameArr = new TColStd_HArray1OfExtendedString(1, theObject->NbDescriptions());
for (Standard_Integer i = 0; i < theObject->NbDescriptions(); i++) {
TCollection_ExtendedString aDescrName(theObject->GetDescriptionName(i)->String());
aDescrNameArr->SetValue(i + 1, aDescrName);
}
- aDescriptions->ChangeArray(aDescrArr);
- aDescriptionNames->ChangeArray(aDescrNameArr);
- Label().FindChild(ChildLab_Descriptions).AddAttribute(aDescriptions);
- Label().FindChild(ChildLab_DescriptionNames).AddAttribute(aDescriptionNames);
+ Handle(TDataStd_ExtStringArray) aDescriptions = TDataStd_ExtStringArray::Set(Label().FindChild(ChildLab_Descriptions),
+ 1, theObject->NbDescriptions());
+ Handle(TDataStd_ExtStringArray) aDescriptionNames = TDataStd_ExtStringArray::Set(Label().FindChild(ChildLab_DescriptionNames),
+ 1, theObject->NbDescriptions());
+ if(!aDescriptions.IsNull())
+ aDescriptions->ChangeArray(aDescrArr);
+ if(!aDescriptionNames.IsNull())
+ aDescriptionNames->ChangeArray(aDescrNameArr);
}
}
if(theObject->GetTypeOfValue() != XCAFDimTolObjects_GeomToleranceTypeValue_None)
Handle(TDataStd_Integer) aTypeOfValue = TDataStd_Integer::Set(Label().FindChild(ChildLab_TypeOfValue),
- theObject->GetTypeOfValue());
+ theObject->GetTypeOfValue());
Handle(TDataStd_Real) aValue = TDataStd_Real::Set(Label().FindChild(ChildLab_Value), theObject->GetValue());
Handle(TDataStd_Integer) aMatReqModif;
if(theObject->GetMaterialRequirementModifier() != XCAFDimTolObjects_GeomToleranceMatReqModif_None)
- aMatReqModif = TDataStd_Integer::Set(Label().FindChild(ChildLab_MatReqModif),
- theObject->GetMaterialRequirementModifier());
+ aMatReqModif = TDataStd_Integer::Set(Label().FindChild(ChildLab_MatReqModif),
+ theObject->GetMaterialRequirementModifier());
if(theObject->GetZoneModifier() != XCAFDimTolObjects_GeomToleranceZoneModif_None)
Handle(TDataStd_Integer) aZoneModif = TDataStd_Integer::Set(Label().FindChild(ChildLab_ZoneModif),
- theObject->GetZoneModifier());
+ theObject->GetZoneModifier());
if(theObject->GetValueOfZoneModifier() > 0)
Handle(TDataStd_Real) aValueOfZoneModif = TDataStd_Real::Set(Label().FindChild(ChildLab_ValueOfZoneModif),
- theObject->GetValueOfZoneModifier());
+ theObject->GetValueOfZoneModifier());
if(theObject->GetModifiers().Length() > 0)
{
- Handle(TDataStd_IntegerArray) aModifiers = new TDataStd_IntegerArray();
Handle(TColStd_HArray1OfInteger) anArr = new TColStd_HArray1OfInteger(1,theObject->GetModifiers().Length());
for(Standard_Integer i = 1; i <= theObject->GetModifiers().Length(); i++)
anArr->SetValue(i,theObject->GetModifiers().Value(i));
- aModifiers->ChangeArray(anArr);
- Label().FindChild(ChildLab_Modifiers).AddAttribute(aModifiers);
+ Handle(TDataStd_IntegerArray) aModifiers = TDataStd_IntegerArray::Set(Label().FindChild(ChildLab_Modifiers),
+ 1, theObject->GetModifiers().Length());
+ if(!aModifiers.IsNull())
+ aModifiers->ChangeArray(anArr);
}
if(theObject->GetMaxValueModifier() > 0)
Handle(TDataStd_Real) aMaxValueModif = TDataStd_Real::Set(Label().FindChild(ChildLab_aMaxValueModif),
- theObject->GetMaxValueModifier());
+ theObject->GetMaxValueModifier());
if(theObject->HasAxis())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
gp_Ax2 anAx = theObject->GetAxis();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, anAx.Location().Coord(i));
- aLoc->ChangeArray(aLocArr);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisLoc), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aNArr->SetValue(i, anAx.Direction().Coord(i));
- aN->ChangeArray(aNArr);
+ Handle(TDataStd_RealArray) aN = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisN), 1, 3);
+ if(!aN.IsNull())
+ aN->ChangeArray(aNArr);
Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aRArr->SetValue(i, anAx.XDirection().Coord(i));
- aR->ChangeArray(aRArr);
-
- Label().FindChild(ChildLab_AxisLoc).AddAttribute(aLoc);
- Label().FindChild(ChildLab_AxisN).AddAttribute(aN);
- Label().FindChild(ChildLab_AxisRef).AddAttribute(aR);
+ Handle(TDataStd_RealArray) aR = TDataStd_RealArray::Set(Label().FindChild(ChildLab_AxisRef), 1, 3);
+ if(!aR.IsNull())
+ aR->ChangeArray(aRArr);
}
if (theObject->HasPlane())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aN = new TDataStd_RealArray();
- Handle(TDataStd_RealArray) aR = new TDataStd_RealArray();
gp_Ax2 anAx = theObject->GetPlane();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, anAx.Location().Coord(i));
- aLoc->ChangeArray(aLocArr);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneLoc), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
Handle(TColStd_HArray1OfReal) aNArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aNArr->SetValue(i, anAx.Direction().Coord(i));
- aN->ChangeArray(aNArr);
+ Handle(TDataStd_RealArray) aN = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneN), 1, 3);
+ if(!aN.IsNull())
+ aN->ChangeArray(aNArr);
Handle(TColStd_HArray1OfReal) aRArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aRArr->SetValue(i, anAx.XDirection().Coord(i));
- aR->ChangeArray(aRArr);
-
- Label().FindChild(ChildLab_PlaneLoc).AddAttribute(aLoc);
- Label().FindChild(ChildLab_PlaneN).AddAttribute(aN);
- Label().FindChild(ChildLab_PlaneRef).AddAttribute(aR);
+ Handle(TDataStd_RealArray) aR = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PlaneRef), 1, 3);
+ if(!aR.IsNull())
+ aR->ChangeArray(aRArr);
}
if (theObject->HasPoint())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
gp_Pnt aPnt = theObject->GetPoint();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, aPnt.Coord(i));
- aLoc->ChangeArray(aLocArr);
-
- Label().FindChild(ChildLab_Pnt).AddAttribute(aLoc);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_Pnt), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
if (theObject->HasPointText())
{
- Handle(TDataStd_RealArray) aLoc = new TDataStd_RealArray();
gp_Pnt aPntText = theObject->GetPointTextAttach();
Handle(TColStd_HArray1OfReal) aLocArr = new TColStd_HArray1OfReal(1, 3);
for (Standard_Integer i = 1; i <= 3; i++)
aLocArr->SetValue(i, aPntText.Coord(i));
- aLoc->ChangeArray(aLocArr);
-
- Label().FindChild(ChildLab_PntText).AddAttribute(aLoc);
+ Handle(TDataStd_RealArray) aLoc = TDataStd_RealArray::Set(Label().FindChild(ChildLab_PntText), 1, 3);
+ if(!aLoc.IsNull())
+ aLoc->ChangeArray(aLocArr);
}
TopoDS_Shape aPresentation = theObject->GetPresentation();
IMPLEMENT_STANDARD_RTTIEXT(XmlMDataStd_BooleanArrayDriver,XmlMDF_ADriver)
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
-
+IMPLEMENT_DOMSTRING (AttributeIDString, "boolarrattguid")
//=======================================================================
//function : XmlMDataStd_BooleanArrayDriver
//purpose : Constructor
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_BooleanArrayDriver::Paste(const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd, aValue;
const XmlObjMgt_Element& anElement = theSource;
if (!XmlObjMgt::GetInteger(aValueStr, aValue))
{
TCollection_ExtendedString aMessageString =
- TCollection_ExtendedString("Cannot retrieve integer member"
- " for BooleanArray attribute as \"")
- + aValueStr + "\"";
+ TCollection_ExtendedString("Cannot retrieve integer member"
+ " for BooleanArray attribute as \"")
+ + aValueStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
arr.SetValue(i, (Standard_Byte) aValue);
}
aBooleanArray->SetInternalArray(hArr);
-
+
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_BooleanArray::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+ aBooleanArray->SetID(aGUID);
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMDataStd_BooleanArrayDriver::Paste(const Handle(TDF_Attribute)& theSource,
- XmlObjMgt_Persistent& theTarget,
- XmlObjMgt_SRelocationTable& ) const
+ XmlObjMgt_Persistent& theTarget,
+ XmlObjMgt_SRelocationTable& ) const
{
Handle(TDataStd_BooleanArray) aBooleanArray = Handle(TDataStd_BooleanArray)::DownCast(theSource);
if (arr.Length())
XmlObjMgt::SetStringValue (theTarget, (Standard_Character*)str, Standard_True);
+ if(aBooleanArray->ID() != TDataStd_BooleanArray::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ aBooleanArray->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
IMPLEMENT_STANDARD_RTTIEXT(XmlMDataStd_BooleanListDriver,XmlMDF_ADriver)
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
+IMPLEMENT_DOMSTRING (AttributeIDString, "boollistattguid")
//=======================================================================
//function : XmlMDataStd_BooleanListDriver
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_BooleanListDriver::Paste(const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd, aValue, ind;
const XmlObjMgt_Element& anElement = theSource;
aBooleanList->Append(aValue ? Standard_True : Standard_False);
}
}
-
+
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_BooleanList::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ aBooleanList->SetID(aGUID);
+
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMDataStd_BooleanListDriver::Paste(const Handle(TDF_Attribute)& theSource,
- XmlObjMgt_Persistent& theTarget,
- XmlObjMgt_SRelocationTable& ) const
+ XmlObjMgt_Persistent& theTarget,
+ XmlObjMgt_SRelocationTable& ) const
{
const Handle(TDataStd_BooleanList) aBooleanList = Handle(TDataStd_BooleanList)::DownCast(theSource);
}
}
XmlObjMgt::SetStringValue (theTarget, (Standard_Character*)str, Standard_True);
+
+ if(aBooleanList->ID() != TDataStd_BooleanList::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ aBooleanList->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
#include <XmlMDataStd_ByteArrayDriver.hxx>
#include <XmlObjMgt.hxx>
#include <XmlObjMgt_Persistent.hxx>
+IMPLEMENT_DOMSTRING (AttributeIDString, "bytearrattguid")
IMPLEMENT_STANDARD_RTTIEXT(XmlMDataStd_ByteArrayDriver,XmlMDF_ADriver)
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_ByteArrayDriver::Paste(const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd, aValue;
const XmlObjMgt_Element& anElement = theSource;
if (!XmlObjMgt::GetInteger(aValueStr, aValue))
{
TCollection_ExtendedString aMessageString =
- TCollection_ExtendedString("Cannot retrieve integer member"
- " for ByteArray attribute as \"")
- + aValueStr + "\"";
+ TCollection_ExtendedString("Cannot retrieve integer member"
+ " for ByteArray attribute as \"")
+ + aValueStr + "\"";
WriteMessage (aMessageString);
return Standard_False;
}
if(XmlMDataStd::DocumentVersion() > 2) {
Standard_Integer aDeltaValue;
if (!anElement.getAttribute(::IsDeltaOn()).GetInteger(aDeltaValue))
- {
- TCollection_ExtendedString aMessageString =
- TCollection_ExtendedString("Cannot retrieve the isDelta value"
- " for ByteArray attribute as \"")
- + aDeltaValue + "\"";
- WriteMessage (aMessageString);
- return Standard_False;
- }
+ {
+ TCollection_ExtendedString aMessageString =
+ TCollection_ExtendedString("Cannot retrieve the isDelta value"
+ " for ByteArray attribute as \"")
+ + aDeltaValue + "\"";
+ WriteMessage (aMessageString);
+ return Standard_False;
+ }
else
aDelta = aDeltaValue != 0;
}
#endif
aByteArray->SetDelta(aDelta);
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_ByteArray::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ aByteArray->SetID(aGUID);
+
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMDataStd_ByteArrayDriver::Paste(const Handle(TDF_Attribute)& theSource,
- XmlObjMgt_Persistent& theTarget,
- XmlObjMgt_SRelocationTable& ) const
+ XmlObjMgt_Persistent& theTarget,
+ XmlObjMgt_SRelocationTable& ) const
{
Handle(TDataStd_ByteArray) aByteArray = Handle(TDataStd_ByteArray)::DownCast(theSource);
// Transfer the string (array of chars) to XML.
XmlObjMgt::SetStringValue (theTarget, (Standard_Character*)str, Standard_True);
}
+ if(aByteArray->ID() != TDataStd_ByteArray::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ aByteArray->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
#include <XmlObjMgt.hxx>
#include <XmlObjMgt_Document.hxx>
#include <XmlObjMgt_Persistent.hxx>
-#include <XmlLDrivers.hxx>
IMPLEMENT_STANDARD_RTTIEXT(XmlMDataStd_ExtStringArrayDriver,XmlMDF_ADriver)
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (ExtString, "string")
IMPLEMENT_DOMSTRING (IsDeltaOn, "delta")
IMPLEMENT_DOMSTRING (Separator, "separator")
+IMPLEMENT_DOMSTRING (AttributeIDString, "extstrarrattguid")
// Searches for a symbol within an array of strings.
// Returns TRUE if the symbol is found.
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_ExtStringArrayDriver::Paste
- ( const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ (const XmlObjMgt_Persistent& theSource,
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd, ind;
TCollection_ExtendedString aValue;
Standard_Integer aDeltaValue;
if (!anElement.getAttribute(::IsDeltaOn()).GetInteger(aDeltaValue))
{
- TCollection_ExtendedString aMessageString =
- TCollection_ExtendedString("Cannot retrieve the isDelta value"
- " for IntegerArray attribute as \"")
- + aDeltaValue + "\"";
- WriteMessage (aMessageString);
- return Standard_False;
+ TCollection_ExtendedString aMessageString =
+ TCollection_ExtendedString("Cannot retrieve the isDelta value"
+ " for IntegerArray attribute as \"")
+ + aDeltaValue + "\"";
+ WriteMessage (aMessageString);
+ return Standard_False;
}
else
aDelta = aDeltaValue != 0;
#endif
aExtStringArray->SetDelta(aDelta);
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_ExtStringArray::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ aExtStringArray->SetID(aGUID);
+
return Standard_True;
}
// Find a separator.
Standard_Boolean found(Standard_True);
- // Optimization of storage of string array elements.
- // It is applied since the storage version 8 and newer.
+ // Preferrable symbols for the separator: - _ . : ^ ~
+ // Don't use a space as a separator: XML low-level parser sometimes "eats" it.
Standard_Character c = '-';
- if (XmlLDrivers::StorageVersion() > 7)
+ static Standard_Character aPreferable[] = "-_.:^~";
+ for (i = 0; found && aPreferable[i]; i++)
{
- // Preferrable symbols for the separator: - _ . : ^ ~
- // Don't use a space as a separator: XML low-level parser sometimes "eats" it.
- static Standard_Character aPreferable[] = "-_.:^~";
- for (i = 0; found && aPreferable[i]; i++)
- {
- c = aPreferable[i];
- found = Contains(aExtStringArray, TCollection_ExtendedString(c));
- }
- // If all prefferable symbols exist in the array,
- // try to use any other simple symbols.
- if (found)
+ c = aPreferable[i];
+ found = Contains(aExtStringArray, TCollection_ExtendedString(c));
+ }
+ // If all prefferable symbols exist in the array,
+ // try to use any other simple symbols.
+ if (found)
+ {
+ c = '!';
+ while (found && c < '~')
{
- c = '!';
- while (found && c < '~')
- {
- found = Standard_False;
+ found = Standard_False;
#ifdef _DEBUG
- TCollection_AsciiString cseparator(c); // deb
+ TCollection_AsciiString cseparator(c); // deb
#endif
- TCollection_ExtendedString separator(c);
- found = Contains(aExtStringArray, separator);
- if (found)
+ TCollection_ExtendedString separator(c);
+ found = Contains(aExtStringArray, separator);
+ if (found)
+ {
+ c++;
+ // Skip forbidden symbols for XML.
+ while (c < '~' && (c == '&' || c == '<'))
{
c++;
- // Skip forbidden symbols for XML.
- while (c < '~' && (c == '&' || c == '<'))
- {
- c++;
- }
}
}
}
- }// check doc version
+ }
if (found)
{
// Set UNICODE value.
XmlObjMgt::SetExtendedString(theTarget, xstr);
}
+ if(aExtStringArray->ID() != TDataStd_ExtStringArray::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ aExtStringArray->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
IMPLEMENT_DOMSTRING (ExtString, "string")
+IMPLEMENT_DOMSTRING (AttributeIDString, "extstrlistattguid")
//=======================================================================
//function : XmlMDataStd_ExtStringListDriver
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_ExtStringListDriver::Paste(const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd;
const XmlObjMgt_Element& anElement = theSource;
return Standard_False;
}
- if(aLastInd == 0) return Standard_True;
const Handle(TDataStd_ExtStringList) anExtStringList = Handle(TDataStd_ExtStringList)::DownCast(theTarget);
-
- if (!anElement.hasChildNodes())
- {
- TCollection_ExtendedString aMessageString =
- TCollection_ExtendedString("Cannot retrieve a list of extended strings");
- WriteMessage (aMessageString);
- return Standard_False;
- }
+ if(aLastInd > 0) {
+ if (!anElement.hasChildNodes())
+ {
+ TCollection_ExtendedString aMessageString =
+ TCollection_ExtendedString("Cannot retrieve a list of extended strings");
+ WriteMessage (aMessageString);
+ return Standard_False;
+ }
+
+ LDOM_Node aCurNode = anElement.getFirstChild();
+ LDOM_Element* aCurElement = (LDOM_Element*)&aCurNode;
+ TCollection_ExtendedString aValueStr;
+ while (*aCurElement != anElement.getLastChild())
+ {
+ XmlObjMgt::GetExtendedString( *aCurElement, aValueStr );
+ anExtStringList->Append(aValueStr);
+ aCurNode = aCurElement->getNextSibling();
+ aCurElement = (LDOM_Element*)&aCurNode;
+ }
- LDOM_Node aCurNode = anElement.getFirstChild();
- LDOM_Element* aCurElement = (LDOM_Element*)&aCurNode;
- TCollection_ExtendedString aValueStr;
- while (*aCurElement != anElement.getLastChild())
- {
XmlObjMgt::GetExtendedString( *aCurElement, aValueStr );
anExtStringList->Append(aValueStr);
- aCurNode = aCurElement->getNextSibling();
- aCurElement = (LDOM_Element*)&aCurNode;
}
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_ExtStringList::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
- XmlObjMgt::GetExtendedString( *aCurElement, aValueStr );
- anExtStringList->Append(aValueStr);
+ anExtStringList->SetID(aGUID);
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMDataStd_ExtStringListDriver::Paste(const Handle(TDF_Attribute)& theSource,
- XmlObjMgt_Persistent& theTarget,
- XmlObjMgt_SRelocationTable& ) const
+ XmlObjMgt_Persistent& theTarget,
+ XmlObjMgt_SRelocationTable& ) const
{
const Handle(TDataStd_ExtStringList) anExtStringList = Handle(TDataStd_ExtStringList)::DownCast(theSource);
XmlObjMgt::SetExtendedString( aCurTarget, aValueStr );
anElement.appendChild( aCurTarget );
}
+
+ if(anExtStringList->ID() != TDataStd_ExtStringList::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ anExtStringList->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
IMPLEMENT_DOMSTRING (IsDeltaOn, "delta")
+IMPLEMENT_DOMSTRING (AttributeIDString, "intarrattguid")
+
//=======================================================================
//function : XmlMDataStd_IntegerArrayDriver
//purpose : Constructor
Standard_Integer aDeltaValue;
if (!anElement.getAttribute(::IsDeltaOn()).GetInteger(aDeltaValue))
{
- TCollection_ExtendedString aMessageString =
- TCollection_ExtendedString("Cannot retrieve the isDelta value"
- " for IntegerArray attribute as \"")
- + aDeltaValue + "\"";
- WriteMessage (aMessageString);
- return Standard_False;
+ TCollection_ExtendedString aMessageString =
+ TCollection_ExtendedString("Cannot retrieve the isDelta value"
+ " for IntegerArray attribute as \"")
+ + aDeltaValue + "\"";
+ WriteMessage (aMessageString);
+ return Standard_False;
}
else
aDelta = aDeltaValue != 0;
cout << "Current DocVersion field is not initialized. " <<endl;
#endif
anIntArray->SetDelta(aDelta);
-
+
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_IntegerArray::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ anIntArray->SetID(aGUID);
+
return Standard_True;
}
str[iChar - 1] = '\0';
XmlObjMgt::SetStringValue (theTarget, (Standard_Character*)str, Standard_True);
}
+ if(anIntArray->ID() != TDataStd_IntegerArray::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ anIntArray->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
IMPLEMENT_STANDARD_RTTIEXT(XmlMDataStd_IntegerListDriver,XmlMDF_ADriver)
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
+IMPLEMENT_DOMSTRING (AttributeIDString, "intlistattguid")
//=======================================================================
//function : XmlMDataStd_IntegerListDriver
//purpose : Constructor
//=======================================================================
XmlMDataStd_IntegerListDriver::XmlMDataStd_IntegerListDriver(const Handle(CDM_MessageDriver)& theMsgDriver)
- : XmlMDF_ADriver (theMsgDriver, NULL)
+: XmlMDF_ADriver (theMsgDriver, NULL)
{
}
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_IntegerListDriver::Paste(const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd, aValue, ind;
const XmlObjMgt_Element& anElement = theSource;
anIntList->Append(aValue);
}
}
-
+
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_IntegerList::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ anIntList->SetID(aGUID);
+
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMDataStd_IntegerListDriver::Paste(const Handle(TDF_Attribute)& theSource,
- XmlObjMgt_Persistent& theTarget,
- XmlObjMgt_SRelocationTable& ) const
+ XmlObjMgt_Persistent& theTarget,
+ XmlObjMgt_SRelocationTable& ) const
{
const Handle(TDataStd_IntegerList) anIntList = Handle(TDataStd_IntegerList)::DownCast(theSource);
}
// No occurrence of '&', '<' and other irregular XML characters
XmlObjMgt::SetStringValue (theTarget, (Standard_Character*)str, Standard_True);
+
+ if(anIntList->ID() != TDataStd_IntegerList::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ anIntList->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
IMPLEMENT_DOMSTRING (IsDeltaOn, "delta")
-
+IMPLEMENT_DOMSTRING (AttributeIDString, "realarrattguid")
//=======================================================================
//function : XmlMDataStd_RealArrayDriver
//purpose : Constructor
Standard_Integer aDeltaValue;
if (!anElement.getAttribute(::IsDeltaOn()).GetInteger(aDeltaValue))
{
- TCollection_ExtendedString aMessageString =
- TCollection_ExtendedString("Cannot retrieve the isDelta value"
- " for RealArray attribute as \"")
- + aDeltaValue + "\"";
- WriteMessage (aMessageString);
- return Standard_False;
+ TCollection_ExtendedString aMessageString =
+ TCollection_ExtendedString("Cannot retrieve the isDelta value"
+ " for RealArray attribute as \"")
+ + aDeltaValue + "\"";
+ WriteMessage (aMessageString);
+ return Standard_False;
}
else
aDelta = aDeltaValue != 0;
#endif
aRealArray->SetDelta(aDelta);
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_RealArray::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ aRealArray->SetID(aGUID);
return Standard_True;
}
str[iChar - 1] = '\0';
XmlObjMgt::SetStringValue (theTarget, (Standard_Character*)str, Standard_True);
}
+ if(aRealArray->ID() != TDataStd_RealArray::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ aRealArray->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
IMPLEMENT_STANDARD_RTTIEXT(XmlMDataStd_RealListDriver,XmlMDF_ADriver)
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
-
+IMPLEMENT_DOMSTRING (AttributeIDString, "reallistattguid")
//=======================================================================
//function : XmlMDataStd_RealListDriver
//purpose : Constructor
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_RealListDriver::Paste(const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Real aValue;
Standard_Integer aFirstInd, aLastInd, ind;
}
}
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_RealList::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ aRealList->SetID(aGUID);
+
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMDataStd_RealListDriver::Paste(const Handle(TDF_Attribute)& theSource,
- XmlObjMgt_Persistent& theTarget,
- XmlObjMgt_SRelocationTable& ) const
+ XmlObjMgt_Persistent& theTarget,
+ XmlObjMgt_SRelocationTable& ) const
{
const Handle(TDataStd_RealList) aRealList = Handle(TDataStd_RealList)::DownCast(theSource);
}
}
XmlObjMgt::SetStringValue (theTarget, (Standard_Character*)str, Standard_True);
+
+ if(aRealList->ID() != TDataStd_RealList::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ aRealList->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
IMPLEMENT_DOMSTRING (ExtString, "string")
-
+IMPLEMENT_DOMSTRING (AttributeIDString, "refarrattguid")
//=======================================================================
//function : XmlMDataStd_ReferenceArrayDriver
//purpose : Constructor
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_ReferenceArrayDriver::Paste(const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd;
const XmlObjMgt_Element& anElement = theSource;
if (XmlObjMgt::GetTagEntryString (aValueStr, anEntry) == Standard_False)
{
TCollection_ExtendedString aMessage =
- TCollection_ExtendedString ("Cannot retrieve reference from \"")
- + aValueStr + '\"';
+ TCollection_ExtendedString ("Cannot retrieve reference from \"")
+ + aValueStr + '\"';
WriteMessage (aMessage);
return Standard_False;
}
{
TCollection_ExtendedString aMessage =
TCollection_ExtendedString ("Cannot retrieve reference from \"")
- + aValueStr + '\"';
+ + aValueStr + '\"';
WriteMessage (aMessage);
return Standard_False;
}
}
aReferenceArray->SetValue(i, tLab);
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_ReferenceArray::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ aReferenceArray->SetID(aGUID);
+
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMDataStd_ReferenceArrayDriver::Paste(const Handle(TDF_Attribute)& theSource,
- XmlObjMgt_Persistent& theTarget,
- XmlObjMgt_SRelocationTable& ) const
+ XmlObjMgt_Persistent& theTarget,
+ XmlObjMgt_SRelocationTable& ) const
{
Handle(TDataStd_ReferenceArray) aReferenceArray = Handle(TDataStd_ReferenceArray)::DownCast(theSource);
TDF_Label L = aReferenceArray->Label();
anElement.appendChild( aCurTarget );
}
}
+ if(aReferenceArray->ID() != TDataStd_ReferenceArray::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ aReferenceArray->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
IMPLEMENT_DOMSTRING (FirstIndexString, "first")
IMPLEMENT_DOMSTRING (LastIndexString, "last")
IMPLEMENT_DOMSTRING (ExtString, "string")
-
+IMPLEMENT_DOMSTRING (AttributeIDString, "reflistattguid")
//=======================================================================
//function : XmlMDataStd_ReferenceListDriver
//purpose : Constructor
//purpose : persistent -> transient (retrieve)
//=======================================================================
Standard_Boolean XmlMDataStd_ReferenceListDriver::Paste(const XmlObjMgt_Persistent& theSource,
- const Handle(TDF_Attribute)& theTarget,
- XmlObjMgt_RRelocationTable& ) const
+ const Handle(TDF_Attribute)& theTarget,
+ XmlObjMgt_RRelocationTable& ) const
{
Standard_Integer aFirstInd, aLastInd;
const XmlObjMgt_Element& anElement = theSource;
return Standard_False;
}
- if(aLastInd == 0) return Standard_True;
const Handle(TDataStd_ReferenceList) aReferenceList = Handle(TDataStd_ReferenceList)::DownCast(theTarget);
-
- if (!anElement.hasChildNodes())
- {
- TCollection_ExtendedString aMessageString =
- TCollection_ExtendedString("Cannot retrieve a list of reference");
- WriteMessage (aMessageString);
- return Standard_False;
- }
-
- LDOM_Node aCurNode = anElement.getFirstChild();
- LDOM_Element* aCurElement = (LDOM_Element*)&aCurNode;
- XmlObjMgt_DOMString aValueStr;
- while (*aCurElement != anElement.getLastChild())
- {
- aValueStr = XmlObjMgt::GetStringValue( *aCurElement );
- if (aValueStr == NULL)
- {
- WriteMessage ("Cannot retrieve reference string from element");
- return Standard_False;
- }
- TCollection_AsciiString anEntry;
- if (XmlObjMgt::GetTagEntryString (aValueStr, anEntry) == Standard_False)
+ if(aLastInd > 0) {
+ if (!anElement.hasChildNodes())
{
- TCollection_ExtendedString aMessage =
- TCollection_ExtendedString ("Cannot retrieve reference from \"")
- + aValueStr + '\"';
- WriteMessage (aMessage);
+ TCollection_ExtendedString aMessageString =
+ TCollection_ExtendedString("Cannot retrieve a list of reference");
+ WriteMessage (aMessageString);
return Standard_False;
}
- // Find label by entry
- TDF_Label tLab; // Null label.
- if (anEntry.Length() > 0)
+
+ LDOM_Node aCurNode = anElement.getFirstChild();
+ LDOM_Element* aCurElement = (LDOM_Element*)&aCurNode;
+ XmlObjMgt_DOMString aValueStr;
+ while (*aCurElement != anElement.getLastChild())
{
- TDF_Tool::Label(aReferenceList->Label().Data(), anEntry, tLab, Standard_True);
+ aValueStr = XmlObjMgt::GetStringValue( *aCurElement );
+ if (aValueStr == NULL)
+ {
+ WriteMessage ("Cannot retrieve reference string from element");
+ return Standard_False;
+ }
+ TCollection_AsciiString anEntry;
+ if (XmlObjMgt::GetTagEntryString (aValueStr, anEntry) == Standard_False)
+ {
+ TCollection_ExtendedString aMessage =
+ TCollection_ExtendedString ("Cannot retrieve reference from \"")
+ + aValueStr + '\"';
+ WriteMessage (aMessage);
+ return Standard_False;
+ }
+ // Find label by entry
+ TDF_Label tLab; // Null label.
+ if (anEntry.Length() > 0)
+ TDF_Tool::Label(aReferenceList->Label().Data(), anEntry, tLab, Standard_True);
+
+ aReferenceList->Append(tLab);
+ aCurNode = aCurElement->getNextSibling();
+ aCurElement = (LDOM_Element*)&aCurNode;
}
- aReferenceList->Append(tLab);
- aCurNode = aCurElement->getNextSibling();
- aCurElement = (LDOM_Element*)&aCurNode;
- }
// Last reference
aValueStr = XmlObjMgt::GetStringValue( *aCurElement );
TDF_Tool::Label(aReferenceList->Label().Data(), anEntry, tLab, Standard_True);
}
aReferenceList->Append(tLab);
+ }
+ // attribute id
+ Standard_GUID aGUID;
+ XmlObjMgt_DOMString aGUIDStr = anElement.getAttribute(::AttributeIDString());
+ if (aGUIDStr.Type() == XmlObjMgt_DOMString::LDOM_NULL)
+ aGUID = TDataStd_ReferenceList::GetID(); //default case
+ else
+ aGUID = Standard_GUID(Standard_CString(aGUIDStr.GetString())); // user defined case
+
+ aReferenceList->SetID(aGUID);
return Standard_True;
}
//purpose : transient -> persistent (store)
//=======================================================================
void XmlMDataStd_ReferenceListDriver::Paste(const Handle(TDF_Attribute)& theSource,
- XmlObjMgt_Persistent& theTarget,
- XmlObjMgt_SRelocationTable& ) const
+ XmlObjMgt_Persistent& theTarget,
+ XmlObjMgt_SRelocationTable& ) const
{
const Handle(TDataStd_ReferenceList) aReferenceList = Handle(TDataStd_ReferenceList)::DownCast(theSource);
TDF_Label L = aReferenceList->Label();
anElement.appendChild( aCurTarget );
}
}
+
+ if(aReferenceList->ID() != TDataStd_ReferenceList::GetID()) {
+ //convert GUID
+ Standard_Character aGuidStr [Standard_GUID_SIZE_ALLOC];
+ Standard_PCharacter pGuidStr = aGuidStr;
+ aReferenceList->ID().ToCString (pGuidStr);
+ theTarget.Element().setAttribute (::AttributeIDString(), aGuidStr);
+ }
}
############################################
# Set TDataStd_RealArray
-SetRealArray D ${Label} ${From} ${To} ${RealArray1} ${RealArray2} 0
+SetRealArray D ${Label} 0 ${From} ${To} ${RealArray1} ${RealArray2}
############################################
SetReal D ${Label} ${Real1}
############################################
# Set old value for TDataStd_RealArray
-SetRealArray D ${Label} ${From} ${To} ${RealArray1} ${RealArray2} 0
+SetRealArray D ${Label} 0 ${From} ${To} ${RealArray1} ${RealArray2}
############################################
# Set new value for TDataStd_Real
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_RealArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_RealArray
+#
+# Testing command: SetRealArray, GetRealArray
+#
+
+puts "caf001-C4"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 3.
+set aSetAttr12 4.
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94511-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRealArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetRealArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_RealArray attribute: Error"
+set aGetAttr1 [GetRealArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRealArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_RealArray attribute: Error"
+} else {
+ puts "Add TDataStd_RealArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_RealArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_RealArray
+#
+# Testing command: SetRealArray
+# Testing command: GetRealArray
+#
+
+puts "caf001-C5"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 3.
+set aSetAttr12 4.
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94511-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRealArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetRealArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-C5.cbf
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_RealArray attribute: Error"
+set aGetAttr1 [GetRealArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRealArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_RealArray attribute: Error"
+} else {
+ puts "Add TDataStd_RealArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_RealArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_RealArray
+#
+# Testing command: SetRealArray
+# Testing command: GetRealArray
+#
+
+puts "caf001-C6"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 3.
+set aSetAttr12 4.
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94511-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRealArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetRealArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-C6.xml
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_RealArray attribute: Error"
+set aGetAttr1 [GetRealArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRealArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_RealArray attribute: Error"
+} else {
+ puts "Add TDataStd_RealArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+#
+# Testing attribute: TDataStd_IntegerArray
+#
+# Testing command: SetIntArray
+# Testing command: GetIntArray
+#
+
+puts "caf001-D1"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 3
+set aSetAttr12 4
+set aLabel 0:2
+set isDelta 0
+SetIntArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerArray attribute: Error"
+set aGetAttr1 [GetIntArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+### return
+}
+set aGetAttr21 [lindex ${aGetAttr1} 0]
+if { ${aSetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+### return
+}
+set aGetAttr22 [lindex ${aGetAttr1} 1]
+if { ${aSetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+### return
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_IntegerArray attribute: Error"
+} else {
+ puts "Add TDataStd_IntegerArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_IntegerArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_IntegerArray
+#
+# Testing command: SetIntArray
+# Testing command: GetIntArray
+#
+
+puts "caf001-D5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 3
+set aSetAttr12 4
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94511-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetIntArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetIntArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerArray attribute: Error"
+set aGetAttr1 [GetIntArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetIntArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_IntegerArray attribute: Error"
+} else {
+ puts "Add TDataStd_IntegerArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_IntegerArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_IntegerArray
+#
+# Testing command: SetIntArray
+# Testing command: GetIntArray
+#
+
+puts "caf001-D6"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 3
+set aSetAttr12 4
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94511-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetIntArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetIntArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-D6.cbf
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerArray attribute: Error"
+set aGetAttr1 [GetIntArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetIntArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_IntegerArray attribute: Error"
+} else {
+ puts "Add TDataStd_IntegerArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_RealArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_IntegerArray
+#
+# Testing command: SetIntArray
+# Testing command: GetIntArray
+#
+
+puts "caf001-D7"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 3
+set aSetAttr12 4
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94511-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetIntArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetIntArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-D7.xml
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerArray attribute: Error"
+set aGetAttr1 [GetIntArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetIntArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_IntegerArray attribute: Error"
+} else {
+ puts "Add TDataStd_IntegerArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ExtStringArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ExtStringArray
+#
+# Testing command: SetExtStringArray
+# Testing command: GetExtStringArray
+#
+
+puts "caf001-M5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 aaaaa
+set aSetAttr12 bbbbbbb
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94515-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetExtStringArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetExtStringArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ExtStringArray attribute: Error"
+set aGetAttr1 [GetExtStringArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetExtStringArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ExtStringArray attribute: Error"
+} else {
+ puts "Add TDataStd_ExtStringArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ExtStringArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_IntegerArray
+#
+# Testing command: SetExtStringArray
+# Testing command: GetExtStringArray
+#
+
+puts "caf001-M6"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 xxxxxxxx
+set aSetAttr12 yyyyyyy
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94515-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetExtStringArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetExtStringArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-M6.cbf
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ExtStringArray attribute: Error"
+set aGetAttr1 [GetExtStringArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetExtStringArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ExtStringArray attribute: Error"
+} else {
+ puts "Add TDataStd_ExtStringArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ExtStringArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ExtStringArray
+#
+# Testing command: SetExtStringArray
+# Testing command: GetExtStringArray
+#
+
+puts "caf001-M7"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 xxxxx
+set aSetAttr12 zzzzzzz
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94515-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetExtStringArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetExtStringArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-M7.xml
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ExtStringArray attribute: Error"
+set aGetAttr1 [GetExtStringArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetExtStringArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ExtStringArray attribute: Error"
+} else {
+ puts "Add TDataStd_ExtStringArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_BooleanArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_BooleanArray
+#
+# Testing command: SetBooleanArray
+# Testing command: GetBooleanArray
+#
+
+puts "caf001-O5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 0
+set aSetAttr12 1
+set aLabel 0:2
+
+set aGuid1 "12e94516-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetBooleanArray D ${aLabel} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetBooleanArray D ${aLabel} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanArray attribute: Error"
+set aGetAttr1 [GetBooleanArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetBooleanArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_BooleanArray attribute: Error"
+} else {
+ puts "Add TDataStd_BooleanArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_BooleanArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_BooleanArray
+#
+# Testing command: SetBooleanArray
+# Testing command: GetBooleanArray
+#
+
+puts "caf001-O6"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 0
+set aSetAttr12 1
+set aLabel 0:2
+
+set aGuid1 "12e94516-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetBooleanArray D ${aLabel} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetBooleanArray D ${aLabel} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-O6.cbf
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanArray attribute: Error"
+set aGetAttr1 [GetBooleanArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetBooleanArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_BooleanArray attribute: Error"
+} else {
+ puts "Add TDataStd_BooleanArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_BooleanArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_BooleanArray
+#
+# Testing command: SetBooleanArray
+# Testing command: GetBooleanArray
+#
+
+puts "caf001-O7"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 0
+set aSetAttr12 1
+set aLabel 0:2
+
+set aGuid1 "12e94516-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetBooleanArray D ${aLabel} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetBooleanArray D ${aLabel} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-O7.xml
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanArray attribute: Error"
+set aGetAttr1 [GetBooleanArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetBooleanArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_BooleanArray attribute: Error"
+} else {
+ puts "Add TDataStd_BooleanArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ByteArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ByteArray
+#
+# Testing command: SetByteArray
+# Testing command: GetByteArray
+#
+
+puts "caf001-P5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 10
+set aSetAttr12 12
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94517-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetByteArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetByteArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ByteArray attribute: Error"
+set aGetAttr1 [GetByteArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetByteArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ByteArray attribute: Error"
+} else {
+ puts "Add TDataStd_ByteArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ByteArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ByteArray
+#
+# Testing command: SetByteArray
+# Testing command: GetByteArray
+#
+
+puts "caf001-P6"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 10
+set aSetAttr12 12
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94517-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetByteArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetByteArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-P6.cbf
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ByteArray attribute: Error"
+set aGetAttr1 [GetByteArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetByteArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ByteArray attribute: Error"
+} else {
+ puts "Add TDataStd_ByteArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ByteArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ByteArray
+#
+# Testing command: SetByteArray
+# Testing command: GetByteArray
+#
+
+puts "caf001-P7"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 10
+set aSetAttr12 12
+set aLabel 0:2
+set isDelta 0
+set aGuid1 "12e94517-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetByteArray D ${aLabel} ${isDelta} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetByteArray D ${aLabel} ${isDelta} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-P7.xml
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ByteArray attribute: Error"
+set aGetAttr1 [GetByteArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetByteArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ByteArray attribute: Error"
+} else {
+ puts "Add TDataStd_ByteArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ReferenceArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ReferenceArray
+#
+# Testing command: SetRefArray
+# Testing command: GetRefArray
+#
+
+puts "caf001-Q5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 0:3
+set aSetAttr12 0:4
+set aLabel 0:2
+
+set aGuid1 "12e94518-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRefArray D ${aLabel} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetRefArray D ${aLabel} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ReferenceArray attribute: Error"
+set aGetAttr1 [GetRefArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRefArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ReferenceArray attribute: Error"
+} else {
+ puts "Add TDataStd_ReferenceArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ReferenceArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ReferenceArray
+#
+# Testing command: SetRefArray
+# Testing command: GetRefArray
+#
+
+puts "caf001-Q6"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 0:3
+set aSetAttr12 0:4
+set aLabel 0:2
+
+set aGuid1 "12e94518-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRefArray D ${aLabel} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetRefArray D ${aLabel} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-Q6.cbf
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ReferenceArray attribute: Error"
+set aGetAttr1 [GetRefArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRefArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ReferenceArray attribute: Error"
+} else {
+ puts "Add TDataStd_ReferenceArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ReferenceArray
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ReferenceArray
+#
+# Testing command: SetRefArray
+# Testing command: GetRefArray
+#
+
+puts "caf001-Q7"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aFrom1 1
+set aTo1 2
+set aSetAttr11 0:3
+set aSetAttr12 0:4
+set aLabel 0:2
+
+set aGuid1 "12e94518-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRefArray D ${aLabel} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+SetRefArray D ${aLabel} -g ${aGuid1} ${aFrom1} ${aTo1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-Q7.xml
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanArray attribute: Error"
+set aGetAttr1 [GetRefArray D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRefArray D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts ${aMessage1}
+}
+if { ${aLen2} != [expr ${aTo1} - ${aFrom1} + 1] } {
+ set IsGood 0
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ReferenceArray attribute: Error"
+} else {
+ puts "Add TDataStd_ReferenceArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_RealList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_RealList
+#
+# Testing command: SetRealList
+# Testing command: GetRealList
+#
+
+puts "caf001-R5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr11 3.
+set aSetAttr12 4.
+set aLabel 0:2
+
+set aGuid1 "12e94521-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRealList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetRealList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_RealList attribute: Error"
+set aGetAttr1 [GetRealList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRealList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_RealList attribute: Error"
+} else {
+ puts "Add TDataStd_RealList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_RealList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_RealList
+#
+# Testing command: SetRealList
+# Testing command: GetRealList
+#
+
+puts "caf001-R6"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aSetAttr11 3.
+set aSetAttr12 4.
+set aLabel 0:2
+
+set aGuid1 "12e94521-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRealList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetRealList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-R6.cbf
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_RealList attribute: Error"
+set aGetAttr1 [GetRealList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRealList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_RealList attribute: Error"
+} else {
+ puts "Add TDataStd_RealList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_RealList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_RealList
+#
+# Testing command: SetRealList
+# Testing command: GetRealList
+#
+
+puts "caf001-R7"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aSetAttr11 3.
+set aSetAttr12 4.
+set aLabel 0:2
+
+set aGuid1 "12e94521-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetRealList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetRealList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-R7.xml
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_RealList attribute: Error"
+set aGetAttr1 [GetRealList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetRealList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_RealList attribute: Error"
+} else {
+ puts "Add TDataStd_RealList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_IntegerList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_IntegerList
+#
+# Testing command: SetIntegerList
+# Testing command: GetIntegerList
+#
+
+puts "caf001-S5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr11 33
+set aSetAttr12 44
+set aLabel 0:2
+
+set aGuid1 "12e94531-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetIntegerList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetIntegerList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerList attribute: Error"
+set aGetAttr1 [GetIntegerList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetIntegerList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_IntegerList attribute: Error"
+} else {
+ puts "Add TDataStd_IntegerList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_IntegerList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_IntegerList
+#
+# Testing command: SetIntegerList
+# Testing command: GetIntegerList
+#
+
+puts "caf001-S6"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aSetAttr11 33
+set aSetAttr12 44
+set aLabel 0:2
+
+set aGuid1 "12e94531-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetIntegerList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetIntegerList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-S6.cbf
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerList attribute: Error"
+set aGetAttr1 [GetIntegerList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetIntegerList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_IntegerList attribute: Error"
+} else {
+ puts "Add TDataStd_IntegerList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_IntegerList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_IntegerList
+#
+# Testing command: SetIntegerList
+# Testing command: GetIntegerList
+#
+
+puts "caf001-S7"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aSetAttr11 33
+set aSetAttr12 44
+set aLabel 0:2
+
+set aGuid1 "12e94531-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetIntegerList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetIntegerList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-S7.xml
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerList attribute: Error"
+set aGetAttr1 [GetIntegerList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetIntegerList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_IntegerList attribute: Error"
+} else {
+ puts "Add TDataStd_IntegerList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ExtStringList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ExtStringList
+#
+# Testing command: SetExtStringList
+# Testing command: GetExtStringList
+#
+
+puts "caf001-T5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr11 aaaaa
+set aSetAttr12 bbbbbb
+set aLabel 0:2
+
+set aGuid1 "12e94541-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetExtStringList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetExtStringList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ExtStringList attribute: Error"
+set aGetAttr1 [GetExtStringList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetExtStringList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ExtStringList attribute: Error"
+} else {
+ puts "Add TDataStd_ExtStringList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ExtStringList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ExtStringList
+#
+# Testing command: SetExtStringList
+# Testing command: GetExtStringList
+#
+
+puts "caf001-T6"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aSetAttr11 xxxx
+set aSetAttr12 yyyyy
+set aLabel 0:2
+
+set aGuid1 "12e94541-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetExtStringList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetExtStringList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-T6.cbf
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ExtStringList attribute: Error"
+set aGetAttr1 [GetExtStringList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetExtStringList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ExtStringList attribute: Error"
+} else {
+ puts "Add TDataStd_ExtStringList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ExtStringList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ExtStringList
+#
+# Testing command: SetExtStringList
+# Testing command: GetExtStringList
+#
+
+puts "caf001-T7"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aSetAttr11 xxxx
+set aSetAttr12 yyyyy
+set aLabel 0:2
+
+set aGuid1 "12e94541-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetExtStringList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetExtStringList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-T7.xml
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ExtStringList attribute: Error"
+set aGetAttr1 [GetExtStringList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetExtStringList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ExtStringList attribute: Error"
+} else {
+ puts "Add TDataStd_ExtStringList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_BooleanList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_BooleanList
+#
+# Testing command: SetBooleanList
+# Testing command: GetBooleanList
+#
+
+puts "caf001-U5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr11 0
+set aSetAttr12 1
+set aLabel 0:2
+
+set aGuid1 "12e94551-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetBooleanList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetBooleanList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanList attribute: Error"
+set aGetAttr1 [GetBooleanList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetBooleanList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_BooleanList attribute: Error"
+} else {
+ puts "Add TDataStd_BooleanList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_BooleanList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_BooleanList
+#
+# Testing command: SetBooleanList
+# Testing command: GetBooleanList
+#
+
+puts "caf001-U6"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aSetAttr11 0
+set aSetAttr12 1
+set aLabel 0:2
+
+set aGuid1 "12e94551-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetBooleanList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetBooleanList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-U6.cbf
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanList attribute: Error"
+set aGetAttr1 [GetBooleanList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetBooleanList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_BooleanList attribute: Error"
+} else {
+ puts "Add TDataStd_BooleanList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_BooleanList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_BooleanList
+#
+# Testing command: SetBooleanList
+# Testing command: GetBooleanList
+#
+
+puts "caf001-U7"
+set QA_DUP 0
+
+# Add an attributes to a data framework
+set aSetAttr11 0
+set aSetAttr12 1
+set aLabel 0:2
+
+set aGuid1 "12e94551-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetBooleanList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetBooleanList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-U7.xml
+SaveAs D ${aFile};
+Close D
+
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanList attribute: Error"
+set aGetAttr1 [GetBooleanList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetBooleanList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_BooleanList attribute: Error"
+} else {
+ puts "Add TDataStd_BooleanList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ReferenceList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ReferenceList
+#
+# Testing command: SetReferenceList
+# Testing command: GetReferenceList
+#
+
+puts "caf001-V5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr11 0:3
+set aSetAttr12 0:4
+set aLabel 0:2
+
+set aGuid1 "12e94561-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetReferenceList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetReferenceList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ReferenceList attribute: Error"
+set aGetAttr1 [GetReferenceList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetReferenceList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ReferenceList attribute: Error"
+} else {
+ puts "Add TDataStd_ReferenceList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ReferenceList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ReferenceList
+#
+# Testing command: SetReferenceList
+# Testing command: GetReferenceList
+#
+
+puts "caf001-V6"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr11 0:3
+set aSetAttr12 0:4
+set aLabel 0:2
+
+set aGuid1 "12e94561-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetReferenceList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetReferenceList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+set aFile ${imagedir}/caf001-V6.cbf
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ReferenceList attribute: Error"
+set aGetAttr1 [GetReferenceList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetReferenceList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ReferenceList attribute: Error"
+} else {
+ puts "Add TDataStd_ReferenceList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# TDataStd_ReferenceList
+#
+# Testing attribute: User defined (additional GUID) TDataStd_ReferenceList
+#
+# Testing command: SetReferenceList
+# Testing command: GetReferenceList
+#
+
+puts "caf001-V7"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr11 0:3
+set aSetAttr12 0:4
+set aLabel 0:2
+
+set aGuid1 "12e94561-6dbc-11d4-b9c8-0060b0ee281b"
+
+SetReferenceList D ${aLabel} ${aSetAttr11} ${aSetAttr12}
+SetReferenceList D ${aLabel} -g ${aGuid1} ${aSetAttr11} ${aSetAttr12}
+
+# Close/Open the transaction
+NewCommand D
+
+# Forget the attribute
+ForgetAll D ${aLabel}
+
+# Close/Open the transaction
+NewCommand D
+
+# Undo-Redo-Undo
+Undo D
+Redo D
+Undo D
+
+# Save Document
+Format D XmlOcaf
+set aFile ${imagedir}/caf001-V7.xml
+SaveAs D ${aFile}
+Close D
+
+#Open a document
+Open ${aFile} D
+
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ReferenceList attribute: Error"
+set aGetAttr1 [GetReferenceList D ${aLabel}]
+set aLen1 [llength ${aGetAttr1}]
+set aGetAttr2 [GetReferenceList D ${aLabel} ${aGuid1}]
+set aLen2 [llength ${aGetAttr2}]
+
+if { ${aLen1} != ${aLen2}} {
+ set IsGood 0
+ puts "aLen1=${aLen1}"
+ puts "aLen2=${aLen2}"
+ puts ${aMessage1}
+}
+
+set aGetAttr11 [lindex ${aGetAttr1} 0]
+set aGetAttr21 [lindex ${aGetAttr2} 0]
+if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ puts ${aMessage1}
+}
+set aGetAttr12 [lindex ${aGetAttr1} 1]
+set aGetAttr22 [lindex ${aGetAttr2} 1]
+if { ${aGetAttr12} != ${aGetAttr22} } {
+ set IsGood 0
+ puts "aGetAttr12=${aGetAttr12}"
+ puts "aGetAttr22=${aGetAttr22}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} {
+ puts "Add TDataStd_ReferenceList attribute: Error"
+} else {
+ puts "Add TDataStd_ReferenceList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attributes
+# BooleanArray, ByteArray, ExtStringArray, IntegerArray, RealArray, ReferenceArray
+# BooleanList, ExtStringList, IntegerList, RealList, ReferenceList
+#
+# Testing command: Open, GetBooleanArray, GetByteArray, GetExtStringArray, GetIntArray, GetRealArray, GetRefArray.
+# Testing command: GetBooleanList, GetExtStringArray, GetIntegerList, GetRealList, GetReferenceList
+#
+
+puts "caf001-W1"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {1 0 0 1 1}
+set aLabel 0:1
+set aFile [locate_data_file caf001_boolAr.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanArray attribute: Error"
+set aGetAttr1 [GetBooleanArray D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_BooleanArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute RealList
+#
+# Testing command: Open, GetRealList.
+#
+
+puts "caf001-W10"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {1.1 1.2 1.3 1.4 1.5}
+set aLabel 0:1
+set aFile [locate_data_file caf001_realList.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_RealList attribute: Error"
+set aGetAttr1 [GetRealList D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_RealList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute ReferenceList
+#
+# Testing command: Open, GetReferenceList.
+#
+
+puts "caf001-W11"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {0:1:5 0:1:3 0:1:2 0:1:1 0:1:4}
+set aLabel 0:1
+set aFile [locate_data_file caf001_refList.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ReferenceList attribute: Error"
+set aGetAttr1 [GetReferenceList D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_ReferenceList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute ByteArray
+#
+# Testing command: Open, GetByteArray
+#
+
+puts "caf001-W2"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {12 23 9}
+set aLabel 0:1
+set aFile [locate_data_file caf001_byteAr.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ByteArray attribute: Error"
+set aGetAttr1 [GetByteArray D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_ByteArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute ExtStringArray
+#
+# Testing command: Open, GetExtStringArray
+#
+
+puts "caf001-W3"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {aaaaaaaaa bbbbbbbbbb cccccccccccccc}
+set aLabel 0:1
+set aFile [locate_data_file caf001_extstrAr.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ExtStringArray attribute: Error"
+set aGetAttr1 [GetExtStringArray D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_ExtStringArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute IntegerArray
+#
+# Testing command: Open, GetIntArray
+#
+
+puts "caf001-W4"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {11 12 13 14 155}
+set aLabel 0:1
+set aFile [locate_data_file caf001_intAr.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerArray attribute: Error"
+set aGetAttr1 [GetIntArray D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_IntegerArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute RealArray
+#
+# Testing command: Open, GetRealArray.
+#
+
+puts "caf001-W5"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {1.1 1.2 1.3 1.4 1.5}
+set aLabel 0:1
+set aFile [locate_data_file caf001_realAr.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_RealArray attribute: Error"
+set aGetAttr1 [GetRealArray D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_RealArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute ReferenceArray
+#
+# Testing command: Open, GetRefArray.
+#
+
+puts "caf001-W6"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {0:1:3 0:1:5 0:1:1}
+set aLabel 0:1
+set aFile [locate_data_file caf001_refAr.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ReferenceArray attribute: Error"
+set aGetAttr1 [GetRefArray D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_ReferenceArray attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute BooleanList
+#
+# Testing command: Open, GetBooleanList
+#
+
+puts "caf001-W7"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {1 0 1 0 1}
+set aLabel 0:1
+set aFile [locate_data_file caf001_boolList.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_BooleanList attribute: Error"
+set aGetAttr1 [GetBooleanList D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_BooleanList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute ExtStringList
+#
+# Testing command: Open, GetExtStringList.
+#
+
+puts "caf001-W8"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {aaaaaaaaaaaa1 bbbbbbb2 ccccccccc3}
+set aLabel 0:1
+set aFile [locate_data_file caf001_extstrList.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_ExtStringList attribute: Error"
+set aGetAttr1 [GetExtStringList D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_ExtStringList attribute: OK"
+}
--- /dev/null
+#INTERFACE CAF
+# Basic attributes
+# Std documents
+#
+# Testing support of std format: reading standard attribute IntegerList
+#
+# Testing command: Open, GetIntegerList.
+#
+
+puts "caf001-W9"
+set QA_DUP 0
+
+# Add an attribute to a data framework
+set aSetAttr1 {11 12 13 14 15}
+set aLabel 0:1
+set aFile [locate_data_file caf001_intList.std]
+#Open a document
+Open ${aFile} D
+
+# Get a value of the attribute
+set IsGood 1
+set aMessage1 "Add TDataStd_IntegerList attribute: Error"
+set aGetAttr1 [GetIntegerList D ${aLabel}]
+set aLenRead [llength ${aGetAttr1}]
+set aLenSet [llength ${aSetAttr1}]
+
+if { ${aLenRead} != ${aLenSet} } {
+ set IsGood 0
+ puts "aLenRead=${aLenRead}"
+ puts ${aMessage1}
+}
+
+if { ${IsGood} == 0} return
+
+for {set i 0} {$i < $aLenRead} {incr i} {
+ set aGetAttr11 [lindex ${aGetAttr1} $i]
+ set aGetAttr21 [lindex ${aSetAttr1} $i]
+ if { ${aGetAttr11} != ${aGetAttr21} } {
+ set IsGood 0;puts "i=${i}"
+ puts "aGetAttr11=${aGetAttr11}"
+ puts "aGetAttr21=${aGetAttr21}"
+ break
+ }
+}
+
+if { ${IsGood} == 0} {
+ puts ${aMessage1}
+} else {
+ puts "Add TDataStd_IntegerList attribute: OK"
+}
SetIntPackedMap DOC 0:1 0 1 10 100 1000 10000
# Set an array of boolean values.
-SetBooleanArray DOC 0:1 0 1 5 0 0 0 1 1
+SetBooleanArray DOC 0:1 1 5 0 0 0 1 1
# Set a list of integer values.
SetIntegerList DOC 0:1 1971 1972 1973 1974 1975