com.revo.deployr.client.core.impl.RProjectExecutionImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.revo.deployr.client.core.impl.RProjectExecutionImpl.java

Source

/*
 * RProjectExecutionImpl.java
 *
 * Copyright (C) 2010-2016, Microsoft Corporation
 *
 * This program is licensed to you under the terms of Version 2.0 of the
 * Apache License. This program is distributed WITHOUT
 * ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
 * Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0) for more details.
 *
 */
package com.revo.deployr.client.core.impl;

import com.revo.deployr.client.core.RCoreResult;
import com.revo.deployr.client.core.RClientExecutor;
import com.revo.deployr.client.core.REndpoints;
import com.revo.deployr.client.call.RCall;

import com.revo.deployr.client.RProjectExecution;
import com.revo.deployr.client.RProjectResult;
import com.revo.deployr.client.about.RProjectDetails;
import com.revo.deployr.client.about.RProjectExecutionDetails;
import com.revo.deployr.client.about.RProjectResultDetails;

import com.revo.deployr.client.call.project.ProjectExecuteFlushCall;
import com.revo.deployr.client.call.project.ProjectExecuteResultListCall;
import com.revo.deployr.client.call.project.ProjectExecuteResultDeleteCall;

import com.revo.deployr.client.util.REntityUtil;

import com.revo.deployr.client.RClientException;
import com.revo.deployr.client.RSecurityException;

import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.net.URL;
import java.net.MalformedURLException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * Represents a DeployR project execution.
 */
public class RProjectExecutionImpl implements RProjectExecution {

    private Log log = LogFactory.getLog(RProjectExecution.class);

    RProjectDetails project;
    RProjectExecutionDetails about;
    RLiveContext liveContext;

    public RProjectExecutionImpl(RProjectDetails project, RProjectExecutionDetails about,
            RLiveContext liveContext) {
        this.project = project;
        this.about = about;
        this.liveContext = liveContext;
    }

    public RProjectExecutionDetails about() {
        return this.about;
    }

    public void flush() throws RClientException, RSecurityException {

        RCall rCall = new ProjectExecuteFlushCall(this.project.id, this.about.id);
        RCoreResult rResult = liveContext.executor.processCall(rCall);

        boolean success = rResult.isSuccess();
        String error = rResult.getError();
        int errorCode = rResult.getErrorCode();

        log.debug("flush: success=" + success + " error=" + error + " errorCode=" + errorCode);
    }

    public List<RProjectResult> listResults() throws RClientException, RSecurityException {

        RCall rCall = new ProjectExecuteResultListCall(this.project.id, this.about.id);
        RCoreResult rResult = liveContext.executor.processCall(rCall);

        List<Map> results = rResult.getResults();

        List<RProjectResult> resultList = new ArrayList<RProjectResult>();

        for (Map resultMap : results) {
            RProjectResultDetails resultDetails = REntityUtil.getProjectResultDetails(resultMap);
            RProjectResult result = new RProjectResultImpl(this.project, resultDetails, liveContext);
            resultList.add(result);
        }

        // Update results on RProjectExecutionDetails.
        this.about.results = resultList;

        boolean success = rResult.isSuccess();
        String error = rResult.getError();
        int errorCode = rResult.getErrorCode();

        log.debug("listResults: success=" + success + " error=" + error + " errorCode=" + errorCode);
        return resultList;
    }

    public URL downloadResults() throws RClientException, RSecurityException {

        String urlPath = this.liveContext.serverurl + REndpoints.RPROJECTEXECUTERESULTDOWNLOAD;
        String urlQuery = urlPath + "/" + this.project.id + "/" + this.about.id + ";jsessionid="
                + this.liveContext.httpcookie;
        log.debug("downloadResults: url=" + urlQuery);
        URL downloadURL = null;
        try {
            downloadURL = new URL(urlQuery);
        } catch (MalformedURLException mex) {
            throw new RClientException("Download project execution results url malformed, ex=" + mex.getMessage());
        }
        return downloadURL;
    }

    public void deleteResults() throws RClientException, RSecurityException {

        RCall rCall = new ProjectExecuteResultDeleteCall(this.project.id, this.about.id, null);
        RCoreResult rResult = liveContext.executor.processCall(rCall);

        boolean success = rResult.isSuccess();
        String error = rResult.getError();
        int errorCode = rResult.getErrorCode();

        log.debug("deleteResults: success=" + success + " error=" + error + " errorCode=" + errorCode);
    }

}