All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gooddata.md.TableDataLoad Maven / Gradle / Ivy

There is a newer version: 3.11.1+api3
Show newest version
/*
 * Copyright (C) 2007-2016, GoodData(R) Corporation. All rights reserved.
 */

package com.gooddata.md;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;

/**
 * Represents data load of physical table.
 * Deserialization only.
 */
@JsonTypeName("tableDataLoad")
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME)
public class TableDataLoad extends AbstractObj implements Queryable {

    public static final String TYPE_FULL = "full";
    public static final String TYPE_INCREMENTAL = "incremental";

    private final Content content;

    @JsonCreator
    private TableDataLoad(@JsonProperty("meta") Meta meta, @JsonProperty("content") Content content) {
        super(meta);
        this.content = content;
    }

    /**
     * @return location of load data source
     */
    public String getDataSourceLocation() {
        return content.getDataSourceLocation();
    }

    /**
     * @return true if the type is full, false otherwise
     */
    public boolean isFull() {
        return TYPE_FULL.equals(getType());
    }

    /**
     * @return true if the type is incremental, false otherwise
     */
    public boolean isIncremental() {
        return TYPE_INCREMENTAL.equals(getType());
    }

    /**
     * @return type of the load, one of full,incremental
     */
    public String getType() {
        return content.getTypeOfLoad();
    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    private static class Content {

        private final String dataSourceLocation;
        private final String typeOfLoad;

        @JsonCreator
        private Content(@JsonProperty("dataSourceLocation") String dataSourceLocation, @JsonProperty("typeOfLoad") String typeOfLoad) {
            this.dataSourceLocation = dataSourceLocation;
            this.typeOfLoad = typeOfLoad;
        }

        public String getDataSourceLocation() {
            return dataSourceLocation;
        }

        public String getTypeOfLoad() {
            return typeOfLoad;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy