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

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

/*
* Copyright (c) 2010 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 java.util.ArrayList;
import java.util.List;

import org.eurekastreams.server.domain.Gadget;
import org.eurekastreams.server.domain.GadgetDefinition;
import org.eurekastreams.server.domain.Person;
import org.eurekastreams.server.domain.Tab;
import org.eurekastreams.server.domain.TabGroupType;
import org.eurekastreams.server.domain.Theme;
import org.eurekastreams.server.search.modelview.GadgetDTO;
import org.eurekastreams.server.search.modelview.GadgetDefinitionDTO;
import org.eurekastreams.server.search.modelview.PersonPagePropertiesDTO;
import org.eurekastreams.server.search.modelview.TabDTO;

/**
* Transformer to convert Person to PersonPagePropertiesDTO.
*
*/
public class PersonToPersonPagePropertiesTransformer implements Transformer<Person, PersonPagePropertiesDTO>
{

    /**
     * Transform Person to PersonPagePropertiesDTO.
     *
     * @param inPerson
     *            Person to transform.
     * @return {@link PersonPagePropertiesDTO}.
     */
    @Override
    public PersonPagePropertiesDTO transform(final Person inPerson)
    {
        long start = System.currentTimeMillis();
        List<TabDTO> tabDtos = new ArrayList<TabDTO>();
        List<Tab> tabs = inPerson.getTabs(TabGroupType.START);
        for (Tab tab : tabs)
        {
            TabDTO tdto = new TabDTO();
            tdto.setId(tab.getId());
            tdto.setTabIndex(tab.getTabIndex());
            tdto.setTabLayout(tab.getTabLayout());
            tdto.setTabName(tab.getTabName());

            List<GadgetDTO> gadgetDtos = new ArrayList<GadgetDTO>();
            for (Gadget gadget : tab.getGadgets())
            {
                // create gadget dto from gadget.
                GadgetDTO gdto = new GadgetDTO();
                gdto.setId(gadget.getId());
                gdto.setMaximized(gadget.isMaximized());
                gdto.setMinimized(gadget.isMinimized());
                gdto.setZoneIndex(gadget.getZoneIndex());
                gdto.setZoneNumber(gadget.getZoneNumber());
                gdto.setGadgetUserPref(gadget.getGadgetUserPref());

                // create gadget definintion dto.
                GadgetDefinition gadgetDef = gadget.getGadgetDefinition();
                GadgetDefinitionDTO gadgetDefDto = new GadgetDefinitionDTO();
                gadgetDefDto.setId(gadgetDef.getId());
                gadgetDefDto.setUrl(gadgetDef.getUrl());
                gadgetDefDto.setUuid(gadgetDef.getUUID());

                // set gadget def dto in gadget dto.
                gdto.setGadgetDefinition(gadgetDefDto);

                // add to collection.
                gadgetDtos.add(gdto);
            }

            // set gadgets for tab.
            tdto.setGadgets(gadgetDtos);

            // add tab to list of tabs.
            tabDtos.add(tdto);
        }

        PersonPagePropertiesDTO ppp = new PersonPagePropertiesDTO();
        ppp.setTabDTOs(tabDtos);
        Theme theme = inPerson.getTheme();
        ppp.setThemeUuid(theme == null ? null : theme.getUUID().toLowerCase());
        return ppp;
    }

}
TOP

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

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.