Package org.openmhealth.reference.request

Source Code of org.openmhealth.reference.request.SchemaVersionsRequest

package org.openmhealth.reference.request;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import org.openmhealth.reference.data.Registry;
import org.openmhealth.reference.domain.MultiValueResult;
import org.openmhealth.reference.exception.OmhException;

/**
* <p>
* Retrieves all of the known schema versions.
* </p>
*
* @author John Jenkins
*/
public class SchemaVersionsRequest extends ListRequest<Long> {
  /**
   * The unique identifier for the schema whose versions are being requested.
   */
  private final String schemaId;

  /**
   * Creates a request for the list of known versions for a given schema.
   *
   * @param schemaId The schema ID.
   *
   * @param numToSkip The number of schema versions to skip.
   *
   * @param numToReturn The number of schema versions to return.
   *
   * @throws OmhException A parameter was invalid.
   */
  public SchemaVersionsRequest(
    final String schemaId,
    final Long numToSkip,
    final Long numToReturn)
    throws OmhException {
   
    super(numToSkip, numToReturn);
   
    // Validate the schema ID.
    if(schemaId == null) {
      throw new OmhException("The schema ID is missing.");
    }
    else {
      this.schemaId = schemaId;
    }
  }
 
  /*
   * (non-Javadoc)
   * @see org.openmhealth.reference.request.Request#service()
   */
  @Override
  public void service() throws OmhException {
    // First, short-circuit if this request has already been serviced.
    if(isServiced()) {
      return;
    }
    else {
      setServiced();
    }

    // Get the schema versions.
    MultiValueResult<Long> result =
      Registry
        .getInstance()
          .getSchemaVersions(
            schemaId,
            getNumToSkip(),
            getNumToReturn());
   
    // Set the meta-data.
    Map<String, Object> metaData = new HashMap<String, Object>();
    metaData.put(METADATA_KEY_COUNT, result.count());
    setMetaData(metaData);
   
    // Set the data.
    setData(result);
  }

  /*
   * (non-Javadoc)
   * @see org.openmhealth.reference.request.ListRequest#getPreviousNextParameters()
   */
  @Override
  public Map<String, String> getPreviousNextParameters() {
    return Collections.emptyMap();
  }
}
TOP

Related Classes of org.openmhealth.reference.request.SchemaVersionsRequest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.