00001 /******************************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *******************************************************************************/ 00007 #pragma once 00008 00009 #include "omtNode.h" 00010 00011 #include <vlutil/vlString.h> 00012 00013 class DT_DLL_OMTREADER DtComplexComponentNode : public DtOMTNode 00014 { 00015 00016 public: 00017 00018 enum DtCardinalityType 00019 { DtFixed = 0, 00020 DtRange, 00021 DtConditional, 00022 DtZeroTerminated, 00023 00024 DtLocation, 00025 DtExternalCount, 00026 DtModulus}; 00027 00028 public: 00029 00031 DtComplexComponentNode(); 00032 00034 virtual ~DtComplexComponentNode(); 00035 00037 DtComplexComponentNode(const DtComplexComponentNode& orig); 00038 00040 DtComplexComponentNode& operator=(const DtComplexComponentNode& rhs); 00041 00042 public: 00043 00044 virtual void setDatatype(const DtString&); 00045 virtual const DtString& getDatatype(); 00046 00047 virtual void setCardinality(const DtString&); 00048 virtual const DtString& getCardinality(); 00049 00050 virtual void setAccuracy(const DtString&); 00051 virtual const DtString& getAccuracy(); 00052 00053 virtual void setAccuracyCondition(const DtString&); 00054 virtual const DtString& getAccuracyCondition(); 00055 00058 virtual int getMinimumCardinality(); 00059 virtual int getMaximumCardinality(); 00060 virtual const DtString& getConditionalComponent(); 00061 virtual const DtString& getConditionalValue(); 00062 virtual DtCardinalityType getCardinalityType(); 00063 00064 protected: 00065 00066 virtual void setDerivedValues(); 00067 00068 00069 protected: 00070 DtString myDatatype; 00071 DtString myCardinality; 00072 DtString myAccuracy; 00073 DtString myAccuracyCondition; 00074 00075 int myMinimumCardinality; 00076 int myMaximumCardinality; 00077 DtString myConditionalComponent; 00078 DtString myConditionalValue; 00079 DtCardinalityType myCardinalityType; 00080 }; 00081 00082