Package org.eurekastreams.server.persistence.mappers.cache

Source Code of org.eurekastreams.server.persistence.mappers.cache.ActionContextMembershipCriteriaDTOToMembershipCriteriaPersistenceRequestTransformer

/*
* Copyright (c) 2011 Lockheed Martin Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.eurekastreams.server.persistence.mappers.cache;

import org.eurekastreams.commons.actions.context.ActionContext;
import org.eurekastreams.server.domain.GalleryTabTemplate;
import org.eurekastreams.server.domain.MembershipCriteria;
import org.eurekastreams.server.domain.Theme;
import org.eurekastreams.server.domain.dto.MembershipCriteriaDTO;
import org.eurekastreams.server.persistence.mappers.DomainMapper;
import org.eurekastreams.server.persistence.mappers.requests.PersistenceRequest;

/**
* Transformer to create MembershipCriteria persistence request from action context containing MembershipContextDTO.
*/
public class ActionContextMembershipCriteriaDTOToMembershipCriteriaPersistenceRequestTransformer implements
        Transformer<ActionContext, PersistenceRequest<MembershipCriteria>>
{
    // NOTE: Don't refactor these mappers to findById mappers, as these mappers should just be returning proxy objects
    // based on id. No need to hit DB to pull objects back.

    /**
     * Theme mapper.
     */
    private DomainMapper<Long, Theme> themeProxyMapper;

    /**
     * GalleryTabTemplate mapper.
     */
    private DomainMapper<Long, GalleryTabTemplate> galleryTabTemplateProxyMapper;

    /**
     * Constructor.
     *
     * @param inThemeProxyMapper
     *            Theme mapper.
     * @param inGalleryTabTemplateProxyMappery
     *            GalleryTabTemplate mapper.
     */
    public ActionContextMembershipCriteriaDTOToMembershipCriteriaPersistenceRequestTransformer(
            final DomainMapper<Long, Theme> inThemeProxyMapper,
            final DomainMapper<Long, GalleryTabTemplate> inGalleryTabTemplateProxyMappery)
    {
        themeProxyMapper = inThemeProxyMapper;
        galleryTabTemplateProxyMapper = inGalleryTabTemplateProxyMappery;
    }

    /**
     * create MembershipCriteria persistence request from action context containing MembershipContextDTO.
     *
     * @param inTransformType
     *            ActionContext containing MembershipCriteriaDTO.
     * @return PersistenceRequest for MembershipCriteria.
     */
    @Override
    public PersistenceRequest<MembershipCriteria> transform(final ActionContext inTransformType)
    {
        MembershipCriteriaDTO mcdto = (MembershipCriteriaDTO) inTransformType.getParams();
        Long themeId = mcdto.getThemeId();
        Long gttId = mcdto.getGalleryTabTemplateId();

        MembershipCriteria mc = new MembershipCriteria();

        mc.setTheme(themeId == null || themeId == -1 ? null : themeProxyMapper.execute(themeId));
        mc.setGalleryTabTemplate(gttId == null || gttId == -1 ? null : galleryTabTemplateProxyMapper.execute(gttId));
        mc.setCriteria(mcdto.getCriteria());

        return new PersistenceRequest<MembershipCriteria>(mc);
    }

}
TOP

Related Classes of org.eurekastreams.server.persistence.mappers.cache.ActionContextMembershipCriteriaDTOToMembershipCriteriaPersistenceRequestTransformer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.