FrameListPtr FrameListParameter::getFrameListValue( const StringData *value ) const { FrameListPtr frameList = FrameList::parse( value->readable() ); if ( !m_allowEmptyList && frameList->isInstanceOf( EmptyFrameListTypeId ) ) { throw Exception( "Empty frame list not allowed!" ); } return frameList; }
bool FrameListParameter::valueValid( const Object *value, std::string *reason ) const { if( !StringParameter::valueValid( value, reason ) ) { return false; } const StringData *stringValue = assertedStaticCast<const StringData>( value ); try { FrameListPtr frameList = FrameList::parse( stringValue->readable() ); assert( frameList ); // If we didn't throw an exception, we must have successfully created a FrameList instance if ( !m_allowEmptyList && frameList->isInstanceOf( EmptyFrameListTypeId ) ) { if ( reason ) { *reason = "Value must not be empty."; } return false; } } catch ( std::exception &e ) { if ( reason ) { *reason = e.what(); } return false; } return true; }