diff --git a/base/src/org/compiere/model/MActivity.java b/base/src/org/compiere/model/MActivity.java index 788a802f07..a95b8a5cdc 100644 --- a/base/src/org/compiere/model/MActivity.java +++ b/base/src/org/compiere/model/MActivity.java @@ -19,15 +19,58 @@ package org.compiere.model; import java.sql.ResultSet; import java.util.Properties; +import org.compiere.util.CCache; + /** * Activity Model * * @author Jorg Janke * @version $Id: MActivity.java,v 1.2 2006/07/30 00:51:03 jjanke Exp $ + * + * @author Teo Sarca, www.arhipac.ro + *
  • FR [ 2736867 ] Add caching support to MActivity */ public class MActivity extends X_C_Activity { + /** + * + */ + private static final long serialVersionUID = 3014706648686670575L; + + /** Static Cache */ + private static CCache s_cache = new CCache(Table_Name, 30); + + /** + * Get/Load Activity [CACHED] + * @param ctx context + * @param C_Activity_ID + * @return activity or null + */ + public static MActivity get(Properties ctx, int C_Activity_ID) + { + if (C_Activity_ID <= 0) + { + return null; + } + // Try cache + MActivity activity = s_cache.get(C_Activity_ID); + if (activity != null) + { + return activity; + } + // Load from DB + activity = new MActivity(ctx, C_Activity_ID, null); + if (activity.get_ID() == C_Activity_ID) + { + s_cache.put(C_Activity_ID, activity); + } + else + { + activity = null; + } + return activity; + } /** * Standard Constructor