Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions flow/src/org/labkey/flow/data/FlowCompensationControl.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,10 @@
package org.labkey.flow.data;

import org.labkey.api.exp.api.ExpData;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.flow.query.FlowSchema;
import org.labkey.flow.query.FlowTableType;

public class FlowCompensationControl extends FlowWell
{
Expand All@@ -27,4 +31,10 @@ public FlowCompensationControl(ExpData data)
{
super(data);
}

@Override
public QueryRowReference getQueryRowReference()
{
return new QueryRowReference(getContainer(), FlowSchema.SCHEMAKEY, FlowTableType.CompensationControls.name(), FieldKey.fromParts("RowId"), getRowId());
}
}
10 changes: 10 additions & 0 deletions flow/src/org/labkey/flow/data/FlowCompensationMatrix.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,6 +20,8 @@
import org.labkey.api.data.DbScope;
import org.labkey.api.exp.api.ExpData;
import org.labkey.api.exp.api.ExperimentService;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.api.security.User;
import org.labkey.api.view.ActionURL;
import org.labkey.flow.FlowSettings;
Expand All@@ -30,6 +32,8 @@
import org.labkey.flow.persist.AttributeSet;
import org.labkey.flow.persist.AttributeSetHelper;
import org.labkey.flow.persist.FlowDataHandler;
import org.labkey.flow.query.FlowSchema;
import org.labkey.flow.query.FlowTableType;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
Expand DownExpand Up@@ -141,6 +145,12 @@ public ActionURL urlDownload()
return urlFor(CompensationController.DownloadAction.class);
}

@Override
public QueryRowReference getQueryRowReference()
{
return new QueryRowReference(getContainer(), FlowSchema.SCHEMAKEY, FlowTableType.CompensationMatrices.name(), FieldKey.fromParts("RowId"), getRowId());
}

public void addParams(Map<FlowParam, Object> map)
{
map.put(FlowParam.compId, getCompId());
Expand Down
8 changes: 8 additions & 0 deletions flow/src/org/labkey/flow/data/FlowDataObject.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -24,6 +24,9 @@
import org.labkey.api.exp.api.ExpProtocolApplication;
import org.labkey.api.exp.api.ExpRun;
import org.labkey.api.exp.api.ExperimentService;
import org.labkey.api.exp.query.ExpSchema;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.flow.persist.AttrObject;
import org.labkey.flow.persist.AttributeSet;
import org.labkey.flow.persist.AttributeSetHelper;
Expand DownExpand Up@@ -283,4 +286,9 @@ public AttributeSet getAttributeSet(boolean includeGraphBytes)
return AttributeSetHelper.fromData(getData(), includeGraphBytes);
}

@Override
public QueryRowReference getQueryRowReference()
{
return new QueryRowReference(getContainer(), ExpSchema.SCHEMA_EXP, ExpSchema.TableType.Data.name(), FieldKey.fromParts("RowId"), getRowId());
}
}
74 changes: 46 additions & 28 deletions flow/src/org/labkey/flow/data/FlowDataType.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,16 +16,20 @@

package org.labkey.flow.data;

import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.labkey.api.data.Container;
import org.labkey.api.exp.Lsid;
import org.labkey.api.exp.LsidManager;
import org.labkey.api.exp.api.DataType;
import org.labkey.api.exp.api.ExpDataRunInput;
import org.labkey.api.exp.api.ExperimentService;
import org.labkey.api.exp.api.ExpData;
import org.labkey.api.query.QueryRowReference;
import org.labkey.api.security.User;
import org.labkey.api.security.permissions.Permission;
import org.labkey.api.settings.AppProps;
import org.labkey.api.assay.AssayDataType;
import org.labkey.api.util.URLHelper;
import org.labkey.api.view.ActionURL;
import org.labkey.flow.persist.ObjectType;

Expand All@@ -47,33 +51,37 @@ private FlowDataType(String type, String label, ObjectType objType, boolean requ
_objType = objType;
_requireAttrObject = requireAttrObject;

LsidManager.get().registerHandler(getNamespacePrefix(), new LsidManager.ExpObjectLsidHandler()
LsidManager.get().registerHandler(getNamespacePrefix(), new FlowDataObjectLsidHandler());
}

static final class FlowDataObjectLsidHandler implements LsidManager.LsidHandler<FlowDataObject>
{
@Override
public FlowDataObject getObject(Lsid lsid)
{
return FlowDataObject.fromLSID(lsid.toString());
}

@Override
public @Nullable ActionURL getDisplayURL(Lsid lsid)
{
@Override
public ExpData getObject(Lsid lsid)
{
FlowDataObject fdo = FlowDataObject.fromLSID(lsid.toString());
if (fdo != null)
return fdo.getData();

return null;
}

@Nullable
@Override
public ActionURL getDisplayURL(Lsid lsid)
{
FlowDataObject fdo = FlowDataObject.fromLSID(lsid.toString());
if (fdo != null)
{
ActionURL url = fdo.urlShow();
if (url != null)
return url;
}

return null;
}
});
FlowDataObject fdo = getObject(lsid);
return fdo != null ? fdo.urlShow() : null;
}

