Skip to content

Commit d009913

Browse files
author
Mikhail Akushsky
committed
Add UUID field mapper.
Used for correct mapping between PostgreSQL uuid type and java.util.UUID
1 parent 9e442a8 commit d009913

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/main/java/de/zalando/typemapper/core/fieldMapper/FieldMapperRegister.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.util.Date;
66
import java.util.Map;
7+
import java.util.UUID;
78
import java.util.concurrent.ConcurrentHashMap;
89

910
import de.zalando.typemapper.core.ValueTransformer;
@@ -62,6 +63,9 @@ public class FieldMapperRegister {
6263

6364
final FieldMapper hstoreMapper = new HStoreFieldMapper();
6465
FieldMapperRegister.register(Map.class, hstoreMapper);
66+
67+
final FieldMapper uuidMapper = new UUIDFieldMapper();
68+
FieldMapperRegister.register(UUID.class, uuidMapper);
6569
}
6670

6771
@SuppressWarnings("rawtypes")
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package de.zalando.typemapper.core.fieldMapper;
2+
3+
import org.slf4j.Logger;
4+
import org.slf4j.LoggerFactory;
5+
6+
import java.util.UUID;
7+
8+
/**
9+
* Created by akushsky on 27.08.2015.
10+
*/
11+
public class UUIDFieldMapper implements FieldMapper {
12+
13+
private static final Logger LOG = LoggerFactory.getLogger(UUIDFieldMapper.class);
14+
15+
@Override
16+
public Object mapField(String string, Class<?> clazz) {
17+
if (string == null) {
18+
return null;
19+
}
20+
21+
try {
22+
return UUID.fromString(string);
23+
} catch (IllegalArgumentException e) {
24+
LOG.error("Could not convert {} to UUID.", string);
25+
return null;
26+
}
27+
}
28+
}

0 commit comments

Comments
 (0)