Bin bin = bins.get(index); while (bin == null) { bin = new Bin(); if (!bins.compareAndSet(index, null, bin)) { // some other thread already set the bin in the meantime bin = bins.get(index); } } // use bin as usual
/** * Convert this GATKBin to a normal bin, for processing with the standard BAM query interface. * @return */ public Bin toBin() { return new Bin(referenceSequence,binNumber); }
double value = 22.7; Bin bin = new Bin("mybin", (Object) value);
Bin bin = bins.updateAndGet(index, oldBin -> oldBin == null ? new Bin() : oldBin); // use bin as usual
for (int i = 0; i < items.length; i++) { boolean added=false; for(Bin bin: list){ if(bin.addItem(items[i])){ added=true; break; } } if(!added){ Bin bin=new Bin(); bin.addItem(items[i]); list.add(bin); } } return list;
Object a = new Bin(); Bin b = (Bin) a; // compiles and works Object a = new String("Hello world"); Bin b = (Bin) a; // compiles but fails at runtime with ClassCastException.
... private static final int INITIAL_BIN_COUNT = 5; private static final String BIN_PREFIX = "B"; private final List<Bin> myBins; public Warehouse(...) { .... myBins = initMyBins(); } private static List<Bin> initMyBins() { final List<Bin> result = new ArrayList<Bin>(INITIAL_BIN_COUNT); for(int i = 0; i < INITIAL_BIN_COUNT; i++) { result.add(new Bin(BIN_PREFIX+i)); } return result; } ...
/** * Gets the next bin in the provided BinList. * @return the next available bin in the BinList. */ public Bin next() { if(!hasNext()) throw new NoSuchElementException("This BinIterator is currently empty"); int currentBin = nextBin; nextBin = bins.nextSetBit(nextBin+1); return new Bin(referenceSequence,currentBin); }
/** * Gets the next bin in the provided BinList. * @return the next available bin in the BinList. */ @Override public Bin next() { if(!hasNext()) throw new NoSuchElementException("This BinIterator is currently empty"); int currentBin = nextBin; nextBin = bins.nextSetBit(nextBin+1); return new Bin(referenceSequence,currentBin); }
/** * Gets the next bin in the provided BinList. * @return the next available bin in the BinList. */ @Override public Bin next() { if(!hasNext()) throw new NoSuchElementException("This BinIterator is currently empty"); int currentBin = nextBin; nextBin = bins.nextSetBit(nextBin+1); return new Bin(referenceSequence,currentBin); }
import java.util.*; public class Warehouse { // Declare instance variables here private static final int INITIAL_BINS = 5; private static final String DEFAULT_BINNAME = "DefaultBin_"; public Warehouse( int binMax ) { myBinMax = binMax; myCatalog = new ArrayList<MusicMedia>(); myBins = new ArrayList<Bin>( INITIAL_BINS ); for(int i = 0; i < INITIAL_BINS; i++) { myBins.add( new Bin( DEFAULT_BINNAME + i ) ); //addBin();// This is fine too depends on how flexible you want naming to be:) } } public void addBin() { myBins.add( new Bin( "B" + myBins.size() ) ); } }
Key key = new Key("test", "some-floats", "float-001"); Bin bin = new Bin("a-float", 3.14159f); this.client.put(null, key, bin); Record record = this.client.get(null, key, "a-float"); double pi = record.getFloat("a-float"); System.out.println("Float:"+pi);
private Bin loadBin(final int referenceSequenceIndex, final LittleEndianInputStream dis) throws IOException { final int binNumber = dis.readInt(); final Bin ret = new Bin(referenceSequenceIndex, binNumber); final int numChunks = dis.readInt(); final List<Chunk> chunkList = new ArrayList<Chunk>(numChunks); for (int i = 0; i < numChunks; ++i) { chunkList.add(loadChunk(dis)); } ret.setChunkList(chunkList); return ret; }
private Bin loadBin(final int referenceSequenceIndex, final LittleEndianInputStream dis) throws IOException { final int binNumber = dis.readInt(); final Bin ret = new Bin(referenceSequenceIndex, binNumber); final int numChunks = dis.readInt(); final List<Chunk> chunkList = new ArrayList<Chunk>(numChunks); for (int i = 0; i < numChunks; ++i) { chunkList.add(loadChunk(dis)); } ret.setChunkList(chunkList); return ret; }
private Bin loadBin(final int referenceSequenceIndex, final LittleEndianInputStream dis) throws IOException { final int binNumber = dis.readInt(); final Bin ret = new Bin(referenceSequenceIndex, binNumber); final int numChunks = dis.readInt(); final List<Chunk> chunkList = new ArrayList<Chunk>(numChunks); for (int i = 0; i < numChunks; ++i) { chunkList.add(loadChunk(dis)); } ret.setChunkList(chunkList); return ret; }
@Test public void testEmptyBin() { // Construct a new empty bin and ensure that the bin list is empty, not null. Bin bin = new Bin(1,4681); Assert.assertEquals(bin.getChunkList(),Collections.<Chunk>emptyList(),"getChunkList() in an empty bin should return an empty list."); } }
@Test public void testLevelForBin() { final SRAIndex index = getIndex(DEFAULT_ACCESSION); final Bin bin = new Bin(0, SRA_BIN_OFFSET); Assert.assertEquals(index.getLevelForBin(bin), LAST_BIN_LEVEL); }
@Test(dataProvider = "testBinLocuses") public void testBinLocuses(SRAAccession acc, int reference, int binIndex, int firstLocus, int lastLocus) { final SRAIndex index = getIndex(acc); final Bin bin = new Bin(reference, SRA_BIN_OFFSET + binIndex); Assert.assertEquals(index.getFirstLocusInBin(bin), firstLocus); Assert.assertEquals(index.getLastLocusInBin(bin), lastLocus); }
chunks = Collections.emptyList(); final Bin bin = new Bin(referenceSequence, indexBin); bin.setChunkList(chunks); bin.setLastChunk(lastChunk);
bin = bins[binNum]; } else { bin = new Bin(referenceSequence, binNum); bins[binNum] = bin; binsSeen++;