Roy Golan has uploaded a new change for review.

Change subject: core: cleanup and delete EnumCompat
......................................................................

core: cleanup and delete EnumCompat

Use the native enum methods and generify uses of enums with IDs

Change-Id: I0383ea74495f74ff1727561644017d8b3bae7e6f
Signed-off-by: Roy Golan <[email protected]>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DateEnumForSearch.java
D 
backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/EnumCompat.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/DateEnumValueAutoCompleter.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumNameAutoCompleter.java
M 
backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumValueAutoCompleter.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/DataProvider.java
6 files changed, 26 insertions(+), 96 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/16/9516/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DateEnumForSearch.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DateEnumForSearch.java
index c0c95bc..b44cb44 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DateEnumForSearch.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/DateEnumForSearch.java
@@ -2,7 +2,7 @@
 
 import java.util.HashMap;
 
-public enum DateEnumForSearch {
+public enum DateEnumForSearch implements IdentifiedEnum {
     Today(1),
     Yesterday(2);
 
@@ -23,7 +23,13 @@
         return intValue;
     }
 
+
     public static DateEnumForSearch forValue(int value) {
         return mappings.get(value);
     }
+
+    @Override
+    public int getId() {
+        return intValue;
+    }
 }
diff --git 
a/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/EnumCompat.java
 
b/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/EnumCompat.java
deleted file mode 100644
index f29a383..0000000
--- 
a/backend/manager/modules/compat/src/main/java/org/ovirt/engine/core/compat/EnumCompat.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.ovirt.engine.core.compat;
-
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-public class EnumCompat {
-
-    /**
-     * Returns the Enum instances as an Arraylist
-     */
-    public static <T extends Enum> ArrayList<T> GetValues(Class<T> clazz) {
-        ArrayList<String> returnValues = new ArrayList<String>();
-        if (!clazz.isEnum()) {
-            throw new CompatException("Class is not an Enum: " + 
clazz.getName());
-        }
-        return new ArrayList(Arrays.asList(clazz.getEnumConstants()));
-    }
-
-    /**
-     * Returns the Enum names as an Arraylist
-     */
-    public static <T extends Enum> String[] GetNames(Class<T> clazz) {
-        ArrayList<String> returnValues = new ArrayList<String>();
-        if (!clazz.isEnum()) {
-            throw new CompatException("Class is not an Enum: " + 
clazz.getName());
-        }
-        for (Enum e : clazz.getEnumConstants()) {
-            returnValues.add(e.name());
-        }
-        return returnValues.toArray(new String[0]);
-    }
-
-    /**
-     * Returns the name of an enum based on its ordinal value
-     */
-    public static String GetName(Class enumerationType, int val) {
-        Enum enumObject;
-        try {
-            Method forValue = enumerationType.getMethod("forValue", int.class);
-            enumObject = (Enum) forValue.invoke(null, val);
-        } catch (Exception ex) {
-            throw new RuntimeException(ex);
-        }
-        return enumObject.name();
-        // return ((Enum)enumerationType)..getEnumConstants()[val].toString();
-    }
-
-    /**
-     * Returns the ordinal values of the enum
-     */
-    public static <T extends Enum> int[] GetIntValues(Class<T> 
enumerationType) {
-        List<T> enums = GetValues(enumerationType);
-        int size = enums.size();
-        int[] returnValue = new int[size];
-        try {
-            Method getValue = enumerationType.getMethod("getValue");
-            for (int x = 0; x < size; x++) {
-                // returnValue[x] = enums.get(x).ordinal();
-                int enumValue = (Integer) getValue.invoke(enums.get(x));
-                returnValue[x] = enumValue;
-            }
-        } catch (Exception ex) {
-            throw new RuntimeException(ex);
-        }
-        return returnValue;
-    }
-}
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/DateEnumValueAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/DateEnumValueAutoCompleter.java
index 604b046..5e21411 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/DateEnumValueAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/DateEnumValueAutoCompleter.java
@@ -1,18 +1,18 @@
 package org.ovirt.engine.core.searchbackend;
 
+import org.ovirt.engine.core.common.businessentities.IdentifiedEnum;
 import org.ovirt.engine.core.compat.DateTime;
 import org.ovirt.engine.core.compat.DayOfWeek;
-import org.ovirt.engine.core.compat.EnumCompat;
 import org.ovirt.engine.core.compat.StringHelper;
 
 public class DateEnumValueAutoCompleter extends BaseAutoCompleter implements 
