CampaignMetaDataImpl.java 3.57 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  org.apache.felix.scr.annotations.Service
 */
package com.day.cq.mcm.campaign.profile.impl;

import com.day.cq.mcm.campaign.profile.CampaignMetaData;
import com.day.cq.mcm.campaign.profile.MetaDataBlock;
import com.day.cq.mcm.campaign.profile.MetaDataInstance;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.felix.scr.annotations.Service;

@Deprecated
@Service
public class CampaignMetaDataImpl
implements CampaignMetaData {
    private static final List<MetaDataInstance> EMPTY_LIST = new ArrayList<MetaDataInstance>(1);
    private final List<MetaDataBlock> blocks = new ArrayList<MetaDataBlock>();
    private final Map<MetaDataBlock, List<MetaDataInstance>> dataPerBlock = new HashMap<MetaDataBlock, List<MetaDataInstance>>();

    protected CampaignMetaDataImpl() {
    }

    protected void addBlock(MetaDataBlock block) {
        this.blocks.add(block);
    }

    protected void addData(MetaDataBlock block, MetaDataInstance data) {
        List<MetaDataInstance> instances = this.dataPerBlock.get(block);
        if (instances == null) {
            instances = new ArrayList<MetaDataInstance>(4);
            this.dataPerBlock.put(block, instances);
        }
        instances.add(data);
    }

    @Override
    public Iterator<MetaDataBlock> getBlocks() {
        return this.blocks.iterator();
    }

    @Override
    public Iterator<MetaDataInstance> getDataFor(MetaDataBlock block) {
        List<MetaDataInstance> perBlock = this.dataPerBlock.get(block);
        return perBlock != null ? perBlock.iterator() : EMPTY_LIST.iterator();
    }

    protected MetaDataBlock getBlockById(String blockId) {
        for (MetaDataBlock blockToCheck : this.blocks) {
            if (!blockToCheck.getId().equals(blockId)) continue;
            return blockToCheck;
        }
        return null;
    }

    protected MetaDataInstance getInstanceById(MetaDataBlock block, String dataId) {
        List<MetaDataInstance> instances = this.dataPerBlock.get(block);
        if (instances != null) {
            for (MetaDataInstance instance : instances) {
                if (!instance.getId().equals(dataId)) continue;
                return instance;
            }
        }
        return null;
    }

    @Override
    public MetaDataInstance getData(String blockId, String dataId) {
        MetaDataInstance instance = null;
        MetaDataBlock block = this.getBlockById(blockId);
        if (block != null) {
            instance = this.getInstanceById(block, dataId);
        }
        return instance;
    }

    @Override
    public MetaDataInstance getData(String dataId) {
        for (MetaDataBlock blockToCheck : this.blocks) {
            List<MetaDataInstance> instances = this.dataPerBlock.get(blockToCheck);
            for (MetaDataInstance instanceToCheck : instances) {
                if (!instanceToCheck.getId().equals(dataId)) continue;
                return instanceToCheck;
            }
        }
        return null;
    }

    public String toString() {
        StringBuilder strRep = new StringBuilder(256);
        for (MetaDataBlock block : this.blocks) {
            strRep.append(block.toString()).append('\n');
            List<MetaDataInstance> instances = this.dataPerBlock.get(block);
            if (instances == null) continue;
            for (MetaDataInstance instance : instances) {
                strRep.append("    ").append(instance.toString()).append('\n');
            }
        }
        return strRep.toString();
    }
}