1 package org.jcr_blog.jcrmapping.converter.basic;
2
3 import com.google.common.collect.Sets;
4 import java.util.HashSet;
5 import java.util.Set;
6 import javax.enterprise.context.ApplicationScoped;
7 import javax.jcr.RepositoryException;
8 import javax.jcr.Value;
9 import org.jcr_blog.jcrmapping.NodeConverterException;
10 import org.jcr_blog.jcrmapping.converter.CollectionConverter;
11
12
13
14
15
16 @ApplicationScoped
17 public class SetConverter implements CollectionConverter {
18
19 @Override
20 public boolean isApplicableValuesToObjects(final Class<?> clazz) {
21 return clazz.isAssignableFrom(Set.class);
22 }
23
24 @Override
25 public Object toObjects(final Value[] values, CreateObjectCallback callback) throws NodeConverterException, RepositoryException {
26 final HashSet<Object> result = Sets.newHashSetWithExpectedSize(values.length);
27 for (final Value v : values) {
28 result.add(callback.toObject(v));
29 }
30 return result;
31 }
32
33 }