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
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 }