Skip to content
gerritjvv edited this page Feb 22, 2012 · 2 revisions

Simple schema definition over a byte array

Create a projection

Programatically

private Projection buildProjection() {

		Projection.Builder pbuilder = Projection.newBuilder();

		pbuilder.setName("TestTable");
		pbuilder.setId(100);
		pbuilder.setClientId(1);

		pbuilder.addColumn(Column.newBuilder().setName("a").setOrder(0)
				.setType(ProjectionColumnType.INT.toString())
				.setWidth(ProjectionColumnType.INT.getWidth()));

		pbuilder.addColumn(Column.newBuilder().setName("b").setOrder(1)
				.setType(ProjectionColumnType.LONG.toString())
				.setWidth(ProjectionColumnType.LONG.getWidth()));

		pbuilder.addColumn(Column.newBuilder().setName("c").setOrder(2)
				.setType(ProjectionColumnType.STRING.toString()).setWidth(4));

		pbuilder.addColumn(Column.newBuilder().setName("d").setOrder(3)
				.setType(ProjectionColumnType.DOUBLE.toString())
				.setWidth(ProjectionColumnType.DOUBLE.getWidth()));

		return pbuilder.build();
	}

Or Parser:

	String projectionStr = "TABLE mytable (a INT, b LONG, c STRING 100, d DOUBLE )";

		ProjectionLexer lexer = new ProjectionLexer(new ANTLRStringStream(
				projectionStr));
		ProjectionParser parser = new ProjectionParser(new CommonTokenStream(
				lexer));
		projection_return preturn = parser.projection();
		return preturn.builder.build();

Create the KeyWriterReader

Projection projection = buildProjection();

		KeyWriterReader kwr = new KeyWriterReader(projection);

		assertEquals(1, kwr.readClientId());
		assertEquals(100, kwr.readProjectionId());

		kwr.write("a", "10");
		kwr.write("b", "1");
		kwr.write("c", "1234");
		kwr.write("d", "0.234D");

		assertEquals(10, kwr.readInt("a"));
		assertEquals(1L, kwr.readLong("b"));
		assertEquals("1234", kwr.readString("c"));
		assertTrue(0.234D == kwr.readDouble("d"));

Clone this wiki locally