new: FFDATA

This commit is contained in:
Henning Brinkmann 2007-01-30 12:24:52 +00:00
parent 4be6920b51
commit b8edb43688
7 changed files with 1073 additions and 24 deletions

View file

@ -4,9 +4,9 @@
*
* $RCSfile: WW8DocumentImpl.cxx,v $
*
* $Revision: 1.11 $
* $Revision: 1.12 $
*
* last change: $Author: hbrinkm $ $Date: 2006-12-14 15:34:05 $
* last change: $Author: hbrinkm $ $Date: 2007-01-30 13:22:54 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@ -165,7 +165,7 @@ WW8DocumentImpl::~WW8DocumentImpl()
}
WW8DocumentImpl::WW8DocumentImpl(WW8Stream::Pointer_t rpStream)
: bSubDocument(false), mfcPicLoc(0), mpStream(rpStream)
: bSubDocument(false), mfcPicLoc(0), mbPicIsData(false), mpStream(rpStream)
{
mpDocStream = getSubStream(::rtl::OUString::createFromAscii
("WordDocument"));
@ -508,7 +508,7 @@ bool WW8DocumentImpl::isSpecial(sal_uInt32 nChar)
WW8DocumentImpl::WW8DocumentImpl(const WW8DocumentImpl & rSrc,
const CpAndFc & rStart, const CpAndFc & rEnd)
: bSubDocument(true), mfcPicLoc(0)
: bSubDocument(true), mfcPicLoc(0), mbPicIsData(false)
{
Assign(rSrc);
@ -894,6 +894,8 @@ doctok::Reference<Properties>::Pointer_t WW8DocumentImpl::getProperties
case PROP_FLD:
{
pResult = getField(rCpAndFc);
mpFLD = mpFieldHelper->getWW8FLD(rCpAndFc);
}
break;
@ -1215,14 +1217,17 @@ WW8DocumentImpl::getBlip(sal_uInt32 nBid)
{
doctok::Reference<Properties>::Pointer_t pResult;
DffRecord::Pointer_t pDffRecord(mpDffBlock->getBlip(nBid));
if (pDffRecord.get() != NULL)
if (mpDffBlock != NULL)
{
DffBSE * pBlip = new DffBSE(*pDffRecord);
DffRecord::Pointer_t pDffRecord(mpDffBlock->getBlip(nBid));
if (pBlip != NULL)
if (pDffRecord.get() != NULL)
{
DffBSE * pBlip = new DffBSE(*pDffRecord);
if (pBlip != NULL)
pResult = doctok::Reference<Properties>::Pointer_t(pBlip);
}
}
return pResult;
@ -1234,6 +1239,11 @@ WW8DocumentImpl::getField(const CpAndFc & rCpAndFc) const
return mpFieldHelper->getField(rCpAndFc);
}
WW8FLD::Pointer_t WW8DocumentImpl::getCurrentFLD() const
{
return mpFLD;
}
sal_uInt32 WW8DocumentImpl::getPicLocation() const
{
return mfcPicLoc;
@ -1244,6 +1254,16 @@ void WW8DocumentImpl::setPicLocation(sal_uInt32 fcPicLoc)
mfcPicLoc = fcPicLoc;
}
bool WW8DocumentImpl::isPicData()
{
return mbPicIsData;
}
void WW8DocumentImpl::setPicIsData(bool bPicIsData)
{
mbPicIsData = bPicIsData;
}
doctok::Reference<Stream>::Pointer_t
WW8DocumentImpl::getTextboxText(sal_uInt32 nShpId) const
{
@ -1353,10 +1373,14 @@ void WW8DocumentImpl::resolvePicture(Stream & rStream)
WW8StructBase aStruct(*pStream, mfcPicLoc, 4);
sal_uInt32 nCount = aStruct.getU32(0);
doctok::Reference<Properties>::Pointer_t pPicf
(new WW8PICF(*pStream, mfcPicLoc, nCount));
{
WW8PICF * pPicf = new WW8PICF(*pStream, mfcPicLoc, nCount);
pPicf->setDocument(this);
rStream.props(pPicf);
doctok::Reference<Properties>::Pointer_t pProps(pPicf);
rStream.props(pProps);
}
}
}
@ -2102,10 +2126,17 @@ void FieldHelper::init()
}
}
WW8FLD::Pointer_t FieldHelper::getWW8FLD(const CpAndFc & rCpAndFc)
{
WW8FLD::Pointer_t pFld = mMap[rCpAndFc];
return pFld;
}
doctok::Reference<Properties>::Pointer_t
FieldHelper::getField(const CpAndFc & rCpAndFc)
{
WW8FLD::Pointer_t pFLD = mMap[rCpAndFc];
WW8FLD::Pointer_t pFLD = getWW8FLD(rCpAndFc);
return doctok::Reference<Properties>::Pointer_t
(new WW8FLD(*pFLD));

View file

@ -4,9 +4,9 @@
*
* $RCSfile: WW8DocumentImpl.hxx,v $
*
* $Revision: 1.6 $
* $Revision: 1.7 $
*
* last change: $Author: hbrinkm $ $Date: 2006-12-05 15:11:10 $
* last change: $Author: hbrinkm $ $Date: 2007-01-30 13:22:54 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@ -227,6 +227,8 @@ public:
doctok::Reference<Properties>::Pointer_t
getField(const CpAndFc & rCpAndFc);
WW8FLD::Pointer_t getWW8FLD(const CpAndFc & rCpAndFc);
};
/**
@ -262,6 +264,12 @@ class WW8DocumentImpl : public WW8Document
/// picture location
sal_uInt32 mfcPicLoc;
/// true if FFDATA structure is found at offset mfcPicLoc in data stream
bool mbPicIsData;
/// current field descriptor
WW8FLD::Pointer_t mpFLD;
/// CpAndFcs in the document where properties change
CpAndFcs mCpAndFcs;
@ -665,6 +673,11 @@ public:
doctok::Reference<Properties>::Pointer_t
getField(const CpAndFc & rCpAndFc) const;
/**
Return current field descriptor.
*/
WW8FLD::Pointer_t getCurrentFLD() const;
/**
Return stream of text box.
@ -706,6 +719,9 @@ public:
sal_uInt32 getPicLocation() const;
void setPicLocation(sal_uInt32 fcPicLoc);
bool isPicData();
void setPicIsData(bool bPicIsData);
/**
Create events for the document.

View file

@ -4,9 +4,9 @@
*
* $RCSfile: WW8Picture.cxx,v $
*
* $Revision: 1.4 $
* $Revision: 1.5 $
*
* last change: $Author: hbrinkm $ $Date: 2006-11-09 15:56:00 $
* last change: $Author: hbrinkm $ $Date: 2007-01-30 13:23:42 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@ -39,10 +39,46 @@
namespace doctok
{
void WW8PICF::resolveNoAuto(Properties & rHandler)
{
WW8Stream::Pointer_t pStream = getDocument()->getDataStream();
{
doctok::Reference<Properties>::Pointer_t pContent;
if (getDocument()->isPicData())
{
WW8Value::Pointer_t pValue = createValue(get_ffdata());
rHandler.attribute(NS_rtf::LN_ffdata, *pValue);
}
else
{
WW8Value::Pointer_t pValue = createValue(get_DffRecord());
rHandler.attribute(NS_rtf::LN_DffRecord, *pValue);
}
}
}
doctok::Reference<Properties>::Pointer_t
WW8PICF::get_DffRecord()
{
doctok::Reference<Properties>::Pointer_t pRet(new DffBlock(this, get_cbHeader(), getCount() - get_cbHeader(), 0));
doctok::Reference<Properties>::Pointer_t
pRet(new DffBlock(this, get_cbHeader(), getCount() - get_cbHeader(),
0));
return pRet;
}
doctok::Reference<Properties>::Pointer_t
WW8PICF::get_ffdata()
{
doctok::Reference<Properties>::Pointer_t
pRet(new WW8FFDATA(this, get_cbHeader(), getCount() - get_cbHeader()));
WW8StructBase::Pointer_t pStruct
(new WW8StructBase(this, get_cbHeader(),
getCount() - get_cbHeader()));
pStruct->dump(output);
return pRet;
}
@ -51,4 +87,127 @@ WW8FSPA::get_shape()
{
return getDocument()->getShape(get_spid());
}
void WW8FFDATA::resolveNoAuto(Properties & rHandler)
{
WW8DocumentImpl * pDocument = getDocument();
if (pDocument != NULL)
{
WW8FLD::Pointer_t pFLD = pDocument->getCurrentFLD();
WW8Value::Pointer_t pValue = createValue(pFLD->get_flt());
rHandler.attribute(NS_rtf::LN_FLT, *pValue);
}
}
sal_uInt32 WW8FFDATA::get_FLT()
{
sal_uInt32 nResult = 0;
WW8DocumentImpl * pDocument = getDocument();
if (pDocument != NULL)
{
WW8FLD::Pointer_t pFLD = pDocument->getCurrentFLD();
nResult = pFLD->get_flt();
}
return nResult;
}
static sal_uInt32 lcl_FFDATA_default_offset(WW8FFDATA & rRef)
{
return 0xa + (rRef.getU16(0xa) + 2) * 2;
}
static sal_uInt32 lcl_FFDATA_formatting_offset(WW8FFDATA & rRef)
{
sal_uInt32 nResult = lcl_FFDATA_default_offset(rRef);
switch (rRef.get_FLT())
{
case 71: // forms checkbox
case 83: // forms listbox
nResult += 2;
break;
default:
nResult += (rRef.getU16(nResult) + 2) * 2;
break;
}
return nResult;;
}
static sal_uInt32 lcl_FFDATA_help_offset(WW8FFDATA & rRef)
{
sal_uInt32 nResult = lcl_FFDATA_formatting_offset(rRef);
nResult += (rRef.getU16(nResult) + 2) * 2;
return nResult;;
}
static sal_uInt32 lcl_FFDATA_tooltip_offset(WW8FFDATA & rRef)
{
sal_uInt32 nResult = lcl_FFDATA_help_offset(rRef);
nResult += (rRef.getU16(nResult) + 2) * 2;
return nResult;;
}
rtl::OUString WW8FFDATA::get_default()
{
rtl::OUString sResult;
sal_uInt32 nOffset = lcl_FFDATA_default_offset(*this);
switch (get_FLT())
{
case 70:
sResult = getString(nOffset);
break;
default:
break;
}
return sResult;
}
rtl::OUString WW8FFDATA::get_formatting()
{
return getString(lcl_FFDATA_formatting_offset(*this));
}
rtl::OUString WW8FFDATA::get_help()
{
return getString(lcl_FFDATA_help_offset(*this));
}
rtl::OUString WW8FFDATA::get_tooltip()
{
rtl::OUString sResult;
sResult = getString(lcl_FFDATA_tooltip_offset(*this));
return sResult;
}
sal_uInt16 WW8FFDATA::get_checked()
{
sal_uInt16 nResult = 0;
switch (get_FLT())
{
case 71:
nResult = getU16(lcl_FFDATA_default_offset(*this));
break;
default:
break;
}
return nResult;
}
}

View file

@ -4,9 +4,9 @@
*
* $RCSfile: WW8PropertySetImpl.cxx,v $
*
* $Revision: 1.2 $
* $Revision: 1.3 $
*
* last change: $Author: hbrinkm $ $Date: 2006-11-01 09:14:31 $
* last change: $Author: hbrinkm $ $Date: 2007-01-30 13:24:14 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@ -326,8 +326,13 @@ void WW8PropertySetImpl::resolveLocal(Sprm & sprm)
{
Value::Pointer_t pValue = sprm.getValue();
getDocument()->setPicLocation(pValue->getInt());
getDocument()->setPicIsData(false);
}
break;
case 0x806:
{
getDocument()->setPicIsData(true);
}
default:
break;
}

View file

@ -4,9 +4,9 @@
*
* $RCSfile: WW8ResourceModelImpl.cxx,v $
*
* $Revision: 1.6 $
* $Revision: 1.7 $
*
* last change: $Author: hbrinkm $ $Date: 2006-11-27 09:03:47 $
* last change: $Author: hbrinkm $ $Date: 2007-01-30 13:24:52 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@ -779,6 +779,11 @@ void WW8PropertiesHandler::attribute(Id name, Value & val)
output.addItem("</attribute>");
}
bool WW8PropertiesHandler::compare(SprmSharedPointer_t sprm1, SprmSharedPointer_t sprm2)
{
return sprm1->getId() < sprm2->getId();
}
void WW8PropertiesHandler::sprm(Sprm & sprm_)
{
string tmpStr = "<sprm id=\"";
@ -887,5 +892,10 @@ void dump(OutputWithDepth<string> & o, const char * name, sal_uInt32 n)
o.addItem(tmpStr);
}
void dump(OutputWithDepth<string> & /*o*/, const char * /*name*/,
const rtl::OUString & /*str*/)
{
}
}

