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

com.marklogic.client.impl.ResourceServicesImpl Maven / Gradle / Ivy

The newest version!
/*
 * Copyright © 2024 MarkLogic Corporation. All Rights Reserved.
 */
package com.marklogic.client.impl;

import com.marklogic.client.Transaction;
import com.marklogic.client.extensions.ResourceServices;
import com.marklogic.client.io.marker.AbstractReadHandle;
import com.marklogic.client.io.marker.AbstractWriteHandle;
import com.marklogic.client.util.RequestLogger;
import com.marklogic.client.util.RequestParameters;

class ResourceServicesImpl
  extends AbstractLoggingManager
  implements ResourceServices
{
  private String       resourceName;
  private RESTServices services;

  ResourceServicesImpl(RESTServices services, String resourceName) {
    super();
    this.services     = services;
    this.resourceName = resourceName;
  }

  @Override
  public String getResourceName() {
    return resourceName;
  }
  private String getResourcePath() {
    return "resources/"+getResourceName();
  }

  @Override
  public  R get(RequestParameters params, R output) {
    return get(params, null, output);
  }
  @Override
  public  R get(RequestParameters params, Transaction transaction, R output) {
    return services.getResource(requestLogger, getResourcePath(),
      transaction, prepareParams(params), output);
  }
  @Override
  public ServiceResultIterator get(RequestParameters params) {
    return get(params, (Transaction)null);
  }
  @Override
  public ServiceResultIterator get(RequestParameters params, Transaction transaction) {
    return services.getIteratedResource(requestLogger, getResourcePath(), transaction, prepareParams(params));
  }

  @Override
  public  R put(RequestParameters params, AbstractWriteHandle input, R output) {
    return put(params, input, null, output);
  }
  @Override
  public  R put(RequestParameters params, AbstractWriteHandle input, Transaction transaction, R output) {
    return services.putResource(requestLogger, getResourcePath(),
      transaction, prepareParams(params), input, output);
  }
  @Override
  public  R put(RequestParameters params, W[] input, R output) {
    return put(params, input, null, output);
  }
  @Override
  public  R put(RequestParameters params, W[] input, Transaction transaction, R output) {
    return services.putResource(requestLogger, getResourcePath(),
      transaction, prepareParams(params), input, output);
  }

  @Override
  public  R post(RequestParameters params, AbstractWriteHandle input, R output) {
    return post(params, input, null, output);
  }
  @Override
  public  R post(RequestParameters params, AbstractWriteHandle input, Transaction transaction, R output) {
    return services.postResource(
      requestLogger, getResourcePath(), transaction, prepareParams(params), input, output);
  }
  @Override
  public ServiceResultIterator post(RequestParameters params, AbstractWriteHandle input) {
    return post(params, input, (Transaction)null);
  }
  @Override
  public ServiceResultIterator post(RequestParameters params, AbstractWriteHandle input, Transaction transaction) {
    return services.postIteratedResource(
      requestLogger, getResourcePath(), transaction, prepareParams(params), input);
  }
  @Override
  public  R post(RequestParameters params, W[] input, R output) {
    return post(params, input, null, output);
  }
  @Override
  public  R post(RequestParameters params, W[] input, Transaction transaction, R output) {
    return services.postResource(
      requestLogger, getResourcePath(), transaction, prepareParams(params), input, output);
  }
  @Override
  public  ServiceResultIterator post(RequestParameters params, W[] input) {
    return post(params, input, (Transaction) null);
  }
  @Override
  public  ServiceResultIterator post(RequestParameters params, W[] input, Transaction transaction) {
    return services.postIteratedResource(
      requestLogger, getResourcePath(), transaction, prepareParams(params), input);
  }

  @Override
  public  R delete(RequestParameters params, R output) {
    return delete(params, null, output);
  }
  @Override
  public  R delete(RequestParameters params, Transaction transaction, R output) {
    return services.deleteResource(requestLogger,
      getResourcePath(), transaction, prepareParams(params), output);
  }

  @Override
  public RequestLogger getRequestLogger() {
    return requestLogger;
  }

  private RequestParameters prepareParams(RequestParameters params) {
    return params != null ? params.copy("rs") : null;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy