//-------------------------------------------------------------------------- ObjectHandle findFirstMetaData( const TypeId& typeId, const IClassDefinition& definition, const IDefinitionManager & definitionManager) override { auto && metaData = definition.getMetaData(); return findFirstMetaData(typeId, metaData, definitionManager); }
ObjectHandle findFirstMetaData( const TypeId& typeId, const MetaData & metaData, const IDefinitionManager & definitionManager) override { auto targetDefinition = definitionManager.getDefinition(typeId.getName()); return targetDefinition ? findFirstMetaData(*targetDefinition, metaData, definitionManager) : nullptr; }
//-------------------------------------------------------------------------- ObjectHandle findFirstMetaData( const TypeId& typeId, const IBaseProperty& pProperty, const IDefinitionManager & definitionManager) override { auto && metaData = pProperty.getMetaData(); return findFirstMetaData(typeId, metaData, definitionManager); }
//-------------------------------------------------------------------------- ObjectHandle MetaUtilities::findFirstMetaData( const TypeId& typeId, const PropertyAccessor& accessor, const IDefinitionManager & definitionManager) override { auto && metaData = accessor.getMetaData(); auto targetMetaData = findFirstMetaData(typeId, metaData, definitionManager); if (targetMetaData != nullptr) { return targetMetaData; } return nullptr; }
const T* findFirstMetaData(const IClassDefinition& definition, const IDefinitionManager& definitionManager) { auto meta = findFirstMetaData(TypeId::getType<T>(), definition, definitionManager); return MetaData<T>(meta, definitionManager); }
const T* findFirstMetaData(const IBaseProperty& pProperty, const IDefinitionManager& definitionManager) { auto meta = findFirstMetaData(TypeId::getType<T>(), pProperty, definitionManager); return MetaData<T>(meta, definitionManager); }
const T* findFirstMetaData(const PropertyAccessor& accessor, const IDefinitionManager& definitionManager) { auto meta = findFirstMetaData(TypeId::getType<T>(), accessor, definitionManager); return MetaData<T>(meta, definitionManager); }
const T* findFirstMetaData(const MetaHandle& metaData, const IDefinitionManager& definitionManager) { auto meta = findFirstMetaData(TypeId::getType<T>(), metaData, definitionManager); return MetaData<T>(meta, definitionManager); }