bool
IntVectorFilter::BuildYourselfFromAValueSet( ValueSet &valueSet ) {

    int			comparatorType, index;
    ValueSet	*pValueVector;
    bool		rc;
    I64			*pValue, value;

    rc = Filter::BuildYourselfFromAValueSet( valueSet );

    ClearValueVector();
    delete m_pComparator;

    valueSet.GetInt( SSAPI_INT_FLOAT_VECTOR_FILTER_FID_FIELD_ID, &m_fieldId );
    valueSet.GetInt( SSAPI_INT_FLOAT_VECTOR_FILTER_FID_COMPARATOR_TYPE, &comparatorType );
    m_pComparator = new Comparator( (Comparator::COMPARATOR_TYPE)comparatorType );

    pValueVector	= (ValueSet *)valueSet.GetValue( SSAPI_INT_FLOAT_VECTOR_FILTER_FID_VALUE_VECTOR );

    if( !pValueVector )
        return false;

    for( index = 0; index < pValueVector->GetCount(); index++ ) {
        if( !pValueVector->GetInt64( index, &value ) ) {
            int i;
            if( !pValueVector->GetInt( index, (int *)&i) )
                return false;
            else
                value = i;
        }

        pValue = new I64;
        *pValue = value;
        m_pValueVector->AddAt( (CONTAINER_ELEMENT)pValue, index );
    }

    return rc;
}