@Override
public Container getContainer(Lsid lsid)
{
FlowDataObject fdo = getObject(lsid);
return fdo != null ? fdo.getContainer() : null;
}

@Override
public boolean hasPermission(Lsid lsid, @NotNull User user, @NotNull Class<? extends Permission> perm)
{
FlowDataObject fdo = getObject(lsid);
return fdo != null ? fdo.getContainer().hasPermission(user, perm) : null;
}
}

static final public FlowDataType FCSFile = new FlowDataType("FCSFile", "FCS File", ObjectType.fcsKeywords, true)
Expand DownExpand Up@@ -146,7 +154,7 @@ public String getName()
}

@Override
public URLHelper getDetailsURL(ExpData dataObject)
public ActionURL getDetailsURL(ExpData dataObject)
{
FlowDataObject fdo = FlowDataObject.fromData(dataObject);
if (fdo != null)
Expand All@@ -164,6 +172,16 @@ public ActionURL getDownloadURL(ExpData dataObject)
return null;
}

@Override
public @Nullable QueryRowReference getQueryRowReference(ExpData dataObject)
{
FlowDataObject fdo = FlowDataObject.fromData(dataObject);
if (fdo != null)
return fdo.getQueryRowReference();

return null;
}

@Override
public String getRole()
{
Expand Down
9 changes: 9 additions & 0 deletions flow/src/org/labkey/flow/data/FlowExperiment.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -22,11 +22,14 @@
import org.labkey.api.exp.api.ExpExperiment;
import org.labkey.api.exp.api.ExpProtocol;
import org.labkey.api.exp.api.ExperimentService;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.api.security.User;
import org.labkey.api.view.ActionURL;
import org.labkey.flow.controllers.FlowParam;
import org.labkey.flow.controllers.run.RunController;
import org.labkey.flow.query.FlowSchema;
import org.labkey.flow.query.FlowTableType;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
Expand DownExpand Up@@ -241,6 +244,12 @@ public ActionURL urlDownload()
throw new UnsupportedOperationException();
}

@Override
public QueryRowReference getQueryRowReference()
{
return new QueryRowReference(getContainer(), FlowSchema.SCHEMAKEY, FlowTableType.Analyses.name(), FieldKey.fromParts("RowId"), getExperimentId());
}

public boolean hasRun(File filePath, @Nullable FlowProtocolStep step)
{
List<FlowRun> runs = getRuns(step);
Expand Down
10 changes: 10 additions & 0 deletions flow/src/org/labkey/flow/data/FlowFCSAnalysis.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -17,6 +17,10 @@
package org.labkey.flow.data;

import org.labkey.api.exp.api.ExpData;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.flow.query.FlowSchema;
import org.labkey.flow.query.FlowTableType;

public class FlowFCSAnalysis extends FlowWell
{
Expand All@@ -27,4 +31,10 @@ public FlowFCSAnalysis(ExpData data)
{
super(data);
}

@Override
public QueryRowReference getQueryRowReference()
{
return new QueryRowReference(getContainer(), FlowSchema.SCHEMAKEY, FlowTableType.FCSAnalyses.name(), FieldKey.fromParts("RowId"), getRowId());
}
}
9 changes: 9 additions & 0 deletions flow/src/org/labkey/flow/data/FlowFCSFile.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -18,7 +18,11 @@

import org.labkey.api.data.Container;
import org.labkey.api.exp.api.ExpData;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.api.security.User;
import org.labkey.flow.query.FlowSchema;
import org.labkey.flow.query.FlowTableType;

import java.util.ArrayList;
import java.util.Date;
Expand DownExpand Up@@ -98,4 +102,9 @@ public void setFileDate(User user, Date date) throws Exception
setProperty(user, FlowProperty.FileDate.getPropertyDescriptor(), date);
}

@Override
public QueryRowReference getQueryRowReference()
{
return new QueryRowReference(getContainer(), FlowSchema.SCHEMAKEY, FlowTableType.FCSFiles.name(), FieldKey.fromParts("RowId"), getRowId());
}
}
13 changes: 12 additions & 1 deletion flow/src/org/labkey/flow/data/FlowObject.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -16,15 +16,18 @@

package org.labkey.flow.data;