View file

@ -4,9 +4,9 @@
*
* $RCSfile: WW8ResourceModelImpl.hxx,v $
*
* $Revision: 1.5 $
* $Revision: 1.6 $
*
* last change: $Author: hbrinkm $ $Date: 2006-11-27 09:03:47 $
* last change: $Author: hbrinkm $ $Date: 2007-01-30 13:24:52 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@ -349,6 +349,10 @@ public:
class WW8PropertiesHandler : public Properties
{
typedef boost::shared_ptr<Sprm> SprmSharedPointer_t;
typedef vector<SprmSharedPointer_t> SprmPointers_t;
SprmPointers_t sprms;
public:
WW8PropertiesHandler()
{
@ -360,6 +364,11 @@ public:
virtual void attribute(Id name, Value & val);
virtual void sprm(Sprm & sprm);
void dumpSprm(SprmSharedPointer_t sprm);
void dumpSprms();
static bool compare(SprmSharedPointer_t sprm1, SprmSharedPointer_t sprm2);
};
class WW8BinaryObjHandler : public BinaryObj
@ -413,6 +422,8 @@ public:
void dump(OutputWithDepth<string> & o, const char * name, doctok::Reference<Properties>::Pointer_t props);
void dump(OutputWithDepth<string> & o, const char * name, sal_uInt32 n);
void dump(OutputWithDepth<string> & /*o*/, const char * /*name*/,
const rtl::OUString & /*str*/);
}

