package io.qameta.allure.bamboo; import java.io.Serializable; import java.util.Map; import static io.qameta.allure.bamboo.AllureConstants.ALLURE_BUILD_REPORT_ARTIFACT_HANDLER; import static io.qameta.allure.bamboo.AllureConstants.ALLURE_BUILD_REPORT_FAILURE_DETAILS; import static io.qameta.allure.bamboo.AllureConstants.ALLURE_BUILD_REPORT_SUCCESS; import static java.lang.Boolean.parseBoolean; import static org.sonatype.aether.util.StringUtils.isEmpty; class AllureBuildResult implements Serializable { private final boolean success; private String artifactHandlerClass; private String failureDetails; AllureBuildResult(boolean success) { this.success = success; } public AllureBuildResult(boolean success, String failureDetails) { this.success = success; this.failureDetails = failureDetails; } static AllureBuildResult allureBuildResult(boolean success, String failureDetails){ return new AllureBuildResult(success, failureDetails); } static AllureBuildResult fromCustomData(Map<String, String> data) { final AllureBuildResult result = new AllureBuildResult(parseBoolean(data.get(ALLURE_BUILD_REPORT_SUCCESS))); result.setArtifactHandlerClass(data.get(ALLURE_BUILD_REPORT_ARTIFACT_HANDLER)); result.setFailureDetails(data.get(ALLURE_BUILD_REPORT_FAILURE_DETAILS)); return result; } void dumpToCustomData(Map<String, String> data) { data.put(ALLURE_BUILD_REPORT_ARTIFACT_HANDLER, artifactHandlerClass); data.put(ALLURE_BUILD_REPORT_SUCCESS, String.valueOf(success)); data.put(ALLURE_BUILD_REPORT_FAILURE_DETAILS, failureDetails); } AllureBuildResult withHandlerClass(String artifactHandlerClass){ setArtifactHandlerClass(artifactHandlerClass); return this; } String getArtifactHandlerClass() { return artifactHandlerClass; } void setArtifactHandlerClass(String artifactHandlerClass) { this.artifactHandlerClass = artifactHandlerClass; } boolean isSuccess() { return success; } String getFailureDetails() { return failureDetails; } void setFailureDetails(String failureDetails) { this.failureDetails = failureDetails; } boolean hasInfo(){ return !isEmpty(this.failureDetails) || !isEmpty(artifactHandlerClass); } }