@Override
    public <N, T> T getFirstValue(TKey<N, T> key, Enum<?>... qualifiers) {
        T result = null;
        List<QualifiedValue<?>> values = fields.get(key);
        if (values != null && values.size() > 0) {
            for (QualifiedValue<?> value : values) {
                if (checkQualifier(value, qualifiers)) {
                    result = (T) value.getValue();
                    break;
                }
            }
        }
        return result;
    }