View file

@ -23415,11 +23415,800 @@
</UML:Generalization.parent>
</UML:Generalization>
<!--Class METAFILEPICT-->
<UML:Class xmi.id="FFDATA" name="FFDATA">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
</UML:ModelElement.stereotype>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="resolvenoauto"/>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Attribute name="unknown">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>unkonwn</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x3</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:unknown</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="dropdownIndex">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>unkonwn</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0xfc</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:dropdownIndex</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="fTooltip">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>tool tip</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:tooltip</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="fNomark">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>no mark</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>1</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:nomark</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="fUseSize">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>use size</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>2</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:useSize</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="fNumersOnly">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>numbers only</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>3</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:numbersOnly</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="fDateOnly">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>date only</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x10</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>4</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:dateOnly</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="fUnused">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>unused</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0xe0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>5</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:unused</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U8"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="size">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>size</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x6</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue></UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:size</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U16"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="hpsCheckbox">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue></UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0x8</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>16</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue></UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:hpsCheckbox</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="U16"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Attribute name="title">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>title of the field</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="comment"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0xa</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="offset"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue></UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="bits"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue></UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="mask"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>0</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="shift"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:fftitle</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="attrid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:StructuralFeature.type>
<UML:DataType xmi.idref="String"/>
</UML:StructuralFeature.type>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
</UML:Attribute>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Operation name="FLT" >
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:FLT</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="opid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" name="return">
<UML:Parameter.type>
<UML:Class xmi.idref="U32" />
</UML:Parameter.type>
</UML:Parameter>
</UML:BehavioralFeature.parameter>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute" />
</UML:ModelElement.stereotype>
</UML:Operation>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Operation name="default" >
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:ffdefault</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="opid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" name="return">
<UML:Parameter.type>
<UML:Class xmi.idref="String" />
</UML:Parameter.type>
</UML:Parameter>
</UML:BehavioralFeature.parameter>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute" />
</UML:ModelElement.stereotype>
</UML:Operation>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Operation name="checked" >
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:ffchecked</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="opid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" name="return">
<UML:Parameter.type>
<UML:Class xmi.idref="U16" />
</UML:Parameter.type>
</UML:Parameter>
</UML:BehavioralFeature.parameter>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute" />
</UML:ModelElement.stereotype>
</UML:Operation>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Operation name="formatting" >
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:ffformatting</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="opid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" name="return">
<UML:Parameter.type>
<UML:Class xmi.idref="String" />
</UML:Parameter.type>
</UML:Parameter>
</UML:BehavioralFeature.parameter>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute" />
</UML:ModelElement.stereotype>
</UML:Operation>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Operation name="help" >
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:ffhelp</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="opid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" name="return">
<UML:Parameter.type>
<UML:Class xmi.idref="String" />
</UML:Parameter.type>
</UML:Parameter>
</UML:BehavioralFeature.parameter>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute" />
</UML:ModelElement.stereotype>
</UML:Operation>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Operation name="tooltip" >
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:fftooltip</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="opid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" name="return">
<UML:Parameter.type>
<UML:Class xmi.idref="String" />
</UML:Parameter.type>
</UML:Parameter>
</UML:BehavioralFeature.parameter>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute" />
</UML:ModelElement.stereotype>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>
<UML:Generalization isSpecification="false" xmi.id="FFDATA-Properties" >
<UML:Generalization.child>
<UML:Class xmi.idref="FFDATA" />
</UML:Generalization.child>
<UML:Generalization.parent>
<UML:Class xmi.idref="Properties" />
</UML:Generalization.parent>
</UML:Generalization>
<!--Class PICF-->
<UML:Class xmi.id="PICF" name="PICF">
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="ww8resource"/>
</UML:ModelElement.stereotype>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="resolvenoauto"/>
</UML:ModelElement.stereotype>
<UML:Classifier.feature>
<UML:Attribute name="lcb">
<UML:ModelElement.taggedValue>
@ -24934,6 +25723,34 @@
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="noresolve"/>
</UML:ModelElement.stereotype>
</UML:Operation>
</UML:Classifier.feature>
<UML:Classifier.feature>
<UML:Operation name="ffdata">
<UML:ModelElement.taggedValue>
<UML:TaggedValue>
<UML:TaggedValue.dataValue>rtf:ffdata</UML:TaggedValue.dataValue>
<UML:TaggedValue.type>
<UML:TagDefinition xmi.idref="opid"/>
</UML:TaggedValue.type>
</UML:TaggedValue>
</UML:ModelElement.taggedValue>
<UML:BehavioralFeature.parameter>
<UML:Parameter kind="return" name="return">
<UML:Parameter.type>
<UML:Class xmi.idref="FFDATA"/>
</UML:Parameter.type>
</UML:Parameter>
</UML:BehavioralFeature.parameter>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="attribute"/>
</UML:ModelElement.stereotype>
<UML:ModelElement.stereotype>
<UML:Stereotype xmi.idref="noresolve"/>
</UML:ModelElement.stereotype>
</UML:Operation>
</UML:Classifier.feature>
</UML:Class>