## org.das2.qds.JoinDataSet

Create a higher rank dataset with dim 0 being a JOIN dimension. Join implies that the joined datasets occupy the same physical dimension, and this can be thought of as the "array of" index. Note DEPEND_0 is treated as a special case of join. Note this dataset is mutable, and clients should not mutate it once the reference is made public.

## JoinDataSet( int rank )

Creates a new instance of JoinDataSet

## JoinDataSet( QDataSet ds1 )

create a new JoinDataSet, and join the first dataset.

>     ds1= Ops.rand(30);
>     jds= new JoinDataSet( ds1 );
>     assert( ds1.rank()==1 );
>     assert( jds.rank()==2 );
>     assert( jds.slice(0).equals(ds1) );

## copy

copy( org.das2.qds.JoinDataSet joinDataSet ) → org.das2.qds.JoinDataSet

copy the JoinDataSet without copying each dataset it contains.

### Parameters

joinDataSet - another JoinDataSet

### Returns:

a copy of the dataset.
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## deepCopy

Deprecated: see WritableJoinDataSet

## join

join( QDataSet ds ) → void

add the dataset to this set of joined datasets.

### Parameters

ds - rank N-1 dataset where N is the rank of this JoinDataSet.

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## join

join( int index, QDataSet ds ) → void

set the dataset at the index. This must be used sequentially.

### Parameters

index - the index of the dataset
ds - the dataset

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## joinAll

joinAll( org.das2.qds.JoinDataSet ds1 ) → void

copy all the records into this JoinDataSet. Note this is a shallow copy, and changes to one of the element datasets is visible in both JoinDataSets. TODO: this is probably under implemented, for example element properties.

### Parameters

ds1 - a JoinDataSet

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## length

length( ) → int

### Returns:

int
[search for examples] [view on GitHub] [view on old javadoc] [view source]
length( int i0 ) → int [view source]
length( int i0, int i1 ) → int [view source]
length( int i0, int i1, int i2 ) → int [view source]

## property

property( String name, int i0 ) → Object

### Parameters

name - a String
i0 - an int

### Returns:

java.lang.Object
[search for examples] [view on GitHub] [view on old javadoc] [view source]
property( String name ) → Object [view source]

## putProperty

putProperty( String name, Object value ) → void

We override putProperty here because we remove the JOIN_0 if DEPEND_0 is set.

### Parameters

name - a String
value - an Object

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## rank

rank( ) → int

### Returns:

int
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## slice

slice( int idx ) → QDataSet

slice the dataset by returning the joined dataset at this index. If the dataset is a MutablePropertiesDataSet, then add the properties of this join dataset to it. The result is made a mutable properties dataset if it is not already, the danger here is that we may mutate the original data. Capabilities will fix this.

### Parameters

idx - the index for the slice

### Returns:

the rank N-1 slice at the position.
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## toString

toString( ) → String

### Returns:

java.lang.String
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## trim

trim( int imin, int imax ) → org.das2.qds.JoinDataSet

### Parameters

imin - an int
imax - an int

### Returns:

org.das2.qds.JoinDataSet
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## value

value( int i0 ) → double

### Parameters

i0 - an int

### Returns:

double
[search for examples] [view on GitHub] [view on old javadoc] [view source]
value( int i0, int i1 ) → double [view source]
value( int i0, int i1, int i2 ) → double [view source]
value( int i0, int i1, int i2, int i3 ) → double [view source]