public PListEntry copy() { return new PListEntry(this.entry, this.byteSequence, locator); } }
@Override public MessageReference next() { try { PListEntry entry = iterator.next(); Message message = getMessage(entry.getByteSequence()); message.getMessageId().setPlistLocator(entry.getLocator()); return message; } catch (IOException e) { LOG.error("I/O error", e); throw new RuntimeException(e); } }
@Test public void testAddFirst() throws Exception { final int COUNT = 1000; LinkedList<ByteSequence> list = new LinkedList<ByteSequence>(); for (int i = 0; i < COUNT; i++) { String test = new String("test" + i); ByteSequence bs = new ByteSequence(test.getBytes()); list.addFirst(bs); plist.addFirst(test, bs); } assertEquals(plist.size(), COUNT); PList.PListIterator actual = plist.iterator(); Iterator<ByteSequence> expected = list.iterator(); while (expected.hasNext()) { ByteSequence bs = expected.next(); assertTrue(actual.hasNext()); PListEntry entry = actual.next(); String origStr = new String(bs.getData(), bs.getOffset(), bs.getLength()); String plistString = new String(entry.getByteSequence().getData(), entry.getByteSequence().getOffset(), entry.getByteSequence().getLength()); assertEquals(origStr, plistString); } assertFalse(actual.hasNext()); }
protected void doTestRemove(final int COUNT) throws IOException { Map<String, ByteSequence> map = new LinkedHashMap<String, ByteSequence>(); for (int i = 0; i < COUNT; i++) { String test = new String("test" + i); ByteSequence bs = new ByteSequence(test.getBytes()); map.put(test, bs); plist.addLast(test, bs); } assertEquals(plist.size(), COUNT); PListEntry entry = getFirst(plist); while (entry != null) { plist.remove(entry.getLocator()); entry = getFirst(plist); } assertEquals(0,plist.size()); }
@Test public void testAddLast() throws Exception { final int COUNT = 1000; LinkedList<ByteSequence> list = new LinkedList<ByteSequence>(); for (int i = 0; i < COUNT; i++) { String test = new String("test" + i); ByteSequence bs = new ByteSequence(test.getBytes()); list.addLast(bs); plist.addLast(test, bs); } assertEquals(plist.size(), COUNT); PList.PListIterator actual = plist.iterator(); Iterator<ByteSequence> expected = list.iterator(); while (expected.hasNext()) { ByteSequence bs = expected.next(); assertTrue(actual.hasNext()); PListEntry entry = actual.next(); String origStr = new String(bs.getData(), bs.getOffset(), bs.getLength()); String plistString = new String(entry.getByteSequence().getData(), entry.getByteSequence().getOffset(), entry.getByteSequence().getLength()); assertEquals(origStr, plistString); } assertFalse(actual.hasNext()); }
@Override public PListEntry next() { Map.Entry<String, Location> entry = iterator.next(); ByteSequence bs = null; try { bs = store.getPayload(entry.getValue()); } catch (IOException unexpected) { NoSuchElementException e = new NoSuchElementException(unexpected.getLocalizedMessage()); e.initCause(unexpected); throw e; } return new PListEntry(entry.getKey(), bs, new Locator(entry.getKey())); }
@Override public MessageReference next() { try { PListEntry entry = iterator.next(); Message message = getMessage(entry.getByteSequence()); message.getMessageId().setPlistLocator(entry.getLocator()); return message; } catch (IOException e) { LOG.error("I/O error", e); throw new RuntimeException(e); } }
public PListEntry getLast() throws IOException { PListEntry result = null; final AtomicReference<Map.Entry<String, Location>> ref = new AtomicReference<Map.Entry<String, Location>>(); synchronized (indexLock) { this.store.getPageFile().tx().execute(new Transaction.Closure<IOException>() { @Override public void execute(Transaction tx) throws IOException { ref.set(getLast(tx)); } }); } if (ref.get() != null) { ByteSequence bs = this.store.getPayload(ref.get().getValue()); result = new PListEntry(ref.get().getKey(), bs, new Locator(ref.get().getKey())); } return result; }
@Override public MessageReference next() { try { PListEntry entry = iterator.next(); Message message = getMessage(entry.getByteSequence()); message.getMessageId().setPlistLocator(entry.getLocator()); return message; } catch (IOException e) { LOG.error("I/O error", e); throw new RuntimeException(e); } }
public PListEntry getFirst() throws IOException { PListEntry result = null; final AtomicReference<Map.Entry<String, Location>> ref = new AtomicReference<Map.Entry<String, Location>>(); synchronized (indexLock) { this.store.getPageFile().tx().execute(new Transaction.Closure<IOException>() { @Override public void execute(Transaction tx) throws IOException { ref.set(getFirst(tx)); } }); } if (ref.get() != null) { ByteSequence bs = this.store.getPayload(ref.get().getValue()); result = new PListEntry(ref.get().getKey(), bs, new Locator(ref.get().getKey())); } return result; }
@Override public MessageReference next() { try { PListEntry entry = iterator.next(); Message message = getMessage(entry.getByteSequence()); message.getMessageId().setPlistLocator(entry.getLocator()); return message; } catch (IOException e) { LOG.error("I/O error", e); throw new RuntimeException(e); } }
public PListEntry get(final long position) throws IOException { PListEntry result = null; final AtomicReference<Map.Entry<String, Location>> ref = new AtomicReference<Map.Entry<String, Location>>(); synchronized (indexLock) { this.store.getPageFile().tx().execute(new Transaction.Closure<IOException>() { @Override public void execute(Transaction tx) throws IOException { Iterator<Map.Entry<String, Location>> iterator = iterator(tx, position); ref.set(iterator.next()); } }); } if (ref.get() != null) { ByteSequence bs = this.store.getPayload(ref.get().getValue()); result = new PListEntry(ref.get().getKey(), bs, new Locator(ref.get().getKey())); } return result; }
public PListEntry copy() { return new PListEntry(this.entry, this.byteSequence, locator); } }
public PListEntry copy() { return new PListEntry(this.entry, this.byteSequence, locator); } }
public PListEntry copy() { return new PListEntry(this.entry, this.byteSequence, locator); } }
@Override public PListEntry next() { Map.Entry<String, Location> entry = iterator.next(); ByteSequence bs = null; try { bs = store.getPayload(entry.getValue()); } catch (IOException unexpected) { NoSuchElementException e = new NoSuchElementException(unexpected.getLocalizedMessage()); e.initCause(unexpected); throw e; } return new PListEntry(entry.getKey(), bs, new Locator(entry.getKey())); }
@Override public PListEntry next() { Map.Entry<String, Location> entry = iterator.next(); ByteSequence bs = null; try { bs = store.getPayload(entry.getValue()); } catch (IOException unexpected) { NoSuchElementException e = new NoSuchElementException(unexpected.getLocalizedMessage()); e.initCause(unexpected); throw e; } return new PListEntry(entry.getKey(), bs, new Locator(entry.getKey())); }
@Override public PListEntry next() { Map.Entry<String, Location> entry = iterator.next(); ByteSequence bs = null; try { bs = store.getPayload(entry.getValue()); } catch (IOException unexpected) { NoSuchElementException e = new NoSuchElementException(unexpected.getLocalizedMessage()); e.initCause(unexpected); throw e; } return new PListEntry(entry.getKey(), bs, new Locator(entry.getKey())); }
public PListEntry getFirst() throws IOException { PListEntry result = null; final AtomicReference<Map.Entry<String, Location>> ref = new AtomicReference<Map.Entry<String, Location>>(); synchronized (indexLock) { this.store.getPageFile().tx().execute(new Transaction.Closure<IOException>() { @Override public void execute(Transaction tx) throws IOException { ref.set(getFirst(tx)); } }); } if (ref.get() != null) { ByteSequence bs = this.store.getPayload(ref.get().getValue()); result = new PListEntry(ref.get().getKey(), bs, new Locator(ref.get().getKey())); } return result; }
public PListEntry getLast() throws IOException { PListEntry result = null; final AtomicReference<Map.Entry<String, Location>> ref = new AtomicReference<Map.Entry<String, Location>>(); synchronized (indexLock) { this.store.getPageFile().tx().execute(new Transaction.Closure<IOException>() { @Override public void execute(Transaction tx) throws IOException { ref.set(getLast(tx)); } }); } if (ref.get() != null) { ByteSequence bs = this.store.getPayload(ref.get().getValue()); result = new PListEntry(ref.get().getKey(), bs, new Locator(ref.get().getKey())); } return result; }