diff --git a/base/src/org/compiere/model/MEntityType.java b/base/src/org/compiere/model/MEntityType.java
index c00f4d3f4d..d882899d89 100644
--- a/base/src/org/compiere/model/MEntityType.java
+++ b/base/src/org/compiere/model/MEntityType.java
@@ -16,12 +16,11 @@
*****************************************************************************/
package org.compiere.model;
-import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
+import java.util.List;
import java.util.Properties;
import java.util.StringTokenizer;
-import java.util.logging.Level;
import org.compiere.util.CLogger;
import org.compiere.util.DB;
@@ -35,6 +34,8 @@ import org.compiere.util.DB;
* @author Teo Sarca
*
BF [ 2827777 ] MEntityType.isSystemMaintained not working well
* https://sourceforge.net/tracker/?func=detail&aid=2827777&group_id=176962&atid=879332
+ * FR [ 2827786 ] Introduce MEntityType.get(Properties ctx, String entityType)
+ * https://sourceforge.net/tracker/?func=detail&aid=2827786&group_id=176962&atid=879335
*/
public class MEntityType extends X_AD_EntityType
{
@@ -52,39 +53,34 @@ public class MEntityType extends X_AD_EntityType
{
if (s_entityTypes != null)
return s_entityTypes;
- ArrayList list = new ArrayList();
- String sql = "SELECT * FROM AD_EntityType WHERE IsActive='Y' ORDER BY AD_EntityType_ID";
- PreparedStatement pstmt = null;
- try
- {
- pstmt = DB.prepareStatement (sql, null);
- ResultSet rs = pstmt.executeQuery ();
- while (rs.next ())
- list.add (new MEntityType (ctx, rs, null));
- rs.close ();
- pstmt.close ();
- pstmt = null;
- }
- catch (Exception e)
- {
- s_log.log (Level.SEVERE, sql, e);
- }
- try
- {
- if (pstmt != null)
- pstmt.close ();
- pstmt = null;
- }
- catch (Exception e)
- {
- pstmt = null;
- }
+ List list = new Query(ctx, Table_Name, null, null)
+ .setOnlyActiveRecords(true)
+ .setOrderBy(COLUMNNAME_AD_EntityType_ID)
+ .list();
s_entityTypes = new MEntityType[list.size()];
list.toArray(s_entityTypes);
s_log.finer("# " + s_entityTypes.length);
return s_entityTypes;
} // getEntityTypes
+ /**
+ * Get EntityType object by name
+ * @param ctx
+ * @param entityType
+ * @return
+ */
+ public static MEntityType get(Properties ctx, String entityType)
+ {
+ for (MEntityType entity : getEntityTypes(ctx))
+ {
+ if (entity.getEntityType().equals(entityType))
+ {
+ return entity;
+ }
+ }
+ return null;
+ }
+
/**
* Get Entity Type as String array
* @param ctx context