View Javadoc

1   package org.andromda.cartridges.hibernate.metafacades;
2   
3   import org.andromda.cartridges.hibernate.HibernateProfile;
4   import org.apache.commons.lang.StringUtils;
5   
6   
7   /**
8    * MetafacadeLogic implementation for
9    * org.andromda.cartridges.hibernate.metafacades.HibernateAssociation.
10   *
11   * @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociation
12   */
13  public class HibernateAssociationLogicImpl
14      extends HibernateAssociationLogic
15  {
16      // ---------------- constructor -------------------------------
17      public HibernateAssociationLogicImpl(
18          Object metaObject,
19          String context)
20      {
21          super(metaObject, context);
22      }
23  
24      /**
25       * Stores the default cache strategy for associations.
26       */
27      private static final String HIBERNATE_ASSOCIATION_CACHE = "hibernateAssociationCache";
28  
29      /**
30       * @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociation#getHibernateCacheType()
31       */
32      protected java.lang.String handleGetHibernateCacheType()
33      {
34          String cacheType = (String)findTaggedValue(HibernateProfile.TAGGEDVALUE_HIBERNATE_ASSOCIATION_CACHE);
35          if (cacheType == null)
36          {
37              cacheType = String.valueOf(this.getConfiguredProperty(HIBERNATE_ASSOCIATION_CACHE));
38          }
39          return StringUtils.trimToEmpty(cacheType);
40      }
41  
42      /**
43       * @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociation#getEhCacheMaxElementsInMemory()
44       */
45      protected int handleGetEhCacheMaxElementsInMemory()
46      {
47          String maxElements = null;
48          maxElements = (String)this.findTaggedValue(HibernateProfile.TAGGEDVALUE_HIBERNATE_EHCACHE_MAX_ELEMENTS);
49          if (StringUtils.isBlank(maxElements))
50          {
51              maxElements = (String)this.getConfiguredProperty(HibernateGlobals.HIBERNATE_EHCACHE_MAX_ELEMENTS);
52          }
53          return Integer.parseInt(maxElements);
54      }
55  
56      /**
57       * @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociation#isEhCacheEternal()
58       */
59      protected boolean handleIsEhCacheEternal()
60      {
61          String eternal = (String)this.findTaggedValue(HibernateProfile.TAGGEDVALUE_HIBERNATE_EHCACHE_ETERNAL);
62          if (eternal == null)
63          {
64              eternal = (String)this.getConfiguredProperty(HibernateGlobals.HIBERNATE_EHCACHE_ETERNAL);
65          }
66          return Boolean.valueOf(eternal).booleanValue();
67      }
68  
69      /**
70       * @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociation#getEhCacheTimeToIdleSeconds()
71       */
72      protected int handleGetEhCacheTimeToIdleSeconds()
73      {
74          String timeToIdle = null;
75          timeToIdle = (String)this.findTaggedValue(HibernateProfile.TAGGEDVALUE_HIBERNATE_EHCACHE_TIME_TO_IDLE);
76          if (StringUtils.isBlank(timeToIdle))
77          {
78              timeToIdle = (String)this.getConfiguredProperty(HibernateGlobals.HIBERNATE_EHCACHE_TIME_TO_IDLE);
79          }
80          return Integer.parseInt(timeToIdle);
81      }
82  
83      /**
84       * @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociation#getEhCacheTimeToLiveSeconds()
85       */
86      protected int handleGetEhCacheTimeToLiveSeconds()
87      {
88          String timeToLive = null;
89          timeToLive = (String)this.findTaggedValue(HibernateProfile.TAGGEDVALUE_HIBERNATE_EHCACHE_TIME_TO_LIVE);
90          if (StringUtils.isBlank(timeToLive))
91          {
92              timeToLive = (String)this.getConfiguredProperty(HibernateGlobals.HIBERNATE_EHCACHE_TIME_TO_LIVE);
93          }
94          return Integer.parseInt(timeToLive);
95      }
96  
97      /**
98       * @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociation#isEhCacheOverflowToDisk()
99       */
100     protected boolean handleIsEhCacheOverflowToDisk()
101     {
102         String eternal = (String)this.findTaggedValue(HibernateProfile.TAGGEDVALUE_HIBERNATE_EHCACHE_OVERFLOW_TO_DISK);
103         if (eternal == null)
104         {
105             eternal = (String)this.getConfiguredProperty(HibernateGlobals.HIBERNATE_EHCACHE_OVERFLOW_TO_DISK);
106         }
107         return Boolean.valueOf(eternal).booleanValue();
108     }
109 
110     /**
111      * @see org.andromda.cartridges.hibernate.metafacades.HibernateAssociation#isHibernateCacheDistributed()
112      */
113     protected boolean handleIsHibernateCacheDistributed()
114     {
115         {
116             String distributed = (String)this.getConfiguredProperty(HibernateGlobals.HIBERNATE_ENTITYCACHE_DISTRIBUTED);
117             boolean distributedCachingEnabled = Boolean.valueOf(StringUtils.trimToEmpty(distributed)).booleanValue();
118 
119             if (distributedCachingEnabled)
120             {
121                 String entityCacheDistributed =
122                     (String)this.findTaggedValue(HibernateProfile.TAGGEDVALUE_HIBERNATE_ASSOCIATIONCACHE_DISTRIBUTED);
123                 return Boolean.valueOf(StringUtils.trimToEmpty(entityCacheDistributed)).booleanValue();
124             }
125             return false;
126         }
127     }
128 }