/* * Copyright (C) 2016 TIBCO Jaspersoft Corporation. All rights reserved. * http://community.jaspersoft.com/project/mobile-sdk-android * * Unless you have purchased a commercial license agreement from TIBCO Jaspersoft, * the following license terms apply: * * This program is part of TIBCO Jaspersoft Mobile SDK for Android. * * TIBCO Jaspersoft Mobile SDK is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * TIBCO Jaspersoft Mobile SDK is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with TIBCO Jaspersoft Mobile SDK for Android. If not, see * <http://www.gnu.org/licenses/lgpl>. */ package com.jaspersoft.android.sdk.service.report; import com.jaspersoft.android.sdk.network.entity.execution.ExecutionRequestOptions; import com.jaspersoft.android.sdk.service.data.report.PageRange; import com.jaspersoft.android.sdk.service.data.server.ServerVersion; /** * @author Tom Koptel * @since 2.3 */ abstract class ExportOptionsMapper { private final String mBaseUrl; protected ExportOptionsMapper(String baseUrl) { mBaseUrl = baseUrl; } public static ExportOptionsMapper create(ServerVersion serverVersion, String baseUrl) { if (serverVersion.lessThanOrEquals(ServerVersion.v5_5)) { return new ExportOptionsMapper5_5(baseUrl); } if (serverVersion.greaterThanOrEquals(ServerVersion.v5_6) && serverVersion.lessThan(ServerVersion.v6)) { return new ExportOptionsMapper5_6and6_0(baseUrl); } if (serverVersion.greaterThanOrEquals(ServerVersion.v6) && serverVersion.lessThan(ServerVersion.v6_2)) { return new ExportOptionsMapper6_06and6_1(baseUrl); } return new ExportOptionsMapper6_2(baseUrl); } public ExecutionRequestOptions transform(ReportExportOptions options) { ExecutionRequestOptions resultOptions = ExecutionRequestOptions.create(); ReportFormat format = options.getFormat(); resultOptions.withOutputFormat(format.toString().toLowerCase()); PageRange pageRange = options.getPageRange(); if (pageRange != null) { resultOptions.withPages(pageRange.toString()); } String prefix = options.getAttachmentPrefix(); if (prefix != null) { resultOptions.withAttachmentsPrefix(prefix); } ReportMarkup markup = options.getMarkupType(); if (markup != null) { resultOptions.withMarkupType(markup.toString().toLowerCase()); } resultOptions.withIgnorePagination(options.getIgnorePagination()); resultOptions.withAnchor(options.getAnchor()); resultOptions.withAllowInlineScripts(options.getAllowInlineScripts()); resultOptions.withBaseUrl(mBaseUrl); return resultOptions; } }