/*
* Copyright 2006 Sony Computer Entertainment Inc.
*
* Licensed under the MIT Open Source License, for details please see license.txt or the website
* http://www.opensource.org/licenses/mit-license.php
*
*/
#include <dae/daeMetaAny.h>
#include <dae/domAny.h>
#include <dae/daeMetaElementAttribute.h>
#include <dae.h>
daeMetaAny::daeMetaAny( daeMetaElement *container, daeMetaCMPolicy *parent, daeUInt ordinal,
daeInt minO, daeInt maxO) : daeMetaCMPolicy( container, parent, ordinal, minO, maxO )
{}
daeMetaAny::~daeMetaAny()
{}
daeElement *daeMetaAny::placeElement( daeElement *parent, daeElement *child, daeUInt &ordinal, daeInt offset, daeElement* before, daeElement *after ) {
//remove element from praent
(void)offset;
(void)before;
(void)after;
daeElement::removeFromParent( child );
child->setParentElement( parent );
//*************************************************************************
ordinal = 0;
return child;
}
daeBool daeMetaAny::removeElement( daeElement *parent, daeElement *child ) {
(void)parent;
(void)child;
return true;
}
daeMetaElement * daeMetaAny::findChild( daeString elementName ) {
if ( elementName != NULL ) {
const daeMetaElementRefArray &metas = _container->getDAE()->getAllMetas();
size_t cnt = metas.getCount();
for ( size_t x = 0; x < cnt; x++ ) {
if ( metas[x] && !metas[x]->getIsInnerClass() && strcmp( elementName, metas[x]->getName() ) == 0 ) {
return metas[x];
}
}
}
return domAny::registerElement(*_container->getDAE());
}
void daeMetaAny::getChildren( daeElement *parent, daeElementRefArray &array ) {
(void)parent;
(void)array;
//this is taken care of by the _contents in metaElement
}