IConditionValueAutoCompleter {
     private java.util.HashMap<String, Integer> mEnumValues = new 
java.util.HashMap<String, Integer>();
 
-    public DateEnumValueAutoCompleter(Class enumerationType) {
+    public <I extends IdentifiedEnum,E extends Enum<? extends I>> 
DateEnumValueAutoCompleter(Class<E> enumerationType) {
         super();
-        for (int val : EnumCompat.GetIntValues(enumerationType)) {
-            String ValName = EnumCompat.GetName(enumerationType, 
val).toUpperCase();
-            mEnumValues.put(ValName, val);
+        for (E val : enumerationType.getEnumConstants()) {
+            String ValName = val.name().toUpperCase();
+            mEnumValues.put(ValName, ((I) val).getId());
             mVerbs.put(ValName, ValName);
         }
         AddDaysOfWeek();
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumNameAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumNameAutoCompleter.java
index fb52f55..30f54a7 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumNameAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumNameAutoCompleter.java
@@ -1,7 +1,5 @@
 package org.ovirt.engine.core.searchbackend;
 
-import org.ovirt.engine.core.compat.EnumCompat;
-
 /**
  * Auto completer that presents enum names as completions, and returns the 
same as actual value. This is useful for
  * enums that are stored as varchars in DB, with value same as the name.
@@ -13,8 +11,8 @@
      * @param enumerationType
      */
     public <T extends Enum<T>> EnumNameAutoCompleter(Class<T> enumerationType) 
{
-        for (String name : EnumCompat.GetNames(enumerationType)) {
-            mVerbs.put(name, name);
+        for (T enumMember : enumerationType.getEnumConstants()) {
+            mVerbs.put(enumMember.name(), enumMember.name());
         }
         buildCompletions();
     }
diff --git 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumValueAutoCompleter.java
 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumValueAutoCompleter.java
index 674fbe3..0760f9a 100644
--- 
a/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumValueAutoCompleter.java
+++ 
b/backend/manager/modules/searchbackend/src/main/java/org/ovirt/engine/core/searchbackend/EnumValueAutoCompleter.java
@@ -4,17 +4,17 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.ovirt.engine.core.compat.EnumCompat;
+import org.ovirt.engine.core.common.businessentities.IdentifiedEnum;
 
 public class EnumValueAutoCompleter extends BaseAutoCompleter implements 
IConditionValueAutoCompleter {
     private final HashMap<String, Integer> mEnumValues = new HashMap<String, 
Integer>();
 
-    public EnumValueAutoCompleter(Class enumerationType) {
+    public <I extends IdentifiedEnum, E extends Enum<? extends I>> 
EnumValueAutoCompleter(Class<E> enumerationType) {
 
-        for (int val : EnumCompat.GetIntValues(enumerationType)) {
-            String ValName = EnumCompat.GetName(enumerationType, 
val).toUpperCase();
+        for (E val : enumerationType.getEnumConstants()) {
+            String ValName = val.name().toUpperCase();
             try {
-                mEnumValues.put(ValName, val);
+                mEnumValues.put(ValName, ((I) val).getId());
                 mVerbs.put(ValName, ValName);
             } catch (RuntimeException e) {
                 log.error("EnumValueAutoCompleter. Failed to add " + ValName + 
" .Exception : " + e.getMessage(), e);
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/DataProvider.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/DataProvider.java
index 645b9a3..32fd0d7 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/DataProvider.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/DataProvider.java
@@ -676,18 +676,18 @@
     {
         // TODO: We can translate it here too
         ArrayList<String> ret = new ArrayList<String>();
-        for (String s : EnumCompat.GetNames(VDSType.class))
+        for (VDSType vdsType : VDSType.values())
         {
-            if (StringHelper.stringsEqual(s, VDSType.PowerClient.toString()))
+            if (VDSType.PowerClient == vdsType)
             {
                 if (showPowerclient)
                 {
-                    ret.add(s);
+                    ret.add(vdsType.name());
                 }
             }
             else
             {
-                ret.add(s);
+                ret.add(vdsType.name());
             }
         }
         return ret;
@@ -696,8 +696,7 @@
     public static ArrayList<EventNotificationEntity> 
GetEventNotificationTypeList()
     {
         ArrayList<EventNotificationEntity> ret = new 
ArrayList<EventNotificationEntity>();
-        // TODO: We can translate it here too
-        for (EventNotificationEntity entity : 
EnumCompat.GetValues(EventNotificationEntity.class))
+        for (EventNotificationEntity entity : EventNotificationEntity.values())
         {
             if (entity != EventNotificationEntity.UNKNOWN)
             {
@@ -726,11 +725,7 @@
 
     public static ArrayList<VmInterfaceType> GetNicTypeList(VmOsType osType, 
boolean hasDualmode)
     {
-        ArrayList<VmInterfaceType> list = new ArrayList<VmInterfaceType>();
-        for (VmInterfaceType item : 
EnumCompat.GetValues(VmInterfaceType.class))
-        {
-            list.add(item);
-        }
+        ArrayList<VmInterfaceType> list = new 
ArrayList<VmInterfaceType>(Arrays.asList(VmInterfaceType.values()));
 
         list.remove(VmInterfaceType.rtl8139_pv); // Dual mode NIC should be 
available only for existing NICs that have
                                                  // that type already
@@ -1054,7 +1049,7 @@
 
     public static Iterable GetUsbPolicyList()
     {
-        return EnumCompat.GetValues(UsbPolicy.class);
+        return Arrays.asList(UsbPolicy.values());
     }
 
     public static ArrayList<VDS> GetUpHostList()


--
To view, visit http://gerrit.ovirt.org/9516
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I0383ea74495f74ff1727561644017d8b3bae7e6f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to