http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/06ca8538/security-admin/src/main/java/org/apache/ranger/util/RangerEnumUtil.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/util/RangerEnumUtil.java 
b/security-admin/src/main/java/org/apache/ranger/util/RangerEnumUtil.java
new file mode 100644
index 0000000..613745e
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/util/RangerEnumUtil.java
@@ -0,0 +1,2025 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+ package org.apache.ranger.util;
+
+/**
+ * 
+ */
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.view.VEnum;
+import org.apache.ranger.common.view.VEnumElement;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RangerEnumUtil {
+
+    static final Logger logger = Logger.getLogger(RangerEnumUtil.class);
+    public final static String ENUM_CommonEnums_ActiveStatus = 
"CommonEnums.ActiveStatus";
+    public final static String ENUM_CommonEnums_ActivationStatus = 
"CommonEnums.ActivationStatus";
+    public final static String ENUM_CommonEnums_BooleanValue = 
"CommonEnums.BooleanValue";
+    public final static String ENUM_CommonEnums_DataType = 
"CommonEnums.DataType";
+    public final static String ENUM_CommonEnums_DeviceType = 
"CommonEnums.DeviceType";
+    public final static String ENUM_CommonEnums_DiffLevel = 
"CommonEnums.DiffLevel";
+    public final static String ENUM_CommonEnums_FileType = 
"CommonEnums.FileType";
+    public final static String ENUM_CommonEnums_FreqType = 
"CommonEnums.FreqType";
+    public final static String ENUM_CommonEnums_MimeType = 
"CommonEnums.MimeType";
+    public final static String ENUM_CommonEnums_NumberFormat = 
"CommonEnums.NumberFormat";
+    public final static String ENUM_CommonEnums_ObjectStatus = 
"CommonEnums.ObjectStatus";
+    public final static String ENUM_CommonEnums_PasswordResetStatus = 
"CommonEnums.PasswordResetStatus";
+    public final static String ENUM_CommonEnums_PriorityType = 
"CommonEnums.PriorityType";
+    public final static String ENUM_CommonEnums_ProgressStatus = 
"CommonEnums.ProgressStatus";
+    public final static String ENUM_CommonEnums_RelationType = 
"CommonEnums.RelationType";
+    public final static String ENUM_CommonEnums_UserSource = 
"CommonEnums.UserSource";
+    public final static String ENUM_CommonEnums_AssetType = 
"CommonEnums.AssetType";
+    public final static String ENUM_CommonEnums_AccessResult = 
"CommonEnums.AccessResult";
+    public final static String ENUM_CommonEnums_PolicyType = 
"CommonEnums.PolicyType";
+    public final static String ENUM_CommonEnums_XAAuditType = 
"CommonEnums.XAAuditType";
+    public final static String ENUM_CommonEnums_ResourceType = 
"CommonEnums.ResourceType";
+    public final static String ENUM_CommonEnums_XAGroupType = 
"CommonEnums.XAGroupType";
+    public final static String ENUM_CommonEnums_XAPermForType = 
"CommonEnums.XAPermForType";
+    public final static String ENUM_CommonEnums_XAPermType = 
"CommonEnums.XAPermType";
+    public final static String ENUM_CommonEnums_ClassTypes = 
"CommonEnums.ClassTypes";
+    public final static String ENUM_XXAuthSession_AuthStatus = 
"XXAuthSession.AuthStatus";
+    public final static String ENUM_XXAuthSession_AuthType = 
"XXAuthSession.AuthType";
+    public final static String ENUM_XResponse_ResponseStatus = 
"XResponse.ResponseStatus";
+
+    protected Hashtable<String, VEnum> enumMap = new Hashtable<String, 
VEnum>();
+    protected List<VEnum> enumList = new ArrayList<VEnum>();
+
+    public List<VEnum> getEnums() {
+       if (enumList.size() == 0) {
+           init();
+       }
+       return enumList;
+    }
+
+    public VEnum getEnum(String enumName) {
+       if (enumList.size() == 0) {
+           init();
+       }
+       return enumMap.get(enumName);
+    }
+
+    public String getLabel(String enumName, int enumValue) {
+       VEnum vEnum = getEnum(enumName);
+       if (vEnum == null) {
+           logger.error("Enum " + enumName + " not found.", new Throwable());
+           return "";
+       }
+       for (VEnumElement vEnumElement : vEnum.getElementList()) {
+           if (vEnumElement.getElementValue() == enumValue) {
+               return vEnumElement.getElementLabel();
+           }
+       }
+       logger.error("Enum value not found. enum=" + enumName + ", value="
+               + enumValue, new Throwable());
+       return "";
+    }
+
+       public int getValue(String enumName, String elementName) {
+               VEnum vEnum = getEnum(enumName);
+               if (vEnum == null) {
+                       logger.error("Enum " + enumName + " not found.", new 
Throwable());
+                       return -1;
+               }
+               for (VEnumElement vEnumElement : vEnum.getElementList()) {
+                       if 
(vEnumElement.getElementName().equalsIgnoreCase(elementName)) {
+                               return vEnumElement.getElementValue();
+                       }
+               }
+               logger.error("Enum value not found. enum=" + enumName
+                               + ", elementName=" + elementName, new 
Throwable());
+               return -1;
+       }
+
+    protected void init() {
+       VEnum vEnum;
+       VEnumElement vElement;
+
+       ///////////////////////////////////
+       // CommonEnums::ActiveStatus
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_ActiveStatus);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_DISABLED");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Disabled");
+       vElement.setRbKey("xa.enum.ActiveStatus.STATUS_DISABLED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_ENABLED");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Enabled");
+       vElement.setRbKey("xa.enum.ActiveStatus.STATUS_ENABLED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_DELETED");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Deleted");
+       vElement.setRbKey("xa.enum.ActiveStatus.STATUS_DELETED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::ActivationStatus
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_ActivationStatus);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACT_STATUS_DISABLED");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Disabled");
+       vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_DISABLED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACT_STATUS_ACTIVE");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Active");
+       vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_ACTIVE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACT_STATUS_PENDING_APPROVAL");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Pending Approval");
+       
vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PENDING_APPROVAL");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACT_STATUS_PENDING_ACTIVATION");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Pending Activation");
+       
vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PENDING_ACTIVATION");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACT_STATUS_REJECTED");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Rejected");
+       vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_REJECTED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACT_STATUS_DEACTIVATED");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Deactivated");
+       vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_DEACTIVATED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACT_STATUS_PRE_REGISTRATION");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("Registration Pending");
+       
vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_PRE_REGISTRATION");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACT_STATUS_NO_LOGIN");
+       vElement.setElementValue(7);
+       vElement.setElementLabel("No login privilege");
+       vElement.setRbKey("xa.enum.ActivationStatus.ACT_STATUS_NO_LOGIN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::BooleanValue
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_BooleanValue);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("BOOL_NONE");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("None");
+       vElement.setRbKey("xa.enum.BooleanValue.BOOL_NONE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("BOOL_TRUE");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("True");
+       vElement.setRbKey("xa.enum.BooleanValue.BOOL_TRUE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("BOOL_FALSE");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("False");
+       vElement.setRbKey("xa.enum.BooleanValue.BOOL_FALSE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::DataType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_DataType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_INTEGER");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Integer");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_INTEGER");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_DOUBLE");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Double");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_DOUBLE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_STRING");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("String");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_STRING");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_BOOLEAN");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Boolean");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_BOOLEAN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_DATE");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Date");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_DATE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_STRING_ENUM");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("String enumeration");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_STRING_ENUM");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_LONG");
+       vElement.setElementValue(7);
+       vElement.setElementLabel("Long");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_LONG");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DATA_TYPE_INTEGER_ENUM");
+       vElement.setElementValue(8);
+       vElement.setElementLabel("Integer enumeration");
+       vElement.setRbKey("xa.enum.DataType.DATA_TYPE_INTEGER_ENUM");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::DeviceType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_DeviceType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DEVICE_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.DeviceType.DEVICE_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DEVICE_BROWSER");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Browser");
+       vElement.setRbKey("xa.enum.DeviceType.DEVICE_BROWSER");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DEVICE_IPHONE");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("iPhone");
+       vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPHONE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DEVICE_IPAD");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("iPad");
+       vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPAD");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DEVICE_IPOD");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("iPod");
+       vElement.setRbKey("xa.enum.DeviceType.DEVICE_IPOD");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DEVICE_ANDROID");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Android");
+       vElement.setRbKey("xa.enum.DeviceType.DEVICE_ANDROID");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::DiffLevel
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_DiffLevel);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DIFF_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.DiffLevel.DIFF_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DIFF_LOW");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Low");
+       vElement.setRbKey("xa.enum.DiffLevel.DIFF_LOW");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DIFF_MEDIUM");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Medium");
+       vElement.setRbKey("xa.enum.DiffLevel.DIFF_MEDIUM");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("DIFF_HIGH");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("High");
+       vElement.setRbKey("xa.enum.DiffLevel.DIFF_HIGH");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::FileType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_FileType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FILE_FILE");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("File");
+       vElement.setRbKey("xa.enum.FileType.FILE_FILE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FILE_DIR");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Directory");
+       vElement.setRbKey("xa.enum.FileType.FILE_DIR");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::FreqType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_FreqType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FREQ_NONE");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("None");
+       vElement.setRbKey("xa.enum.FreqType.FREQ_NONE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FREQ_MANUAL");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Manual");
+       vElement.setRbKey("xa.enum.FreqType.FREQ_MANUAL");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FREQ_HOURLY");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Hourly");
+       vElement.setRbKey("xa.enum.FreqType.FREQ_HOURLY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FREQ_DAILY");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Daily");
+       vElement.setRbKey("xa.enum.FreqType.FREQ_DAILY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FREQ_WEEKLY");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Weekly");
+       vElement.setRbKey("xa.enum.FreqType.FREQ_WEEKLY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FREQ_BI_WEEKLY");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Bi Weekly");
+       vElement.setRbKey("xa.enum.FreqType.FREQ_BI_WEEKLY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("FREQ_MONTHLY");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("Monthly");
+       vElement.setRbKey("xa.enum.FreqType.FREQ_MONTHLY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::MimeType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_MimeType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("MIME_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.MimeType.MIME_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("MIME_TEXT");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Text");
+       vElement.setRbKey("xa.enum.MimeType.MIME_TEXT");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("MIME_HTML");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Html");
+       vElement.setRbKey("xa.enum.MimeType.MIME_HTML");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("MIME_PNG");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("png");
+       vElement.setRbKey("xa.enum.MimeType.MIME_PNG");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("MIME_JPEG");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("jpeg");
+       vElement.setRbKey("xa.enum.MimeType.MIME_JPEG");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::NumberFormat
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_NumberFormat);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("NUM_FORMAT_NONE");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("None");
+       vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_NONE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("NUM_FORMAT_NUMERIC");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Numeric");
+       vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_NUMERIC");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("NUM_FORMAT_ALPHA");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Alphabhet");
+       vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_ALPHA");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("NUM_FORMAT_ROMAN");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Roman");
+       vElement.setRbKey("xa.enum.NumberFormat.NUM_FORMAT_ROMAN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::ObjectStatus
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_ObjectStatus);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("OBJ_STATUS_ACTIVE");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Active");
+       vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_ACTIVE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("OBJ_STATUS_DELETED");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Deleted");
+       vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_DELETED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("OBJ_STATUS_ARCHIVED");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Archived");
+       vElement.setRbKey("xa.enum.ObjectStatus.OBJ_STATUS_ARCHIVED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::PasswordResetStatus
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_PasswordResetStatus);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PWD_RESET_ACTIVE");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Active");
+       vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_ACTIVE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PWD_RESET_USED");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Used");
+       vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_USED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PWD_RESET_EXPIRED");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Expired");
+       vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_EXPIRED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PWD_RESET_DISABLED");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Disabled");
+       vElement.setRbKey("xa.enum.PasswordResetStatus.PWD_RESET_DISABLED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::PriorityType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_PriorityType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PRIORITY_NORMAL");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Normal");
+       vElement.setRbKey("xa.enum.PriorityType.PRIORITY_NORMAL");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PRIORITY_LOW");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Low");
+       vElement.setRbKey("xa.enum.PriorityType.PRIORITY_LOW");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PRIORITY_MEDIUM");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Medium");
+       vElement.setRbKey("xa.enum.PriorityType.PRIORITY_MEDIUM");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PRIORITY_HIGH");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("High");
+       vElement.setRbKey("xa.enum.PriorityType.PRIORITY_HIGH");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::ProgressStatus
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_ProgressStatus);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PROGRESS_PENDING");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Pending");
+       vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_PENDING");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PROGRESS_IN_PROGRESS");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("In Progress");
+       vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_IN_PROGRESS");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PROGRESS_COMPLETE");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Complete");
+       vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_COMPLETE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PROGRESS_ABORTED");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Aborted");
+       vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_ABORTED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("PROGRESS_FAILED");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Failed");
+       vElement.setRbKey("xa.enum.ProgressStatus.PROGRESS_FAILED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::RelationType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_RelationType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("REL_NONE");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("None");
+       vElement.setRbKey("xa.enum.RelationType.REL_NONE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("REL_SELF");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Self");
+       vElement.setRbKey("xa.enum.RelationType.REL_SELF");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::UserSource
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_UserSource);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("USER_APP");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Application");
+       vElement.setRbKey("xa.enum.UserSource.USER_APP");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("USER_GOOGLE");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Google");
+       vElement.setRbKey("xa.enum.UserSource.USER_GOOGLE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("USER_FB");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("FaceBook");
+       vElement.setRbKey("xa.enum.UserSource.USER_FB");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::AssetType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_AssetType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ASSET_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.AssetType.ASSET_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ASSET_HDFS");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("HDFS");
+       vElement.setRbKey("xa.enum.AssetType.ASSET_HDFS");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ASSET_HBASE");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("HBase");
+       vElement.setRbKey("xa.enum.AssetType.ASSET_HBASE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ASSET_HIVE");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Hive");
+       vElement.setRbKey("xa.enum.AssetType.ASSET_HIVE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ASSET_AGENT");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Agent");
+       vElement.setRbKey("xa.enum.AssetType.ASSET_AGENT");
+       vElement.setEnumName(vEnum.getEnumName());
+       
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("ASSET_KNOX");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Knox");
+       vElement.setRbKey("xa.enum.AssetType.ASSET_KNOX");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("ASSET_STORM");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("Storm");
+       vElement.setRbKey("xa.enum.AssetType.ASSET_STORM");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       ///////////////////////////////////
+       // CommonEnums::AccessResult
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_AccessResult);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACCESS_RESULT_DENIED");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Denied");
+       vElement.setRbKey("xa.enum.AccessResult.ACCESS_RESULT_DENIED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("ACCESS_RESULT_ALLOWED");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Allowed");
+       vElement.setRbKey("xa.enum.AccessResult.ACCESS_RESULT_ALLOWED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::PolicyType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_PolicyType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("POLICY_INCLUSION");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Inclusion");
+       vElement.setRbKey("xa.enum.PolicyType.POLICY_INCLUSION");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("POLICY_EXCLUSION");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Exclusion");
+       vElement.setRbKey("xa.enum.PolicyType.POLICY_EXCLUSION");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::XAAuditType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_XAAuditType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_AUDIT_TYPE_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_AUDIT_TYPE_ALL");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("All");
+       vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_ALL");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_AUDIT_TYPE_READ");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Read");
+       vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_READ");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_AUDIT_TYPE_WRITE");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Write");
+       vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_WRITE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_AUDIT_TYPE_CREATE");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Create");
+       vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_CREATE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_AUDIT_TYPE_DELETE");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Delete");
+       vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_DELETE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_AUDIT_TYPE_LOGIN");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("Login");
+       vElement.setRbKey("xa.enum.XAAuditType.XA_AUDIT_TYPE_LOGIN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::ResourceType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_ResourceType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_PATH");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Path");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_PATH");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_DB");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Database");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_DB");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_TABLE");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Table");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_TABLE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_COL_FAM");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Column Family");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_COL_FAM");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_COLUMN");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Column");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_COLUMN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_VIEW");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("VIEW");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_VIEW");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_UDF");
+       vElement.setElementValue(7);
+       vElement.setElementLabel("UDF");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_UDF");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_VIEW_COL");
+       vElement.setElementValue(8);
+       vElement.setElementLabel("View Column");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_VIEW_COL");
+       vElement.setEnumName(vEnum.getEnumName());
+       
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_TOPOLOGY");
+       vElement.setElementValue(9);
+       vElement.setElementLabel("Topology");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_TOPOLOGY");
+       vElement.setEnumName(vEnum.getEnumName());
+       
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("RESOURCE_SERVICE");
+       vElement.setElementValue(10);
+       vElement.setElementLabel("Service");
+       vElement.setRbKey("xa.enum.ResourceType.RESOURCE_SERVICE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::XAGroupType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_XAGroupType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_GROUP_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_GROUP_USER");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("User");
+       vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_USER");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_GROUP_GROUP");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Group");
+       vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_GROUP");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_GROUP_ROLE");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Role");
+       vElement.setRbKey("xa.enum.XAGroupType.XA_GROUP_ROLE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::XAPermForType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_XAPermForType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_FOR_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_FOR_USER");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Permission for Users");
+       vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_USER");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_FOR_GROUP");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Permission for Groups");
+       vElement.setRbKey("xa.enum.XAPermForType.XA_PERM_FOR_GROUP");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // CommonEnums::XAPermType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_XAPermType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_RESET");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Reset");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_RESET");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_READ");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Read");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_READ");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_WRITE");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Write");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_WRITE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_CREATE");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Create");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_CREATE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_DELETE");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Delete");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DELETE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_ADMIN");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("Admin");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ADMIN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_OBFUSCATE");
+       vElement.setElementValue(7);
+       vElement.setElementLabel("Obfuscate");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_OBFUSCATE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_MASK");
+       vElement.setElementValue(8);
+       vElement.setElementLabel("Mask");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_MASK");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_EXECUTE");
+       vElement.setElementValue(9);
+       vElement.setElementLabel("Execute");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_EXECUTE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_SELECT");
+       vElement.setElementValue(10);
+       vElement.setElementLabel("Select");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_SELECT");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_UPDATE");
+       vElement.setElementValue(11);
+       vElement.setElementLabel("Update");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UPDATE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_DROP");
+       vElement.setElementValue(12);
+       vElement.setElementLabel("Drop");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DROP");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_ALTER");
+       vElement.setElementValue(13);
+       vElement.setElementLabel("Alter");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALTER");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_INDEX");
+       vElement.setElementValue(14);
+       vElement.setElementLabel("Index");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_INDEX");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_LOCK");
+       vElement.setElementValue(15);
+       vElement.setElementLabel("Lock");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_LOCK");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_ALL");
+       vElement.setElementValue(16);
+       vElement.setElementLabel("All");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALL");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_ALLOW");
+       vElement.setElementValue(17);
+       vElement.setElementLabel("Allow");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ALLOW");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_SUBMIT_TOPOLOGY");
+       vElement.setElementValue(18);
+       vElement.setElementLabel("Submit Topology");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_SUBMIT_TOPOLOGY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_FILE_UPLOAD");
+       vElement.setElementValue(19);
+       vElement.setElementLabel("File Upload");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_FILE_UPLOAD");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_GET_NIMBUS");
+       vElement.setElementValue(20);
+       vElement.setElementLabel("Get Nimbus Conf");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_NIMBUS");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_GET_CLUSTER_INFO");
+       vElement.setElementValue(21);
+       vElement.setElementLabel("Get Cluster Info");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_CLUSTER_INFO");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_FILE_DOWNLOAD");
+       vElement.setElementValue(22);
+       vElement.setElementLabel("File Download");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_FILE_DOWNLOAD");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_KILL_TOPOLOGY");
+       vElement.setElementValue(23);
+       vElement.setElementLabel("Kill Topology");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_KILL_TOPOLOGY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_REBALANCE");
+       vElement.setElementValue(24);
+       vElement.setElementLabel("Rebalance");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_REBALANCE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_ACTIVATE");
+       vElement.setElementValue(25);
+       vElement.setElementLabel("Activate");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_ACTIVATE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_DEACTIVATE");
+       vElement.setElementValue(26);
+       vElement.setElementLabel("Deactivate");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_DEACTIVATE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY_CONF");
+       vElement.setElementValue(27);
+       vElement.setElementLabel("Get Topology Conf");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY_CONF");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY");
+       vElement.setElementValue(28);
+       vElement.setElementLabel("Get Topology");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_GET_USER_TOPOLOGY");
+       vElement.setElementValue(29);
+       vElement.setElementLabel("Get User Topology");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_USER_TOPOLOGY");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_GET_TOPOLOGY_INFO");
+       vElement.setElementValue(30);
+       vElement.setElementLabel("Get Topology Info");
+       vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_GET_TOPOLOGY_INFO");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+       
+       vElement = new VEnumElement();
+       vElement.setElementName("XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL");
+       vElement.setElementValue(31);
+       vElement.setElementLabel("Upload New Credential");
+       
vElement.setRbKey("xa.enum.XAPermType.XA_PERM_TYPE_UPLOAD_NEW_CREDENTIAL");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       
+       ///////////////////////////////////
+       // CommonEnums::ClassTypes
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_CommonEnums_ClassTypes);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_NONE");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("None");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_NONE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_MESSAGE");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Message");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_MESSAGE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_USER_PROFILE");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("User Profile");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_USER_PROFILE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_AUTH_SESS");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Authentication Session");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_AUTH_SESS");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_DATA_OBJECT");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("CLASS_TYPE_DATA_OBJECT");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_DATA_OBJECT");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_NAMEVALUE");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("CLASS_TYPE_NAMEVALUE");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_NAMEVALUE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_LONG");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("CLASS_TYPE_LONG");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_LONG");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_PASSWORD_CHANGE");
+       vElement.setElementValue(7);
+       vElement.setElementLabel("CLASS_TYPE_PASSWORD_CHANGE");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_PASSWORD_CHANGE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_STRING");
+       vElement.setElementValue(8);
+       vElement.setElementLabel("CLASS_TYPE_STRING");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_STRING");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_ENUM");
+       vElement.setElementValue(9);
+       vElement.setElementLabel("CLASS_TYPE_ENUM");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_ENUM");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_ENUM_ELEMENT");
+       vElement.setElementValue(10);
+       vElement.setElementLabel("CLASS_TYPE_ENUM_ELEMENT");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_ENUM_ELEMENT");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_RESPONSE");
+       vElement.setElementValue(11);
+       vElement.setElementLabel("Response");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_RESPONSE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_ASSET");
+       vElement.setElementValue(1000);
+       vElement.setElementLabel("Asset");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_ASSET");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_RESOURCE");
+       vElement.setElementValue(1001);
+       vElement.setElementLabel("Resource");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_RESOURCE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_GROUP");
+       vElement.setElementValue(1002);
+       vElement.setElementLabel("XA Group");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_USER");
+       vElement.setElementValue(1003);
+       vElement.setElementLabel("XA User");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_USER");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_GROUP_USER");
+       vElement.setElementValue(1004);
+       vElement.setElementLabel("XA Group of Users");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP_USER");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_GROUP_GROUP");
+       vElement.setElementValue(1005);
+       vElement.setElementLabel("XA Group of groups");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_GROUP_GROUP");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_PERM_MAP");
+       vElement.setElementValue(1006);
+       vElement.setElementLabel("XA permissions for resource");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_PERM_MAP");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_AUDIT_MAP");
+       vElement.setElementValue(1007);
+       vElement.setElementLabel("XA audits for resource");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_AUDIT_MAP");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_CRED_STORE");
+       vElement.setElementValue(1008);
+       vElement.setElementLabel("XA credential store");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_CRED_STORE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_POLICY_EXPORT_AUDIT");
+       vElement.setElementValue(1009);
+       vElement.setElementLabel("XA Policy Export Audit");
+       
vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_POLICY_EXPORT_AUDIT");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_TRX_LOG");
+       vElement.setElementValue(1010);
+       vElement.setElementLabel("Transaction log");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_TRX_LOG");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_ACCESS_AUDIT");
+       vElement.setElementValue(1011);
+       vElement.setElementLabel("Access Audit");
+       vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_ACCESS_AUDIT");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE");
+       vElement.setElementValue(1012);
+       vElement.setElementLabel("Transaction log attribute");
+       
vElement.setRbKey("xa.enum.ClassTypes.CLASS_TYPE_XA_TRANSACTION_LOG_ATTRIBUTE");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // XXAuthSession::AuthStatus
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_XXAuthSession_AuthStatus);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_STATUS_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_STATUS_SUCCESS");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Success");
+       vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_SUCCESS");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_STATUS_WRONG_PASSWORD");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Wrong Password");
+       vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_WRONG_PASSWORD");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_STATUS_DISABLED");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Account Disabled");
+       vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_DISABLED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_STATUS_LOCKED");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Locked");
+       vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_LOCKED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_STATUS_PASSWORD_EXPIRED");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Password Expired");
+       vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_PASSWORD_EXPIRED");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_STATUS_USER_NOT_FOUND");
+       vElement.setElementValue(6);
+       vElement.setElementLabel("User not found");
+       vElement.setRbKey("xa.enum.AuthStatus.AUTH_STATUS_USER_NOT_FOUND");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // XXAuthSession::AuthType
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_XXAuthSession_AuthType);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_TYPE_UNKNOWN");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Unknown");
+       vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_UNKNOWN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("AUTH_TYPE_PASSWORD");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Username/Password");
+       vElement.setRbKey("xa.enum.AuthType.AUTH_TYPE_PASSWORD");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+       ///////////////////////////////////
+       // XResponse::ResponseStatus
+       ///////////////////////////////////
+       vEnum = new VEnum();
+       vEnum.setEnumName(ENUM_XResponse_ResponseStatus);
+       vEnum.setElementList(new ArrayList<VEnumElement>());
+       enumList.add(vEnum);
+       enumMap.put(vEnum.getEnumName(), vEnum);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_SUCCESS");
+       vElement.setElementValue(0);
+       vElement.setElementLabel("Success");
+       vElement.setRbKey("xa.enum.ResponseStatus.STATUS_SUCCESS");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_ERROR");
+       vElement.setElementValue(1);
+       vElement.setElementLabel("Error");
+       vElement.setRbKey("xa.enum.ResponseStatus.STATUS_ERROR");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_VALIDATION");
+       vElement.setElementValue(2);
+       vElement.setElementLabel("Validation Error");
+       vElement.setRbKey("xa.enum.ResponseStatus.STATUS_VALIDATION");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_WARN");
+       vElement.setElementValue(3);
+       vElement.setElementLabel("Warning");
+       vElement.setRbKey("xa.enum.ResponseStatus.STATUS_WARN");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_INFO");
+       vElement.setElementValue(4);
+       vElement.setElementLabel("Information");
+       vElement.setRbKey("xa.enum.ResponseStatus.STATUS_INFO");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+       vElement = new VEnumElement();
+       vElement.setElementName("STATUS_PARTIAL_SUCCESS");
+       vElement.setElementValue(5);
+       vElement.setElementLabel("Partial Success");
+       vElement.setRbKey("xa.enum.ResponseStatus.STATUS_PARTIAL_SUCCESS");
+       vElement.setEnumName(vEnum.getEnumName());
+
+       vEnum.getElementList().add(vElement);
+
+
+    }
+
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/06ca8538/security-admin/src/main/java/org/apache/ranger/util/RangerRestUtil.java
----------------------------------------------------------------------
diff --git 
a/security-admin/src/main/java/org/apache/ranger/util/RangerRestUtil.java 
b/security-admin/src/main/java/org/apache/ranger/util/RangerRestUtil.java
new file mode 100644
index 0000000..eb34b42
--- /dev/null
+++ b/security-admin/src/main/java/org/apache/ranger/util/RangerRestUtil.java
@@ -0,0 +1,156 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+ package org.apache.ranger.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.apache.ranger.common.MessageEnums;
+import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.RangerConfigUtil;
+import org.apache.ranger.common.StringUtil;
+import org.apache.ranger.entity.XXPortalUser;
+import org.apache.ranger.view.VXMessage;
+import org.apache.ranger.view.VXPortalUser;
+import org.apache.ranger.view.VXResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class RangerRestUtil {
+       static final Logger logger = Logger.getLogger(RangerRestUtil.class);
+
+       @Autowired
+       StringUtil stringUtil;
+
+       @Autowired
+       RESTErrorUtil restErrorUtil;
+
+       @Autowired
+       RangerConfigUtil configUtil;
+
+       void splitUserRoleList(Collection<String> collection) {
+               Collection<String> newCollection = new ArrayList<String>();
+               for (String role : collection) {
+                       String roles[] = role.split(",");
+                       for (int i = 0; i < roles.length; i++) {
+                               String str = roles[i];
+                               newCollection.add(str);
+                       }
+               }
+               collection.clear();
+               collection.addAll(newCollection);
+       }
+
+       /**
+        * This method cleans up the data provided by the user for update
+        * 
+        * @param userProfile
+        * @return
+        */
+       public void validateVUserProfileForUpdate(XXPortalUser gjUser,
+                       VXPortalUser userProfile) {
+
+               List<VXMessage> messageList = new ArrayList<VXMessage>();
+
+               // Email Update is allowed.
+               // if (userProfile.getEmailAddress() != null
+               // && !userProfile.getEmailAddress().equalsIgnoreCase(
+               // gjUser.getEmailAddress())) {
+               // throw restErrorUtil.createRESTException(
+               // "Email address can't be updated",
+               // MessageEnums.DATA_NOT_UPDATABLE, null, "emailAddress",
+               // userProfile.getEmailAddress());
+               // }
+
+               // Login Id can't be changed
+               if (userProfile.getLoginId() != null
+                               && !gjUser.getLoginId().equalsIgnoreCase(
+                                               userProfile.getLoginId())) {
+                       throw restErrorUtil.createRESTException(
+                                       "Username can't be updated",
+                                       MessageEnums.DATA_NOT_UPDATABLE, null, 
"loginId",
+                                       userProfile.getLoginId());
+               }
+               // }
+               userProfile.setFirstName(restErrorUtil.validateStringForUpdate(
+                               userProfile.getFirstName(), 
gjUser.getFirstName(),
+                               StringUtil.VALIDATION_NAME, "Invalid first 
name",
+                               MessageEnums.INVALID_INPUT_DATA, null, 
"firstName"));
+
+               userProfile.setFirstName(restErrorUtil.validateStringForUpdate(
+                               userProfile.getFirstName(), 
gjUser.getFirstName(),
+                               StringUtil.VALIDATION_NAME, "Invalid first 
name",
+                               MessageEnums.INVALID_INPUT_DATA, null, 
"firstName"));
+
+               userProfile.setLastName(restErrorUtil.validateStringForUpdate(
+                               userProfile.getLastName(), gjUser.getLastName(),
+                               StringUtil.VALIDATION_NAME, "Invalid last name",
+                               MessageEnums.INVALID_INPUT_DATA, null, 
"lastName"));
+
+               // firstName
+               if (!stringUtil.isValidName(userProfile.getFirstName())) {
+                       logger.info("Invalid first name." + userProfile);
+                       
messageList.add(MessageEnums.INVALID_INPUT_DATA.getMessage(null,
+                                       "firstName"));
+               }
+
+               // lastName
+               if (!stringUtil.isValidName(userProfile.getLastName())) {
+                       logger.info("Invalid last name." + userProfile);
+                       
messageList.add(MessageEnums.INVALID_INPUT_DATA.getMessage(null,
+                                       "lastName"));
+               }
+
+               // create the public screen name
+               userProfile.setPublicScreenName(userProfile.getFirstName() + " "
+                               + userProfile.getLastName());
+
+               userProfile.setNotes(restErrorUtil.validateStringForUpdate(
+                               userProfile.getNotes(), gjUser.getNotes(),
+                               StringUtil.VALIDATION_NAME, "Invalid notes",
+                               MessageEnums.INVALID_INPUT_DATA, null, 
"notes"));
+
+               // validate user roles
+               if (userProfile.getUserRoleList() != null) {
+                       // First let's normalize it
+                       splitUserRoleList(userProfile.getUserRoleList());
+                       for (String userRole : userProfile.getUserRoleList()) {
+                               restErrorUtil.validateStringList(userRole,
+                                               configUtil.getRoles(), "Invalid 
role", null,
+                                               "userRoleList");
+                       }
+
+               }
+               if (messageList.size() > 0) {
+                       VXResponse gjResponse = new VXResponse();
+                       gjResponse.setStatusCode(VXResponse.STATUS_ERROR);
+                       gjResponse.setMsgDesc("Validation failure");
+                       gjResponse.setMessageList(messageList);
+                       logger.info("Validation Error in updateUser() 
userProfile="
+                                       + userProfile + ", error=" + 
gjResponse);
+                       throw restErrorUtil.createRESTException(gjResponse);
+               }
+
+       }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/06ca8538/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java 
b/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java
index 9500cf8..cdb0a7d 100644
--- a/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java
+++ b/security-admin/src/main/java/org/apache/ranger/util/RestUtil.java
@@ -22,7 +22,7 @@
 import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.ranger.security.context.XAContextHolder;
+import org.apache.ranger.security.context.RangerContextHolder;
 import org.springframework.stereotype.Component;
 
 @Component
@@ -60,13 +60,13 @@ public class RestUtil {
        public static int getClientTimeOffset(){
                int clientTimeOffsetInMinute = 0;
                try{
-                       clientTimeOffsetInMinute= 
XAContextHolder.getSecurityContext().getRequestContext().getClientTimeOffsetInMinute();
+                       clientTimeOffsetInMinute= 
RangerContextHolder.getSecurityContext().getRequestContext().getClientTimeOffsetInMinute();
                }catch(Exception ex){
                        
                }
                if(clientTimeOffsetInMinute==0){
                        try{
-                               clientTimeOffsetInMinute= 
XAContextHolder.getSecurityContext().getUserSession().getClientTimeOffsetInMinute();
+                               clientTimeOffsetInMinute= 
RangerContextHolder.getSecurityContext().getUserSession().getClientTimeOffsetInMinute();
                        }catch(Exception ex){
                                
                        }

Reply via email to