2.17.2: 2011-06-17

net.sf.basedb.core
Class DynamicSpotQuery

java.lang.Object
  extended by net.sf.basedb.core.AbstractQuery
      extended by net.sf.basedb.core.AbstractSqlQuery
          extended by net.sf.basedb.core.DynamicQuery
              extended by net.sf.basedb.core.DynamicSpotQuery
All Implemented Interfaces:
Query, SqlQuery

public class DynamicSpotQuery
extends DynamicQuery

Represents a query for spot information in the dynamic database. A single query object may query against data in one bioassayset at a time. Use factory methods in the Dynamic class to join other tables and create restrictions based on the data in those tables. You may of course also use the regular expressions and restrictions from the Expressions, Restrictions and other classes.

This type of query is executed by the AbstractSqlQuery.iterate(DbControl) method and returns the result as a DynamicResultIterator.

Version:
2.0
Author:
Nicklas
See Also:
BioAssaySet.getSpotData()
Last modified
$Date: 2010-04-20 10:02:16 +0200 (Tue, 20 Apr 2010) $

Field Summary
private  BioAssaySet bioAssaySet
           
private  Select[] defaultSelects
           
private  boolean disableRawJoinOnMergedData
           
private  Set<Object> joinedItems
           
 
Constructor Summary
DynamicSpotQuery(BioAssaySet bioAssaySet)
          Create a new dynamic query.
 
Method Summary
(package private)  Select[] getDefaultSelects()
          Default selection: column, postion, ch1, ch2, ...
 boolean getDisableRawJoinOnMergedData()
           
 JepFunction[] getJepFunctions(DbControl dc, boolean restrictions)
          The following JEP functions can be used: ch(n): ChannelFunction rawCh(n): RawChannelFunction pos(): PositionFunction rep(property): ReporterFunction score(reporter-list-id): ScoreFunction xtra(extra-value-id): ExtraValueFunction (if a bioassay set has been specified) raw(property): RawFunction inList(reporter-list-id): InReporterListFunction (only if restrictions=true) notInList(reporter-list-id): NotInReporterListFunction (only if restrictions=true)
 boolean hasDisabledRawJoin()
          Check if joining to raw data has been disabled.
 void joinExtraValue(ExtraValue extraValue, JoinType joinType)
          Join extra values in the query.
 void joinRawData(JoinType joinType)
          Join information about raw data in the query.
 void joinReporterList(ReporterList reporterList, JoinType joinType)
          Makes a join with a ReporterList
 void joinReporters(JoinType joinType)
          Join information about reporters in the query.
 void reset()
          Reset join information.
 void setAutoJoinType(JoinType joinType)
          Specify the join type of automatic joins.
 void setDisableRawJoinOnMergedData(boolean disable)
          Disable automatic and manual joining of raw data if the bioassay set contains merged data.
 
Methods inherited from class net.sf.basedb.core.DynamicQuery
getDataCube, getIntensityTransform, getRootAlias, getRootTable, getVirtualDb
 
Methods inherited from class net.sf.basedb.core.AbstractSqlQuery
bindLimits, count, getQueryType, iterate, parseParameters, setParameters
 
Methods inherited from class net.sf.basedb.core.AbstractQuery
addAutoJoiner, getCountQuery, getFirstResult, getMainQuery, getMaxResults, getParameterNames, getParameters, getParameterType, getParameterValue, getPermanentSelects, getQueryParameter, getQuerySection, getSelects, group, groupPermanent, hasParameterValue, having, havingPermanent, isCounting, isDistinct, isReadonly, isReturningTotalCount, join, joinPermanent, order, orderPermanent, postProcessQuery, resetTemporary, restrict, restrictPermanent, select, selectPermanent, setCounting, setDistinct, setFirstResult, setMaxResults, setParameter, setPermanentParameter, setReturnTotalCount, temporaryJoin, temporarySelect, toQl, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.sf.basedb.core.query.Query
addAutoJoiner, getFirstResult, getMaxResults, getParameterNames, getQueryParameter, getQuerySection, group, groupPermanent, hasParameterValue, having, havingPermanent, isCounting, isDistinct, isReadonly, isReturningTotalCount, join, joinPermanent, order, orderPermanent, restrict, restrictPermanent, select, selectPermanent, setDistinct, setFirstResult, setMaxResults, setParameter, setPermanentParameter, setReturnTotalCount, toQl
 

