StringSetConverter.java 803 B

1234567891011121314151617181920212223242526272829
  1. package com.moekr.moocoder.data.converter;
  2. import org.json.JSONArray;
  3. import javax.persistence.AttributeConverter;
  4. import java.util.HashSet;
  5. import java.util.Objects;
  6. import java.util.Set;
  7. import java.util.stream.Collectors;
  8. public class StringSetConverter implements AttributeConverter<Set<String>, String> {
  9. @Override
  10. public String convertToDatabaseColumn(Set<String> attribute) {
  11. attribute = attribute.stream().filter(Objects::nonNull).collect(Collectors.toSet());
  12. return new JSONArray(attribute).toString();
  13. }
  14. @Override
  15. public Set<String> convertToEntityAttribute(String dbData) {
  16. JSONArray array = new JSONArray(dbData);
  17. Set<String> set = new HashSet<>();
  18. for (Object object : array) {
  19. if (object instanceof String) {
  20. set.add((String) object);
  21. }
  22. }
  23. return set;
  24. }
  25. }