EJB3FinderMethodArgumentFacadeLogicImpl.java

package org.andromda.cartridges.ejb3.metafacades;

import org.andromda.cartridges.ejb3.EJB3Globals;
import org.andromda.cartridges.ejb3.EJB3Profile;
import org.andromda.metafacades.uml.AttributeFacade;
import org.andromda.metafacades.uml.ClassifierFacade;
import org.apache.commons.lang.StringUtils;

/**
 * MetafacadeLogic implementation for org.andromda.cartridges.ejb3.metafacades.EJB3FinderMethodArgumentFacade.
 *
 * @see EJB3FinderMethodArgumentFacade
 */
public class EJB3FinderMethodArgumentFacadeLogicImpl
    extends EJB3FinderMethodArgumentFacadeLogic
{
    private static final long serialVersionUID = 34L;
    /**
     * @param metaObject
     * @param context
     */
    public EJB3FinderMethodArgumentFacadeLogicImpl(final Object metaObject, final String context)
    {
        super (metaObject, context);
    }

    /**
     * @see EJB3FinderMethodArgumentFacade#getTemporalType()
     */
    @Override
    protected String handleGetTemporalType()
    {
        String temporalType =
            (String)this.findTaggedValue(EJB3Profile.TAGGEDVALUE_PERSISTENCE_TEMPORAL_TYPE);
        if (StringUtils.isBlank(temporalType))
        {
            ClassifierFacade classifier = this.getType();
            if (classifier != null)
            {
                if (!classifier.isPrimitive())
                {
                    if (classifier.isDateType())
                    {
                        temporalType = EJB3Globals.TEMPORAL_TYPE_DATE;
                    }
                    else if (classifier.isTimeType())
                    {
                        temporalType = EJB3Globals.TEMPORAL_TYPE_TIME;
                    }
                    else if ("Timestamp".equals(classifier.getName()))
                    {
                        temporalType = EJB3Globals.TEMPORAL_TYPE_TIMESTAMP;
                    }
                }
            }
        }
        return temporalType;
    }

    /**
     * @see EJB3FinderMethodArgumentFacadeLogic#handleIsFirstResult()
     */
    @Override
    protected boolean handleIsFirstResult()
    {
        return this.hasStereotype(EJB3Profile.STEREOTYPE_FINDER_RESULT_TYPE_FIRST);
    }

    /**
     * @see EJB3FinderMethodArgumentFacadeLogic#handleIsMaxResults()
     */
    @Override
    protected boolean handleIsMaxResults()
    {
        return this.hasStereotype(EJB3Profile.STEREOTYPE_FINDER_RESULT_TYPE_MAX);
    }

    /**
     * @see EJB3FinderMethodArgumentFacadeLogic#handleIsEnumerationTypeOrdinal()
     */
    @Override
    protected boolean handleIsEnumerationTypeOrdinal()
    {
        boolean ordinalType = false;
        if (this.getType().isEnumeration())
        {
            AttributeFacade literal = this.getType().getAttributes().iterator().next();
            if (!literal.getType().isStringType())
            {
                ordinalType = true;
            }
        }
        return ordinalType;
    }

    /**
     * @see EJB3FinderMethodArgumentFacadeLogic#handleIsEnumerationTypeString()
     */
    @Override
    protected boolean handleIsEnumerationTypeString()
    {
        boolean stringType = false;
        if (this.getType().isEnumeration())
        {
            AttributeFacade literal = this.getType().getAttributes().iterator().next();
            if (literal.getType().isStringType())
            {
                stringType = true;
            }
        }
        return stringType;
    }
}