/** * <code>optional .openxc.DynamicField value = 2;</code> */ public Builder mergeValue(com.openxc.BinaryMessages.DynamicField value) { if (valueBuilder_ == null) { if (((bitField0_ & 0x00000002) == 0x00000002) && value_ != null && value_ != com.openxc.BinaryMessages.DynamicField.getDefaultInstance()) { value_ = com.openxc.BinaryMessages.DynamicField.newBuilder(value_).mergeFrom(value).buildPartial(); } else { value_ = value; } onChanged(); } else { valueBuilder_.mergeFrom(value); } bitField0_ |= 0x00000002; return this; } /**
/** * <code>optional .openxc.DynamicField event = 3;</code> */ public Builder mergeEvent(com.openxc.BinaryMessages.DynamicField value) { if (eventBuilder_ == null) { if (((bitField0_ & 0x00000004) == 0x00000004) && event_ != null && event_ != com.openxc.BinaryMessages.DynamicField.getDefaultInstance()) { event_ = com.openxc.BinaryMessages.DynamicField.newBuilder(event_).mergeFrom(value).buildPartial(); } else { event_ = value; } onChanged(); } else { eventBuilder_.mergeFrom(value); } bitField0_ |= 0x00000004; return this; } /**
private static BinaryMessages.DynamicField.Builder buildDynamicField( Object value) { BinaryMessages.DynamicField.Builder fieldBuilder = BinaryMessages.DynamicField.newBuilder(); if(value instanceof String) { fieldBuilder.setType(BinaryMessages.DynamicField.Type.STRING); fieldBuilder.setStringValue((String)value); } else if(value instanceof Number) { fieldBuilder.setType(BinaryMessages.DynamicField.Type.NUM); fieldBuilder.setNumericValue(((Number)value).doubleValue()); } else if(value instanceof Boolean) { fieldBuilder.setType(BinaryMessages.DynamicField.Type.BOOL); fieldBuilder.setBooleanValue((Boolean) value); } return fieldBuilder; }
@Test public void deserializeNoErrors() throws IOException, UnrecognizedMessageTypeException { BinaryMessages.VehicleMessage.Builder builder = BinaryMessages.VehicleMessage.newBuilder(); builder.setType(BinaryMessages.VehicleMessage.Type.SIMPLE); BinaryMessages.SimpleMessage.Builder messageBuilder = BinaryMessages.SimpleMessage.newBuilder(); messageBuilder.setName(messageName); BinaryMessages.DynamicField.Builder fieldBuilder = BinaryMessages.DynamicField.newBuilder(); fieldBuilder.setType(BinaryMessages.DynamicField.Type.NUM); fieldBuilder.setNumericValue(42); messageBuilder.setValue(fieldBuilder); builder.setSimpleMessage(messageBuilder); BinaryMessages.VehicleMessage serialized = builder.build(); ByteArrayOutputStream output = new ByteArrayOutputStream(); serialized.writeTo(output); InputStream input = new ByteArrayInputStream(output.toByteArray()); try { message = (SimpleVehicleMessage) BinaryFormatter.deserialize(input); } catch(UnrecognizedMessageTypeException e) {} assertEquals(message.getName(), messageName); assertEquals(message.getValue(), value); }
@Test(expected=UnrecognizedMessageTypeException.class) public void deserializeWellFormedButConfusedMessage() throws IOException, UnrecognizedMessageTypeException { // Build a simple message that's missing a name BinaryMessages.VehicleMessage.Builder builder = BinaryMessages.VehicleMessage.newBuilder(); builder.setType(BinaryMessages.VehicleMessage.Type.SIMPLE); BinaryMessages.SimpleMessage.Builder messageBuilder = BinaryMessages.SimpleMessage.newBuilder(); BinaryMessages.DynamicField.Builder fieldBuilder = BinaryMessages.DynamicField.newBuilder(); fieldBuilder.setType(BinaryMessages.DynamicField.Type.NUM); fieldBuilder.setNumericValue(42); messageBuilder.setValue(fieldBuilder); builder.setSimpleMessage(messageBuilder); BinaryMessages.VehicleMessage serialized = builder.build(); ByteArrayOutputStream output = new ByteArrayOutputStream(); serialized.writeTo(output); InputStream input = new ByteArrayInputStream(output.toByteArray()); BinaryFormatter.deserialize(input); }
public Builder newBuilderForType() { return newBuilder(); } public static Builder newBuilder() {