View Javadoc

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   * @author sprehn
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  }