@Override public Record nextRecord(Record record) throws IOException { if (it.hasNext()) { record.clear(); Object b = it.next(); // check whether the record field is one-dimensional or multi-dimensional if (b.getClass().isArray()) { for (Object s : (Object[]) b) { record.addField(ValueUtil.toStratosphere(s)); } } else if (b instanceof Collection) { @SuppressWarnings("unchecked") Iterator<Object> tmpIter = ((Collection<Object>) b).iterator(); while (tmpIter.hasNext()) { Object s = tmpIter.next(); record.addField(ValueUtil.toStratosphere(s)); } } else { record.setField(0, ValueUtil.toStratosphere(b)); } return record; } else { return null; } }
reuse.clear(); reuse.setField(this.pos, str); return reuse;
@Override public Record readRecord(Record target, byte[] bytes, int offset, int numBytes) { String str = new String(bytes, offset, numBytes); String[] tokens = SEPARATOR.split(str); long vertexID = Long.parseLong(tokens[0]); boolean isDangling = tokens.length > 1 && Integer.parseInt(tokens[1]) == 1; target.clear(); target.addField(new LongValue(vertexID)); target.addField(initialRank); target.addField(new BooleanValue(isDangling)); return target; } }
while (!this.taskCanceled && !inFormat.reachedEnd()) { typedRecord.clear(); Record returnedRecord = null; if ((returnedRecord = inFormat.nextRecord(typedRecord)) != null) { typedRecord.clear(); if ((typedRecord = inFormat.nextRecord(typedRecord)) != null) { typedRecord.clear(); if ((typedRecord = inFormat.nextRecord(typedRecord)) != null){ output.collect(typedRecord);
while (!this.taskCanceled && !inFormat.reachedEnd()) { typedRecord.clear(); Record returnedRecord = null; if ((returnedRecord = inFormat.nextRecord(typedRecord)) != null) { typedRecord.clear(); if ((typedRecord = inFormat.nextRecord(typedRecord)) != null) { typedRecord.clear(); if ((typedRecord = inFormat.nextRecord(typedRecord)) != null){ output.collect(typedRecord);
target.clear(); target.addField(vertexID); target.addField(adjacentVertices);
target.clear(); target.addField(vertexID); target.addField(adjacentVertices);
@Override public Record readRecord(Record target, byte[] bytes, int offset, int numBytes) { arrayView.set(bytes, offset, numBytes); try { arrayView.next(); vertexID.setValue(arrayView.element()); if (arrayView.next()) { isDangling.set(arrayView.element() == DANGLING_MARKER); } else { isDangling.set(false); } } catch (NumberFormatException e) { throw new RuntimeException("Error parsing " + arrayView.toString(), e); } target.clear(); target.addField(vertexID); target.addField(initialRank); target.addField(isDangling); return target; } }
@Override public Record readRecord(Record target, byte[] bytes, int offset, int numBytes) { arrayView.set(bytes, offset, numBytes); try { arrayView.next(); vertexID.setValue(arrayView.element()); if (arrayView.next()) { isDangling.set(arrayView.element() == DANGLING_MARKER); } else { isDangling.set(false); } } catch (NumberFormatException e) { throw new RuntimeException("Error parsing " + arrayView.toString(), e); } target.clear(); target.addField(vertexID); target.addField(initialRank); target.addField(isDangling); return target; } }
@Test public void testClear() throws IOException { try { Record record = new Record(new IntValue(42)); record.write(out); Assert.assertEquals(42, record.getField(0, IntValue.class).getValue()); record.setField(0, new IntValue(23)); record.write(out); Assert.assertEquals(23, record.getField(0, IntValue.class).getValue()); record.clear(); Assert.assertEquals(0, record.getNumFields()); Record record2 = new Record(new IntValue(42)); record2.read(in); Assert.assertEquals(42, record2.getField(0, IntValue.class).getValue()); record2.read(in); Assert.assertEquals(23, record2.getField(0, IntValue.class).getValue()); } catch (Throwable t) { Assert.fail("Test failed due to an exception: " + t.getMessage()); } }