/* * 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; } }