org.labkey.remoteapi.assay.SaveAssayBatchCommand Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of labkey-client-api Show documentation
Show all versions of labkey-client-api Show documentation
The client-side library for Java developers is a separate JAR from the LabKey Server code base. It can be used by any Java program, including another Java web application.
/*
* Copyright (c) 2010-2018 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.labkey.remoteapi.assay;
import org.json.JSONObject;
import org.labkey.remoteapi.PostCommand;
/**
* Saves an assay batch on the server. If no batch or run ids are specified, new ones will be inserted. If they are
* specified, existing ones will be updated.
*/
public class SaveAssayBatchCommand extends PostCommand
{
public static final String SAMPLE_DERIVATION_PROTOCOL = "Sample Derivation Protocol"; // protocol name that can be used to create non-assay backed runs
private Batch _batch = new Batch();
private final int _assayId;
private String _protocolName;
/** @param assayId the id of the assay definition on the web server */
public SaveAssayBatchCommand(int assayId)
{
super("assay", "saveAssayBatch");
_assayId = assayId;
}
/**
* @param assayId the id of the assay definition on the web server
* @param batch the batch object to be saved
*/
public SaveAssayBatchCommand(int assayId, Batch batch)
{
this(assayId);
_batch = batch;
}
/**
* @param protocolName the name of the protocol to use for non-assay backed runs
* @param batch the batch object to be saved
*/
public SaveAssayBatchCommand(String protocolName, Batch batch)
{
this(-1);
_protocolName = protocolName;
_batch = batch;
}
@Override
public JSONObject getJsonObject()
{
JSONObject result = new JSONObject();
if (_protocolName != null)
result.put("protocolName", _protocolName);
else
result.put("assayId", _assayId);
result.put("batch", _batch.toJSONObject());
return result;
}
@Override
protected SaveAssayBatchResponse createResponse(String text, int status, String contentType, JSONObject json)
{
return new SaveAssayBatchResponse(text, status, contentType, json, this);
}
}