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

com.contentful.vault.AbsQuery Maven / Gradle / Ivy

There is a newer version: 3.2.6
Show newest version
package com.contentful.vault;

abstract class AbsQuery> {
  private final Class type;

  private final Vault vault;

  private Params params = new Params();

  AbsQuery(Class type, Vault vault) {
    this.type = type;
    this.vault = vault;
  }

  @SuppressWarnings("unchecked")
  public E where(String selection, String... args) {
    params.setSelection(selection);
    params.setSelectionArgs(args);
    return (E) this;
  }

  @SuppressWarnings("unchecked")
  public E limit(Integer limit) {
    String value = null;
    if (limit != null) {
      value = limit.toString();
    }
    params.setLimit(value);
    return (E) this;
  }

  @SuppressWarnings("unchecked")
  public E order(String... order) {
    params.setOrder(order);
    return (E) this;
  }

  Class type() {
    return type;
  }

  Vault vault() {
    return vault;
  }

  Params params() {
    return params;
  }

  void setParams(Params params) {
    this.params = params;
  }

  static final class Params {
    private String selection;
    private String[] selectionArgs;
    private String limit;
    private String[] order;

    public String selection() {
      return selection;
    }

    public void setSelection(String selection) {
      this.selection = selection;
    }

    public String[] selectionArgs() {
      return selectionArgs;
    }

    public void setSelectionArgs(String[] selectionArgs) {
      this.selectionArgs = selectionArgs;
    }

    public String limit() {
      return limit;
    }

    public void setLimit(String limit) {
      this.limit = limit;
    }

    public String[] order() {
      return order;
    }

    public void setOrder(String[] order) {
      this.order = order;
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy