From 9239d61c749d727e764c1607f586a0084ff919d7 Mon Sep 17 00:00:00 2001 From: Robin Bygrave Date: Sun, 2 Aug 2015 09:34:11 +1200 Subject: [PATCH] No effective change - simplify ManyType to be an enum --- .../deploy/BeanCollectionHelpFactory.java | 2 +- .../server/deploy/DetermineManyType.java | 6 +- .../ebeaninternal/server/deploy/ManyType.java | 64 ++++--------------- .../server/persist/DefaultPersister.java | 2 +- 4 files changed, 17 insertions(+), 57 deletions(-) diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanCollectionHelpFactory.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanCollectionHelpFactory.java index 08413a6b8..a812ba4b4 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanCollectionHelpFactory.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/BeanCollectionHelpFactory.java @@ -19,7 +19,7 @@ public class BeanCollectionHelpFactory { public static BeanCollectionHelp create(BeanPropertyAssocMany manyProperty) { ManyType manyType = manyProperty.getManyType(); - switch (manyType.getUnderlying()) { + switch (manyType) { case LIST: return new BeanListHelp(manyProperty); case SET: diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/DetermineManyType.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/DetermineManyType.java index 212c407ae..53cfd3b64 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/DetermineManyType.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/DetermineManyType.java @@ -14,13 +14,13 @@ public class DetermineManyType { public ManyType getManyType(Class type) { if (type.equals(List.class)) { - return ManyType.JAVA_LIST; + return ManyType.LIST; } if (type.equals(Set.class)) { - return ManyType.JAVA_SET; + return ManyType.SET; } if (type.equals(Map.class)) { - return ManyType.JAVA_MAP; + return ManyType.MAP; } return null; } diff --git a/src/main/java/com/avaje/ebeaninternal/server/deploy/ManyType.java b/src/main/java/com/avaje/ebeaninternal/server/deploy/ManyType.java index aa18657d4..ec0ab7d1d 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/deploy/ManyType.java +++ b/src/main/java/com/avaje/ebeaninternal/server/deploy/ManyType.java @@ -1,7 +1,5 @@ package com.avaje.ebeaninternal.server.deploy; -import com.avaje.ebeaninternal.api.SpiQuery; - import java.util.Collection; import java.util.List; import java.util.Set; @@ -9,62 +7,24 @@ import java.util.Set; /** * Represents the type of a OneToMany or ManyToMany property. */ -public class ManyType { +public enum ManyType { - public static final ManyType JAVA_LIST = new ManyType(Underlying.LIST); - public static final ManyType JAVA_SET = new ManyType(Underlying.SET); - public static final ManyType JAVA_MAP = new ManyType(Underlying.MAP); - - public enum Underlying { - - LIST(List.class), - SET(Set.class), - MAP(null); - - final Class type; - - Underlying(Class type) { - this.type = type; - } - } - - private final SpiQuery.Type queryType; - - private final Underlying underlying; + LIST(false, List.class), + SET(false, Set.class), + MAP(true, null); - public ManyType(Underlying underlying) { - this.underlying = underlying; - switch (underlying) { - case LIST: - queryType = SpiQuery.Type.LIST; - break; - case SET: - queryType = SpiQuery.Type.SET; - break; + private final boolean map; - default: - queryType = SpiQuery.Type.MAP; - break; - } + private final Class type; + + ManyType(boolean map, Class type) { + this.map = map; + this.type = type; } public boolean isMap() { - return Underlying.MAP.equals(underlying); - } - - /** - * Return the matching Query type. - */ - public SpiQuery.Type getQueryType() { - return queryType; - } - - /** - * Return the underlying type. - */ - public Underlying getUnderlying() { - return underlying; + return map; } /** @@ -72,6 +32,6 @@ public class ManyType { * Not intended to be called for maps. */ public Class getCollectionType() { - return underlying.type; + return type; } } diff --git a/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java b/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java index 4854a728e..a41869872 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java +++ b/src/main/java/com/avaje/ebeaninternal/server/persist/DefaultPersister.java @@ -746,7 +746,7 @@ public final class DefaultPersister implements Persister { // if a map, then we get the key value and // set it to the appropriate property on the // detail bean before we save it - boolean isMap = ManyType.JAVA_MAP.equals(prop.getManyType()); + boolean isMap = ManyType.MAP.equals(prop.getManyType()); EntityBean parentBean = saveMany.getParentBean(); Object mapKeyValue = null;