Field Detail

bioAssaySet

private final BioAssaySet bioAssaySet

disableRawJoinOnMergedData

private boolean disableRawJoinOnMergedData

defaultSelects

private Select[] defaultSelects

joinedItems

private Set<Object> joinedItems
Constructor Detail

DynamicSpotQuery

DynamicSpotQuery(BioAssaySet bioAssaySet)
Create a new dynamic query.

Parameters:
bioAssaySet - The bioassay set to query against
Method Detail

getDefaultSelects

Select[] getDefaultSelects()
Default selection: column, postion, ch1, ch2, ...

Specified by:
getDefaultSelects in class AbstractSqlQuery

reset

public void reset()
Reset join information.

Specified by:
reset in interface Query
Overrides:
reset in class AbstractQuery

getJepFunctions

public JepFunction[] getJepFunctions(DbControl dc,
                                     boolean restrictions)
The following JEP functions can be used:

Specified by:
getJepFunctions in class DynamicQuery
restrictions - If FALSE the metod should only return functions that can be used as Expression:s, otherwise it should return both expression and restriction functions
Since:
2.15

setDisableRawJoinOnMergedData

public void setDisableRawJoinOnMergedData(boolean disable)
Disable automatic and manual joining of raw data if the bioassay set contains merged data. Eg. if the BioAssaySet.getMaxRawMappingsForSpot() returns a value != 1. Note! Joins that have already been applied before this method is called are not disabled.

Since:
2.15

getDisableRawJoinOnMergedData

public boolean getDisableRawJoinOnMergedData()
Returns:
TRUE if joining raw data has been disabled for merged data

hasDisabledRawJoin

public boolean hasDisabledRawJoin()
Check if joining to raw data has been disabled. It is disabled only if BioAssaySet.getMaxRawMappingsForSpot() != 1 and getDisableRawJoinOnMergedData() == true

Returns:
TRUE if raw data join has been disabled, FALSE if not

joinReporters

public void joinReporters(JoinType joinType)
                   throws InvalidDataException
Join information about reporters in the query. Now it becomes possible to select reporter data or restrict the results based on reporter information.

Parameters:
joinType - The type of join. Can not be null.
Throws:
InvalidDataException - If joinType parameter is null.
See Also:
Dynamic.selectReporter(String), Dynamic.reporter(String)

joinReporterList

public void joinReporterList(ReporterList reporterList,
                             JoinType joinType)
Makes a join with a ReporterList

Parameters:
reporterList - To do the join on.
joinType - The join type to use.
See Also:
JoinType

joinRawData

public void joinRawData(JoinType joinType)
                 throws InvalidDataException
Join information about raw data in the query. Now it becomes possible to select raw data or restrict the results based on values in the raw data.

Parameters:
joinType - The type of join. Can not be null.
Throws:
InvalidDataException - If joinType parameter is null.
See Also:
Dynamic.selectRawData(String), Dynamic.rawData(String)

joinExtraValue

public void joinExtraValue(ExtraValue extraValue,
                           JoinType joinType)
                    throws InvalidDataException
Join extra values in the query. Now it becomes possible to select those extra values or use them for restrictions.

Parameters:
extraValue - The extra values to join. Can not be null.
joinType - The type of join. Can not be null.
Throws:
InvalidDataException - If any of the required parameters are null.
See Also:
Dynamic.select(ExtraValue, String), Dynamic.extraValue(ExtraValue)

setAutoJoinType

public void setAutoJoinType(JoinType joinType)
Specify the join type of automatic joins. The default join type is JoinType.LEFT. This setting doesn't affect joins that has been made directly to the query.

Parameters:
joinType - The type of the automatic joins

2.17.2: 2011-06-17