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

com.aliyun.odps.Stream Maven / Gradle / Ivy

The newest version!
package com.aliyun.odps;

import java.util.Date;

import com.aliyun.odps.rest.ResourceBuilder;
import com.aliyun.odps.rest.RestClient;
import com.aliyun.odps.rest.SimpleXmlUtils;
import com.aliyun.odps.simpleframework.xml.Element;
import com.aliyun.odps.simpleframework.xml.Root;
import com.aliyun.odps.simpleframework.xml.convert.Convert;

/**
 * Stream 对象是ODPS中用于管理增量数据的对象,用户可以通过Stream对象对增量数据进行管理,
 *
 * @author dingxin (zhangdingxin.zdx@alibaba-inc.com)
 */
public class Stream extends LazyLoad {

  private StreamModel model;
  private final RestClient client;

  /**
   * Stream对象对应的xml对象, 通过get stream获得
   */
  @Root(name = "StreamObject", strict = false)
  static class StreamModel {

    @Element(name = "Project")
    String projectName;

    @Element(name = "Name")
    String name;

    @Element(name = "RefTableProject")
    String refTableProject;

    @Element(name = "RefTableName")
    String refTableName;

    @Element(name = "RefTableId", required = false)
    String refTableId;

    @Element(name = "RefTableVersion", required = false)
    String refTableVersion;

    @Element(name = "CreateTime", required = false)
    @Convert(SimpleXmlUtils.DateConverter.class)
    Date createdTime;

    @Element(name = "LastModifiedTime", required = false)
    @Convert(SimpleXmlUtils.DateConverter.class)
    Date lastModifiedTime;

    @Element(name = "version", required = false)
    String version;
  }

  Stream(StreamModel model, String projectName, Odps odps) {
    this.model = model;
    this.model.projectName = projectName;
    this.client = odps.getRestClient();
  }

  @Override
  public void reload() throws OdpsException {
    String resource = ResourceBuilder.buildStreamObjectResource(model.projectName, model.name);
    reload(client.request(StreamModel.class, resource, "GET"));
  }

  private void reload(StreamModel model) {
    this.model = model;
    setLoaded(true);
  }


  public String getName() {
    return model.name;
  }

  public String getProjectName() {
    return model.projectName;
  }

  public String getRefTableProject() {
    if (model.refTableProject == null) {
      lazyLoad();
    }
    return model.refTableProject;
  }

  public String getRefTableName() {
    if (model.refTableName == null) {
      lazyLoad();
    }
    return model.refTableName;
  }

  public String getRefTableId() {
    if (model.refTableId == null) {
      lazyLoad();
    }
    return model.refTableId;
  }

  public String getRefTableVersion() {
    if (model.refTableVersion == null) {
      lazyLoad();
    }
    return model.refTableVersion;
  }

  public Date getCreateTime() {
    if (model.createdTime == null) {
      lazyLoad();
    }
    return model.createdTime;
  }

  public Date getLastModifiedTime() {
    if (model.lastModifiedTime == null) {
      lazyLoad();
    }
    return model.lastModifiedTime;
  }

  public String version() {
    if (model.version == null) {
      lazyLoad();
    }
    return model.version;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy