001// -------------------------------------------------------------------------------- 002// Copyright 2002-2024 Echo Three, LLC 003// 004// Licensed under the Apache License, Version 2.0 (the "License"); 005// you may not use this file except in compliance with the License. 006// You may obtain a copy of the License at 007// 008// http://www.apache.org/licenses/LICENSE-2.0 009// 010// Unless required by applicable law or agreed to in writing, software 011// distributed under the License is distributed on an "AS IS" BASIS, 012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013// See the License for the specific language governing permissions and 014// limitations under the License. 015// -------------------------------------------------------------------------------- 016 017package com.echothree.model.control.campaign.server.transfer; 018 019import com.echothree.model.control.campaign.common.transfer.CampaignContentTransfer; 020import com.echothree.model.control.campaign.common.transfer.CampaignMediumTransfer; 021import com.echothree.model.control.campaign.common.transfer.CampaignSourceTransfer; 022import com.echothree.model.control.campaign.common.transfer.CampaignTermTransfer; 023import com.echothree.model.control.campaign.common.transfer.CampaignTransfer; 024import com.echothree.model.control.campaign.common.transfer.UserVisitCampaignTransfer; 025import com.echothree.model.control.campaign.server.control.CampaignControl; 026import com.echothree.model.control.user.common.transfer.UserVisitTransfer; 027import com.echothree.model.control.user.server.control.UserControl; 028import com.echothree.model.data.campaign.server.entity.Campaign; 029import com.echothree.model.data.campaign.server.entity.CampaignContent; 030import com.echothree.model.data.campaign.server.entity.CampaignMedium; 031import com.echothree.model.data.campaign.server.entity.CampaignSource; 032import com.echothree.model.data.campaign.server.entity.CampaignTerm; 033import com.echothree.model.data.campaign.server.entity.UserVisitCampaign; 034import com.echothree.model.data.user.server.entity.UserVisit; 035import com.echothree.util.server.persistence.Session; 036 037public class UserVisitCampaignTransferCache 038 extends BaseCampaignTransferCache<UserVisitCampaign, UserVisitCampaignTransfer> { 039 040 UserControl userControl = Session.getModelController(UserControl.class); 041 042 /** Creates a new instance of UserVisitCampaignTransferCache */ 043 public UserVisitCampaignTransferCache(UserVisit userVisit, CampaignControl campaignControl) { 044 super(userVisit, campaignControl); 045 } 046 047 public UserVisitCampaignTransfer getUserVisitCampaignTransfer(UserVisitCampaign userVisitCampaign) { 048 UserVisitCampaignTransfer userVisitCampaignTransfer = get(userVisitCampaign); 049 050 if(userVisitCampaignTransfer == null) { 051 UserVisitTransfer userVisitTransfer = userControl.getUserVisitTransfer(userVisit, userVisit); 052 Integer userVisitCampaignSequence = userVisitCampaign.getUserVisitCampaignSequence(); 053 Long unformattedTime = userVisitCampaign.getTime(); 054 String time = formatTypicalDateTime(unformattedTime); 055 Campaign campaign = userVisitCampaign.getCampaign(); 056 CampaignTransfer campaignTransfer = campaign == null ? null : campaignControl.getCampaignTransfer(userVisit, campaign); 057 CampaignSource campaignSource = userVisitCampaign.getCampaignSource(); 058 CampaignSourceTransfer campaignSourceTransfer = campaignSource == null ? null : campaignControl.getCampaignSourceTransfer(userVisit, campaignSource); 059 CampaignMedium campaignMedium = userVisitCampaign.getCampaignMedium(); 060 CampaignMediumTransfer campaignMediumTransfer = campaignMedium == null ? null : campaignControl.getCampaignMediumTransfer(userVisit, campaignMedium); 061 CampaignTerm campaignTerm = userVisitCampaign.getCampaignTerm(); 062 CampaignTermTransfer campaignTermTransfer = campaignTerm == null ? null : campaignControl.getCampaignTermTransfer(userVisit, campaignTerm); 063 CampaignContent campaignContent = userVisitCampaign.getCampaignContent(); 064 CampaignContentTransfer campaignContentTransfer = campaignContent == null ? null : campaignControl.getCampaignContentTransfer(userVisit, campaignContent); 065 066 userVisitCampaignTransfer = new UserVisitCampaignTransfer(userVisitTransfer, userVisitCampaignSequence, unformattedTime, time, campaignTransfer, 067 campaignSourceTransfer, campaignMediumTransfer, campaignTermTransfer, campaignContentTransfer); 068 put(userVisitCampaign, userVisitCampaignTransfer); 069 } 070 071 return userVisitCampaignTransfer; 072 } 073 074}