class IdentifiableObjectUtils {

    public static <T extends IdentifiableObject> Map<String, T> getIdMap( List<T> objects, IdScheme idScheme )
    {
        Map<String, T> map = new HashMap<>();

        for ( T object : objects )
        {
            String value = object.getPropertyValue( idScheme );
            
            if ( value != null )
            {
                map.put( value, object );
            }
        }

        return map;
    }

}