001package org.andromda.cartridges.ejb3.metafacades; 002 003import org.andromda.cartridges.ejb3.EJB3Globals; 004import org.andromda.cartridges.ejb3.EJB3Profile; 005import org.andromda.metafacades.uml.AttributeFacade; 006import org.andromda.metafacades.uml.ClassifierFacade; 007import org.apache.commons.lang.StringUtils; 008 009/** 010 * MetafacadeLogic implementation for org.andromda.cartridges.ejb3.metafacades.EJB3FinderMethodArgumentFacade. 011 * 012 * @see EJB3FinderMethodArgumentFacade 013 */ 014public class EJB3FinderMethodArgumentFacadeLogicImpl 015 extends EJB3FinderMethodArgumentFacadeLogic 016{ 017 private static final long serialVersionUID = 34L; 018 /** 019 * @param metaObject 020 * @param context 021 */ 022 public EJB3FinderMethodArgumentFacadeLogicImpl(final Object metaObject, final String context) 023 { 024 super (metaObject, context); 025 } 026 027 /** 028 * @see EJB3FinderMethodArgumentFacade#getTemporalType() 029 */ 030 @Override 031 protected String handleGetTemporalType() 032 { 033 String temporalType = 034 (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_PERSISTENCE_TEMPORAL_TYPE); 035 if (StringUtils.isBlank(temporalType)) 036 { 037 ClassifierFacade classifier = this.getType(); 038 if (classifier != null) 039 { 040 if (!classifier.isPrimitive()) 041 { 042 if (classifier.isDateType()) 043 { 044 temporalType = EJB3Globals.TEMPORAL_TYPE_DATE; 045 } 046 else if (classifier.isTimeType()) 047 { 048 temporalType = EJB3Globals.TEMPORAL_TYPE_TIME; 049 } 050 else if ("Timestamp".equals(classifier.getName())) 051 { 052 temporalType = EJB3Globals.TEMPORAL_TYPE_TIMESTAMP; 053 } 054 } 055 } 056 } 057 return temporalType; 058 } 059 060 /** 061 * @see EJB3FinderMethodArgumentFacadeLogic#handleIsFirstResult() 062 */ 063 @Override 064 protected boolean handleIsFirstResult() 065 { 066 return this.hasStereotype(EJB3Profile.STEREOTYPE_FINDER_RESULT_TYPE_FIRST); 067 } 068 069 /** 070 * @see EJB3FinderMethodArgumentFacadeLogic#handleIsMaxResults() 071 */ 072 @Override 073 protected boolean handleIsMaxResults() 074 { 075 return this.hasStereotype(EJB3Profile.STEREOTYPE_FINDER_RESULT_TYPE_MAX); 076 } 077 078 /** 079 * @see EJB3FinderMethodArgumentFacadeLogic#handleIsEnumerationTypeOrdinal() 080 */ 081 @Override 082 protected boolean handleIsEnumerationTypeOrdinal() 083 { 084 boolean ordinalType = false; 085 if (this.getType().isEnumeration()) 086 { 087 AttributeFacade literal = this.getType().getAttributes().iterator().next(); 088 if (!literal.getType().isStringType()) 089 { 090 ordinalType = true; 091 } 092 } 093 return ordinalType; 094 } 095 096 /** 097 * @see EJB3FinderMethodArgumentFacadeLogic#handleIsEnumerationTypeString() 098 */ 099 @Override 100 protected boolean handleIsEnumerationTypeString() 101 { 102 boolean stringType = false; 103 if (this.getType().isEnumeration()) 104 { 105 AttributeFacade literal = this.getType().getAttributes().iterator().next(); 106 if (literal.getType().isStringType()) 107 { 108 stringType = true; 109 } 110 } 111 return stringType; 112 } 113}