Kaynağa Gözat

Removed unused class and test.

marlin 11 yıl önce
ebeveyn
işleme
c2882a1254

+ 0
- 71
src/main/java/se/citerus/dddsample/domain/shared/experimental/EntitySupport.java Dosyayı Görüntüle

@@ -1,71 +0,0 @@
1
-package se.citerus.dddsample.domain.shared.experimental;
2
-
3
-import java.lang.reflect.Field;
4
-
5
-/**
6
- * Base class for entities.
7
- *
8
- */
9
-public abstract class EntitySupport<T extends Entity, ID> implements Entity<T, ID> {
10
-
11
-    private static Field identityField;
12
-
13
-    @Override
14
-    public final boolean sameIdentityAs(final T other) {
15
-        return other != null && this.identity().equals(other.identity());
16
-    }
17
-
18
-    @Override
19
-    public final ID identity() {
20
-        if (identityField == null) {
21
-            identityField = identityFieldLazyDetermination(this.getClass());
22
-        }
23
-
24
-        try {
25
-            return (ID) identityField.get(this);
26
-        } catch (IllegalAccessException e) {
27
-            throw new RuntimeException(e);
28
-        }
29
-    }
30
-
31
-    private static Field identityFieldLazyDetermination(final Class cls) {
32
-        Field identityField = null;
33
-
34
-        for (Field field : cls.getDeclaredFields()) {
35
-            if (field.getAnnotation(Identity.class) != null) {
36
-                field.setAccessible(true);
37
-                if (identityField != null) {
38
-                    throw new IllegalStateException("Only one field can be annotated with " + Identity.class);
39
-                } else {
40
-                    identityField = field;
41
-                }
42
-            }
43
-        }
44
-
45
-        if (identityField == null) {
46
-            if (cls == Object.class) {
47
-                throw new IllegalStateException(
48
-                  "This class, or one of its superclasses, " +
49
-                  "must have a unique field annotated with " + Identity.class);
50
-            } else {
51
-                return identityFieldLazyDetermination(cls.getSuperclass());
52
-            }
53
-        }
54
-
55
-        return identityField;
56
-    }
57
-
58
-    @Override
59
-    public final int hashCode() {
60
-        return identity().hashCode();
61
-    }
62
-
63
-    @Override
64
-    public final boolean equals(final Object o) {
65
-        if (this == o) return true;
66
-        if (o == null || getClass() != o.getClass()) return false;
67
-
68
-        return sameIdentityAs((T) o);
69
-    }
70
-
71
-}

+ 0
- 63
src/test/java/se/citerus/dddsample/domain/shared/experimental/EntitySupportTest.java Dosyayı Görüntüle

@@ -1,63 +0,0 @@
1
-package se.citerus.dddsample.domain.shared.experimental;
2
-
3
-import junit.framework.TestCase;
4
-
5
-/*public class EntitySupportTest extends TestCase {
6
-
7
-    public void testNoIdentityAnnotationFail() {
8
-        NoAnnotationEntity entity = new NoAnnotationEntity();
9
-
10
-        try {
11
-            entity.identity();
12
-            fail("Entity must have a unique identity");
13
-        } catch (IllegalStateException expected) {
14
-        }
15
-    }
16
-
17
-    public void testTwoIdentityAnnotationsFail() {
18
-        TwoAnnotationsEntity entity = new TwoAnnotationsEntity();
19
-        try {
20
-            entity.identity();
21
-            fail("Entity must have a unique identity");
22
-        } catch (IllegalStateException expected) {
23
-        }
24
-    }
25
-
26
-    public void testOneAnnotationSuccess() {
27
-        OneAnnotationEntity entity = new OneAnnotationEntity("id");
28
-        assertEquals("id", entity.identity());
29
-    }
30
-
31
-    public void testSameIdentityEqualsHashcode() {
32
-        OneAnnotationEntity entity1 = new OneAnnotationEntity("A");
33
-        OneAnnotationEntity entity2 = new OneAnnotationEntity("A");
34
-        OneAnnotationEntity entity3 = new OneAnnotationEntity("B");
35
-
36
-        assertTrue(entity1.sameIdentityAs(entity2));
37
-        assertFalse(entity2.sameIdentityAs(entity3));
38
-
39
-        assertTrue(entity1.equals(entity2));
40
-        assertFalse(entity2.equals(entity3));
41
-
42
-        assertTrue(entity1.hashCode() == entity2.hashCode());
43
-        assertFalse(entity2.hashCode() == entity3.hashCode());
44
-    }
45
-
46
-    class NoAnnotationEntity extends EntitySupport<NoAnnotationEntity, String> {
47
-    }
48
-
49
-    class OneAnnotationEntity extends EntitySupport<OneAnnotationEntity, String> {
50
-        private @Identity String id;
51
-
52
-        OneAnnotationEntity(String id) {
53
-            this.id = id;
54
-        }
55
-    }
56
-
57
-    class TwoAnnotationsEntity extends EntitySupport<TwoAnnotationsEntity, String> {
58
-        private @Identity String id1 = "id1";
59
-        private @Identity String id2 = "id2";
60
-    }
61
-
62
-}
63
-*/