import org.jetbrains.annotations.Nullable;
import org.labkey.api.data.Container;
import org.labkey.api.data.ContainerManager;
import org.labkey.api.data.DataRegion;
import org.labkey.api.exp.Identifiable;
import org.labkey.api.exp.Lsid;
import org.labkey.api.exp.OntologyManager;
import org.labkey.api.exp.PropertyDescriptor;
import org.labkey.api.exp.api.DataType;
import org.labkey.api.exp.api.ExpObject;
import org.labkey.api.exp.property.SystemProperty;
import org.labkey.api.query.QueryRowReference;
import org.labkey.api.query.ValidationException;
import org.labkey.api.security.User;
import org.labkey.api.security.permissions.ReadPermission;
Expand All@@ -45,7 +48,7 @@
import java.util.LinkedHashMap;
import java.util.Map;

abstract public class FlowObject<T extends ExpObject> implements Comparable<Object>, Serializable
abstract public class FlowObject<T extends ExpObject> implements Comparable<Object>, Serializable, Identifiable
{
protected T _expObject;
protected String _entityId;
Expand All@@ -68,6 +71,14 @@ public T getExpObject()
abstract public ActionURL urlShow();
abstract public ActionURL urlDownload();

@Override
public @Nullable ActionURL detailsURL()
{
return urlShow();
}

abstract public QueryRowReference getQueryRowReference();

public String getLSID()
{
return _expObject.getLSID();
Expand Down
8 changes: 8 additions & 0 deletions flow/src/org/labkey/flow/data/FlowProtocol.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -45,12 +45,14 @@
import org.labkey.api.exp.property.ExperimentProperty;
import org.labkey.api.exp.query.ExpDataTable;
import org.labkey.api.exp.query.ExpMaterialTable;
import org.labkey.api.exp.query.ExpSchema;
import org.labkey.api.exp.query.SamplesSchema;
import org.labkey.api.gwt.client.model.GWTPropertyDescriptor;
import org.labkey.api.pipeline.PipeRoot;
import org.labkey.api.pipeline.PipelineService;
import org.labkey.api.query.BatchValidationException;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.api.query.QueryService;
import org.labkey.api.query.QueryUpdateService;
import org.labkey.api.query.UserSchema;
Expand DownExpand Up@@ -225,6 +227,12 @@ public ActionURL urlDownload()
throw new UnsupportedOperationException();
}

@Override
public QueryRowReference getQueryRowReference()
{
return new QueryRowReference(getContainer(), ExpSchema.SCHEMA_EXP, ExpSchema.TableType.Protocols.name(), FieldKey.fromParts("RowId"), getProtocol().getRowId());
}

public FlowProtocolStep getStep()
{
return FlowProtocolStep.fromLSID(getContainer(), getLSID());
Expand Down
11 changes: 11 additions & 0 deletions flow/src/org/labkey/flow/data/FlowProtocolImplementation.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -21,9 +21,14 @@
import org.labkey.api.data.SqlExecutor;
import org.labkey.api.exp.api.ExpMaterial;
import org.labkey.api.exp.api.ExpProtocol;
import org.labkey.api.exp.api.ExpRun;
import org.labkey.api.exp.api.ExperimentService;
import org.labkey.api.exp.api.ProtocolImplementation;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.api.security.User;
import org.labkey.flow.query.FlowSchema;
import org.labkey.flow.query.FlowTableType;

import java.util.List;

Expand DownExpand Up@@ -66,4 +71,10 @@ public void onRunDeleted(Container container, User user)

new SqlExecutor(ExperimentService.get().getSchema()).execute(sql);
}

@Override
public QueryRowReference getQueryRowReference(ExpProtocol protocol, ExpRun run)
{
return new QueryRowReference(run.getContainer(), FlowSchema.SCHEMAKEY, FlowTableType.Runs.name(), FieldKey.fromParts("rowId"), run.getRowId());
}
}
8 changes: 8 additions & 0 deletions flow/src/org/labkey/flow/data/FlowRun.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -31,6 +31,8 @@
import org.labkey.api.exp.api.ExpRun;
import org.labkey.api.exp.api.ExpRunAttachmentParent;
import org.labkey.api.exp.api.ExperimentService;
import org.labkey.api.query.FieldKey;
import org.labkey.api.query.QueryRowReference;
import org.labkey.api.query.QueryService;
import org.labkey.api.security.User;
import org.labkey.api.view.ActionURL;
Expand DownExpand Up@@ -335,6 +337,12 @@ public ActionURL urlDownload()
return urlFor(RunController.DownloadAction.class);
}

@Override
public QueryRowReference getQueryRowReference()
{
return new QueryRowReference(getContainer(), FlowSchema.SCHEMAKEY, FlowTableType.Runs.name(), FieldKey.fromParts("RowId"), getRunId());
}

public String getLabel()
{
return getName();
Expand Down
Loading