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.content.server.transfer;
018
019import com.echothree.model.control.content.common.transfer.ContentPageAreaTypeTransfer;
020import com.echothree.model.control.content.common.transfer.ContentPageLayoutAreaTransfer;
021import com.echothree.model.control.content.common.transfer.ContentPageLayoutTransfer;
022import com.echothree.model.control.content.server.control.ContentControl;
023import com.echothree.model.data.content.server.entity.ContentPageLayoutArea;
024import com.echothree.model.data.user.server.entity.UserVisit;
025
026public class ContentPageLayoutAreaTransferCache
027        extends BaseContentTransferCache<ContentPageLayoutArea, ContentPageLayoutAreaTransfer> {
028    
029    /** Creates a new instance of ContentPageLayoutAreaTransferCache */
030    public ContentPageLayoutAreaTransferCache(UserVisit userVisit, ContentControl contentControl) {
031        super(userVisit, contentControl);
032    }
033    
034    public ContentPageLayoutAreaTransfer getContentPageLayoutAreaTransfer(ContentPageLayoutArea contentPageLayoutArea) {
035        ContentPageLayoutAreaTransfer contentPageLayoutAreaTransfer = get(contentPageLayoutArea);
036        
037        if(contentPageLayoutAreaTransfer == null) {
038            ContentTransferCaches contentTransferCaches = contentControl.getContentTransferCaches(userVisit);
039            ContentPageLayoutTransfer contentPageLayoutTransfer = contentTransferCaches.getContentPageLayoutTransferCache().getTransfer(contentPageLayoutArea.getContentPageLayout());
040            ContentPageAreaTypeTransfer contentPageAreaTypeTransfer = contentTransferCaches.getContentPageAreaTypeTransferCache().getTransfer(contentPageLayoutArea.getContentPageAreaType());
041            Boolean showDescriptionField = contentPageLayoutArea.getShowDescriptionField();
042            Integer sortOrder = contentPageLayoutArea.getSortOrder();
043            String description = contentControl.getBestContentPageLayoutAreaDescription(contentPageLayoutArea, getLanguage());
044            
045            contentPageLayoutAreaTransfer = new ContentPageLayoutAreaTransfer(contentPageLayoutTransfer, contentPageAreaTypeTransfer, showDescriptionField, sortOrder, description);
046            put(contentPageLayoutArea, contentPageLayoutAreaTransfer);
047        }
048        
049        return contentPageLayoutAreaTransfer;
050    }
051    
052}