/** * {@inheritDoc} */ @Override public Iterable<IoBuffer> getIoBuffers() { if (bas.isEmpty()) { return Collections.emptyList(); } Collection<IoBuffer> result = new ArrayList<>(); Node node = bas.getFirst(); for (IoBuffer bb : node.getByteArray().getIoBuffers()) { result.add(bb); } while (node.hasNextNode()) { node = node.getNextNode(); for (IoBuffer bb : node.getByteArray().getIoBuffers()) { result.add(bb); } } return result; }
/** * Gets the previous node. * * @return the previous node */ public Node getPreviousNode() { if ( !hasPreviousNode() ) { throw new NoSuchElementException(); } return previous; }
if ( componentNode != null && componentNode.isRemoved() ) if ( listener != null ) listener.enteredFirstComponent( componentIndex, componentNode.getByteArray() ); componentIndex = last() - componentNode.getByteArray().last(); if ( listener != null ) listener.enteredLastComponent( componentIndex, componentNode.getByteArray() ); componentNode = componentNode.getPreviousNode(); componentIndex -= componentNode.getByteArray().last(); if ( listener != null ) listener.enteredPreviousComponent( componentIndex, componentNode.getByteArray() ); while ( index >= componentIndex + componentNode.getByteArray().length() ) componentIndex += componentNode.getByteArray().last(); componentNode = componentNode.getNextNode(); if ( listener != null ) listener.enteredNextComponent( componentIndex, componentNode.getByteArray() ); componentCursor = componentNode.getByteArray().cursor( internalComponentIndex );
private void prepareForAccess(int accessSize) { if (componentNode != null && componentNode.isRemoved()) { componentNode = null; componentCursor = null; listener.enteredFirstComponent(componentIndex, componentNode.getByteArray()); componentIndex = last() - componentNode.getByteArray().last(); listener.enteredLastComponent(componentIndex, componentNode.getByteArray()); componentNode = componentNode.getPreviousNode(); componentIndex -= componentNode.getByteArray().last(); listener.enteredPreviousComponent(componentIndex, componentNode.getByteArray()); while (index >= componentIndex + componentNode.getByteArray().length()) { componentIndex += componentNode.getByteArray().last(); componentNode = componentNode.getNextNode(); listener.enteredNextComponent(componentIndex, componentNode.getByteArray()); } else { componentCursor = componentNode.getByteArray().cursor(internalComponentIndex);
private void prepareForAccess(int accessSize) { if (componentNode != null && componentNode.isRemoved()) { componentNode = null; componentCursor = null; listener.enteredFirstComponent(componentIndex, componentNode.getByteArray()); componentIndex = last() - componentNode.getByteArray().last(); listener.enteredLastComponent(componentIndex, componentNode.getByteArray()); componentNode = componentNode.getPreviousNode(); componentIndex -= componentNode.getByteArray().last(); listener.enteredPreviousComponent(componentIndex, componentNode.getByteArray()); while (index >= componentIndex + componentNode.getByteArray().length()) { componentIndex += componentNode.getByteArray().last(); componentNode = componentNode.getNextNode(); listener.enteredNextComponent(componentIndex, componentNode.getByteArray()); } else { componentCursor = componentNode.getByteArray().cursor(internalComponentIndex);
ByteArray ba = node.getByteArray(); ByteArray component = node.getByteArray(); bas.removeLast(); component.free();
ByteArray ba = firstNode.getByteArray(); ByteArray component = node.getByteArray(); bas.removeLast(); component.free();
ByteArray ba = firstNode.getByteArray(); ByteArray component = node.getByteArray(); bas.removeLast(); component.free();
/** * @inheritDoc */ public Iterable<IoBuffer> getIoBuffers() { if ( bas.isEmpty() ) { return Collections.emptyList(); } Collection<IoBuffer> result = new ArrayList<>(); Node node = bas.getFirst(); for ( IoBuffer bb : node.getByteArray().getIoBuffers() ) { result.add( bb ); } while ( node.hasNextNode() ) { node = node.getNextNode(); for ( IoBuffer bb : node.getByteArray().getIoBuffers() ) { result.add( bb ); } } return result; }
/** * {@inheritDoc} */ @Override public Iterable<IoBuffer> getIoBuffers() { if (bas.isEmpty()) { return Collections.emptyList(); } Collection<IoBuffer> result = new ArrayList<>(); Node node = bas.getFirst(); for (IoBuffer bb : node.getByteArray().getIoBuffers()) { result.add(bb); } while (node.hasNextNode()) { node = node.getNextNode(); for (IoBuffer bb : node.getByteArray().getIoBuffers()) { result.add(bb); } } return result; }
/** * Gets the next node. * * @return the next node */ public Node getNextNode() { if ( !hasNextNode() ) { throw new NoSuchElementException(); } return next; }
/** * @inheritDoc */ public void order( ByteOrder order ) { if ( order == null || !order.equals( this.order ) ) { this.order = order; if ( !bas.isEmpty() ) { for ( Node node = bas.getFirst(); node.hasNextNode(); node = node.getNextNode() ) { node.getByteArray().order( order ); } } } }
/** * {@inheritDoc} */ @Override public void order(ByteOrder order) { if (order == null || !order.equals(this.order)) { this.order = order; if (!bas.isEmpty()) { for (Node node = bas.getFirst(); node.hasNextNode(); node = node.getNextNode()) { node.getByteArray().order(order); } } } }
/** * Add the specified {@link ByteArray} to * the end of the list * * @param ba * The ByteArray to be added to the list */ public void addLast( ByteArray ba ) { addNode( new Node( ba ), header ); lastByte += ba.last(); }
/** * Adds the specified {@link ByteArray} to * the beginning of the list * * @param ba * The ByteArray to be added to the list */ public void addFirst( ByteArray ba ) { addNode( new Node( ba ), header.next ); firstByte -= ba.last(); }
/** * Returns the first {@link ByteArray} in the list * * @return * The first ByteArray in the list */ public ByteArray getFirst() { if ( bas.isEmpty() ) { return null; } return bas.getFirst().getByteArray(); }
/** * Add the specified {@link ByteArray} to * the end of the list * * @param ba * The ByteArray to be added to the list */ public void addLast(ByteArray ba) { addNode(new Node(ba), header); lastByte += ba.last(); }
/** * Adds the specified {@link ByteArray} to * the beginning of the list * * @param ba * The ByteArray to be added to the list */ public void addFirst(ByteArray ba) { addNode(new Node(ba), header.next); firstByte -= ba.last(); }
/** * * Creates a new instance of ByteArrayList. * */ protected ByteArrayList() { header = new Node(); }
/** * Gets the previous node. * * @return the previous node */ public Node getPreviousNode() { if (!hasPreviousNode()) { throw new NoSuchElementException(); } return previous; }