test_class.declarator: store1
test_class.modifier: private
test_class.original_string: private MemBlobStore        store1;
test_class.type: MemBlobStore
test_class.var_name: store1
test_class.declarator: store2
test_class.modifier: private
test_class.original_string: private MemBlobStore        store2;
test_class.type: MemBlobStore
test_class.var_name: store2
test_class.declarator: store
test_class.modifier: private
test_class.original_string: private AbstractMuxStore    store;
test_class.type: AbstractMuxStore
test_class.var_name: store
test_class.declarator: con
test_class.modifier: private
test_class.original_string: private TestConnection      con;
test_class.type: TestConnection
test_class.var_name: con
test_class.declarator: s1Hint
test_class.modifier: private
test_class.original_string: private Map<String, String> s1Hint;
test_class.type: Map<String, String>
test_class.var_name: s1Hint
test_class.declarator: s2Hint
test_class.modifier: private
test_class.original_string: private Map<String, String> s2Hint;
test_class.type: Map<String, String>
test_class.var_name: s2Hint
test_class.file: akubra-mux/src/test/java/org/akubraproject/mux/AbstractMuxConnectionTest.java
test_class.identifier: AbstractMuxConnectionTest
test_case.body: @Test
    public void testListBlobIds() throws IOException {
      for (Iterator<URI> it = con.listBlobIds(null); it.hasNext();)
        con.getBlob(it.next(), null).delete();
  
      assertFalse(con.listBlobIds(null).hasNext());
  
      Blob b1 = con.getBlob(null, s1Hint);
      Blob b2 = con.getBlob(null, s2Hint);
  
      b1.openOutputStream(0, true).close();
      b2.openOutputStream(0, true).close();
  
      Set<Blob> blobs = new HashSet<Blob>();
  
      for (Iterator<URI> it = con.listBlobIds(null); it.hasNext();)
        blobs.add(con.getBlob(it.next(), null));
  
      assertEquals(2, blobs.size());
      assertTrue(blobs.contains(b1));
      assertTrue(blobs.contains(b2));
  
      for (Blob b : new Blob[] { b1, b2 }) {
        blobs = new HashSet<Blob>();
  
        for (Iterator<URI> it = con.listBlobIds(b.getId().toString()); it.hasNext();)
          blobs.add(con.getBlob(it.next(), null));
  
        assertEquals(1, blobs.size());
        assertTrue(blobs.contains(b));
      }
    }
test_case.class_method_signature: AbstractMuxConnectionTest.testListBlobIds()
test_case.full_signature: @Test public void testListBlobIds()
test_case.identifier: testListBlobIds
test_case.invocations: listBlobIds hasNext delete getBlob next assertFalse hasNext listBlobIds getBlob getBlob close openOutputStream close openOutputStream listBlobIds hasNext add getBlob next assertEquals size assertTrue contains assertTrue contains listBlobIds toString getId hasNext add getBlob next assertEquals size assertTrue contains
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testListBlobIds()
focal_class.declarator: log = LoggerFactory.getLogger(AbstractBlobStoreConnection.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(AbstractBlobStoreConnection.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: txn
focal_class.modifier: protected final
focal_class.original_string: protected final Transaction txn;
focal_class.type: Transaction
focal_class.var_name: txn
focal_class.declarator: cons = new HashMap<URI, BlobStoreConnection>()
focal_class.modifier: protected
focal_class.original_string: protected Map<URI, BlobStoreConnection> cons = new HashMap<URI, BlobStoreConnection>();
focal_class.type: Map<URI, BlobStoreConnection>
focal_class.var_name: cons
focal_class.file: akubra-mux/src/main/java/org/akubraproject/mux/AbstractMuxConnection.java
focal_class.identifier: AbstractMuxConnection
focal_class.class_method_signature: AbstractMuxConnection.AbstractMuxConnection(BlobStore store, Transaction txn)
focal_class.full_signature: public  AbstractMuxConnection(BlobStore store, Transaction txn)
focal_class.identifier: AbstractMuxConnection
focal_class.modifiers: public
focal_class.parameters: (BlobStore store, Transaction txn)
focal_class.signature:  AbstractMuxConnection(BlobStore store, Transaction txn)
focal_class.class_method_signature: AbstractMuxConnection.getStore(URI blobId, Map<String, String> hints)
focal_class.full_signature: public abstract BlobStore getStore(URI blobId, Map<String, String> hints)
focal_class.identifier: getStore
focal_class.modifiers: public abstract
focal_class.parameters: (URI blobId, Map<String, String> hints)
focal_class.return: BlobStore
focal_class.signature: BlobStore getStore(URI blobId, Map<String, String> hints)
focal_class.class_method_signature: AbstractMuxConnection.getStores(String prefix)
focal_class.full_signature: public Set<BlobStore> getStores(String prefix)
focal_class.identifier: getStores
focal_class.modifiers: public
focal_class.parameters: (String prefix)
focal_class.return: Set<BlobStore>
focal_class.signature: Set<BlobStore> getStores(String prefix)
focal_class.class_method_signature: AbstractMuxConnection.close()
focal_class.full_signature: @Override public void close()
focal_class.identifier: close
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void close()
focal_class.class_method_signature: AbstractMuxConnection.getConnection(BlobStore store, Map<String, String> hints)
focal_class.full_signature: protected BlobStoreConnection getConnection(BlobStore store, Map<String, String> hints)
focal_class.identifier: getConnection
focal_class.modifiers: protected
focal_class.parameters: (BlobStore store, Map<String, String> hints)
focal_class.return: BlobStoreConnection
focal_class.signature: BlobStoreConnection getConnection(BlobStore store, Map<String, String> hints)
focal_class.class_method_signature: AbstractMuxConnection.getBlob(URI blobId, Map<String, String> hints)
focal_class.full_signature: @Override public Blob getBlob(URI blobId, Map<String, String> hints)
focal_class.identifier: getBlob
focal_class.modifiers: @Override public
focal_class.parameters: (URI blobId, Map<String, String> hints)
focal_class.return: Blob
focal_class.signature: Blob getBlob(URI blobId, Map<String, String> hints)
focal_class.class_method_signature: AbstractMuxConnection.listBlobIds(String filterPrefix)
focal_class.full_signature: @Override public Iterator<URI> listBlobIds(String filterPrefix)
focal_class.identifier: listBlobIds
focal_class.modifiers: @Override public
focal_class.parameters: (String filterPrefix)
focal_class.return: Iterator<URI>
focal_class.signature: Iterator<URI> listBlobIds(String filterPrefix)
focal_class.class_method_signature: AbstractMuxConnection.sync()
focal_class.full_signature: @Override public void sync()
focal_class.identifier: sync
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void sync()
focal_class.superclass: extends AbstractBlobStoreConnection
focal_method.body: @Override
    public Iterator<URI> listBlobIds(String filterPrefix) throws IOException {
      List<Iterator<URI>> iterators = new ArrayList<Iterator<URI>>();
  
      for (BlobStore store : getStores(filterPrefix))
        iterators.add(getConnection(store, null).listBlobIds(filterPrefix));
  
      return Iterators.concat(iterators.iterator());
    }
focal_method.class_method_signature: AbstractMuxConnection.listBlobIds(String filterPrefix)
focal_method.full_signature: @Override public Iterator<URI> listBlobIds(String filterPrefix)
focal_method.identifier: listBlobIds
focal_method.invocations: getStores add listBlobIds getConnection concat iterator
focal_method.modifiers: @Override public
focal_method.parameters: (String filterPrefix)
focal_method.return: Iterator<URI>
focal_method.signature: Iterator<URI> listBlobIds(String filterPrefix)