LiveRelationshipImpl.java 4.16 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.wcm.msm.api.LiveCopy
 *  com.day.cq.wcm.msm.api.LiveRelationship
 *  com.day.cq.wcm.msm.api.LiveStatus
 *  com.day.cq.wcm.msm.api.RolloutConfig
 *  com.day.cq.wcm.msm.api.RolloutManager
 *  com.day.cq.wcm.msm.api.RolloutManager$Trigger
 *  org.apache.sling.commons.json.JSONException
 *  org.apache.sling.commons.json.io.JSONWriter
 */
package com.day.cq.wcm.msm.impl;

import com.day.cq.wcm.msm.api.LiveCopy;
import com.day.cq.wcm.msm.api.LiveRelationship;
import com.day.cq.wcm.msm.api.LiveStatus;
import com.day.cq.wcm.msm.api.RolloutConfig;
import com.day.cq.wcm.msm.api.RolloutManager;
import java.util.ArrayList;
import java.util.List;
import org.apache.sling.commons.json.JSONException;
import org.apache.sling.commons.json.io.JSONWriter;

public class LiveRelationshipImpl
implements LiveRelationship {
    private final LiveCopy liveCopy;
    private final String syncPath;
    private long computationTime;
    private LiveStatus status;
    private List<RolloutConfig> rolloutConfigs;

    public LiveRelationshipImpl(LiveCopy liveCopy, String syncPath) {
        this.liveCopy = liveCopy;
        this.syncPath = syncPath;
    }

    public LiveCopy getLiveCopy() {
        return this.liveCopy;
    }

    public String getSyncPath() {
        return this.syncPath;
    }

    public String getSourcePath() {
        return this.liveCopy.getBlueprintPath() + this.syncPath;
    }

    public String getTargetPath() {
        return this.liveCopy.getPath() + this.syncPath;
    }

    public LiveStatus getStatus() {
        return this.status;
    }

    public void setStatus(LiveStatus status) {
        this.status = status;
    }

    public void setComputationTime(long computationTime) {
        this.computationTime = computationTime;
    }

    public String toString() {
        return this.liveCopy.toString() + ", rel=" + this.syncPath + ", time=" + this.computationTime + ", status=" + (Object)this.status;
    }

    public List<RolloutConfig> getRolloutConfigs() {
        return this.rolloutConfigs;
    }

    public void setRolloutConfigs(List<RolloutConfig> rolloutConfigs) {
        this.rolloutConfigs = rolloutConfigs;
    }

    public List<RolloutConfig> getRolloutConfigs(RolloutManager.Trigger trigger) {
        ArrayList<RolloutConfig> res = new ArrayList<RolloutConfig>();
        if (this.rolloutConfigs != null) {
            for (RolloutConfig rc : this.rolloutConfigs) {
                if (!trigger.equals((Object)rc.getTrigger())) continue;
                res.add(rc);
            }
        }
        return res;
    }

    public boolean isTrigger(RolloutManager.Trigger trigger) {
        if (trigger != null && this.rolloutConfigs != null) {
            for (RolloutConfig rc : this.rolloutConfigs) {
                if (!trigger.equals((Object)rc.getTrigger())) continue;
                return true;
            }
        }
        return trigger == null;
    }

    public void write(JSONWriter out) throws JSONException {
        out.object();
        out.key("msm:syncPath").value((Object)this.syncPath);
        out.key("msm:sourcePath").value((Object)this.getSourcePath());
        out.key("msm:targetPath").value((Object)this.getTargetPath());
        out.key("msm:liveCopyPath").value((Object)this.liveCopy.getPath());
        out.key("msm:liveCopyBpPath").value((Object)this.liveCopy.getBlueprintPath());
        out.key("msm:isDeep").value(this.liveCopy.isDeep());
        out.key("msm:isInheritedConfig").value(this.syncPath != null && this.syncPath.length() > 0 && !this.syncPath.equals("/jcr:content"));
        out.key("msm:isRootConfig").value(this.liveCopy.isRoot());
        if (this.status != null) {
            this.status.write(out.key("msm:status"));
        }
        out.key("cq:rolloutConfigs");
        out.array();
        List<RolloutConfig> rolloutConfigs = this.getRolloutConfigs();
        if (rolloutConfigs != null) {
            for (RolloutConfig config : rolloutConfigs) {
                out.value((Object)config.getPath());
            }
        }
        out.endArray();
        out.key("msm:computationTime").value(this.computationTime);
        out.endObject();
    }
}