From 1789d545cdeaa00654fac05aced4caa0a700b140 Mon Sep 17 00:00:00 2001 From: Bernd Weymann Date: Tue, 4 Jun 2024 21:27:41 +0200 Subject: [PATCH] [MercedesMe] Switch to Mercedes App SDK (#15628) * add protocol buffer definitions * oauth rework * websocket introduction Signed-off-by: Bernd Weymann Signed-off-by: Ciprian Pascu --- .../org.openhab.binding.mercedesme/README.md | 1084 +- .../doc/CallbackUrl_Page.png | Bin 15947 -> 0 bytes .../doc/ElectricConsumptionUnits.png | Bin 0 -> 42412 bytes .../doc/ImageRestrictions.png | Bin 2831 -> 0 bytes .../doc/ImageView-CommandOptions.png | Bin 86776 -> 0 bytes .../doc/MBAccessRequest.png | Bin 240678 -> 0 bytes .../doc/MBDeveloper-Credentials.png | Bin 24010 -> 0 bytes .../doc/MBDeveloper-Subscriptions.png | Bin 20366 -> 0 bytes .../doc/MercedesMeConfiguration.png | Bin 33113 -> 0 bytes .../doc/OH-Step0.png | Bin 0 -> 32961 bytes .../doc/OH-Step1.png | Bin 0 -> 43706 bytes .../doc/OH-Step2.png | Bin 0 -> 20242 bytes .../doc/OH-Step3.png | Bin 0 -> 12784 bytes .../doc/OH-capabilities.png | Bin 0 -> 65229 bytes .../org.openhab.binding.mercedesme/pom.xml | 29 + .../proto/README.md | 7 + .../proto/acp.proto | 420 + .../proto/client.proto | 46 + .../proto/cluster.proto | 15 + .../proto/eventpush.proto | 22 + .../proto/gogo.proto | 144 + .../proto/google/protobuf/descriptor.proto | 1280 + .../proto/google/protobuf/struct.proto | 95 + .../proto/google/protobuf/wrappers.proto | 123 + .../proto/protos.proto | 136 + .../proto/service-activation.proto | 45 + .../proto/user-events.proto | 153 + .../proto/vehicle-commands.proto | 611 + .../proto/vehicle-events.proto | 457 + .../proto/vehicleapi.proto | 156 + .../proto/vin-events.proto | 9 + .../src/3rdparty/LICENSE | 21 + .../java/com/daimler/mbcarkit/proto/Acp.java | 5257 ++ .../com/daimler/mbcarkit/proto/Client.java | 5548 ++ .../com/daimler/mbcarkit/proto/Cluster.java | 736 + .../com/daimler/mbcarkit/proto/Eventpush.java | 1684 + .../com/daimler/mbcarkit/proto/Protos.java | 11252 ++++ .../mbcarkit/proto/ServiceActivation.java | 3527 ++ .../daimler/mbcarkit/proto/UserEvents.java | 14181 +++++ .../mbcarkit/proto/VehicleCommands.java | 47071 ++++++++++++++++ .../daimler/mbcarkit/proto/VehicleEvents.java | 34774 ++++++++++++ .../daimler/mbcarkit/proto/Vehicleapi.java | 13223 +++++ .../com/daimler/mbcarkit/proto/VinEvents.java | 849 + .../java/com/google/protobuf/GoGoProtos.java | 1146 + .../mercedesme/internal/Constants.java | 298 +- .../internal/MercedesMeHandlerFactory.java | 94 +- .../internal/MercedesMeMetadataAdjuster.java | 110 + .../internal/actions/VehicleActions.java | 94 + .../internal/config/AccountConfiguration.java | 45 +- .../internal/config/VehicleConfiguration.java | 10 +- .../discovery/MercedesMeDiscoveryService.java | 89 + .../mercedesme/internal/dto/PINRequest.java | 35 + .../internal/dto/TokenResponse.java | 38 + .../internal/handler/AccountHandler.java | 385 +- .../internal/handler/VehicleHandler.java | 1376 +- .../internal/server/AuthServer.java | 106 + .../internal/server/AuthService.java | 274 + .../internal/server/AuthServlet.java | 104 + .../internal/server/CallbackServer.java | 196 - .../internal/server/CallbackServlet.java | 73 - .../internal/server/MBWebsocket.java | 265 + .../mercedesme/internal/server/Utils.java | 92 - .../internal/utils/ChannelStateMap.java | 27 +- .../mercedesme/internal/utils/Mapper.java | 542 +- .../internal/utils/UOMObserver.java | 135 + .../mercedesme/internal/utils/Utils.java | 718 + .../resources/OH-INF/config/bev-config.xml | 41 - .../resources/OH-INF/config/bridge-config.xml | 53 +- .../resources/OH-INF/config/conv-config.xml | 41 - .../resources/OH-INF/config/hybrid-config.xml | 41 - .../OH-INF/i18n/mercedesme.properties | 429 +- .../OH-INF/thing/charge-channel-types.xml | 90 + .../resources/OH-INF/thing/charge-group.xml | 21 + ...el-types.xml => command-channel-types.xml} | 17 +- .../{image-group.xml => command-group.xml} | 10 +- .../OH-INF/thing/door-channel-types.xml | 52 +- .../resources/OH-INF/thing/doors-group.xml | 18 +- .../OH-INF/thing/hvac-channel-types.xml | 46 + .../resources/OH-INF/thing/hvac-group.xml | 19 + .../OH-INF/thing/image-channel-types.xml | 19 - .../OH-INF/thing/light-channel-types.xml | 44 - .../resources/OH-INF/thing/lights-group.xml | 18 - .../OH-INF/thing/lock-channel-types.xml | 39 +- .../resources/OH-INF/thing/lock-ev-group.xml | 17 + .../resources/OH-INF/thing/lock-group.xml | 12 +- ...l-group.xml => position-channel-group.xml} | 7 +- .../OH-INF/thing/position-channel-types.xml | 31 + .../OH-INF/thing/range-channel-types.xml | 62 +- .../OH-INF/thing/range-conv-channel-group.xml | 14 +- .../OH-INF/thing/range-ev-channel-group.xml | 16 +- .../thing/range-hybrid-channel-group.xml | 30 +- .../OH-INF/thing/service-channel-types.xml | 54 + .../OH-INF/thing/service-ev-group.xml | 17 + .../resources/OH-INF/thing/service-group.xml | 20 + .../main/resources/OH-INF/thing/thing-bev.xml | 15 +- .../OH-INF/thing/thing-combustion.xml | 14 +- .../resources/OH-INF/thing/thing-hybrid.xml | 15 +- .../OH-INF/thing/tires-channel-types.xml | 88 + .../resources/OH-INF/thing/tires-group.xml | 22 + .../OH-INF/thing/trip-channel-types.xml | 75 + .../OH-INF/thing/trip-conv-group.xml | 20 + .../resources/OH-INF/thing/trip-ev-group.xml | 20 + .../OH-INF/thing/trip-hybrid-group.xml | 23 + .../OH-INF/thing/vehicle-channel-types.xml | 92 + .../resources/OH-INF/thing/vehicle-group.xml | 20 + .../OH-INF/thing/window-channel-types.xml | 39 +- .../resources/OH-INF/thing/window-group.xml | 13 +- .../binding/mercedesme/ConfigurationTest.java | 72 - .../binding/mercedesme/FileReader.java | 47 + .../openhab/binding/mercedesme/ImageTest.java | 57 - .../openhab/binding/mercedesme/JsonTest.java | 250 - .../mercedesme/MetadataRegistryMock.java | 88 + .../binding/mercedesme/MetadataTest.java | 87 + .../openhab/binding/mercedesme/ProtoTest.java | 131 + .../binding/mercedesme/StatusTests.java | 145 + .../openhab/binding/mercedesme/UtilsTest.java | 119 + .../internal/handler/AccountHandlerMock.java | 94 + .../handler/LocationProviderMock.java | 32 + .../MercedesMeCommandOptionProviderMock.java | 55 + ...MeDynamicStateDescriptionProviderMock.java | 44 + .../internal/handler/ProtoConverter.java | 197 + .../handler/ThingCallbackListener.java | 163 + .../internal/handler/VehicleHandlerTest.java | 465 + .../src/test/resources/eqa-light-sample.json | 62 - .../src/test/resources/evstatus.json | 14 - .../src/test/resources/fuel.json | 14 - .../src/test/resources/image/ext.json | 13 - .../info/AttributeGroupDistribution.json | 110 + .../src/test/resources/info/CC-MB-B250e.json | 441 + .../src/test/resources/info/CC-MB-EQA.json | 480 + .../src/test/resources/info/FC-MB-B250e.json | 58 + .../src/test/resources/info/FC-MB-EQA.json | 57 + .../src/test/resources/invalid-key.json | 8 - .../src/test/resources/invalid-timestamp.json | 7 - .../test/resources/json/TokenResponse.json | 9 + .../src/test/resources/lock.json | 26 - .../src/test/resources/odo.json | 8 - .../proto-blob/MB-BEV-EQA-Charging.blob | Bin 0 -> 6676 bytes .../test/resources/proto-blob/MB-BEV-EQA.blob | Bin 0 -> 6653 bytes .../proto-blob/MB-BEV-PrecondActive.blob | Bin 0 -> 6664 bytes .../MB-BEV-EQA-Charging-Unformatted.json | 1 + .../proto-json/MB-BEV-EQA-Charging.json | 929 + .../test/resources/proto-json/MB-BEV-EQA.json | 927 + .../proto-json/MB-BEV-ImperialUnits.json | 929 + .../proto-json/MB-Hybrid-Charging.json | 964 + .../test/resources/proto-json/MB-Unknown.json | 960 + .../proto-json/PartialUpdate-Charging.json | 15 + .../proto-json/PartialUpdate-GPS.json | 17 + .../proto-json/PartialUpdate-Range.json | 16 + .../src/test/resources/status-resources.json | 82 - .../src/test/resources/status.json | 98 - .../checkstyle/suppressions.xml | 2 +- 152 files changed, 156445 insertions(+), 2789 deletions(-) delete mode 100644 bundles/org.openhab.binding.mercedesme/doc/CallbackUrl_Page.png create mode 100644 bundles/org.openhab.binding.mercedesme/doc/ElectricConsumptionUnits.png delete mode 100644 bundles/org.openhab.binding.mercedesme/doc/ImageRestrictions.png delete mode 100644 bundles/org.openhab.binding.mercedesme/doc/ImageView-CommandOptions.png delete mode 100644 bundles/org.openhab.binding.mercedesme/doc/MBAccessRequest.png delete mode 100644 bundles/org.openhab.binding.mercedesme/doc/MBDeveloper-Credentials.png delete mode 100644 bundles/org.openhab.binding.mercedesme/doc/MBDeveloper-Subscriptions.png delete mode 100644 bundles/org.openhab.binding.mercedesme/doc/MercedesMeConfiguration.png create mode 100644 bundles/org.openhab.binding.mercedesme/doc/OH-Step0.png create mode 100644 bundles/org.openhab.binding.mercedesme/doc/OH-Step1.png create mode 100644 bundles/org.openhab.binding.mercedesme/doc/OH-Step2.png create mode 100644 bundles/org.openhab.binding.mercedesme/doc/OH-Step3.png create mode 100644 bundles/org.openhab.binding.mercedesme/doc/OH-capabilities.png create mode 100644 bundles/org.openhab.binding.mercedesme/proto/README.md create mode 100644 bundles/org.openhab.binding.mercedesme/proto/acp.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/client.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/cluster.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/eventpush.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/gogo.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/google/protobuf/descriptor.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/google/protobuf/struct.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/google/protobuf/wrappers.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/protos.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/service-activation.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/user-events.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/vehicle-commands.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/vehicle-events.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/vehicleapi.proto create mode 100644 bundles/org.openhab.binding.mercedesme/proto/vin-events.proto create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/LICENSE create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Acp.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Client.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Cluster.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Eventpush.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Protos.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/ServiceActivation.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/UserEvents.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VehicleCommands.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VehicleEvents.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Vehicleapi.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VinEvents.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/google/protobuf/GoGoProtos.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/MercedesMeMetadataAdjuster.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/actions/VehicleActions.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/discovery/MercedesMeDiscoveryService.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/dto/PINRequest.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/dto/TokenResponse.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthServer.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthService.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthServlet.java delete mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/CallbackServer.java delete mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/CallbackServlet.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/MBWebsocket.java delete mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/UOMObserver.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Utils.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/charge-channel-types.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/charge-group.xml rename bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/{location-channel-types.xml => command-channel-types.xml} (60%) rename bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/{image-group.xml => command-group.xml} (62%) create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/hvac-channel-types.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/hvac-group.xml delete mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/image-channel-types.xml delete mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/light-channel-types.xml delete mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lights-group.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-ev-group.xml rename bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/{location-channel-group.xml => position-channel-group.xml} (75%) create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/position-channel-types.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-channel-types.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-ev-group.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-group.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/tires-channel-types.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/tires-group.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-channel-types.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-conv-group.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-ev-group.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-hybrid-group.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/vehicle-channel-types.xml create mode 100644 bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/vehicle-group.xml delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/FileReader.java delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ImageTest.java delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/JsonTest.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/MetadataRegistryMock.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/MetadataTest.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ProtoTest.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/StatusTests.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/UtilsTest.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/AccountHandlerMock.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/LocationProviderMock.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/MercedesMeCommandOptionProviderMock.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/MercedesMeDynamicStateDescriptionProviderMock.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/ProtoConverter.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/ThingCallbackListener.java create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandlerTest.java delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/eqa-light-sample.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/evstatus.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/fuel.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/image/ext.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/info/AttributeGroupDistribution.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/info/CC-MB-B250e.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/info/CC-MB-EQA.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/info/FC-MB-B250e.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/info/FC-MB-EQA.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/invalid-key.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/invalid-timestamp.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/json/TokenResponse.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/lock.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/odo.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-blob/MB-BEV-EQA-Charging.blob create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-blob/MB-BEV-EQA.blob create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-blob/MB-BEV-PrecondActive.blob create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA-Charging-Unformatted.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA-Charging.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-ImperialUnits.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Hybrid-Charging.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Unknown.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-Charging.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-GPS.json create mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-Range.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/status-resources.json delete mode 100644 bundles/org.openhab.binding.mercedesme/src/test/resources/status.json diff --git a/bundles/org.openhab.binding.mercedesme/README.md b/bundles/org.openhab.binding.mercedesme/README.md index 6ac649b6744..880801824b2 100644 --- a/bundles/org.openhab.binding.mercedesme/README.md +++ b/bundles/org.openhab.binding.mercedesme/README.md @@ -1,10 +1,18 @@ # MercedesMe Binding -This binding provides similar access to your Mercedes Benz vehicle like the Smartphone App _Mercedes Me_. -For this you need a Mercedes developer account to get data from your vehicles. -Setup requires some, time so follow [the steps of bridge configuration](#bridge-configuration). +This binding provides access to your Mercedes Benz vehicle like _Mercedes Me_ Smartphone App . -If you face some problems during setup or runtime please have a look into the [Troubleshooting section](#troubleshooting) +## Installation Instructions + +First time users shall follow the following sequence + +1. Setup and configure [Bridge](#bridge-configuration) +2. Follow the [Bridge Authorization](#bridge-authorization) process +3. [Discovery](#discovery) shall find now vehicles associated to your account +4. Add your vehicle from discovery and [configure](#thing-configuration) it with correct VIN +5. Connect your desired items in UI or [text-configuration](#full-example) +6. Optional: you can [Discover your Vehicle](#discover-your-vehicle) more deeply +7. In case of problems check [Troubleshooting](#troubleshooting) section ## Supported Things @@ -15,115 +23,94 @@ If you face some problems during setup or runtime please have a look into the [T | Thing | `hybrid` | Fuel vehicle with supporting electric engine | | Thing | `bev` | Battery electric vehicle | +## Discovery + +The Mercedes Me binding is based on the API of the Smartphone App. +You have an account which is associated to one or more vehicles. +Setup the Mercedes Me Account Bridge with your email address. +After successful authorization your associated vehicles are found automatically. +There's no manual discovery! + ## Bridge Configuration -Bridge needs configuration in order to connect properly to your Mercedes Me Account. +Bridge needs configuration in order to connect properly to your Mercedes Me account. -### Pre-Conditions +| Name | Type | Description | Default | Required | Advanced | +|-----------------|---------|-----------------------------------------|-------------|----------|----------| +| email | text | Mercedes Me registered email Address | N/A | yes | no | +| pin | text | Mercedes Me Smartphone App PIN | N/A | no | no | +| region | text | Your region | EU | yes | no | +| refreshInterval | integer | API refresh interval | 15 | yes | no | +| callbackIP | text | Your region | N/A | yes | yes | +| callbackPort | integer | API refresh interval | N/A | yes | yes | -- **each bridge shall have its own Mercedes Benz Client ID!** - Don't create several `account` bridges with the same client id! If this is not the case the tokens won't be stored properly and the authorization is jeopardized! -- **each bridge shall have its own port.** - It's absolutely necessary to assign a different port for each `account` bridge. If this is not the case the tokens won't be stored properly and the authorization is jeopardized! +Set `region` to your location -### Bridge Setup +- `EU` : Europe and Rest of World +- `NA` : North America +- `AP` : Asia Pacific +- `CN` : China -Perform the following steps to obtain the configuration data and perform the authorization flow. +Set `pin` to your Mercedes Me App PIN. +Parameter is *not required*. +Note `pin` is needed for some commands which are affecting **vehicle safety**. +Commands like _unlock doors_ will result into an _unsafe state_: your vehicle is unlocked and is accessible to everybody. -1. Go to [Mercedes Developer Page](https://developer.mercedes-benz.com/). Login with your Mercedes Me credentials. -1. Create a project in the [console tab](https://developer.mercedes-benz.com/console) - - _Project Name:_ unique name e.g. **openHAB Mercedes Me binding** plus **Your bridge ID** - - _Purpose URL:_ use link towards [this binding description](https://www.openhab.org/addons/bindings/mercedesme/) - - _Business Purpose:_ e.g. **Private usage in openHAB Smarthome system** -1. After project is created subscribe [to these Mercedes Benz APIs](https://developer.mercedes-benz.com/products?vt=cars&vt=vans&vt=smart&p=BYOCAR) with _Add Products_ button -1. For all Products perform the same steps - - Select product - - Choose _Get For Free_ - - Choose _BYOCAR_ (Build Your Own Car) - - Button _Confirm_ -1. Select the following products - - Vehicle Status - - Vehicle Lock Status - - Pay as you drive insurance - - Electric Vehicle Status - - Fuel Status -1. Optional: Subscribe also to _Vehicle images_. Select the _Basic Trial_ version. The images will be stored so the API is used just a few times. -1. Press _Subscribe_ button. Your project should have [these product subscriptions](#mb-product-subscriptions) -1. Generate the [project credentials](#mb-credentials) -1. Open in new browser tab your openHAB page. Add a new Thing _Mercedes Me Account_ -1. Copy paste _Client ID_ , _Client Secret_ and _API Key_ from the Mercedes tab into the openHAB configuration -1. Check if the registered Mercedes products _excluding Vehicle Images_ are matching exactly with the openHab configuration switches -1. Create Thing! -1. The fresh created [account has one property](#openhab-configuration) `callbackUrl`. Copy it and paste it in a new browser tab -1. A [simple HTML page is shown including a link towards the Authorization flow](#callback-page) - **don't click yet**. If page isn't shown please adapt IP and port in openHAB configuration with Advanced Options activated -1. The copied URL needs to be added in your [Mercedes project credentials](#mb-credentials) from 8 -1. Now click onto the link from 14. You'll be asked one time if you [grant access](#mb-access-request) towards the API. Click OK and authorization is done! +Commands protected by PIN -Some supporting screenshots for the setup +- Remote Starting Vehicle +- Unlock Doors +- Open / Ventilate Windows +- Open / Lift Sunroof -### MB Credentials +IP `callbackIP` and port `callbackPort` will be auto-detected. +If you're running on server with more than one network interface please select manually. - +### Bridge Authorization -### MB Product Subscriptions +Authorization is needed to activate the Bridge which is connected to your Mercedes Me Account. +The Bridge will indicate in the status headline if authorization is needed including the URL which needs to be opened in your browser. - +Three steps are needed -### openHAB Configuration +1. Open the mentioned URL like 192.168.x.x:8090/mb-auth +Opening this URL will request a PIN which will be send to your configured email. +Check your Mail Account if you received the PIN. +Click on _Continue_ to proceed with Step 2. - +2. Enter your PIN in the shown field. +Leave GUID as identifier as it is. +Click on _Submit_ button. -### MB Access Request +3. Confirmation shall be shown that authorization was successful. - +In case of non successful authorization check your log for errors. +Below screenshots are illustrating the authorization flow. -### Callback page +### After Bridge Setup - + -### Bridge Configuration Parameters +### Authorization Step 1 -| Name | Type | Description | Default | Required | Advanced | -|-----------------|---------|---------------------------------------|-------------|----------|----------| -| clientId | text | Mercedes Benz Developer Client ID | N/A | yes | no | -| clientSecret | text | Mercedes Benz Developer Client Secret | N/A | yes | no | -| imageApiKey | text | Mercedes Benz Developer Image API Key | N/A | no | no | -| odoScope | boolean | PayAsYourDrive Insurance | true | yes | no | -| vehicleScope | boolean | Vehicle Status | true | yes | no | -| lockScope | boolean | Lock status of doors and trunk | true | yes | no | -| fuelScope | boolean | Fuel Status | true | yes | no | -| evScope | boolean | Electric Vehicle Status | true | yes | no | -| callbackIP | text | IP address of your openHAB server | auto detect | no | yes | -| callbackPort | integer | **Unique** port number | auto detect | no | yes | + -The `callbackPort` needs to be unique for all created Mercedes Me account things. Otherwise token exchange will be corrupted. -Set the advanced options by yourself if you know your IP and Port, otherwise give auto detect a try. +### Authorization Step 2 + + + +### Authorization Step 3 + + ## Thing Configuration -For vehicle images Mercedes Benz Developer offers only a trial version with limited calls. -Check in **beforehand** if your vehicle has some restrictions or even if it's supported at all. -Visit [Vehicle Image Details](https://developer.mercedes-benz.com/products/vehicle_images/details) in order to check your vehicle capabilities. -Visit [Image Settings](https://developer.mercedes-benz.com/products/vehicle_images/docs#_default_image_settings) to get more information about -For example the EQA doesn't provide `night` images with `background`. -If your configuration is set this way the API calls are wasted! - - - -See also [image channel section](#image) for further advise. - | Name | Type | Description | Default | Required | Advanced | |-----------------|---------|-----------------------------------------------------|---------|----------|----------| -| vin | text | Vehicle identification number | N/A | yes | no | -| refreshInterval | integer | Refresh interval in minutes | 5 | yes | no | -| background | boolean | Vehicle images provided with or without background | false | no | yes | -| night | boolean | Vehicle images in night conditions | false | no | yes | -| cropped | boolean | Vehicle images in 4:3 instead of 16:9 | false | no | yes | -| roofOpen | boolean | Vehicle images with open roof (only Cabriolet) | false | no | yes | -| format | text | Vehicle images format (webp or png) | webp | no | yes | +| vin | text | Vehicle Identification Number | N/A | yes | no | -For all vehicles you're free to give the tank / battery capacity. -Giving these values in configuration the open fuel / charge capacities are reported in the [range](#range) channels. +For all vehicles you're free to give the fuel / battery capacity. +Giving these values in configuration open fuel / charge capacities are reported in the [range](#range) channels. | Name | Type | Description | Default | Required | Advanced | combustion | bev | hybrid | |-----------------|---------|-----------------------------------------------------|---------|----------|----------|------------|-----|--------| @@ -136,365 +123,706 @@ Channels are separated in groups: | Channel Group ID | Description | |----------------------------------|---------------------------------------------------| -| [range](#range) | Provides mileage, range and charge / fuel levels | -| [doors](#doors) | Details of all doors | -| [windows](#windows) | Current position of windows | -| [lights](#lights) | Interior lights and main light switch | -| [lock](#lock) | Overall lock state of vehicle | -| [location](#location) | Heading of the vehicle | -| [image](#image) | Images of your vehicle | +| [vehicle](#vehicle) | Vehicle Information | +| [doors](#doors) | Details of all Doors | +| [lock](#lock) | Doors Lock Status | +| [windows](#windows) | Window Details | +| [hvac](#hvac) | Climatization | +| [service](#service) | Service & Warnings | +| [range](#range) | Ranges, Charge and Fuel | +| [charge](#charge) | Charging Data and Programs | +| [trip](#trip) | Trip Data | +| [position](#position) | Positioning Data | +| [tires](#tires) | Tire Information | -### Range +## Actions -Group name: `range` -All channels `read-only` +See [Vehicle Actions](#vehicle-actions) which can be used in rules. -| Channel | Type | Description | bev | hybrid | combustion | -|------------------|----------------------|------------------------------| ----|--------|------------| -| mileage | Number:Length | Total mileage | X | X | X | -| soc | Number:Dimensionless | Battery state of charge | X | X | | -| charged | Number:Energy | Charged Battery Energy | X | X | | -| uncharged | Number:Energy | Uncharged Battery Energy | X | X | | -| soc | Number:Dimensionless | Battery state of charge | X | X | | -| range-electric | Number:Length | Electric range | X | X | | -| radius-electric | Number:Length | Electric radius for map | X | X | | -| fuel-level | Number:Dimensionless | Fuel level in percent | | X | X | -| fuel-remain | Number:Volume | Reamaining Fuel | | X | X | -| fuel-open | Number:Volume | Open Fuel Capacity | | X | X | -| range-fuel | Number:Length | Fuel range | | X | X | -| radius-fuel | Number:Length | Fuel radius for map | | X | X | -| range-hybrid | Number:Length | Hybrid range | | X | | -| radius-hybrid | Number:Length | Hybrid radius for map | | X | | -| last-update | DateTime | Last range update | X | X | X | +### Vehicle -Channels with `radius` are just giving a _guess_ which radius can be reached in a map display. +Group name: `vehicle` + +| Channel | Type | Description | Read | Write | Advanced | +|-----------------------|---------------------|-------------------------------|------|-------|----------| +| lock | Number | Lock Status and Control | X | X | | +| windows | Number | Window Status and Control | X | X | | +| door-status | Number | Door Status | X | | | +| ignition | Number | Ignition | X | X | | +| park-brake | Switch | Park Brake Active | X | | | +| feature-capabilities | String | Feature Capabilities | X | | X | +| command-capabilities | String | Command Capabilities | X | | X | +| proto-update | String | Last Vehicle Data Update | X | | X | + +Advanced channels are used to identify problems. +If you encounter problems with this binding follow the instructions from [Troubleshooting](#troubleshooting) section. + +#### Lock Status Mapping + +State + +- 0 : Locked +- 1 : Unlocked + +Command + +- 0 : Lock +- 1 : Unlock + +Triggers `DOORSLOCK` and `DOORSUNLOCK` from [Command Name Mapping](#command-name-mapping) + +#### Window Mappings + +State + +- 0 : Intermediate +- 1 : Closed +- 2 : Open + +Command + +- 0 : Ventilate +- 1 : Close +- 2 : Open + +Triggers `WINDOWVENTILATE`, `WINDOWCLOSE` and `WINDOWOPEN` from [Command Name Mapping](#command-name-mapping) + +#### Door Status Mapping + +- 0 : Open +- 1 : Closed + +#### Ignition Mapping + +State + +- 0 : Off +- 2 : Ready +- 4 : On + +Command + +- 0 : Off +- 4 : On + +Triggers `ENGINESTART` and `ENGINESTOP` from [Command Name Mapping](#command-name-mapping) ### Doors Group name: `doors` -All channels `read-only` -| Channel | Type | Description | -|------------------|----------------------|------------------------------| -| driver-front | Contact | Driver door | -| driver-rear | Contact | Driver door reat | -| passenger-front | Contact | Passenger door | -| passenger-rear | Contact | Passenger door rear | -| deck-lid | Contact | Deck lid | -| sunroof | Number | Sun roof (only Cabriolet) | -| rooftop | Number | Roof top | -| last-update | DateTime | Last doors update | +State representing if door, roof, hoods or flaps are open. +States and controls are depending on your vehicle capabilities. -Mapping table `sunroof` +| Channel | Type | Description | Read | Write | +|---------------------|----------------------|------------------------------|------|-------| +| front-left | Contact | Front Left Door | X | | +| front-right | Contact | Front Right Door | X | | +| rear-left | Contact | Rear Left Door | X | | +| rear-right | Contact | Rear Right Door | X | | +| deck-lid | Contact | Deck lid | X | | +| engine-hood | Contact | Engine Hood | X | | +| rooftop | Number | Roof top | X | | +| sunroof-front-blind | Number | Sunroof Front Blind | X | | +| sunroof-rear-blind | Number | Sunroof Rear Blind | X | | +| sunroof | Number | Sun roof | X | X | -| Number | Mapping | -|-----------------|---------------------| -| 0 | Closed | -| 1 | Open | -| 2 | Open Lifting | -| 3 | Running | -| 4 | Closing | -| 5 | Opening | -| 6 | Closing | +#### Rooftop Mapping + +- 0 : Unlocked +- 1 : Open and locked +- 2 : Closed and locked -Mapping table `rootop` +#### Sunroof Front Blind Mapping -| Number | Mapping | -|-----------------|---------------------| -| 0 | Unlocked | -| 1 | Open and locked | -| 2 | Closed and locked | +- not available yet -### Windows +#### Sunroof Rear Blind Mapping -Group name: `windows` -All channels `readonly` +- not available yet -| Channel | Type | Description | -|------------------|----------------------|------------------------------| -| driver-front | Number | Driver window | -| driver-rear | Number | Driver window rear | -| passenger-front | Number | Passenger window | -| passenger-rear | Number | Passenger window rear | -| last-update | DateTime | Last windows update | +#### Sunroof Mapping -Mapping table for all windows +State -| Number | Mapping | -|-----------------|---------------------| -| 0 | Intermediate | -| 1 | Open | -| 2 | Closed | -| 3 | Airing | -| 4 | Intermediate | -| 5 | Running | +- 0 : Closed +- 1 : Open +- 2 : Lifted +- 3 : Running +- 4 : Closing +- 5 : Opening +- 6 : Closing -### Lights +Command -Group name: `lights` -All channels `read-only` +- 0 : Close +- 1 : Open +- 2 : Lift -| Channel | Type | Description | -|------------------|----------------------|------------------------------| -| interior-front | Switch | Interior light front | -| interior-rear | Switch | Interior light rear | -| reading-left | Switch | Reading light left | -| reading-right | Switch | Reading light right | -| light-switch | Number | Main light switch | -| last-update | DateTime | Last lights update | - -Mapping table `light-switch` - -| Number | Mapping | -|-----------------|---------------------| -| 0 | Auto | -| 1 | Headlight | -| 2 | Sidelight Left | -| 3 | Sidelight Right | -| 4 | Parking Light | +Triggers `ROOFCLOSE`, `ROOFOPEN` and `ROOFLIFT` from [Command Name Mapping](#command-name-mapping) ### Lock Group name: `lock` + +State representing if doors, hoods or flaps are locked. +States and controls are depending on your vehicle capabilities and type. + +| Channel | Type | Description | Read | Write | +|---------------------|----------------------|----------------------------------|------|-------| +| front-left | Switch | Front Left Door Lock | X | | +| front-right | Switch | Front Right Door Lock | X | | +| rear-left | Switch | Rear Left Door Lock | X | | +| rear-right | Switch | Rear Right Door Lock | X | | +| deck-lid | Switch | Deck lid | X | | +| gas-flap | Switch | Gas Flap (combustion & hybrid) | X | | + +### Windows + +Group name: `windows` + +State representing current window position. + +| Channel | Type | Description | Read | Write | +|---------------------|----------------------|------------------------------|------|-------| +| front-left | Number | Front Left Window | X | | +| front-right | Number | Front Right Window | X | | +| rear-left | Number | Rear Left Window | X | | +| rear-right | Number | Rear Right Window | X | | +| rear-right-blind | Number | Rear Right Blind | X | | +| rear-left-blind | Number | Rear Left Blind | X | | +| rear-blind | Number | Rear Blind | X | | + +#### Window Channel Mapping + +- 0 : Intermediate +- 1 : Open +- 2 : Closed +- 3 : Airing +- 4 : Intermediate +- 5 : Running + +#### Rear Right Blind Channel Mapping + +- not available yet + +#### Rear Left Blind Channel Mapping + +- not available yet + +#### Rear Blind Channel Mapping + +- not available yet + +#### Flip Window Channel Mapping + +- not available yet + +### HVAC + +Group name: `havc` + +Configuration of vehicle climatization. +States and controls are depending on your vehicle capabilities. + +| Channel | Type | Description | Read | Write | +|---------------------|----------------------|----------------------------------|------|-------| +| front-left | Switch | Front Left Seat Climatization | X | | +| front-right | Switch | Front Left Seat Climatization | X | | +| rear-left | Switch | Front Left Seat Climatization | X | | +| rear-right | Switch | Front Left Seat Climatization | X | | +| zone | Number | Selected Climatization Zone | X | X | +| temperature | Number:Temperature | Desired Temperature for Zone | X | X | +| activate | Switch | Start/Stop Climatization | X | X | +| aux-heat | Switch | Auxiliary Heating | X | X | + +#### Zone Mapping + +Command Options + +- 1 : frontLeft +- 2 : frontRight +- 3 : frontCenter +- 4 : rearLeft +- 5 : rearRight +- 6 : rearCenter +- 7 : rear2Left +- 8 : rear2Right +- 9 : rear2Center + +Automatically calculated based on your vehicle capabilities. +Only options are shown which are supported by your vehicle. + +Triggers `- PRECONDCONFIGURESEATS` from [Command Name Mapping](#command-name-mapping) + +#### Temperature Setting + +Pre-configure selected zone with desired temperature. +Minimum and maximum temperature depends on your local settings either Degree Celsius or Fahrenheit. + +Celsius + +- Minimum : 16 °C +- Maximum : 28 °C +- Step width : 0.5 °C + +Fahrenheit + +- Minimum : 60 °F +- Maximum : 84 °F +- Step width : 1 °F + +Triggers `TEMPERATURECONFIGURE` from [Command Name Mapping](#command-name-mapping) + +#### Activate Switch + +Triggers `PRECONDSTART` and `PRECONDSTOP` from [Command Name Mapping](#command-name-mapping) + +#### Auxiliary Heat Switch + +Triggers `AUXHEATSTART` and `AUXHEATSTOP` from [Command Name Mapping](#command-name-mapping) + +### Service + +Group name: `service` + +All channels read-only. +Service and warning information for vehicle. +States and controls are depending on your vehicle capabilities. + +| Channel | Type | Description | bev | hybrid | combustion | +|---------------------|----------------------|---------------------------------|-----|--------|------------| +| starter-battery | Number | Starter Battery Status | X | X | X | +| brake-fluid | Switch | Brake Fluid Warning | X | X | X | +| brake-lining-wear | Switch | Brake Lining Gear Warning | X | X | X | +| wash-water | Switch | Wash Water Low Warning | X | X | X | +| coolant-fluid | Switch | Coolant Fluid Low Warning | | X | X | +| engine | Switch | Engine Warning | | X | X | +| tires-rdk | Number | Tire Pressure Warnings | X | X | X | +| service-days | Number | Next Service in *x* days | X | X | X | + +#### Starter Battery Mapping + +Traffic light status of the starter battery + +- 0 : Green +- 1 : Yellow +- 2 : Red + +### Range + +Group name: `range` + +All channels read-only. + +| Channel | Type | Description | bev | hybrid | combustion | +|------------------|----------------------|------------------------------|-----|--------|------------| +| mileage | Number:Length | Total Mileage | X | X | X | +| home-distance | Number:Length | Distance to Home | X | X | X | +| soc | Number:Dimensionless | Battery State of Charge | X | X | | +| charged | Number:Energy | Charged Battery Energy | X | X | | +| uncharged | Number:Energy | Uncharged Battery Energy | X | X | | +| range-electric | Number:Length | Electric Range | X | X | | +| radius-electric | Number:Length | Electric Radius for Map | X | X | | +| fuel-level | Number:Dimensionless | Fuel Level in Percent | | X | X | +| fuel-remain | Number:Volume | Remaining Fuel | | X | X | +| fuel-open | Number:Volume | Open Fuel Capacity | | X | X | +| range-fuel | Number:Length | Fuel Range | | X | X | +| radius-fuel | Number:Length | Fuel Radius for Map | | X | X | +| range-hybrid | Number:Length | Hybrid Range | | X | | +| radius-hybrid | Number:Length | Hybrid Radius for Map | | X | | + +Channels with `radius` are just giving a _guess_ which radius can be reached in a map display. + +### Charge + +Group name: `charge` + +Only relevant for battery electric and hybrid vehicles. +Current charge values and charge program configuration. +States and controls are depending on your vehicle capabilities. + +| Channel | Type | Description | Read | Write | +|---------------------|----------------------|----------------------------------------|------|-------| +| charge-flap | Number | Charge Flap Status | X | | +| coupler-ac | Number | Coupler AC Status | X | | +| coupler-dc | Number | Coupler DC Status | X | | +| coupler-lock | Number | Coupler Lock Status | X | | +| active | Switch | Charging Active | X | | +| power | Number:Power | Current Charging Power | X | | +| end-time | DateTime | Estimated Charging End | X | | +| program | Number | Selected Charge Program | X | X | +| max-soc | Number:Dimensionless | Charge Target SoC | X | X | +| auto-unlock | Switch | Auto Unlock Coupler after charging | X | X | + +#### Charge Flap Mapping + +- 0 : Open +- 1 : Closed + +#### Coupler AC Mapping + +- 0 : Plugged +- 2 : Unplugged + +#### Coupler DC Mapping + +- 0 : Plugged +- 2 : Unplugged + +#### Coupler Lock Mapping + +- 0 : Locked +- 1 : Unlocked + +#### Program Mapping + +- 0 : DEFAULT_CHARGE_PROGRAM +- 2 : HOME_CHARGE_PROGRAM +- 3 : WORK_CHARGE_PROGRAM + +Automatically calculated based on your vehicle capabilities. +Only options are shown which are supported by your vehicle. + +Triggers `CHARGEPROGRAMCONFIGURE` from [Command Name Mapping](#command-name-mapping) + +#### Max SoC Setting + +SoC target for selected program can be configured if your vehicle capabilities are supporting it. +Configuration limit needs to respect 10% steps with a minimum of 50% and maximum of 100%. + +Command Options + +- 50 % +- 60 % +- 70 % +- 80 % +- 90 % +- 100 % + +Triggers `CHARGEPROGRAMCONFIGURE` from [Command Name Mapping](#command-name-mapping) + +#### Auto Unlock Setting + +Charge Program can be configured to release coupler lock after target SoC is reached + +Triggers `CHARGEPROGRAMCONFIGURE` from [Command Name Mapping](#command-name-mapping) + +### Trip + +Group name: `trip` + All channels `read-only` -| Channel | Type | Description | -|------------------|----------------------|------------------------------| -| doors | Number | Lock status all doors | -| deck-lid | Switch | Deck lid lock | -| flap | Switch | Flap lock | -| last-update | DateTime | Last lock update | +| Channel | Type | Description | +|------------------|----------------------|----------------------------------------------------------------------| +| distance | Number Length | Last Trip Distance | +| time | String | Last Trip Duration in days, hours and minutes | +| avg-speed | Number:Speed | Last Trip Average Speed in km/h | +| cons-ev | Number | Last Trip Average Electric Energy Consumption | +| cons-conv | Number | Last Trip Average Fuel Consumption | +| distance-reset | Number Length | Since Reset Trip Distance | +| time-reset | String | Since Reset Duration in days, hours and minutes | +| avg-speed-reset | Number:Speed | Since Reset Average Speed in km/h | +| cons-ev-reset | Number | Since Reset Average Electric Energy Consumption | +| cons-conv-reset | Number:Volume | Since Reset Average Fuel Consumption | +| cons-ev-unit | String | Unit of Average Electric Consumption | +| cons-conv-unit | String | Unit of Average Fuel Consumption | -Mapping table `doors` +#### Average Consumption -| Number | Mapping | -|-----------------|---------------------| -| 0 | Unlocked | -| 1 | Locked Internal | -| 2 | Locked External | -| 3 | Unlocked Selective | +You can configure different average consumption units like kWh per 100 kilometer or km per kWh. +In your Mercedes Me App front page -### Location +- Burger Menu top left +- Last Entry `Settings` +- First Entry `Units` -Group name: `location` -All channels `readonly` + -| Channel | Type | Description | -|------------------|----------------------|------------------------------| -| heading | Number:Angle | Vehicle heading | -| last-update | DateTime | Last location update | +### Trip Duration -### Image +Shown as String in format `d days, HH:mm`. +If duration is below 24 hours format is `HH:mm`. -Provides exterior and interior images for your specific vehicle. -Group name: `image` +### Position -| Channel | Type | Description | Write | -|------------------|----------------------|------------------------------|-------| -| image-data | Raw | Vehicle image | | -| image-view | text | Vehicle image viewpoint | X | -| clear-cache | Switch | Remove all stored images | X | +Group name: `position` -**If** the `imageApiKey` in [Bridge Configuration Parameters](#bridge-configuration-parameters) is set the vehicle thing will try to get images. -Pay attention to the [Advanced Image Configuration Properties](#thing-configuration) before requesting new images. -Sending commands towards the `image-view` channel will change the image. -The `image-view` is providing options to select the available images for your specific vehicle. -Images are stored in `jsondb` so if you requested all images the Mercedes Benz Image API will not be called anymore which is good because you have a restricted amount of calls! -If you're not satisfied e.g. you want a background you need to +| Channel | Type | Description | Read | Write | +|---------------------|----------------------|-------------------------------------------------|------|-------| +| heading | Number:Angle | Heading of Vehicle | X | | +| gps | Point | GPS Location Point of Vehicle | X | | +| signal | Number | Request Light or Horn Signal to find Vehicle | | X | -1. change the [Advanced Image Configuration Properties](#thing-configuration) -1. Switch `clear-cache` channel item to `ON` to clear all images -1. request them via `image-view` +#### Signal Settings -### Image View Options +Command Options -You can access the options either in a rule via `YOUR_IMAGE_VIEW_ITEM.getStateDescription().getOptions()` or in UI in widget configuration as _Action: Command options_ and as _Action Item: YOUR_IMAGE_VIEW_ITEM_ +- 0 : Position Lights +- 1 : Position Horn - +Triggers `SIGPOSSTART` from [Command Name Mapping](#command-name-mapping) + +### Tires + +Group name: `tires` + +All channels `read-only` + +| Channel | Type | Description | +|--------------------------|----------------------|---------------------------------| +| pressure-front-left | Number:Pressure | Tire Pressure Front Left | +| pressure-front-right | Number:Pressure | Tire Pressure Front Right | +| pressure-rear-left | Number:Pressure | Tire Pressure Rear Left | +| pressure-rear-right | Number:Pressure | Tire Pressure Rear Right | +| sensor-available | Number | Tire Sensor Available | +| marker-front-left | Number | Tire Marker Front Left | +| marker-front-right | Number | Tire Marker Front Right | +| marker-rear-left | Number | Tire Marker Rear Left | +| marker-rear-right | Number | Tire Marker Rear Right | +| last-update | DateTime | Timestamp of last Measurement | + +#### Sensor Available Mapping + +- Not available yet + +#### Tire Marker Mapping + +- Not available yet + +### Commands + +Group name: `command` + +All channels `read-only` + +| Channel | Type | Description | +|----------------------|-------------|------------------------------------| +| cmd-name | Number | Command Name which is handled | +| cmd-state | Number | Current Command State | +| cmd-last-update | DateTime | Timestamp of last update | + +Show state of the send command sent by above channels which are able to write values. +**Don't flood the API with commands**. +The Mercedes API cannot withstand _Monkey Testing_. +Send lock/unlock or temperatures in a short period of time will result in failures. + +#### Command Name Mapping + +- 100 : DOORSLOCK +- 110 : DOORSUNLOCK +- 115 : TRUNKUNLOCK +- 116 : FUELFLAPUNLOCK +- 117 : CHARGEFLAPUNLOCK +- 118 : CHARGECOUPLERUNLOCK +- 300 : AUXHEATSTART +- 310 : AUXHEATSTOP +- 320 : AUXHEATCONFIGURE +- 350 : TEMPERATURECONFIGURE +- 400 : PRECONDSTART +- 410 : PRECONDSTOP +- 420 : PRECONDCONFIGURE +- 425 : PRECONDCONFIGURESEATS +- 550 : ENGINESTART +- 560 : ENGINESTOP +- 570 : ENGINEAVPSTART +- 770 : SIGPOSSTART +- 1100 : WINDOWOPEN +- 1110 : WINDOWCLOSE +- 1120 : WINDOWVENTILATE +- 1121 : WINDOWMOVE +- 1130 : ROOFOPEN +- 1140 : ROOFCLOSE +- 1150 : ROOFLIFT +- 1151 : ROOFMOVE +- 2000 : BATTERYMAXSOC +- 2010 : BATTERYCHARGEPROGRAM +- 2020 : CHARGEPROGRAMCONFIGURE + +#### Command State Mapping + +- 0 : UNKNOWN_COMMAND_STATE +- 1 : INITIATION +- 2 : ENQUEUED +- 3 : PROCESSING +- 4 : WAITING +- 5 : FINISHED +- 6 : FAILED + +## Vehicle Actions + +Actions for `vehicle` [thing}(#vehicle) are provided. + +### `sendPOI` + +Send a Point of Interest (POI) to the vehicle message box. +This POI can be used as navigation destination. + +| Parameter | Type | Description | Mandatory | +|-------------|---------------|-------------------------|-----------| +| title | String | POI title | X | +| latitude | double | latitude of POI | X | +| longitude | double | longitude of POI | X | +| city | String | POI city location | | +| street | String | POI street name | | +| postalCode | String | POI postal code | | + +**Example Eiffel Tower** + +Required information + +``` + val mercedesmeActions = getActions("mercedesme","mercedesme:bev:4711:eqa") + mercedesmeActions.sendPOI("Eiffel Tower",48.85957476434348,2.2939068084684853) +``` + +Full information + +``` + val mercedesmeActions = getActions("mercedesme","mercedesme:bev:4711:eqa") + mercedesmeActions.sendPOI("Eiffel Tower",48.85957476434348,2.2939068084684853,"Paris","Av. Gustave Eiffel", "75007") +``` + +## Discover your Vehicle + +There's a big variety of vehicles with different features and different command capabilities. +During discovery the capabilities of your vehicle are identified. +They are stored in `Vehicle Properties` as shown below. +You can check in beforehand if features like _Charge Program Configuration_ or _HVAC Configuration_ are supported or not. + + + +If you want to dive deeper see [Troubleshooting](#troubleshooting) `feature-capabilities` and `command-capabilities` to evaluate the exact capabilities. ## Troubleshooting -### Authorization fails +In order to be able to analyze problems 3 advanced channels are placed in the vehicle group. -The configuration of openHAB account thing and the Mercedes Developer project need an extract match regarding +* `feature-capabilities` - showing which feature your vehicle is equipped with +* `command-capabilities` - showing which commands can be sent to your vehicle +* `proto-update` - latest update of your vehicle data -- MB project credentials vs. `clientId` `clientSecret` and `callbackUrl` -- MB project subscription of products vs. `scope` +In case you find problems regarding this binding add items to these 3 channels. +The items are reporting Strings in JSON format. +Vehicle Identification Number (VIN) isn't part of data. +GPS data which is showing your location is anonymized. +Please double check yourself no critical data is inside. +The content of these items shall be used to create a problem report. +During development the `proto-update` contains an entry with binding version information. -If you follow the [bridge configuration steps](#bridge-configuration) both will match. -Otherwise you'll receive some error message when clicking the link after opening the `callbackUrl` in your browser +``` + "bindingInfo": { + "oh-bundle": "4.1.0.202309241814", + "version": "2.2-alpha", + "vehicle": "mercedesme:bev" + } +``` -Most common errors: +Keep these 3 channels disconnected during normal operation. -- redirect URL doesn't match: Double check if `callbackUrl` is really saved correctly in your Mercedes Benz Developer project -- scope failure: the requested scope doesn't match with the subscribed products. - - Check [openHab configuration switches](#openhab-configuration) - - apply changes if necessary and don't forget to save - - after these steps refresh the `callbackUrl` in [your browser](#callback-page) to apply these changes - - try a new authorization clicking the link - -### Receive no data - -Especially after setting the frist Mercedes Benz Developer Project you'll receive no data. -It seems that the API isn't _filled_ yet. - -#### Pre-Condition - -- The Mercedes Me bridge is online = authorization is fine -- The Mercedes Me thing is online = API calls are fine - -#### Solution - -- Reduce `refreshInterval` to 1 minute -- Go to your vehicle, open doors and windows, turn on lights, drive a bit ... -- wait until values are providing the right states - -### Images - -Testing the whole image settings is hard due to the restricted call number towards the Image API. - -My personal experience during limited testing - -| Test |Tested | OK | Not OK | Comment | -|------------------|-------|-----|---------|---------------------------------------------------------| -| `format` webp | Yes | X | | | -| `format` png | Yes | | X | Internal Server Error 500 on Mercedes Server side | -| `format` jpeg | No | | | Not tested due to missing transparency in jpeg format | -| all options off | Yes | X | | | -| `background` | Yes | X | | | -| `night` | No | | | Not support by my vehicle | -| `roofOpen` | No | | | Not support by my vehicle | -| `cropped` | No | | | Not desired from my side | - -## Storage - -Data is stored in directory `%USER_DATA%/jsondb` for handling tokens and vehicle images. - -- _StorageHandler.For.OAuthClientService.json_ - token is stored with key `clientId` which is provided by `account` [Brige Configuration Parameters](#bridge-configuration-parameters) -- _mercedesme_%VEHICLE_VIN%.json_ - images are stored per vehicle. File name contains `vin` configured by [vehicle Thing Configuration](#thing-configuration) - -With this data the binding is able to operate without new authorization towards Mercedes each startup and reduces the restricted calls towards image API. -Also these files are properly stored in your [backup](https://community.openhab.org/t/docs-on-how-to-backup-openhab/100182) e.g. if you perform `openhab-cli backup` - -## Full example - -The example is based on a battery electric vehicle. -Exchange configuration parameters in the Things section - -Bridge - -- 4711 - your desired bridge id -- YOUR_CLIENT_ID - Client ID of the Mercedes Developer project -- YOUR_CLIENT_SECRET - Client Secret of the Mercedes Developer project -- YOUR_API_KEY - Image API Key of the Mercedes Developer project -- YOUR_OPENHAB_SERVER_IP - IP address of your openHAB server -- 8090 - a **unique** port number - each bridge in your openHAB installation needs to have different port number! - -Thing - -- eqa - your desired vehicle thing id -- VEHICLE_VIN - your Vehicle Identification Number +## Full Example ### Things file ```java -Bridge mercedesme:account:4711 "MercedesMe John Doe" [ clientId="YOUR_CLIENT_ID", clientSecret="YOUR_CLIENT_SECRET", imageApiKey="YOUR_API_KEY", callbackIP="YOUR_OPENHAB_SERVER_IP", callbackPort=8092, odoScope=true, vehicleScope=true, lockScope=true, fuelScope=true, evScope=true] { - Thing bev eqa "Mercedes EQA" [ vin="VEHICLE_VIN", refreshInterval=5, background=false, night=false, cropped=false, roofOpen=false, format="webp"] +Bridge mercedesme:account:4711 "Mercedes Me John Doe" [ email="YOUR_MAIL_ADDRESS", region="EU", pin=9876, refreshInterval=15] { + Thing bev eqa "Mercedes EQA" [ vin="VEHICLE_VIN", batteryCapacity=66.5] } ``` ### Items file ```java -Number:Length EQA_Mileage "Odometer [%d %unit%]" {channel="mercedesme:bev:4711:eqa:range#mileage" } -Number:Length EQA_Range "Range [%d %unit%]" {channel="mercedesme:bev:4711:eqa:range#range-electric"} -Number:Length EQA_RangeRadius "Range Radius [%d %unit%]" {channel="mercedesme:bev:4711:eqa:range#radius-electric"} -Number:Dimensionless EQA_BatterySoc "Battery Charge [%.1f %%]" {channel="mercedesme:bev:4711:eqa:range#soc"} +Number EQA_DoorLock {channel="mercedesme:bev:4711:eqa:vehicle#lock" } +Number EQA_Windows {channel="mercedesme:bev:4711:eqa:vehicle#windows" } +Number EQA_DoorStatus {channel="mercedesme:bev:4711:eqa:vehicle#door-status" } +Number EQA_Ignition {channel="mercedesme:bev:4711:eqa:vehicle#ignition" } +Number EQA_ParkBrake {channel="mercedesme:bev:4711:eqa:vehicle#park-brake" } -Contact EQA_DriverDoor "Driver Door [%s]" {channel="mercedesme:bev:4711:eqa:doors#driver-front" } -Contact EQA_DriverDoorRear "Driver Door Rear [%s]" {channel="mercedesme:bev:4711:eqa:doors#driver-rear" } -Contact EQA_PassengerDoor "Passenger Door [%s]" {channel="mercedesme:bev:4711:eqa:doors#passenger-front" } -Contact EQA_PassengerDoorRear "Passenger Door Rear [%s]" {channel="mercedesme:bev:4711:eqa:doors#passenger-rear" } -Number EQA_Trunk "Trunk [%s]" {channel="mercedesme:bev:4711:eqa:doors#deck-lid" } -Number EQA_Rooftop "Rooftop [%s]" {channel="mercedesme:bev:4711:eqa:doors#rooftop" } -Number EQA_Sunroof "Sunroof [%s]" {channel="mercedesme:bev:4711:eqa:doors#sunroof" } +Contact EQA_FrontLeftDoor {channel="mercedesme:bev:4711:eqa:doors#front-left" } +Contact EQA_FrontRightDoor {channel="mercedesme:bev:4711:eqa:doors#front-right" } +Contact EQA_RearLeftDoor {channel="mercedesme:bev:4711:eqa:doors#rear-left" } +Contact EQA_RearRightDoor {channel="mercedesme:bev:4711:eqa:doors#rear-right" } +Contact EQA_DeckLid {channel="mercedesme:bev:4711:eqa:doors#deck-lid" } +Contact EQA_EngineHood {channel="mercedesme:bev:4711:eqa:doors#engine-hood" } +Number EQA_Sunroof {channel="mercedesme:bev:4711:eqa:doors#sunroof" } -Number EQA_DoorLock "Door Lock [%s]" {channel="mercedesme:bev:4711:eqa:lock#doors" } -Switch EQA_TrunkLock "Trunk Lock [%s]" {channel="mercedesme:bev:4711:eqa:lock#deck-lid" } -Switch EQA_FlapLock "Charge Flap Lock [%s]" {channel="mercedesme:bev:4711:eqa:lock#flap" } +Switch EQA_FrontLeftLock {channel="mercedesme:bev:4711:eqa:lock#front-left" } +Switch EQA_FrontRightLock {channel="mercedesme:bev:4711:eqa:lock#front-right" } +Switch EQA_RearLeftLock {channel="mercedesme:bev:4711:eqa:lock#rear-left" } +Switch EQA_RearRightLock {channel="mercedesme:bev:4711:eqa:lock#rear-right" } +Switch EQA_DeckLidLock {channel="mercedesme:bev:4711:eqa:lock#deck-lid" } -Number EQA_DriverWindow "Driver Window [%s]" {channel="mercedesme:bev:4711:eqa:windows#driver-front" } -Number EQA_DriverWindowRear "Driver Window Rear [%s]" {channel="mercedesme:bev:4711:eqa:windows#driver-rear" } -Number EQA_PassengerWindow "Passenger Window [%s]" {channel="mercedesme:bev:4711:eqa:windows#passenger-front" } -Number EQA_PassengerWindowRear "Passenger Window Rear [%s]" {channel="mercedesme:bev:4711:eqa:windows#passenger-rear" } +Number EQA_FrontLeftWindow {channel="mercedesme:bev:4711:eqa:windows#front-left" } +Number EQA_FrontRightWindow {channel="mercedesme:bev:4711:eqa:windows#front-right" } +Number EQA_RearLeftWindow {channel="mercedesme:bev:4711:eqa:windows#rear-left" } +Number EQA_RearRightWindow {channel="mercedesme:bev:4711:eqa:windows#rear-right" } -Number:Angle EQA_Heading "Heading [%.1f %unit%]" {channel="mercedesme:bev:4711:eqa:location#heading" } +Number EQA_ACZone {channel="mercedesme:bev:4711:eqa:hvac#zone" } +Number EQA_ACTemperature {channel="mercedesme:bev:4711:eqa:hvac#temperature" } +Number EQA_ACControl {channel="mercedesme:bev:4711:eqa:hvac#active" } -Image EQA_Image "Image" {channel="mercedesme:bev:4711:eqa:image#image-data" } -String EQA_ImageViewport "Image Viewport [%s]" {channel="mercedesme:bev:4711:eqa:image#image-view" } -Switch EQA_ClearCache "Clear Cache [%s]" {channel="mercedesme:bev:4711:eqa:image#clear-cache" } +Number EQA_StarterBattery {channel="mercedesme:bev:4711:eqa:service#starter-battery" } +Switch EQA_BrakeFluid {channel="mercedesme:bev:4711:eqa:service#brake-fluid" } +Switch EQA_BrakeLiningWear {channel="mercedesme:bev:4711:eqa:service#brake-lining-wear" } +Switch EQA_WashWater {channel="mercedesme:bev:4711:eqa:service#wash-water" } +Number EQA_TirePressureWarn {channel="mercedesme:bev:4711:eqa:service#tires-rdk" } +Number EQA_ServiceInDays {channel="mercedesme:bev:4711:eqa:service#service-days" } -Switch EQA_InteriorFront "Interior Front Light [%s]" {channel="mercedesme:bev:4711:eqa:lights#interior-front" } -Switch EQA_InteriorRear "Interior Rear Light [%s]" {channel="mercedesme:bev:4711:eqa:lights#interior-rear" } -Switch EQA_ReadingLeft "Reading Light Left [%s]" {channel="mercedesme:bev:4711:eqa:lights#reading-left" } -Switch EQA_ReadingRight "Reading Light Right [%s]" {channel="mercedesme:bev:4711:eqa:lights#reading-right" } -Number EQA_LightSwitch "Main Light Switch [%s]" {channel="mercedesme:bev:4711:eqa:lights#light-switch" } +Number:Length EQA_Mileage {channel="mercedesme:bev:4711:eqa:range#mileage" } +Number:Length EQA_Range {channel="mercedesme:bev:4711:eqa:range#range-electric" } +Number:Length EQA_RangeRadius {channel="mercedesme:bev:4711:eqa:range#radius-electric" } +Number:Dimensionless EQA_SoC {channel="mercedesme:bev:4711:eqa:range#soc" } +Number:Energy EQA_BatteryCharged {channel="mercedesme:bev:4711:eqa:range#charged" } +Number:Energy EQA_BatteryUncharged {channel="mercedesme:bev:4711:eqa:range#uncharged" } + +Number EQA_ChargeFlap {channel="mercedesme:bev:4711:eqa:charge#charge-flap" } +Number EQA_CouplerLock {channel="mercedesme:bev:4711:eqa:charge#coupler-lock" } +Switch EQA_ChargeActive {channel="mercedesme:bev:4711:eqa:charge#active" } +Number:Power EQA_ChargePower {channel="mercedesme:bev:4711:eqa:charge#power" } +DateTime EQA_ChargeTimeEstimate {channel="mercedesme:bev:4711:eqa:charge#end-time" } +Number EQA_ChargeProgram {channel="mercedesme:bev:4711:eqa:charge#program" } +Number:Dimensionless EQA_ProgramMaxSoc {channel="mercedesme:bev:4711:eqa:charge#max-soc" } + +Number:Length EQA_TripDistance {channel="mercedesme:bev:4711:eqa:trip#distance" } +String EQA_TripDuration {channel="mercedesme:bev:4711:eqa:trip#time" } +Number:Speed EQA_TripAvgSpeed {channel="mercedesme:bev:4711:eqa:trip#avg-speed" } +Number EQA_TripAvgConsumption {channel="mercedesme:bev:4711:eqa:trip#cons-ev" } +String EQA_AvgConsumptionUnit {channel="mercedesme:bev:4711:eqa:trip#cons-ev-unit" } + +Number:Angle EQA_Heading {channel="mercedesme:bev:4711:eqa:position#heading" } +Location EQA_GPSLocation {channel="mercedesme:bev:4711:eqa:position#gps" } +Number EQA_Signal {channel="mercedesme:bev:4711:eqa:position#signal" } + +Number:Pressure EQA_PressureFrontLeft {channel="mercedesme:bev:4711:eqa:tires#pressure-front-left" } +Number:Pressure EQA_PressureFrontRight {channel="mercedesme:bev:4711:eqa:tires#pressure-front-right" } +Number:Pressure EQA_PressureRearLeft {channel="mercedesme:bev:4711:eqa:tires#pressure-rear-left" } +Number:Pressure EQA_PressureRearRight {channel="mercedesme:bev:4711:eqa:tires#pressure-rear-right" } +DateTime EQA_MeasurementTime {channel="mercedesme:bev:4711:eqa:tires#last-update" } + +Number EQA_CommandName {channel="mercedesme:bev:4711:eqa:command#cmd-name" } +Number EQA_CommandState {channel="mercedesme:bev:4711:eqa:command#cmd-state" } +DateTime EQA_CommandTimestamp {channel="mercedesme:bev:4711:eqa:command#cmd-last-update" } ``` -### Sitemap +### POI ruleExample -```perl -sitemap MB label="Mercedes Benz EQA" { - Frame label="EQA Image" { - Image item=EQA_Image - - } - Frame label="Range" { - Text item=EQA_Mileage - Text item=EQA_Range - Text item=EQA_RangeRadius - Text item=EQA_BatterySoc - } +``` +// send POI from JSON String item +rule "Send POI" + when + Item POIJsonString changed + then + // decode JSON + val json = POIJsonString.state.toString + val title = transform("JSONPATH", "$.title", json) + val lat = transform("JSONPATH", "$.latitude", json) + val lon = transform("JSONPATH", "$.longitude", json) - Frame label="Door Details" { - Text item=EQA_DriverDoor - Text item=EQA_DriverDoorRear - Text item=EQA_PassengerDoor - Text item=EQA_PassengerDoorRear - Text item=EQA_Trunk - Text item=EQA_Rooftop - Text item=EQA_Sunroof - Text item=EQA_DoorLock - Text item=EQA_TrunkLock - Text item=EQA_FlapLock - } - - Frame label="Windows" { - Text item=EQA_DriverWindow - Text item=EQA_DriverWindowRear - Text item=EQA_PassengerWindow - Text item=EQA_PassengerWindowRear - } - - Frame label="Location" { - Text item=EQA_Heading - } - - Frame label="Lights" { - Text item=EQA_InteriorFront - Text item=EQA_InteriorRear - Text item=EQA_ReadingLeft - Text item=EQA_ReadingRight - Text item=EQA_LightSwitch - } - - Frame label="Image Properties" { - Selection item=EQA_ImageViewport - Switch item=EQA_ClearCache - } -} + // send POI to vehicle + val mercedesmeActions = getActions("mercedesme","mercedesme:bev:4711:eqa") + mercedesmeActions.sendPoi(title,lat,lon) +end ``` -## Mercedes Benz Developer - -Visit [Mercedes Benz Developer](https://developer.mercedes-benz.com/) to gain more deep information. diff --git a/bundles/org.openhab.binding.mercedesme/doc/CallbackUrl_Page.png b/bundles/org.openhab.binding.mercedesme/doc/CallbackUrl_Page.png deleted file mode 100644 index eb01ea8710af524f65e6157557d7e6c2b653435e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15947 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 L)Maa>%|ibVrGczZ diff --git a/bundles/org.openhab.binding.mercedesme/doc/ElectricConsumptionUnits.png b/bundles/org.openhab.binding.mercedesme/doc/ElectricConsumptionUnits.png new file mode 100644 index 0000000000000000000000000000000000000000..10c2e75d1eb74e8df4d629da8fb6813f09fe3074 GIT binary patch literal 42412 zcmeFZcTkgW+b#N75CsvX2uhPC(nW;O5u_tM0i{|fKRN_LCnyLANbeAO4^29Rs`M^h zdT*h30tEIvzTf-J?3wS(`Qx1V&YZpXA52JQlIO11y{@&cbqA=c%99X1CISF}L{ULT z698@s0l-bW+t&dA`0VO14gkP42Tgftps0^_9RPrvW>P9r08kQ2eDQ$*0DwDo3hx{M z;9fKMcdgwv*BAh@q!eYOpe}}+)6O1H*yYvUo%JvGm7cu(@;Q)VT~K6Dih!7h={i=& z>g~e^)3T$br4Oz0z2D1A+2M-vJJP>Bx&2K+0}}-dGJgRSZ{N9t^F%t_TXm0Dd>R>M z+&8y@^GEh2iJr{V@Qcx}Cb{?3GrGFE@&Et;{7@9ed;R_AmK4~y&xqR`;M;=N>em1O zcu(gIb`;pS4+US|`lo`uY!bOi3BDa=%mrV5-24CeSIHw{V{^J+y>0No`7E~?Lj65*k`5BK1y%iycxU1%&Q9jx>sX#Vx#oR5;Jsi~u5xefT;&m@1x3lOt&|M*`GV_e2{REjF5 zQ*w8AcXw^=pQ9!w0Qmgg-q1iJTw**=E9V72|IpxI2%V_Yl2xfpOn3hH_;`+5%IMCu zK6x^YWUotHOG^s}41KsWd*#o7oKqtMfG5=`HXSI7yRnH0otTT=5q3lpe>gNzVaXbQ zvER*mW>OWyt*4YzC>!)Jm$@)SIW;0OGBP~eeyQWZG|!u2!}=u%FHXh+w>(yCWVB!Bb_W2SJiEF4ySSjB z!0YOK_GH%UY9K@YhzYVDCMz#5FC$ZKF@iSfj-k@G`-1#wy*`*lW*!j{0ZrK%&eJNj z>x^Kf6LD1M1Ri$v^oZFnv|tb$rv1ry+-iz@`@Z)Zl+a!pMsz-p;sf6mAqZHYn^|?}}?LcL8_ysn6}~R3?8Bvp&>DQLSp#G>1;n z#o0zN>7y4iRbLK>!G(IkM=)f3MknfYmreucJ(x?J@_ zm94U7d7RGs3knKQC|X>xAr|iI=jZ3^tLPN?{X5rqJ2puK z!NJe3wFTwAbLURLw{PDS@2!B=IZ* zvQ^3{hp559K_vcYtip1v=xxbD)htr4&ZPv|yNot!MAo|ST~+A zNfJlle!Tgv)HuL{2*)MexB~AqUDnb^jKB)@sv0i#yG`WJe9MGM-=2l+?d@Ua{kO6y6dof(5;y#^0g z$srvnqx`T~@Ppq}!-aYfTyHnT()H^t0AN-04qVQhblj>K!!{#m#NEn~g@>IpSwY7; zURRTg)I?190m!V!!Q4+DVPRo6a*6e-q_l@hUMGpR4dJSVhPs~{FP3@P+1at&z7f_u z2AIRjNt+?tWAm1856-L&4kQ3|*v(m!7J;dzQ3wv@v#mc^f{6 zJe?;*5WEVvRmW`hi=XIA4Je00x`dq@N}imNnC1HJ%LS1ojqRioXBBQFRi$@1;4iXLux2~&MqetvYWOM5oU*Xj=Dk+YAI6IP z!;*oO^$kz)r-ez04sue;DiToQxG59X>N?LNmX@9Kt2CeQ6vOc32Uo;r{a%-g{gRvj zU`K!3yYrBkif1@lFGDVPqS88_CTsn0eMqm;3OAH;xwN_9@8{Rn)}~!-SnsqoF~~=$ zsi5^x#Gj^6uc}BbMPka$e&xH#P z|LhL$eg~(oEMT@om%P^OhUEIGc8cuhCD|TQv#fYzTrD~8<4Jz@=RCyWK!U`@yonk;RmTyHTuilvChfXM_PN-%xoL8E{nnYwc_>*Uk#V4 zGBa5Y2s-m3J@dTYnaa}}{ob8#_Bx#>oW2DBs}Q=kT!L!#g#d3l=MZOdBa z{|rcr1dZuC1iN)6&IIbk8))D*jIPiP#KNZ`bfR5pUE}JOUE$sDEGEj$jg2#P-#vO^ ztl;K$hCi7tP8ghzIbctjz_oQovUN-EK$P^M8%xT?&TXTGdRd>ieI4^GM+?}E!Vabq zQv45(#GP1D*8Y@yvJl8QGduW}?Y2I?3^p5=Ai ziA@Q+xR=B({RSm8aFTa$s+;1muPBf{h!Po(J&QGQTEh2s6+HrO0Zj~2_isk4CW)-m z2Tm5eD?234T3;K;pl8o=JHjru1xH>+8a4;j9S$ng zAc0#V50zob$xXet5J1ibh3JM$q*%Rc)c(xdcrn;6;`Z9cBUqcx!Sj zW7dktw=)Mh_l0oZGlMG%y0RzNnR~W;u@>DIR@LogLbX2~@3CNgu+m$aEuW%y{cRd^ z?-I*K#q{CeFADZtg~nMH5m{Bl)g@l#aewT^y~LO13u1_U0sP^R+S&4ji$@`Lj7KkQ zi^37Rk2h_+JhQ~V001E`0x9(Y&q#icLjvW%L%J-&ypvV!EG5eIhK*Ryh!HW(uRDFY zhMkO0pJxB&Vx*IhJReQ*x~ws5F4U{CIrCi@q=9pmr7|rYbj1(zuFAWW2LuGTSwkpo zmx3jD?%(O;=;LBDbl(!d>mm=8?v(~fc%D&EaFM+GnbFTJzb1P3+l$*A4l6wa8#TBC zVknEJfW@#vW3S4Kve0h28KeB_r3htXQMcd=7q7C{{`W?TuK}MAVz(Tib!J9UKW|d5 zQ>&naG$2!6TwdEXtHTU^#H{&>UK7IJMuHVySIFtz=A$vAs~-OTHMwhY->K*AZD(-@ zs~cD=dUD3?npJuOg2c0<4au{$3`}?mF;8{Vr>Im6IS4?-Z#BAxy>~sCcHZzyY%kB1 z?kuU_@8YDtHj-HI+;!hrn10%c;lsG(y$+uXa`(MfDnv6K<^o5+5y7`a4$D=Ssxm0r zX}p@jy&si^6};7Gpc@adS(R@X=lj&Q<~K=Y=qORZWJN2s` z6R*dL3|Ohx{1~<|8$7E&_{N8Ij6Abwd;@}lBGof#2qJlkH)SDHG2D9DoGEpyRX2lj zQjnP6EOuKJV{VcU)z7MZ8#FL07`TH(Ri-+bQi|vCyIBM4=GuPzfILHzgr_d#`h4w9 zL!@IG&GxzF`2q1ujN|$OUrnns*P-1N{^a~1$6w0lR%=Vkn&0{CaJEXK;|%~n<#^8( z8JTd2icXFXX-=z8?}j=CU0tk7Zum`>n-4j{r~?=VV@F6*+)lO&IjfeIj16#y2mO*8 z9JvZ?6-JFnjK*_eM4@iQAW7AqKX2C;v2s6IOkECr9N=)rjOQwef=6ale)1{q__HHI zQu^WGSEoynYL3gt9n7JpIO3P|ZflHY5-17Jv(891L^GS~SpCUNK8-|YBYP;L9XmTa z<~jhZvU>;S7$I@8(`MS?Hvc3FT01t|4(2;KO*dR!x=YsD(AV=Zh=p|FU>D9~i zoD@gc3QJ6XvbY{(s`F<*VWNm)PwmBiH=-GY=$QRH>&ePX|8&mcI!zrL%h7@XN&pa2 zdjJ(Hd|M)|V*{CS$tVhx7Rk`jxA(QF#^H7eL-RTtqIr!BbqFlSiVS3AzS>kD^fZ%7 z)_GkaC4C}UQLooMEC(|Kil%hS|4GYd+CLzQUYn_}ExK6Q^Jq5m!oze-z*XC)5wf4b zja{aYjmRvTis3aX;!M%4vMJ=0bdj+E0K1to@!YSzzU$}$g)tQ!8+zAfFM4O#@xeM$ z7W>p`?YEQ;f#pzkuSu*yHjPb+$9`w3l#j&K#ewJfaaLB=dX|%e>KG5%YR{48f;~w) z13kI!b)mpcW@g0tpsbGU(jJXoBeK5818q=SS#&YSmrDu&s1qwv4*HWyviSIT3N|#B_#@p4i*>)r2v%hqd-s!R=PKJ-9=hdp2`S09EG#T*=;2f0 z@}AB`%|Cu5G>)(pr=6KX&Z@JcjSciSG&C=rvud$Dbb|;0Qmeh6w-zrbu+0 zLM&@%mb_I(&fG%ZEw`CIOLCqGm&k38kE(uQF`QdzJsCm+**@QCyuzQ%_K#J2d%L`8 zt=auWjDX2d890U)fr+-l{T_`yYF(`fFXZtljYA2J|4U}i;nw8IMsefzV3zXMM1}Z5 zSIMXLr)tSl_3kJB3`m!~g;x0x+5z4<()azz;usM~Yjwd*0GQLef0HtlhKOMIp`t9= zAOBA-mczLNb*=|9uB%B!2DM81d&x(9pW43Di@S-POgYp#ZFTkbjwoxKq59FJniuZ@ z;8g&zcj^M)Pv<_AaF)pRnG8as%>i|PQijoJm9xY3gQGDcW&KBDF1xZ+2GA@e%2307 zW!`!awc1QoYgB0vm6nz|E^F7jAq=90LpP9@lHzU6AV}r}fX`%Pv^r2!Msx_BsNkoz zyVK7IwkE5_q7$$Bhj!=e6M1*ovI)alqS>{wx%8`d=lvOMrZE-m-w#M=1gE^N@IC%K z;`ApI`&TR7tbL2wPVOh$Bd`b7la(quHd9K}0D!7}a+@RgvB18|C35^JEA(sJW80T{7ZES43)|I2* z22pLGpDq1)$n`drhDXQP*tleeUVCC;VPU&^F{H*})lDX^Gm;HF8;rgdUCdoEQ}}d$ zxk2c-oT8PZD(poAm$*UwQJnsShfurDOMBMqs=jC{5RXy;0DxJ@yQ}HT4RIUP+2N4d zIZnMMeV^L@0JoZwB4jTOxu|qMv00t&Oc1bK!M~!;*Z0_KC1+EOdX+V~eeFFCx%*ha zVy&z9Dspj;rT3t%)TG;SIVG3|BH~4Z*cjz*V`f(FlBF_Os>@|c$)f&5rI?qr}eFMzivtzn#o2lujwC&?Kd_L zJSo1n`*5)$PaQ6oQ7&Jr4%$${4%$Wfc{IM`<>o_^wvB}}+k9U@jA?Vay3`qo;b1(O z_40cAHqNG6AMOGV!_51am%qdjrql4mT46&(w||4Ajl=zyQnLHanTnCvk^G!V8!+Mj z8VJkRR*-A{BpJ>Hs(-Ep+LBl|aDRh22OKb{!KkVj0iz1zx)HH1sZ@2n)+-kbZA z>@AT|wYh1v>PWo)y2@fi2|_EjklsQX>i*VMYjw$^J~+;!sPPKF15ZZOz9(~T|NdxE zj1-La?YP4g`>VASugiBjtTOjf?HAiH^Or*KuuBhG#;b4HYAKgTV@4a5-K>e&>Dnrg zu|xT!-rILzGt82H62?tGT-cPvOHd97W!C#W7fu~ zJBFLVV^?Z5B|eLdqgKLYH#KytTe;M`;CQ=s2P?}nMnI*%dpM-FA@@WKw-i}s+B;F} zT)cF@{+T3vH=-SN!)1wO4QpjRQJ$w?Q)*LvUePah@I7>LqHA1xwZ&DUpMRe@YIe}J z5wHEb|8-0^yW7!-PLk(YASGuAgQOvZXvIE0|IfiRF&PyV%nH2B{#oBdmbUR5b>%fvrqTD26waKotC4IwM%g zq%*Zn&&Q1wH8ls%jy70R6udOFFNabt4~xC<%C^6PZbpw5>WQ9@hDu(ZlB3cVYCnjwh4bGBgJr06VkAx{7J$lsV z6Pqn^N=WbWikl)lJluI25o?1|k?1R|nnBapz#p5OCkk3eB&%KZ zL>r3q=hhN;C{~|u*Dk;8>Wqp^E&X~ihB6eE?Uy(&IH$WxxhS`(S&otB&H0vJ+@Pyt zW7~*7#*XBxJdL$gw@5SOrpKAF5-y@(ybPtDZqUF#}TFp}SysZS!uA9xl!&0unr+e7FO&2+LTDu+4{i6pykhg0v^(?DD^E~u9lbLWGwS9BUNX3!Vp zK2z5pO52F+Rgp+SroAVVUh<(>oP`EI7FY`2cdAeGraZT#q)*9J*dYLbpU*n{kdL+| zt5W#Q`f@cgcJw%c4I`##pY9qCqDt)pJ*_c*Iuc?~ z!J03?G|3izOe9W&z1tm%{>{I6xD=^YX+1fbVl-D1HXGn^A6NQVz+!3DHd`s0qjbO8 zevzm?<~jhVL(|m6kD_>dRG?6(|2?{*+HK5Z0SjYeV+Dw6jDpc~CMG6MPUYgIr^KH= zePTsH3v~q;8Pja0F$T3xo@;6T$*wDpLLYpb;m|H{!5@u5Y^F}v1~Ssp(n@3RLsng$ zuczM`hYw||_><5apEO?K138O+7gMe@Ug3*refU1M+{Sw|AkWrwhH}(4oFDGaw6w^) zW8>%N7ZK6DXQ=9Xu+;G=a)@bO>0X0DtrMB#(#f31_wS_e{pB~?vyDcoL8vhJa#wtN zK!@paouXU>Ia87q|8(mWX<}4Vx$}-;yhfXhhQSamWS`vsB@qGiGKk|;TqIBnV6Y%=fxas zPE}|6Hh7-9iOoJ05I~HeVc4?UolBl)hXciwZ}5rOKP4Hs-j3Lf3sc{V_e(}vN7#|& z$;P8mz2!xH_pOS3Iee*F>!q%5I~&KK`!(RzbD}O`4xH{rrAc>8d3pJAckD)%&0v2d zec55rV*v}td0#3e?rBlHu7=fQrAj4NeU`ZUv4WQ}FQTRhgGEnNSb_)RzT#e`{>1Ut zWYx!3B4H#u3e+4#sPyfmCM&I%%N5iIl!F%jlzb{(ZVjU9zQfl)8`djmJ}7fGI+`5j zz^EamW7Fp)1s8nC_4da<1L?sukc4-v*j2{*tA(TwIkpWrIn|?3$;-8=>db!vHdvAU zw~i9u)w@+3BvS78cAZRStI*)!H{3IB1ArY;)XSSlUC`sNd>9q=J}Co~6X(R_{$CRt zzb-8=uakXd5OLlv;H&}xC#YYt{#&=aiw7V0->qu?hraly#vunxX@Ea0e0&-@Uz#ZY zClyuovp*74Mm|G8Q2D=rtopx`g#3T{`tL3FzgB6$|C!hSZ|4;(RKeWksHv%8Q%mmY z>gww2>+9?cUs)f@SuXqf^=lNT4$sS%FS)q5n3$Meym-OEp_Fj;SAF)D3L~Jr!?M1< z{^-%82+cz#Nd;|oqXrLOB1#1=008skgw%+nB+n_8s-UcNJ&^Ic0ft@8`!_)edUzPR z^Noz2o+q5Sr%=BJ&SJkBHw9(b3WI@#}B6A~ey^JTe-Z{7EpvTYW^RD=I458!Cj` zk&%;YZGO=kA0KB^MTPxNpWIgF1e0L!L}+>(a|>+J(vmU%CyAFYUkVCpdk0!16W`%5 zH#c7)0}-0E^!4T@@JI9iP($Hx_&s{DxTK`Qgn@y92u*2eY3RXJr+iF7M0|W+!h;77 z1T2Pc6BBEJ%n5MK%s{=fw^!V5?z190na0PDAE5@Nswg2wd)bi)n8j#8CjvaEn#e}Q z<0XWJ$1|gMa^h*w~~bgTIn`cwZ-B?e7HC|{t$i_ z&SJsXH8WH1KI?Iy0-N=^!h=;GXl4DA?P-|(>F#`?UKJXnt{lrV65U;4F~VU$+4ji1 zsCt3O;2Holv2l7UIXP82{MJ$EoDTS-Rw};=Jm*hjFxgCUp5cp(0@V&!)Gf33Z)=?j zi#$XS*x@lFuRJj;ZHe?qz1tDTdA=_I08$*gQmo?Q29)#j^A8?8K;OGPUQ6qP z?$t=M%FNDgI2=?))4wq805fx}CfVc16B+WPuwsMSM38XQ1@u0S-nXV-1?pN8jaljNeI&bA#F~6*`iDX z+`%D<92x~eV)XmI=ZmzqV6E2dby{fVmDy7@LJOzBNa0(;9CBXK@rQ?w4#Fl)pRdIl zIK`utVH=}`h~@T*aO=s+t?61FNMG0*n8?!*JRkdj)-H7GWR3khX1+vr>U`|1Vq$gr zHBCk{;h&yoH1?FFmG`2A9Zt5V(ewfqQ5;HoL)j|5g)>C;zOnqBAh|)QsHiCFw5g70 zC@n1onNF->y<2?BLjVAXDCex6hzrARI)Tk2bFg{_i;s^dfBHrp(Vr|X>bRDQ9ehYh zX_B11zg0DR)|b_%VHhfTSzV-G^p~!};f}_Pdbh4kRM{4TLFbgYNvc(>goTUi4dpen zkR>tq1SLbm@^7O8mTsuJ~(gOkHY=X8k1s1k&Y|qVT9s^9r z9cabrUONLKIt5gDba-??iD#M6buoyy;TfAzL&oXpDJZ-&@}cxpn7oxb z*8^yHaSHNGky1lLqc=f7tHRd(c=M5jhfBV8A-(%1pD=Epj!weEr8SUpU!@cB?2eW< zYgrCh^e6S%CvY7;{#;6yPyVBsv)yRHyOr=QSiUy?;-H_m;q>FkOBCLAol|-6pVUf8ti#~+#AQ2VZYdB zA@B}EAS zm>6V!MWFkWQrOU%SxN>NM~$Nk+yODhH`c);b|S>#m!i}Vl%+`ltA%I}p@Yr)w6r#O zo}=A^Na)2*Cv6+S!wThbhmDwuhxYmV&$=q0UL*054FH;Oj7?IljwIZ7IS3GXH)Jv0 z5lpH{B3TJnXJd^-3C@OT(gXpl=;RkBUCy(fV?RDLXDP>qFi18aHb$d4bwa*>FM#Eb zrb_uNu^#->YEbKhzz%~8@6Me&$}wE7$Kz&MT0ES}|Ku6gyEP*5nJ2vB<`t#1ZG;RS zso0N^Bnfw)oA$&-VAx}>*pwW%r`}OcR@w5dO?;!x;cz?NWM`8hS|y3<^;s1!(5q6_ zF)KE@e}^N2KI?S1nKVZwakNmc>al=Dhj2h>=*~pNM!~x>RA{X0O1xS1_zeIMY9tWK zeH%x_)uZ|me|B`^)?Ecj0>J@gv6P^AQrGa`y= zw?!CU|6tM3cU_J~&tMSwoi|#4xa@u8_gyS$r{|CT+$YPY8s(7C_4insF%goY8=3^w4_t03ma*uu%0}g_h%R-;VmgCiTL2yEG{mm1J)vD04J@lU%!TZ z=>K}(fo0{-b<3+uJY>dYu`fv!b`Wot{74v{iT1R+ml095!68Y>0eyb*gRDX4VPDXV zM~@z1I7A%mvyu3-8-(|uM>Wr80ziTF(M6@z_zRd&yr^?0yY+Z!7TR~moTELI0V0)U zIaY*zHe7!)vvGdx-1io-J0}IA1XSpCS}0c?)eo5S8wvPQM=xa7YCA~4VmPMMQIVfmWIyC*8b_J#l=mM>6C?o!T-#3Z0NI-zB3D z^>kbz*`c|6h#gU;40_0|q@n_=DD}X>VJ|I5-!KKEJuRoI?bFB+sK(BZMt#=-;5N~< zdmPzjPwRPTvhzCl;x3H>-t6!sqfjV+dbbWS&J6ibdQi_vd%$FL`5g^++6a0%SLjmp zDo)5gonv8P0aex7=W-mf>VC@zkA=YiwaM8(j^_#OF>uDjIyi(N#^ zYVRG8T4E{m0DuDViuCK(D)c|*YwoX5FXdhribqaW+iPXN(LiL#1%pLQtDE0aK?2Zu z)>CIBLoOJtU6_Cl%8^lp*1(s0DjwXS?rW;Eo0o8eX4hZ?uYJKs)TMWrW^){8C{AuHZvRI@91;YjLZ>pw_AWXjBi4Tubw}7%M8o ze&oy}U#=7UXhXNsLqlLdy*^%+!|{;o?fYboPxMD1zr9+Rat#3H8k-2CfB#lLaNZ+l zQ_W?1(lfK{a{c^%^p77u0?64C6lVzU(Ne!K?ik3Bhw;1A|PG#b)6qAVV zj&m66yC(ZZGfOEtRPyrARESe+Amz!lvr&mHp_LE*{N(B&l#?pTDa6~FOU&Nc*|}o)!B>I`#P(s`f3bgi>aYn|)C3x59Ij*{x?YOnYx;ysiC#rucv5OzM%C4bOiUp`EDe`pdSfM&y9WeBP`_~Gr#Kqa8n@2 z^sKF|O@#1sl9;RJNS4y^0_~xRDRh#ViRoik6uU~oOAVEEl392+xBJO9tT)we^G`{v z5%S##WY)uheY)g?Rt>7JKQ*FbRES;fj?K5%Pq&?IXz;(@)y~)dLBGyr&zpc4I-T~K z5C#B1Dm51o2a|-vOpk8NjJ3HL<#@xU>`1B6crDsmtKRL%d?>rMr6t!?Q*-dghvvbd zA=nTStl;@_gAj`U{hBl{{UvHK;Dv+6N^Ram`%Ow&vXJ<1R}+@S@j+kuN{qpY;;8iw zR8UZO?$s1S@d4w>s#+Jy_)*E{qNj=lk&MChTNu zvZ~znD}sj&TiVT|)jHqo--{3|`%TE7f}CyeMBgSQB@YwzcLob zQA#(S5HHT_9uB7ULvS_mBj{{{C!%@zv4F+!RE-0oSqWZgtJenOMAOczIN};fP#X8;o)Is`4D4M z(=$o&*P~HK%Le;~4)5eD+4U-&j_XJTEJslio|u{`76xpLo{g~MT9}0{D;ryTk7~_k zX}1_=KdaD%t?SeM*eloODZV#*^s=`A;4{-5_Ve~8DwvH;(cz0w2FapHv#Lc;8r>W#yblC0?`&7cKu2gHoXvdoS*$MNSUI!6WX%4{&}PhlXV;!EV6 zny#=ER1r~g>LA+oA8?u<}P63KJxiehJ$`>qb=jB{-HJ7>O6jwURN^U|HRCVXy@X#V|N(wj)> zPggXj)L&IdA8y{BtlE5lZ;C*CEi;Mxmb)Em&Ie3l!3_JjVnd?csw5X@7a{ z0*aebtPlu9Kwv~P{j0yf^3rVwPMsqCZ;2kX_GgFdw2%Nuj%w1NtZn!gL^ zZTE3%L`;m+QpbZ%4$M{`+rYp;cz8IO>LF7KOF0;HOie||gEFHyVCa^%Hn4^X021HQ zK{YisQB;~NsFs!%3iml}C#T~8ayFLowaW8BB@d6fzaGpVep!E;BrH7M6Guuy5*!>H zotmDoD($VLtD8_GLrzH<9TwK~{5eQ`a|qswMxjtXgrufsX8E9xGczhI?EZ+D^L{vM zzOkt(+EhkHCit??A82T3pm|tJ zJtJYpjit_iBm8Zypno;DUB}AG$~=cc_V}ZXCYL+J=O;K8H^aEWKAv=hGowR7LU`&Q z7|j?PmCD21#mcg{THD+6&9n^>BQQ6O0Ry-7EDPpRfgLu3hsOI$omhj9(-?%C`G-pD z$?REjvKOX3)b)pV59~3Bjch7{;fzoTbclSzhPeCjT9#~7Z0yP9`A*|OpXk-)N#jv^ zy0W5Tys*Q{?tHT-0t?NM3wArg9$`l;FHZMp1g(BsQYZ&lRmvd0g4+DAnAC`b1T>j9 zhP*`gt*LRS#nXCPAKCz2>hBomoua^Ie^T3N3~a<#7vq>$q+bNf*Iq|I?^AGSrPNvL zQgT1p_B`l?z&x+;C!jM3&4cbugv`3GCNax>k9%nzVF;xlqhnJ=J$tYaqh}K@g1|{I`7Qjdm*!8doAQ-FTiRr{Q1d71zuYzkpKX0bN$z3zT}$Fjpm68OT==dqXTH+ zn6|3{jbVS40NqNfJWkH~gFaEy?IH1#sf@snal#JSMS(ox;`lZiTUufGQUE#IArmhH z^7KQFYEqyhNoJHFF#z1R)4oX=smU}AHE2WC3bvCw>Q-1}amHFMcSU3N%@0<3!4hMV zSY_#;6rb6K^KDTW%hRWV|NMS6@(}dxfR$WmUCl0ED#KiC`b4Qow`FmCHjQjlbhN<7 zmT$a`7n%aBV=74^M^&>(ttz{>l~&_njIW246%`f5-H)eAKKWam{j29cq~?4A9fMS! zKkLq8pZS|;31}_TD)QDjZB3vBrG8b7lBwZ-d<@W zmAu&fQ}PMju+wl3)qqY`TGPDzN4;dH;)$Yp+xJIk(5p+uqc7yR29{?j2^Q&ASkyXg zNt~@^KxSNC7uwA=eYwJ=T=9{z9Hspon)g0UgwcnGj$YaqAw&HeO_zbjLJa><1wWzpOhlAN3$M^9nZ^$uDeVRY(Hk%6c|5*^!qbYkKLDm9(U zs6k(cz`^g)stf<5LgU4MN*VK^>{{6^EiJ=E2DO%BMg5Xjb)k=*__}RXjP=}&r!w*w z5LKln6GLkkqOoQvo}>D=yL8yCAA%y>wR;?c8iGmO{IV>cd-ysu2-eq%M+@~fxchtyu4})apDFF!J)WL^dU!13+>N(CW^%~nZF5RIdBBjz=W$kQ%N z;E0Hb@aV_%b#>|fc>e|MeuOpYi?cTEL$TxGu+YZ>N|Yv>LA(vWquu@9q?vo{&i%x| zjqVLb$7)V+0l;VR>nM`U?)<=}K2`e{@*hLEt7T+m<8$&n&bO)>7GoTu#=v}pGj?M& z#cLFXMBX?eBpG<#En*Z5ek9OMpQ{s8<1Up$9Sd@m0pdhx%9Q#K@ zYLa;7bMFwl;mM?Qs$3p#I4sU!;ihuQ&NavXC}Fa+P&(14jW=;5cWDIQNOz>m1`WHnUgFRF?>=JUl-z3}-}ebOX5s|p!XVxT zYGHV$aoNAM91;NNlLxsvTZ`tKl&!P@Ns;Sjy$L2y<#Y;lj}H1J8&4O4U_<{5r27_m zTy9MXH*9oq7DwI7I&_0MH2aZ|aYMHld3pQasD}gU4IZwr^B*?T7^kfXl_U{ZRXweU zqXGsEDkWPEPx0>$-e1Zyc)nC`EDEN9V7r$8G806f7ScOToNi~8zq`U6Fgs?OC{{+i zoT#$hSsb|hzgKmx0Zq7PO?yojDp0ph^lc#rmWP-1$BDKLHAka*FgkK_X1W#+TN3>| z%`6@ROs?DI1rBWVPvHh->vrM!%v5s@viF$`dDsv-QS>ju_0Ql<3e$R4yK_Hhk>^`q zZV;B1m9e6@^sDWfK3}sC*qd_b$E|gosgY&ZpqNsWF^y;*_sL4@q3CW{jw+o2Wwv&q zE(Y!;KjV<4WL}2cKahW0Wn*Aa!+?Xg(>b%SvdYTJ;*W~G4C>vE!0HC8&B-d;w(pNj z*AlpD@W+$Rn}6(wR3M#tznYudL+Ci;m9%3R-oW9dOKPk78UI#&0HDd0tx2l&Fb&jY zj&^Ryio_0n5k+95EG{>UuJ-w)>Ks=4(0>{{-KEClGTZY4lf~W9Id(#}bC&dCJ0GSo z2#kn3-djOE{4$q<0eL!KZa#!TY-nf5k*xc)wYNKOO&~@K-u1O7iXHUuuOdlr;PjvR z1V7?``WeE?X_)>kD2Tt_W4+d0ZH_&w_pJGf;e#&`B}+^$m~hT|o)|Ryk;L*Ch#)Uc zM+^13cer1?&@3JLmkjiz@4u3PSP442_E|xbvr!{*e_3f8#@YP=yc+?$H)J&hAfzPL z`r3?0M$M|Ax~j)(BZs)EDy5FO!OYMCz9h2X?I3b_LawB56cP zuU)8{m7o4yG~xM&Uq3!H*QuGmeH-T}*E>55v7OOhd(Gh)S-i6xYorZQ#3&uBuH=Ii z-NF9RXa-bs`8@`Sf_#1@^DwrG7djbBYVAFZ^W^k+c6h19jQwJG@xkenP+ z8&GyHvf;ZGw!eFzaSu9g0+qm3~JA-h!c4JJ|1^UOs?L0Kh=K0OMT@4lQ_y=U5W z3~3I(lj;m~aN#$X>n0Z6P3G&OV#CAJKz}^)j-7hRu3?k*G#{=boEb9fQC9P1Bv&J& zErc!~D;>WI@cds$Hl`~7l59+o-VToOwtX~)jAAcJ#$}? zVQ*EXh|t;00p$G)Cn=Oqmze5p01&dhDU=)6-lRtjy?*(_ zLy_vW-(9}3*P!8QHN|V@>YDje1qHRf|4O;BPUiSWsJKL^xcM|DE-p9!y3l#jUk4%P zKgFLu=odK8Yr-T0k5G;9tnzVhRCnla{m8qdq{Z*bveCqvd77*SHTnV;!@ptIP*;M5 zo-+>sKnM)srWCbTUbEcRD+(y)&2B?&?NI~g>7x-Hqr4Ro$kgsiqV2==TiSh3=J)={ zo6YPdmrmvD@PcAj$ET-0uIlg0OnWctW}%C1!NmCd#setTIqA~=BeR~kH0(fzyr^iy zwFh)`TNe$1FNeEa33`~H#}1kvAhso?K?Aw3VTvPtsE3>ZWm9~V%O*1btmXrRltaGJ z+j%5(_k?c^Y48lDCPYL>MjrfrO&aeXc(^vO=tC;;to&qUK0S!%#k*gNhRvpLbl$xA zeiDar+L~C$ZhmE!H@Wpa-rmG_pY6HOc|$9*Z>1%G9QJ^UY892l@Qjg>u}=?9$*v)^ zYT$BlPuaX|Mrlbt_muxuKaS?vV6L(xFUd9Fb1L~85vnm zePd6;FINQXtbaJ+?@Yx=DC3=jKG7X0qDh$7lVbf^kY1I|NOX5ra_c%&De*{MQ&JiL zJ}=zyQ0HrwR!tJ2{1eYn>de2*`2+IZ?QlSzkmPZug>dFiA41#N1_Obh7FX+*sfx~c z2odJ_V40a3jO*=>Cb67fV%QSZB$2+v&RbJO2DLM88{9C-!{4tfEXTAFO#;>vP@V09 z-27h(5idFY{r%nhxp={z=KbyI-c5&=4t;j)NwFV? zeWR9^j2()9NT&p8#vJd=UiEujYK=J0dOG{uB7s`_$OS)M?^@OcEx|-(){}w;NuHl> zWJC#W6#gswZv7;y9`Nnk^YJI#+=ZLAi_GpXZ=jYGE@~VsAN@00Fn+$%SWLq+_Wcom zTPQ;@4RYg8Nd`v@w_Z#_LPBz~&Gr=NM1;9S(pyy7OhfVD-5OqFg?c#&>4=R{Olgz* zPW}I2@2#VveEYTUu|-4_MLNDJiQeIpLZ@(Bo|g!4NB z8DJu1Ry7~3and-b^e=QQ@v3qYR42c;<>pKaK#SP>-62)JXVn%=>UuaI0|j%FQHM7D zEZ6-t^mEzx=ea)^RMFE%Gkc?!gJ5T7CXC#?xJqw7yoP^|oZK?oQJSl)tTfO}XD{7k zxCo<#s>s!@KPof+1ze--3=GCYUv!av`-g_;^lnF`@(?V>Kxz{9d*|hY+U$c>iFzHE zS0dyD*&It;7SsHcb%_tx$UF{op_Y>k?h|#+2;|^&li#Gru{m_GK%>(0{0y-N-fq(* zo?uiYY5Z&#Rg{qGhDQ1UfyS<~b?_>h=2*t~JvQN*h!m{4;Jtb-2Lr z$C%k7N!al@iyjdX(S`GFvcbKe=3bniLWUR=SV;6*KW|$5 zO@i#`7HO^vW~jJfT@VHiLi1u?C2F80kA;I%ppfC)!Pr+U=yBrIF>&K{1?}i_Er;P4 z%+HEkhKcJqk9H1bLsoo`rzy}Cbq(e3e!hem_2;Yox;?x3&9&kb1=BI_SgcYjH3Vz} zRG-!zEG&ick8^_tv>BGeB?is@_h>1Iw-Vg8d$@WCM$$z5benv0YaVBnsZ9o+Qe6d7 z;fhz_O>FFlm|D0F5%u{OY$S+r{GR!5+yftusBT429` zN;fZ0)E{@pvG1>qCnO~$g@>2eE%l9B)UJNGK_<`CpR2UsjVrjZ5Pa?8@b-Tn9-aB)Im=xV$luWNUXtiS;M>e>BtCdwX8~K*S|(z2SHb%&kUQ216-CI4#ED z#Mjups~&7y;ZJtPuukT|SjVll&ku>SmbZI_ChMF_5#k|a=G*fRL>sCqCp|{H57o*| zP|THMHs7uhv~QW95FLYT?nidJiZ5S&H%f6wp9H$ogH;>m;^I-es;mth@X5xp-?=d`Ux{^n@u(S39Rc*8nnkKh3ZwzVG;XOv0Rq=xy6Ic*&27>oo-4>%I{;HQA`9gwB+Iv++l0^?MNhN zFV}NMmHcblR}U8;0_7*1`4LrlOiO@)t9s$MRl};q-Vs)Ok*AQIui+l-;l0uaX9&YSq{Qcvyc=JcmZP2{e;K zF6Al&@&fDDf20L^jsFWRkh}M)nmikIv4l#;zqIJfUY1lk-{xRWIHTkd?;mOI#VPO;uqO4oq z`cYf+T`;)(hh`w`Uj3Mg#W*}X+%|4ktIAj-`s&r-=oN&O*ETM<^Wr z1%Xd>e>OwCAMqniTQdv(^wgJqj!Igkqq|$V$KT)o5r>J-N9V$e6DyyO4dPBW?vOlX z5T%rQ{rWQ^=p$dSM>T`NuVB5JRi%jQ)`Oe@jWxnF%FJq6hCT6`Fc21c zqN^o8-00azw24nZK!A^*Wn!>o*(P|hG?jd1sb;kj+eC%X!#U{A?u^~2jDsB}R+g_M zL%rN2_d;=eGmNjCSh`TJ)OoP(aqQt9Xz@TgM|!r+p&*CY0-67P%;h2p^zd3#Sy`Eg z-<{kMz2-q=e}tT8>Gq2)tZ~5`9QWTQW8z{}56>w>ZEvfVo1m(U*nl`}*jE_A38jU{Wq!TaP4f*tBKJ zD0vCTaJHFRpXbnPYLbUC$#W^jjqN%4}o27x1^|5t(m7%&lZ6u%gXF@jPKI(cnJvFavBDVr%GjrwGGyCO! z8fh?FU!SNyPOxlno(Z6%)}Qb=UOnDlA2dBKh~(60RmoSiZo=U@IhYO6s4xptKHO|0 zUm*aAg(!Rg&mDa&6V`oqrt1FYuSv|4;mCBb=&6~u=^&Hg4X0w;C&A`Le*NOGs;+fN zJw8^{c&5&!SxD}2APoCxEfycmtg+lFwO+R!TrJY{Z`ICg+QcUtO}Ib?&NO|TRW@A0 z<+!G)RSmFTK<4*U{)_U--0HcnAsKYAMXM3Ly3#sa>mYbXsH)5aB?V&{?2KZvpZ|sK zNx&r+%qM1v@p&k8qtShT+z}!1`nB1Q)DH;e9RQL7j?D7RNNmB{&3bkrO1dkSjxF+P8NVu)00BpDWiX>RlUiTp?hif{H+y6e3 zA8;9$mX6ZEV-=*b9+IEg$-}ZbstNu`XI+c=@#6=XfD7DZb)@_T?n93|^=&Q%YNcYZ zYZuTk%|hF_Q=Jh-B_$n~B^oF$(X+WeX;!Fx+Sb-qrd*@v`I+dahX9UgJX|u*+IW(# z!$gVYAt!j4iC}Fwm;qx{oB2+Ju|yv+kImc_T>jK}yk|Kw3E9hDk$r|&=9lw|l6mb- z5;)Btaar)|e)pMf^80-~LV=X(+i)qSdN*3NYW5vl^0Mmf5`y6v3+~`=B+wtmgM~?j z$l&{jojpDFvhoT5tCr`*)AZT4F3vnt$70R-6!=HKlPhJv4hRUy)v9$EEYt$vWODWw zw}62xj_4U{!$G=Z;!|oTWw6f!T$t*+kwuClW)K`wUON;53Jy%b#ZFZ<7P!XF;2=(x zVaBUr80ddsqqKDA$i`-^i^Q7*8XA0NGG0?&cv8h#Vm?{{(7mlhcv`pIYl5rqPzg*) zvsAxARY=Ooam6TIzfEX0Y!H)M^JI0nbfKVfLeaj-7sqvftzg-$qvN^lspI;DfDw`e z>dKVWa~T2|0->(V$c>E+oB5q@Bm!}z#^S@LKVf?`uFB;k-bAMc!OT_9%}4sjzUBYW zaN>!0U2cL>4vUPOa~-f(Q5m=}tmeU3ZClOQZPBlnV)9)2;R*Jk zoA-^CPIn#&nD*a9-Y}LT#>7&k#QS4izP2G~iSFWSF>p9NJL}=7W#cYsWnxAhndgbM zR<)+k`AKQv*7izKWBjzp>S!hGqxmy-cDmQGsmsX%t^i?&@~BxzcHKfc>@1$++}oK1 zYjdWUuGi#SX_67NhV}1xcAbI-cYjePT$JLRnLEvMQd+#kJ8%$<9f18m{ zsnex9>i20JHtdXK=v!4;M&&KIbLkp6ZCDo}NckMhCL6R+0xmmMKV&!-dJ=L1-2f;Q z;U5@iGLRpKa33u->fM-b(kM6C9nuTwN#b(^uoPT!?c%pBWyZg*~MP-+ou^Fn}&Ov`95PARo9tK$LB+ zJuEz%RxTNHyhM-l==qOYTr7ql%qR^%}_70w2MId;t*4-!$(B4wUgsgDKDi0 z0{w0|ztxO+C z$9)HCN#hqORyF*Yxwza_gVt(sTk3~`#NZ|SSBaK^W>Vt{456GW9m9f17V>O(g$;GJ z3SL(nwU*^(co!ddm2fEvQKQ!ujMxyaDRn>IgYG{h=6Bktob+&=`uYKbG5g2pT20GY zgpV;xPWwVQvJBBRQDHu6H*bT=RT77N%!TGf7miJa?Q7;Lj+l+t*xS#0NOX}pj)g@= zKETJ{9c(N4zS*+J4!!=HAiG_FZrrbQe!l=1I{+KGaH6l#C|CxzNL;qdqSkKu|VX8(~!%S!$1 znPMOEw?@0z{Vz3IlFm+>kvv$@M3IirAun|fe-F|9`L4e$9d0z-M>< zN~D~geiBcj>6PgETpSM`fHU!5P;I~Qua8w$n2&-qc+E5oC#TA@&lXiVZHoxihpgIW z*+2OAhV;;Q!ov~d;m(1d==;Ky;qt;T7MO_%qHs*gxHNFv`AL%>?!I*gQm=o~eo$*c z&p(M;Y@2u#MEQUPRPZl)?SfAz0w3GiMJvE|?I%e9PsP`fM$hvgu8At!1z8j*d=LvJ z$u%K287wrvzVJk&;x)c38mTosJ0kApXfl|qSl@|=&`B!XqKa#Cc5mJ9 z{O-KTOhqLEGBVe&t>ioQwZ8^z8l1wc7Ra{i^=wjsV-KBR$;tHvWE6&q^`Khx+azB_ zKRwLKaTSb5k6JcDMb{_lnN;%OCezj{bXrNpx=q*FC0luFy15pDtheVA7tG0M)NTu% z9n8k)c;sG)ldO*;1#HtJ-_qTZq^+@G%IaZ67CR$%Vp$g|4Hc~~v|GW;5Xg%LpvUV? zB?)JV7L=^%@b140Za(~S@;=m#O~3uFt-xF`-L<;&SuST~Buhp<$t+Z!AI{(l0!- z`$0sQm_aGZV6MUjyVumzWIB+ayX>WmP?m(Tz=9re*g+u+jkKmI@>d~{e7vdDx2?^5 z=MAH26Kd=(UGKrmE^&7EKcVD8!1CljRC0S)|D@#B{``xQYsbaDfd4e)t0s^SK_IY* zp11O`cvjwJ?(L|LTxZuIkcS|&ucf+_9KR-=1^+^e)5((8-k=|Xh}L^bI!}p%U{K@X z;lUNy33Y}`gpdgc9!z<^JoX}Esad3qpy6NRFl)7IX>N83+4#NWl;yTjHvAe(1XH2+ zyzE`NpoLj51G_MMYin!d@ZkqMJiM7Y8dw#U^SMnkF=_Aa;264T6P(8Q(`NwFMD#8FW4X5!}THIYDb#s!gT82K$8c zST(EU@#|gp_dLqngnublSWa53U5Q=~dbd3<*I;v2UGG#s#H>+Kcf3{$cm&E|DM+e{ zY@+WAwANjs0DEZrn!=mH1w_jpT!pS|O#$Cva7FbXNunYHX_eOSzMNFDg}lvg`d?Hi>sW zG56WY*30aL=$i}L`s;>cus4>3yZ@XJd>F7j;$Lka%WnC=PB+u2HyNS&<;@4@<&Vz& zdP%(YiIv$nRsWPBd~Z5ZmRmTcrU3gGMs2Ke2N!ogIY;}Ck3Hor_3jB}meqz5BZqBX16`6T9Q>i0x9{rt919Pqgb@uI(wr z$|~i^a)e|8(->4YD#4;g62>yfHR+a-=Or2YJfphCVO71+!yW2M|9flLl+N(8xVRX3 z=?$G+vU0gZKFRKM%A=IyF_&R4vo>dD(Tn_JcJkll9|LeI$80{G@4Ezk`c!+goCmFU zJG9{lmfl$%9o)ZJsZyXGM|Z@mUFY=8>l$M1N18X|<+Y(=J=VsP5(JR{M%QBV?bav8 z6I&%CXnAtp%y;o?>Wq0Duhwk+VTAS*6&7u7YfD%f@58Y-#AmB8t+zg9eKN5PozvRV zUcfkmBpzISkI5BQZjOKz37U_T#S*&9F#JEH7hi)wzW8Ygi&9fl$2RUr2U-PRx=*^? zQqTA0r{3Umv%aZw3nolLKEp~^ZK5OP!xDoCMg5Qx9q4E-G*4x{em~iwYW=}UJ5>lb zIp=y4AhF+C`V!wIZkUE^D0tf7eyn_tj7<9nX;7D{m{{wD_qfthCxK4u^CJ#~2?~KA zV>kR9GWz=bblo#%T>_=o7QE}eU;TThOOubyn3k5tVbcFpO_X<_Eri^0;>K&u@zlP& zLCu3D|A)9ch{>hC18fr&e+F`Gmgldu!_TFdrS+>XsGdlpUThH7v>X2Cu%@41?C93f z0N7n6DU=$@ut#^_SRdYl>A08EWXu}&#FyJH$U>zJv9S)%CmWLH1`XEyzZi5y-=h+X z^)YL=-0I<)e6I7(?+&Ri4)O1y&86Q1<$Joix_uFxdS9Qhv*VHrVgznADk=|g1R;V~ z)z`;A1fAI$Z5ORs3ao$Q+|tQ42zU|$Ga#+sBl>rd&r`15YTJcnv2UPUE15KRXJxQA zCFIHav)P`=mp48~;T+=qT@bWl0E{lSd${t{DOL8@#*L7P)sE{E7z`#dGBQg#X2N0A z99Z<#(`1u)$=xW9kZf>r4 zFiA&u_l~WLZzzX>yK_w4pk{QKd1rJ%lEAu1PdrD~zA+0|hhKQZQksaLa_M6-@2Znt zVsx->;68mxNlZk9o?#BK^^+-ds#{xI>v$Z_W3$%1SsR!)pZfX%kMkr>P(QK{e4Ce9 zn)QzSKHAvYX7PEP99WMFintiwyLV6bqFl{7B7}-MQNmG0-^eIof%p+Vlgjhnm{&jI z1Y9esEl~hQBKH96){Q$P2g`Xy=-!l+$jCCiwqPG0pX)e}0KQ{T(^h61-Sf%a9{xMo zLN9z*`9T0lIJ9n7DooL_R#KWL_Qzn7+OD>7me(^`zg);0++wK)e5g=M3rJ|zZ;NT!D z8~j`@MUXj#hMGE4v)Tqv;`?9pE1IlOIVA4Z>E6;Wae=Wfx=p?-0|nbv3`77>MEvcM z^2Uv_f008)3aL!)Vq1Z9hO$Df!>X|N^$WFRfyV2WSJU6;P>nDkxO$;V$38b!{H)Ov z&tX}+%2^L;0~Z+3f1o}8Ar<*Q(8T{^wUbGqb#?q&*S{l^_%2XtUunUv=hoGKfT~{R zzv$tE)LDyyB;NlodoTa*m;?U!U;p@?0M{^rPR{UOX2=O1J$m%;;lq3P?hz3Y;p5ZD zoL*?i-yXMn1zru`+1dI0`L-m3OBgwIUL>nd!^@Air~zl~G5u8;`3@vfa4mbZMe!#y zCFRRXAdRXr-1GuZ7ZVeN<0~v&+?e)zXq7_E>bqQr+%r2%zj!S0ECDKN(#lsqsxyko z_TmEi61^%+!_2(e9!3=owHr;6OV7xlqN1WnToe_Qdo|&1+&6+8}9S{(}u=lk9gTa6V=)0fh`&m&32TtQadwzo>4WhUfHZ~=3Y~+s~ zJt8J%5*Fp?{dhI1tn9gM04*aUBL&3=-8bMGg__+42(=ryWZg)lO3&irJ4pr#3JQet z+CPcOA9HEJZ@e#Mxp?VuTYb%Z5J1ny#)e=~1Axh@bdwH74%30TnhSa*)=Kj0l*B|c zMJY{9O@^!o6dKX1dFp%g$54>BfB(Le34EGZXNGXf^z?LPEh+tD+ProTgY}D!)Vrz| zdhm1GkfNcXp*~rLKupV6rs|%>b#HLmZ$8!lr+qDqN?e(glvK-ws-dm}?8*0>3_)!8 z{rfL}7F45&hBM+NS=%0qr#}Qvf}0Qi8pXt#_!CwU1Y}>R-cx=p6=3(xGg2U;{pMC+zH_Q+l!`ruS0bl9i zbssm5#*?is%y22JKs_olvdr`R46wW{#sRDD%JtiD)#7yR_0K@vS{thtI@xH-mPt@l zQd+6)=sZ2zjd)q4{D98^b1->+I{6WspirZdg^n&q*!wz6%O2XBEMSnJtE=mh1qr+V z%=7GIz2VqmWuSo1aqV+Zka=IGd{c$-FR`Ml5Xk#f{HfFu$93&pyA}jA?|R*O zoi3bCtxIpO}+-o^1X|6M@$2cZA;|<)x;h1INT}gjB{Bpr)m5I6pfE zfH#?rr+TfQ;{@GnOk6^*g7rf%AzOOtH~a99NBiqVCd0ESXFGH}SinA4WjzaS#ArTA zGN;)fE)a$t^$0!KU#*<fyE;C& zeL)BeJ=FPryZ2n9(xQGgm@hm$JUu=A>}asDP`m!9J&X#Eb8mH&ORx1a*vO*vJ60ef_15pl)MfYI8)_HVQpb* zBxUBL=X?|l;j%JN0D@}{TOR%B$@8;)FU3HotqwXSSYbZU^R&mQdq%~{-7^&fo!0C3 z>y!fF(7fon%w?q<+4@6t0%Ff2$bnirm|SRLjzz8XiQfhQ zzh++L1}O~0_vDF8fJHTE;(w<&<}@2r(<%4y7Cs9A_t2Xe{H$}f)vDG6G(O&h?Lev3 zk#ZV_B{7dgrp)YYk6jcD;SgSDWO3c91s|qq+rxp_8_1N50KRFLfqbGfd4W1K8TyjOQy0Yqi|1hm?-@#vN;-QXD;vys8A&2Z)N5`P>}Cq0q_^brRG77@ zHDk10atm)wC5kBi=qX9h$grPpNS-xAcf|#7)t|;(CA`nfT=nd%&rUT0M!rfzz3X4h% zN#vQS+ZYl_RH>1i7Jj}=0wB**cyCorP0c2GA2Yn&L6>5;+;6;x88%5` z(W;3(e!w@M;1$^HRsb&0haYgk=m>4O{o%B$a=4bHm)v$NMnXmg1=UUL4Yt$PVw)pr zI9{to>qffnuhp+N9JACcro-WIe}DfP`<06Z@WCQjQKw0%VNa){cBt*_uN=8vrW#tA z_{Dwje2};*2*3I3e$Veb67QtNKDp0+*@4%CN6N3F7@>m4m{ORwbCwAT;Sv@@Cg5_> z`YzyFvH#qqrP})37F-Tq@%X|tl$77?#IlYPU}&z0D1ms3N)kyTA>kIr(MrqxWTKQJ zW{rx)&QquRTFwE1fsgo|HbDFAsKxHeVB_&xZH{abP|qzJ4$;2E78};<&lXyH+ygIx zbY&?e+#iq`eyUVgS0jZ`F*w5+7}%`~v)u-67r(;9jR1$PXl5n*moL4p;zC{9+uIM? zgwCvgiV_HHceAsxu>mp&hpCF9V)$G{M+6-%DerSOHiaVfr?wfon_aApi(pB(z@gz4 zNPX3|F}J(ByCgB6^7t9oak$<=6H=Bfk!z2+JzFLrJR$-LxC3rQewjHr`|FdQn4#kE zD@6@Q%Q~K?_MMRoT;q01-q&$XQc757W@Z3BWqG~fIQXXyz~o)6xQc&|n0SQ*;;^>w zvgLVt24=;A+o3OLw`*uK8ep!Hi;L?wM9kO!=GMk zGvA3OYbM*n3}-OKtd#Z&^4TqhT09t^`sS_o_O0^iRu?OQOYQW0R}8E`y<90rwsO+r zxGzh3R}sACasOb|*$!ukXu9Zq)$gLsY9}*jMEE+*1ki9*MtB6##}qR!cLuuw))l3{1r&y5dP=;RB6#;0!M zJ2nCd6BBEt3gHirkFU}12#;eo;xrqQZv@NzDcwKiag2?P+d{}$hjsaZ5tC?><~Us7 z8Ar>~k2Dd_qhBcwt0P&XcXZq~TY!|C6dSu}&BscI#mH{hZAJUFK%??(LFn9h7X>4C z#T4r{`R=Zb*BW$1qY%(MoyN2J{fXnlg_PqeUrxjB*b4Jegv(f!bxBxaA_>Y)N=~kE zA=#C>8;*{U6I27()Qk76DuMDVkl$wMA^g(a-QDDeOTcUTUG8s#(ZedPHS!>zOG}H= z#V)(cU9636GtB{f4w%pg+DlV0Iv&m-3wfI`b>P8z<9Wk6lLAtqHcpa~k~aLLymqmi z=JD#{;eEiR2k`w@34Z5w3ZQw>aT+Ngu*1y9r@_o{-MMJQzvg~%=xUdCRrCyX+-ej| zTj7`N9a7%sHgoO1IK)zkpMrwSQ3#YYYkj85eapsEhZq(uyC!LE?TPL)5msok-eOaiA?**k>{u^?sJi8|*iH}2$XR9d`#{h4IqBZ0QlLXu;l zR;^0?NU>hq(yyEtRvm2)u$I?+g2O1~=H^yzf_fd=-q|T7BO_olCt+v^Iw4TsUv~Um zgr_^X7iMQyrhmJG`kEG282qW@+8B6lSJq2B3-httavOeEWNhi)1#H5thnfC z+9LGaoW8z3X0&oWC&eTD>#sZ*>#msSmY8s_jqya?;Y`aXa?cZMa+oo-%IT`5X9Si0 z4+03}#m24TbC$yD>gsT|;0t)41dM}{lJc+p5k5Zmmu`K+V9eHq7GS^GeS!L%yDyHI zit74aZ-hSHoR85#{*LtQuZ;s@($93@F94CATlkD{`>kEDZ+gTbg~Am)m;zVY4N znKu7>RIddOyL8UBLOf4IP>12OYG2-b`~DHT(rh>#-3K@`23^ssqm`hLu0XxKAAILG z75{lQ``OJ~YBMt@XRt^|$K3p2V;blo%@VuemY{eqGtJAOC!S+}eX=MTNZYvW%V|2Y z;VhZ#T1DCy?d;Bb9^n@-#No>fS!L!!Uxc$BSg+UbAH^xYilCLbj`JvU`O1wu8&_Qb zLa+qPd*8i#r>Ut~pk7XGPfbm&j8JBvr4=jjdxDFF6^1|8sMv+4#!}SDTaum6y8bpF zHq7m^125DB6gd$^Dy1R%gymgr;?ohIG)mq13~Ec7Ph!MPMC+`qrS{|1@Uo1>kjn$?up*x1Sm zmz9c93%#)mmp6$>qdX%ctdQS)r0g2@!=1Hp4c09Ne*Tj*KeD6w7#-g`q*78~IssGO zIFCBO$Ik%>k>mBo$tvsF8v7NHCq7HsgEbS(`KUe7p$4EjYSF`#V?BW749VS!m>+1_9;h|I$tsFn3=H=ym z_Du16fc9L3Pjr5Mes}k4qqkv^fNwoCq&g0sEN|}Tc}q!21#Z6#^ofX#jeUzd)`>(4 zTF?0SJREn>Q4a_S83frX$iSE9;E-tP=n{yw)6&w4i;MA;mA5q|EoL z;SpX3|EOw9Yif8zgzd)EHw?xM^*J~=IuZ{LFFk%iRa)K;Tp>eDRW;V+ zV&u!caxpRfaOK8psW5-M`}Z@J!|i99u>zP7(fNv{hBAeD;3%TMtaa>kbac>WHMg`x zDN5ZdF&J(@7yvCFoba36wO-)U#KllDP%<(~p|W08Se680V0(q&^#}Q2pm1@x`v-wR zLCmX>>FwIxGJyu`hEEB>$`VpSb1^*sBd(OiHPe;wmvqvUW^-FxUXIm2@)M05{}cQ~ zF!Sgi!c$gMQi8seccfIo?)r>T=*f)H3#C%P*7aT+ug#kQ*6&ISsC`;Aixz?@#uRif zFn(t5162+n?(yQW>OJL>($XaFhL=)nvdtdh0=zfg#|@v{$;B$ED3pAh%tKlTY-x_6LDnIv)lcBhR=AXlj)51AoCb>=%ZYra-(1wtlt z!+ducRbvBY210tRii(OVe}rJ7P7MSg5D51*L3n0PP97ycKR+eqOVlL_*BCwdavsL3 zD(~LC3n3Fwt_Qr|8@Py(8|%f|rUUsuq2C6Ibc&c_Rx}OIuRtKFudWKh_4W1P-^W~- z-gmRbX1x4bZaOFnGinQPn@6L0>EQHTF|32oZ;86CJQEZ zbn)5THr$Ef;k>E>3V;NL|91sIli-58O!Ia41+PEiCI<6>4h((oswyZbpp6+PJ&p_3 zAxk9lyMP+dIe&DxkOKO3JWqE4P0?bqp&o#X@4mQnhY=k>qpPcXF*UyAc~SUd2YPG% zUE$9aga5Gb=M|p=#%Z&Kz;%C3D^I0h8I=c;6P{<=DFEo5m`GADrUr(|jIxQ`#ekOW z8o_Qz3%6V96GbKX~LPfQW5prE#Fn42)WVYh^& z+2X`+ky3(NLx3Bxr!v*~Y`i-yP7foJXUV%j?}XTL@gBF{bG5xRSa4T%}&2b2nkC z)R9WdM#G**yV~S{pEwY+R;#W29<+jSh>q9Tg9Wh;x8Bcm(IbPH6+qgTt_OR7qB$E$ zLq7MT9l#=p?}_L5#WcSFda?34s>3JWYrAl6TNgGQnHaB4)VmIS(KQLEG(jN%Hx4h! z1+0bw88;%9pt=`aI!QIzY{xVF^PCiqk#f@*pGzILUBY6L_#A=rzw402<8TYtT%E>-LQR01liF9m5F2O;7qg5sD$LXtkVy;3q`c7u!-0IY z{W04R1kG)?v%>`f9k*hWN6hMFKcafu1bN#WC3$aQVJ!_7rI=U@eGv}NK?t-9U11jn zkPontFUMUOC@>u?OnP$R16FZjEu`go~J9zsJsvo9!g!k$p&|J!|r!uRmJKu(ZChP=YXkN%1)SLo}Ql8 zYYWyYH4Ms6OiD^hOyoC0lCZy(`frF5Z$U<~yF4{EmQa%6aN<$bpSpu+)ZruEe_tLn z^q2CW#L&Mh4~mMQUC{jA@%tV*Ynd+c@FOYFm6QSHUsG31Z?lO}MVU~)XT5tb zMl^GV@*S>ga8As4Qj!{3t@xqaS=BaQsUsSR+-f_u(H1%o=FL_4R9oR_XXoR(V<*;P zl;Zx-B6l|K+wP!FipQ4>9AeH)cE)-px)e8?s&iQ*~1o=^>yQa`FPB5L({B~$w?pbpZ zzg}Cg3^c^*{@8l{TBzh&-8Qlxj#4SoCJn~r-}o9pmrR(F3vBh{j+04`%13~_pu7r? z51Z*ewo*D<%m^W~X{XriKrj_nz1_nM7i-tp8FN(L?p!Hq^f)_Q@H|?|DXxC=&5Qqa zo(^52)k}nnn06Lo=5&9ucT_mp868)AvzjS0SCv(>>gmIJpBJ$R_0=K05E&?yoMqWAKL_TDbBG>JjnY7Umo}z7R9yeQ54CXO5^KWC0#6e!6VCAgBzK) zy#o7~(q7phL0Xx3yFN*}7MI}?10F)<-Eos`$HwFF=79T386g^$_4Z>`*2N98!F*fa z8+tT~-?lg}Bvm@BjtrgrN;$LZpowX&NnU;)1=Dt>f#TQG!ZQ&nT{_4v*2csl)!pyd ztj&~e3+}ZtM;!Lc{W|AIgSkK3V%hW%+Zd5VX?zGoh8UgNH!$$NdVB?;7na{&Z%`dovZ`ZNmD^^Za;Hc@;jAyEVS0RP+JUWStW2YOqa+9EksuoP;RF&tk*ryZt&kknwNN@AY7|gZ?@xT*3 zj+TnwEh6#?A2|uHn&cmCG~p^;gS_|!&RcDL+GKo2@`Q{=A`CeXp@b&VO!K2+3&%-Vq7PS&;&Z642nrhpH)|#|Z zBrns$PY;<#%8ZrrOLI~@cptJGb`N=;pX!nBs4Fl-b%5Y^CX2}Ey6&*mL6?IFUM7D> z=aLA45TaAVD?hM4h2P#ZJgmNAl;XY@_f+>~{tD03`zwmjyj{MCOvKTr{^R7lS+J>% zMjU+~_gwSA63*%n(vctl1M*Xf7#)v8Qpd5MCwFT}s9%;XawIQjgb2DUWyQQ5&(oXx z(sU<**WM&Q#dWP(RUai7Z6ehDHJE$GUm2x<cPc`?Tp&p$l`X8 zH?Clnu8}N<>vPO0oc4pE?-1xLfbM>b+?pjn=N?E(O4_ZU&s|Rmq@_H4zZj!F^Oy9uihkzeMjhI zBRDv?pHSZ3Z6uzk_468#eE*h=XV+6W_sIJ-q_T%%Q>~SmhWK`y{GR+ zuCLQGcZ!+TCq3|Bi)9SvHIx+8vS_zE^<_$i@NY@jKaz}4*U+$?l(Ou8C}FBV{o`N?@ao|W6*I8#(szx`2``d98s{Gy0bk+S@8<@Dbxb`tq3X!ra z>}dQRIpqEHvlC&O5WAz9PprO<*-}+5Wc#S@gFMSDbY*pZu!RXX#hEX$Mb*K~Cq2@J zIcb(^{ll&KVjg-_Ls*@iDu-qN3SkG+Rlp>5W{;~w&FcD*s%UKzLEh_fod{ zvC|F|H5{2d(e^l;SN%-NS26Ln$60v#ZiLPE+&hG(9-C|si0_MgTtFpzA3YfocsQPeELgN#;L1J6@LyQeXWkP7WHHlroF~68H&t&=eLH$|P{kN7c&m zt(K|o;J@tyjchC6@TL#eJoyY91o6r)u&%XM}6( zXr+i%t%SPw$s?!v!j!X}oZ^E8q4R3zZ8X1)8D^+hoYY=9{}P1$6@xGhwNKrIa#a9H zX9wf7x^r>S2GQQgFvIZokJw7kNn*>oFoL}#PV_LKZ{^UX)Cv0sb_g6gT@teNuxGnW%@w}5s5p=KO+`kG*P4=R_8$!gM%?rt& z4y>#dt&+0;0ZWG0bGdGOyFrY6aMUJr7KXTVLvt744E85n*MEwWlO|Abb|>=Kq7cyH z;U7cAdcEAUpH*44>$rnwZy|XW5s!tdGmbsabW@WRTfn)`TI72iZ6mI5c%j7OK0Tda9dBnVysH%WQL&F zV&dBkasYN%uU&5_u72ARD9u`L_bXebcvwDI4BNH2Mpye57M)!4`7HT)tm`U5uLA<1 zf2Af&v$(j}e$Gl};lDpd_+Gx- zk^wYsne600I7yg1$*vhbfq3j>khi3lma;qg&(qxqUHDa`UC;aQ7*i@&j~{diLMYa9 zEvllTLgWq)wNaE6agFtC>v-)QRj100|nF$QM;A|I= zLA&?FNvwM~2Af^zG~G5^xF($RO!`f>7kYuTqp0_yjnq*S(ZH$u-G@Kg4B~Dynqu8b z)Ovgg@&I0yidR-y>359ezizgT?nz2Y!ZDJ0&QK@kRLSous7a$~DsTI(aXec#$z?tY z<~tJw)8?7>xsUEisI-~y+{iK?DO)NZ)UKWOB}Qydtv8;ZX<-6tRx3uq7uXL+71plR z(51LN<5=d~`604B5%#m!W3SZk%zql{T&MPY2#XT}xgCV(E%jqy;Gu=s_Slj6XodM= zu|Ze#LAUJ9q998=80DSs$9{Q>(z&-Pj{zbw(V@g*yoSdX?Y8bZiEVAs9m}Sa{ra$p z{OqnAHo7V@2rvP|l=3=7zPXvu)G|;L7@y zBPSO`MiHBJ3-Uhv!6W7LE4cg{sor-wh0|+mYxD9fxcVXMkR7HdjcS%LBLtbF1`+5)`d>g4S*QjzHud>!N@njwo3n64nuNOBpHI)w8 zSh-4(XtoN@Mji2+iu1GMg;Sb)sBtH?b2Fn4fRRCSGYL(S=AU+cag$LZH z^Bp}RVmCZFSr8%@aIxdR0fFrKSiX=CcsX}dEz44qDDtj?7r#)I8~tWjx!)5F?$ z^6Z3#nVGqupupVRe06n|BH}X%&$G-28Fi2PGA=`2C^X~>e;k*VzXVC8pNvh@fk3`a zTv%xXsld>=<(@L2sRA4I3u`c!PvwrLyAFW_W&kH6eK0t_2jcRVApid7y>3Au@+89l z^W*FX!mKPBveJQp0p)qHgP`!6vr=Tu zYNmofz82mj%5>?rQITxfn(q?1X-o(jlpJD0U(K+skSeR>tKLhOXcVTYD{;9BfehJG z_$r4etf!XP%y)*0xY%dvPe*Ough0O3`cUJAxM!tq?TuRc(f3)(V-x$ zVGR6I@mi|zkik8wW}djyoxv< zO;&v=ztlm?cQdCI9BA_Wx03vOVE>3Fi?R|cA3Ea&RSvYT!kzLTj=CzplnW13X{5o|nJb zN->E3v^DAk2#mtUglvkh0@`o|4<7UH;D8yLh_PR4iD6ItMkrNa{$&W{cKuj+xL2ni zxd$N`;!uAoKU@bF0{M}NRua3#XgXMkgX^v{utIcrajtQ^#cnZ@yYDDC5psix-tC|V z$^!)&1Y{R?+*Jm++sS5|BDjx&L!lKnqWUjGAoL>AMn*=AmmrYNA0-~AN6MEWkjS*G zyga6;pzQuON#H%>%QE=S7)IIs{c;&>lVd+3Tc2B? zemVL#Hv@yj8nx@cPptu6#U*mQtshioMD5zO3u^7x*VmT|F)%FP(QTd!^1+7Xk@F-5 faUsGLy!tPHS3rK8)v7koQDY3Au6{1-oD!M1U@wjulb|~xs0PI3rncD-f z4FLc!k=P0VppaTm0RTk3&)S>?pgeKsn%g!2fJl)2Ia2_&DUAUDwg*@_1_2-w{M#Y} zUaDaLfI2+Z!2*V1e6ElN01UH16dP`&!2$*VfYu1(0TAZm83X_b3>X#)VHf}!8;03Y z002Bg0OJXGHp~_Z7hy4fsoe7W(e490fPqc;5Q>=G_u)^FrGkT3t&br zjTVK+N73*E0RPT~!bTb+3g8J0VI!NC%U}qE_*@3NktT%Mv?u_gX!u+S4>hRsdVPOONS z?$k$5Py6uYtRofJL&;VyQes=nioyS*q3A2l*P_M~ZK3|&XF1mfE55>8d0W6cGpEOr z)lQ+DL8QDEDm3hqXngID2qM%IzeZA3VfjyN4)~LG`%jB)hypB!E~}kTPYF5#A)D<< zTDk*^Yy2s9PU`Izp>Is+%;rJ@RSAGzQ^NK9JWJ;lEmSQN(XVu;kq&4kafoLYgXIXb z$LR8cu(CO!cyi0567-vIT2@m}EY@Dn&y85V?wL)=9`PaEPTWifFBb zAtjY7!SZ~$XFMoQ;71{=mRN9G0@Xqre=Vl@WA9Do=Qwp7)cEv-WxBVj{5}1}*G~FK zp?BhnMR$N70+p9aifEQUX1pr98Ow>8{WbiJACkDBDB(24GI>u2G*X@Rj^mCem#O(4 zrk66vXqSJJaz=F??(^+>T=kf*=-OuUcfEnN^CYW-GIt%;*yyX%)+5zv-;1_Qta^!S z^g~C=++I2&gx4+H;$q`=V;SM1y-V6o~*e zFeC+~44le@0z7B?CjP}>mOg*p2gS*J|CA)zyzh)`XGm`Tq@s>wa754b4a1@!%0dKj zzJ5pcQcZvw)7;QCJQ-ybcFUx;LN3rKqWyQ@G$a|Z;%f{^wy)=W$JnSP)K{3SCz*81 z`!s#Rs_MQD4-QOK9*yaIdP+_I%p}+Npaabyuljv!vcKla2FFGD$4^dm;Crg2Crh=EoDY z+Bf$=qJSTRxO|P*YhbWG^#~OfL63$JEqvgFf*KJ}eShnyQ&n(`w$vHpgJd(Ccs$AlYjj+BLX zmJ;@l=4UP7bHn{_|N7RcsF)>++SjHjUw>nmxqP8cTh(gGf_KrNuQ!`s8KZy8nl~+7 zIt7Ub45uSv|2j&Z9Bf6(wgg58GLadS*p1J3$QlH>EJ^H!QYbd(!wG95WhU{-ioZLg zboydV;PBL!`|rZ0vvAGa_nM2PgKHH<-b?85J;bMWwFj2jFS#B~@druzJYU*e60-i1 zyv2U%hmB}*vujb|fupG7 z9H-}&;hbR{rU5ye$92>HMmqXb`hMfOy|;7RJDwMN6hhYML6UjY$P-xs>2DDywh`ry z6{h}d_mQp+F#>Pm-TJ!pgIZz9s~xC&z`KEAA7AUapEi0Q$hTTr~EumB+f{+o4&}fb+mjl-Mdwzmb5@@~1RV_+(NE{jXhxM*kJvYd1&OZT z=0z7w==Gjguor$$M}&Ku{35q5e~$e*yo#xmxoiCSY9!NetRR%jnMHCMT z4U4N22^gF#@GGfKb70NiI!10YqV5E(9dze56E+{>);2b#dEU zCw<$*EAIq_^&ypr?6#`patoFWD6@sS%dqh07O+$ztwl!;U?aSVD9i%VM(M>u&*f+QMYipH1^VM}po8vF(;NH4=jqDx6FBda zE%RIy@g0W_Xo>Cg%zRz($~Z(Ow?}q(K%cxF!0O*I2YNa*rZkT~_*&ODpw-!;y!#PV z?Re`e$h<)Yl$An@4)Wa&Eon1~D&mD9xUSnR4!D#H@XL7vR$MrV=&qy$$`T>$&ZWEe zn@W9t)bq8Ak{{04w7;(D(&KkI-}>`uQPf)AXiR>C444f(eA!SlH4*@t@2mzS3P3d(4hrz}_H^>~ zb`A&#fWx%iTpeAUZ4(j_bhOooh)F%&9fAVfVq&6sczB#c;?vU7DCoiVc2@uX{i9{Q zud1rTa9_{@jW9GaWO^X1sjiGbBHcpcL5!^TIJi`lHZ`(Du98TpBl^@72)sX zfWAWsqP_=yC?Vn(79}S6h*dzq;fZN*keimi5fcxWpSSH@dU|&k3l4EHpZt0&OJfTQ zOHO`aZCzb0?`N{IV)vLHJbmix>+2a35};+q?(63l`7ALxIoa5j2Xvo##3U?c)+9iOM6C3AIkrJyBjYYmro zc&hir_kjSdxJ`7|&vQOLc3xB@%m^i^tP>ILVdvszj8w9)S7YL&Wn{9~F_3@kE=6_k zE;Y>A!BdCZ$lcJ~#?I#{y|An`Qs-%~jaQJ7kf?&WtqUEesEKo6cFz}%M@saX84UJu zTr@N&26}qoP)&1p6?%I7*G*(}rihy2J$jfj%qG5|pfD$#TR0lK3sw|^f4T(avvR&?f>9@=F4!42e8Jo zcrei&lQ@`;CMs-kcQMvICzO-IUnm}{()&Z_!>7|-X{|Pf;)0KhD~n#`HR-a&Fe5$d zMFJMKxM16K5-w))D??ysnB6dtFJYUi);>-cPTWdJw23v4r zbngwY9P4JmpY@W)@QJleMen}5C(Lx`3>_-nDL zo12VgQm9=Ir~)to2@pJevyn}oqI)X!ipsdrx&ta`##bUr zsEOcM46nznLO;L2j5!2c_`wljwEz@pbi66&FUn74vNXS~Mw=9ySrqjb>r~IA>bw?T zy=k7Hd-)$@i7|YTq=n|i?0042Rw>u7eor)BmKouVlkCktu79gI;8W$1pb8-@si30~ z(0c1P*ck(fTzrAyAR`diwt-v!`yA8GtZoFczTfP6z`1v8NvGgf28xPMIIqLPz z`xaC$stY-t!9^q^9L)1j8T)n}hjki|l3MF1z0!7nyuwolQ(daFQX5P~15Z4+IWi6f z+4{Hmir9~Ee1cu15`qbaOI6=8(+!z_vgXE&K71Bx01YmxAY~UvBPRx4ARNq1&*g!K zUATu4eEGb&9!IrI?hb^k+;w2twp|UXB2NJ7Eo*S*a?*x@AR07RanB z&ob2Ln`@HYTS;NC>t(Z7gLwn@Wv2^VHyzP85xcI@YcJ%2YKYm@peDx+sytrr;f8(! z5l*0q0~M$O7C~V!IZg{Oh5S#gK(SK86A=!Q|7#A~n?k7J|D%M#*-fgS`x*2#9a0`>oD1^HU|xknNq|7U>cB}IUpB%6#)A-SM{?Flm%p^D3%gal0rpUk*+uK-L6a1>nCdJjF2IKoY?Lk9)lXtlHen-Wl z_Ml5496wr`kDl=Jb3422Yscrgw4A%IROBTulxK!hj*e1Nv^Qy4jU2C#(60Qb9U)jO zb@RndUI(D!Dp#zpe_vn!<}xksF~dxz*Q&>Ew9prQ-F6$MV%z7!D=il?Z?*GO*~`nT`)X;Y+O?FvN;=Y^dTgT`9@zVS z8TpOiD9ERGV}J6+)YAu+GEyAax#U~hs@F7kaIVCo8r))%r@idjds!iN9o3gC7AdW| z@(wDm+F;f$N-cEug15D`^^i*WTE$G2+C5G0@fY16aYNrt7iNAusBfG4FfDw;kpn$^OM+!e>bbU!c^CSbtoDd5~N#;TZ<5{ zFae&6R}ex+Vof2qFP^cbFkPg)T(%t+F?A!mVTe!pesQs!_3P96IeQ@r`|4_U$!`Mp zs%G(g?T(X37RY^D00S1sLsh?e!T22mx~YtrCljAxp!@}>o0)vyXXu#uq#7}LBzAjW z5S8+(CUr#ZW*7_Msz4BCyPh1Xg>*g<5HJ&FlVQ(<{0IqmX4?ivJRy&T??HPzLwxGz zw8Q-G$c6(_+=Sg-ibqdgDKik)@v1F+d+Rn?R`%o#!=r6la^gD{L47rzei#oU91jAW zeXa%tJIbO#SSe}-mb9xj`+HETq)qI$6JlV`o3|=KMFS*yWS`Wl?T4&=+V$c4?)Jjb zLay?67c^}HAjjseNRA-9q6XGBw6o_#x9h^{q8hsemv7?vsoZ|j`>z1;2Wj|$lR zc-e0u>&zBrK3xeQTWD{>=&_E9 zi*-+*77+v1`X7!FZ-3$N^~LqTFPN;fv|{IhhAn=2dVAu)$E>UWv$!Hqap`29RfL!K z0r1B{j)KZJZc+<-AgJJA7PK$*DeTRRh7o~_kHj81QWL-Y27fh-eg0=eR?mne3xXWG z5=n05w?n2Aq0}z7#Quc9mZ{$xjIe z%JOsVFAiX<-hR}q6H}Ss%UTd?0KTiUn#k0AMPa@qCI-n8{w;K0=gS?d(0&(hckg8e zUM)^HEHwCs)E0WIZw#cFD&-WRN+|DdYx5P!eegQ}EXzM{aG#3-IV{{rU%AN+x_!+I zA>F4;|A=AMS`wSaOm_zbSNeaaGjNDqQU9)1eh}))pc?6;_eB!SyB*n!s!c`}zkFHv z2h=p>{gZXvW9o@lod z^=!nasC5=!W#849C3DE{$o=*z=y;Pba2bAq<3}wx4<}d69UNFTdibe_?i-TS)C7hr zJYyJe%Cq->`jn|DPJ=s@oIWvG%%7%JER4j?#**8Bf16lL>X16h()O-YBHQ*`<8zu@ z&b$zcfpzy47(NG$7E%wNsR;s?2XlYyGYEF@cWg4&#qwIB@1p_hRc>&avNcWiPb*7) z#HkCX0ekulazKcMuc2etmJE1^03ICwp)g+KtS|OIuN?W&$G1BkiqA@}j*qLsWG5sE=DY+q z2)YGDP|CYcQum>8?0;7kcnV2*!)sntjR+P&l)l)5KNyJC;YR-(-CeAK zUtLyP{IKThsmIF2_S*t?b$xo9)9~cfoR;%vhsN*k-?`iFhcP{L3L5!kcqc1+J^f9) zzF-axCk`+}Jv@LNQum>g!-`gt{_b0)KvB2(LB^3VwJ$&8n4Ozt95T77C#hbsqY^~l zJy(dMhi=^lOA4jQ4J7u-P_L%G9+zMfusY_~3rBVta=B6&Jm)^}&DWlTIs7+yjmiwo z+OEd`+#T^7-B@rY=uEq$PHA29$c&3B~XSw!uhVRekt~$oK z@}|BhDjH=}<=Av;X6-CHkKBV&Pyvd`RGsl(zo^s8N5Lx6C@oc-#e_jp3=9U&nFlTI z5UWbQojTTVL-)5+pQaNws&rBi^Td^;qfDa0EmNUMZ(mm+?RgL0gBUKKe`HA_{WQHM zoOHlii{ub$N(-9p(0{X_B3C@&EuF*KJ|1G3(Eq*7u{ksgkKdj!)pV`L(~^ewm*Pz! z!Ri9j1TA+@nO9S+o2l2HudD-^Osg;X>=v?%0-B z1acFu^B{CtivS4M1u@W_bei9p=fc2$m?;rZ&jj2oz_P`QU+GOZU&(gv&K&ISyd zf&_|cR3Exo4n!b78Ovg ztzNy%0z^bQ6z7n>obi=cC?zKeAdkpMZcWx;r&fCImZW*fP|(9R{-$RkDR}Kk)JGD! zBjSu-Q<<}mh9t?HGQ1hJ5>o+0*6PO|fjS+k?Z|)KD6Ij$H#?bpiNYDr+HGRWNc`QM z;yqbjf7Gs!CE{AW_da}CS;e?Tg?6Kfs$9ml(|DgzTgV*5R})|9ai^gUQ5?csj71A zut3?MY;69zbcM}OO7!N#YG;Or1t<_VTG*mkqguRqh$@@lS7TWj6JuQ0VuXW5Eq-MR z$h|?`O+}qZ2u)Mv8>v!%jNZ0oHdX{pB8cifa-JpyY@udcr!{{%PZl4&H*r7z)Ps6F z^8q?5y?jzESHGh9ALCV^l~a`7-Mb+wR+`-=rEqR!nF{lxM2^IQ=hNRY3*fv3Q8HWM zNZ;45GZ{H6lDW<$S#CQ1% z4W}v?lT5xyTvXIi?mKA|uFL$|YNn;?q%oLkI*c_5#A1I!t*jOhv!h3o<>v1kVOCbU zy1L<)r4!YRl5$jUz9Ti0;%`@s+*%{^h#F_P%LwPKnN~-DU$8@sgS++2wc! zC7bSRk{>c@uh4i0qC#uPz?SiuU~lGT_y zG6LY8ot-2)+0ZY3T#PqkP5)`DsmJ^^y2^2xi=67F zSb()x8o>Nef@QcT3msNyCyi6tU4HzjSjQJWCrs{~p{5 z_BK$(b6vn*zp5=M=yuLfeQRrj-uZ4IPWSS& z&qv9hhGc{Bnj_evC5F=X&CoIKfwF}j3xp%N_Sqk z6t)G#p*)%3X87;Y>;m!Q8L_-AmwQ927D<+m039R9AROJ>M5jAeUmN?L2He^j(_~?G zPJGlVYScoBAT!1)H6qw{Q0H97H>l@t&yU^~?{cnA47AUEzgv$RSqz=4(TP5@NE-1F zOq~TRYpku=M7ds^xXPDi~eyJl?uaratZlT=hpG+c2_r~ z?hy@Qt^TU(HR!$I2lrDqic(ZAcZ?dox;YUA3V`6oM$*U2^yzmT~?i-Qy-i0`~W z0(TnZkab4eTB1JZ&GOF#b8RL2$JfL|3TTG&g3T;_7oJ)8dIzcarZ9Jgc5CEBbbR@s z#Cmvqz(3aF{dRFgBk?pJeG#9p5CmV;ZFaa{eb=~1xQ|ReLZEFz&g&_g?}c%Nx>bdfKm+J8WU%cJt?s z`K6H|Bx6f4Yg++^ncN)ta2z52do}%(!}D#P0{8(Hy1i)!SAU;Jb6GbNDQG6Qo@6X(~F#6aDrMAV19? zPOjxr1ogus$Vd02N}#1i__Je-xzz#TWKxd!z8|x&SwF;_4!X zu#gYB_){G#7p_952^mR2jp*Pfz&OWtS^}KRWv+8F|(Z-H7qb@H3f4BAZ zsZEGf|BTK9EF}_?GmYGeX_FQck{eo)TifgtM$@}~4RnJ4(fyj!^Zj?elV9yokK>?H z_xVdf0E25H7B8*b(hJA#1$QzeT;|jihO;{+P zMcd^$e?s3_=?BBOIfVejh`@#Vkg=*w24o^9ms5?>#4r6tfAd->#E70EKQ)el@&N|I z1bPup#v!n&x=s%;sXS7>Ajcig1_Aup5NZqOIeozM?T#;mUDpQE@tTJ)+vcdTaXS5Y z7TdxEMdv_!mh))482K5Uqz-Sbb(?F8 zoe7_P9AZRsjV3V=;MK%E+y~=gh7{6wU#iz> zP380PPiPWl?!0?e(ZzC+y_sknR1(AbjDE9!Xm-PG5kmyY`Oc@r83=1xMlVd6S&KE)ZY9Z~=qnj))=;;a+g;Lo?CG_@5PkO@3szR1tBn6vmzEIYNO zQg`>y4x$oC@xyN=O(G(Ej%BJ$qD#q^1y^-Hce>{DJs8-zaJ#DvxX6j=cO_ioQuUgL zo^MKgGm8L!XabR8kH>o=B4YE5Es%B7*oafFD;f?V1jk*V?4(8QUj{tPmLelKc(NgQ zlC08KtJ|o~;8aK)sVXIf9s_4?8?H`I1AB3<#soGMa%nBYqXn);^)yHJx#0Om-7hS z#l@HaUcx^c$Zi7z{p@^%!kL6s@xA}de=c)*jASKtJy&<30ZL-sHGw`DvkPAITmyeI zCt9CjBGB(%`bC?-ALN8#=lp7G4i*!L0 zI$V(;rdnplRmt3Z;8`dJI69B0oZQ*$fq9xUlMpb^E-Oy7u_pCdfc?|Um)3e7S*DOu zkzDwcPB7^kqepA!*4G`IQDs^{j}64RAf~5StCH?%)rJCus5pLp^ z8|h*Su~M2oV#Kjm8J?!?nbnq+tDt1NVnZ&Cn{?cAe6n~vDX%_ZTi&##VdjJ%KxQRe z;uetvt5VN81tjnvmn0ze86t>DMVtlzN;ljXi+l)E;3q>o5&TqO;ueI(*DlyuHmOkm zGtcxiyML{ZbL_>{DRT(nhClxb&*t`EPpIULTf)Qnh{rJlsJz zJicG&r54Mr<8{VSKCB5zwOMD*2jy>tPfpc&LQfy>t=Ls@VY78IQ@@{FRlPLJ2@HA* zdo!*wOdB)r|FlF3U4p%`Ec9#;59KBNYei{k-Z!~}AiR&1Mjy!wgHLOV3Q~NGje121 zIhF*euhs$URr!BtDy^ty_nJraF!hE`8sgsvE^rAc>)bX35rk6RPf)Rb2!aD0Gpq(4x@{0`9TM?x z&H}p=OC41Ff`ZO-hAoAnl*;l!af~G1XQMAC1Xl_#DbB*n&Z8&8O~%p~mxI&S#J`S; zltxTVMwOrUY=&dnj33kws3?W_*fs?f#1>^zQpGpn!T$BeBhNlit zOeWLlP%;OUp8?aB@P|Ysc;W7mBVxf@e)_!6hZMk@;c+SeXLQiXUyuHY0t6SE1A)s0 zZ(CAJ4AhASsFnksxT{GR;>KxDxl5~1itu2fawL!CX#3|kmH-E|nE8=<{wV+5?!JrV zbb+gJl%zZ2^ch~gc6xE75-wQX=X`l9Qg^$RSv4ySTp?>v#+jbUzw8kr5v3f;wDvU+ zVnC9|##HxIe-wLVhF8^%n ?Az@hA)dnh_vycE^L+VjkJTOQb?EoDDW@>hE355>3 zea+FUu|D|kD$Nl0b@C7^$o~31LJ1rbVQ`@P~0ej7$#Yw#ed! zqK6)4wZY#i#q9uPlFzg?KcbLp`fpQ@|4RI1Iy)K)iiLedjTK$}%?MLE-oq`9qYlh! zS`3I6tYAWfn3VJ(CglYSkJ5T6>~ovobC1cNKR2#)w4jLw%mpZeoSgH&a+(Ai-C^i3 zcp8VSnWXkjU4m;PVh0^Y6JBWRip(cGA;Hy@vk zhOVqVotr*llPW z#SQMhr<{&hdpx}MDIbo(fhtkI56b$O@st? z@aJ>BAEyzrF?}?5A2!W>722Hm#5dODou&8r;rZV*s(Q%da^si<+i<7ChQFjhnxX8% z%zir+Ue7&C>CBAc)vulvv7Kr)pEn5orbBg(6Wd5~^XBcQ?8Z}V;QK%;c(?k?PQ&<{ z55xx*S2?)n|4!}vCw1CLe+X&@Olu`B>~T1dJmiW@`xQ+ghGrQ2<5oLR_KN^f{n16as8W(8{8&Amf^OD zou1=G7fFHh@s?2ZPhXe+G;5Ao59I!v$knWv1mU(<*@*!eft#DUT;R{)bPN7Mw}ySQ z5QJA3j}DbaMne(3j!uN0HJ1Ne^I93GHV4Ph9z9W)fg#|>GmSB)*{5~lA|6kFo|?6< zEq;z}yMM+w61n}xnujoVn_vW$^>&4XL`$^^kvHa92zs`%`x!r|bDWsgMXuxL55o9@ zSM*AYYKFwyTP$~mtwbBTJ~0>6zf1QbCtn>%Q-a~1qpqm!=uo~G$cA*q;3K^gl(F*J z-=BzJliv{~1~{24)BsZxTl5rP(e`%)?)4QP&>;`}^m~K^7Z>7nHW16raGVv+Gr0gO zGkYTH==*3e*-%FqqKA_Ou-KFXsA8dFDh6|7F(rwy1I3q?-`JOrNC8u%B@yjt}~VLYKs{Hi(&}b?=Pqg@x1jY+ALr& zVDSqGi#WkeC!#D|fT&*y`I*}lBH&3BHz9%~GSo?b-rVv&JUAhw(Da73{m9oDC`vON zrpx#+R63u?hO-vWg@Ad1+$bOqoxNTDqdm=#kb$^dMd7vA&lK4(e6@!$pH5hzt}sPj+nAm3d+6>aU&^qS%f?V1*7) z;m1&Lz8ku9X!ah6DFkV^ZI)j!MxuX@iwI(Z%kY=K+V|KS?%)_+xBRv@`N06)urKud zR0Pbwh$VSAii#f-CY&bjeX}|U_%*!_YP<2a3v;loEGc}awk<2J1NJeE=S!OGyU>-p zSI53prK4L3Tj~xQ&-Q(y5Q+cs{xH&`FO2 zyR8pg)jrLJf65s>X9xUop$xbPYwtzG`baolxw@l4DeBCF>x&BD{t==0%IoV!^G>U3 zBBCL7n%Sj}3dj`%uB34cCn(n%c-}7*CD{hKpK zn$sEOlMAxbzdx5#nlmCk7Y{sXHHB0`^vA%=5~t+EBpNf1GkSW^1@()1lZ?ww}`FOzltS0pfp;|S^UZMZ~J3;XxZ@#Sl zoB3fooPro|pC3nYrJ|(I6H(sU6fg*LP7yrKhjXx%vsH8}+Wg+&a#$IvZFf3P+#W4k zZa1Rje>L9uiNwed@0aI$MtyzGhImwGiXWiQh2$#^Ra*Dl_?6YVt9)pakT9PIkG^eZ ziL9;17uDC2xH)OzL2a)+C+?C}yhQ3cjQ*92am2hD3)Fb9@90wI7!4)@=W=cU4^R$jAsKfj-y&hIbJqBpc_8&>&&+Noplu3tp=HN~#tX85IQf1CSK zZveGAshjoth$)l4&CAkFm8^CsI`}~1;(p8~9ll?bIYcE|mIZj=Jw!V;@I(|JTJ!s7kgjO-23aNTo$gi2smTpHbB#@hg@}dtBA89y9$x zieR+ds~+HRM1k;`l;~*n8hvouATDpa<{xqmw)r=>An}+?UI)^;{Dsjc0CepF&FN_RO72gjTElvH1lFRxEZ zXyV&l@jo@9I`nFe9Zxr>8tTeloOibv6JCGB4yq&q5CAT4UvI4{22X1QQ9Q*}U0rX5 zM%@@kQnoa{np2W^jFO6#J(ygsy%9AC@MZMe&ShKGz5yYzQv+tRAC_=q1Lt zrLNsdmgxk=NH6Yg?HRrPjIaLIKGf0S+qc{g*)Thvxvzyry3|DkSwUeh4T52)*bDPv z34Tl=Hk&@N0T~PhN@TGuPhH@LYU3~1esI8#rk2JSK{sw{( zfLiICO^9#}GfC zEJ1miW(&bxDU0E%qGJVfTC^|qu2@mA5&uh)SjJ%8WoM=G8H3>Jp)uN;Sc4i*MrU^f znNEV2!u*HHc}-yc);Sv#>%9!-A%Kz~xoKXA(sj{oLHupq?vB$cDI%I*n(#-v5P(8* zAQ(Cv=&_iDRn6j51G2CHwen6mH0CyBE~D4*R1G#<->;Sp>c*NvJdb~C=KrRH=^(_Vd0ZqT#ns& zX8$%t3j1^ubmJs?{fF{D=bD!Nxz(%k-^rAKN(A6-gTM32XB!L{8n+qazEv8262Pd* z;h=;s%h4RXnRU0vo;CP9c!^=g`K@8wB7%b$c&~(38npPTf6;UL;>C^6-zCjC#kUP8 z35=W6Cw^jJ`malfzHuiLa2Ua3+tT#rCF&Ei)lD-v*ltM(H|j;;f+ebMTVD6Jq9O~o zM|jZXmbKeGIC!ubCRJ8cxDaoWm1?G22r>~|R@fsd`TW^>#HCS6H>0U3R+<%U@s$iM zg#`EQ9`r9;E9&?9YfYdON(-<`m2ba2LBwoW zWc-%zp;rU--n}nPVHJcXGuAAS>_xW>wfdFJs(gjd6-y)IITqeKtQ(j z>qNkg=zX)1eKzVJudYad{Z(S%vrWIcf*1Y$Y#LX$KVnc9!s_)8Q?rbSjssEeciHFnP~!LmxBpP{d70iP$1HGf>DBuXwn zVL|KT{EL?(I0$>Xpni0F7sfa2#VoKj?FM-WcE$7alb|6xn^|izaM>ys2zxJ6#&4{r zyZf{4$**q{4kB&;C7MDqCbSTr6hmzwRi2sU3Fv0+!r-r5Oo-B-2;FD;3jzK8>6#mC z#mGvA!c^MLV+AOlx&etf1cl8AgY|vohVuT2ATe>~nfRDq3>Ss!P5zR4&_Gw1WZ$Dq zD;C561?R@bw~yitoelhG&Tc06yuoqk&sD2-!pU)?{IekUGbsYaLo^D$VL5nm`z9EI zhCop+7X+tSGuemIgb8&;>X7r%zApXv2^I4x-*;^Ttxj5ay(yfe%%joJ87AssVlHf> zv5#^jwfk^m30t zQ@tB6g_#K9#6?IRdaX)Cy_LpzqcRbNp3vd?e*VX1wd&2qsP~#G(P^;6$AwgbJBLm- z{OGc}K~u2zQ2`V}#+aL0$Z-En3oPP|HX9foX|N6_h!&<+q>hu4tdI9us^*Vc8Q|qa z!06!c3+lWWC@uh)s@6-nT&sn4KtHyQmca9EPW4e10uP*)#%|&X@-NQ$Ab>L#uMUPiZ z)osO@eLmzELW*pj4KelDPF*U34_tefJ=9!baF?Sm1LpMjTPeHabl-XT4@M8!^q^x)JpYi4aJq5siN6l*m87o(z zwND&pf!Z7VF8G@rH_JHh;uu!8%6>V?{PLbJpi}Pp+rw4NWK_?aY?{`GiLf?p#hl1{ z)TE=9H%6<&Y!e4!1lyXcEEuN51;I9U%={Hz5s3iServqaUtrYD_F;W0$C=)R1mPO~jLx!J(YJU(LTb zRsO_X;TeY46Bx=#HKk-y40TgLSjS!q>zd~jFLGti&aAoqqzhvjk_>dSwxw4tVT_F2 z3Imbq9Mx~6mgtk6sugoa10Kq1=cMo;D^YR}(d77k1uk&T{sr;Mfj$(%{ry>z!7#f* zJbmV9xB_|_Mi`#;wzW?ks2N?lvs*igCEj%x-{z&Oac^qj#Y|j+?RuCCM;{-5eug5& zGzcB+g}O%cVvM>JuMuHS&*=}Q#x0Xm5aybK(5#yk}o`XiQ-0&u?37B@lZ(h zDO?u8Fq1Cx1@EF<0|HB@XF|VLe3l}pQ95vAhLoaN^!G2HM;30AOrlz)kX8gkbily@ z#jJ@gf=yJ4aBc{RsWA`VSo&}yoDVmC0a({|!3lO*MnWMJd<$sL3dQedcF<{o-fG4ePyk`IB8<_4EOBtx7A0bN@^i3P#tk8ws}-CSiU zPsi=Ou0%w@&od+Zld;5z0W}EfWr!6PkFMj* z_BG70_ipl`E^w&iG>Lzy!o47MXZGczJH$Ms6115bALbR>Y#xhn*D-Xa>Toeo@#ogn zrBv-AnMhK?c+KR0LniB{)egA61byz6cA9o2ktoK0Vw(($vH2i(d~*@GU!o{vo&n}^ zjN9?_5XYd>M0}W;xp`(YjUBO9Ldt6jd>Al{?BV=!w@DLiLK4a-c>kR+(#DZ#Ce2f% zi4|BBFF~aY8pqk|V3pQIr&0DZiNp^!Y;JDTu~#$6Ey${D$OmY!la3H3LV99cU-}L& z*c}3abKO<|w;9l3v*3uttkiWtYVobQfo->Tp$Ejf(gX6Kel)_UySLxbXc&gE8(rANtUBv$zf84Yic(LOA^A;^`4$km=R4JR>)Ac&c?P!9;7LDF)vOkjKMawZ=y=BH_ zI#vJDfUMqo5!yn}{RP$A>!U*7{GcyQ_QJgcU;D&4l1$(RE&%?k=~pr6Ez3DF-cQn} z!JWkG{45^t&~v&?Mc=EAHd8$ivD7gm&dUBU#dTaa-PAJCLfGwyL%)4(_DqI=HK9Rn zxyqA}01-f+NRNTq;ogZ61K`hU5Egd5Khxbl(`=e`9?I?H+`g%M@{Cqi7J~=EZX$Tm zcVJ+oETPjR)-|-%;J+geB{=&%0dB#s+gF`qLt5~cGHBZchaaflkC-FW^FIIb+v6`1 z(|Ve78I!Bu8!UK_7y&~Z3lh+@dl{(y<(z14g0c{rPl)i_SPx>KL8#j5WD3avi6pM9 zo(FrHi5o+*WH43XvAMr>!=FMs+{bLX59Ia)3CEb60=?+V(c=oGDqm&Kb&nJ`t7+#v z{b<^my4a*5P&Lz6vE5d&fifUMHos2nl&^!Ae&=r>dg|R}#%s`1WOHj$MHfk1SRDP% zf2sJYBk`L{QGN_e1F>QCVnQST*9{NA4mefU@gDfu2w*T-_)tn%u+r>jSqxDl;+31O z0D9;&W~&)TSrB(*$_kUk>xxjnG3L}7-q>**Qg@n+4Eb{X_#2O1GR+M()b}1REnT@Y z2h`XSwe}evn_aeco!4f;Pj9=Tavb(=*u;zJ{M2+vKMX=@KbKwe5BaT}@B+m6nkvZ# z|HNli^Nv{ziGvUiyx1IyW>f73-D^QqS2Q8zjxQw^63v3#V^uKyaqp-?xaRhZYJR5n z-1>=^kKNTkZRD~4_G0ew9PkZE$Eh~IxLs!epAvdJ?yDB&&&cxlvyz|8>3KuL#6-hH zboRDVojaPXb))tRjhT~!_E5-U&5anhPy-#2S>qb&#W^@TvRz;T^d%#+t#g=3jTP)7*ZLH$%v2SQ(b32iJ+o}Th)MJgJoCWO$9hBv z#BgVgQ=$Xb)xLK!jfQF#`FkYUv!=ByJ5?+)UT_&1KUbpmpjM|}hx|ugAIGGn-e%$8 z!r#bDLhwQkG~9LUcHl<*VQ@=oq)50he=_9*wy`jMY&R~AjVdg`)Nq{@vdpED@Rv^a zjuY`g?=l#!B!dc)qbuxmYl(XY-xeRIu8*7EQyK4z z3lVc20oKKp}3BK|K(Y)Iq?*$Q{rLF@s(&e{M?kGsSO))-n=&rl8A6 zsDWY0hjlS}U#A*~)!5l(NfRja3ep6xaTANuIUL2q-<}LAChYU_VyM$q$<184$XBUr zghNMe@8pyn3)ZI!{|LTupcOib5FZA2qE{;(BZ{UVb+svCtVi2mJK-7TfpkU?0jKQRVg_*(R$rsthoG}us!uSkLD`Yj;LU@o# z>JY1eR8BTcn`2gvW)w_qN`PLY{5wh~R6=Ti?XO@E9wkYn{^o>m-#%e*J~ywogp+UV zxcvuYfKpCZnEi}GK(cFfnnZ3*q3>o9Xsr^6sBTEuud#XsdvGG3PUOsMd+qxKuB*c= zwOU7TYyYiWJZj9Wk&=>1%aL^l>@qnlxQ$kdeTtB1X(QSBIIlJQQ5q-W(Aqi$+BmYZ zYhXDwT}# zY(rKwj4Ukn^E^{7FSryMFq#?{Tt1Oq-rF7(Vs#XjpJ_i-XS9jt=VoebgGIC*!mYQ7u3zdF zM=UVojIB)JL=;-LM=o#kVJs|$Ny0s)btr4}8c$Z}VtkWFv&UY0h{f21B}R3)N}$)kwHj_HDKhWF(s4vjEG9tJS_ z?C^$qe`|Xd4weq*&@R&Bb1SHUx_xVsxhC(ydCHO(o}l+MEVskFV;NV3gt7S?Z002I zD|7>S5unst$xN7F<}J;RP0FR3ZEVG+QS?cqhC(A_+J2m@pO>WpFHy#^J+EDz3)=Pv z*w8$hwce2$pw!wZac0o)jckXHRi{IFaHcc}u2WO6^|n%bUtSMUSwDDU_CRZbLo57A zQ)}NXz!TY5--%Avpb4oN5&Od8b~##Cd$@4(iW?DAtp4xuUsOx*(*xDoUnW8#&P3It zSdI!o>;IfSB3HfXg+mOCx0d4ro-zntZbq*>l-F$CRi1iHS!=i#{r0IH9-2B9sn9&y z9r529>V31tn%EnK`;$(_=VV#4#m5KnU%ArBlD9WAQZddUl3qd{Mt=B- ze5hOhEgS$u%99YEzzFj0NqlfPN9}9xsSx)8)_mQgS>RiD_f@{g&gk!}xCE;;dz;Jy z@y0u@7Z=>|hA6GonY8apzw3<*H(^eQ9%I+(K5YXHG8S#MHDE6=E1>C~6w{K1OZLr(Qp6#kl1%BSU*-b%(X!d53 zr8oO@Hog#z#J8I*f_bjcgW|2wza1Jjph7c4cGPUgjqP35QVvZY3EYwfV1IfxdrO5-R&>+=eN#J+hU_OhEo@G zWx2!gu1oURBesXdqQ7tJSe|zMrC1I15^U>(d!v)fp9lXy z+o~j_ELL$_W;7fq6SP;`XjX~-cCP^}1Fm1enFM`aG6;6h>}dHB14Uu6m!@J+0k~e&1z@NMQCaQ~xLwHbD{q+`x~Zgd!hOBZzvZn!t?(=hnrUM68kNsdBTDEsaG^s?3S7uQquk~`tnhXNir9u;k0^@@1%!{K)1 z#bf}`Bzd|SkNzY^YFY}#pnbbzlNe?;Q%N6@_}?2G@`2stUv;P6uPR|){Qn(`zO>G5 z8qH9yhJO1lguTJ#`?|^(hYiQx8TaQz@r6Y*U&Q-_fo_z$6OiIY7xaiCP(?pS(f5Oox8g`DXIGau7Chb zuJD{Ciq__5xxI~pLw3yQ?Yyy)m(|}l6TR^$sBR#vPzLoIhJyR- zV!pkN6*k%_H2rgV=XoD|e9U|zFq*F}T)}$tiFT$?7hvfvgZjyV?qAAzT~Tk*H-~mB z64E{|hmuZqeX;Y-%j5k67eu9(s6L$(HS*FL7q|>Do)PHgo@{%t2+}dB?ehHU*$o~A z0lWVLvxmwXq)f1N=38x(QZPfXsbE|xUTWtdjQDwIA0u=xc!u`)SLm=|cVX>a&(A*D z61JDW%!O9`d3ntKps`7^$&yV&fV^flR6ou?i|4I#$;|~ zTtfQg?_WtvcDSLr^@Hq>v`4w>o-nL?d zg1lKvw({l-A`;Q4h13N)0leh1>)iH^9E_t1NKCg+IhCbQ06)4!Nmb2pJ^Yj(3s_p9 z_?Ic-UIYf*d}T5aZ5P`A^?eY!UU>0$zdpkKb6W_H272$x2K_~L6qt%dO@JgbK!m`1 zc^mC+FGbbMJCzL$eu1$ApUH4$GasK)o8+}ogMuzgyku=&u%D%*Xs12@^{ydANX2?X z9yiw8H+GP+hmzEDX|-}PaXRDNy@ZmBqH|zN{lHu3J`Ldiq3v+DP5i|K5{Q3A7 z^U9b*eqNvrsHLl2>&XZEj(`6SELq#l^xYK@Z3 zPfCM#q3MYYV=w*PBlFcuT<}`>t54TPNn20zR?iBPv`B28B!kgtk*(xcbI(f=|AG$y z&N3Pd`2FUuUw{AR&rm)trDu!hHLAhYVIoqRmpcv8UYie zQL-1maWABY7I0Yq4R~Nnx)lSzX|0K1CpM0FXpC?nVz}Md`EPf3@Ji`We4Om`&tsa$ zbaSRmh0x`5TtF*=1beDUnx{bF3I z1A4E&{{Z2oZjbm zi$;NpDy{=E1iN9V#mE=`(JYgI3%jR&qGj4R#M1+lDrGf}^(UaItuktpzltSj)Bp

ER>(HXAKXr&I$Q5eD3fFdeq?uRwxK-^3M2;?t>!O zUEHJ(BB9%Vks|Q-LlP<<_2Ja+Y~LSgx6|0|g@`DYFq@}wK^NsXX1<~ab1P%iGWTns z*?`uL!muAd#*Q0Jv!OEvnvjco!LxmLmytI3o91SV<=50;ClrOBqCZOqMy~r1j<_Zq`-8{^`?#TuWa4u~^(&xZUSjKEnp8 zumwA1BK@o0*0i3IN^)*?=|qPdl9{nfdJ3{GmvkZ?4;U{U!zqWA+@Rerr*v_i41l{< z%6I;09`(Hmp02PLPJ3!1CytU7LQchXj% zDG6yQo{TnpNQS6?aE%rB^gjz&2!i>ZeGpV`;0$%SQ0*-$*(ZfqZ$L?eZt446?5`++ z(EV>!D+ICMBMq_92}Vbd($iuUv<_QpyaYl{Xmc?S3swb-9H6DveRnpNSC>hfTyzEz z*_q*4)w?@H;&kHED652tH-j%;X7hfV;zOqJ$o?@0M1x*>6PJAYN0G{`nUb@P2a-wP zx@m~oP~+=tz~LZbf>_fD%kvxgcQ=&QV6*PV;-Kz-p`;PJ=XVvMhd)-|G}wc1VRlR^ z>PR~gaM)7_S=K$Itz(q(i!@WfMBHwC6w?>3)bNfU*CiV@ZQUR}#Y!;d7m{jCQwPKG zqTnkIyaJ4-#l{G~WrQ7Jo6u+EnLIhY;WAi2rX=V)y{;X45Qot>R=10x`qj&Z__BpA z{@Y#LEw(OBuA$z^f_T|2m~A2H7s)bl0#Cx&T)o#cVK6nT5rJdoA3}e+Q%;vpaW#iU%PDr32ASh{&#`= z@Ki|z8+z~RWlLKcaT36~wwbbUR2^aW1UvT`#*68ifa>M;pL*u@EB5z2FldWI=R4T=rbL4+rP>nzd-P4skfkBZS>uRe^C(!b^pU43aPjh zu0Vy4y1qZdN&=V`+R>nF#{Y!!7X*tBpr#0jRJlyR+bIg^c!mYKP9F6NgcVjSdfK1~m-zDA z!;lOv*!itR`T4IueJUz!RChrKS}I~9hjRw?AE||IUgvZY-fPnggWx|(RCTybtPS|9 znT;C zQu;HaA>8!HZYQDZ@KhEH))Eq~qqfzsyJXWxBG|SgQq{C#gQy#0Ba zTtpu^Y1pi>+X>rY=RquSAf)5+loKG^!k!6542K=dm9g+QOO|q|Bu9uxV077%7V$#( zvvQB2vp^__Vf;PDQy2Xt)N@IQ^3Y0hC0-o(`T@$$JzHqnJ;avAhQSnRnWyKBRY&`; zHBw(UmR92%^9c(tK-~2kmADWo;JRFTmjJdwqk(5+D9?|rv9AvfoRzDtcgy1vDW!~x zevqKsIcAG|X6AQKckJvF;dBO4Rd8rY-tS||^}YOls%@JYmgML&Ayv%wukBlQ*Qoo< zG56!_s-%W69X?>#O)*)$*~K#g0(5 zogT%!;@|1&cOwVq_>pki-X!$$MfWMcDil=MN2(JhRACw1*+)RuKNQhAZ=5jXz&t7G z(4@rwO#`}JwUhg^n;f*lXa!qeES69*QIbO`TjHz0_cR-;zs~qWpQ&!Y0=ZL=CZeMm zT|j+|{YM_KZDy4TxE^Qf4^->D5nC#jfDK69K;IC%_*a;s=@C2~oNLT1f>T?PoBJUui(qR3nkt(6BR0fG_wDkC^T1}=0Bm(2|BHV?z~z&0y=lA5 zqvQCRnMC;ROHBpigZoZS>vHyH8*90_Ik_yQzOW!M`ZDFiG54*B$7O*rgXWMI&u#wB z#C`eFSk|QEn;yN##j@9eg@D5iBcm&l-!gZ&!-4>lcu4@R8EY=ggrLwv(8{<5S_qRE z(czv2r`LcDQlYXSuMAP}o8L{Slg?!Q2zjYn|- zkqR?pJ|eMZIIYKUye*LaNs&b?jao%Gn%m`W? zh*JcmOvK`Hg~defu1~YbcjsD_g?JExM5Tbw65s6>jvvWpX*i0C7_4B{b~!)^la%z? zj0;N}=A7@mi}GTI0=Zr8!|_~c#1I5uqlRl!Rv*z8d@Qy6kjTqrXIuhSIgH8?0jZSU z@-;QFlO@0Zvor{);FWyaYVRntw{F^8rC65b7 z2m7{?qnscKb`xx=)mM;<{6?QP2=`$s?J+JO!-xjsB->%CS7ez zxi4Ju{Q;f9CzznHpsgN@1zJurAmM=GD@r-7p}2Im{2`2eFj);^G%*M^= zO*~^4^@wEeLMM-um!w}6*!gmyVqDEGxQ|cv@65a(JAKJo?hI87PjTc`(2rCw_ZpxW zIQ4pXgO>5FUsGe_DLK9buuv@%iKEkJ%+;vGgNO#F>g9z$<3%EiZKE->%~C$fs#mB3+iR9i4Tywr$F`#)9B^Yku#nj^ zBO>8jkNvf5k}?`F>=LFfDp(GcDS+eRIV7y^6|h1D{rI?5JppH@LX@C*nyvTTTJCDZ zF^nxi`?1TAi_-JYX)*mLVknFMj4C8hAYXFUpJj(ff~7*Gif%<^)nyH|4e!cj=K+hp zt6}EWZJ*xp##k)HXEkN!cp+#l7`JU`nmdTq(2H7HS}(MUkDq)-w_9HZba^Li9(2Aq zzFhf`1UMjOl-W-s4pUvdHDbLydoD4f&g|ZuDz~`QSSKNNPB?dKNh>H#AOXDY{9G-R z2^blx8yjVQtbNW1kx$mAj9&lx$>t#ZziI{sQESA^zc7sg;dMOQzftJw?3dee$kYx) zRrI=~V>DQuMmW1u`Lh+2k@3#v@YDMaI$WK;mUQ^1=YbvP+p)2+j8Zfw{&Gz;4Hdq` zT1n$oA)0`r#|iu?!36&8+u=678PqNJoGiQ*B|DI`!a9IThdtbKp)y;BIWmhg~nPlg+Hbl|RzS3NV} z21_U`Plp0kico|e0v`WtNQUjlde^>M^nLtGT)$@T6+Z48*X_h$@>Oj1dHOM6j+Czi zWoOq<32q`PLwefn-9Km<_Y1#i<1mh_#b+;HqCMzNjsA*zJccuCpou_S=l~l#GIq)a z1ah7H3RX-s=-t((2v7LgP@PZ9BllUYHG#G-MmMg73#)6a(^dYEjb=L5XgRtwFB%ks zqF1tbK1>bKIi!B;wYQ2br4-?*5-E~sr{FAyh}nGMqe}-E;4$uj2SeD7jQUciEEja2 z!XH}$J9FJ~ciVeCWQFgBe=A01E*-=QCy=kY<+`;OcTjJ3UO(S=bSl-(J{Xu6`q!8B zC5Z?#Or^t8R7OqU|7t&am|u3jI1xUt`AYVXc*S^BOKwIV-;ocPrK&}+(N}RChvgL@G@mvHLTI9AQM0j zHsP=|%E~#53)b{N<76zQ<{L=mU-J!4{lLtH;5CQykf~93mt=x))FKzs-%$m_-5(3< zzGX8;_)6fSyzEx|hd_3a?PSQdjiqnk7Fx(`(ZCdX`EFvYK*`*|V0=`T4JgR|8%YBV zLgK)d*Je$gd%|@PL}(TXAn_yEFv_HG&8j8P+}tx5-d(|&`Vl^xw<4i_Q1i5S(Owmu z43#iTZYw!maP%IG$OsdZk$VJw_B$0J-wxJ#&PX%dug2Nb{t~88Xw(tn@mcw;+ox;4 zPo`M4sb=Ip^&8i$!tk{BCSas0Yny)m^Zf%4Mc*9*1_+PU}lz0!%4>@0XS7eQn!3m=i9i z%(W?R#SY8aLgtGID>!Aq{~ou7Gw!OP$->~)e!MZ450}Q(3#m5?sfYK6hXp5+wgt=T z$*Lj+D~-XK(5VDa8GEWSGV{YEYipe#PR)32UnNbpEhq$o?_{s|J@#>4`0FIAUcK>B8cBkj0VXCMj)#}nE(^~Oej;9iOZlmz`Xe>3LYqvjr3VH;hrmDOc6Pn zzcn5c-3fQCGhWai8nCUBDST#(rErN8iv4PIf`7QrW)vId-@;Dt@3a_ypuMd|??GTF6zH&WV!Wr$25* zOgE5pR+?kzm$wxH*G33^gGDl(|IkFfy5X(+Zw!XsM;5tmoS;3e~S_#rB<%|-&lU{_r;83xK z$ppbwI`Y7MSC8n7yAmTq18=zm=&xzG&`(qlT%f-9v#)|3Rap$YOrz~@SIPx07pBG1 z{SO4+8ET`Y&}0l$dg4Ku(CP*y+c{IPL>UZk#xC9^B3Cjo5HG|vHwiHHcmn;+g)bIj$2A2=+sG- zzoRx%+EjGhw-AX&MU9~f{K0JxZF40_&mrnb=z^X^s&wL)Nr2hMoyXP7Ly{VBAoK0gHh8K_{I1cjkL!bk(4-GN@zOsVd2r)fU77G=x(U=Fg8a{TepJF81;H zCU?^`8~G|c<~0nB;=A1xcmFHJv~X$&tW9AbaFL_jS9sTQHDZC!Jz@< z`AVf%p-W}4Nq={QzrJeAL^f&q?&iU5fLByS(y{X?OmQe}4aL5{g|5-FpBH%p3v};D@Zcu6qHvsP;$vh8|_~ zRX73~QN6J<_zTGpcxHHLyCzr)_pl`7qc7~jvL2K`-pmR?*;UZ>U7&25Si*%#OSd(%Ow zpQ@rJv+2+>v8RTbEw$lA=(f27ucoj*HCOqDC&B1@4XX$cKlC5NzN5sEK8O@OP@0C} zAku2`ZG;{>;*J;oL$SRhZ`5gnY;8=uRZuK>G*#UB#V4hQ#Tw$+V%Z) z!iK05;L+&fy@t99XxV8fc!cM9y+F0byvm06Qf0u&ObtcGBowWK>0J{^ z0-ED!pq-h*$dj>18s*gycPEiBB#X2G8IOOSfWLjpcjp6NkQp(L4UM;sDHNrhz5Ylt zL{!+OH*3NG%h7kf;6Z6H($KzDq~oWPWc>HaQ^;pQ_xl^9z8O<~SLwmvgU>ELwXFGeYQ4aS^HFJTI@cdezsoK3DK`-re-g z0Jnz}oZUSM^wkadRPjW4>TO=Ofl%@;ELGVa@BS4V4k@}Y$t4U8{THnbYQPoSXJ$?Y zgB14)qXpi!Gdz9q^K|p{++M#Iv@g|SN2J+zEZfzw?9#j2_Pzk9fo9<8#de>N0K@wR zfv~i+v~gnTQxysa;^FVm8Bo|f{R_G0q?a~B{0VS#Wl%T~7m)TI^&XGg~cO?OR8V`FB^vn#7@??d#D+7Jm^5$muma~6~dy#-L@@F#P5`F?Z| zJghlicFyY+e#P`x7R(mPL?h>|Y|3T)b9DbQX{s{%DDo8zLJcIG2zX?>?*XuCdnTgwXjPOK1irDq1Dky@(t{g$>(k`-uQ0|eeGBZbAf*YdSjL9}9R$Y^-ofNVItXl=;JR|W+(97FGVWiJr^Jq3WnZqBR4_I1pb8W#i$5>|C}G32SscJ9*)oJlV2TrgnOXd(!v^g{8e#@rZ96fWt&xfQqMDTUKhWdAjJQ zWz2K(yO8k0Y^*9RdtHym#>PH8JVd;b>%<9n8%dZxw#{@ z+dI;!D&)T5!M|MeNik-e4#9!?`3h#aoSWEiGpY=WD(+GtWDV*8_^D~uFMV&t@nV2E zqQMtEUBOSMP@@$JJ{mqjc0FKdBI7uoSP)c2Jgq-W_IW`RIWeD07#KmD{jm!Rf+$z% zklO0_E@MFZSEspj>_=$PrqRuVPDO~*RMT9_lY1b!((39uaLj}KQ>%|oUxg{+=XZ|4 zi@YNkh#_AJmHTFg%g8;iIAkmM3d6@)e!-pKNd<9Vrcn*iKyyqICjsi}RSN+SW_4yw z5O47&P_J)~BbH#qRKZLy>ZtTffeY&8JH~HjsxTP<@r4h?4gb;!zLxTx&4d*j8xT$U z3^_FO{l=%fLwrwH?ThaATWM^>vO2oK0Vd6x1Q5nClZeL1LeUAN%;8*m_^hwN>J15Y zHDw9=5v~izNWdrBY#y1v&S_&>L`nu-ns9|q(Oid>zOno1tz3dn4CmIzwBbu91z7K+x z|Ex~{*hrTppr>%BVe^Ivs3iY&jSg8US{cQO+^Ak}Eew`VMQo$s$RXT7b$(>@U@l-6 z_0J~)=vkDMW!UuyKgO4iq$cpi!~oNUBSIsP&AflNLLq81*`>{2g!H)+(Iq@UmYbi& z5xd*m?J|E!!r;U8GJDUGL!qOxytFV#!K00&J;`f<%ha5fFR%5&AYpQQeT8i=tTdRt zKy52)z2?<#Kr%~TGqi=0OO5L4VxHHBh+yemoOlM;aIk7~L6n)KIv2J27OO}u6Hzz91F=ubn+eyW%3*l32&vqK8{ukR8z}=xbOKT41H{2PL+B@ zfq}3@J6+&ISX>e)LmO1NQN|iT)I!B86Ph(i`s~PgDAZrUep>?w8(fa+i;<0f^m74& zo`n%Sn!0eh)6jz&?7I`_rgmyCm2KVKG2Qv<-8iiDZj>-e${aBISPemp+5wqr@T3-( z7iS)9p)$ehdJ%Vq#xj6h+*NDKA%HLX68YOAI`p-J9L-mD_-R1_A0eKZoAR3~HZr`) zJlX`b83A(Nv`(7X=UQ7CUGQ~ zA0?lU*t%VQkLDtt; zK>Qf-n&y1v_1p;M1}ZXAmj_em#Ep3kKsiWN$IK^28zk=Ascpz%-S$R|IMj_oOs{bJJ=1Cc<1WoRk}J0 zkgC5eJYIG0aMc?nwH`uPKsCaH+-SHdN5t zwDoLrAUQZ>fhZw&C6v<#mn48jAa5eTuQ(z4m0U`eNnfG7_gCwt#DLbMsRP9&^D87> z)h14I&UnEf(sSF$N3qXP#X?2T8t@Uc*&_Y<13A$=B$T~pY zhjbQwj?9gY{1bUQhL4s_w!4*vA#^oC(Tv%2SN{p#q&kO8i_q)X$|xmN@2|%(I?aFa z7R_dLcB4Xl&;t&1v9hJgQ4rej)|m-zQDQtyv}`m zEr7b`;;`dJtjcg8)Y%b#XwU|lNCq^MVIf;GXeJTPXY4MKC=uQ>ZNzN&*3p55#`tWS zpR7NM>AjBmKkah>N=>isKW&WvYW-SHZ-Qz%`eVq)OLVne?U19@iAPljdHr+`0}YLh{B0D zI0d9u>?;^yC$1O{d9nE}Nz1h)-~rttp$F7lwEbR8!ADEBvwB%;$O+Mrxmv;LGtKZS-5dTsxuK zU*PvObWw0On-t^>s=l+Xk+`ff8ixU ze9>9fJy5#vjB|h2Vf1lRyQ1xW_nB`^ORQDK`i1zZ(kgcq3@E<@(<+ z8B1CiBgr&y`%4v7Qra^Slzu!Y5pE;8cZyUsSKybFBQ2eoJ15GtIvRd)E*GVus{>-y zK==_clzRCMtrMz(x8DT}ZMo{Kkq*6g(Ekd-H?h8I4&k9m0Eul-;TiI3sw-bKBYz(p z9W65$tZ$yTl|yv=?1%54675`w*(yChdwfmU|6&$+!=%uDJ)Qx<9FNxDZWnPMl z|MPXm1t5bvA=i;{owWDj_uM%alCn01XNKx%$+CQDh0PeBvzx!n;Z%0x428Md%ZCVQ zE&8is)qtT02rw@*lZxryibo7DU-lQj`dFA<`ER~7cGQpnW0)8z&A_{hTN0v&6*ko6 zitX3#y^5;AUSSh z1Fs6oK1OUG(z!}ZV9Dxk`t<(f-r_fOTAD1Zzl{QyMs~UpE;(XkH=-s3$)ujTx6uQs z@DrInZ<`?K`KP*R^z4~cJ@x0ZPrZ=>k+3nHSCQ|Wtb`dpLmi6+zq|{vh@5zOXY)BL zQtD3r#5X`aIsMCmt*mdZ&DqXYc6L(h!?l0zmCShPW1hqrA#uQtYlTG{bbB7jyK$;! z(}r(Ps*ei$niU3r8cA!bfudzwJIDc!7f;%tk&;%bW;(RPGA|48BYmz>64YT;C>c8E zTTM7J;t;Q?WY1I|1afVUd{6^(+k!;2EL~-yi2ls}x%$|oC^E}aUu|*6dH64v1Nr-m z+nmKgUt8b0{P;F?=n$Oqc#%AmJ@%~DbmIYk>LW{mF%FavH5Ke2=jAFT=Es&7fUNp( zQPRkTtos3Z1TYjxu6;|(00GX;Ms+fSiE^xjB1G(JB5 z-M`>5XW0@JbOj><2c-d;*Se1FCXEm-*fNcD@ZvxED=I6${|#)NnZquaBBHHWP->MX zJe~yiXnQi6u&r{C&&osCff!1frLb05!Jy6RMe;Az3v0S0#i8o`4Y1c0WMr^4tR0hr z$<5~mh`u|yd~8S<3Q)Qdd0XEfgST<+4Mk5#DlXT9AcYu?RJ*BE0F^3Ap9y9q#J!OK(;MH~_tf`;3+XJkH^MrW z_xb1G$#6p*9Ms>T_bmgv$t}~B79;onUcLdGGn0`8JSkvj0wRgX*!ofPcB}40Pq!pP zMPrXXZ5=9X1_ow#$>2hRBsBPv;KxixM4D55s9%Wx9~XM*;}-eEPdGs-$m$Q%W?qyK z{BEc>2!pl(1#5Ea8x8bINYgZ=f(91tB`qKA)DZNjEhgPieJyk0?b7FB5SiQ!r@7l= z_4EuvROEs2SNPC&*RWU(Ps>t93KShYs7CC;FSg}xOm|6=jX7f0r#D{J_nJkQH`)d zC6~!~+;NfRpWI03z>sdCS(r4iG77+-2oGtNr3qn(P2OLu_y(s|^)a>LujD4ZsAVQ? zm7Wn+pW%if28*WTKL zIk8S*7Or!KU{J$wWB^}JQs#F|$MMuaydB+x7$i*f(|29iGFQtdZXF3_NF6${1rh2g zrLHM;_B-;=L*cMqp;=#DN7BwKd>E!x_fVBHAH4wKzVWU>er~ZS0=l1ThmaHM8T~8T z&SjYs<;F;4zBl6&Ie==0P2pMpZY(^8k_=|Z0+G?sOluzmqYPCVShvm3Co7o86p|{PNUQ&wxv_SXjpkiH|-;J2^CmX2LoF@8@&ZrI<$vgWG1wZCy zUOnL>w{e@jB`fAO8P|j0ufd?=(YT7L0M`EHw#?rpFx)*-&6zq+(U)NRI`2fdGL2%J z8Rkwad0S3-B4wjd-pgCwP#+2|r;g^74Gyd8;EdHqld7ff zl$`y3JCGL%50n9Okx_*RMs7{&4ZP=)Q^<|9G`f{tvWl8d5?im``bkcHbrIXY;ct-v zudNFGRltChb^k$%QpomhYmjB1G04jleTUF{RiP5-Zu*jzzkp0xwD}}LLn8>$WQ?kh zBu;x~8s0}!R0o!5G`;;!P{P0gWWb8tBKrbedE1)KyM6*fRu`S$e4*@1@_TbgP;L9V zx%I|CPH|UG!qibYE459jj~$)bhf1;J8_CHZp@M{6-srXvq3?Kyvi4Re*rN6Y=1NA_n9}wbom2~PO`cJrajv|I~Xne3hmD}bG|zs z7|uAce{Y$S2>@S^mtBXbn}5);He*PBE%&QubXHbqoB^mJwHA!3>=%&MC;(AkT2pc zjFrKbQRvapI`t;6+@2~vih~Yz%wU~Tj+3=jojsWt8V^=Q881lqeFz^LhG+PCiEx(p zW5}4AP@2gABRj%5@-*(P>EA{9{Z2@)D z1?}#$BeZ!C4G`$9UuAu}m#5?M*}qXUKi+n*{{K9^g;x~Z_dQHYgLH?4Fr;*MHxqP7 zOP4fANvFWjAuz-Y4bojw0tyb@-617NyzBXVf9w4R?%ijfea>0y?z7g73QJQXw>Y`W za`+^o1Q;$UJXRzSNMrp-p`|RtAj6$806cn1B#+)&Rnk)s%j=> z*S;qS%J^bb+Ucv8nVFvKlq0Sm3xZJ|BNAk!^!FO&iNiVx`v> z10JqVXV*UkH8p)>A8up?MnPdS(=*WC@9N5Ym8ihe)9}iY|2CNd&5DmB3I!sUNBAug zf%o0TF{Ud9ywLG7FY(?Y^de#*^6#}?M_pj;W)=0DQ$}^f-~b!7&Rad7+QMWa61Z5p zhj`=I_4~uiZ9m;Lses3w)y`Jk^(Rdws2rkmH&;U*Az=gw2b%}g-LZ#(&CNHScp}Ri zJ5|I^O38=CBqHKdqNyXaMSMrM!2bmbQAe_t9GS^efV23|uVhaO zHZ^G-8Agg-7DAvw`eLo!%@g03YrnTR@_pArbN#)Fq3@|beVoFD@9DNwMHADbV#m$?u9ZH zmb>9mO6~nz7jvKmP`_Ci&JCrhoPta}9bWbJ3LPK61tXje`TXP%&V=6l(8&fkllD9- z3@74qDx$KTbD+{JH}%Nk*+LLV&-U}M1A(s#F+qHBLY*mcU|QHs7Q?BCEx;u{cKe%OCYj$BSZ3i&QOQ0D4V3|N3m(`@!w2<9mtaTw`BPnP^y$GU?qhQX z`1)f>)r1{Fj?fL*3RTdwh|>WAA{3rLpuT?d8;EH(!aRcQ-aD*Fb>GMukPfD=#2z)wRNuyb#PBbu(Kc3`Mtkv+FKciIW4c08adZ z0Y*H&Pdn;wZMIp4J{f3=Rf3RbdF`h@*^$z&46KSL+hS^AG&f^4=j-_1 zdfoMbltWp7=F*{X#`GgQ$GR8K!=m*hKJG*!LNP2=_NO1HuvoMy!p_ysmOafKuQ+T$ zYV_7&u{tFVcx7cWyonkiWAylM1QjkLs_wHL6ZqJ4@+<(C8DnIIzH{?uS4JG#!5kyL zLVVQGoXc?NfLV2x)B7ZGLhO(b5H{^$g@h}0ffknQ!Q&7N_x2pM>h|IMmS@u!poL(T z`Z-$-e64qb$r3KNa|TUabxsBJ4KWd8MbNiK2tDcR7sP`dWXa&%!axW>Sa0=jsX9Qc zZP|%>TcDFJf#jxcd0tL+s{7sA+Im;= zGQw5nDSP&K(y*!hE&8I62;Wu?t@@d15CzVzU}4FdHKnYkyn2|p)QbXcudJ*jgf}%6 zY^~?)6^?6#X094ch%J?&@U1b}R8=cavl{^{GS&Xrl;Mv=G|h|?qkOS|3^Ym=^%UN& zIbDN^ri=Xjya;q-{=qN!qu#!+xV?R_=vwIfHy~?)223&&Q4_We0}zMjQ=+2pevIh@ zChgALKY9uEy$52xVg5HdQ1|2r+69wfCl20 z9a*c+rWPnG%P)5$-F~Y|Xe=Yqm|NW z0=(&Xzd0Bg8%>F(je7!s!n76dQ;*a`LoF?fn!q%S)Fc0Nxe5FO878mI(7u>6s({oK z;Mql&f~&q4U~em_U(#X%Y9_L!Yn#0PL$M7za;Z`vKT|bgHhZ|!4&FWghZ{bRE914d z5SYBCovx{?t-X77ced-^8O3Rb%6JVvcjDqF*Wm4MQ1-J z7XR1+b!FO5`u`o6SzP#2BuYDDy?W|*9_+1vm6X69*nm&PAsRU7dA@(nOTOH#G%KAI~nokZD*dn-&X#Le8w78aKN4?hkeI_K|7 z-T$7A7`OJ+q`;f@l{1x^@iE^@P%hlROcKs58KYI3y*{kJF-%1?WYMeLWMOLOA|q(h z#yczujDrPsQlRg0e@iL>rX3n{62FEur`f6}kDRafGN$;V+77z;rS_Ym&ZI-*(~hX% z63emRe`3$C^<4A3;jzU78;xBuUEkPYxWWe`dTJ0%CZynKh}UZ=aup~mbI!goE3>jb z@eD>7r3q1uvErnf4~zjK>(Rf^@r@HcwfxOR#8ij*q;$N^8!sDb*JNzPLPxl*e{^MC ze1TuW@hqC0w4dqSZuVvgQ{_TuB-r0ydJFbnekADOQ=gcCt1=)#efCczIt7TNfJQ7!UlmQFW z!6*C43Bn=^AI-z(T4_i&jzK0_9e0g7kVV;`S~gBQXua)0ZYKPbIsOxFHt+W9e?*AE zbwnWN=L~lI5UjG%X^khI&%Kd1!nKGmV1{aD|KzQa-5py2@pgE8NlC1!a?bkFfU?i1 zEgc_=SvioY@G$qSI9cPT!w)Awe@&q9n)a32JPbb%5*`VogHARQ-x~RIvK-Shb3w_e zW%?C1Qi*kT@U>Ck-#hr>W^-<$(#CKO_);FY)l++QV-~fpzPs^6w62L{vlG&HsK-|MfAjTcBNhU9c4RN3&olDSGL)tFOma_C$f`og8{F%iG z`hj@da@ap?7qpD61utqaDJtY4SnnN=6;wv+tK`JqMS|j==*Gfao!bTW?=sH2a1+aalFxTlM6S68nHhc6Z|wLJ zFN9?b%-EiB1Ob{`Us>(g{6`Y5*x`Q;KgLM9oLg8j`fiUwzUe3{tKaCr9E02CPvNakyeDKR>F zn@K6;pyCG!aJ|zmoZ*Q0PhWL|R9hwYYc6|%906aj9OrH5Nx`%;tvbbsmD-77Cf&B( zh)6Y>%96hU?Pq;D{u~T#VitTHe^R{9gJ0|GW5VoG)k;St6@Ct3i-ZsZ@+3Z1UdvA^ z_~rSsj5F!UEeimD_Pv)U6yNCz9qyUunE*br3^Mpyms@Nxj_RB!UTt25+#qmW;!)v0 zTZIaG#k~+t;6gl=NG}?BwwWRhc?3vZ_=@ezQTJO2OLpL?58U2f=j#y${DP+2bj>bs zJ;YCxZi;NlcY2bXr65@gGB@3Bc6b{I5UIt7R<=Eid^oSq&XGaFRnWf5ev=7OLNv9` z(fM+Tq{bOZblnMQydzftm}5t1L;?9F_L%XlnJvZMKu%>r$A=%t)@mwd2jEILz>sLL zWhg3)CLPf0vFW}?1#w7o3WC)}qvhySm@n}0@@lE&J6CIl>*otXM1^Wg&H5+aLu$Wu zcMH%EQx>JGgbkO zEiP1_Gv&)aLXb4tio)2x@RK~=XMO9q_VQChc=!ivY}ytytKRdqHMB#qRV()%O$|Ka z$2CKrGa_oahOV)y$w(2v&90_@_ICtwp#ZXHXmotOEu107k5B4Olwm zgDY;~1|w?Z<2!B3haWXAd!H7B@N256wNXe@5mtxzz^}DHCTK|y9UHO@bWe_r*=YO{ z8+F1_o9z1=-vFa&(cs17_Pea)<1tKew#&^K;iZ&Tj- zlzS;yJ6v74g5e(6%*$Y)9|5+Mfj{o{5-IA11IvJl1_g=$55Rf(9V&c}wEa`>I+r-X z_6Wj2IMI&aw+1BKMOkG20OnXZy2!4R4J z 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"Y&_DgXB_Ikk=cXRa3X;tZq}+Hah{3 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�fc0)hWZGw+VtU*X*6`6wc>Izn3=m(%yAxnpRT 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

Du2R&_{wbE z^3<80v1gA+nI-S#ZJ@(XfH}$|!ez4=?KPM&BO&w2BbR{j{N1~^cvZ zrv9xyPz9qb|G7={)onUMSjw6ix(=WC%heBg()8pP>-2a<=1e%t0XHAVyct+rmm#Fgcm0X4nO#fuy&w^ijbUJiGnU`$i3H)JZ)$i;BH zeJjo7hvM>3aCxYWmr0Y0Nr_%VskqFHx$ST{%i^Cz(a;0r;_|}LO9pdT8DRPQRF@+q z;~}2Iqn|F^`7}#p2bdqtM1C6+jNQ5v2s|d$L^$Jvochx_JjKg9Yx<^FUORG)^13P*M(($o_nc) zCsY0wUpk|JxyAAywSA3;RJZ;V8XCJC9c^Z~sa}PtYI6pjMm9C%oG}qt&bP>yOl2Fy zMPWRrzbq-#R%9GzGmjXbyjE(6zXFFbeM{|m57J%l&TDBV@-_c~QgKVxRz}@?RVs(_ z_GG@GIP59kg<#o~wiUg9%<0S&@Am(zxxkdj?81=dER<(i~Sx`vKNVv zPpg2D_S1`}S2==Zv`w@WjZ#8gdK!v|L7Srud`x6>-&R^X5GeKJ{`_>UtFFY4=(@aJI@@1%cH?%L}59-XnA>MbaQ5OZNXfA!(2Y1=$wbk z@^_UtF3&tSIY5bt8w;9w@8l?tC+H^}p(op0wE9#(^XfjOt4v`V6OEOF_HqA|NK zmR!fEURU2BPBpdU#Ah>w84zP#z+w(O@G>~?h-5j<#y$|-8*{8HC&R(0x^&V#7IXD* zVqL$8y~jAD_9leFP`%KE7kmxrG;^JuoEyqq4x|@Vc_a1ot=MXs;aIoT9BrOqt2%xC z^~8tuU&36jY(=b@`VO|4bpntD;|!XE%k29T%u4nlXqKM1|0ghGW*k|*6JExx)2oMK zX{dYm?vX7Bh~-%z0s7wQvpyG>n~b&CZLk`xvTvCXATBqR4eVt&U>*P+=CTZsjFmI% zOmObkE-Fg0`-)%F&h_X8(P=v{)SVufbBGV6{#28EiyoM3&L3qg+Z9WeD}xz@Z~Rtz zlvFM-CzpYo)8qzwTpk>ZuV!1Q&t+6x78uRt+jAS2PM!q3zh8@6e^B}Rv7QQC7M7_8 zmt0;Jmtz9TbL-#z&3C?YFymz=V{a%SBfj~__~ztvLsm#AHz*CuV6)WrUro}s}CsjJelO;TZ$dQB*TTSpg=bU5O^f53o*tr%>)#Y?R zov1A3mB9>@`x4y&uTRQG_Aw#JqXBbIiqraBuHX*kiA`mcd}%LEjv8qEw!&ZAKFC!YO#u$**2W=i_6QnYYjcqAuC&NHo7PdVid%kIy zbNk#ndAX^k)Yne8_IbS5LIT6ya~bo_$WS4x?)K~Bl6W>!)a|V1F1%ON97YBY*8Mk_ zMdswPrvKT@(BI{_O?68)^Q}eJNIgrcU`QCI#+<;copa#KzX5*%&$Z_I{lbfh00000 LNkvXXu0mjfSA9?_ diff --git a/bundles/org.openhab.binding.mercedesme/doc/MBDeveloper-Credentials.png b/bundles/org.openhab.binding.mercedesme/doc/MBDeveloper-Credentials.png deleted file mode 100644 index 6f4bed5c0fd64b50663c57f6fe2483d10dd8fec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24010 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 diff --git a/bundles/org.openhab.binding.mercedesme/doc/MBDeveloper-Subscriptions.png b/bundles/org.openhab.binding.mercedesme/doc/MBDeveloper-Subscriptions.png deleted file mode 100644 index 2a3dc12da9c947e26a71925ae939952df0c0517d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20366 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 literal 0 HcmV?d00001 diff --git a/bundles/org.openhab.binding.mercedesme/doc/OH-Step1.png b/bundles/org.openhab.binding.mercedesme/doc/OH-Step1.png new file mode 100644 index 0000000000000000000000000000000000000000..9bc764f8ff2e7ec120df000e75562f09aa51f4a8 GIT binary patch literal 43706 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 literal 0 HcmV?d00001 diff --git a/bundles/org.openhab.binding.mercedesme/doc/OH-Step3.png b/bundles/org.openhab.binding.mercedesme/doc/OH-Step3.png new file mode 100644 index 0000000000000000000000000000000000000000..1d1d9d986a7543106dbc6d79aa7f7170d0ce1019 GIT binary patch literal 12784 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.2.0-SNAPSHOT + + + + org.codehaus.mojo + build-helper-maven-plugin + + + + add-source + + generate-sources + + + src/3rdparty/java + + + + + + + + @@ -18,6 +40,13 @@ 20231013 compile + + + com.google.protobuf + protobuf-java + 4.26.1 + compile + org.openhab.binding.mercedesme diff --git a/bundles/org.openhab.binding.mercedesme/proto/README.md b/bundles/org.openhab.binding.mercedesme/proto/README.md new file mode 100644 index 00000000000..50df154b609 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/README.md @@ -0,0 +1,7 @@ +# How to protoc + +- Check [mvn repository](https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java-util) which version to use +- Download correct protoc compiler from [maven central](https://repo1.maven.org/maven2/com/google/protobuf/protoc/) into `PROTOC_DIR` +- Call in mercedesme binding directory `PROTOC_DIR\protoc -I=proto --java_out=gen proto/*.proto` +- Move generated sources including subdirs from `gen` to `3rdparty\java` +- Adapt `pom.xml` with version of step 1 \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/proto/acp.proto b/bundles/org.openhab.binding.mercedesme/proto/acp.proto new file mode 100644 index 00000000000..6c92e64d76e --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/acp.proto @@ -0,0 +1,420 @@ +syntax = "proto3"; +package proto; + +//import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "gogo.proto"; + + +option (gogoproto.goproto_enum_prefix_all) = true; +option java_package = "com.daimler.mbcarkit.proto"; + +message VVA { + enum CommandState { + UNKNOWN_COMMAND_STATE = 0; + CREATED = 1010; + ENQUEUED = 1016; + PROCESSING = 1012; + SUSPENDED = 1017; + FINISHED = 1018; + } + + enum CommandCondition { + UNKNWON_COMMAND_CONDITION = 0; + NONE = 1000; + ACCEPTED = 1001; + REJECTED = 1002; + TERMINATE = 1003; + SUCCESS = 1011; + FAILED = 1013; + OVERWRITTEN = 1014; + TIMEOUT = 1015; + } +} + +message VehicleAPI { + enum CommandState { + UNKNOWN_COMMAND_STATE = 0; + // Command execution request is accepted and an asynchronous process is + // being initialized. + INITIATION = 1; + // Another process for the same vehicle and queue is active, the request has + // been queued for later execution. + ENQUEUED = 2; + // The process is currently being processed by the backend. + PROCESSING = 3; + // The backend currently waits for the vehicle to respond to the request. + WAITING = 4; + // The process has finished successfully. + FINISHED = 5; + // There was an error while executing the command process. + FAILED = 6; + } + + enum AttributeStatus { + // Value is set and valid + VALUE_SET = 0; + // Value has not yet been retrieved from vehicle (but sensor etc. should be available) + VALUE_NOT_SET = 1; + // Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend) + INVALID = 3; + // Vehicle does not support this attribute (e.g. does not have the sensor etc.) + NOT_AVAILABLE = 4; + } + + enum QueueType { + + // the JSON enum values are lowercase, but lowercase values are not exported in golang, so + // we allow aliasing all values. + option allow_alias = true; + + UNKNOWNCOMMANDQUEUETYPE = 0; + DOORS = 10; + AUXHEAT = 11; + PRECOND = 12; + CHARGEOPT = 13; + MAINTENANCE = 14; + TCU = 15; + FEED = 16; + SERVICEACTIVATION = 17; + ATP = 18; + ASSISTANCE = 19; + RACP = 20; + WEEKPROFILE = 21; + REMOTEDIAGNOSIS = 22; + FLSH = 23; //(ALSO USED BY SIGPOS/RVF) + TEMPERATURE = 24; + TRIPCOMP = 25; + ENGINE = 26; + THEFTALARM = 27; + WINDOW = 28; + HEADUNIT = 29; + MECALL = 31; + IMMOBILIZER = 32; + RENTALSIGNAL = 33; + BCF = 34; //(BLACKCHANNEL) + PLUGANDCHARGE = 35; + CARSHARINGMODULE = 36; + BATTERY = 37; + ONBOARDFENCES = 38; + SPEEDFENCES = 39; + CHARGINGTARIFFS = 40; + RTMCONFIG = 41; + MAINTENANCECOMPUTER = 42; + MECALL2 = 43; + AUTOMATEDVALETPARKING = 44; + CHARGECONTROL = 45; + SPEEDALERT = 46; + + unknowncommandqueuetype = 0; + doors = 10; + auxheat = 11; + precond = 12; + chargeopt = 13; + maintenance = 14; + tcu = 15; + feed = 16; + serviceactivation = 17; + atp = 18; + assistance = 19; + racp = 20; + weekprofile = 21; + remotediagnosis = 22; + flsh = 23; //(also used by sigpos/RVF) + temperature = 24; + tripcomp = 25; + engine = 26; + theftalarm = 27; + window = 28; + headunit = 29; + mecall = 31; + immobilizer = 32; + rentalsignal = 33; + bcf = 34; //(blackchannel) + plugandcharge = 35; + carsharingmodule = 36; + battery = 37; + onboardfences = 38; + speedfences = 39; + chargingtariffs = 40; + rtmconfig = 41; + maintenancecomputer = 42; + mecall2 = 43; + automatedvaletparking = 44; + chargecontrol = 45; + speedalert = 46; + } +} + +message ACP { + + enum CommandType { + + // the JSON enum values are lowercase, but lowercase values are not exported in golang, so + // we allow aliasing all values. + option allow_alias = true; + + UNKNOWNCOMMANDTYPE = 0; + DOORSLOCK = 100; + DOORSUNLOCK = 110; + TRUNKUNLOCK = 115; + FUELFLAPUNLOCK = 116; + CHARGEFLAPUNLOCK = 117; + CHARGECOUPLERUNLOCK = 118; + DOORSPREPARERENTAL = 120; + DOORSSECUREVEHICLE = 130; + AUXHEATSTART = 300; + AUXHEATSTOP = 310; + AUXHEATCONFIGURE = 320; + TEMPERATURECONFIGURE = 350; + WEEKPROFILECONFIGURE = 360; + WEEKPROFILEV2CONFIGURE = 370; + PRECONDSTART = 400; + PRECONDSTOP = 410; + PRECONDCONFIGURE = 420; + PRECONDCONFIGURESEATS = 425; + CHARGEOPTCONFIGURE = 430; + CHARGEOPTSTART = 440; + CHARGEOPTSTOP = 450; + FEEDPOI = 500; + FEEDFREETEXT = 510; + ENGINESTART = 550; + ENGINESTOP = 560; + ENGINEAVPSTART = 570; + TCUWAKEUP = 600; + TCUSWUPDATE = 610; + TCURCSRESET = 620; + TCUINTERROGATION = 630; + SPEEDALERTSTART = 710; + SPEEDALERTSTOP = 720; + FLSHSTART = 750; // (DEPRECATED) + FLSHSTOP = 760; // (DEPRECATED) + SIGPOSSTART = 770; + CONTRACTCONFIGURE = 800; + CONTRACTREMOVE = 810; + ROOTCONFIGURE = 820; + ROOTREMOVE = 830; + TRIPCOMP = 850; // RESET TRIPCOMP + MAINTENANCECONFIGURE = 930; + MAINTENANCECOMPUTEROFFSET = 931; + SHORTTESTEXECUTE = 935; + SERVICEACTIVATIONCONFIGURE = 940; + DC2SERVICEACTIVATIONCONFIGURE = 945; + DC2RAWDOWNLOAD = 950; //(TEST COMMAND) + APPLICATIONCONFIGURATION = 955; // (DC2+) + DC2STARTTRACKING = 960; // (TEST COMMAND) + ATPSEQUENCE = 990; + THEFTALARMTOGGLEINTERIOR = 1000; + THEFTALARMTOGGLETOW = 1010; + THEFTALARMSELECTINTERIORTOW = 1020; + THEFTALARMDESELECTINTERIORTOW = 1030; + THEFTALARMSTOP = 1040; + WINDOWOPEN = 1100; + WINDOWCLOSE = 1110; + WINDOWVENTILATE = 1120; + WINDOWMOVE = 1121; + ROOFOPEN = 1130; + ROOFCLOSE = 1140; + ROOFLIFT = 1150; + ROOFMOVE = 1151; + BATTERYMAXSOC = 2000; + BATTERYCHARGEPROGRAM = 2010; + CHARGEPROGRAMCONFIGURE = 2020; + ONBOARDFENCESCREATE = 2100; + ONBOARDFENCESUPDATE = 2110; + ONBOARDFENCESDELETE = 2120; + SPEEDFENCESCREATE = 2200; + SPEEDFENCESUPDATE = 2210; + SPEEDFENCESDELETE = 2220; + CHARGINGTARIFFSCREATE = 2300; + CHARGINGTARIFFSUPDATE = 2310; + CHARGINGTARIFFSDELETE = 2320; + THEFTALARMSTART = 2500; + THEFTALARMSELECTINTERIOR = 2510; + THEFTALARMDESELECTINTERIOR = 2520; + THEFTALARMSELECTTOW = 2530; + THEFTALARMDESELECTTOW = 2540; + THEFTALARMSELECTDAMAGEDETECTION = 2550; + THEFTALARMDESELECTDAMAGEDETECTION = 2560; + THEFTALARMCONFIRMDAMAGEDETECTION = 2570; + MECALL2START = 2600; + UDXTRIGGERSYNCHRONIZATION = 1200; + UDXACTIVEUSERPROFILE = 1210; + UDXRESETUSERDATA = 1220; + USERPROFSYNCH = 1230; + USERDATARESET = 1240; + PROFACTIVATIONSNAP = 1250; + PROFACTIVATIONDIRECT = 1255; + SOFTWAREUPDATE = 1260; + PUSHNOTIFICATION = 1270; + MECALLCOMMAND = 1310; + PRECONDSTARTRCS = 1400; + PRECONDSTOPRCS = 1410; + PRECONDCONFIGURERCS = 1420; + TCUCONFIGURE = 1430; + EDISONSERVICEACTIVATION = 1431; + TESTSEQUENCE = 1432; + PRECONDCONFIGURERACP = 1433; + CHARGEOPTCONFIGURERACP = 1434; + TARIFFTABLEDOWNLOAD = 1435; + PRECONDSTARTRACP = 1436; + PRECONDSTOPRACP = 1437; + ROOTCERTIFICATEREMOVE = 1438; + ONREQUESTPROBEUPLOAD = 1439; + ROOTCERTIFICATEDOWNLOAD = 1440; + CONTRACTCERTIFICATEREMOVE = 1441; + CONTRACTCERTIFICATEDOWNLOAD = 1442; + PROBECONFIGURATIONUPDATE = 1443; + RDIAGDELETEECU = 1500; + RDIAGSTATUSREPORT = 1501; + RDIAGEXECUTION = 1502; + IMMOBILIZERCHALLENGE = 1600; + IMMOBILIZERSEARCHKEYLINE = 1610; + IMMOBILIZERRELEASEKEYLINE = 1620; + IMMOBILIZERLOCKKEYLINE = 1630; + IMMOBILIZERLOCKVEHICLE = 1631; + IMMOBILIZERRELEASEVEHICLE = 1621; + SETRENTALSIGNAL = 1700; + BLACKCHANNELDOWNLOAD = 1800; + BLACKCHANNELUPLOAD = 1810; + CONFIGURECSM = 1900; + UPDATEVEHICLEINFO = 1901; + RELAYMESSAGETOCSM = 1902; + RELAYRENTALREQUESTTOCSB = 1903; + RTMDOWNLOADCONFIG = 2400; + RTMREADCONFIG = 2410; + AVPACTIVATE = 2700; + CHARGECONTROLCONFIGURE = 2800; + + unknownCommandType = 0; + doorsLock = 100; + doorsUnlock = 110; + trunkUnlock = 115; + fuelflapUnlock = 116; + chargeflapUnlock = 117; + chargecouplerUnlock = 118; + doorsPrepareRental = 120; + doorsSecureVehicle = 130; + auxheatStart = 300; + auxheatStop = 310; + auxheatConfigure = 320; + temperatureConfigure = 350; + weekprofileConfigure = 360; + weekprofileV2Configure = 370; + precondStart = 400; + precondStop = 410; + precondConfigure = 420; + precondConfigureSeats = 425; + chargeoptConfigure = 430; + chargeoptStart = 440; + chargeoptStop = 450; + feedPoi = 500; + feedFreetext = 510; + engineStart = 550; + engineStop = 560; + engineAvpstart = 570; + tcuWakeup = 600; + tcuSwUpdate = 610; + tcuRcsReset = 620; + tcuInterrogation = 630; + speedalertStart = 710; + speedalertStop = 720; + flshStart = 750; // (DEPRECATED) + flshStop = 760; // (DEPRECATED) + sigposStart = 770; + contractConfigure = 800; + contractRemove = 810; + rootConfigure = 820; + rootRemove = 830; + tripcomp = 850; // reset tripcomp + maintenanceConfigure = 930; + maintenanceComputerOffset = 931; + shorttestExecute = 935; + serviceactivationConfigure = 940; + dc2ServiceactivationConfigure = 945; + dc2RawDownload = 950; //(test command) + applicationConfiguration = 955; // (DC2+) + dc2StartTracking = 960; // (test command) + atpSequence = 990; + theftalarmToggleInterior = 1000; + theftalarmToggleTow = 1010; + theftalarmSelectInteriorTow = 1020; + theftalarmDeselectInteriorTow = 1030; + theftalarmStop = 1040; + windowOpen = 1100; + windowClose = 1110; + windowVentilate = 1120; + windowMove = 1121; + roofOpen = 1130; + roofClose = 1140; + roofLift = 1150; + roofMove = 1151; + batteryMaxsoc = 2000; + batteryChargeprogram = 2010; + chargeprogramconfigure = 2020; + onboardfencesCreate = 2100; + onboardfencesUpdate = 2110; + onboardfencesDelete = 2120; + speedfencesCreate = 2200; + speedfencesUpdate = 2210; + speedfencesDelete = 2220; + chargingtariffsCreate = 2300; + chargingtariffsUpdate = 2310; + chargingtariffsDelete = 2320; + theftalarmstart = 2500; + theftalarmselectinterior = 2510; + theftalarmdeselectinterior = 2520; + theftalarmselecttow = 2530; + theftalarmdeselecttow = 2540; + theftalarmselectdamagedetection = 2550; + theftalarmdeselectdamagedetection = 2560; + theftalarmconfirmdamagedetection = 2570; + mecall2start = 2600; + udxTriggerSynchronization = 1200; + udxActiveUserProfile = 1210; + udxResetUserData = 1220; + userProfSynch = 1230; + userDataReset = 1240; + profActivationSnap = 1250; + profActivationDirect = 1255; + softwareUpdate = 1260; + pushNotification = 1270; + mecallcommand = 1310; + precondStartRcs = 1400; + precondStopRcs = 1410; + precondConfigureRcs = 1420; + tcuConfigure = 1430; + edisonServiceActivation = 1431; + testSequence = 1432; + precondConfigureRacp = 1433; + chargeoptConfigureRacp = 1434; + tariffTableDownload = 1435; + precondStartRacp = 1436; + precondStopRacp = 1437; + rootCertificateRemove = 1438; + onRequestProbeUpload = 1439; + rootCertificateDownload = 1440; + contractCertificateRemove = 1441; + contractCertificateDownload = 1442; + probeConfigurationUpdate = 1443; + rdiagDeleteEcu = 1500; + rdiagStatusReport = 1501; + rdiagExecution = 1502; + immobilizerChallenge = 1600; + immobilizerSearchKeyline = 1610; + immobilizerReleaseKeyline = 1620; + immobilizerLockKeyline = 1630; + immobilizerLockVehicle = 1631; + immobilizerReleaseVehicle = 1621; + setRentalSignal = 1700; + blackchannelDownload = 1800; + blackchannelUpload = 1810; + configurecsm = 1900; + updatevehicleinfo = 1901; + relaymessagetocsm = 1902; + relayrentalrequesttocsb = 1903; + rtmDownloadConfig = 2400; + rtmReadConfig = 2410; + avpActivate = 2700; + chargecontrolconfigure = 2800; + } +} diff --git a/bundles/org.openhab.binding.mercedesme/proto/client.proto b/bundles/org.openhab.binding.mercedesme/proto/client.proto new file mode 100644 index 00000000000..83162b42dfc --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/client.proto @@ -0,0 +1,46 @@ +syntax = "proto3"; +package proto; + +import "protos.proto"; +import "service-activation.proto"; +import "user-events.proto"; +import "vehicle-commands.proto"; +import "vehicle-events.proto"; +import "vehicleapi.proto"; + +option java_package = "com.daimler.mbcarkit.proto"; + +// message that is sent from the client +// Sending direction: App -> Websocket (-> AppTwin) +message ClientMessage { + reserved 8; + string tracking_id = 5; + oneof msg { + UnsubscribeRequest unsubscribeRequest = 2; + CommandRequest commandRequest = 3; + TrackingEvent tracking_event = 4; + ConfigurePingInterval ping_interval = 6; + AcknowledgeVEPRequest acknowledge_vep_request = 7; + AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + UpdateUserJWTRequest update_user_jwt_request = 14; + AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + Logout logout = 20; + AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + } +} + +// Message to send from the app right before logging out of keycloak +// Stops the corresponding AppTwin actor and shuts it down and +// stops the websocket actor (but does not shut it down. This automatically happens, when the websocket connection is terminated) +message Logout { +} diff --git a/bundles/org.openhab.binding.mercedesme/proto/cluster.proto b/bundles/org.openhab.binding.mercedesme/proto/cluster.proto new file mode 100644 index 00000000000..ce4db452353 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/cluster.proto @@ -0,0 +1,15 @@ +syntax = "proto3"; +package proto; + +option java_package = "com.daimler.mbcarkit.proto"; + +enum MemberStatus { + UNKNOWN_MEMBER_STATUS = 0; + STARTING = 1; + READY = 2; + STOPPING = 3; +} +message AppTwinMemberStatusValue { + MemberStatus status = 1; + uint32 apptwin_count = 2; +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/proto/eventpush.proto b/bundles/org.openhab.binding.mercedesme/proto/eventpush.proto new file mode 100644 index 00000000000..de9069240f7 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/eventpush.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; +package proto; +import "acp.proto"; + +//import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "gogo.proto"; + +option (gogoproto.goproto_enum_prefix_all) = true; +option java_package = "com.daimler.mbcarkit.proto"; + +message EventPushCommand { + string vin = 1 [json_name = "vin"]; + VVA.CommandState state = 2 [json_name = "acpState"]; + VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + ACP.CommandType type = 4 [json_name = "acpCommandType"]; + int64 process_id = 5 [json_name = "pid"]; + string tracking_id = 6 [json_name = "trackingId"]; + string correlation_id = 7 [json_name = "correlationId"]; + repeated int32 error_codes = 8 [json_name = "errorCodes"]; + string guid = 9 [json_name = "guid"]; + int64 timestamp_in_s = 10 [ json_name = "timestamp" ]; +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/proto/gogo.proto b/bundles/org.openhab.binding.mercedesme/proto/gogo.proto new file mode 100644 index 00000000000..8947d90aa5f --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/gogo.proto @@ -0,0 +1,144 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto2"; +package gogoproto; + +import "google/protobuf/descriptor.proto"; + +option java_package = "com.google.protobuf"; +option java_outer_classname = "GoGoProtos"; +option go_package = "github.com/gogo/protobuf/gogoproto"; + +extend google.protobuf.EnumOptions { + optional bool goproto_enum_prefix = 62001; + optional bool goproto_enum_stringer = 62021; + optional bool enum_stringer = 62022; + optional string enum_customname = 62023; + optional bool enumdecl = 62024; +} + +extend google.protobuf.EnumValueOptions { + optional string enumvalue_customname = 66001; +} + +extend google.protobuf.FileOptions { + optional bool goproto_getters_all = 63001; + optional bool goproto_enum_prefix_all = 63002; + optional bool goproto_stringer_all = 63003; + optional bool verbose_equal_all = 63004; + optional bool face_all = 63005; + optional bool gostring_all = 63006; + optional bool populate_all = 63007; + optional bool stringer_all = 63008; + optional bool onlyone_all = 63009; + + optional bool equal_all = 63013; + optional bool description_all = 63014; + optional bool testgen_all = 63015; + optional bool benchgen_all = 63016; + optional bool marshaler_all = 63017; + optional bool unmarshaler_all = 63018; + optional bool stable_marshaler_all = 63019; + + optional bool sizer_all = 63020; + + optional bool goproto_enum_stringer_all = 63021; + optional bool enum_stringer_all = 63022; + + optional bool unsafe_marshaler_all = 63023; + optional bool unsafe_unmarshaler_all = 63024; + + optional bool goproto_extensions_map_all = 63025; + optional bool goproto_unrecognized_all = 63026; + optional bool gogoproto_import = 63027; + optional bool protosizer_all = 63028; + optional bool compare_all = 63029; + optional bool typedecl_all = 63030; + optional bool enumdecl_all = 63031; + + optional bool goproto_registration = 63032; + optional bool messagename_all = 63033; + + optional bool goproto_sizecache_all = 63034; + optional bool goproto_unkeyed_all = 63035; +} + +extend google.protobuf.MessageOptions { + optional bool goproto_getters = 64001; + optional bool goproto_stringer = 64003; + optional bool verbose_equal = 64004; + optional bool face = 64005; + optional bool gostring = 64006; + optional bool populate = 64007; + optional bool stringer = 67008; + optional bool onlyone = 64009; + + optional bool equal = 64013; + optional bool description = 64014; + optional bool testgen = 64015; + optional bool benchgen = 64016; + optional bool marshaler = 64017; + optional bool unmarshaler = 64018; + optional bool stable_marshaler = 64019; + + optional bool sizer = 64020; + + optional bool unsafe_marshaler = 64023; + optional bool unsafe_unmarshaler = 64024; + + optional bool goproto_extensions_map = 64025; + optional bool goproto_unrecognized = 64026; + + optional bool protosizer = 64028; + optional bool compare = 64029; + + optional bool typedecl = 64030; + + optional bool messagename = 64033; + + optional bool goproto_sizecache = 64034; + optional bool goproto_unkeyed = 64035; +} + +extend google.protobuf.FieldOptions { + optional bool nullable = 65001; + optional bool embed = 65002; + optional string customtype = 65003; + optional string customname = 65004; + optional string jsontag = 65005; + optional string moretags = 65006; + optional string casttype = 65007; + optional string castkey = 65008; + optional string castvalue = 65009; + + optional bool stdtime = 65010; + optional bool stdduration = 65011; + optional bool wktpointer = 65012; + +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/descriptor.proto b/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/descriptor.proto new file mode 100644 index 00000000000..143e3542652 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/descriptor.proto @@ -0,0 +1,1280 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// The messages in this file describe the definitions found in .proto files. +// A valid .proto file can be translated directly to a FileDescriptorProto +// without any other information (e.g. without reading its imports). + +syntax = "proto2"; + +package google.protobuf; + +option go_package = "google.golang.org/protobuf/types/descriptorpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "DescriptorProtos"; +option csharp_namespace = "Google.Protobuf.Reflection"; +option objc_class_prefix = "GPB"; +option cc_enable_arenas = true; + +// descriptor.proto must be optimized for speed because reflection-based +// algorithms don't work during bootstrapping. +option optimize_for = SPEED; + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +message FileDescriptorSet { + repeated FileDescriptorProto file = 1; +} + +// The full set of known editions. +enum Edition { + // A placeholder for an unknown edition value. + EDITION_UNKNOWN = 0; + + // A placeholder edition for specifying default behaviors *before* a feature + // was first introduced. This is effectively an "infinite past". + EDITION_LEGACY = 900; + + // Legacy syntax "editions". These pre-date editions, but behave much like + // distinct editions. These can't be used to specify the edition of proto + // files, but feature definitions must supply proto2/proto3 defaults for + // backwards compatibility. + EDITION_PROTO2 = 998; + EDITION_PROTO3 = 999; + + // Editions that have been released. The specific values are arbitrary and + // should not be depended on, but they will always be time-ordered for easy + // comparison. + EDITION_2023 = 1000; + EDITION_2024 = 1001; + + // Placeholder editions for testing feature resolution. These should not be + // used or relyed on outside of tests. + EDITION_1_TEST_ONLY = 1; + EDITION_2_TEST_ONLY = 2; + EDITION_99997_TEST_ONLY = 99997; + EDITION_99998_TEST_ONLY = 99998; + EDITION_99999_TEST_ONLY = 99999; + + // Placeholder for specifying unbounded edition support. This should only + // ever be used by plugins that can expect to never require any changes to + // support a new edition. + EDITION_MAX = 0x7FFFFFFF; +} + +// Describes a complete .proto file. +message FileDescriptorProto { + optional string name = 1; // file name, relative to root of source tree + optional string package = 2; // e.g. "foo", "foo.bar", etc. + + // Names of files imported by this file. + repeated string dependency = 3; + // Indexes of the public imported files in the dependency list above. + repeated int32 public_dependency = 10; + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + repeated int32 weak_dependency = 11; + + // All top-level definitions in this file. + repeated DescriptorProto message_type = 4; + repeated EnumDescriptorProto enum_type = 5; + repeated ServiceDescriptorProto service = 6; + repeated FieldDescriptorProto extension = 7; + + optional FileOptions options = 8; + + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + optional SourceCodeInfo source_code_info = 9; + + // The syntax of the proto file. + // The supported values are "proto2", "proto3", and "editions". + // + // If `edition` is present, this value must be "editions". + optional string syntax = 12; + + // The edition of the proto file. + optional Edition edition = 14; +} + +// Describes a message type. +message DescriptorProto { + optional string name = 1; + + repeated FieldDescriptorProto field = 2; + repeated FieldDescriptorProto extension = 6; + + repeated DescriptorProto nested_type = 3; + repeated EnumDescriptorProto enum_type = 4; + + message ExtensionRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + + optional ExtensionRangeOptions options = 3; + } + repeated ExtensionRange extension_range = 5; + + repeated OneofDescriptorProto oneof_decl = 8; + + optional MessageOptions options = 7; + + // Range of reserved tag numbers. Reserved tag numbers may not be used by + // fields or extension ranges in the same message. Reserved ranges may + // not overlap. + message ReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Exclusive. + } + repeated ReservedRange reserved_range = 9; + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + repeated string reserved_name = 10; +} + +message ExtensionRangeOptions { + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + message Declaration { + // The extension number declared within the extension range. + optional int32 number = 1; + + // The fully-qualified name of the extension field. There must be a leading + // dot in front of the full name. + optional string full_name = 2; + + // The fully-qualified type name of the extension field. Unlike + // Metadata.type, Declaration.type must have a leading dot for messages + // and enums. + optional string type = 3; + + // If true, indicates that the number is reserved in the extension range, + // and any extension field with the number will fail to compile. Set this + // when a declared extension field is deleted. + optional bool reserved = 5; + + // If true, indicates that the extension must be defined as repeated. + // Otherwise the extension must be defined as optional. + optional bool repeated = 6; + + reserved 4; // removed is_repeated + } + + // For external users: DO NOT USE. We are in the process of open sourcing + // extension declaration and executing internal cleanups before it can be + // used externally. + repeated Declaration declaration = 2 [retention = RETENTION_SOURCE]; + + // Any features defined in the specific edition. + optional FeatureSet features = 50; + + // The verification state of the extension range. + enum VerificationState { + // All the extensions of the range must be declared. + DECLARATION = 0; + UNVERIFIED = 1; + } + + // The verification state of the range. + // TODO: flip the default to DECLARATION once all empty ranges + // are marked as UNVERIFIED. + optional VerificationState verification = 3 + [default = UNVERIFIED, retention = RETENTION_SOURCE]; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// Describes a field within a message. +message FieldDescriptorProto { + enum Type { + // 0 is reserved for errors. + // Order is weird for historical reasons. + TYPE_DOUBLE = 1; + TYPE_FLOAT = 2; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + TYPE_INT64 = 3; + TYPE_UINT64 = 4; + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + TYPE_INT32 = 5; + TYPE_FIXED64 = 6; + TYPE_FIXED32 = 7; + TYPE_BOOL = 8; + TYPE_STRING = 9; + // Tag-delimited aggregate. + // Group type is deprecated and not supported after google.protobuf. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. In Editions, the group wire format + // can be enabled via the `message_encoding` feature. + TYPE_GROUP = 10; + TYPE_MESSAGE = 11; // Length-delimited aggregate. + + // New in version 2. + TYPE_BYTES = 12; + TYPE_UINT32 = 13; + TYPE_ENUM = 14; + TYPE_SFIXED32 = 15; + TYPE_SFIXED64 = 16; + TYPE_SINT32 = 17; // Uses ZigZag encoding. + TYPE_SINT64 = 18; // Uses ZigZag encoding. + } + + enum Label { + // 0 is reserved for errors + LABEL_OPTIONAL = 1; + LABEL_REPEATED = 3; + // The required label is only allowed in google.protobuf. In proto3 and Editions + // it's explicitly prohibited. In Editions, the `field_presence` feature + // can be used to get this behavior. + LABEL_REQUIRED = 2; + } + + optional string name = 1; + optional int32 number = 3; + optional Label label = 4; + + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + optional Type type = 5; + + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + optional string type_name = 6; + + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + optional string extendee = 2; + + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + optional string default_value = 7; + + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + optional int32 oneof_index = 9; + + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + optional string json_name = 10; + + optional FieldOptions options = 8; + + // If true, this is a proto3 "optional". When a proto3 field is optional, it + // tracks presence regardless of field type. + // + // When proto3_optional is true, this field must belong to a oneof to signal + // to old proto3 clients that presence is tracked for this field. This oneof + // is known as a "synthetic" oneof, and this field must be its sole member + // (each proto3 optional field gets its own synthetic oneof). Synthetic oneofs + // exist in the descriptor only, and do not generate any API. Synthetic oneofs + // must be ordered after all "real" oneofs. + // + // For message fields, proto3_optional doesn't create any semantic change, + // since non-repeated message fields always track presence. However it still + // indicates the semantic detail of whether the user wrote "optional" or not. + // This can be useful for round-tripping the .proto file. For consistency we + // give message fields a synthetic oneof also, even though it is not required + // to track presence. This is especially important because the parser can't + // tell if a field is a message or an enum, so it must always create a + // synthetic oneof. + // + // Proto2 optional fields do not set this flag, because they already indicate + // optional with `LABEL_OPTIONAL`. + optional bool proto3_optional = 17; +} + +// Describes a oneof. +message OneofDescriptorProto { + optional string name = 1; + optional OneofOptions options = 2; +} + +// Describes an enum type. +message EnumDescriptorProto { + optional string name = 1; + + repeated EnumValueDescriptorProto value = 2; + + optional EnumOptions options = 3; + + // Range of reserved numeric values. Reserved values may not be used by + // entries in the same enum. Reserved ranges may not overlap. + // + // Note that this is distinct from DescriptorProto.ReservedRange in that it + // is inclusive such that it can appropriately represent the entire int32 + // domain. + message EnumReservedRange { + optional int32 start = 1; // Inclusive. + optional int32 end = 2; // Inclusive. + } + + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + repeated EnumReservedRange reserved_range = 4; + + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + repeated string reserved_name = 5; +} + +// Describes a value within an enum. +message EnumValueDescriptorProto { + optional string name = 1; + optional int32 number = 2; + + optional EnumValueOptions options = 3; +} + +// Describes a service. +message ServiceDescriptorProto { + optional string name = 1; + repeated MethodDescriptorProto method = 2; + + optional ServiceOptions options = 3; +} + +// Describes a method of a service. +message MethodDescriptorProto { + optional string name = 1; + + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + optional string input_type = 2; + optional string output_type = 3; + + optional MethodOptions options = 4; + + // Identifies if client streams multiple client messages + optional bool client_streaming = 5 [default = false]; + // Identifies if server streams multiple server messages + optional bool server_streaming = 6 [default = false]; +} + +// =================================================================== +// Options + +// Each of the definitions above may have "options" attached. These are +// just annotations which may cause code to be generated slightly differently +// or may contain hints for code that manipulates protocol messages. +// +// Clients may define custom options as extensions of the *Options messages. +// These extensions may not yet be known at parsing time, so the parser cannot +// store the values in them. Instead it stores them in a field in the *Options +// message called uninterpreted_option. This field must have the same name +// across all *Options messages. We then use this field to populate the +// extensions when we build a descriptor, at which point all protos have been +// parsed and so all extensions are known. +// +// Extension numbers for custom options may be chosen as follows: +// * For options which will only be used within a single application or +// organization, or for experimental options, use field numbers 50000 +// through 99999. It is up to you to ensure that you do not use the +// same number for multiple options. +// * For options which will be published and used publicly by multiple +// independent entities, e-mail protobuf-global-extension-registry@google.com +// to reserve extension numbers. Simply provide your project name (e.g. +// Objective-C plugin) and your project website (if available) -- there's no +// need to explain how you intend to use them. Usually you only need one +// extension number. You can declare multiple options with only one extension +// number by putting them in a sub-message. See the Custom Options section of +// the docs for examples: +// https://developers.google.com/protocol-buffers/docs/proto#options +// If this turns out to be popular, a web service will be set up +// to automatically assign option numbers. + +message FileOptions { + + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + optional string java_package = 1; + + // Controls the name of the wrapper Java class generated for the .proto file. + // That class will always contain the .proto file's getDescriptor() method as + // well as any top-level extensions defined in the .proto file. + // If java_multiple_files is disabled, then all the other classes from the + // .proto file will be nested inside the single wrapper outer class. + optional string java_outer_classname = 8; + + // If enabled, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the wrapper class + // named by java_outer_classname. However, the wrapper class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + optional bool java_multiple_files = 10 [default = false]; + + // This option does nothing. + optional bool java_generate_equals_and_hash = 20 [deprecated=true]; + + // A proto2 file can set this to true to opt in to UTF-8 checking for Java, + // which will throw an exception if invalid UTF-8 is parsed from the wire or + // assigned to a string field. + // + // TODO: clarify exactly what kinds of field types this option + // applies to, and update these docs accordingly. + // + // Proto3 files already perform these checks. Setting the option explicitly to + // false has no effect: it cannot be used to opt proto3 files out of UTF-8 + // checks. + optional bool java_string_check_utf8 = 27 [default = false]; + + // Generated classes can be optimized for speed or code size. + enum OptimizeMode { + SPEED = 1; // Generate complete code for parsing, serialization, + // etc. + CODE_SIZE = 2; // Use ReflectionOps to implement these methods. + LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime. + } + optional OptimizeMode optimize_for = 9 [default = SPEED]; + + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + optional string go_package = 11; + + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + optional bool cc_generic_services = 16 [default = false]; + optional bool java_generic_services = 17 [default = false]; + optional bool py_generic_services = 18 [default = false]; + reserved 42; // removed php_generic_services + + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + optional bool deprecated = 23 [default = false]; + + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + optional bool cc_enable_arenas = 31 [default = true]; + + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + optional string objc_class_prefix = 36; + + // Namespace for generated classes; defaults to the package. + optional string csharp_namespace = 37; + + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + optional string swift_prefix = 39; + + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + optional string php_class_prefix = 40; + + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + optional string php_namespace = 41; + + // Use this option to change the namespace of php generated metadata classes. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. + optional string php_metadata_namespace = 44; + + // Use this option to change the package of ruby generated classes. Default + // is empty. When this option is not set, the package name will be used for + // determining the ruby package. + optional string ruby_package = 45; + + // Any features defined in the specific edition. + optional FeatureSet features = 50; + + // The parser stores options it doesn't recognize here. + // See the documentation for the "Options" section above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. + // See the documentation for the "Options" section above. + extensions 1000 to max; + + reserved 38; +} + +message MessageOptions { + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + optional bool message_set_wire_format = 1 [default = false]; + + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + optional bool no_standard_descriptor_accessor = 2 [default = false]; + + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + optional bool deprecated = 3 [default = false]; + + reserved 4, 5, 6; + + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // map map_field = 1; + // The parsed descriptor looks like: + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementations still need to work as + // if the field is a repeated message field. + // + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + optional bool map_entry = 7; + + reserved 8; // javalite_serializable + reserved 9; // javanano_as_lite + + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // + // This should only be used as a temporary measure against broken builds due + // to the change in behavior for JSON field name conflicts. + // + // TODO This is legacy behavior we plan to remove once downstream + // teams have had time to migrate. + optional bool deprecated_legacy_json_field_conflicts = 11 [deprecated = true]; + + // Any features defined in the specific edition. + optional FeatureSet features = 12; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message FieldOptions { + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is only implemented to support use of + // [ctype=CORD] and [ctype=STRING] (the default) on non-repeated fields of + // type "bytes" in the open source release -- sorry, we'll try to include + // other types in a future version! + optional CType ctype = 1 [default = STRING]; + enum CType { + // Default mode. + STRING = 0; + + // The option [ctype=CORD] may be applied to a non-repeated field of type + // "bytes". It indicates that in C++, the data should be stored in a Cord + // instead of a string. For very large strings, this may reduce memory + // fragmentation. It may also allow better performance when parsing from a + // Cord, or when parsing with aliasing enabled, as the parsed Cord may then + // alias the original buffer. + CORD = 1; + + STRING_PIECE = 2; + } + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. This option is prohibited in + // Editions, but the `repeated_field_encoding` feature can be used to control + // the behavior. + optional bool packed = 2; + + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + optional JSType jstype = 6 [default = JS_NORMAL]; + enum JSType { + // Use the default type. + JS_NORMAL = 0; + + // Use JavaScript strings. + JS_STRING = 1; + + // Use JavaScript numbers. + JS_NUMBER = 2; + } + + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // Note that lazy message fields are still eagerly verified to check + // ill-formed wireformat or missing required fields. Calling IsInitialized() + // on the outer message would fail if the inner message has missing required + // fields. Failed verification would result in parsing failure (except when + // uninitialized messages are acceptable). + optional bool lazy = 5 [default = false]; + + // unverified_lazy does no correctness checks on the byte stream. This should + // only be used where lazy with verification is prohibitive for performance + // reasons. + optional bool unverified_lazy = 15 [default = false]; + + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + optional bool deprecated = 3 [default = false]; + + // For Google-internal migration only. Do not use. + optional bool weak = 10 [default = false]; + + // Indicate that the field value should not be printed out when using debug + // formats, e.g. when the field contains sensitive credentials. + optional bool debug_redact = 16 [default = false]; + + // If set to RETENTION_SOURCE, the option will be omitted from the binary. + // Note: as of January 2023, support for this is in progress and does not yet + // have an effect (b/264593489). + enum OptionRetention { + RETENTION_UNKNOWN = 0; + RETENTION_RUNTIME = 1; + RETENTION_SOURCE = 2; + } + + optional OptionRetention retention = 17; + + // This indicates the types of entities that the field may apply to when used + // as an option. If it is unset, then the field may be freely used as an + // option on any kind of entity. Note: as of January 2023, support for this is + // in progress and does not yet have an effect (b/264593489). + enum OptionTargetType { + TARGET_TYPE_UNKNOWN = 0; + TARGET_TYPE_FILE = 1; + TARGET_TYPE_EXTENSION_RANGE = 2; + TARGET_TYPE_MESSAGE = 3; + TARGET_TYPE_FIELD = 4; + TARGET_TYPE_ONEOF = 5; + TARGET_TYPE_ENUM = 6; + TARGET_TYPE_ENUM_ENTRY = 7; + TARGET_TYPE_SERVICE = 8; + TARGET_TYPE_METHOD = 9; + } + + repeated OptionTargetType targets = 19; + + message EditionDefault { + optional Edition edition = 3; + optional string value = 2; // Textproto value. + } + repeated EditionDefault edition_defaults = 20; + + // Any features defined in the specific edition. + optional FeatureSet features = 21; + + // Information about the support window of a feature. + message FeatureSupport { + // The edition that this feature was first available in. In editions + // earlier than this one, the default assigned to EDITION_LEGACY will be + // used, and proto files will not be able to override it. + optional Edition edition_introduced = 1; + + // The edition this feature becomes deprecated in. Using this after this + // edition may trigger warnings. + optional Edition edition_deprecated = 2; + + // The deprecation warning text if this feature is used after the edition it + // was marked deprecated in. + optional string deprecation_warning = 3; + + // The edition this feature is no longer available in. In editions after + // this one, the last default assigned will be used, and proto files will + // not be able to override it. + optional Edition edition_removed = 4; + } + optional FeatureSupport feature_support = 22; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; + + reserved 4; // removed jtype + reserved 18; // reserve target, target_obsolete_do_not_use +} + +message OneofOptions { + // Any features defined in the specific edition. + optional FeatureSet features = 1; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumOptions { + + // Set this option to true to allow mapping different tag names to the same + // value. + optional bool allow_alias = 2; + + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + optional bool deprecated = 3 [default = false]; + + reserved 5; // javanano_as_lite + + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // TODO Remove this legacy behavior once downstream teams have + // had time to migrate. + optional bool deprecated_legacy_json_field_conflicts = 6 [deprecated = true]; + + // Any features defined in the specific edition. + optional FeatureSet features = 7; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message EnumValueOptions { + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + optional bool deprecated = 1 [default = false]; + + // Any features defined in the specific edition. + optional FeatureSet features = 2; + + // Indicate that fields annotated with this enum value should not be printed + // out when using debug formats, e.g. when the field contains sensitive + // credentials. + optional bool debug_redact = 3 [default = false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message ServiceOptions { + + // Any features defined in the specific edition. + optional FeatureSet features = 34; + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + optional bool deprecated = 33 [default = false]; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +message MethodOptions { + + // Note: Field numbers 1 through 32 are reserved for Google's internal RPC + // framework. We apologize for hoarding these numbers to ourselves, but + // we were already using them long before we decided to release Protocol + // Buffers. + + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + optional bool deprecated = 33 [default = false]; + + // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + // or neither? HTTP based RPC implementation may choose GET verb for safe + // methods, and PUT verb for idempotent methods instead of the default POST. + enum IdempotencyLevel { + IDEMPOTENCY_UNKNOWN = 0; + NO_SIDE_EFFECTS = 1; // implies idempotent + IDEMPOTENT = 2; // idempotent, but may have side effects + } + optional IdempotencyLevel idempotency_level = 34 + [default = IDEMPOTENCY_UNKNOWN]; + + // Any features defined in the specific edition. + optional FeatureSet features = 35; + + // The parser stores options it doesn't recognize here. See above. + repeated UninterpretedOption uninterpreted_option = 999; + + // Clients can define custom options in extensions of this message. See above. + extensions 1000 to max; +} + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +message UninterpretedOption { + // The name of the uninterpreted option. Each string represents a segment in + // a dot-separated name. is_extension is true iff a segment represents an + // extension (denoted with parentheses in options specs in .proto files). + // E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents + // "foo.(bar.baz).moo". + message NamePart { + required string name_part = 1; + required bool is_extension = 2; + } + repeated NamePart name = 2; + + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + optional string identifier_value = 3; + optional uint64 positive_int_value = 4; + optional int64 negative_int_value = 5; + optional double double_value = 6; + optional bytes string_value = 7; + optional string aggregate_value = 8; +} + +// =================================================================== +// Features + +// TODO Enums in C++ gencode (and potentially other languages) are +// not well scoped. This means that each of the feature enums below can clash +// with each other. The short names we've chosen maximize call-site +// readability, but leave us very open to this scenario. A future feature will +// be designed and implemented to handle this, hopefully before we ever hit a +// conflict here. +message FeatureSet { + enum FieldPresence { + FIELD_PRESENCE_UNKNOWN = 0; + EXPLICIT = 1; + IMPLICIT = 2; + LEGACY_REQUIRED = 3; + } + optional FieldPresence field_presence = 1 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + // TODO Enable this in google3 once protoc rolls out. + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_PROTO2, value: "EXPLICIT" }, + edition_defaults = { edition: EDITION_PROTO3, value: "IMPLICIT" }, + edition_defaults = { edition: EDITION_2023, value: "EXPLICIT" } + ]; + + enum EnumType { + ENUM_TYPE_UNKNOWN = 0; + OPEN = 1; + CLOSED = 2; + } + optional EnumType enum_type = 2 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_ENUM, + targets = TARGET_TYPE_FILE, + // TODO Enable this in google3 once protoc rolls out. + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_PROTO2, value: "CLOSED" }, + edition_defaults = { edition: EDITION_PROTO3, value: "OPEN" } + ]; + + enum RepeatedFieldEncoding { + REPEATED_FIELD_ENCODING_UNKNOWN = 0; + PACKED = 1; + EXPANDED = 2; + } + optional RepeatedFieldEncoding repeated_field_encoding = 3 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + // TODO Enable this in google3 once protoc rolls out. + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_PROTO2, value: "EXPANDED" }, + edition_defaults = { edition: EDITION_PROTO3, value: "PACKED" } + ]; + + enum Utf8Validation { + UTF8_VALIDATION_UNKNOWN = 0; + VERIFY = 2; + NONE = 3; + } + optional Utf8Validation utf8_validation = 4 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + // TODO Enable this in google3 once protoc rolls out. + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_PROTO2, value: "NONE" }, + edition_defaults = { edition: EDITION_PROTO3, value: "VERIFY" } + ]; + + enum MessageEncoding { + MESSAGE_ENCODING_UNKNOWN = 0; + LENGTH_PREFIXED = 1; + DELIMITED = 2; + } + optional MessageEncoding message_encoding = 5 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_FIELD, + targets = TARGET_TYPE_FILE, + // TODO Enable this in google3 once protoc rolls out. + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_PROTO2, value: "LENGTH_PREFIXED" } + ]; + + enum JsonFormat { + JSON_FORMAT_UNKNOWN = 0; + ALLOW = 1; + LEGACY_BEST_EFFORT = 2; + } + optional JsonFormat json_format = 6 [ + retention = RETENTION_RUNTIME, + targets = TARGET_TYPE_MESSAGE, + targets = TARGET_TYPE_ENUM, + targets = TARGET_TYPE_FILE, + // TODO Enable this in google3 once protoc rolls out. + feature_support = { + edition_introduced: EDITION_2023, + }, + edition_defaults = { edition: EDITION_PROTO2, value: "LEGACY_BEST_EFFORT" }, + edition_defaults = { edition: EDITION_PROTO3, value: "ALLOW" } + ]; + + reserved 999; + + extensions 1000; // for Protobuf C++ + extensions 1001; // for Protobuf Java + extensions 1002; // for Protobuf Go + + extensions 9990; // for deprecated Java Proto1 + + extensions 9995 to 9999; // For internal testing + extensions 10000; // for https://github.com/bufbuild/protobuf-es +} + +// A compiled specification for the defaults of a set of features. These +// messages are generated from FeatureSet extensions and can be used to seed +// feature resolution. The resolution with this object becomes a simple search +// for the closest matching edition, followed by proto merges. +message FeatureSetDefaults { + // A map from every known edition with a unique set of defaults to its + // defaults. Not all editions may be contained here. For a given edition, + // the defaults at the closest matching edition ordered at or before it should + // be used. This field must be in strict ascending order by edition. + message FeatureSetEditionDefault { + optional Edition edition = 3; + + // Defaults of features that can be overridden in this edition. + optional FeatureSet overridable_features = 4; + + // Defaults of features that can't be overridden in this edition. + optional FeatureSet fixed_features = 5; + } + repeated FeatureSetEditionDefault defaults = 1; + + // The minimum supported edition (inclusive) when this was constructed. + // Editions before this will not have defaults. + optional Edition minimum_edition = 4; + + // The maximum known edition (inclusive) when this was constructed. Editions + // after this will not have reliable defaults. + optional Edition maximum_edition = 5; +} + +// =================================================================== +// Optional source code info + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +message SourceCodeInfo { + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // message Foo { + // optional string foo = 1; + // } + // Let's look at just the field definition: + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // We have the following locations: + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendant. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + repeated Location location = 1; + message Location { + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition appears. + // For example, this path: + // [ 4, 3, 2, 7, 1 ] + // refers to: + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // This is because FileDescriptorProto.message_type has field number 4: + // repeated DescriptorProto message_type = 4; + // and DescriptorProto.field has field number 2: + // repeated FieldDescriptorProto field = 2; + // and FieldDescriptorProto.name has field number 1: + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // [ 4, 3, 2, 7 ] + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + repeated int32 path = 1 [packed = true]; + + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + repeated int32 span = 2 [packed = true]; + + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to moo. + // // + // // Another line attached to moo. + // optional double moo = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to moo or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + optional string leading_comments = 3; + optional string trailing_comments = 4; + repeated string leading_detached_comments = 6; + } +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +message GeneratedCodeInfo { + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + repeated Annotation annotation = 1; + message Annotation { + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + repeated int32 path = 1 [packed = true]; + + // Identifies the filesystem path to the original source .proto. + optional string source_file = 2; + + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + optional int32 begin = 3; + + // Identifies the ending offset in bytes in the generated code that + // relates to the identified object. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + optional int32 end = 4; + + // Represents the identified object's effect on the element in the original + // .proto file. + enum Semantic { + // There is no effect or the effect is indescribable. + NONE = 0; + // The element is set or otherwise mutated. + SET = 1; + // An alias to the element is returned. + ALIAS = 2; + } + optional Semantic semantic = 5; + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/struct.proto b/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/struct.proto new file mode 100644 index 00000000000..e07e343563a --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/struct.proto @@ -0,0 +1,95 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/structpb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "StructProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// `Struct` represents a structured data value, consisting of fields +// which map to dynamically typed values. In some languages, `Struct` +// might be supported by a native representation. For example, in +// scripting languages like JS a struct is represented as an +// object. The details of that representation are described together +// with the proto support for the language. +// +// The JSON representation for `Struct` is JSON object. +message Struct { + // Unordered map of dynamically typed values. + map fields = 1; +} + +// `Value` represents a dynamically typed value which can be either +// null, a number, a string, a boolean, a recursive struct value, or a +// list of values. A producer of value is expected to set one of these +// variants. Absence of any variant indicates an error. +// +// The JSON representation for `Value` is JSON value. +message Value { + // The kind of value. + oneof kind { + // Represents a null value. + NullValue null_value = 1; + // Represents a double value. + double number_value = 2; + // Represents a string value. + string string_value = 3; + // Represents a boolean value. + bool bool_value = 4; + // Represents a structured value. + Struct struct_value = 5; + // Represents a repeated `Value`. + ListValue list_value = 6; + } +} + +// `NullValue` is a singleton enumeration to represent the null value for the +// `Value` type union. +// +// The JSON representation for `NullValue` is JSON `null`. +enum NullValue { + // Null value. + NULL_VALUE = 0; +} + +// `ListValue` is a wrapper around a repeated field of values. +// +// The JSON representation for `ListValue` is JSON array. +message ListValue { + // Repeated field of dynamically typed values. + repeated Value values = 1; +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/wrappers.proto b/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/wrappers.proto new file mode 100644 index 00000000000..6c4b5ac6a81 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/google/protobuf/wrappers.proto @@ -0,0 +1,123 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// Wrappers for primitive (non-message) types. These types are useful +// for embedding primitives in the `google.protobuf.Any` type and for places +// where we need to distinguish between the absence of a primitive +// typed field and its default value. +// +// These wrappers have no meaningful use within repeated fields as they lack +// the ability to detect presence on individual elements. +// These wrappers have no meaningful use within a map or a oneof since +// individual entries of a map or fields of a oneof can already detect presence. + +syntax = "proto3"; + +package google.protobuf; + +option cc_enable_arenas = true; +option go_package = "google.golang.org/protobuf/types/known/wrapperspb"; +option java_package = "com.google.protobuf"; +option java_outer_classname = "WrappersProto"; +option java_multiple_files = true; +option objc_class_prefix = "GPB"; +option csharp_namespace = "Google.Protobuf.WellKnownTypes"; + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +message DoubleValue { + // The double value. + double value = 1; +} + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +message FloatValue { + // The float value. + float value = 1; +} + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +message Int64Value { + // The int64 value. + int64 value = 1; +} + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +message UInt64Value { + // The uint64 value. + uint64 value = 1; +} + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +message Int32Value { + // The int32 value. + int32 value = 1; +} + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +message UInt32Value { + // The uint32 value. + uint32 value = 1; +} + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +message BoolValue { + // The bool value. + bool value = 1; +} + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +message StringValue { + // The string value. + string value = 1; +} + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +message BytesValue { + // The bytes value. + bytes value = 1; +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/proto/protos.proto b/bundles/org.openhab.binding.mercedesme/proto/protos.proto new file mode 100644 index 00000000000..d8d393a092c --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/protos.proto @@ -0,0 +1,136 @@ +syntax = "proto3"; +package proto; + +option java_package = "com.daimler.mbcarkit.proto"; + +// SubscriptionRequest is sent to an actor to indicate that the sender wants to subscribe +// to events of specific topics. By convention the "Sender" property of the actor message is the +// Subscriber and will receive the events. +message SubscribeRequest { + + // An array of topics for which the Subscriber wants to be notified from the Receiver of this message + repeated string topics = 1; + + // indicates whether the previous set of topics should be replaced or whether the content of + // topics should be merged into the already existing set of topics in the publisher actor. E.g. You're already + // subscribed to topics A and B. If you send a SubscribeRequest with B and C: + // replace = true -> you are subscribed to B and C + // replace = false -> you are subscribed to A, B and C + bool replace = 2; +} + +// SubscribeResponse is returned by the actor which received a SubscribeRequest. In case of a successful subscription +// success will be true and error_codes empty/nil. In case of an error the errors map will contain +// information that points to the reason for failure. The error map's keys are topics that have resulted in an error. +// The message also contains all successfully subscribed topics under the `subscribed_topics` key. +// By convention if an SubscribeRequest is sent for topics that have already been subscribed to, the SubscribeResponse +// will be successful and no error will be returned. +message SubscribeResponse { + bool success = 1; + map errors = 2; + repeated string subscribed_topics = 3; +} + +// UnsubscribeRequest is sent to an actor to indicate that the sender wants to unsubscribe +// from events specified by the topics array. +message UnsubscribeRequest { + + // An array of topics for which the Subscriber does not want to receive any more messages + repeated string topics = 1; + + // Whether the publisher should respond + bool anticipate_response = 2; +} + +// UnsubscribeResponse is returned by the actor which received a UnsubscribeRequest. In case of a successful removal, +// success will be true and error_codes empty/nil. In case of an error the errors map will contain +// information that points to the reason for failure. The error map's keys are topics that have resulted in an error. +// The message also contains all successfully subscribed topics under the `unsubscribed_topics` key. +// By convention if an UnsubscribeRequest is sent for topics that have already been unsubscribed from the UnsubscribeResponse +// will be successful and no error will be returned. +message UnsubscribeResponse { + bool success = 1; + map errors = 2; + repeated string unsubscribed_topics = 3; +} + +enum SubscriptionErrorType { + UNKNOWN = 0; + INVALID_JWT = 1; +} + +message SubscriptionError { + repeated SubscriptionErrorType code = 1; + repeated string message = 2; // Optional +} + +// Sent from Websocket-Service -> AppTwin +message SubscribeToAppTwinRequest { + string session_id = 1; + string ciam_id = 2; + + // additional data + string device_locale = 3; + string app_id = 4; + string app_version = 5; + OperatingSystemName os_name = 6; + string os_version = 7; + string device_model = 8; + string network_carrier = 9; + string sdk_version = 10; +} + +message ResubscribeToAppTwinRequest { + string session_id = 1; + string ciam_id = 2; +} + +message ResubscribeToAppTwinResponse { + enum ResubscribeResult { + UNKNOWN_ERROR = 0; + SUCCESS = 1; + INVALID_JWT_ERROR = 2; + TARGET_DOES_NOT_EXIST = 3; + } + + ResubscribeResult result = 1; +} + +enum OperatingSystemName { + UNKNOWN_OPERATING_SYSTEM = 0; + IOS = 1; + ANDROID = 2; + INT_TEST = 3; + MANUAL_TEST = 4; + WEB = 5; +} + +// Sent from AppTwin -> Websocket-Service +message SubscribeToAppTwinResponse { + bool success = 1; + SubscriptionErrorType error_code = 2; +} + +message UnsubscribeFromAppTwinRequest { + string session_id = 1; +} + +message UnsubscribeFromAppTwinResponse { + bool success = 1; + map errors = 2; +} + +message Heartbeat {} + + +// This message is used to tell the App which vehicles are assigned to the current user. +// The message is sent when the AppTwin is fully initialized (i.e. when it received the first vcb-response) +// +// The list of VINs is needed when a user gets unassigned from a vehicle while not connected to an AppTwin +// In this case the vehicle would still show in the app the next time the user starts it (see https://appsfactory.atlassian.net/browse/DAIM-3831) +// To prevent this, we tell the App which VINs are assigned via this message +message AssignedVehicles { + repeated string vins = 1; +} + +message AcknowledgeAssignedVehicles {} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/proto/service-activation.proto b/bundles/org.openhab.binding.mercedesme/proto/service-activation.proto new file mode 100644 index 00000000000..7f63518a26c --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/service-activation.proto @@ -0,0 +1,45 @@ +syntax = "proto3"; +package proto; + +option java_package = "com.daimler.mbcarkit.proto"; + +message AcknowledgeServiceStatusUpdatesByVIN { + int32 sequence_number = 1; +} + +message AcknowledgeServiceStatusUpdate { + int32 sequence_number = 1; +} + +message ServiceStatusUpdatesByVIN { + int32 sequence_number = 1; + // Updates with VinOrFins + map updates = 2; +} + +message ServiceStatusUpdate { + int32 sequence_number = 1; + + string ciam_id = 7; + + // FinOrVin + string vin = 5; + + // when was the event emitted? This is the time of the update, + // not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp + int64 emit_timestamp = 2; + + // When was the event emitted (milliseconds in Unix time) + int64 emit_timestamp_in_ms = 8; + + // serviceID -> Status + map updates = 6; +}; + +enum ServiceStatus { + SERVICE_STATUS_UNKNOWN = 0; + SERVICE_STATUS_ACTIVE = 1; + SERVICE_STATUS_INACTIVE = 2; + SERVICE_STATUS_ACTIVATION_PENDING = 3; + SERVICE_STATUS_DEACTIVATION_PENDING = 4; +} diff --git a/bundles/org.openhab.binding.mercedesme/proto/user-events.proto b/bundles/org.openhab.binding.mercedesme/proto/user-events.proto new file mode 100644 index 00000000000..affd24d8ea4 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/user-events.proto @@ -0,0 +1,153 @@ +syntax = "proto3"; +package proto; + +option java_package = "com.daimler.mbcarkit.proto"; + +message AcknowledgeUserDataUpdate { + int32 sequence_number = 1; +} + +message UserDataUpdate { + int32 sequence_number = 1; + + string ciam_id = 2; + + // when was the event emitted? This is the time of the update, + // not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp + int64 emit_timestamp = 3; + + // When was the event emitted (milliseconds in Unix time) + int64 emit_timestamp_in_ms = 8; + + CPDUserData old_data = 6; + CPDUserData new_data = 7; +} + +message AcknowledgeUserVehicleAuthChangedUpdate { + int32 sequence_number = 1; +} + +message AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI { + int32 sequence_number = 1; +} + +message UserVehicleAuthChangedUpdate { + int32 sequence_number = 1; + + string ciam_id = 2; + + // when was the event emitted? This is the time of the update, + // not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp + int64 emit_timestamp = 3; + + // When was the event emitted (milliseconds in Unix time) + int64 emit_timestamp_in_ms = 8; +} + +message CPDUserData { + string ciam_id = 1; + string user_id = 2; + string first_name = 3; + string last_name1 = 4; + string last_name2 = 5; + string title = 6; + string name_prefix = 7; + string middle_initial = 8; + string salutation_code = 9; + string email = 10; + string landline_phone = 11; + string mobile_phone_number = 12; + string created_at = 13; + string created_by = 14; + string updated_at = 15; + string birthday = 28; + string preferred_language_code = 29; + string account_country_code = 30; + // doc says: TODO + string uc_id = 31; + bool vip = 32; + CPDUserAddress address = 33; + CPDUserCommunicationPreference communication_preference = 34; +} + +message CPDUserAddress { + string country_code = 1; + string state = 2; + string province = 3; + string street = 4; + string house_no = 5; + string zip_code = 6; + string city = 7; + string street_type = 8; + string house_name = 9; + string floor_no = 10; + string door_no = 11; + string address_line1 = 12; + string address_line2 = 13; + string address_line3 = 14; + string post_office_box = 15; +} + +message CPDUserCommunicationPreference { + bool contacted_by_phone = 1; + bool contacted_by_letter = 2; + bool contacted_by_email = 3; + bool contacted_by_sms = 4; +} + +message AcknowledgeUserPictureUpdate { + int32 sequence_number = 1; +} + +// Sent after a picture upload/change +message UserPictureUpdate { + int32 sequence_number = 1; + + // ciam ID + string ciam_id = 5; + + // when was the event emitted? This is the time of the update + int64 emit_timestamp = 2; + + // When was the event emitted (milliseconds in Unix time) + int64 emit_timestamp_in_ms = 6; + + // this timestamp indicates when a message was read from the eventhub + int64 eventhub_receive_timestamp = 3; + + // this timestamp indicates when a message was processed in the app twin + int64 apptwin_receive_timestamp = 4; +} + +message AcknowledgeUserPINUpdate { + int32 sequence_number = 1; +} + +// Sent after a PIN update +message UserPINUpdate { + int32 sequence_number = 1; + + // ciam ID + string ciam_id = 5; + + // when was the event emitted? This is the time of the update + int64 emit_timestamp = 2; + + // When was the event emitted (milliseconds in Unix time) + int64 emit_timestamp_in_ms = 6; + + // this timestamp indicates when a message was read from the eventhub + int64 eventhub_receive_timestamp = 3; + + // this timestamp indicates when a message was processed in the app twin + int64 apptwin_receive_timestamp = 4; +} + +// Contains the refreshed jwt of the user +message UpdateUserJWTRequest { + string jwt = 1; +} + +// Ack for the UpdateUserJWTRequest +message AcknowledgeUpdateUserJWTRequest { +} diff --git a/bundles/org.openhab.binding.mercedesme/proto/vehicle-commands.proto b/bundles/org.openhab.binding.mercedesme/proto/vehicle-commands.proto new file mode 100644 index 00000000000..e0905ff457d --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/vehicle-commands.proto @@ -0,0 +1,611 @@ +syntax = "proto3"; +package proto; +//import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "gogo.proto"; +import "google/protobuf/wrappers.proto"; + +option (gogoproto.goproto_enum_prefix_all) = true; +option java_package = "com.daimler.mbcarkit.proto"; + +// Acknowledge the CommandRequest reached the apptwin actor +// Websocket <- Apptwin +message AcknowledgeCommandRequest { + string request_id = 1; +} + +// After the command was issued at VVA based on this +// command request the call will get a command request +// correlation message which matches the request id +// with the process id. +// Sending direction: App - BFF -> AppTwin +message CommandRequest { + string vin = 1; + + // Set this id to correlate a CommandStatus + // with this command request. + string request_id = 7; + + // Temporary backend switch field. Will be removed as soon as all commands are migrated to the VehicleAPI + // This field only needs to be set if the command is supported by both API from our backend. If this field is removed + // don't forget to set the field 36 to reserved. + enum Backend { + VVA = 0; // default value + VehicleAPI = 1; + } + Backend backend = 36; + + oneof command { + AuxheatStart auxheat_start = 2; + AuxheatStop auxheat_stop = 3; + AuxheatConfigure auxheat_configure = 4; + + DoorsLock doors_lock = 5; + DoorsUnlock doors_unlock = 6; + + SunroofOpen sunroof_open = 9; + SunroofClose sunroof_close = 10; + SunroofLift sunroof_lift = 11; + SunroofMove sunroof_move = 47; + + WindowsOpen windows_open = 12; + WindowsClose windows_close = 13; + WindowsVentilate windows_ventilate = 43; + WindowsMove windows_move = 44; + + EngineStart engine_start = 19; + EngineStop engine_stop = 20; + + ZEVPreconditioningStart zev_preconditioning_start = 21; + ZEVPreconditioningStop zev_preconditioning_stop = 22; + ZEVPreconditioningConfigure zev_precondition_configure = 25; + ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + + SpeedalertStart speedalert_start = 23; + SpeedalertStop speedalert_stop = 24; + + BatteryChargeProgramConfigure battery_charge_program = 27; + BatteryMaxSocConfigure battery_max_soc = 28; + + ChargeProgramConfigure charge_program_configure = 34; + ChargeControlConfigure charge_control_configure = 40; + + ChargeOptConfigure charge_opt_configure = 29; + ChargeOptStart charge_opt_start = 30; + ChargeOptStop charge_opt_stop = 31; + + TemperatureConfigure temperature_configure = 32; + + WeekProfileConfigure week_profile_configure = 33; + WeekProfileConfigureV2 week_profile_configure_v2 = 41; + + SigPosStart sigpos_start = 35; + + TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection= 14; + TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + TheftalarmDeselectTow theftalarm_deselect_tow = 16; + TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + TheftalarmSelectInterior theftalarm_select_interior = 18; + TheftalarmSelectTow theftalarm_select_tow = 37; + TheftalarmStart theftalarm_start = 38; + TheftalarmStop theftalarm_stop = 39; + + AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + + ChargeFlapUnlock charge_flap_unlock = 45; + ChargeCouplerUnlock charge_coupler_unlock = 46; + + DeactivateVehicleKeys deactivate_vehicle_keys = 48; + ActivateVehicleKeys activate_vehicle_keys = 49; + } +} + +message DeactivateVehicleKeys { + string pin = 1; + + int64 expiration_unix = 2; + + string expiration_seconds = 3 [ json_name = "expirationSeconds" ]; + string expiration_milliseconds = 4 [ json_name = "expirationMilliseconds" ]; +} + +message ActivateVehicleKeys { + string pin = 1; + + int64 expiration_unix = 2; + + string expiration_seconds = 3 [ json_name = "expirationSeconds" ]; + string expiration_milliseconds = 4 [ json_name = "expirationMilliseconds" ]; +} + +message AuxheatStart {} +message AuxheatStop {} +message AuxheatConfigure { + + enum Selection { + NO_SELECTION = 0; + TIME_1 = 1; + TIME_2 = 2; + TIME_3 = 3; + } + + Selection time_selection = 1 [ json_name = "auxheattimeselection" ]; + + // Minutes from midnight. + int32 time_1 = 2 [ json_name = "auxheattime1" ]; + + // Minutes from midnight. + int32 time_2 = 3 [ json_name = "auxheattime2" ]; + + // Minutes from midnight. + int32 time_3 = 4 [ json_name = "auxheattime3" ]; +} + +enum Door { + // the JSON enum values are lowercase, but lowercase values are not exported in golang, so + // we allow aliasing all values. + option allow_alias = true; + + // the lowercase versions are for json (de)serialization purposes only. The upper case version should be the preferred + // enum values to be used in code. + // These definitions need to come before upper case versions + unknown_door = 0; + frontleft = 1; + frontright = 2; + rearleft = 3; + rearright = 4; + trunk = 5; + fuelflap = 6; + chargeflap = 7; + chargecoupler = 8; + + UNKNOWN_DOOR = 0; + FRONT_LEFT = 1; + FRONT_RIGHT = 2; + REAR_LEFT = 3; + REAR_RIGHT = 4; + TRUNK = 5; + FUEL_FLAP = 6; + CHARGE_FLAP = 7; + CHARGE_COUPLER = 8; +} + +message DoorsLock { + // doors / flaps to unlock (only supported by TCU type RAMSES) + // leave empty to target all doors + repeated Door doors = 1; +} + +message DoorsUnlock { + string pin = 1; + // doors / flaps to unlock (only supported by TCU type RAMSES) + // leave empty to target all doors + repeated Door doors = 2; +} + +message EngineStart { + string pin = 1; +} + +message EngineStop {} + +message SunroofOpen { + string pin = 1; +} +message SunroofClose {} +message SunroofLift { + string pin = 1; +} + +message SunroofMove { + string pin = 1; + google.protobuf.Int32Value sunroof = 2 [ json_name = "sunroof" ]; + google.protobuf.Int32Value sunroof_blind_front = 3 [ json_name = "sunroofblindfront" ]; + google.protobuf.Int32Value sunroof_blind_rear = 4 [ json_name = "sunroofblindrear" ]; +} + +message WindowsOpen { + string pin = 1; +} +message WindowsClose {} + +message WindowsVentilate { + string pin = 1; +} + +message WindowsMove { + string pin = 1; + google.protobuf.Int32Value front_left = 2 [ json_name = "windowfrontleft" ]; + google.protobuf.Int32Value front_right = 3 [ json_name = "windowfrontright" ]; + google.protobuf.Int32Value rear_blind = 4 [ json_name = "windowrearblind" ]; + google.protobuf.Int32Value rear_left = 5 [ json_name = "windowrearleft" ]; + google.protobuf.Int32Value rear_left_blind = 6 [ json_name = "windowrearleftblind" ]; + google.protobuf.Int32Value rear_right = 7 [ json_name = "windowrearright" ]; + google.protobuf.Int32Value rear_right_blind = 8 [ json_name = "windowrearrightblind" ]; +} + +message SpeedalertStart { + int32 threshold = 1 [ json_name = "speedAlertThreshold" ]; + int64 alert_end_time = 2 [ json_name = "speedAlertEndTime" ]; +} +message SpeedalertStop {} + +// --- Vehicle API commands + +enum ZEVPreconditioningType { + // the JSON enum values are lowercase, but lowercase values are not exported in golang, so + // we allow aliasing all values. + option allow_alias = true; + + // the lowercase versions are for json parsing purposes only. The upper case version should be the preferred + // enum values to be used in code. + // These definitions need to come before upper case versions + unknown_zev_preconditioning_command_type = 0; + immediate = 1; + departure = 2; + now = 3; + departureWeekly = 4; + + // the uppercase versions are here to have exported values + // The given preconditioning command type is unknown + UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE = 0; + + // starts immediate preconditioning + IMMEDIATE = 1; + + // starts preconditioning at departure time (requires a departure time to be provided in ZEVPreconditioningStart) + DEPARTURE = 2; + + // start right away (departure time is ignored) + NOW = 3; + + // starts preconditioning for a configured weekly profile (does NOT require a departure time to be provided) + DEPARTURE_WEEKLY = 4; + +} + +message ZEVPreconditioningStart { + int32 departure_time = 1 [ json_name = "departuretime" ]; + ZEVPreconditioningType type = 2 [ json_name = "type" ]; +} + +message ZEVPreconditioningStop { ZEVPreconditioningType type = 2 [ json_name = "type" ]; } + +// Configure preconditioning +message ZEVPreconditioningConfigure { + enum DepartureTimeMode { + DISABLED = 0; + SINGLE_DEPARTURE = 1; + WEEKLY_DEPARTURE = 2; + } + DepartureTimeMode departure_time_mode = 1 [ json_name = "departureTimeMode" ]; + + int32 departure_time = 3 [ json_name = "departuretime" ]; +} + +// Configure which seats should be preconditioned. +// Currently, the only available options are to precondition all seats or only the front-left seat +message ZEVPreconditioningConfigureSeats { + bool front_left = 1 [ json_name = "precondSeatFrontLeft" ]; + bool front_right = 2 [ json_name = "precondSeatFrontRight" ]; + bool rear_left = 3 [ json_name = "precondSeatRearLeft" ]; + bool rear_right = 4 [ json_name = "precondSeatRearRight" ]; +} + +// Configure the charge program +message BatteryChargeProgramConfigure { + enum ChargeProgram { + DEFAULT = 0; + INSTANT = 1; + } + ChargeProgram charge_program = 1 [ json_name = "chargeprogram" ]; +} + +// Configure the maximum value for the state of charge of the HV battery +message BatteryMaxSocConfigure { + // Values need to be between 50 and 100 and divisible by ten + int32 max_soc = 1 [ json_name = "maxsoc" ]; +} + +// Select the given charge program and enables the consumer to configure it. +message ChargeProgramConfigure { + enum ChargeProgram { + DEFAULT_CHARGE_PROGRAM = 0; + // Instant charge program should not be used + // INSTANT_CHARGE_PROGRAM = 1; + HOME_CHARGE_PROGRAM = 2; + WORK_CHARGE_PROGRAM = 3; + } + ChargeProgram charge_program = 1 [ json_name = "chargeprogram" ]; + + // Values need to be between 50 and 100 and divisible by ten + // Maximum value for the state of charge of the HV battery [in %]. + // Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + google.protobuf.Int32Value max_soc = 2 [ json_name = "maxsoc" ]; + + // unlock the plug after charging is finished + // Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value. + // true - unlock automatically, false - do not unlock automatically + // can only be used if chargeprogram is set to home or work. Otherwise it will be ignored. + google.protobuf.BoolValue auto_unlock = 3 [ json_name = "autounlock" ]; + + // automatically switch between home and work program, based on the location of the car + // Denotes whether location based charging should be used. + // true - use location based charging, false - do not use location based charging + // can only be used if chargeprogram is set to home or work. Otherwise it will be ignored. + google.protobuf.BoolValue location_based_charging = 4 [ json_name = "locationbasedcharging" ]; + + // enable or disable week-profile + // Denotes whether weekly profile (aka. weekprofile) should be used. + // true - use weekly profile, false - do not use weekly profile + // The parameter weekprofile should not be used. + // google.protobuf.BoolValue weekly_profile = 5 [ json_name = "weeklyprofile" ]; + + // enable or disable clocktimer + google.protobuf.BoolValue clock_timer = 6 [ json_name = "clocktimer" ]; + + // enable or disable ecocharging + google.protobuf.BoolValue eco_charging = 7 [ json_name = "ecocharging" ]; +} + +// This is an experimental command +message ChargeControlConfigure { + // Enables/Disables bidrectional charging + google.protobuf.BoolValue bi_charging_enabled = 1 [ json_name = "bidichargingenabled" ]; + + // Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So + // a value of 0 is equivalent to -100 kW. + google.protobuf.FloatValue charging_power = 2 [ json_name = "chargingpower" ]; + + // must not be above max_soc + google.protobuf.Int32Value min_soc = 3 [ json_name = "minsoc" ]; +} + +// Provide functionality to initiate a charge optimization configuration +message ChargeOptConfigure { + message Tariff { + enum Rate { + INVALID_PRICE = 0; + LOW_PRICE = 33; + NORMAL_PRICE = 44; + HIGH_PRICE = 66; + } + Rate rate = 1 [ json_name = "rate" ]; + // Time in seconds after 00:00 + int32 time = 2 [ json_name = "time" ]; + } + + repeated Tariff weekday_tariff = 1 [ json_name = "weekdaytariff" ]; + repeated Tariff weekend_tariff = 2 [ json_name = "weekendtariff" ]; +} + +// Provide the functionality to start the charge optimization function in the vehicle +message ChargeOptStart { + // empty +} + +// Provide the functionality to stop the charge optimization function in the vehicle +message ChargeOptStop { + // empty +} + +// Set the temperature points of the vehicle +message TemperatureConfigure { + message TemperaturePoint { + reserved 2; + + enum Zone { + // the JSON enum values are lowercase, but lowercase values are not exported in golang, so + // we allow aliasing all values. + option allow_alias = true; + + // the lowercase versions are for json parsing purposes only. The upper case version should be the preferred + // enum values to be used in code. + // These definitions need to come before upper case versions + unknown = 0; + frontLeft = 1; + frontRight = 2; + frontCenter = 3; + rearLeft = 4; + rearRight = 5; + rearCenter = 6; + rear2Left = 7; + rear2Right = 8; + rear2Center = 9; + // PLEASE BE AWARE OF THE FOLLOWING BEFORE ADDING NEW ZONES: + // Currently there is a bug in vehicle API, that we need to send the zones in the correct order. Otherwise the request will be rejected. + // The order needs to be like the following: + // Front before rear before rear2 + // Left before right - There is no center zone if there are left and right zones in this row + // As this is already the order like specified here, this needs to be considered on adding new zones. + + UNKNOWN_ZONE = 0; + FRONT_LEFT = 1; + FRONT_RIGHT = 2; + FRONT_CENTER = 3; + REAR_LEFT = 4; + REAR_RIGHT = 5; + REAR_CENTER = 6; + REAR_2_LEFT = 7; + REAR_2_RIGHT = 8; + REAR_2_CENTER = 9; + // PLEASE BE AWARE OF THE FOLLOWING BEFORE ADDING NEW ZONES: + // Currently there is a bug in vehicle API, that we need to send the zones in the correct order. Otherwise the request will be rejected. + // The order needs to be like the following: + // Front before rear before rear2 + // Left before right - There is no center zone if there are left and right zones in this row + // As this is already the order like specified here, this needs to be considered on adding new zones. + } + Zone zone = 1 [ json_name = "zone" ]; + + double temperature_in_celsius = 3 [ json_name = "temp" ]; + } + + repeated TemperaturePoint temperature_points = 1 [ json_name = "temperaturePoints" ]; +} + +// Set the weekprofile for the weekly departure time settings +message WeekProfileConfigure { + message WeeklySetHU { + enum Day { + MONDAY = 0; + TUESDAY = 1; + WEDNESDAY = 2; + THURSDAY = 3; + FRIDAY = 4; + SATURDAY = 5; + SUNDAY = 6; + } + Day day = 1 [ json_name = "day" ]; + // Time in minutes after 00:00 + int32 time = 2 [ json_name = "time" ]; + } + + repeated WeeklySetHU weekly_set_hu = 1 [ json_name = "weeklySetHU" ]; +} + +// Set the week profile for the weekly departure time settings version 2 +message WeekProfileConfigureV2 { + // * The whole list of timeProfiles must always be provided + repeated TimeProfile time_profiles = 1 [ json_name = "timeprofiles" ]; +} + +message TimeProfile { + //=> only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added + // If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle + google.protobuf.Int32Value identifier = 1 [ json_name = "id" ]; + + // Hour after midnight range [0, 23] + google.protobuf.Int32Value hour = 2 [json_name = "hour" ]; + + // Minute after full hour range [0, 59] + google.protobuf.Int32Value minute = 3 [json_name = "min" ]; + + // Days for which the above time should be applied + repeated TimeProfileDay days = 4 [json_name = "day" ]; + + // Whether this profile entry is active or not + google.protobuf.BoolValue active = 5 [json_name = "active" ]; + + // If a timeProfile is changed or added the respective applicationId must be provided by the SDK + // 11 = Internal Apps + // 12 = External Apps + int32 application_identifier = 6 [ json_name = "applicationId" ]; +} + +enum TimeProfileDay { + option allow_alias = true; + // the short versions are for json (en)coding purposes only. The upper case version should be the preferred + // enum values to be used in code. + // These definitions need to come before upper case versions + Mo = 0; + Tu = 1; + We = 2; + Th = 3; + Fr = 4; + Sa = 5; + Su = 6; + + MONDAY = 0; + TUESDAY = 1; + WEDNESDAY = 2; + THURSDAY = 3; + FRIDAY = 4; + SATURDAY = 5; + SUNDAY = 6; +} + +// Invoke the Remote Vehicle Finder for signalling the vehicle’s position with lights, horn or panic alarm. +message SigPosStart { + // Value needs to be between 0 and 30. The default is 0. + // Only allowed for RAMSES + int32 horn_repeat = 1 [ json_name = "hornRepeat" ]; + + // Only allowed for RAMSES + enum HornType { + HORN_OFF = 0; + HORN_LOW_VOLUME = 1; + HORN_HIGH_VOLUME = 2; + } + HornType horn_type = 2 [ json_name = "hornType" ]; + + // Only allowed for RAMSES + enum LightType { + LIGHT_OFF = 0; + DIPPED_HEAD_LIGHT = 1; + WARNING_LIGHT = 2; + } + LightType light_type = 3 [ json_name = "lightType" ]; + + // Value needs to be between 0 and 10. It indicates how long the light should be switched on. + int32 sigpos_duration = 4 [ json_name = "sigposDuration" ]; + + enum SigposType { + LIGHT_ONLY = 0; + HORN_ONLY = 1; // Only allowed for RAMSES + LIGHT_AND_HORN = 2; // Only allowed for RAMSES + PANIC_ALARM = 3; // Only allowed for HERMES + } + SigposType sigpos_type = 5 [ json_name = "sigposType" ]; +} + +// Confirm the detected parking bump +message TheftalarmConfirmDamagedetection { + // empty +} + +// Provide the functionality to deselect the parking damage detection sensor +message TheftalarmDeselectDamagedetection { + // empty +} + +// Provide the functionality to deselect the interior protection sensor +message TheftalarmDeselectInterior { + // empty +} + +// Provide the functionality to deselect the tow protection sensor +message TheftalarmDeselectTow { + // empty +} + +// Provide the functionality to select the parking damage detection sensor +message TheftalarmSelectDamagedetection { + // empty +} + +// Provide the functionality to select the interior protection sensor +message TheftalarmSelectInterior { + // empty +} + +// Provide the functionality to select the tow protection sensor +message TheftalarmSelectTow { + // empty +} + +// Provide the functionality to trigger an alarm that lasts for "alarm_duration" seconds +message TheftalarmStart { + // Specify how many seconds the alarm should be switched on + int32 alarm_duration_in_seconds = 1 [ json_name = "alarmduration" ]; +} + +// Provide the functionality to deactivate an active/ongoing alarm +message TheftalarmStop { + // empty +} + +enum DriveType { + UNKNOWN_DRIVE_TYPE = 0; + PICK_UP = 1; + DROP_OFF = 2; +} + +message AutomaticValetParkingActivate { + string booking_id = 1 [ json_name = "bookingId" ]; + DriveType drive_type = 2 [ json_name = "driveType" ]; +} + +message ChargeFlapUnlock {} + +message ChargeCouplerUnlock {} diff --git a/bundles/org.openhab.binding.mercedesme/proto/vehicle-events.proto b/bundles/org.openhab.binding.mercedesme/proto/vehicle-events.proto new file mode 100644 index 00000000000..76b0a10e91f --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/vehicle-events.proto @@ -0,0 +1,457 @@ +syntax = "proto3"; +package proto; +import "service-activation.proto"; +import "user-events.proto"; +import "vehicle-commands.proto"; +import "protos.proto"; +import "vehicleapi.proto"; + +option java_package = "com.daimler.mbcarkit.proto"; + +// Sending direction: App <- BFF <- AppTwin +message VEPUpdate { + + int32 sequence_number = 1; + + string vin = 2; + + // indicates whether this is a full update of VEP-attributes. + // All attributes cached in the FE should be erased and completely + // replaced by this push. + bool full_update = 15; + + // when was the event emitted? This is the time of the update (unix timestamp in seconds), (deprecated) + // not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp + int64 emit_timestamp = 10; + + // when was the event emitted? This is the time of the update (unix timestamp in milliseconds), + int64 emit_timestamp_in_ms = 14; + + // the attribute changes are a list of changed attributes + map attributes = 11; + +} + +// Part of a VEPUpdate +// Sending direction: App <- BFF <- AppTwin +message VehicleAttributeStatus { + // time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated) + int64 timestamp = 1 [ deprecated = true ]; + // time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone + int64 timestamp_in_ms = 10; + bool changed = 2; + int32 status = 3; + + enum CombustionConsumptionUnit { + UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT = 0; + // Liter per 100 km + LITER_PER_100KM = 1; + // Kilometers per liter + KM_PER_LITER = 2; + // Miles Per imperial gallon + MPG_UK = 3; + // Miles Per US gallon + MPG_US = 4; + } + + enum ElectricityConsumptionUnit { + UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT = 0; + // kWh per 100 km + KWH_PER_100KM = 1; + // Kilometers per kWh + KM_PER_KWH = 2; + // kWh per 100 miles + KWH_PER_100MI = 3; + // miles per kWh + M_PER_KWH = 4; + // Miles per gallon gasoline equivalent + MPGE = 5; + } + + enum GasConsumptionUnit { + UNSPECIFIED_GAS_CONSUMPTION_UNIT = 0; + // kG per 100 km + KG_PER_100KM = 1; + // km per kg + KM_PER_KG = 2; + // miles per kg + M_PER_KG = 3; + } + + enum SpeedDistanceUnit { + option deprecated = true; // use speed unit / length unit instead + + UNSPECIFIED_SPEED_DISTANCE_UNIT = 0; + // km/h, distance unit: km + KM_PER_H = 1; + // mph, distance unit: miles + M_PER_H = 2; + } + + enum SpeedUnit { + UNSPECIFIED_SPEED_UNIT = 0; + // kilometers per hour + KM_PER_HOUR = 1; + // miles per hour + M_PER_HOUR = 2; + } + + enum DistanceUnit { + UNSPECIFIED_DISTANCE_UNIT = 0; + KILOMETERS = 1; + MILES = 2; + } + + enum TemperatureUnit { + UNSPECIFIED_TEMPERATURE_UNIT = 0; + CELSIUS = 1; + FAHRENHEIT = 2; + } + + enum PressureUnit { + UNSPECIFIED_PRESSURE_UNIT = 0; + KPA = 1 ; + BAR = 2; + // Pounds per square inch + PSI = 3; + } + + enum RatioUnit { + UNSPECIFIED_RATIO_UNIT = 0; + PERCENT = 1; + } + + enum ClockHourUnit { + UNSPECIFIED_CLOCK_HOUR_UNIT = 0; + // 12h (AM/PM) + T12H = 1; + // 24h + T24H = 2; + } + + // A list of service ids for which this attribute was sent + // this field ist just used backend internally and will always + // be empty when sent out to the client. + repeated int32 service_ids = 30; + + string display_value = 11; + oneof display_unit { + CombustionConsumptionUnit combustion_consumption_unit = 12; + GasConsumptionUnit gas_consumption_unit = 13; + ElectricityConsumptionUnit electricity_consumption_unit = 14; + SpeedDistanceUnit speed_distance_unit = 15 [ deprecated = true ]; // use speed unit / length unit instead + SpeedUnit speed_unit = 25; + DistanceUnit distance_unit = 26; + TemperatureUnit temperature_unit = 16; + PressureUnit pressure_unit = 17; + RatioUnit ratio_unit = 18; + ClockHourUnit clock_hour_unit = 19; + } + + oneof attribute_type { + int64 int_value = 4; + bool bool_value = 5; + string string_value = 6; + double double_value = 7; + bool nil_value = 8; + string unsupported_value = 9; + TemperaturePointsValue temperature_points_value = 20; + WeekdayTariffValue weekday_tariff_value = 21; + WeekendTariffValue weekend_tariff_value = 22; + StateOfChargeProfileValue state_of_charge_profile_value = 23; + WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + EcoHistogramValue eco_histogram_value = 28; + WeeklyProfileValue weekly_profile_value = 29; + ChargeProgramsValue charge_programs_value = 31; + } +} + +message ChargeProgramsValue { + repeated ChargeProgramParameters charge_program_parameters = 1; +} + +enum ChargeProgram { + DEFAULT_CHARGE_PROGRAM = 0; + INSTANT_CHARGE_PROGRAM = 1; + HOME_CHARGE_PROGRAM = 2; + WORK_CHARGE_PROGRAM = 3; +} + +message ChargeProgramParameters { + ChargeProgram charge_program = 1 [ json_name = "chargeprogram" ]; + + // Values need to be between 50 and 100 and divisible by ten + // Maximum value for the state of charge of the HV battery [in %]. + // Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100] + int32 max_soc = 2 [ json_name = "maxSoc" ]; + + // unlock the plug after charging is finished + // Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value. + // true - unlock automatically, false - do not unlock automatically + // can only be used if chargeprogram is set to home or work. Otherwise it will be ignored. + bool auto_unlock = 3 [ json_name = "autounlock" ]; + + // automatically switch between home and work program, based on the location of the car + // Denotes whether location based charging should be used. + // true - use location based charging, false - do not use location based charging + // can only be used if chargeprogram is set to home or work. Otherwise it will be ignored. + bool location_based_charging = 4 [ json_name = "locationbasedcharging" ]; + + // enable or disable week-profile + // Denotes whether weekly profile (aka. weekprofile) should be used. + // true - use weekly profile, false - do not use weekly profile + + bool weekly_profile = 5 [ json_name = "weeklyprofile" ]; + bool clockTimer = 6 [ json_name = "clockTimer" ]; + int32 max_charging_current = 7 [ json_name = "MaxChargingCurrent" ]; + bool eco_charging = 8 [ json_name = "EcoCharging" ]; +} + +// Same as VehicleAPI.AttributeStatus but with slightly different names. The VehicleAPI.AttributeStatus enum values +// can't be changed because they are used to automatically parse the vehicleAPI responses. Adding type aliases would +// confuse the contributions developers, so we added another attribute status enum +enum AttributeStatus { + // Value is set and valid + VALUE_VALID = 0; + // Value has not yet been received from the vehicle (but sensor etc. should be available) + VALUE_NOT_RECEIVED = 1; + // Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend) + VALUE_INVALID = 3; + // Vehicle does not support this attribute (e.g. does not have the sensor etc.) + VALUE_NOT_AVAILABLE = 4; +} + +message WeeklyProfileValue { + bool single_time_profile_entries_activatable = 1 [ json_name = "singleTimeProfileEntriesActivatable" ]; + + int32 max_number_of_weekly_time_profile_slots = 2 [ json_name = "maxNumberOfWeeklyTimeProfileSlots" ]; + + int32 max_number_of_time_profiles = 3 [ json_name = "maxNumberOfTimeProfiles" ]; + + int32 current_number_of_time_profile_slots = 4 [ json_name = "currentNumberOfTimeProfileSlots" ]; + + int32 current_number_of_time_profiles = 5 [ json_name = "currentNumberOfTimeProfiles" ]; + + repeated VVRTimeProfile time_profiles = 6 [ json_name = "timeProfiles" ]; +} + +// VVRTimeProfile is almost identical to the "TimeProfile" message with the exception that the identifier is not optional. +message VVRTimeProfile { + // unique id of this time profile entry + int32 identifier = 1 [ json_name = "id" ]; + + // Hour after midnight range [0, 23] + int32 hour = 2 [json_name = "hour" ]; + + // Minute after full hour range [0, 59] + int32 minute = 3 [json_name = "min" ]; + + // Days for which the above time should be applied + repeated TimeProfileDay days = 4 [json_name = "day" ]; + + // Whether this profile entry is active or not + bool active = 5 [json_name = "active" ]; + + // If a timeProfile is changed or added the respective applicationId must be provided by SDK + // 11 = Internal Apps + // 12 = External Apps + int32 application_identifier = 6 [ json_name = "applicationId" ]; +} + +message EcoHistogramValue { + repeated EcoHistogramBin eco_histogram_bins = 1; +} + +message EcoHistogramBin { + double interval = 1; + double value = 2; +} + +message SpeedAlertConfigurationValue { + repeated SpeedAlertConfiguration speed_alert_configurations = 1; +} + +message SpeedAlertConfiguration { + // Unix timestamp in seconds + int64 end_timestamp_in_s = 1; + // Speed in kilometers per hour + int32 threshold_in_kph = 2; + // threshold value in the users preferred unit + string threshold_display_value = 3; +} + +message WeeklySettingsHeadUnitValue { + // Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439) + repeated WeeklySetting weekly_settings = 1; +} + +message WeeklySetting { + int32 day = 1; + int32 minutes_since_midnight = 2; +} + +message TemperaturePointsValue { + // Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center) + // and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH) + repeated TemperaturePoint temperature_points = 1; +} + +message TemperaturePoint { + string zone = 1; + double temperature = 2; + string temperature_display_value = 3; +} + +message WeekdayTariffValue { + // List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state. + repeated Tariff tariffs = 1; +} + +message WeekendTariffValue { + // List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state. + repeated Tariff tariffs = 1; +} + +message Tariff { + // 33 - off-peak, 44 - mid-peak, 66 - on-peak + int32 rate = 1; + // Seconds from midnight + int32 time = 2; +} + +message StateOfChargeProfileValue { + // Array with tupels of state of charge and time offset related to the timestamp of the attribute, + // e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC) + repeated StateOfCharge states_of_charge = 1; +} + +message StateOfCharge { + // timestamp in seconds, UTC + int64 timestamp_in_s = 1; + + // soc with value range 0..100 + int32 state_of_charge = 2; +} + +// Sending direction: App <- BFF <- AppTwin +message VEPUpdatesByVIN { + + int32 sequence_number = 2; + + // VIN -> Update + map updates = 1; +} + +// Sending direction: App <- BFF +message DebugMessage { + string message = 1; +} + +// Represents a status response from the +// VVA backend for a given VIN and CIAM ID. +message VehicleStatus { + string vin = 1; + map attributes = 2; +} + +// message that is pushed from the vep status service +// Sending direction: App <- BFF +message PushMessage { + reserved 7,8; + string tracking_id = 5; + oneof msg { + VEPUpdate vepUpdate = 1; + VEPUpdatesByVIN vepUpdates = 2; + DebugMessage debugMessage = 3; + ServiceStatusUpdatesByVIN service_status_updates = 9; + ServiceStatusUpdate service_status_update = 13; + UserDataUpdate user_data_update = 10; + UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + UserPictureUpdate user_picture_update = 11; + UserPINUpdate user_pin_update = 12; + VehicleUpdated vehicle_updated = 15; + PreferredDealerChange preferred_dealer_change = 16; + AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + AssignedVehicles assigned_vehicles = 19; + } +} + +// message type to track an event, e.g. a user interaction with content +// Sending direction: App -> BFF +message TrackingEvent { + + // a unique id associated with this event + string tracking_id = 1; + + // the unix epoch time in nanoseconds when the event occurred + int64 timestamp = 2; + + // a unique identifier describing a single interaction or event + string event_type = 3; + + // additional meta data describing the event + map payload = 4; +} + +message PayloadValue { + oneof msg { + string string_value = 1; + int32 int_value = 2; + bool bool_value = 3; + double double_value = 4; + } +} + +// acknowledge that the VEP updates of up to `sequenceNumber` have been received +// Sending direction: App -> BFF -> AppTwin +message AcknowledgeVEPRequest { + // This message will be replaced by AcknowledgeVEPUpdatesByVIN + option deprecated = true; + + int32 sequence_number = 1; +} + +// acknowledge that the VEP updates by vin of up to `sequenceNumber` have been received +// Sending direction: App -> BFF -> AppTwin +// This message should replace the AcknowledgeVEPRequest +message AcknowledgeVEPUpdatesByVIN { + int32 sequence_number = 1; +} + +// the client can optionally send this message to reconfigure the ping interval +// Sending direction: App -> BFF +message ConfigurePingInterval { + int32 ping_time_millis = 1; +} + +message AcknowledgeVehicleUpdated { + int32 sequence_number = 1; +} + +message AcknowledgePreferredDealerChange { + int32 sequence_number = 1; +} + +message VehicleUpdated { + int32 sequence_number = 1; + + string ciam_id = 2; + + string vin = 3; + + // When was the event emitted (milliseconds in Unix time) + int64 emit_timestamp_in_ms = 10; +} + +message PreferredDealerChange { + int32 sequence_number = 1; + + string ciam_id = 2; + + string vin = 3; + + // When was the event emitted (milliseconds in Unix time) + int64 emit_timestamp_in_ms = 10; +} diff --git a/bundles/org.openhab.binding.mercedesme/proto/vehicleapi.proto b/bundles/org.openhab.binding.mercedesme/proto/vehicleapi.proto new file mode 100644 index 00000000000..512a501b2b1 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/vehicleapi.proto @@ -0,0 +1,156 @@ +syntax = "proto3"; +package proto; + +import "acp.proto"; +import "google/protobuf/struct.proto"; +//import "github.com/gogo/protobuf/gogoproto/gogo.proto"; +import "gogo.proto"; + +option (gogoproto.goproto_enum_prefix_all) = true; +option java_package = "com.daimler.mbcarkit.proto"; + +// Sending direction: App -> BFF -> AppTwin +message AcknowledgeAppTwinCommandStatusUpdatesByVIN { + int32 sequence_number = 1; +} + +// Sending direction: App <- BFF <- AppTwin +message AppTwinCommandStatusUpdatesByVIN { + + int32 sequence_number = 1; + + // VIN -> Update + map updates_by_vin = 2; +} + +// Sending direction: App <- BFF <- AppTwin as part of an AppTwinCommandStatusUpdatesByVIN +message AppTwinCommandStatusUpdatesByPID { + + string vin = 1; + + // Process ID -> Status + map updates_by_pid = 2; +} + +// Sending direction: App <- BFF <- AppTwin as part of an AppTwinCommandStatusUpdatesByPID +message AppTwinCommandStatus { + + // The remote vehicleAPI process id of the command. + int64 process_id = 1; + + // The id of the command with which the app created it. Only guaranteed to be + // set on the first transmission to the app. + string request_id = 2; + + // The initial CommandStatus from the response of the vehicleAPI has a timestamp of + // -1 + int64 timestamp_in_ms = 3; + + // Potential ACP error if the command request could not be fulfilled + repeated VehicleAPIError errors = 4; + + // Potential timestamp until user cannot send login requests. Data in seconds + // since Unix epoch + int64 blocking_time_seconds = 5 [ deprecated = true ]; + + // Potential amount of failed pin attempts. + int32 pin_attempts = 6 [ deprecated = true ]; + + // The type of command the AppTwinCommandStatus belongs to + ACP.CommandType type = 7; + + // The command state + VehicleAPI.CommandState state = 8; +} + +// VehicleAPICommandPostResult is a message type that can be unmarshaled from a POST request against the vehicle API +// for issuing commands. +message VehicleAPICommandPostResult { + + // The remote VVA process id of the command. + int64 process_id = 1 [json_name = "processid"]; + + // Potential ACP error if the command request could not be fulfilled + repeated VehicleAPIError errors = 2 [json_name = "errors"]; + + // The command state + VehicleAPI.CommandState state = 3 [json_name = "state"]; +} + +message VehicleAPICommandGetResult { + // List of processes + repeated VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + + // Number of enqueued commands in related command queue + int32 queue_count = 2 [json_name = "queuecount"]; + + // Name of related command queue type + VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; +} + +message VehicleAPIDataGetResult { + map data = 1; +} + +message VehicleAPIAttributeStatus { + // Value of the attribute (can be anything) + google.protobuf.Value value = 3 [json_name = "value"]; + // UTC timestamp in milliseconds + int64 timestamp_in_ms = 2 [json_name = "ts"]; + // Status of the attribute + VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; +} + +message VehicleAPICommandProcessStatus { + repeated VehicleAPIError errors = 1 [json_name = "errors"]; + + // GUID (RFC 4122) + string instance_id = 2 [json_name = "instanceid"]; + + // Name of the command + string name = 3 [json_name = "name"]; + + // Process ID + int64 process_id = 4 [json_name = "processid"]; + + // The parameters with which the command was requested + // google.protobuf.Value request_parameters = 5 + // [ json_name = "requestparameters" ]; + + // Response parameters as defined by the command + google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + + // Current processing state + VehicleAPI.CommandState state = 7 [json_name = "state"]; + + // UTC timestamp in seconds (ISO 9945) + int64 timestamp_in_s = 8 [json_name = "timestamp"]; + + // Tracking ID. SHOULD be a GUID (RFC 4122) + string tracking_id = 9 [json_name = "trackingid"]; +} + +message VehicleAPIError { + string code = 1 [json_name = "error-code"]; + string message = 2 [json_name = "error-message"]; + map attributes = 3 [json_name = "attributes"]; + repeated VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; +} + +// AppTwinPendingCommandsRequest is sent from the AppTwin to the app to ask for commands that the app has not yet +// received a finished state for. This request MUST eventually be answered with AppTwinPendingCommandsResponse. +message AppTwinPendingCommandsRequest {} + +// AppTwinPendingCommandsResponse is sent from the app to the AppTwin to tell it the commands that haven't been +// "resolved yet" (are not in a finished state). The delivery of this message to the AppTwin will trigger a command +// actor that polls the state for the specified command type and PID. +message AppTwinPendingCommandsResponse { + repeated PendingCommand pending_commands = 1; +} + +message PendingCommand { + string vin = 1; + int64 process_id = 2; + string request_id = 3; + ACP.CommandType type = 4; +} diff --git a/bundles/org.openhab.binding.mercedesme/proto/vin-events.proto b/bundles/org.openhab.binding.mercedesme/proto/vin-events.proto new file mode 100644 index 00000000000..cf73ac14c4a --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/proto/vin-events.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; +package proto; + +option java_package = "com.daimler.mbcarkit.proto"; + +message VINUpdate { + repeated string addedVINs = 1; + repeated string deletedVINs = 2; +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/LICENSE b/bundles/org.openhab.binding.mercedesme/src/3rdparty/LICENSE new file mode 100644 index 00000000000..fd9663c0ab2 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 MBition GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Acp.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Acp.java new file mode 100644 index 00000000000..f68ca090ec3 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Acp.java @@ -0,0 +1,5257 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: acp.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class Acp { + private Acp() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Acp.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface VVAOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VVA) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.VVA} + */ + public static final class VVA extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VVA) + VVAOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VVA.class.getName()); + } + // Use VVA.newBuilder() to construct. + private VVA(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VVA() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VVA_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VVA_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Acp.VVA.class, com.daimler.mbcarkit.proto.Acp.VVA.Builder.class); + } + + /** + * Protobuf enum {@code proto.VVA.CommandState} + */ + public enum CommandState + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_COMMAND_STATE = 0; + */ + UNKNOWN_COMMAND_STATE(0), + /** + * CREATED = 1010; + */ + CREATED(1010), + /** + * ENQUEUED = 1016; + */ + ENQUEUED(1016), + /** + * PROCESSING = 1012; + */ + PROCESSING(1012), + /** + * SUSPENDED = 1017; + */ + SUSPENDED(1017), + /** + * FINISHED = 1018; + */ + FINISHED(1018), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CommandState.class.getName()); + } + /** + * UNKNOWN_COMMAND_STATE = 0; + */ + public static final int UNKNOWN_COMMAND_STATE_VALUE = 0; + /** + * CREATED = 1010; + */ + public static final int CREATED_VALUE = 1010; + /** + * ENQUEUED = 1016; + */ + public static final int ENQUEUED_VALUE = 1016; + /** + * PROCESSING = 1012; + */ + public static final int PROCESSING_VALUE = 1012; + /** + * SUSPENDED = 1017; + */ + public static final int SUSPENDED_VALUE = 1017; + /** + * FINISHED = 1018; + */ + public static final int FINISHED_VALUE = 1018; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static CommandState valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static CommandState forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_COMMAND_STATE; + case 1010: return CREATED; + case 1016: return ENQUEUED; + case 1012: return PROCESSING; + case 1017: return SUSPENDED; + case 1018: return FINISHED; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + CommandState> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public CommandState findValueByNumber(int number) { + return CommandState.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.VVA.getDescriptor().getEnumTypes().get(0); + } + + private static final CommandState[] VALUES = values(); + + public static CommandState valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private CommandState(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VVA.CommandState) + } + + /** + * Protobuf enum {@code proto.VVA.CommandCondition} + */ + public enum CommandCondition + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNWON_COMMAND_CONDITION = 0; + */ + UNKNWON_COMMAND_CONDITION(0), + /** + * NONE = 1000; + */ + NONE(1000), + /** + * ACCEPTED = 1001; + */ + ACCEPTED(1001), + /** + * REJECTED = 1002; + */ + REJECTED(1002), + /** + * TERMINATE = 1003; + */ + TERMINATE(1003), + /** + * SUCCESS = 1011; + */ + SUCCESS(1011), + /** + * FAILED = 1013; + */ + FAILED(1013), + /** + * OVERWRITTEN = 1014; + */ + OVERWRITTEN(1014), + /** + * TIMEOUT = 1015; + */ + TIMEOUT(1015), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CommandCondition.class.getName()); + } + /** + * UNKNWON_COMMAND_CONDITION = 0; + */ + public static final int UNKNWON_COMMAND_CONDITION_VALUE = 0; + /** + * NONE = 1000; + */ + public static final int NONE_VALUE = 1000; + /** + * ACCEPTED = 1001; + */ + public static final int ACCEPTED_VALUE = 1001; + /** + * REJECTED = 1002; + */ + public static final int REJECTED_VALUE = 1002; + /** + * TERMINATE = 1003; + */ + public static final int TERMINATE_VALUE = 1003; + /** + * SUCCESS = 1011; + */ + public static final int SUCCESS_VALUE = 1011; + /** + * FAILED = 1013; + */ + public static final int FAILED_VALUE = 1013; + /** + * OVERWRITTEN = 1014; + */ + public static final int OVERWRITTEN_VALUE = 1014; + /** + * TIMEOUT = 1015; + */ + public static final int TIMEOUT_VALUE = 1015; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static CommandCondition valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static CommandCondition forNumber(int value) { + switch (value) { + case 0: return UNKNWON_COMMAND_CONDITION; + case 1000: return NONE; + case 1001: return ACCEPTED; + case 1002: return REJECTED; + case 1003: return TERMINATE; + case 1011: return SUCCESS; + case 1013: return FAILED; + case 1014: return OVERWRITTEN; + case 1015: return TIMEOUT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + CommandCondition> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public CommandCondition findValueByNumber(int number) { + return CommandCondition.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.VVA.getDescriptor().getEnumTypes().get(1); + } + + private static final CommandCondition[] VALUES = values(); + + public static CommandCondition valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private CommandCondition(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VVA.CommandCondition) + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Acp.VVA)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Acp.VVA other = (com.daimler.mbcarkit.proto.Acp.VVA) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Acp.VVA parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Acp.VVA parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Acp.VVA parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Acp.VVA prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VVA} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VVA) + com.daimler.mbcarkit.proto.Acp.VVAOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VVA_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VVA_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Acp.VVA.class, com.daimler.mbcarkit.proto.Acp.VVA.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Acp.VVA.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VVA_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VVA getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Acp.VVA.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VVA build() { + com.daimler.mbcarkit.proto.Acp.VVA result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VVA buildPartial() { + com.daimler.mbcarkit.proto.Acp.VVA result = new com.daimler.mbcarkit.proto.Acp.VVA(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Acp.VVA) { + return mergeFrom((com.daimler.mbcarkit.proto.Acp.VVA)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Acp.VVA other) { + if (other == com.daimler.mbcarkit.proto.Acp.VVA.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VVA) + } + + // @@protoc_insertion_point(class_scope:proto.VVA) + private static final com.daimler.mbcarkit.proto.Acp.VVA DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Acp.VVA(); + } + + public static com.daimler.mbcarkit.proto.Acp.VVA getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VVA parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VVA getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleAPIOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleAPI) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.VehicleAPI} + */ + public static final class VehicleAPI extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleAPI) + VehicleAPIOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleAPI.class.getName()); + } + // Use VehicleAPI.newBuilder() to construct. + private VehicleAPI(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleAPI() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VehicleAPI_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VehicleAPI_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Acp.VehicleAPI.class, com.daimler.mbcarkit.proto.Acp.VehicleAPI.Builder.class); + } + + /** + * Protobuf enum {@code proto.VehicleAPI.CommandState} + */ + public enum CommandState + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_COMMAND_STATE = 0; + */ + UNKNOWN_COMMAND_STATE(0), + /** + *

+       * Command execution request is accepted and an asynchronous process is
+       * being initialized.
+       * 
+ * + * INITIATION = 1; + */ + INITIATION(1), + /** + *
+       * Another process for the same vehicle and queue is active, the request has
+       * been queued for later execution.
+       * 
+ * + * ENQUEUED = 2; + */ + ENQUEUED(2), + /** + *
+       * The process is currently being processed by the backend.
+       * 
+ * + * PROCESSING = 3; + */ + PROCESSING(3), + /** + *
+       * The backend currently waits for the vehicle to respond to the request.
+       * 
+ * + * WAITING = 4; + */ + WAITING(4), + /** + *
+       * The process has finished successfully.
+       * 
+ * + * FINISHED = 5; + */ + FINISHED(5), + /** + *
+       * There was an error while executing the command process.
+       * 
+ * + * FAILED = 6; + */ + FAILED(6), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CommandState.class.getName()); + } + /** + * UNKNOWN_COMMAND_STATE = 0; + */ + public static final int UNKNOWN_COMMAND_STATE_VALUE = 0; + /** + *
+       * Command execution request is accepted and an asynchronous process is
+       * being initialized.
+       * 
+ * + * INITIATION = 1; + */ + public static final int INITIATION_VALUE = 1; + /** + *
+       * Another process for the same vehicle and queue is active, the request has
+       * been queued for later execution.
+       * 
+ * + * ENQUEUED = 2; + */ + public static final int ENQUEUED_VALUE = 2; + /** + *
+       * The process is currently being processed by the backend.
+       * 
+ * + * PROCESSING = 3; + */ + public static final int PROCESSING_VALUE = 3; + /** + *
+       * The backend currently waits for the vehicle to respond to the request.
+       * 
+ * + * WAITING = 4; + */ + public static final int WAITING_VALUE = 4; + /** + *
+       * The process has finished successfully.
+       * 
+ * + * FINISHED = 5; + */ + public static final int FINISHED_VALUE = 5; + /** + *
+       * There was an error while executing the command process.
+       * 
+ * + * FAILED = 6; + */ + public static final int FAILED_VALUE = 6; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static CommandState valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static CommandState forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_COMMAND_STATE; + case 1: return INITIATION; + case 2: return ENQUEUED; + case 3: return PROCESSING; + case 4: return WAITING; + case 5: return FINISHED; + case 6: return FAILED; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + CommandState> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public CommandState findValueByNumber(int number) { + return CommandState.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.VehicleAPI.getDescriptor().getEnumTypes().get(0); + } + + private static final CommandState[] VALUES = values(); + + public static CommandState valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private CommandState(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAPI.CommandState) + } + + /** + * Protobuf enum {@code proto.VehicleAPI.AttributeStatus} + */ + public enum AttributeStatus + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+       * Value is set and valid
+       * 
+ * + * VALUE_SET = 0; + */ + VALUE_SET(0), + /** + *
+       * Value has not yet been retrieved from vehicle (but sensor etc. should be available)
+       * 
+ * + * VALUE_NOT_SET = 1; + */ + VALUE_NOT_SET(1), + /** + *
+       * Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend)
+       * 
+ * + * INVALID = 3; + */ + INVALID(3), + /** + *
+       * Vehicle does not support this attribute (e.g. does not have the sensor etc.)
+       * 
+ * + * NOT_AVAILABLE = 4; + */ + NOT_AVAILABLE(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AttributeStatus.class.getName()); + } + /** + *
+       * Value is set and valid
+       * 
+ * + * VALUE_SET = 0; + */ + public static final int VALUE_SET_VALUE = 0; + /** + *
+       * Value has not yet been retrieved from vehicle (but sensor etc. should be available)
+       * 
+ * + * VALUE_NOT_SET = 1; + */ + public static final int VALUE_NOT_SET_VALUE = 1; + /** + *
+       * Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend)
+       * 
+ * + * INVALID = 3; + */ + public static final int INVALID_VALUE = 3; + /** + *
+       * Vehicle does not support this attribute (e.g. does not have the sensor etc.)
+       * 
+ * + * NOT_AVAILABLE = 4; + */ + public static final int NOT_AVAILABLE_VALUE = 4; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static AttributeStatus valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static AttributeStatus forNumber(int value) { + switch (value) { + case 0: return VALUE_SET; + case 1: return VALUE_NOT_SET; + case 3: return INVALID; + case 4: return NOT_AVAILABLE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + AttributeStatus> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public AttributeStatus findValueByNumber(int number) { + return AttributeStatus.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.VehicleAPI.getDescriptor().getEnumTypes().get(1); + } + + private static final AttributeStatus[] VALUES = values(); + + public static AttributeStatus valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private AttributeStatus(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAPI.AttributeStatus) + } + + /** + * Protobuf enum {@code proto.VehicleAPI.QueueType} + */ + public enum QueueType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWNCOMMANDQUEUETYPE = 0; + */ + UNKNOWNCOMMANDQUEUETYPE(0), + /** + * DOORS = 10; + */ + DOORS(10), + /** + * AUXHEAT = 11; + */ + AUXHEAT(11), + /** + * PRECOND = 12; + */ + PRECOND(12), + /** + * CHARGEOPT = 13; + */ + CHARGEOPT(13), + /** + * MAINTENANCE = 14; + */ + MAINTENANCE(14), + /** + * TCU = 15; + */ + TCU(15), + /** + * FEED = 16; + */ + FEED(16), + /** + * SERVICEACTIVATION = 17; + */ + SERVICEACTIVATION(17), + /** + * ATP = 18; + */ + ATP(18), + /** + * ASSISTANCE = 19; + */ + ASSISTANCE(19), + /** + * RACP = 20; + */ + RACP(20), + /** + * WEEKPROFILE = 21; + */ + WEEKPROFILE(21), + /** + * REMOTEDIAGNOSIS = 22; + */ + REMOTEDIAGNOSIS(22), + /** + *
+       * (ALSO USED BY SIGPOS/RVF)
+       * 
+ * + * FLSH = 23; + */ + FLSH(23), + /** + * TEMPERATURE = 24; + */ + TEMPERATURE(24), + /** + * TRIPCOMP = 25; + */ + TRIPCOMP(25), + /** + * ENGINE = 26; + */ + ENGINE(26), + /** + * THEFTALARM = 27; + */ + THEFTALARM(27), + /** + * WINDOW = 28; + */ + WINDOW(28), + /** + * HEADUNIT = 29; + */ + HEADUNIT(29), + /** + * MECALL = 31; + */ + MECALL(31), + /** + * IMMOBILIZER = 32; + */ + IMMOBILIZER(32), + /** + * RENTALSIGNAL = 33; + */ + RENTALSIGNAL(33), + /** + *
+       * (BLACKCHANNEL)
+       * 
+ * + * BCF = 34; + */ + BCF(34), + /** + * PLUGANDCHARGE = 35; + */ + PLUGANDCHARGE(35), + /** + * CARSHARINGMODULE = 36; + */ + CARSHARINGMODULE(36), + /** + * BATTERY = 37; + */ + BATTERY(37), + /** + * ONBOARDFENCES = 38; + */ + ONBOARDFENCES(38), + /** + * SPEEDFENCES = 39; + */ + SPEEDFENCES(39), + /** + * CHARGINGTARIFFS = 40; + */ + CHARGINGTARIFFS(40), + /** + * RTMCONFIG = 41; + */ + RTMCONFIG(41), + /** + * MAINTENANCECOMPUTER = 42; + */ + MAINTENANCECOMPUTER(42), + /** + * MECALL2 = 43; + */ + MECALL2(43), + /** + * AUTOMATEDVALETPARKING = 44; + */ + AUTOMATEDVALETPARKING(44), + /** + * CHARGECONTROL = 45; + */ + CHARGECONTROL(45), + /** + * SPEEDALERT = 46; + */ + SPEEDALERT(46), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + QueueType.class.getName()); + } + /** + * unknowncommandqueuetype = 0; + */ + public static final QueueType unknowncommandqueuetype = UNKNOWNCOMMANDQUEUETYPE; + /** + * doors = 10; + */ + public static final QueueType doors = DOORS; + /** + * auxheat = 11; + */ + public static final QueueType auxheat = AUXHEAT; + /** + * precond = 12; + */ + public static final QueueType precond = PRECOND; + /** + * chargeopt = 13; + */ + public static final QueueType chargeopt = CHARGEOPT; + /** + * maintenance = 14; + */ + public static final QueueType maintenance = MAINTENANCE; + /** + * tcu = 15; + */ + public static final QueueType tcu = TCU; + /** + * feed = 16; + */ + public static final QueueType feed = FEED; + /** + * serviceactivation = 17; + */ + public static final QueueType serviceactivation = SERVICEACTIVATION; + /** + * atp = 18; + */ + public static final QueueType atp = ATP; + /** + * assistance = 19; + */ + public static final QueueType assistance = ASSISTANCE; + /** + * racp = 20; + */ + public static final QueueType racp = RACP; + /** + * weekprofile = 21; + */ + public static final QueueType weekprofile = WEEKPROFILE; + /** + * remotediagnosis = 22; + */ + public static final QueueType remotediagnosis = REMOTEDIAGNOSIS; + /** + *
+       * (also used by sigpos/RVF)
+       * 
+ * + * flsh = 23; + */ + public static final QueueType flsh = FLSH; + /** + * temperature = 24; + */ + public static final QueueType temperature = TEMPERATURE; + /** + * tripcomp = 25; + */ + public static final QueueType tripcomp = TRIPCOMP; + /** + * engine = 26; + */ + public static final QueueType engine = ENGINE; + /** + * theftalarm = 27; + */ + public static final QueueType theftalarm = THEFTALARM; + /** + * window = 28; + */ + public static final QueueType window = WINDOW; + /** + * headunit = 29; + */ + public static final QueueType headunit = HEADUNIT; + /** + * mecall = 31; + */ + public static final QueueType mecall = MECALL; + /** + * immobilizer = 32; + */ + public static final QueueType immobilizer = IMMOBILIZER; + /** + * rentalsignal = 33; + */ + public static final QueueType rentalsignal = RENTALSIGNAL; + /** + *
+       * (blackchannel)
+       * 
+ * + * bcf = 34; + */ + public static final QueueType bcf = BCF; + /** + * plugandcharge = 35; + */ + public static final QueueType plugandcharge = PLUGANDCHARGE; + /** + * carsharingmodule = 36; + */ + public static final QueueType carsharingmodule = CARSHARINGMODULE; + /** + * battery = 37; + */ + public static final QueueType battery = BATTERY; + /** + * onboardfences = 38; + */ + public static final QueueType onboardfences = ONBOARDFENCES; + /** + * speedfences = 39; + */ + public static final QueueType speedfences = SPEEDFENCES; + /** + * chargingtariffs = 40; + */ + public static final QueueType chargingtariffs = CHARGINGTARIFFS; + /** + * rtmconfig = 41; + */ + public static final QueueType rtmconfig = RTMCONFIG; + /** + * maintenancecomputer = 42; + */ + public static final QueueType maintenancecomputer = MAINTENANCECOMPUTER; + /** + * mecall2 = 43; + */ + public static final QueueType mecall2 = MECALL2; + /** + * automatedvaletparking = 44; + */ + public static final QueueType automatedvaletparking = AUTOMATEDVALETPARKING; + /** + * chargecontrol = 45; + */ + public static final QueueType chargecontrol = CHARGECONTROL; + /** + * speedalert = 46; + */ + public static final QueueType speedalert = SPEEDALERT; + /** + * UNKNOWNCOMMANDQUEUETYPE = 0; + */ + public static final int UNKNOWNCOMMANDQUEUETYPE_VALUE = 0; + /** + * DOORS = 10; + */ + public static final int DOORS_VALUE = 10; + /** + * AUXHEAT = 11; + */ + public static final int AUXHEAT_VALUE = 11; + /** + * PRECOND = 12; + */ + public static final int PRECOND_VALUE = 12; + /** + * CHARGEOPT = 13; + */ + public static final int CHARGEOPT_VALUE = 13; + /** + * MAINTENANCE = 14; + */ + public static final int MAINTENANCE_VALUE = 14; + /** + * TCU = 15; + */ + public static final int TCU_VALUE = 15; + /** + * FEED = 16; + */ + public static final int FEED_VALUE = 16; + /** + * SERVICEACTIVATION = 17; + */ + public static final int SERVICEACTIVATION_VALUE = 17; + /** + * ATP = 18; + */ + public static final int ATP_VALUE = 18; + /** + * ASSISTANCE = 19; + */ + public static final int ASSISTANCE_VALUE = 19; + /** + * RACP = 20; + */ + public static final int RACP_VALUE = 20; + /** + * WEEKPROFILE = 21; + */ + public static final int WEEKPROFILE_VALUE = 21; + /** + * REMOTEDIAGNOSIS = 22; + */ + public static final int REMOTEDIAGNOSIS_VALUE = 22; + /** + *
+       * (ALSO USED BY SIGPOS/RVF)
+       * 
+ * + * FLSH = 23; + */ + public static final int FLSH_VALUE = 23; + /** + * TEMPERATURE = 24; + */ + public static final int TEMPERATURE_VALUE = 24; + /** + * TRIPCOMP = 25; + */ + public static final int TRIPCOMP_VALUE = 25; + /** + * ENGINE = 26; + */ + public static final int ENGINE_VALUE = 26; + /** + * THEFTALARM = 27; + */ + public static final int THEFTALARM_VALUE = 27; + /** + * WINDOW = 28; + */ + public static final int WINDOW_VALUE = 28; + /** + * HEADUNIT = 29; + */ + public static final int HEADUNIT_VALUE = 29; + /** + * MECALL = 31; + */ + public static final int MECALL_VALUE = 31; + /** + * IMMOBILIZER = 32; + */ + public static final int IMMOBILIZER_VALUE = 32; + /** + * RENTALSIGNAL = 33; + */ + public static final int RENTALSIGNAL_VALUE = 33; + /** + *
+       * (BLACKCHANNEL)
+       * 
+ * + * BCF = 34; + */ + public static final int BCF_VALUE = 34; + /** + * PLUGANDCHARGE = 35; + */ + public static final int PLUGANDCHARGE_VALUE = 35; + /** + * CARSHARINGMODULE = 36; + */ + public static final int CARSHARINGMODULE_VALUE = 36; + /** + * BATTERY = 37; + */ + public static final int BATTERY_VALUE = 37; + /** + * ONBOARDFENCES = 38; + */ + public static final int ONBOARDFENCES_VALUE = 38; + /** + * SPEEDFENCES = 39; + */ + public static final int SPEEDFENCES_VALUE = 39; + /** + * CHARGINGTARIFFS = 40; + */ + public static final int CHARGINGTARIFFS_VALUE = 40; + /** + * RTMCONFIG = 41; + */ + public static final int RTMCONFIG_VALUE = 41; + /** + * MAINTENANCECOMPUTER = 42; + */ + public static final int MAINTENANCECOMPUTER_VALUE = 42; + /** + * MECALL2 = 43; + */ + public static final int MECALL2_VALUE = 43; + /** + * AUTOMATEDVALETPARKING = 44; + */ + public static final int AUTOMATEDVALETPARKING_VALUE = 44; + /** + * CHARGECONTROL = 45; + */ + public static final int CHARGECONTROL_VALUE = 45; + /** + * SPEEDALERT = 46; + */ + public static final int SPEEDALERT_VALUE = 46; + /** + * unknowncommandqueuetype = 0; + */ + public static final int unknowncommandqueuetype_VALUE = 0; + /** + * doors = 10; + */ + public static final int doors_VALUE = 10; + /** + * auxheat = 11; + */ + public static final int auxheat_VALUE = 11; + /** + * precond = 12; + */ + public static final int precond_VALUE = 12; + /** + * chargeopt = 13; + */ + public static final int chargeopt_VALUE = 13; + /** + * maintenance = 14; + */ + public static final int maintenance_VALUE = 14; + /** + * tcu = 15; + */ + public static final int tcu_VALUE = 15; + /** + * feed = 16; + */ + public static final int feed_VALUE = 16; + /** + * serviceactivation = 17; + */ + public static final int serviceactivation_VALUE = 17; + /** + * atp = 18; + */ + public static final int atp_VALUE = 18; + /** + * assistance = 19; + */ + public static final int assistance_VALUE = 19; + /** + * racp = 20; + */ + public static final int racp_VALUE = 20; + /** + * weekprofile = 21; + */ + public static final int weekprofile_VALUE = 21; + /** + * remotediagnosis = 22; + */ + public static final int remotediagnosis_VALUE = 22; + /** + *
+       * (also used by sigpos/RVF)
+       * 
+ * + * flsh = 23; + */ + public static final int flsh_VALUE = 23; + /** + * temperature = 24; + */ + public static final int temperature_VALUE = 24; + /** + * tripcomp = 25; + */ + public static final int tripcomp_VALUE = 25; + /** + * engine = 26; + */ + public static final int engine_VALUE = 26; + /** + * theftalarm = 27; + */ + public static final int theftalarm_VALUE = 27; + /** + * window = 28; + */ + public static final int window_VALUE = 28; + /** + * headunit = 29; + */ + public static final int headunit_VALUE = 29; + /** + * mecall = 31; + */ + public static final int mecall_VALUE = 31; + /** + * immobilizer = 32; + */ + public static final int immobilizer_VALUE = 32; + /** + * rentalsignal = 33; + */ + public static final int rentalsignal_VALUE = 33; + /** + *
+       * (blackchannel)
+       * 
+ * + * bcf = 34; + */ + public static final int bcf_VALUE = 34; + /** + * plugandcharge = 35; + */ + public static final int plugandcharge_VALUE = 35; + /** + * carsharingmodule = 36; + */ + public static final int carsharingmodule_VALUE = 36; + /** + * battery = 37; + */ + public static final int battery_VALUE = 37; + /** + * onboardfences = 38; + */ + public static final int onboardfences_VALUE = 38; + /** + * speedfences = 39; + */ + public static final int speedfences_VALUE = 39; + /** + * chargingtariffs = 40; + */ + public static final int chargingtariffs_VALUE = 40; + /** + * rtmconfig = 41; + */ + public static final int rtmconfig_VALUE = 41; + /** + * maintenancecomputer = 42; + */ + public static final int maintenancecomputer_VALUE = 42; + /** + * mecall2 = 43; + */ + public static final int mecall2_VALUE = 43; + /** + * automatedvaletparking = 44; + */ + public static final int automatedvaletparking_VALUE = 44; + /** + * chargecontrol = 45; + */ + public static final int chargecontrol_VALUE = 45; + /** + * speedalert = 46; + */ + public static final int speedalert_VALUE = 46; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static QueueType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static QueueType forNumber(int value) { + switch (value) { + case 0: return UNKNOWNCOMMANDQUEUETYPE; + case 10: return DOORS; + case 11: return AUXHEAT; + case 12: return PRECOND; + case 13: return CHARGEOPT; + case 14: return MAINTENANCE; + case 15: return TCU; + case 16: return FEED; + case 17: return SERVICEACTIVATION; + case 18: return ATP; + case 19: return ASSISTANCE; + case 20: return RACP; + case 21: return WEEKPROFILE; + case 22: return REMOTEDIAGNOSIS; + case 23: return FLSH; + case 24: return TEMPERATURE; + case 25: return TRIPCOMP; + case 26: return ENGINE; + case 27: return THEFTALARM; + case 28: return WINDOW; + case 29: return HEADUNIT; + case 31: return MECALL; + case 32: return IMMOBILIZER; + case 33: return RENTALSIGNAL; + case 34: return BCF; + case 35: return PLUGANDCHARGE; + case 36: return CARSHARINGMODULE; + case 37: return BATTERY; + case 38: return ONBOARDFENCES; + case 39: return SPEEDFENCES; + case 40: return CHARGINGTARIFFS; + case 41: return RTMCONFIG; + case 42: return MAINTENANCECOMPUTER; + case 43: return MECALL2; + case 44: return AUTOMATEDVALETPARKING; + case 45: return CHARGECONTROL; + case 46: return SPEEDALERT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + QueueType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public QueueType findValueByNumber(int number) { + return QueueType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.VehicleAPI.getDescriptor().getEnumTypes().get(2); + } + + private static final QueueType[] VALUES = getStaticValuesArray(); + private static QueueType[] getStaticValuesArray() { + return new QueueType[] { + UNKNOWNCOMMANDQUEUETYPE, DOORS, AUXHEAT, PRECOND, CHARGEOPT, MAINTENANCE, TCU, FEED, SERVICEACTIVATION, ATP, ASSISTANCE, RACP, WEEKPROFILE, REMOTEDIAGNOSIS, FLSH, TEMPERATURE, TRIPCOMP, ENGINE, THEFTALARM, WINDOW, HEADUNIT, MECALL, IMMOBILIZER, RENTALSIGNAL, BCF, PLUGANDCHARGE, CARSHARINGMODULE, BATTERY, ONBOARDFENCES, SPEEDFENCES, CHARGINGTARIFFS, RTMCONFIG, MAINTENANCECOMPUTER, MECALL2, AUTOMATEDVALETPARKING, CHARGECONTROL, SPEEDALERT, unknowncommandqueuetype, doors, auxheat, precond, chargeopt, maintenance, tcu, feed, serviceactivation, atp, assistance, racp, weekprofile, remotediagnosis, flsh, temperature, tripcomp, engine, theftalarm, window, headunit, mecall, immobilizer, rentalsignal, bcf, plugandcharge, carsharingmodule, battery, onboardfences, speedfences, chargingtariffs, rtmconfig, maintenancecomputer, mecall2, automatedvaletparking, chargecontrol, speedalert, + }; + } + public static QueueType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private QueueType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAPI.QueueType) + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Acp.VehicleAPI)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Acp.VehicleAPI other = (com.daimler.mbcarkit.proto.Acp.VehicleAPI) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Acp.VehicleAPI prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VehicleAPI} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleAPI) + com.daimler.mbcarkit.proto.Acp.VehicleAPIOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VehicleAPI_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VehicleAPI_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Acp.VehicleAPI.class, com.daimler.mbcarkit.proto.Acp.VehicleAPI.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Acp.VehicleAPI.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_VehicleAPI_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Acp.VehicleAPI.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI build() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI buildPartial() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI result = new com.daimler.mbcarkit.proto.Acp.VehicleAPI(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Acp.VehicleAPI) { + return mergeFrom((com.daimler.mbcarkit.proto.Acp.VehicleAPI)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Acp.VehicleAPI other) { + if (other == com.daimler.mbcarkit.proto.Acp.VehicleAPI.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleAPI) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleAPI) + private static final com.daimler.mbcarkit.proto.Acp.VehicleAPI DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Acp.VehicleAPI(); + } + + public static com.daimler.mbcarkit.proto.Acp.VehicleAPI getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleAPI parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ACPOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ACP) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.ACP} + */ + public static final class ACP extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ACP) + ACPOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ACP.class.getName()); + } + // Use ACP.newBuilder() to construct. + private ACP(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ACP() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_ACP_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_ACP_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Acp.ACP.class, com.daimler.mbcarkit.proto.Acp.ACP.Builder.class); + } + + /** + * Protobuf enum {@code proto.ACP.CommandType} + */ + public enum CommandType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWNCOMMANDTYPE = 0; + */ + UNKNOWNCOMMANDTYPE(0), + /** + * DOORSLOCK = 100; + */ + DOORSLOCK(100), + /** + * DOORSUNLOCK = 110; + */ + DOORSUNLOCK(110), + /** + * TRUNKUNLOCK = 115; + */ + TRUNKUNLOCK(115), + /** + * FUELFLAPUNLOCK = 116; + */ + FUELFLAPUNLOCK(116), + /** + * CHARGEFLAPUNLOCK = 117; + */ + CHARGEFLAPUNLOCK(117), + /** + * CHARGECOUPLERUNLOCK = 118; + */ + CHARGECOUPLERUNLOCK(118), + /** + * DOORSPREPARERENTAL = 120; + */ + DOORSPREPARERENTAL(120), + /** + * DOORSSECUREVEHICLE = 130; + */ + DOORSSECUREVEHICLE(130), + /** + * AUXHEATSTART = 300; + */ + AUXHEATSTART(300), + /** + * AUXHEATSTOP = 310; + */ + AUXHEATSTOP(310), + /** + * AUXHEATCONFIGURE = 320; + */ + AUXHEATCONFIGURE(320), + /** + * TEMPERATURECONFIGURE = 350; + */ + TEMPERATURECONFIGURE(350), + /** + * WEEKPROFILECONFIGURE = 360; + */ + WEEKPROFILECONFIGURE(360), + /** + * WEEKPROFILEV2CONFIGURE = 370; + */ + WEEKPROFILEV2CONFIGURE(370), + /** + * PRECONDSTART = 400; + */ + PRECONDSTART(400), + /** + * PRECONDSTOP = 410; + */ + PRECONDSTOP(410), + /** + * PRECONDCONFIGURE = 420; + */ + PRECONDCONFIGURE(420), + /** + * PRECONDCONFIGURESEATS = 425; + */ + PRECONDCONFIGURESEATS(425), + /** + * CHARGEOPTCONFIGURE = 430; + */ + CHARGEOPTCONFIGURE(430), + /** + * CHARGEOPTSTART = 440; + */ + CHARGEOPTSTART(440), + /** + * CHARGEOPTSTOP = 450; + */ + CHARGEOPTSTOP(450), + /** + * FEEDPOI = 500; + */ + FEEDPOI(500), + /** + * FEEDFREETEXT = 510; + */ + FEEDFREETEXT(510), + /** + * ENGINESTART = 550; + */ + ENGINESTART(550), + /** + * ENGINESTOP = 560; + */ + ENGINESTOP(560), + /** + * ENGINEAVPSTART = 570; + */ + ENGINEAVPSTART(570), + /** + * TCUWAKEUP = 600; + */ + TCUWAKEUP(600), + /** + * TCUSWUPDATE = 610; + */ + TCUSWUPDATE(610), + /** + * TCURCSRESET = 620; + */ + TCURCSRESET(620), + /** + * TCUINTERROGATION = 630; + */ + TCUINTERROGATION(630), + /** + * SPEEDALERTSTART = 710; + */ + SPEEDALERTSTART(710), + /** + * SPEEDALERTSTOP = 720; + */ + SPEEDALERTSTOP(720), + /** + *
+       * (DEPRECATED)
+       * 
+ * + * FLSHSTART = 750; + */ + FLSHSTART(750), + /** + *
+       * (DEPRECATED)
+       * 
+ * + * FLSHSTOP = 760; + */ + FLSHSTOP(760), + /** + * SIGPOSSTART = 770; + */ + SIGPOSSTART(770), + /** + * CONTRACTCONFIGURE = 800; + */ + CONTRACTCONFIGURE(800), + /** + * CONTRACTREMOVE = 810; + */ + CONTRACTREMOVE(810), + /** + * ROOTCONFIGURE = 820; + */ + ROOTCONFIGURE(820), + /** + * ROOTREMOVE = 830; + */ + ROOTREMOVE(830), + /** + *
+       * RESET TRIPCOMP
+       * 
+ * + * TRIPCOMP = 850; + */ + TRIPCOMP(850), + /** + * MAINTENANCECONFIGURE = 930; + */ + MAINTENANCECONFIGURE(930), + /** + * MAINTENANCECOMPUTEROFFSET = 931; + */ + MAINTENANCECOMPUTEROFFSET(931), + /** + * SHORTTESTEXECUTE = 935; + */ + SHORTTESTEXECUTE(935), + /** + * SERVICEACTIVATIONCONFIGURE = 940; + */ + SERVICEACTIVATIONCONFIGURE(940), + /** + * DC2SERVICEACTIVATIONCONFIGURE = 945; + */ + DC2SERVICEACTIVATIONCONFIGURE(945), + /** + *
+       * (TEST COMMAND)
+       * 
+ * + * DC2RAWDOWNLOAD = 950; + */ + DC2RAWDOWNLOAD(950), + /** + *
+       * (DC2+)
+       * 
+ * + * APPLICATIONCONFIGURATION = 955; + */ + APPLICATIONCONFIGURATION(955), + /** + *
+       * (TEST COMMAND)
+       * 
+ * + * DC2STARTTRACKING = 960; + */ + DC2STARTTRACKING(960), + /** + * ATPSEQUENCE = 990; + */ + ATPSEQUENCE(990), + /** + * THEFTALARMTOGGLEINTERIOR = 1000; + */ + THEFTALARMTOGGLEINTERIOR(1000), + /** + * THEFTALARMTOGGLETOW = 1010; + */ + THEFTALARMTOGGLETOW(1010), + /** + * THEFTALARMSELECTINTERIORTOW = 1020; + */ + THEFTALARMSELECTINTERIORTOW(1020), + /** + * THEFTALARMDESELECTINTERIORTOW = 1030; + */ + THEFTALARMDESELECTINTERIORTOW(1030), + /** + * THEFTALARMSTOP = 1040; + */ + THEFTALARMSTOP(1040), + /** + * WINDOWOPEN = 1100; + */ + WINDOWOPEN(1100), + /** + * WINDOWCLOSE = 1110; + */ + WINDOWCLOSE(1110), + /** + * WINDOWVENTILATE = 1120; + */ + WINDOWVENTILATE(1120), + /** + * WINDOWMOVE = 1121; + */ + WINDOWMOVE(1121), + /** + * ROOFOPEN = 1130; + */ + ROOFOPEN(1130), + /** + * ROOFCLOSE = 1140; + */ + ROOFCLOSE(1140), + /** + * ROOFLIFT = 1150; + */ + ROOFLIFT(1150), + /** + * ROOFMOVE = 1151; + */ + ROOFMOVE(1151), + /** + * BATTERYMAXSOC = 2000; + */ + BATTERYMAXSOC(2000), + /** + * BATTERYCHARGEPROGRAM = 2010; + */ + BATTERYCHARGEPROGRAM(2010), + /** + * CHARGEPROGRAMCONFIGURE = 2020; + */ + CHARGEPROGRAMCONFIGURE(2020), + /** + * ONBOARDFENCESCREATE = 2100; + */ + ONBOARDFENCESCREATE(2100), + /** + * ONBOARDFENCESUPDATE = 2110; + */ + ONBOARDFENCESUPDATE(2110), + /** + * ONBOARDFENCESDELETE = 2120; + */ + ONBOARDFENCESDELETE(2120), + /** + * SPEEDFENCESCREATE = 2200; + */ + SPEEDFENCESCREATE(2200), + /** + * SPEEDFENCESUPDATE = 2210; + */ + SPEEDFENCESUPDATE(2210), + /** + * SPEEDFENCESDELETE = 2220; + */ + SPEEDFENCESDELETE(2220), + /** + * CHARGINGTARIFFSCREATE = 2300; + */ + CHARGINGTARIFFSCREATE(2300), + /** + * CHARGINGTARIFFSUPDATE = 2310; + */ + CHARGINGTARIFFSUPDATE(2310), + /** + * CHARGINGTARIFFSDELETE = 2320; + */ + CHARGINGTARIFFSDELETE(2320), + /** + * THEFTALARMSTART = 2500; + */ + THEFTALARMSTART(2500), + /** + * THEFTALARMSELECTINTERIOR = 2510; + */ + THEFTALARMSELECTINTERIOR(2510), + /** + * THEFTALARMDESELECTINTERIOR = 2520; + */ + THEFTALARMDESELECTINTERIOR(2520), + /** + * THEFTALARMSELECTTOW = 2530; + */ + THEFTALARMSELECTTOW(2530), + /** + * THEFTALARMDESELECTTOW = 2540; + */ + THEFTALARMDESELECTTOW(2540), + /** + * THEFTALARMSELECTDAMAGEDETECTION = 2550; + */ + THEFTALARMSELECTDAMAGEDETECTION(2550), + /** + * THEFTALARMDESELECTDAMAGEDETECTION = 2560; + */ + THEFTALARMDESELECTDAMAGEDETECTION(2560), + /** + * THEFTALARMCONFIRMDAMAGEDETECTION = 2570; + */ + THEFTALARMCONFIRMDAMAGEDETECTION(2570), + /** + * MECALL2START = 2600; + */ + MECALL2START(2600), + /** + * UDXTRIGGERSYNCHRONIZATION = 1200; + */ + UDXTRIGGERSYNCHRONIZATION(1200), + /** + * UDXACTIVEUSERPROFILE = 1210; + */ + UDXACTIVEUSERPROFILE(1210), + /** + * UDXRESETUSERDATA = 1220; + */ + UDXRESETUSERDATA(1220), + /** + * USERPROFSYNCH = 1230; + */ + USERPROFSYNCH(1230), + /** + * USERDATARESET = 1240; + */ + USERDATARESET(1240), + /** + * PROFACTIVATIONSNAP = 1250; + */ + PROFACTIVATIONSNAP(1250), + /** + * PROFACTIVATIONDIRECT = 1255; + */ + PROFACTIVATIONDIRECT(1255), + /** + * SOFTWAREUPDATE = 1260; + */ + SOFTWAREUPDATE(1260), + /** + * PUSHNOTIFICATION = 1270; + */ + PUSHNOTIFICATION(1270), + /** + * MECALLCOMMAND = 1310; + */ + MECALLCOMMAND(1310), + /** + * PRECONDSTARTRCS = 1400; + */ + PRECONDSTARTRCS(1400), + /** + * PRECONDSTOPRCS = 1410; + */ + PRECONDSTOPRCS(1410), + /** + * PRECONDCONFIGURERCS = 1420; + */ + PRECONDCONFIGURERCS(1420), + /** + * TCUCONFIGURE = 1430; + */ + TCUCONFIGURE(1430), + /** + * EDISONSERVICEACTIVATION = 1431; + */ + EDISONSERVICEACTIVATION(1431), + /** + * TESTSEQUENCE = 1432; + */ + TESTSEQUENCE(1432), + /** + * PRECONDCONFIGURERACP = 1433; + */ + PRECONDCONFIGURERACP(1433), + /** + * CHARGEOPTCONFIGURERACP = 1434; + */ + CHARGEOPTCONFIGURERACP(1434), + /** + * TARIFFTABLEDOWNLOAD = 1435; + */ + TARIFFTABLEDOWNLOAD(1435), + /** + * PRECONDSTARTRACP = 1436; + */ + PRECONDSTARTRACP(1436), + /** + * PRECONDSTOPRACP = 1437; + */ + PRECONDSTOPRACP(1437), + /** + * ROOTCERTIFICATEREMOVE = 1438; + */ + ROOTCERTIFICATEREMOVE(1438), + /** + * ONREQUESTPROBEUPLOAD = 1439; + */ + ONREQUESTPROBEUPLOAD(1439), + /** + * ROOTCERTIFICATEDOWNLOAD = 1440; + */ + ROOTCERTIFICATEDOWNLOAD(1440), + /** + * CONTRACTCERTIFICATEREMOVE = 1441; + */ + CONTRACTCERTIFICATEREMOVE(1441), + /** + * CONTRACTCERTIFICATEDOWNLOAD = 1442; + */ + CONTRACTCERTIFICATEDOWNLOAD(1442), + /** + * PROBECONFIGURATIONUPDATE = 1443; + */ + PROBECONFIGURATIONUPDATE(1443), + /** + * RDIAGDELETEECU = 1500; + */ + RDIAGDELETEECU(1500), + /** + * RDIAGSTATUSREPORT = 1501; + */ + RDIAGSTATUSREPORT(1501), + /** + * RDIAGEXECUTION = 1502; + */ + RDIAGEXECUTION(1502), + /** + * IMMOBILIZERCHALLENGE = 1600; + */ + IMMOBILIZERCHALLENGE(1600), + /** + * IMMOBILIZERSEARCHKEYLINE = 1610; + */ + IMMOBILIZERSEARCHKEYLINE(1610), + /** + * IMMOBILIZERRELEASEKEYLINE = 1620; + */ + IMMOBILIZERRELEASEKEYLINE(1620), + /** + * IMMOBILIZERLOCKKEYLINE = 1630; + */ + IMMOBILIZERLOCKKEYLINE(1630), + /** + * IMMOBILIZERLOCKVEHICLE = 1631; + */ + IMMOBILIZERLOCKVEHICLE(1631), + /** + * IMMOBILIZERRELEASEVEHICLE = 1621; + */ + IMMOBILIZERRELEASEVEHICLE(1621), + /** + * SETRENTALSIGNAL = 1700; + */ + SETRENTALSIGNAL(1700), + /** + * BLACKCHANNELDOWNLOAD = 1800; + */ + BLACKCHANNELDOWNLOAD(1800), + /** + * BLACKCHANNELUPLOAD = 1810; + */ + BLACKCHANNELUPLOAD(1810), + /** + * CONFIGURECSM = 1900; + */ + CONFIGURECSM(1900), + /** + * UPDATEVEHICLEINFO = 1901; + */ + UPDATEVEHICLEINFO(1901), + /** + * RELAYMESSAGETOCSM = 1902; + */ + RELAYMESSAGETOCSM(1902), + /** + * RELAYRENTALREQUESTTOCSB = 1903; + */ + RELAYRENTALREQUESTTOCSB(1903), + /** + * RTMDOWNLOADCONFIG = 2400; + */ + RTMDOWNLOADCONFIG(2400), + /** + * RTMREADCONFIG = 2410; + */ + RTMREADCONFIG(2410), + /** + * AVPACTIVATE = 2700; + */ + AVPACTIVATE(2700), + /** + * CHARGECONTROLCONFIGURE = 2800; + */ + CHARGECONTROLCONFIGURE(2800), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CommandType.class.getName()); + } + /** + * unknownCommandType = 0; + */ + public static final CommandType unknownCommandType = UNKNOWNCOMMANDTYPE; + /** + * doorsLock = 100; + */ + public static final CommandType doorsLock = DOORSLOCK; + /** + * doorsUnlock = 110; + */ + public static final CommandType doorsUnlock = DOORSUNLOCK; + /** + * trunkUnlock = 115; + */ + public static final CommandType trunkUnlock = TRUNKUNLOCK; + /** + * fuelflapUnlock = 116; + */ + public static final CommandType fuelflapUnlock = FUELFLAPUNLOCK; + /** + * chargeflapUnlock = 117; + */ + public static final CommandType chargeflapUnlock = CHARGEFLAPUNLOCK; + /** + * chargecouplerUnlock = 118; + */ + public static final CommandType chargecouplerUnlock = CHARGECOUPLERUNLOCK; + /** + * doorsPrepareRental = 120; + */ + public static final CommandType doorsPrepareRental = DOORSPREPARERENTAL; + /** + * doorsSecureVehicle = 130; + */ + public static final CommandType doorsSecureVehicle = DOORSSECUREVEHICLE; + /** + * auxheatStart = 300; + */ + public static final CommandType auxheatStart = AUXHEATSTART; + /** + * auxheatStop = 310; + */ + public static final CommandType auxheatStop = AUXHEATSTOP; + /** + * auxheatConfigure = 320; + */ + public static final CommandType auxheatConfigure = AUXHEATCONFIGURE; + /** + * temperatureConfigure = 350; + */ + public static final CommandType temperatureConfigure = TEMPERATURECONFIGURE; + /** + * weekprofileConfigure = 360; + */ + public static final CommandType weekprofileConfigure = WEEKPROFILECONFIGURE; + /** + * weekprofileV2Configure = 370; + */ + public static final CommandType weekprofileV2Configure = WEEKPROFILEV2CONFIGURE; + /** + * precondStart = 400; + */ + public static final CommandType precondStart = PRECONDSTART; + /** + * precondStop = 410; + */ + public static final CommandType precondStop = PRECONDSTOP; + /** + * precondConfigure = 420; + */ + public static final CommandType precondConfigure = PRECONDCONFIGURE; + /** + * precondConfigureSeats = 425; + */ + public static final CommandType precondConfigureSeats = PRECONDCONFIGURESEATS; + /** + * chargeoptConfigure = 430; + */ + public static final CommandType chargeoptConfigure = CHARGEOPTCONFIGURE; + /** + * chargeoptStart = 440; + */ + public static final CommandType chargeoptStart = CHARGEOPTSTART; + /** + * chargeoptStop = 450; + */ + public static final CommandType chargeoptStop = CHARGEOPTSTOP; + /** + * feedPoi = 500; + */ + public static final CommandType feedPoi = FEEDPOI; + /** + * feedFreetext = 510; + */ + public static final CommandType feedFreetext = FEEDFREETEXT; + /** + * engineStart = 550; + */ + public static final CommandType engineStart = ENGINESTART; + /** + * engineStop = 560; + */ + public static final CommandType engineStop = ENGINESTOP; + /** + * engineAvpstart = 570; + */ + public static final CommandType engineAvpstart = ENGINEAVPSTART; + /** + * tcuWakeup = 600; + */ + public static final CommandType tcuWakeup = TCUWAKEUP; + /** + * tcuSwUpdate = 610; + */ + public static final CommandType tcuSwUpdate = TCUSWUPDATE; + /** + * tcuRcsReset = 620; + */ + public static final CommandType tcuRcsReset = TCURCSRESET; + /** + * tcuInterrogation = 630; + */ + public static final CommandType tcuInterrogation = TCUINTERROGATION; + /** + * speedalertStart = 710; + */ + public static final CommandType speedalertStart = SPEEDALERTSTART; + /** + * speedalertStop = 720; + */ + public static final CommandType speedalertStop = SPEEDALERTSTOP; + /** + *
+       * (DEPRECATED)
+       * 
+ * + * flshStart = 750; + */ + public static final CommandType flshStart = FLSHSTART; + /** + *
+       * (DEPRECATED)
+       * 
+ * + * flshStop = 760; + */ + public static final CommandType flshStop = FLSHSTOP; + /** + * sigposStart = 770; + */ + public static final CommandType sigposStart = SIGPOSSTART; + /** + * contractConfigure = 800; + */ + public static final CommandType contractConfigure = CONTRACTCONFIGURE; + /** + * contractRemove = 810; + */ + public static final CommandType contractRemove = CONTRACTREMOVE; + /** + * rootConfigure = 820; + */ + public static final CommandType rootConfigure = ROOTCONFIGURE; + /** + * rootRemove = 830; + */ + public static final CommandType rootRemove = ROOTREMOVE; + /** + *
+       * reset tripcomp
+       * 
+ * + * tripcomp = 850; + */ + public static final CommandType tripcomp = TRIPCOMP; + /** + * maintenanceConfigure = 930; + */ + public static final CommandType maintenanceConfigure = MAINTENANCECONFIGURE; + /** + * maintenanceComputerOffset = 931; + */ + public static final CommandType maintenanceComputerOffset = MAINTENANCECOMPUTEROFFSET; + /** + * shorttestExecute = 935; + */ + public static final CommandType shorttestExecute = SHORTTESTEXECUTE; + /** + * serviceactivationConfigure = 940; + */ + public static final CommandType serviceactivationConfigure = SERVICEACTIVATIONCONFIGURE; + /** + * dc2ServiceactivationConfigure = 945; + */ + public static final CommandType dc2ServiceactivationConfigure = DC2SERVICEACTIVATIONCONFIGURE; + /** + *
+       * (test command)
+       * 
+ * + * dc2RawDownload = 950; + */ + public static final CommandType dc2RawDownload = DC2RAWDOWNLOAD; + /** + *
+       * (DC2+)
+       * 
+ * + * applicationConfiguration = 955; + */ + public static final CommandType applicationConfiguration = APPLICATIONCONFIGURATION; + /** + *
+       * (test command)
+       * 
+ * + * dc2StartTracking = 960; + */ + public static final CommandType dc2StartTracking = DC2STARTTRACKING; + /** + * atpSequence = 990; + */ + public static final CommandType atpSequence = ATPSEQUENCE; + /** + * theftalarmToggleInterior = 1000; + */ + public static final CommandType theftalarmToggleInterior = THEFTALARMTOGGLEINTERIOR; + /** + * theftalarmToggleTow = 1010; + */ + public static final CommandType theftalarmToggleTow = THEFTALARMTOGGLETOW; + /** + * theftalarmSelectInteriorTow = 1020; + */ + public static final CommandType theftalarmSelectInteriorTow = THEFTALARMSELECTINTERIORTOW; + /** + * theftalarmDeselectInteriorTow = 1030; + */ + public static final CommandType theftalarmDeselectInteriorTow = THEFTALARMDESELECTINTERIORTOW; + /** + * theftalarmStop = 1040; + */ + public static final CommandType theftalarmStop = THEFTALARMSTOP; + /** + * windowOpen = 1100; + */ + public static final CommandType windowOpen = WINDOWOPEN; + /** + * windowClose = 1110; + */ + public static final CommandType windowClose = WINDOWCLOSE; + /** + * windowVentilate = 1120; + */ + public static final CommandType windowVentilate = WINDOWVENTILATE; + /** + * windowMove = 1121; + */ + public static final CommandType windowMove = WINDOWMOVE; + /** + * roofOpen = 1130; + */ + public static final CommandType roofOpen = ROOFOPEN; + /** + * roofClose = 1140; + */ + public static final CommandType roofClose = ROOFCLOSE; + /** + * roofLift = 1150; + */ + public static final CommandType roofLift = ROOFLIFT; + /** + * roofMove = 1151; + */ + public static final CommandType roofMove = ROOFMOVE; + /** + * batteryMaxsoc = 2000; + */ + public static final CommandType batteryMaxsoc = BATTERYMAXSOC; + /** + * batteryChargeprogram = 2010; + */ + public static final CommandType batteryChargeprogram = BATTERYCHARGEPROGRAM; + /** + * chargeprogramconfigure = 2020; + */ + public static final CommandType chargeprogramconfigure = CHARGEPROGRAMCONFIGURE; + /** + * onboardfencesCreate = 2100; + */ + public static final CommandType onboardfencesCreate = ONBOARDFENCESCREATE; + /** + * onboardfencesUpdate = 2110; + */ + public static final CommandType onboardfencesUpdate = ONBOARDFENCESUPDATE; + /** + * onboardfencesDelete = 2120; + */ + public static final CommandType onboardfencesDelete = ONBOARDFENCESDELETE; + /** + * speedfencesCreate = 2200; + */ + public static final CommandType speedfencesCreate = SPEEDFENCESCREATE; + /** + * speedfencesUpdate = 2210; + */ + public static final CommandType speedfencesUpdate = SPEEDFENCESUPDATE; + /** + * speedfencesDelete = 2220; + */ + public static final CommandType speedfencesDelete = SPEEDFENCESDELETE; + /** + * chargingtariffsCreate = 2300; + */ + public static final CommandType chargingtariffsCreate = CHARGINGTARIFFSCREATE; + /** + * chargingtariffsUpdate = 2310; + */ + public static final CommandType chargingtariffsUpdate = CHARGINGTARIFFSUPDATE; + /** + * chargingtariffsDelete = 2320; + */ + public static final CommandType chargingtariffsDelete = CHARGINGTARIFFSDELETE; + /** + * theftalarmstart = 2500; + */ + public static final CommandType theftalarmstart = THEFTALARMSTART; + /** + * theftalarmselectinterior = 2510; + */ + public static final CommandType theftalarmselectinterior = THEFTALARMSELECTINTERIOR; + /** + * theftalarmdeselectinterior = 2520; + */ + public static final CommandType theftalarmdeselectinterior = THEFTALARMDESELECTINTERIOR; + /** + * theftalarmselecttow = 2530; + */ + public static final CommandType theftalarmselecttow = THEFTALARMSELECTTOW; + /** + * theftalarmdeselecttow = 2540; + */ + public static final CommandType theftalarmdeselecttow = THEFTALARMDESELECTTOW; + /** + * theftalarmselectdamagedetection = 2550; + */ + public static final CommandType theftalarmselectdamagedetection = THEFTALARMSELECTDAMAGEDETECTION; + /** + * theftalarmdeselectdamagedetection = 2560; + */ + public static final CommandType theftalarmdeselectdamagedetection = THEFTALARMDESELECTDAMAGEDETECTION; + /** + * theftalarmconfirmdamagedetection = 2570; + */ + public static final CommandType theftalarmconfirmdamagedetection = THEFTALARMCONFIRMDAMAGEDETECTION; + /** + * mecall2start = 2600; + */ + public static final CommandType mecall2start = MECALL2START; + /** + * udxTriggerSynchronization = 1200; + */ + public static final CommandType udxTriggerSynchronization = UDXTRIGGERSYNCHRONIZATION; + /** + * udxActiveUserProfile = 1210; + */ + public static final CommandType udxActiveUserProfile = UDXACTIVEUSERPROFILE; + /** + * udxResetUserData = 1220; + */ + public static final CommandType udxResetUserData = UDXRESETUSERDATA; + /** + * userProfSynch = 1230; + */ + public static final CommandType userProfSynch = USERPROFSYNCH; + /** + * userDataReset = 1240; + */ + public static final CommandType userDataReset = USERDATARESET; + /** + * profActivationSnap = 1250; + */ + public static final CommandType profActivationSnap = PROFACTIVATIONSNAP; + /** + * profActivationDirect = 1255; + */ + public static final CommandType profActivationDirect = PROFACTIVATIONDIRECT; + /** + * softwareUpdate = 1260; + */ + public static final CommandType softwareUpdate = SOFTWAREUPDATE; + /** + * pushNotification = 1270; + */ + public static final CommandType pushNotification = PUSHNOTIFICATION; + /** + * mecallcommand = 1310; + */ + public static final CommandType mecallcommand = MECALLCOMMAND; + /** + * precondStartRcs = 1400; + */ + public static final CommandType precondStartRcs = PRECONDSTARTRCS; + /** + * precondStopRcs = 1410; + */ + public static final CommandType precondStopRcs = PRECONDSTOPRCS; + /** + * precondConfigureRcs = 1420; + */ + public static final CommandType precondConfigureRcs = PRECONDCONFIGURERCS; + /** + * tcuConfigure = 1430; + */ + public static final CommandType tcuConfigure = TCUCONFIGURE; + /** + * edisonServiceActivation = 1431; + */ + public static final CommandType edisonServiceActivation = EDISONSERVICEACTIVATION; + /** + * testSequence = 1432; + */ + public static final CommandType testSequence = TESTSEQUENCE; + /** + * precondConfigureRacp = 1433; + */ + public static final CommandType precondConfigureRacp = PRECONDCONFIGURERACP; + /** + * chargeoptConfigureRacp = 1434; + */ + public static final CommandType chargeoptConfigureRacp = CHARGEOPTCONFIGURERACP; + /** + * tariffTableDownload = 1435; + */ + public static final CommandType tariffTableDownload = TARIFFTABLEDOWNLOAD; + /** + * precondStartRacp = 1436; + */ + public static final CommandType precondStartRacp = PRECONDSTARTRACP; + /** + * precondStopRacp = 1437; + */ + public static final CommandType precondStopRacp = PRECONDSTOPRACP; + /** + * rootCertificateRemove = 1438; + */ + public static final CommandType rootCertificateRemove = ROOTCERTIFICATEREMOVE; + /** + * onRequestProbeUpload = 1439; + */ + public static final CommandType onRequestProbeUpload = ONREQUESTPROBEUPLOAD; + /** + * rootCertificateDownload = 1440; + */ + public static final CommandType rootCertificateDownload = ROOTCERTIFICATEDOWNLOAD; + /** + * contractCertificateRemove = 1441; + */ + public static final CommandType contractCertificateRemove = CONTRACTCERTIFICATEREMOVE; + /** + * contractCertificateDownload = 1442; + */ + public static final CommandType contractCertificateDownload = CONTRACTCERTIFICATEDOWNLOAD; + /** + * probeConfigurationUpdate = 1443; + */ + public static final CommandType probeConfigurationUpdate = PROBECONFIGURATIONUPDATE; + /** + * rdiagDeleteEcu = 1500; + */ + public static final CommandType rdiagDeleteEcu = RDIAGDELETEECU; + /** + * rdiagStatusReport = 1501; + */ + public static final CommandType rdiagStatusReport = RDIAGSTATUSREPORT; + /** + * rdiagExecution = 1502; + */ + public static final CommandType rdiagExecution = RDIAGEXECUTION; + /** + * immobilizerChallenge = 1600; + */ + public static final CommandType immobilizerChallenge = IMMOBILIZERCHALLENGE; + /** + * immobilizerSearchKeyline = 1610; + */ + public static final CommandType immobilizerSearchKeyline = IMMOBILIZERSEARCHKEYLINE; + /** + * immobilizerReleaseKeyline = 1620; + */ + public static final CommandType immobilizerReleaseKeyline = IMMOBILIZERRELEASEKEYLINE; + /** + * immobilizerLockKeyline = 1630; + */ + public static final CommandType immobilizerLockKeyline = IMMOBILIZERLOCKKEYLINE; + /** + * immobilizerLockVehicle = 1631; + */ + public static final CommandType immobilizerLockVehicle = IMMOBILIZERLOCKVEHICLE; + /** + * immobilizerReleaseVehicle = 1621; + */ + public static final CommandType immobilizerReleaseVehicle = IMMOBILIZERRELEASEVEHICLE; + /** + * setRentalSignal = 1700; + */ + public static final CommandType setRentalSignal = SETRENTALSIGNAL; + /** + * blackchannelDownload = 1800; + */ + public static final CommandType blackchannelDownload = BLACKCHANNELDOWNLOAD; + /** + * blackchannelUpload = 1810; + */ + public static final CommandType blackchannelUpload = BLACKCHANNELUPLOAD; + /** + * configurecsm = 1900; + */ + public static final CommandType configurecsm = CONFIGURECSM; + /** + * updatevehicleinfo = 1901; + */ + public static final CommandType updatevehicleinfo = UPDATEVEHICLEINFO; + /** + * relaymessagetocsm = 1902; + */ + public static final CommandType relaymessagetocsm = RELAYMESSAGETOCSM; + /** + * relayrentalrequesttocsb = 1903; + */ + public static final CommandType relayrentalrequesttocsb = RELAYRENTALREQUESTTOCSB; + /** + * rtmDownloadConfig = 2400; + */ + public static final CommandType rtmDownloadConfig = RTMDOWNLOADCONFIG; + /** + * rtmReadConfig = 2410; + */ + public static final CommandType rtmReadConfig = RTMREADCONFIG; + /** + * avpActivate = 2700; + */ + public static final CommandType avpActivate = AVPACTIVATE; + /** + * chargecontrolconfigure = 2800; + */ + public static final CommandType chargecontrolconfigure = CHARGECONTROLCONFIGURE; + /** + * UNKNOWNCOMMANDTYPE = 0; + */ + public static final int UNKNOWNCOMMANDTYPE_VALUE = 0; + /** + * DOORSLOCK = 100; + */ + public static final int DOORSLOCK_VALUE = 100; + /** + * DOORSUNLOCK = 110; + */ + public static final int DOORSUNLOCK_VALUE = 110; + /** + * TRUNKUNLOCK = 115; + */ + public static final int TRUNKUNLOCK_VALUE = 115; + /** + * FUELFLAPUNLOCK = 116; + */ + public static final int FUELFLAPUNLOCK_VALUE = 116; + /** + * CHARGEFLAPUNLOCK = 117; + */ + public static final int CHARGEFLAPUNLOCK_VALUE = 117; + /** + * CHARGECOUPLERUNLOCK = 118; + */ + public static final int CHARGECOUPLERUNLOCK_VALUE = 118; + /** + * DOORSPREPARERENTAL = 120; + */ + public static final int DOORSPREPARERENTAL_VALUE = 120; + /** + * DOORSSECUREVEHICLE = 130; + */ + public static final int DOORSSECUREVEHICLE_VALUE = 130; + /** + * AUXHEATSTART = 300; + */ + public static final int AUXHEATSTART_VALUE = 300; + /** + * AUXHEATSTOP = 310; + */ + public static final int AUXHEATSTOP_VALUE = 310; + /** + * AUXHEATCONFIGURE = 320; + */ + public static final int AUXHEATCONFIGURE_VALUE = 320; + /** + * TEMPERATURECONFIGURE = 350; + */ + public static final int TEMPERATURECONFIGURE_VALUE = 350; + /** + * WEEKPROFILECONFIGURE = 360; + */ + public static final int WEEKPROFILECONFIGURE_VALUE = 360; + /** + * WEEKPROFILEV2CONFIGURE = 370; + */ + public static final int WEEKPROFILEV2CONFIGURE_VALUE = 370; + /** + * PRECONDSTART = 400; + */ + public static final int PRECONDSTART_VALUE = 400; + /** + * PRECONDSTOP = 410; + */ + public static final int PRECONDSTOP_VALUE = 410; + /** + * PRECONDCONFIGURE = 420; + */ + public static final int PRECONDCONFIGURE_VALUE = 420; + /** + * PRECONDCONFIGURESEATS = 425; + */ + public static final int PRECONDCONFIGURESEATS_VALUE = 425; + /** + * CHARGEOPTCONFIGURE = 430; + */ + public static final int CHARGEOPTCONFIGURE_VALUE = 430; + /** + * CHARGEOPTSTART = 440; + */ + public static final int CHARGEOPTSTART_VALUE = 440; + /** + * CHARGEOPTSTOP = 450; + */ + public static final int CHARGEOPTSTOP_VALUE = 450; + /** + * FEEDPOI = 500; + */ + public static final int FEEDPOI_VALUE = 500; + /** + * FEEDFREETEXT = 510; + */ + public static final int FEEDFREETEXT_VALUE = 510; + /** + * ENGINESTART = 550; + */ + public static final int ENGINESTART_VALUE = 550; + /** + * ENGINESTOP = 560; + */ + public static final int ENGINESTOP_VALUE = 560; + /** + * ENGINEAVPSTART = 570; + */ + public static final int ENGINEAVPSTART_VALUE = 570; + /** + * TCUWAKEUP = 600; + */ + public static final int TCUWAKEUP_VALUE = 600; + /** + * TCUSWUPDATE = 610; + */ + public static final int TCUSWUPDATE_VALUE = 610; + /** + * TCURCSRESET = 620; + */ + public static final int TCURCSRESET_VALUE = 620; + /** + * TCUINTERROGATION = 630; + */ + public static final int TCUINTERROGATION_VALUE = 630; + /** + * SPEEDALERTSTART = 710; + */ + public static final int SPEEDALERTSTART_VALUE = 710; + /** + * SPEEDALERTSTOP = 720; + */ + public static final int SPEEDALERTSTOP_VALUE = 720; + /** + *
+       * (DEPRECATED)
+       * 
+ * + * FLSHSTART = 750; + */ + public static final int FLSHSTART_VALUE = 750; + /** + *
+       * (DEPRECATED)
+       * 
+ * + * FLSHSTOP = 760; + */ + public static final int FLSHSTOP_VALUE = 760; + /** + * SIGPOSSTART = 770; + */ + public static final int SIGPOSSTART_VALUE = 770; + /** + * CONTRACTCONFIGURE = 800; + */ + public static final int CONTRACTCONFIGURE_VALUE = 800; + /** + * CONTRACTREMOVE = 810; + */ + public static final int CONTRACTREMOVE_VALUE = 810; + /** + * ROOTCONFIGURE = 820; + */ + public static final int ROOTCONFIGURE_VALUE = 820; + /** + * ROOTREMOVE = 830; + */ + public static final int ROOTREMOVE_VALUE = 830; + /** + *
+       * RESET TRIPCOMP
+       * 
+ * + * TRIPCOMP = 850; + */ + public static final int TRIPCOMP_VALUE = 850; + /** + * MAINTENANCECONFIGURE = 930; + */ + public static final int MAINTENANCECONFIGURE_VALUE = 930; + /** + * MAINTENANCECOMPUTEROFFSET = 931; + */ + public static final int MAINTENANCECOMPUTEROFFSET_VALUE = 931; + /** + * SHORTTESTEXECUTE = 935; + */ + public static final int SHORTTESTEXECUTE_VALUE = 935; + /** + * SERVICEACTIVATIONCONFIGURE = 940; + */ + public static final int SERVICEACTIVATIONCONFIGURE_VALUE = 940; + /** + * DC2SERVICEACTIVATIONCONFIGURE = 945; + */ + public static final int DC2SERVICEACTIVATIONCONFIGURE_VALUE = 945; + /** + *
+       * (TEST COMMAND)
+       * 
+ * + * DC2RAWDOWNLOAD = 950; + */ + public static final int DC2RAWDOWNLOAD_VALUE = 950; + /** + *
+       * (DC2+)
+       * 
+ * + * APPLICATIONCONFIGURATION = 955; + */ + public static final int APPLICATIONCONFIGURATION_VALUE = 955; + /** + *
+       * (TEST COMMAND)
+       * 
+ * + * DC2STARTTRACKING = 960; + */ + public static final int DC2STARTTRACKING_VALUE = 960; + /** + * ATPSEQUENCE = 990; + */ + public static final int ATPSEQUENCE_VALUE = 990; + /** + * THEFTALARMTOGGLEINTERIOR = 1000; + */ + public static final int THEFTALARMTOGGLEINTERIOR_VALUE = 1000; + /** + * THEFTALARMTOGGLETOW = 1010; + */ + public static final int THEFTALARMTOGGLETOW_VALUE = 1010; + /** + * THEFTALARMSELECTINTERIORTOW = 1020; + */ + public static final int THEFTALARMSELECTINTERIORTOW_VALUE = 1020; + /** + * THEFTALARMDESELECTINTERIORTOW = 1030; + */ + public static final int THEFTALARMDESELECTINTERIORTOW_VALUE = 1030; + /** + * THEFTALARMSTOP = 1040; + */ + public static final int THEFTALARMSTOP_VALUE = 1040; + /** + * WINDOWOPEN = 1100; + */ + public static final int WINDOWOPEN_VALUE = 1100; + /** + * WINDOWCLOSE = 1110; + */ + public static final int WINDOWCLOSE_VALUE = 1110; + /** + * WINDOWVENTILATE = 1120; + */ + public static final int WINDOWVENTILATE_VALUE = 1120; + /** + * WINDOWMOVE = 1121; + */ + public static final int WINDOWMOVE_VALUE = 1121; + /** + * ROOFOPEN = 1130; + */ + public static final int ROOFOPEN_VALUE = 1130; + /** + * ROOFCLOSE = 1140; + */ + public static final int ROOFCLOSE_VALUE = 1140; + /** + * ROOFLIFT = 1150; + */ + public static final int ROOFLIFT_VALUE = 1150; + /** + * ROOFMOVE = 1151; + */ + public static final int ROOFMOVE_VALUE = 1151; + /** + * BATTERYMAXSOC = 2000; + */ + public static final int BATTERYMAXSOC_VALUE = 2000; + /** + * BATTERYCHARGEPROGRAM = 2010; + */ + public static final int BATTERYCHARGEPROGRAM_VALUE = 2010; + /** + * CHARGEPROGRAMCONFIGURE = 2020; + */ + public static final int CHARGEPROGRAMCONFIGURE_VALUE = 2020; + /** + * ONBOARDFENCESCREATE = 2100; + */ + public static final int ONBOARDFENCESCREATE_VALUE = 2100; + /** + * ONBOARDFENCESUPDATE = 2110; + */ + public static final int ONBOARDFENCESUPDATE_VALUE = 2110; + /** + * ONBOARDFENCESDELETE = 2120; + */ + public static final int ONBOARDFENCESDELETE_VALUE = 2120; + /** + * SPEEDFENCESCREATE = 2200; + */ + public static final int SPEEDFENCESCREATE_VALUE = 2200; + /** + * SPEEDFENCESUPDATE = 2210; + */ + public static final int SPEEDFENCESUPDATE_VALUE = 2210; + /** + * SPEEDFENCESDELETE = 2220; + */ + public static final int SPEEDFENCESDELETE_VALUE = 2220; + /** + * CHARGINGTARIFFSCREATE = 2300; + */ + public static final int CHARGINGTARIFFSCREATE_VALUE = 2300; + /** + * CHARGINGTARIFFSUPDATE = 2310; + */ + public static final int CHARGINGTARIFFSUPDATE_VALUE = 2310; + /** + * CHARGINGTARIFFSDELETE = 2320; + */ + public static final int CHARGINGTARIFFSDELETE_VALUE = 2320; + /** + * THEFTALARMSTART = 2500; + */ + public static final int THEFTALARMSTART_VALUE = 2500; + /** + * THEFTALARMSELECTINTERIOR = 2510; + */ + public static final int THEFTALARMSELECTINTERIOR_VALUE = 2510; + /** + * THEFTALARMDESELECTINTERIOR = 2520; + */ + public static final int THEFTALARMDESELECTINTERIOR_VALUE = 2520; + /** + * THEFTALARMSELECTTOW = 2530; + */ + public static final int THEFTALARMSELECTTOW_VALUE = 2530; + /** + * THEFTALARMDESELECTTOW = 2540; + */ + public static final int THEFTALARMDESELECTTOW_VALUE = 2540; + /** + * THEFTALARMSELECTDAMAGEDETECTION = 2550; + */ + public static final int THEFTALARMSELECTDAMAGEDETECTION_VALUE = 2550; + /** + * THEFTALARMDESELECTDAMAGEDETECTION = 2560; + */ + public static final int THEFTALARMDESELECTDAMAGEDETECTION_VALUE = 2560; + /** + * THEFTALARMCONFIRMDAMAGEDETECTION = 2570; + */ + public static final int THEFTALARMCONFIRMDAMAGEDETECTION_VALUE = 2570; + /** + * MECALL2START = 2600; + */ + public static final int MECALL2START_VALUE = 2600; + /** + * UDXTRIGGERSYNCHRONIZATION = 1200; + */ + public static final int UDXTRIGGERSYNCHRONIZATION_VALUE = 1200; + /** + * UDXACTIVEUSERPROFILE = 1210; + */ + public static final int UDXACTIVEUSERPROFILE_VALUE = 1210; + /** + * UDXRESETUSERDATA = 1220; + */ + public static final int UDXRESETUSERDATA_VALUE = 1220; + /** + * USERPROFSYNCH = 1230; + */ + public static final int USERPROFSYNCH_VALUE = 1230; + /** + * USERDATARESET = 1240; + */ + public static final int USERDATARESET_VALUE = 1240; + /** + * PROFACTIVATIONSNAP = 1250; + */ + public static final int PROFACTIVATIONSNAP_VALUE = 1250; + /** + * PROFACTIVATIONDIRECT = 1255; + */ + public static final int PROFACTIVATIONDIRECT_VALUE = 1255; + /** + * SOFTWAREUPDATE = 1260; + */ + public static final int SOFTWAREUPDATE_VALUE = 1260; + /** + * PUSHNOTIFICATION = 1270; + */ + public static final int PUSHNOTIFICATION_VALUE = 1270; + /** + * MECALLCOMMAND = 1310; + */ + public static final int MECALLCOMMAND_VALUE = 1310; + /** + * PRECONDSTARTRCS = 1400; + */ + public static final int PRECONDSTARTRCS_VALUE = 1400; + /** + * PRECONDSTOPRCS = 1410; + */ + public static final int PRECONDSTOPRCS_VALUE = 1410; + /** + * PRECONDCONFIGURERCS = 1420; + */ + public static final int PRECONDCONFIGURERCS_VALUE = 1420; + /** + * TCUCONFIGURE = 1430; + */ + public static final int TCUCONFIGURE_VALUE = 1430; + /** + * EDISONSERVICEACTIVATION = 1431; + */ + public static final int EDISONSERVICEACTIVATION_VALUE = 1431; + /** + * TESTSEQUENCE = 1432; + */ + public static final int TESTSEQUENCE_VALUE = 1432; + /** + * PRECONDCONFIGURERACP = 1433; + */ + public static final int PRECONDCONFIGURERACP_VALUE = 1433; + /** + * CHARGEOPTCONFIGURERACP = 1434; + */ + public static final int CHARGEOPTCONFIGURERACP_VALUE = 1434; + /** + * TARIFFTABLEDOWNLOAD = 1435; + */ + public static final int TARIFFTABLEDOWNLOAD_VALUE = 1435; + /** + * PRECONDSTARTRACP = 1436; + */ + public static final int PRECONDSTARTRACP_VALUE = 1436; + /** + * PRECONDSTOPRACP = 1437; + */ + public static final int PRECONDSTOPRACP_VALUE = 1437; + /** + * ROOTCERTIFICATEREMOVE = 1438; + */ + public static final int ROOTCERTIFICATEREMOVE_VALUE = 1438; + /** + * ONREQUESTPROBEUPLOAD = 1439; + */ + public static final int ONREQUESTPROBEUPLOAD_VALUE = 1439; + /** + * ROOTCERTIFICATEDOWNLOAD = 1440; + */ + public static final int ROOTCERTIFICATEDOWNLOAD_VALUE = 1440; + /** + * CONTRACTCERTIFICATEREMOVE = 1441; + */ + public static final int CONTRACTCERTIFICATEREMOVE_VALUE = 1441; + /** + * CONTRACTCERTIFICATEDOWNLOAD = 1442; + */ + public static final int CONTRACTCERTIFICATEDOWNLOAD_VALUE = 1442; + /** + * PROBECONFIGURATIONUPDATE = 1443; + */ + public static final int PROBECONFIGURATIONUPDATE_VALUE = 1443; + /** + * RDIAGDELETEECU = 1500; + */ + public static final int RDIAGDELETEECU_VALUE = 1500; + /** + * RDIAGSTATUSREPORT = 1501; + */ + public static final int RDIAGSTATUSREPORT_VALUE = 1501; + /** + * RDIAGEXECUTION = 1502; + */ + public static final int RDIAGEXECUTION_VALUE = 1502; + /** + * IMMOBILIZERCHALLENGE = 1600; + */ + public static final int IMMOBILIZERCHALLENGE_VALUE = 1600; + /** + * IMMOBILIZERSEARCHKEYLINE = 1610; + */ + public static final int IMMOBILIZERSEARCHKEYLINE_VALUE = 1610; + /** + * IMMOBILIZERRELEASEKEYLINE = 1620; + */ + public static final int IMMOBILIZERRELEASEKEYLINE_VALUE = 1620; + /** + * IMMOBILIZERLOCKKEYLINE = 1630; + */ + public static final int IMMOBILIZERLOCKKEYLINE_VALUE = 1630; + /** + * IMMOBILIZERLOCKVEHICLE = 1631; + */ + public static final int IMMOBILIZERLOCKVEHICLE_VALUE = 1631; + /** + * IMMOBILIZERRELEASEVEHICLE = 1621; + */ + public static final int IMMOBILIZERRELEASEVEHICLE_VALUE = 1621; + /** + * SETRENTALSIGNAL = 1700; + */ + public static final int SETRENTALSIGNAL_VALUE = 1700; + /** + * BLACKCHANNELDOWNLOAD = 1800; + */ + public static final int BLACKCHANNELDOWNLOAD_VALUE = 1800; + /** + * BLACKCHANNELUPLOAD = 1810; + */ + public static final int BLACKCHANNELUPLOAD_VALUE = 1810; + /** + * CONFIGURECSM = 1900; + */ + public static final int CONFIGURECSM_VALUE = 1900; + /** + * UPDATEVEHICLEINFO = 1901; + */ + public static final int UPDATEVEHICLEINFO_VALUE = 1901; + /** + * RELAYMESSAGETOCSM = 1902; + */ + public static final int RELAYMESSAGETOCSM_VALUE = 1902; + /** + * RELAYRENTALREQUESTTOCSB = 1903; + */ + public static final int RELAYRENTALREQUESTTOCSB_VALUE = 1903; + /** + * RTMDOWNLOADCONFIG = 2400; + */ + public static final int RTMDOWNLOADCONFIG_VALUE = 2400; + /** + * RTMREADCONFIG = 2410; + */ + public static final int RTMREADCONFIG_VALUE = 2410; + /** + * AVPACTIVATE = 2700; + */ + public static final int AVPACTIVATE_VALUE = 2700; + /** + * CHARGECONTROLCONFIGURE = 2800; + */ + public static final int CHARGECONTROLCONFIGURE_VALUE = 2800; + /** + * unknownCommandType = 0; + */ + public static final int unknownCommandType_VALUE = 0; + /** + * doorsLock = 100; + */ + public static final int doorsLock_VALUE = 100; + /** + * doorsUnlock = 110; + */ + public static final int doorsUnlock_VALUE = 110; + /** + * trunkUnlock = 115; + */ + public static final int trunkUnlock_VALUE = 115; + /** + * fuelflapUnlock = 116; + */ + public static final int fuelflapUnlock_VALUE = 116; + /** + * chargeflapUnlock = 117; + */ + public static final int chargeflapUnlock_VALUE = 117; + /** + * chargecouplerUnlock = 118; + */ + public static final int chargecouplerUnlock_VALUE = 118; + /** + * doorsPrepareRental = 120; + */ + public static final int doorsPrepareRental_VALUE = 120; + /** + * doorsSecureVehicle = 130; + */ + public static final int doorsSecureVehicle_VALUE = 130; + /** + * auxheatStart = 300; + */ + public static final int auxheatStart_VALUE = 300; + /** + * auxheatStop = 310; + */ + public static final int auxheatStop_VALUE = 310; + /** + * auxheatConfigure = 320; + */ + public static final int auxheatConfigure_VALUE = 320; + /** + * temperatureConfigure = 350; + */ + public static final int temperatureConfigure_VALUE = 350; + /** + * weekprofileConfigure = 360; + */ + public static final int weekprofileConfigure_VALUE = 360; + /** + * weekprofileV2Configure = 370; + */ + public static final int weekprofileV2Configure_VALUE = 370; + /** + * precondStart = 400; + */ + public static final int precondStart_VALUE = 400; + /** + * precondStop = 410; + */ + public static final int precondStop_VALUE = 410; + /** + * precondConfigure = 420; + */ + public static final int precondConfigure_VALUE = 420; + /** + * precondConfigureSeats = 425; + */ + public static final int precondConfigureSeats_VALUE = 425; + /** + * chargeoptConfigure = 430; + */ + public static final int chargeoptConfigure_VALUE = 430; + /** + * chargeoptStart = 440; + */ + public static final int chargeoptStart_VALUE = 440; + /** + * chargeoptStop = 450; + */ + public static final int chargeoptStop_VALUE = 450; + /** + * feedPoi = 500; + */ + public static final int feedPoi_VALUE = 500; + /** + * feedFreetext = 510; + */ + public static final int feedFreetext_VALUE = 510; + /** + * engineStart = 550; + */ + public static final int engineStart_VALUE = 550; + /** + * engineStop = 560; + */ + public static final int engineStop_VALUE = 560; + /** + * engineAvpstart = 570; + */ + public static final int engineAvpstart_VALUE = 570; + /** + * tcuWakeup = 600; + */ + public static final int tcuWakeup_VALUE = 600; + /** + * tcuSwUpdate = 610; + */ + public static final int tcuSwUpdate_VALUE = 610; + /** + * tcuRcsReset = 620; + */ + public static final int tcuRcsReset_VALUE = 620; + /** + * tcuInterrogation = 630; + */ + public static final int tcuInterrogation_VALUE = 630; + /** + * speedalertStart = 710; + */ + public static final int speedalertStart_VALUE = 710; + /** + * speedalertStop = 720; + */ + public static final int speedalertStop_VALUE = 720; + /** + *
+       * (DEPRECATED)
+       * 
+ * + * flshStart = 750; + */ + public static final int flshStart_VALUE = 750; + /** + *
+       * (DEPRECATED)
+       * 
+ * + * flshStop = 760; + */ + public static final int flshStop_VALUE = 760; + /** + * sigposStart = 770; + */ + public static final int sigposStart_VALUE = 770; + /** + * contractConfigure = 800; + */ + public static final int contractConfigure_VALUE = 800; + /** + * contractRemove = 810; + */ + public static final int contractRemove_VALUE = 810; + /** + * rootConfigure = 820; + */ + public static final int rootConfigure_VALUE = 820; + /** + * rootRemove = 830; + */ + public static final int rootRemove_VALUE = 830; + /** + *
+       * reset tripcomp
+       * 
+ * + * tripcomp = 850; + */ + public static final int tripcomp_VALUE = 850; + /** + * maintenanceConfigure = 930; + */ + public static final int maintenanceConfigure_VALUE = 930; + /** + * maintenanceComputerOffset = 931; + */ + public static final int maintenanceComputerOffset_VALUE = 931; + /** + * shorttestExecute = 935; + */ + public static final int shorttestExecute_VALUE = 935; + /** + * serviceactivationConfigure = 940; + */ + public static final int serviceactivationConfigure_VALUE = 940; + /** + * dc2ServiceactivationConfigure = 945; + */ + public static final int dc2ServiceactivationConfigure_VALUE = 945; + /** + *
+       * (test command)
+       * 
+ * + * dc2RawDownload = 950; + */ + public static final int dc2RawDownload_VALUE = 950; + /** + *
+       * (DC2+)
+       * 
+ * + * applicationConfiguration = 955; + */ + public static final int applicationConfiguration_VALUE = 955; + /** + *
+       * (test command)
+       * 
+ * + * dc2StartTracking = 960; + */ + public static final int dc2StartTracking_VALUE = 960; + /** + * atpSequence = 990; + */ + public static final int atpSequence_VALUE = 990; + /** + * theftalarmToggleInterior = 1000; + */ + public static final int theftalarmToggleInterior_VALUE = 1000; + /** + * theftalarmToggleTow = 1010; + */ + public static final int theftalarmToggleTow_VALUE = 1010; + /** + * theftalarmSelectInteriorTow = 1020; + */ + public static final int theftalarmSelectInteriorTow_VALUE = 1020; + /** + * theftalarmDeselectInteriorTow = 1030; + */ + public static final int theftalarmDeselectInteriorTow_VALUE = 1030; + /** + * theftalarmStop = 1040; + */ + public static final int theftalarmStop_VALUE = 1040; + /** + * windowOpen = 1100; + */ + public static final int windowOpen_VALUE = 1100; + /** + * windowClose = 1110; + */ + public static final int windowClose_VALUE = 1110; + /** + * windowVentilate = 1120; + */ + public static final int windowVentilate_VALUE = 1120; + /** + * windowMove = 1121; + */ + public static final int windowMove_VALUE = 1121; + /** + * roofOpen = 1130; + */ + public static final int roofOpen_VALUE = 1130; + /** + * roofClose = 1140; + */ + public static final int roofClose_VALUE = 1140; + /** + * roofLift = 1150; + */ + public static final int roofLift_VALUE = 1150; + /** + * roofMove = 1151; + */ + public static final int roofMove_VALUE = 1151; + /** + * batteryMaxsoc = 2000; + */ + public static final int batteryMaxsoc_VALUE = 2000; + /** + * batteryChargeprogram = 2010; + */ + public static final int batteryChargeprogram_VALUE = 2010; + /** + * chargeprogramconfigure = 2020; + */ + public static final int chargeprogramconfigure_VALUE = 2020; + /** + * onboardfencesCreate = 2100; + */ + public static final int onboardfencesCreate_VALUE = 2100; + /** + * onboardfencesUpdate = 2110; + */ + public static final int onboardfencesUpdate_VALUE = 2110; + /** + * onboardfencesDelete = 2120; + */ + public static final int onboardfencesDelete_VALUE = 2120; + /** + * speedfencesCreate = 2200; + */ + public static final int speedfencesCreate_VALUE = 2200; + /** + * speedfencesUpdate = 2210; + */ + public static final int speedfencesUpdate_VALUE = 2210; + /** + * speedfencesDelete = 2220; + */ + public static final int speedfencesDelete_VALUE = 2220; + /** + * chargingtariffsCreate = 2300; + */ + public static final int chargingtariffsCreate_VALUE = 2300; + /** + * chargingtariffsUpdate = 2310; + */ + public static final int chargingtariffsUpdate_VALUE = 2310; + /** + * chargingtariffsDelete = 2320; + */ + public static final int chargingtariffsDelete_VALUE = 2320; + /** + * theftalarmstart = 2500; + */ + public static final int theftalarmstart_VALUE = 2500; + /** + * theftalarmselectinterior = 2510; + */ + public static final int theftalarmselectinterior_VALUE = 2510; + /** + * theftalarmdeselectinterior = 2520; + */ + public static final int theftalarmdeselectinterior_VALUE = 2520; + /** + * theftalarmselecttow = 2530; + */ + public static final int theftalarmselecttow_VALUE = 2530; + /** + * theftalarmdeselecttow = 2540; + */ + public static final int theftalarmdeselecttow_VALUE = 2540; + /** + * theftalarmselectdamagedetection = 2550; + */ + public static final int theftalarmselectdamagedetection_VALUE = 2550; + /** + * theftalarmdeselectdamagedetection = 2560; + */ + public static final int theftalarmdeselectdamagedetection_VALUE = 2560; + /** + * theftalarmconfirmdamagedetection = 2570; + */ + public static final int theftalarmconfirmdamagedetection_VALUE = 2570; + /** + * mecall2start = 2600; + */ + public static final int mecall2start_VALUE = 2600; + /** + * udxTriggerSynchronization = 1200; + */ + public static final int udxTriggerSynchronization_VALUE = 1200; + /** + * udxActiveUserProfile = 1210; + */ + public static final int udxActiveUserProfile_VALUE = 1210; + /** + * udxResetUserData = 1220; + */ + public static final int udxResetUserData_VALUE = 1220; + /** + * userProfSynch = 1230; + */ + public static final int userProfSynch_VALUE = 1230; + /** + * userDataReset = 1240; + */ + public static final int userDataReset_VALUE = 1240; + /** + * profActivationSnap = 1250; + */ + public static final int profActivationSnap_VALUE = 1250; + /** + * profActivationDirect = 1255; + */ + public static final int profActivationDirect_VALUE = 1255; + /** + * softwareUpdate = 1260; + */ + public static final int softwareUpdate_VALUE = 1260; + /** + * pushNotification = 1270; + */ + public static final int pushNotification_VALUE = 1270; + /** + * mecallcommand = 1310; + */ + public static final int mecallcommand_VALUE = 1310; + /** + * precondStartRcs = 1400; + */ + public static final int precondStartRcs_VALUE = 1400; + /** + * precondStopRcs = 1410; + */ + public static final int precondStopRcs_VALUE = 1410; + /** + * precondConfigureRcs = 1420; + */ + public static final int precondConfigureRcs_VALUE = 1420; + /** + * tcuConfigure = 1430; + */ + public static final int tcuConfigure_VALUE = 1430; + /** + * edisonServiceActivation = 1431; + */ + public static final int edisonServiceActivation_VALUE = 1431; + /** + * testSequence = 1432; + */ + public static final int testSequence_VALUE = 1432; + /** + * precondConfigureRacp = 1433; + */ + public static final int precondConfigureRacp_VALUE = 1433; + /** + * chargeoptConfigureRacp = 1434; + */ + public static final int chargeoptConfigureRacp_VALUE = 1434; + /** + * tariffTableDownload = 1435; + */ + public static final int tariffTableDownload_VALUE = 1435; + /** + * precondStartRacp = 1436; + */ + public static final int precondStartRacp_VALUE = 1436; + /** + * precondStopRacp = 1437; + */ + public static final int precondStopRacp_VALUE = 1437; + /** + * rootCertificateRemove = 1438; + */ + public static final int rootCertificateRemove_VALUE = 1438; + /** + * onRequestProbeUpload = 1439; + */ + public static final int onRequestProbeUpload_VALUE = 1439; + /** + * rootCertificateDownload = 1440; + */ + public static final int rootCertificateDownload_VALUE = 1440; + /** + * contractCertificateRemove = 1441; + */ + public static final int contractCertificateRemove_VALUE = 1441; + /** + * contractCertificateDownload = 1442; + */ + public static final int contractCertificateDownload_VALUE = 1442; + /** + * probeConfigurationUpdate = 1443; + */ + public static final int probeConfigurationUpdate_VALUE = 1443; + /** + * rdiagDeleteEcu = 1500; + */ + public static final int rdiagDeleteEcu_VALUE = 1500; + /** + * rdiagStatusReport = 1501; + */ + public static final int rdiagStatusReport_VALUE = 1501; + /** + * rdiagExecution = 1502; + */ + public static final int rdiagExecution_VALUE = 1502; + /** + * immobilizerChallenge = 1600; + */ + public static final int immobilizerChallenge_VALUE = 1600; + /** + * immobilizerSearchKeyline = 1610; + */ + public static final int immobilizerSearchKeyline_VALUE = 1610; + /** + * immobilizerReleaseKeyline = 1620; + */ + public static final int immobilizerReleaseKeyline_VALUE = 1620; + /** + * immobilizerLockKeyline = 1630; + */ + public static final int immobilizerLockKeyline_VALUE = 1630; + /** + * immobilizerLockVehicle = 1631; + */ + public static final int immobilizerLockVehicle_VALUE = 1631; + /** + * immobilizerReleaseVehicle = 1621; + */ + public static final int immobilizerReleaseVehicle_VALUE = 1621; + /** + * setRentalSignal = 1700; + */ + public static final int setRentalSignal_VALUE = 1700; + /** + * blackchannelDownload = 1800; + */ + public static final int blackchannelDownload_VALUE = 1800; + /** + * blackchannelUpload = 1810; + */ + public static final int blackchannelUpload_VALUE = 1810; + /** + * configurecsm = 1900; + */ + public static final int configurecsm_VALUE = 1900; + /** + * updatevehicleinfo = 1901; + */ + public static final int updatevehicleinfo_VALUE = 1901; + /** + * relaymessagetocsm = 1902; + */ + public static final int relaymessagetocsm_VALUE = 1902; + /** + * relayrentalrequesttocsb = 1903; + */ + public static final int relayrentalrequesttocsb_VALUE = 1903; + /** + * rtmDownloadConfig = 2400; + */ + public static final int rtmDownloadConfig_VALUE = 2400; + /** + * rtmReadConfig = 2410; + */ + public static final int rtmReadConfig_VALUE = 2410; + /** + * avpActivate = 2700; + */ + public static final int avpActivate_VALUE = 2700; + /** + * chargecontrolconfigure = 2800; + */ + public static final int chargecontrolconfigure_VALUE = 2800; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static CommandType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static CommandType forNumber(int value) { + switch (value) { + case 0: return UNKNOWNCOMMANDTYPE; + case 100: return DOORSLOCK; + case 110: return DOORSUNLOCK; + case 115: return TRUNKUNLOCK; + case 116: return FUELFLAPUNLOCK; + case 117: return CHARGEFLAPUNLOCK; + case 118: return CHARGECOUPLERUNLOCK; + case 120: return DOORSPREPARERENTAL; + case 130: return DOORSSECUREVEHICLE; + case 300: return AUXHEATSTART; + case 310: return AUXHEATSTOP; + case 320: return AUXHEATCONFIGURE; + case 350: return TEMPERATURECONFIGURE; + case 360: return WEEKPROFILECONFIGURE; + case 370: return WEEKPROFILEV2CONFIGURE; + case 400: return PRECONDSTART; + case 410: return PRECONDSTOP; + case 420: return PRECONDCONFIGURE; + case 425: return PRECONDCONFIGURESEATS; + case 430: return CHARGEOPTCONFIGURE; + case 440: return CHARGEOPTSTART; + case 450: return CHARGEOPTSTOP; + case 500: return FEEDPOI; + case 510: return FEEDFREETEXT; + case 550: return ENGINESTART; + case 560: return ENGINESTOP; + case 570: return ENGINEAVPSTART; + case 600: return TCUWAKEUP; + case 610: return TCUSWUPDATE; + case 620: return TCURCSRESET; + case 630: return TCUINTERROGATION; + case 710: return SPEEDALERTSTART; + case 720: return SPEEDALERTSTOP; + case 750: return FLSHSTART; + case 760: return FLSHSTOP; + case 770: return SIGPOSSTART; + case 800: return CONTRACTCONFIGURE; + case 810: return CONTRACTREMOVE; + case 820: return ROOTCONFIGURE; + case 830: return ROOTREMOVE; + case 850: return TRIPCOMP; + case 930: return MAINTENANCECONFIGURE; + case 931: return MAINTENANCECOMPUTEROFFSET; + case 935: return SHORTTESTEXECUTE; + case 940: return SERVICEACTIVATIONCONFIGURE; + case 945: return DC2SERVICEACTIVATIONCONFIGURE; + case 950: return DC2RAWDOWNLOAD; + case 955: return APPLICATIONCONFIGURATION; + case 960: return DC2STARTTRACKING; + case 990: return ATPSEQUENCE; + case 1000: return THEFTALARMTOGGLEINTERIOR; + case 1010: return THEFTALARMTOGGLETOW; + case 1020: return THEFTALARMSELECTINTERIORTOW; + case 1030: return THEFTALARMDESELECTINTERIORTOW; + case 1040: return THEFTALARMSTOP; + case 1100: return WINDOWOPEN; + case 1110: return WINDOWCLOSE; + case 1120: return WINDOWVENTILATE; + case 1121: return WINDOWMOVE; + case 1130: return ROOFOPEN; + case 1140: return ROOFCLOSE; + case 1150: return ROOFLIFT; + case 1151: return ROOFMOVE; + case 2000: return BATTERYMAXSOC; + case 2010: return BATTERYCHARGEPROGRAM; + case 2020: return CHARGEPROGRAMCONFIGURE; + case 2100: return ONBOARDFENCESCREATE; + case 2110: return ONBOARDFENCESUPDATE; + case 2120: return ONBOARDFENCESDELETE; + case 2200: return SPEEDFENCESCREATE; + case 2210: return SPEEDFENCESUPDATE; + case 2220: return SPEEDFENCESDELETE; + case 2300: return CHARGINGTARIFFSCREATE; + case 2310: return CHARGINGTARIFFSUPDATE; + case 2320: return CHARGINGTARIFFSDELETE; + case 2500: return THEFTALARMSTART; + case 2510: return THEFTALARMSELECTINTERIOR; + case 2520: return THEFTALARMDESELECTINTERIOR; + case 2530: return THEFTALARMSELECTTOW; + case 2540: return THEFTALARMDESELECTTOW; + case 2550: return THEFTALARMSELECTDAMAGEDETECTION; + case 2560: return THEFTALARMDESELECTDAMAGEDETECTION; + case 2570: return THEFTALARMCONFIRMDAMAGEDETECTION; + case 2600: return MECALL2START; + case 1200: return UDXTRIGGERSYNCHRONIZATION; + case 1210: return UDXACTIVEUSERPROFILE; + case 1220: return UDXRESETUSERDATA; + case 1230: return USERPROFSYNCH; + case 1240: return USERDATARESET; + case 1250: return PROFACTIVATIONSNAP; + case 1255: return PROFACTIVATIONDIRECT; + case 1260: return SOFTWAREUPDATE; + case 1270: return PUSHNOTIFICATION; + case 1310: return MECALLCOMMAND; + case 1400: return PRECONDSTARTRCS; + case 1410: return PRECONDSTOPRCS; + case 1420: return PRECONDCONFIGURERCS; + case 1430: return TCUCONFIGURE; + case 1431: return EDISONSERVICEACTIVATION; + case 1432: return TESTSEQUENCE; + case 1433: return PRECONDCONFIGURERACP; + case 1434: return CHARGEOPTCONFIGURERACP; + case 1435: return TARIFFTABLEDOWNLOAD; + case 1436: return PRECONDSTARTRACP; + case 1437: return PRECONDSTOPRACP; + case 1438: return ROOTCERTIFICATEREMOVE; + case 1439: return ONREQUESTPROBEUPLOAD; + case 1440: return ROOTCERTIFICATEDOWNLOAD; + case 1441: return CONTRACTCERTIFICATEREMOVE; + case 1442: return CONTRACTCERTIFICATEDOWNLOAD; + case 1443: return PROBECONFIGURATIONUPDATE; + case 1500: return RDIAGDELETEECU; + case 1501: return RDIAGSTATUSREPORT; + case 1502: return RDIAGEXECUTION; + case 1600: return IMMOBILIZERCHALLENGE; + case 1610: return IMMOBILIZERSEARCHKEYLINE; + case 1620: return IMMOBILIZERRELEASEKEYLINE; + case 1630: return IMMOBILIZERLOCKKEYLINE; + case 1631: return IMMOBILIZERLOCKVEHICLE; + case 1621: return IMMOBILIZERRELEASEVEHICLE; + case 1700: return SETRENTALSIGNAL; + case 1800: return BLACKCHANNELDOWNLOAD; + case 1810: return BLACKCHANNELUPLOAD; + case 1900: return CONFIGURECSM; + case 1901: return UPDATEVEHICLEINFO; + case 1902: return RELAYMESSAGETOCSM; + case 1903: return RELAYRENTALREQUESTTOCSB; + case 2400: return RTMDOWNLOADCONFIG; + case 2410: return RTMREADCONFIG; + case 2700: return AVPACTIVATE; + case 2800: return CHARGECONTROLCONFIGURE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + CommandType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public CommandType findValueByNumber(int number) { + return CommandType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.ACP.getDescriptor().getEnumTypes().get(0); + } + + private static final CommandType[] VALUES = getStaticValuesArray(); + private static CommandType[] getStaticValuesArray() { + return new CommandType[] { + UNKNOWNCOMMANDTYPE, DOORSLOCK, DOORSUNLOCK, TRUNKUNLOCK, FUELFLAPUNLOCK, CHARGEFLAPUNLOCK, CHARGECOUPLERUNLOCK, DOORSPREPARERENTAL, DOORSSECUREVEHICLE, AUXHEATSTART, AUXHEATSTOP, AUXHEATCONFIGURE, TEMPERATURECONFIGURE, WEEKPROFILECONFIGURE, WEEKPROFILEV2CONFIGURE, PRECONDSTART, PRECONDSTOP, PRECONDCONFIGURE, PRECONDCONFIGURESEATS, CHARGEOPTCONFIGURE, CHARGEOPTSTART, CHARGEOPTSTOP, FEEDPOI, FEEDFREETEXT, ENGINESTART, ENGINESTOP, ENGINEAVPSTART, TCUWAKEUP, TCUSWUPDATE, TCURCSRESET, TCUINTERROGATION, SPEEDALERTSTART, SPEEDALERTSTOP, FLSHSTART, FLSHSTOP, SIGPOSSTART, CONTRACTCONFIGURE, CONTRACTREMOVE, ROOTCONFIGURE, ROOTREMOVE, TRIPCOMP, MAINTENANCECONFIGURE, MAINTENANCECOMPUTEROFFSET, SHORTTESTEXECUTE, SERVICEACTIVATIONCONFIGURE, DC2SERVICEACTIVATIONCONFIGURE, DC2RAWDOWNLOAD, APPLICATIONCONFIGURATION, DC2STARTTRACKING, ATPSEQUENCE, THEFTALARMTOGGLEINTERIOR, THEFTALARMTOGGLETOW, THEFTALARMSELECTINTERIORTOW, THEFTALARMDESELECTINTERIORTOW, THEFTALARMSTOP, WINDOWOPEN, WINDOWCLOSE, WINDOWVENTILATE, WINDOWMOVE, ROOFOPEN, ROOFCLOSE, ROOFLIFT, ROOFMOVE, BATTERYMAXSOC, BATTERYCHARGEPROGRAM, CHARGEPROGRAMCONFIGURE, ONBOARDFENCESCREATE, ONBOARDFENCESUPDATE, ONBOARDFENCESDELETE, SPEEDFENCESCREATE, SPEEDFENCESUPDATE, SPEEDFENCESDELETE, CHARGINGTARIFFSCREATE, CHARGINGTARIFFSUPDATE, CHARGINGTARIFFSDELETE, THEFTALARMSTART, THEFTALARMSELECTINTERIOR, THEFTALARMDESELECTINTERIOR, THEFTALARMSELECTTOW, THEFTALARMDESELECTTOW, THEFTALARMSELECTDAMAGEDETECTION, THEFTALARMDESELECTDAMAGEDETECTION, THEFTALARMCONFIRMDAMAGEDETECTION, MECALL2START, UDXTRIGGERSYNCHRONIZATION, UDXACTIVEUSERPROFILE, UDXRESETUSERDATA, USERPROFSYNCH, USERDATARESET, PROFACTIVATIONSNAP, PROFACTIVATIONDIRECT, SOFTWAREUPDATE, PUSHNOTIFICATION, MECALLCOMMAND, PRECONDSTARTRCS, PRECONDSTOPRCS, PRECONDCONFIGURERCS, TCUCONFIGURE, EDISONSERVICEACTIVATION, TESTSEQUENCE, PRECONDCONFIGURERACP, CHARGEOPTCONFIGURERACP, TARIFFTABLEDOWNLOAD, PRECONDSTARTRACP, PRECONDSTOPRACP, ROOTCERTIFICATEREMOVE, ONREQUESTPROBEUPLOAD, ROOTCERTIFICATEDOWNLOAD, CONTRACTCERTIFICATEREMOVE, CONTRACTCERTIFICATEDOWNLOAD, PROBECONFIGURATIONUPDATE, RDIAGDELETEECU, RDIAGSTATUSREPORT, RDIAGEXECUTION, IMMOBILIZERCHALLENGE, IMMOBILIZERSEARCHKEYLINE, IMMOBILIZERRELEASEKEYLINE, IMMOBILIZERLOCKKEYLINE, IMMOBILIZERLOCKVEHICLE, IMMOBILIZERRELEASEVEHICLE, SETRENTALSIGNAL, BLACKCHANNELDOWNLOAD, BLACKCHANNELUPLOAD, CONFIGURECSM, UPDATEVEHICLEINFO, RELAYMESSAGETOCSM, RELAYRENTALREQUESTTOCSB, RTMDOWNLOADCONFIG, RTMREADCONFIG, AVPACTIVATE, CHARGECONTROLCONFIGURE, unknownCommandType, doorsLock, doorsUnlock, trunkUnlock, fuelflapUnlock, chargeflapUnlock, chargecouplerUnlock, doorsPrepareRental, doorsSecureVehicle, auxheatStart, auxheatStop, auxheatConfigure, temperatureConfigure, weekprofileConfigure, weekprofileV2Configure, precondStart, precondStop, precondConfigure, precondConfigureSeats, chargeoptConfigure, chargeoptStart, chargeoptStop, feedPoi, feedFreetext, engineStart, engineStop, engineAvpstart, tcuWakeup, tcuSwUpdate, tcuRcsReset, tcuInterrogation, speedalertStart, speedalertStop, flshStart, flshStop, sigposStart, contractConfigure, contractRemove, rootConfigure, rootRemove, tripcomp, maintenanceConfigure, maintenanceComputerOffset, shorttestExecute, serviceactivationConfigure, dc2ServiceactivationConfigure, dc2RawDownload, applicationConfiguration, dc2StartTracking, atpSequence, theftalarmToggleInterior, theftalarmToggleTow, theftalarmSelectInteriorTow, theftalarmDeselectInteriorTow, theftalarmStop, windowOpen, windowClose, windowVentilate, windowMove, roofOpen, roofClose, roofLift, roofMove, batteryMaxsoc, batteryChargeprogram, chargeprogramconfigure, onboardfencesCreate, onboardfencesUpdate, onboardfencesDelete, speedfencesCreate, speedfencesUpdate, speedfencesDelete, chargingtariffsCreate, chargingtariffsUpdate, chargingtariffsDelete, theftalarmstart, theftalarmselectinterior, theftalarmdeselectinterior, theftalarmselecttow, theftalarmdeselecttow, theftalarmselectdamagedetection, theftalarmdeselectdamagedetection, theftalarmconfirmdamagedetection, mecall2start, udxTriggerSynchronization, udxActiveUserProfile, udxResetUserData, userProfSynch, userDataReset, profActivationSnap, profActivationDirect, softwareUpdate, pushNotification, mecallcommand, precondStartRcs, precondStopRcs, precondConfigureRcs, tcuConfigure, edisonServiceActivation, testSequence, precondConfigureRacp, chargeoptConfigureRacp, tariffTableDownload, precondStartRacp, precondStopRacp, rootCertificateRemove, onRequestProbeUpload, rootCertificateDownload, contractCertificateRemove, contractCertificateDownload, probeConfigurationUpdate, rdiagDeleteEcu, rdiagStatusReport, rdiagExecution, immobilizerChallenge, immobilizerSearchKeyline, immobilizerReleaseKeyline, immobilizerLockKeyline, immobilizerLockVehicle, immobilizerReleaseVehicle, setRentalSignal, blackchannelDownload, blackchannelUpload, configurecsm, updatevehicleinfo, relaymessagetocsm, relayrentalrequesttocsb, rtmDownloadConfig, rtmReadConfig, avpActivate, chargecontrolconfigure, + }; + } + public static CommandType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private CommandType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.ACP.CommandType) + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Acp.ACP)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Acp.ACP other = (com.daimler.mbcarkit.proto.Acp.ACP) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Acp.ACP parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Acp.ACP parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Acp.ACP parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Acp.ACP prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ACP} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ACP) + com.daimler.mbcarkit.proto.Acp.ACPOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_ACP_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_ACP_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Acp.ACP.class, com.daimler.mbcarkit.proto.Acp.ACP.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Acp.ACP.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Acp.internal_static_proto_ACP_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.ACP getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Acp.ACP.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.ACP build() { + com.daimler.mbcarkit.proto.Acp.ACP result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.ACP buildPartial() { + com.daimler.mbcarkit.proto.Acp.ACP result = new com.daimler.mbcarkit.proto.Acp.ACP(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Acp.ACP) { + return mergeFrom((com.daimler.mbcarkit.proto.Acp.ACP)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Acp.ACP other) { + if (other == com.daimler.mbcarkit.proto.Acp.ACP.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ACP) + } + + // @@protoc_insertion_point(class_scope:proto.ACP) + private static final com.daimler.mbcarkit.proto.Acp.ACP DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Acp.ACP(); + } + + public static com.daimler.mbcarkit.proto.Acp.ACP getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ACP parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.ACP getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VVA_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VVA_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPI_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPI_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ACP_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ACP_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\tacp.proto\022\005proto\032\ngogo.proto\"\245\002\n\003VVA\"v" + + "\n\014CommandState\022\031\n\025UNKNOWN_COMMAND_STATE\020" + + "\000\022\014\n\007CREATED\020\362\007\022\r\n\010ENQUEUED\020\370\007\022\017\n\nPROCES" + + "SING\020\364\007\022\016\n\tSUSPENDED\020\371\007\022\r\n\010FINISHED\020\372\007\"\245" + + "\001\n\020CommandCondition\022\035\n\031UNKNWON_COMMAND_C" + + "ONDITION\020\000\022\t\n\004NONE\020\350\007\022\r\n\010ACCEPTED\020\351\007\022\r\n\010" + + "REJECTED\020\352\007\022\016\n\tTERMINATE\020\353\007\022\014\n\007SUCCESS\020\363" + + "\007\022\013\n\006FAILED\020\365\007\022\020\n\013OVERWRITTEN\020\366\007\022\014\n\007TIME" + + "OUT\020\367\007\"\217\013\n\nVehicleAPI\"~\n\014CommandState\022\031\n" + + "\025UNKNOWN_COMMAND_STATE\020\000\022\016\n\nINITIATION\020\001" + + "\022\014\n\010ENQUEUED\020\002\022\016\n\nPROCESSING\020\003\022\013\n\007WAITIN" + + "G\020\004\022\014\n\010FINISHED\020\005\022\n\n\006FAILED\020\006\"S\n\017Attribu" + + "teStatus\022\r\n\tVALUE_SET\020\000\022\021\n\rVALUE_NOT_SET" + + "\020\001\022\013\n\007INVALID\020\003\022\021\n\rNOT_AVAILABLE\020\004\"\253\t\n\tQ" + + "ueueType\022\033\n\027UNKNOWNCOMMANDQUEUETYPE\020\000\022\t\n" + + "\005DOORS\020\n\022\013\n\007AUXHEAT\020\013\022\013\n\007PRECOND\020\014\022\r\n\tCH" + + "ARGEOPT\020\r\022\017\n\013MAINTENANCE\020\016\022\007\n\003TCU\020\017\022\010\n\004F" + + "EED\020\020\022\025\n\021SERVICEACTIVATION\020\021\022\007\n\003ATP\020\022\022\016\n" + + "\nASSISTANCE\020\023\022\010\n\004RACP\020\024\022\017\n\013WEEKPROFILE\020\025" + + "\022\023\n\017REMOTEDIAGNOSIS\020\026\022\010\n\004FLSH\020\027\022\017\n\013TEMPE" + + "RATURE\020\030\022\014\n\010TRIPCOMP\020\031\022\n\n\006ENGINE\020\032\022\016\n\nTH" + + "EFTALARM\020\033\022\n\n\006WINDOW\020\034\022\014\n\010HEADUNIT\020\035\022\n\n\006" + + "MECALL\020\037\022\017\n\013IMMOBILIZER\020 \022\020\n\014RENTALSIGNA" + + "L\020!\022\007\n\003BCF\020\"\022\021\n\rPLUGANDCHARGE\020#\022\024\n\020CARSH" + + "ARINGMODULE\020$\022\013\n\007BATTERY\020%\022\021\n\rONBOARDFEN" + + "CES\020&\022\017\n\013SPEEDFENCES\020\'\022\023\n\017CHARGINGTARIFF" + + "S\020(\022\r\n\tRTMCONFIG\020)\022\027\n\023MAINTENANCECOMPUTE" + + "R\020*\022\013\n\007MECALL2\020+\022\031\n\025AUTOMATEDVALETPARKIN" + + "G\020,\022\021\n\rCHARGECONTROL\020-\022\016\n\nSPEEDALERT\020.\022\033" + + "\n\027unknowncommandqueuetype\020\000\022\t\n\005doors\020\n\022\013" + + "\n\007auxheat\020\013\022\013\n\007precond\020\014\022\r\n\tchargeopt\020\r\022" + + "\017\n\013maintenance\020\016\022\007\n\003tcu\020\017\022\010\n\004feed\020\020\022\025\n\021s" + + "erviceactivation\020\021\022\007\n\003atp\020\022\022\016\n\nassistanc" + + "e\020\023\022\010\n\004racp\020\024\022\017\n\013weekprofile\020\025\022\023\n\017remote" + + "diagnosis\020\026\022\010\n\004flsh\020\027\022\017\n\013temperature\020\030\022\014" + + "\n\010tripcomp\020\031\022\n\n\006engine\020\032\022\016\n\ntheftalarm\020\033" + + "\022\n\n\006window\020\034\022\014\n\010headunit\020\035\022\n\n\006mecall\020\037\022\017" + + "\n\013immobilizer\020 \022\020\n\014rentalsignal\020!\022\007\n\003bcf" + + "\020\"\022\021\n\rplugandcharge\020#\022\024\n\020carsharingmodul" + + "e\020$\022\013\n\007battery\020%\022\021\n\ronboardfences\020&\022\017\n\013s" + + "peedfences\020\'\022\023\n\017chargingtariffs\020(\022\r\n\trtm" + + "config\020)\022\027\n\023maintenancecomputer\020*\022\013\n\007mec" + + "all2\020+\022\031\n\025automatedvaletparking\020,\022\021\n\rcha" + + "rgecontrol\020-\022\016\n\nspeedalert\020.\032\002\020\001\"\2511\n\003ACP" + + "\"\2411\n\013CommandType\022\026\n\022UNKNOWNCOMMANDTYPE\020\000" + + "\022\r\n\tDOORSLOCK\020d\022\017\n\013DOORSUNLOCK\020n\022\017\n\013TRUN" + + "KUNLOCK\020s\022\022\n\016FUELFLAPUNLOCK\020t\022\024\n\020CHARGEF" + + "LAPUNLOCK\020u\022\027\n\023CHARGECOUPLERUNLOCK\020v\022\026\n\022" + + "DOORSPREPARERENTAL\020x\022\027\n\022DOORSSECUREVEHIC" + + "LE\020\202\001\022\021\n\014AUXHEATSTART\020\254\002\022\020\n\013AUXHEATSTOP\020" + + "\266\002\022\025\n\020AUXHEATCONFIGURE\020\300\002\022\031\n\024TEMPERATURE" + + "CONFIGURE\020\336\002\022\031\n\024WEEKPROFILECONFIGURE\020\350\002\022" + + "\033\n\026WEEKPROFILEV2CONFIGURE\020\362\002\022\021\n\014PRECONDS" + + "TART\020\220\003\022\020\n\013PRECONDSTOP\020\232\003\022\025\n\020PRECONDCONF" + + "IGURE\020\244\003\022\032\n\025PRECONDCONFIGURESEATS\020\251\003\022\027\n\022" + + "CHARGEOPTCONFIGURE\020\256\003\022\023\n\016CHARGEOPTSTART\020" + + "\270\003\022\022\n\rCHARGEOPTSTOP\020\302\003\022\014\n\007FEEDPOI\020\364\003\022\021\n\014" + + "FEEDFREETEXT\020\376\003\022\020\n\013ENGINESTART\020\246\004\022\017\n\nENG" + + "INESTOP\020\260\004\022\023\n\016ENGINEAVPSTART\020\272\004\022\016\n\tTCUWA" + + "KEUP\020\330\004\022\020\n\013TCUSWUPDATE\020\342\004\022\020\n\013TCURCSRESET" + + "\020\354\004\022\025\n\020TCUINTERROGATION\020\366\004\022\024\n\017SPEEDALERT" + + "START\020\306\005\022\023\n\016SPEEDALERTSTOP\020\320\005\022\016\n\tFLSHSTA" + + "RT\020\356\005\022\r\n\010FLSHSTOP\020\370\005\022\020\n\013SIGPOSSTART\020\202\006\022\026" + + "\n\021CONTRACTCONFIGURE\020\240\006\022\023\n\016CONTRACTREMOVE" + + "\020\252\006\022\022\n\rROOTCONFIGURE\020\264\006\022\017\n\nROOTREMOVE\020\276\006" + + "\022\r\n\010TRIPCOMP\020\322\006\022\031\n\024MAINTENANCECONFIGURE\020" + + "\242\007\022\036\n\031MAINTENANCECOMPUTEROFFSET\020\243\007\022\025\n\020SH" + + "ORTTESTEXECUTE\020\247\007\022\037\n\032SERVICEACTIVATIONCO" + + "NFIGURE\020\254\007\022\"\n\035DC2SERVICEACTIVATIONCONFIG" + + "URE\020\261\007\022\023\n\016DC2RAWDOWNLOAD\020\266\007\022\035\n\030APPLICATI" + + "ONCONFIGURATION\020\273\007\022\025\n\020DC2STARTTRACKING\020\300" + + "\007\022\020\n\013ATPSEQUENCE\020\336\007\022\035\n\030THEFTALARMTOGGLEI" + + "NTERIOR\020\350\007\022\030\n\023THEFTALARMTOGGLETOW\020\362\007\022 \n\033" + + "THEFTALARMSELECTINTERIORTOW\020\374\007\022\"\n\035THEFTA" + + "LARMDESELECTINTERIORTOW\020\206\010\022\023\n\016THEFTALARM" + + "STOP\020\220\010\022\017\n\nWINDOWOPEN\020\314\010\022\020\n\013WINDOWCLOSE\020" + + "\326\010\022\024\n\017WINDOWVENTILATE\020\340\010\022\017\n\nWINDOWMOVE\020\341" + + "\010\022\r\n\010ROOFOPEN\020\352\010\022\016\n\tROOFCLOSE\020\364\010\022\r\n\010ROOF" + + "LIFT\020\376\010\022\r\n\010ROOFMOVE\020\377\010\022\022\n\rBATTERYMAXSOC\020" + + "\320\017\022\031\n\024BATTERYCHARGEPROGRAM\020\332\017\022\033\n\026CHARGEP" + + "ROGRAMCONFIGURE\020\344\017\022\030\n\023ONBOARDFENCESCREAT" + + "E\020\264\020\022\030\n\023ONBOARDFENCESUPDATE\020\276\020\022\030\n\023ONBOAR" + + "DFENCESDELETE\020\310\020\022\026\n\021SPEEDFENCESCREATE\020\230\021" + + "\022\026\n\021SPEEDFENCESUPDATE\020\242\021\022\026\n\021SPEEDFENCESD" + + "ELETE\020\254\021\022\032\n\025CHARGINGTARIFFSCREATE\020\374\021\022\032\n\025" + + "CHARGINGTARIFFSUPDATE\020\206\022\022\032\n\025CHARGINGTARI" + + "FFSDELETE\020\220\022\022\024\n\017THEFTALARMSTART\020\304\023\022\035\n\030TH" + + "EFTALARMSELECTINTERIOR\020\316\023\022\037\n\032THEFTALARMD" + + "ESELECTINTERIOR\020\330\023\022\030\n\023THEFTALARMSELECTTO" + + "W\020\342\023\022\032\n\025THEFTALARMDESELECTTOW\020\354\023\022$\n\037THEF" + + "TALARMSELECTDAMAGEDETECTION\020\366\023\022&\n!THEFTA" + + "LARMDESELECTDAMAGEDETECTION\020\200\024\022%\n THEFTA" + + "LARMCONFIRMDAMAGEDETECTION\020\212\024\022\021\n\014MECALL2" + + "START\020\250\024\022\036\n\031UDXTRIGGERSYNCHRONIZATION\020\260\t" + + "\022\031\n\024UDXACTIVEUSERPROFILE\020\272\t\022\025\n\020UDXRESETU" + + "SERDATA\020\304\t\022\022\n\rUSERPROFSYNCH\020\316\t\022\022\n\rUSERDA" + + "TARESET\020\330\t\022\027\n\022PROFACTIVATIONSNAP\020\342\t\022\031\n\024P" + + "ROFACTIVATIONDIRECT\020\347\t\022\023\n\016SOFTWAREUPDATE" + + "\020\354\t\022\025\n\020PUSHNOTIFICATION\020\366\t\022\022\n\rMECALLCOMM" + + "AND\020\236\n\022\024\n\017PRECONDSTARTRCS\020\370\n\022\023\n\016PRECONDS" + + "TOPRCS\020\202\013\022\030\n\023PRECONDCONFIGURERCS\020\214\013\022\021\n\014T" + + "CUCONFIGURE\020\226\013\022\034\n\027EDISONSERVICEACTIVATIO" + + "N\020\227\013\022\021\n\014TESTSEQUENCE\020\230\013\022\031\n\024PRECONDCONFIG" + + "URERACP\020\231\013\022\033\n\026CHARGEOPTCONFIGURERACP\020\232\013\022" + + "\030\n\023TARIFFTABLEDOWNLOAD\020\233\013\022\025\n\020PRECONDSTAR" + + "TRACP\020\234\013\022\024\n\017PRECONDSTOPRACP\020\235\013\022\032\n\025ROOTCE" + + "RTIFICATEREMOVE\020\236\013\022\031\n\024ONREQUESTPROBEUPLO" + + "AD\020\237\013\022\034\n\027ROOTCERTIFICATEDOWNLOAD\020\240\013\022\036\n\031C" + + "ONTRACTCERTIFICATEREMOVE\020\241\013\022 \n\033CONTRACTC" + + "ERTIFICATEDOWNLOAD\020\242\013\022\035\n\030PROBECONFIGURAT" + + "IONUPDATE\020\243\013\022\023\n\016RDIAGDELETEECU\020\334\013\022\026\n\021RDI" + + "AGSTATUSREPORT\020\335\013\022\023\n\016RDIAGEXECUTION\020\336\013\022\031" + + "\n\024IMMOBILIZERCHALLENGE\020\300\014\022\035\n\030IMMOBILIZER" + + "SEARCHKEYLINE\020\312\014\022\036\n\031IMMOBILIZERRELEASEKE" + + "YLINE\020\324\014\022\033\n\026IMMOBILIZERLOCKKEYLINE\020\336\014\022\033\n" + + "\026IMMOBILIZERLOCKVEHICLE\020\337\014\022\036\n\031IMMOBILIZE" + + "RRELEASEVEHICLE\020\325\014\022\024\n\017SETRENTALSIGNAL\020\244\r" + + "\022\031\n\024BLACKCHANNELDOWNLOAD\020\210\016\022\027\n\022BLACKCHAN" + + "NELUPLOAD\020\222\016\022\021\n\014CONFIGURECSM\020\354\016\022\026\n\021UPDAT" + + "EVEHICLEINFO\020\355\016\022\026\n\021RELAYMESSAGETOCSM\020\356\016\022" + + "\034\n\027RELAYRENTALREQUESTTOCSB\020\357\016\022\026\n\021RTMDOWN" + + "LOADCONFIG\020\340\022\022\022\n\rRTMREADCONFIG\020\352\022\022\020\n\013AVP" + + "ACTIVATE\020\214\025\022\033\n\026CHARGECONTROLCONFIGURE\020\360\025" + + "\022\026\n\022unknownCommandType\020\000\022\r\n\tdoorsLock\020d\022" + + "\017\n\013doorsUnlock\020n\022\017\n\013trunkUnlock\020s\022\022\n\016fue" + + "lflapUnlock\020t\022\024\n\020chargeflapUnlock\020u\022\027\n\023c" + + "hargecouplerUnlock\020v\022\026\n\022doorsPrepareRent" + + "al\020x\022\027\n\022doorsSecureVehicle\020\202\001\022\021\n\014auxheat" + + "Start\020\254\002\022\020\n\013auxheatStop\020\266\002\022\025\n\020auxheatCon" + + "figure\020\300\002\022\031\n\024temperatureConfigure\020\336\002\022\031\n\024" + + "weekprofileConfigure\020\350\002\022\033\n\026weekprofileV2" + + "Configure\020\362\002\022\021\n\014precondStart\020\220\003\022\020\n\013preco" + + "ndStop\020\232\003\022\025\n\020precondConfigure\020\244\003\022\032\n\025prec" + + "ondConfigureSeats\020\251\003\022\027\n\022chargeoptConfigu" + + "re\020\256\003\022\023\n\016chargeoptStart\020\270\003\022\022\n\rchargeoptS" + + "top\020\302\003\022\014\n\007feedPoi\020\364\003\022\021\n\014feedFreetext\020\376\003\022" + + "\020\n\013engineStart\020\246\004\022\017\n\nengineStop\020\260\004\022\023\n\016en" + + "gineAvpstart\020\272\004\022\016\n\ttcuWakeup\020\330\004\022\020\n\013tcuSw" + + "Update\020\342\004\022\020\n\013tcuRcsReset\020\354\004\022\025\n\020tcuInterr" + + "ogation\020\366\004\022\024\n\017speedalertStart\020\306\005\022\023\n\016spee" + + "dalertStop\020\320\005\022\016\n\tflshStart\020\356\005\022\r\n\010flshSto" + + "p\020\370\005\022\020\n\013sigposStart\020\202\006\022\026\n\021contractConfig" + + "ure\020\240\006\022\023\n\016contractRemove\020\252\006\022\022\n\rrootConfi" + + "gure\020\264\006\022\017\n\nrootRemove\020\276\006\022\r\n\010tripcomp\020\322\006\022" + + "\031\n\024maintenanceConfigure\020\242\007\022\036\n\031maintenanc" + + "eComputerOffset\020\243\007\022\025\n\020shorttestExecute\020\247" + + "\007\022\037\n\032serviceactivationConfigure\020\254\007\022\"\n\035dc" + + "2ServiceactivationConfigure\020\261\007\022\023\n\016dc2Raw" + + "Download\020\266\007\022\035\n\030applicationConfiguration\020" + + "\273\007\022\025\n\020dc2StartTracking\020\300\007\022\020\n\013atpSequence" + + "\020\336\007\022\035\n\030theftalarmToggleInterior\020\350\007\022\030\n\023th" + + "eftalarmToggleTow\020\362\007\022 \n\033theftalarmSelect" + + "InteriorTow\020\374\007\022\"\n\035theftalarmDeselectInte" + + "riorTow\020\206\010\022\023\n\016theftalarmStop\020\220\010\022\017\n\nwindo" + + "wOpen\020\314\010\022\020\n\013windowClose\020\326\010\022\024\n\017windowVent" + + "ilate\020\340\010\022\017\n\nwindowMove\020\341\010\022\r\n\010roofOpen\020\352\010" + + "\022\016\n\troofClose\020\364\010\022\r\n\010roofLift\020\376\010\022\r\n\010roofM" + + "ove\020\377\010\022\022\n\rbatteryMaxsoc\020\320\017\022\031\n\024batteryCha" + + "rgeprogram\020\332\017\022\033\n\026chargeprogramconfigure\020" + + "\344\017\022\030\n\023onboardfencesCreate\020\264\020\022\030\n\023onboardf" + + "encesUpdate\020\276\020\022\030\n\023onboardfencesDelete\020\310\020" + + "\022\026\n\021speedfencesCreate\020\230\021\022\026\n\021speedfencesU" + + "pdate\020\242\021\022\026\n\021speedfencesDelete\020\254\021\022\032\n\025char" + + "gingtariffsCreate\020\374\021\022\032\n\025chargingtariffsU" + + "pdate\020\206\022\022\032\n\025chargingtariffsDelete\020\220\022\022\024\n\017" + + "theftalarmstart\020\304\023\022\035\n\030theftalarmselectin" + + "terior\020\316\023\022\037\n\032theftalarmdeselectinterior\020" + + "\330\023\022\030\n\023theftalarmselecttow\020\342\023\022\032\n\025theftala" + + "rmdeselecttow\020\354\023\022$\n\037theftalarmselectdama" + + "gedetection\020\366\023\022&\n!theftalarmdeselectdama" + + "gedetection\020\200\024\022%\n theftalarmconfirmdamag" + + "edetection\020\212\024\022\021\n\014mecall2start\020\250\024\022\036\n\031udxT" + + "riggerSynchronization\020\260\t\022\031\n\024udxActiveUse" + + "rProfile\020\272\t\022\025\n\020udxResetUserData\020\304\t\022\022\n\rus" + + "erProfSynch\020\316\t\022\022\n\ruserDataReset\020\330\t\022\027\n\022pr" + + "ofActivationSnap\020\342\t\022\031\n\024profActivationDir" + + "ect\020\347\t\022\023\n\016softwareUpdate\020\354\t\022\025\n\020pushNotif" + + "ication\020\366\t\022\022\n\rmecallcommand\020\236\n\022\024\n\017precon" + + "dStartRcs\020\370\n\022\023\n\016precondStopRcs\020\202\013\022\030\n\023pre" + + "condConfigureRcs\020\214\013\022\021\n\014tcuConfigure\020\226\013\022\034" + + "\n\027edisonServiceActivation\020\227\013\022\021\n\014testSequ" + + "ence\020\230\013\022\031\n\024precondConfigureRacp\020\231\013\022\033\n\026ch" + + "argeoptConfigureRacp\020\232\013\022\030\n\023tariffTableDo" + + "wnload\020\233\013\022\025\n\020precondStartRacp\020\234\013\022\024\n\017prec" + + "ondStopRacp\020\235\013\022\032\n\025rootCertificateRemove\020" + + "\236\013\022\031\n\024onRequestProbeUpload\020\237\013\022\034\n\027rootCer" + + "tificateDownload\020\240\013\022\036\n\031contractCertifica" + + "teRemove\020\241\013\022 \n\033contractCertificateDownlo" + + "ad\020\242\013\022\035\n\030probeConfigurationUpdate\020\243\013\022\023\n\016" + + "rdiagDeleteEcu\020\334\013\022\026\n\021rdiagStatusReport\020\335" + + "\013\022\023\n\016rdiagExecution\020\336\013\022\031\n\024immobilizerCha" + + "llenge\020\300\014\022\035\n\030immobilizerSearchKeyline\020\312\014" + + "\022\036\n\031immobilizerReleaseKeyline\020\324\014\022\033\n\026immo" + + "bilizerLockKeyline\020\336\014\022\033\n\026immobilizerLock" + + "Vehicle\020\337\014\022\036\n\031immobilizerReleaseVehicle\020" + + "\325\014\022\024\n\017setRentalSignal\020\244\r\022\031\n\024blackchannel" + + "Download\020\210\016\022\027\n\022blackchannelUpload\020\222\016\022\021\n\014" + + "configurecsm\020\354\016\022\026\n\021updatevehicleinfo\020\355\016\022" + + "\026\n\021relaymessagetocsm\020\356\016\022\034\n\027relayrentalre" + + "questtocsb\020\357\016\022\026\n\021rtmDownloadConfig\020\340\022\022\022\n" + + "\rrtmReadConfig\020\352\022\022\020\n\013avpActivate\020\214\025\022\033\n\026c" + + "hargecontrolconfigure\020\360\025\032\002\020\001B \n\032com.daim" + + "ler.mbcarkit.proto\320\341\036\001b\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.protobuf.GoGoProtos.getDescriptor(), + }); + internal_static_proto_VVA_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_VVA_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VVA_descriptor, + new java.lang.String[] { }); + internal_static_proto_VehicleAPI_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_proto_VehicleAPI_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPI_descriptor, + new java.lang.String[] { }); + internal_static_proto_ACP_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_proto_ACP_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ACP_descriptor, + new java.lang.String[] { }); + descriptor.resolveAllFeaturesImmutable(); + com.google.protobuf.GoGoProtos.getDescriptor(); + com.google.protobuf.ExtensionRegistry registry = + com.google.protobuf.ExtensionRegistry.newInstance(); + registry.add(com.google.protobuf.GoGoProtos.goprotoEnumPrefixAll); + com.google.protobuf.Descriptors.FileDescriptor + .internalUpdateFileDescriptor(descriptor, registry); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Client.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Client.java new file mode 100644 index 00000000000..a46935b1305 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Client.java @@ -0,0 +1,5548 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: client.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class Client { + private Client() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Client.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface ClientMessageOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ClientMessage) + com.google.protobuf.MessageOrBuilder { + + /** + * string tracking_id = 5; + * @return The trackingId. + */ + java.lang.String getTrackingId(); + /** + * string tracking_id = 5; + * @return The bytes for trackingId. + */ + com.google.protobuf.ByteString + getTrackingIdBytes(); + + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + * @return Whether the unsubscribeRequest field is set. + */ + boolean hasUnsubscribeRequest(); + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + * @return The unsubscribeRequest. + */ + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest getUnsubscribeRequest(); + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequestOrBuilder getUnsubscribeRequestOrBuilder(); + + /** + * .proto.CommandRequest commandRequest = 3; + * @return Whether the commandRequest field is set. + */ + boolean hasCommandRequest(); + /** + * .proto.CommandRequest commandRequest = 3; + * @return The commandRequest. + */ + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest getCommandRequest(); + /** + * .proto.CommandRequest commandRequest = 3; + */ + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequestOrBuilder getCommandRequestOrBuilder(); + + /** + * .proto.TrackingEvent tracking_event = 4; + * @return Whether the trackingEvent field is set. + */ + boolean hasTrackingEvent(); + /** + * .proto.TrackingEvent tracking_event = 4; + * @return The trackingEvent. + */ + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getTrackingEvent(); + /** + * .proto.TrackingEvent tracking_event = 4; + */ + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEventOrBuilder getTrackingEventOrBuilder(); + + /** + * .proto.ConfigurePingInterval ping_interval = 6; + * @return Whether the pingInterval field is set. + */ + boolean hasPingInterval(); + /** + * .proto.ConfigurePingInterval ping_interval = 6; + * @return The pingInterval. + */ + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getPingInterval(); + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingIntervalOrBuilder getPingIntervalOrBuilder(); + + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + * @return Whether the acknowledgeVepRequest field is set. + */ + boolean hasAcknowledgeVepRequest(); + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + * @return The acknowledgeVepRequest. + */ + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getAcknowledgeVepRequest(); + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequestOrBuilder getAcknowledgeVepRequestOrBuilder(); + + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + * @return Whether the acknowledgeServiceStatusUpdatesByVin field is set. + */ + boolean hasAcknowledgeServiceStatusUpdatesByVin(); + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + * @return The acknowledgeServiceStatusUpdatesByVin. + */ + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN getAcknowledgeServiceStatusUpdatesByVin(); + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVINOrBuilder getAcknowledgeServiceStatusUpdatesByVinOrBuilder(); + + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + * @return Whether the acknowledgeServiceStatusUpdate field is set. + */ + boolean hasAcknowledgeServiceStatusUpdate(); + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + * @return The acknowledgeServiceStatusUpdate. + */ + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate getAcknowledgeServiceStatusUpdate(); + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdateOrBuilder getAcknowledgeServiceStatusUpdateOrBuilder(); + + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + * @return Whether the acknowledgeUserDataUpdate field is set. + */ + boolean hasAcknowledgeUserDataUpdate(); + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + * @return The acknowledgeUserDataUpdate. + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate getAcknowledgeUserDataUpdate(); + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdateOrBuilder getAcknowledgeUserDataUpdateOrBuilder(); + + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + * @return Whether the acknowledgeUserPictureUpdate field is set. + */ + boolean hasAcknowledgeUserPictureUpdate(); + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + * @return The acknowledgeUserPictureUpdate. + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate getAcknowledgeUserPictureUpdate(); + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdateOrBuilder getAcknowledgeUserPictureUpdateOrBuilder(); + + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + * @return Whether the acknowledgeUserPinUpdate field is set. + */ + boolean hasAcknowledgeUserPinUpdate(); + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + * @return The acknowledgeUserPinUpdate. + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate getAcknowledgeUserPinUpdate(); + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdateOrBuilder getAcknowledgeUserPinUpdateOrBuilder(); + + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + * @return Whether the updateUserJwtRequest field is set. + */ + boolean hasUpdateUserJwtRequest(); + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + * @return The updateUserJwtRequest. + */ + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest getUpdateUserJwtRequest(); + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequestOrBuilder getUpdateUserJwtRequestOrBuilder(); + + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + * @return Whether the acknowledgeUserVehicleAuthChangedUpdate field is set. + */ + boolean hasAcknowledgeUserVehicleAuthChangedUpdate(); + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + * @return The acknowledgeUserVehicleAuthChangedUpdate. + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate getAcknowledgeUserVehicleAuthChangedUpdate(); + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdateOrBuilder getAcknowledgeUserVehicleAuthChangedUpdateOrBuilder(); + + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + * @return Whether the acknowledgeAbilityToGetVehicleMasterDataFromRestApi field is set. + */ + boolean hasAcknowledgeAbilityToGetVehicleMasterDataFromRestApi(); + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + * @return The acknowledgeAbilityToGetVehicleMasterDataFromRestApi. + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI getAcknowledgeAbilityToGetVehicleMasterDataFromRestApi(); + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder getAcknowledgeAbilityToGetVehicleMasterDataFromRestApiOrBuilder(); + + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + * @return Whether the acknowledgeVehicleUpdated field is set. + */ + boolean hasAcknowledgeVehicleUpdated(); + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + * @return The acknowledgeVehicleUpdated. + */ + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getAcknowledgeVehicleUpdated(); + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdatedOrBuilder getAcknowledgeVehicleUpdatedOrBuilder(); + + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + * @return Whether the acknowledgePreferredDealerChange field is set. + */ + boolean hasAcknowledgePreferredDealerChange(); + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + * @return The acknowledgePreferredDealerChange. + */ + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getAcknowledgePreferredDealerChange(); + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChangeOrBuilder getAcknowledgePreferredDealerChangeOrBuilder(); + + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + * @return Whether the acknowledgeApptwinCommandStatusUpdateByVin field is set. + */ + boolean hasAcknowledgeApptwinCommandStatusUpdateByVin(); + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + * @return The acknowledgeApptwinCommandStatusUpdateByVin. + */ + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN getAcknowledgeApptwinCommandStatusUpdateByVin(); + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder getAcknowledgeApptwinCommandStatusUpdateByVinOrBuilder(); + + /** + * .proto.Logout logout = 20; + * @return Whether the logout field is set. + */ + boolean hasLogout(); + /** + * .proto.Logout logout = 20; + * @return The logout. + */ + com.daimler.mbcarkit.proto.Client.Logout getLogout(); + /** + * .proto.Logout logout = 20; + */ + com.daimler.mbcarkit.proto.Client.LogoutOrBuilder getLogoutOrBuilder(); + + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + * @return Whether the apptwinPendingCommandsResponse field is set. + */ + boolean hasApptwinPendingCommandsResponse(); + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + * @return The apptwinPendingCommandsResponse. + */ + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse getApptwinPendingCommandsResponse(); + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponseOrBuilder getApptwinPendingCommandsResponseOrBuilder(); + + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + * @return Whether the acknowledgeVepUpdatesByVin field is set. + */ + boolean hasAcknowledgeVepUpdatesByVin(); + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + * @return The acknowledgeVepUpdatesByVin. + */ + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getAcknowledgeVepUpdatesByVin(); + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVINOrBuilder getAcknowledgeVepUpdatesByVinOrBuilder(); + + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + * @return Whether the acknowledgeAssignedVehicles field is set. + */ + boolean hasAcknowledgeAssignedVehicles(); + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + * @return The acknowledgeAssignedVehicles. + */ + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles getAcknowledgeAssignedVehicles(); + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehiclesOrBuilder getAcknowledgeAssignedVehiclesOrBuilder(); + + com.daimler.mbcarkit.proto.Client.ClientMessage.MsgCase getMsgCase(); + } + /** + *
+   * message that is sent from the client
+   * Sending direction: App -> Websocket (-> AppTwin)
+   * 
+ * + * Protobuf type {@code proto.ClientMessage} + */ + public static final class ClientMessage extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ClientMessage) + ClientMessageOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ClientMessage.class.getName()); + } + // Use ClientMessage.newBuilder() to construct. + private ClientMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ClientMessage() { + trackingId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_ClientMessage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_ClientMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Client.ClientMessage.class, com.daimler.mbcarkit.proto.Client.ClientMessage.Builder.class); + } + + private int msgCase_ = 0; + @SuppressWarnings("serial") + private java.lang.Object msg_; + public enum MsgCase + implements com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + UNSUBSCRIBEREQUEST(2), + COMMANDREQUEST(3), + TRACKING_EVENT(4), + PING_INTERVAL(6), + ACKNOWLEDGE_VEP_REQUEST(7), + ACKNOWLEDGE_SERVICE_STATUS_UPDATES_BY_VIN(9), + ACKNOWLEDGE_SERVICE_STATUS_UPDATE(13), + ACKNOWLEDGE_USER_DATA_UPDATE(10), + ACKNOWLEDGE_USER_PICTURE_UPDATE(11), + ACKNOWLEDGE_USER_PIN_UPDATE(12), + UPDATE_USER_JWT_REQUEST(14), + ACKNOWLEDGE_USER_VEHICLE_AUTH_CHANGED_UPDATE(15), + ACKNOWLEDGE_ABILITY_TO_GET_VEHICLE_MASTER_DATA_FROM_REST_API(16), + ACKNOWLEDGE_VEHICLE_UPDATED(17), + ACKNOWLEDGE_PREFERRED_DEALER_CHANGE(18), + ACKNOWLEDGE_APPTWIN_COMMAND_STATUS_UPDATE_BY_VIN(19), + LOGOUT(20), + APPTWIN_PENDING_COMMANDS_RESPONSE(21), + ACKNOWLEDGE_VEP_UPDATES_BY_VIN(22), + ACKNOWLEDGE_ASSIGNED_VEHICLES(23), + MSG_NOT_SET(0); + private final int value; + private MsgCase(int value) { + this.value = value; + } + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static MsgCase valueOf(int value) { + return forNumber(value); + } + + public static MsgCase forNumber(int value) { + switch (value) { + case 2: return UNSUBSCRIBEREQUEST; + case 3: return COMMANDREQUEST; + case 4: return TRACKING_EVENT; + case 6: return PING_INTERVAL; + case 7: return ACKNOWLEDGE_VEP_REQUEST; + case 9: return ACKNOWLEDGE_SERVICE_STATUS_UPDATES_BY_VIN; + case 13: return ACKNOWLEDGE_SERVICE_STATUS_UPDATE; + case 10: return ACKNOWLEDGE_USER_DATA_UPDATE; + case 11: return ACKNOWLEDGE_USER_PICTURE_UPDATE; + case 12: return ACKNOWLEDGE_USER_PIN_UPDATE; + case 14: return UPDATE_USER_JWT_REQUEST; + case 15: return ACKNOWLEDGE_USER_VEHICLE_AUTH_CHANGED_UPDATE; + case 16: return ACKNOWLEDGE_ABILITY_TO_GET_VEHICLE_MASTER_DATA_FROM_REST_API; + case 17: return ACKNOWLEDGE_VEHICLE_UPDATED; + case 18: return ACKNOWLEDGE_PREFERRED_DEALER_CHANGE; + case 19: return ACKNOWLEDGE_APPTWIN_COMMAND_STATUS_UPDATE_BY_VIN; + case 20: return LOGOUT; + case 21: return APPTWIN_PENDING_COMMANDS_RESPONSE; + case 22: return ACKNOWLEDGE_VEP_UPDATES_BY_VIN; + case 23: return ACKNOWLEDGE_ASSIGNED_VEHICLES; + case 0: return MSG_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public MsgCase + getMsgCase() { + return MsgCase.forNumber( + msgCase_); + } + + public static final int TRACKING_ID_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object trackingId_ = ""; + /** + * string tracking_id = 5; + * @return The trackingId. + */ + @java.lang.Override + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } + } + /** + * string tracking_id = 5; + * @return The bytes for trackingId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int UNSUBSCRIBEREQUEST_FIELD_NUMBER = 2; + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + * @return Whether the unsubscribeRequest field is set. + */ + @java.lang.Override + public boolean hasUnsubscribeRequest() { + return msgCase_ == 2; + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + * @return The unsubscribeRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest getUnsubscribeRequest() { + if (msgCase_ == 2) { + return (com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) msg_; + } + return com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance(); + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequestOrBuilder getUnsubscribeRequestOrBuilder() { + if (msgCase_ == 2) { + return (com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) msg_; + } + return com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance(); + } + + public static final int COMMANDREQUEST_FIELD_NUMBER = 3; + /** + * .proto.CommandRequest commandRequest = 3; + * @return Whether the commandRequest field is set. + */ + @java.lang.Override + public boolean hasCommandRequest() { + return msgCase_ == 3; + } + /** + * .proto.CommandRequest commandRequest = 3; + * @return The commandRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest getCommandRequest() { + if (msgCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) msg_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance(); + } + /** + * .proto.CommandRequest commandRequest = 3; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequestOrBuilder getCommandRequestOrBuilder() { + if (msgCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) msg_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance(); + } + + public static final int TRACKING_EVENT_FIELD_NUMBER = 4; + /** + * .proto.TrackingEvent tracking_event = 4; + * @return Whether the trackingEvent field is set. + */ + @java.lang.Override + public boolean hasTrackingEvent() { + return msgCase_ == 4; + } + /** + * .proto.TrackingEvent tracking_event = 4; + * @return The trackingEvent. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getTrackingEvent() { + if (msgCase_ == 4) { + return (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance(); + } + /** + * .proto.TrackingEvent tracking_event = 4; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEventOrBuilder getTrackingEventOrBuilder() { + if (msgCase_ == 4) { + return (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance(); + } + + public static final int PING_INTERVAL_FIELD_NUMBER = 6; + /** + * .proto.ConfigurePingInterval ping_interval = 6; + * @return Whether the pingInterval field is set. + */ + @java.lang.Override + public boolean hasPingInterval() { + return msgCase_ == 6; + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + * @return The pingInterval. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getPingInterval() { + if (msgCase_ == 6) { + return (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance(); + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingIntervalOrBuilder getPingIntervalOrBuilder() { + if (msgCase_ == 6) { + return (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_VEP_REQUEST_FIELD_NUMBER = 7; + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + * @return Whether the acknowledgeVepRequest field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeVepRequest() { + return msgCase_ == 7; + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + * @return The acknowledgeVepRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getAcknowledgeVepRequest() { + if (msgCase_ == 7) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance(); + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequestOrBuilder getAcknowledgeVepRequestOrBuilder() { + if (msgCase_ == 7) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_SERVICE_STATUS_UPDATES_BY_VIN_FIELD_NUMBER = 9; + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + * @return Whether the acknowledgeServiceStatusUpdatesByVin field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeServiceStatusUpdatesByVin() { + return msgCase_ == 9; + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + * @return The acknowledgeServiceStatusUpdatesByVin. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN getAcknowledgeServiceStatusUpdatesByVin() { + if (msgCase_ == 9) { + return (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance(); + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVINOrBuilder getAcknowledgeServiceStatusUpdatesByVinOrBuilder() { + if (msgCase_ == 9) { + return (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_SERVICE_STATUS_UPDATE_FIELD_NUMBER = 13; + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + * @return Whether the acknowledgeServiceStatusUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeServiceStatusUpdate() { + return msgCase_ == 13; + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + * @return The acknowledgeServiceStatusUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate getAcknowledgeServiceStatusUpdate() { + if (msgCase_ == 13) { + return (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance(); + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdateOrBuilder getAcknowledgeServiceStatusUpdateOrBuilder() { + if (msgCase_ == 13) { + return (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_USER_DATA_UPDATE_FIELD_NUMBER = 10; + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + * @return Whether the acknowledgeUserDataUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeUserDataUpdate() { + return msgCase_ == 10; + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + * @return The acknowledgeUserDataUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate getAcknowledgeUserDataUpdate() { + if (msgCase_ == 10) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance(); + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdateOrBuilder getAcknowledgeUserDataUpdateOrBuilder() { + if (msgCase_ == 10) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_USER_PICTURE_UPDATE_FIELD_NUMBER = 11; + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + * @return Whether the acknowledgeUserPictureUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeUserPictureUpdate() { + return msgCase_ == 11; + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + * @return The acknowledgeUserPictureUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate getAcknowledgeUserPictureUpdate() { + if (msgCase_ == 11) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance(); + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdateOrBuilder getAcknowledgeUserPictureUpdateOrBuilder() { + if (msgCase_ == 11) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_USER_PIN_UPDATE_FIELD_NUMBER = 12; + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + * @return Whether the acknowledgeUserPinUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeUserPinUpdate() { + return msgCase_ == 12; + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + * @return The acknowledgeUserPinUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate getAcknowledgeUserPinUpdate() { + if (msgCase_ == 12) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance(); + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdateOrBuilder getAcknowledgeUserPinUpdateOrBuilder() { + if (msgCase_ == 12) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance(); + } + + public static final int UPDATE_USER_JWT_REQUEST_FIELD_NUMBER = 14; + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + * @return Whether the updateUserJwtRequest field is set. + */ + @java.lang.Override + public boolean hasUpdateUserJwtRequest() { + return msgCase_ == 14; + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + * @return The updateUserJwtRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest getUpdateUserJwtRequest() { + if (msgCase_ == 14) { + return (com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance(); + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequestOrBuilder getUpdateUserJwtRequestOrBuilder() { + if (msgCase_ == 14) { + return (com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_USER_VEHICLE_AUTH_CHANGED_UPDATE_FIELD_NUMBER = 15; + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + * @return Whether the acknowledgeUserVehicleAuthChangedUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeUserVehicleAuthChangedUpdate() { + return msgCase_ == 15; + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + * @return The acknowledgeUserVehicleAuthChangedUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate getAcknowledgeUserVehicleAuthChangedUpdate() { + if (msgCase_ == 15) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance(); + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdateOrBuilder getAcknowledgeUserVehicleAuthChangedUpdateOrBuilder() { + if (msgCase_ == 15) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_ABILITY_TO_GET_VEHICLE_MASTER_DATA_FROM_REST_API_FIELD_NUMBER = 16; + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + * @return Whether the acknowledgeAbilityToGetVehicleMasterDataFromRestApi field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeAbilityToGetVehicleMasterDataFromRestApi() { + return msgCase_ == 16; + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + * @return The acknowledgeAbilityToGetVehicleMasterDataFromRestApi. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI getAcknowledgeAbilityToGetVehicleMasterDataFromRestApi() { + if (msgCase_ == 16) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance(); + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder getAcknowledgeAbilityToGetVehicleMasterDataFromRestApiOrBuilder() { + if (msgCase_ == 16) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_VEHICLE_UPDATED_FIELD_NUMBER = 17; + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + * @return Whether the acknowledgeVehicleUpdated field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeVehicleUpdated() { + return msgCase_ == 17; + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + * @return The acknowledgeVehicleUpdated. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getAcknowledgeVehicleUpdated() { + if (msgCase_ == 17) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance(); + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdatedOrBuilder getAcknowledgeVehicleUpdatedOrBuilder() { + if (msgCase_ == 17) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_PREFERRED_DEALER_CHANGE_FIELD_NUMBER = 18; + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + * @return Whether the acknowledgePreferredDealerChange field is set. + */ + @java.lang.Override + public boolean hasAcknowledgePreferredDealerChange() { + return msgCase_ == 18; + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + * @return The acknowledgePreferredDealerChange. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getAcknowledgePreferredDealerChange() { + if (msgCase_ == 18) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance(); + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChangeOrBuilder getAcknowledgePreferredDealerChangeOrBuilder() { + if (msgCase_ == 18) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_APPTWIN_COMMAND_STATUS_UPDATE_BY_VIN_FIELD_NUMBER = 19; + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + * @return Whether the acknowledgeApptwinCommandStatusUpdateByVin field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeApptwinCommandStatusUpdateByVin() { + return msgCase_ == 19; + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + * @return The acknowledgeApptwinCommandStatusUpdateByVin. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN getAcknowledgeApptwinCommandStatusUpdateByVin() { + if (msgCase_ == 19) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder getAcknowledgeApptwinCommandStatusUpdateByVinOrBuilder() { + if (msgCase_ == 19) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + + public static final int LOGOUT_FIELD_NUMBER = 20; + /** + * .proto.Logout logout = 20; + * @return Whether the logout field is set. + */ + @java.lang.Override + public boolean hasLogout() { + return msgCase_ == 20; + } + /** + * .proto.Logout logout = 20; + * @return The logout. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.Logout getLogout() { + if (msgCase_ == 20) { + return (com.daimler.mbcarkit.proto.Client.Logout) msg_; + } + return com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance(); + } + /** + * .proto.Logout logout = 20; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.LogoutOrBuilder getLogoutOrBuilder() { + if (msgCase_ == 20) { + return (com.daimler.mbcarkit.proto.Client.Logout) msg_; + } + return com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance(); + } + + public static final int APPTWIN_PENDING_COMMANDS_RESPONSE_FIELD_NUMBER = 21; + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + * @return Whether the apptwinPendingCommandsResponse field is set. + */ + @java.lang.Override + public boolean hasApptwinPendingCommandsResponse() { + return msgCase_ == 21; + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + * @return The apptwinPendingCommandsResponse. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse getApptwinPendingCommandsResponse() { + if (msgCase_ == 21) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance(); + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponseOrBuilder getApptwinPendingCommandsResponseOrBuilder() { + if (msgCase_ == 21) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_VEP_UPDATES_BY_VIN_FIELD_NUMBER = 22; + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + * @return Whether the acknowledgeVepUpdatesByVin field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeVepUpdatesByVin() { + return msgCase_ == 22; + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + * @return The acknowledgeVepUpdatesByVin. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getAcknowledgeVepUpdatesByVin() { + if (msgCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance(); + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVINOrBuilder getAcknowledgeVepUpdatesByVinOrBuilder() { + if (msgCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance(); + } + + public static final int ACKNOWLEDGE_ASSIGNED_VEHICLES_FIELD_NUMBER = 23; + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + * @return Whether the acknowledgeAssignedVehicles field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeAssignedVehicles() { + return msgCase_ == 23; + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + * @return The acknowledgeAssignedVehicles. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles getAcknowledgeAssignedVehicles() { + if (msgCase_ == 23) { + return (com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) msg_; + } + return com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance(); + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehiclesOrBuilder getAcknowledgeAssignedVehiclesOrBuilder() { + if (msgCase_ == 23) { + return (com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) msg_; + } + return com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (msgCase_ == 2) { + output.writeMessage(2, (com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) msg_); + } + if (msgCase_ == 3) { + output.writeMessage(3, (com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) msg_); + } + if (msgCase_ == 4) { + output.writeMessage(4, (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) msg_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, trackingId_); + } + if (msgCase_ == 6) { + output.writeMessage(6, (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) msg_); + } + if (msgCase_ == 7) { + output.writeMessage(7, (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) msg_); + } + if (msgCase_ == 9) { + output.writeMessage(9, (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) msg_); + } + if (msgCase_ == 10) { + output.writeMessage(10, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) msg_); + } + if (msgCase_ == 11) { + output.writeMessage(11, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) msg_); + } + if (msgCase_ == 12) { + output.writeMessage(12, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) msg_); + } + if (msgCase_ == 13) { + output.writeMessage(13, (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) msg_); + } + if (msgCase_ == 14) { + output.writeMessage(14, (com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) msg_); + } + if (msgCase_ == 15) { + output.writeMessage(15, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) msg_); + } + if (msgCase_ == 16) { + output.writeMessage(16, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) msg_); + } + if (msgCase_ == 17) { + output.writeMessage(17, (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) msg_); + } + if (msgCase_ == 18) { + output.writeMessage(18, (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) msg_); + } + if (msgCase_ == 19) { + output.writeMessage(19, (com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) msg_); + } + if (msgCase_ == 20) { + output.writeMessage(20, (com.daimler.mbcarkit.proto.Client.Logout) msg_); + } + if (msgCase_ == 21) { + output.writeMessage(21, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) msg_); + } + if (msgCase_ == 22) { + output.writeMessage(22, (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) msg_); + } + if (msgCase_ == 23) { + output.writeMessage(23, (com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) msg_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (msgCase_ == 2) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, (com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) msg_); + } + if (msgCase_ == 3) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, (com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) msg_); + } + if (msgCase_ == 4) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) msg_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, trackingId_); + } + if (msgCase_ == 6) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) msg_); + } + if (msgCase_ == 7) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) msg_); + } + if (msgCase_ == 9) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) msg_); + } + if (msgCase_ == 10) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) msg_); + } + if (msgCase_ == 11) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) msg_); + } + if (msgCase_ == 12) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(12, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) msg_); + } + if (msgCase_ == 13) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(13, (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) msg_); + } + if (msgCase_ == 14) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(14, (com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) msg_); + } + if (msgCase_ == 15) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(15, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) msg_); + } + if (msgCase_ == 16) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(16, (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) msg_); + } + if (msgCase_ == 17) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(17, (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) msg_); + } + if (msgCase_ == 18) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(18, (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) msg_); + } + if (msgCase_ == 19) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(19, (com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) msg_); + } + if (msgCase_ == 20) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(20, (com.daimler.mbcarkit.proto.Client.Logout) msg_); + } + if (msgCase_ == 21) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(21, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) msg_); + } + if (msgCase_ == 22) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(22, (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) msg_); + } + if (msgCase_ == 23) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(23, (com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) msg_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Client.ClientMessage)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Client.ClientMessage other = (com.daimler.mbcarkit.proto.Client.ClientMessage) obj; + + if (!getTrackingId() + .equals(other.getTrackingId())) return false; + if (!getMsgCase().equals(other.getMsgCase())) return false; + switch (msgCase_) { + case 2: + if (!getUnsubscribeRequest() + .equals(other.getUnsubscribeRequest())) return false; + break; + case 3: + if (!getCommandRequest() + .equals(other.getCommandRequest())) return false; + break; + case 4: + if (!getTrackingEvent() + .equals(other.getTrackingEvent())) return false; + break; + case 6: + if (!getPingInterval() + .equals(other.getPingInterval())) return false; + break; + case 7: + if (!getAcknowledgeVepRequest() + .equals(other.getAcknowledgeVepRequest())) return false; + break; + case 9: + if (!getAcknowledgeServiceStatusUpdatesByVin() + .equals(other.getAcknowledgeServiceStatusUpdatesByVin())) return false; + break; + case 13: + if (!getAcknowledgeServiceStatusUpdate() + .equals(other.getAcknowledgeServiceStatusUpdate())) return false; + break; + case 10: + if (!getAcknowledgeUserDataUpdate() + .equals(other.getAcknowledgeUserDataUpdate())) return false; + break; + case 11: + if (!getAcknowledgeUserPictureUpdate() + .equals(other.getAcknowledgeUserPictureUpdate())) return false; + break; + case 12: + if (!getAcknowledgeUserPinUpdate() + .equals(other.getAcknowledgeUserPinUpdate())) return false; + break; + case 14: + if (!getUpdateUserJwtRequest() + .equals(other.getUpdateUserJwtRequest())) return false; + break; + case 15: + if (!getAcknowledgeUserVehicleAuthChangedUpdate() + .equals(other.getAcknowledgeUserVehicleAuthChangedUpdate())) return false; + break; + case 16: + if (!getAcknowledgeAbilityToGetVehicleMasterDataFromRestApi() + .equals(other.getAcknowledgeAbilityToGetVehicleMasterDataFromRestApi())) return false; + break; + case 17: + if (!getAcknowledgeVehicleUpdated() + .equals(other.getAcknowledgeVehicleUpdated())) return false; + break; + case 18: + if (!getAcknowledgePreferredDealerChange() + .equals(other.getAcknowledgePreferredDealerChange())) return false; + break; + case 19: + if (!getAcknowledgeApptwinCommandStatusUpdateByVin() + .equals(other.getAcknowledgeApptwinCommandStatusUpdateByVin())) return false; + break; + case 20: + if (!getLogout() + .equals(other.getLogout())) return false; + break; + case 21: + if (!getApptwinPendingCommandsResponse() + .equals(other.getApptwinPendingCommandsResponse())) return false; + break; + case 22: + if (!getAcknowledgeVepUpdatesByVin() + .equals(other.getAcknowledgeVepUpdatesByVin())) return false; + break; + case 23: + if (!getAcknowledgeAssignedVehicles() + .equals(other.getAcknowledgeAssignedVehicles())) return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TRACKING_ID_FIELD_NUMBER; + hash = (53 * hash) + getTrackingId().hashCode(); + switch (msgCase_) { + case 2: + hash = (37 * hash) + UNSUBSCRIBEREQUEST_FIELD_NUMBER; + hash = (53 * hash) + getUnsubscribeRequest().hashCode(); + break; + case 3: + hash = (37 * hash) + COMMANDREQUEST_FIELD_NUMBER; + hash = (53 * hash) + getCommandRequest().hashCode(); + break; + case 4: + hash = (37 * hash) + TRACKING_EVENT_FIELD_NUMBER; + hash = (53 * hash) + getTrackingEvent().hashCode(); + break; + case 6: + hash = (37 * hash) + PING_INTERVAL_FIELD_NUMBER; + hash = (53 * hash) + getPingInterval().hashCode(); + break; + case 7: + hash = (37 * hash) + ACKNOWLEDGE_VEP_REQUEST_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeVepRequest().hashCode(); + break; + case 9: + hash = (37 * hash) + ACKNOWLEDGE_SERVICE_STATUS_UPDATES_BY_VIN_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeServiceStatusUpdatesByVin().hashCode(); + break; + case 13: + hash = (37 * hash) + ACKNOWLEDGE_SERVICE_STATUS_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeServiceStatusUpdate().hashCode(); + break; + case 10: + hash = (37 * hash) + ACKNOWLEDGE_USER_DATA_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeUserDataUpdate().hashCode(); + break; + case 11: + hash = (37 * hash) + ACKNOWLEDGE_USER_PICTURE_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeUserPictureUpdate().hashCode(); + break; + case 12: + hash = (37 * hash) + ACKNOWLEDGE_USER_PIN_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeUserPinUpdate().hashCode(); + break; + case 14: + hash = (37 * hash) + UPDATE_USER_JWT_REQUEST_FIELD_NUMBER; + hash = (53 * hash) + getUpdateUserJwtRequest().hashCode(); + break; + case 15: + hash = (37 * hash) + ACKNOWLEDGE_USER_VEHICLE_AUTH_CHANGED_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeUserVehicleAuthChangedUpdate().hashCode(); + break; + case 16: + hash = (37 * hash) + ACKNOWLEDGE_ABILITY_TO_GET_VEHICLE_MASTER_DATA_FROM_REST_API_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeAbilityToGetVehicleMasterDataFromRestApi().hashCode(); + break; + case 17: + hash = (37 * hash) + ACKNOWLEDGE_VEHICLE_UPDATED_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeVehicleUpdated().hashCode(); + break; + case 18: + hash = (37 * hash) + ACKNOWLEDGE_PREFERRED_DEALER_CHANGE_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgePreferredDealerChange().hashCode(); + break; + case 19: + hash = (37 * hash) + ACKNOWLEDGE_APPTWIN_COMMAND_STATUS_UPDATE_BY_VIN_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeApptwinCommandStatusUpdateByVin().hashCode(); + break; + case 20: + hash = (37 * hash) + LOGOUT_FIELD_NUMBER; + hash = (53 * hash) + getLogout().hashCode(); + break; + case 21: + hash = (37 * hash) + APPTWIN_PENDING_COMMANDS_RESPONSE_FIELD_NUMBER; + hash = (53 * hash) + getApptwinPendingCommandsResponse().hashCode(); + break; + case 22: + hash = (37 * hash) + ACKNOWLEDGE_VEP_UPDATES_BY_VIN_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeVepUpdatesByVin().hashCode(); + break; + case 23: + hash = (37 * hash) + ACKNOWLEDGE_ASSIGNED_VEHICLES_FIELD_NUMBER; + hash = (53 * hash) + getAcknowledgeAssignedVehicles().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Client.ClientMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Client.ClientMessage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * message that is sent from the client
+     * Sending direction: App -> Websocket (-> AppTwin)
+     * 
+ * + * Protobuf type {@code proto.ClientMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ClientMessage) + com.daimler.mbcarkit.proto.Client.ClientMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_ClientMessage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_ClientMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Client.ClientMessage.class, com.daimler.mbcarkit.proto.Client.ClientMessage.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Client.ClientMessage.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + trackingId_ = ""; + if (unsubscribeRequestBuilder_ != null) { + unsubscribeRequestBuilder_.clear(); + } + if (commandRequestBuilder_ != null) { + commandRequestBuilder_.clear(); + } + if (trackingEventBuilder_ != null) { + trackingEventBuilder_.clear(); + } + if (pingIntervalBuilder_ != null) { + pingIntervalBuilder_.clear(); + } + if (acknowledgeVepRequestBuilder_ != null) { + acknowledgeVepRequestBuilder_.clear(); + } + if (acknowledgeServiceStatusUpdatesByVinBuilder_ != null) { + acknowledgeServiceStatusUpdatesByVinBuilder_.clear(); + } + if (acknowledgeServiceStatusUpdateBuilder_ != null) { + acknowledgeServiceStatusUpdateBuilder_.clear(); + } + if (acknowledgeUserDataUpdateBuilder_ != null) { + acknowledgeUserDataUpdateBuilder_.clear(); + } + if (acknowledgeUserPictureUpdateBuilder_ != null) { + acknowledgeUserPictureUpdateBuilder_.clear(); + } + if (acknowledgeUserPinUpdateBuilder_ != null) { + acknowledgeUserPinUpdateBuilder_.clear(); + } + if (updateUserJwtRequestBuilder_ != null) { + updateUserJwtRequestBuilder_.clear(); + } + if (acknowledgeUserVehicleAuthChangedUpdateBuilder_ != null) { + acknowledgeUserVehicleAuthChangedUpdateBuilder_.clear(); + } + if (acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ != null) { + acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.clear(); + } + if (acknowledgeVehicleUpdatedBuilder_ != null) { + acknowledgeVehicleUpdatedBuilder_.clear(); + } + if (acknowledgePreferredDealerChangeBuilder_ != null) { + acknowledgePreferredDealerChangeBuilder_.clear(); + } + if (acknowledgeApptwinCommandStatusUpdateByVinBuilder_ != null) { + acknowledgeApptwinCommandStatusUpdateByVinBuilder_.clear(); + } + if (logoutBuilder_ != null) { + logoutBuilder_.clear(); + } + if (apptwinPendingCommandsResponseBuilder_ != null) { + apptwinPendingCommandsResponseBuilder_.clear(); + } + if (acknowledgeVepUpdatesByVinBuilder_ != null) { + acknowledgeVepUpdatesByVinBuilder_.clear(); + } + if (acknowledgeAssignedVehiclesBuilder_ != null) { + acknowledgeAssignedVehiclesBuilder_.clear(); + } + msgCase_ = 0; + msg_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_ClientMessage_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.ClientMessage getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Client.ClientMessage.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.ClientMessage build() { + com.daimler.mbcarkit.proto.Client.ClientMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.ClientMessage buildPartial() { + com.daimler.mbcarkit.proto.Client.ClientMessage result = new com.daimler.mbcarkit.proto.Client.ClientMessage(this); + if (bitField0_ != 0) { buildPartial0(result); } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Client.ClientMessage result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.trackingId_ = trackingId_; + } + } + + private void buildPartialOneofs(com.daimler.mbcarkit.proto.Client.ClientMessage result) { + result.msgCase_ = msgCase_; + result.msg_ = this.msg_; + if (msgCase_ == 2 && + unsubscribeRequestBuilder_ != null) { + result.msg_ = unsubscribeRequestBuilder_.build(); + } + if (msgCase_ == 3 && + commandRequestBuilder_ != null) { + result.msg_ = commandRequestBuilder_.build(); + } + if (msgCase_ == 4 && + trackingEventBuilder_ != null) { + result.msg_ = trackingEventBuilder_.build(); + } + if (msgCase_ == 6 && + pingIntervalBuilder_ != null) { + result.msg_ = pingIntervalBuilder_.build(); + } + if (msgCase_ == 7 && + acknowledgeVepRequestBuilder_ != null) { + result.msg_ = acknowledgeVepRequestBuilder_.build(); + } + if (msgCase_ == 9 && + acknowledgeServiceStatusUpdatesByVinBuilder_ != null) { + result.msg_ = acknowledgeServiceStatusUpdatesByVinBuilder_.build(); + } + if (msgCase_ == 13 && + acknowledgeServiceStatusUpdateBuilder_ != null) { + result.msg_ = acknowledgeServiceStatusUpdateBuilder_.build(); + } + if (msgCase_ == 10 && + acknowledgeUserDataUpdateBuilder_ != null) { + result.msg_ = acknowledgeUserDataUpdateBuilder_.build(); + } + if (msgCase_ == 11 && + acknowledgeUserPictureUpdateBuilder_ != null) { + result.msg_ = acknowledgeUserPictureUpdateBuilder_.build(); + } + if (msgCase_ == 12 && + acknowledgeUserPinUpdateBuilder_ != null) { + result.msg_ = acknowledgeUserPinUpdateBuilder_.build(); + } + if (msgCase_ == 14 && + updateUserJwtRequestBuilder_ != null) { + result.msg_ = updateUserJwtRequestBuilder_.build(); + } + if (msgCase_ == 15 && + acknowledgeUserVehicleAuthChangedUpdateBuilder_ != null) { + result.msg_ = acknowledgeUserVehicleAuthChangedUpdateBuilder_.build(); + } + if (msgCase_ == 16 && + acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ != null) { + result.msg_ = acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.build(); + } + if (msgCase_ == 17 && + acknowledgeVehicleUpdatedBuilder_ != null) { + result.msg_ = acknowledgeVehicleUpdatedBuilder_.build(); + } + if (msgCase_ == 18 && + acknowledgePreferredDealerChangeBuilder_ != null) { + result.msg_ = acknowledgePreferredDealerChangeBuilder_.build(); + } + if (msgCase_ == 19 && + acknowledgeApptwinCommandStatusUpdateByVinBuilder_ != null) { + result.msg_ = acknowledgeApptwinCommandStatusUpdateByVinBuilder_.build(); + } + if (msgCase_ == 20 && + logoutBuilder_ != null) { + result.msg_ = logoutBuilder_.build(); + } + if (msgCase_ == 21 && + apptwinPendingCommandsResponseBuilder_ != null) { + result.msg_ = apptwinPendingCommandsResponseBuilder_.build(); + } + if (msgCase_ == 22 && + acknowledgeVepUpdatesByVinBuilder_ != null) { + result.msg_ = acknowledgeVepUpdatesByVinBuilder_.build(); + } + if (msgCase_ == 23 && + acknowledgeAssignedVehiclesBuilder_ != null) { + result.msg_ = acknowledgeAssignedVehiclesBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Client.ClientMessage) { + return mergeFrom((com.daimler.mbcarkit.proto.Client.ClientMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Client.ClientMessage other) { + if (other == com.daimler.mbcarkit.proto.Client.ClientMessage.getDefaultInstance()) return this; + if (!other.getTrackingId().isEmpty()) { + trackingId_ = other.trackingId_; + bitField0_ |= 0x00000001; + onChanged(); + } + switch (other.getMsgCase()) { + case UNSUBSCRIBEREQUEST: { + mergeUnsubscribeRequest(other.getUnsubscribeRequest()); + break; + } + case COMMANDREQUEST: { + mergeCommandRequest(other.getCommandRequest()); + break; + } + case TRACKING_EVENT: { + mergeTrackingEvent(other.getTrackingEvent()); + break; + } + case PING_INTERVAL: { + mergePingInterval(other.getPingInterval()); + break; + } + case ACKNOWLEDGE_VEP_REQUEST: { + mergeAcknowledgeVepRequest(other.getAcknowledgeVepRequest()); + break; + } + case ACKNOWLEDGE_SERVICE_STATUS_UPDATES_BY_VIN: { + mergeAcknowledgeServiceStatusUpdatesByVin(other.getAcknowledgeServiceStatusUpdatesByVin()); + break; + } + case ACKNOWLEDGE_SERVICE_STATUS_UPDATE: { + mergeAcknowledgeServiceStatusUpdate(other.getAcknowledgeServiceStatusUpdate()); + break; + } + case ACKNOWLEDGE_USER_DATA_UPDATE: { + mergeAcknowledgeUserDataUpdate(other.getAcknowledgeUserDataUpdate()); + break; + } + case ACKNOWLEDGE_USER_PICTURE_UPDATE: { + mergeAcknowledgeUserPictureUpdate(other.getAcknowledgeUserPictureUpdate()); + break; + } + case ACKNOWLEDGE_USER_PIN_UPDATE: { + mergeAcknowledgeUserPinUpdate(other.getAcknowledgeUserPinUpdate()); + break; + } + case UPDATE_USER_JWT_REQUEST: { + mergeUpdateUserJwtRequest(other.getUpdateUserJwtRequest()); + break; + } + case ACKNOWLEDGE_USER_VEHICLE_AUTH_CHANGED_UPDATE: { + mergeAcknowledgeUserVehicleAuthChangedUpdate(other.getAcknowledgeUserVehicleAuthChangedUpdate()); + break; + } + case ACKNOWLEDGE_ABILITY_TO_GET_VEHICLE_MASTER_DATA_FROM_REST_API: { + mergeAcknowledgeAbilityToGetVehicleMasterDataFromRestApi(other.getAcknowledgeAbilityToGetVehicleMasterDataFromRestApi()); + break; + } + case ACKNOWLEDGE_VEHICLE_UPDATED: { + mergeAcknowledgeVehicleUpdated(other.getAcknowledgeVehicleUpdated()); + break; + } + case ACKNOWLEDGE_PREFERRED_DEALER_CHANGE: { + mergeAcknowledgePreferredDealerChange(other.getAcknowledgePreferredDealerChange()); + break; + } + case ACKNOWLEDGE_APPTWIN_COMMAND_STATUS_UPDATE_BY_VIN: { + mergeAcknowledgeApptwinCommandStatusUpdateByVin(other.getAcknowledgeApptwinCommandStatusUpdateByVin()); + break; + } + case LOGOUT: { + mergeLogout(other.getLogout()); + break; + } + case APPTWIN_PENDING_COMMANDS_RESPONSE: { + mergeApptwinPendingCommandsResponse(other.getApptwinPendingCommandsResponse()); + break; + } + case ACKNOWLEDGE_VEP_UPDATES_BY_VIN: { + mergeAcknowledgeVepUpdatesByVin(other.getAcknowledgeVepUpdatesByVin()); + break; + } + case ACKNOWLEDGE_ASSIGNED_VEHICLES: { + mergeAcknowledgeAssignedVehicles(other.getAcknowledgeAssignedVehicles()); + break; + } + case MSG_NOT_SET: { + break; + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 18: { + input.readMessage( + getUnsubscribeRequestFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 2; + break; + } // case 18 + case 26: { + input.readMessage( + getCommandRequestFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 3; + break; + } // case 26 + case 34: { + input.readMessage( + getTrackingEventFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 4; + break; + } // case 34 + case 42: { + trackingId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 42 + case 50: { + input.readMessage( + getPingIntervalFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 6; + break; + } // case 50 + case 58: { + input.readMessage( + getAcknowledgeVepRequestFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 7; + break; + } // case 58 + case 74: { + input.readMessage( + getAcknowledgeServiceStatusUpdatesByVinFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 9; + break; + } // case 74 + case 82: { + input.readMessage( + getAcknowledgeUserDataUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 10; + break; + } // case 82 + case 90: { + input.readMessage( + getAcknowledgeUserPictureUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 11; + break; + } // case 90 + case 98: { + input.readMessage( + getAcknowledgeUserPinUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 12; + break; + } // case 98 + case 106: { + input.readMessage( + getAcknowledgeServiceStatusUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 13; + break; + } // case 106 + case 114: { + input.readMessage( + getUpdateUserJwtRequestFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 14; + break; + } // case 114 + case 122: { + input.readMessage( + getAcknowledgeUserVehicleAuthChangedUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 15; + break; + } // case 122 + case 130: { + input.readMessage( + getAcknowledgeAbilityToGetVehicleMasterDataFromRestApiFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 16; + break; + } // case 130 + case 138: { + input.readMessage( + getAcknowledgeVehicleUpdatedFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 17; + break; + } // case 138 + case 146: { + input.readMessage( + getAcknowledgePreferredDealerChangeFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 18; + break; + } // case 146 + case 154: { + input.readMessage( + getAcknowledgeApptwinCommandStatusUpdateByVinFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 19; + break; + } // case 154 + case 162: { + input.readMessage( + getLogoutFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 20; + break; + } // case 162 + case 170: { + input.readMessage( + getApptwinPendingCommandsResponseFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 21; + break; + } // case 170 + case 178: { + input.readMessage( + getAcknowledgeVepUpdatesByVinFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 22; + break; + } // case 178 + case 186: { + input.readMessage( + getAcknowledgeAssignedVehiclesFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 23; + break; + } // case 186 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int msgCase_ = 0; + private java.lang.Object msg_; + public MsgCase + getMsgCase() { + return MsgCase.forNumber( + msgCase_); + } + + public Builder clearMsg() { + msgCase_ = 0; + msg_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object trackingId_ = ""; + /** + * string tracking_id = 5; + * @return The trackingId. + */ + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string tracking_id = 5; + * @return The bytes for trackingId. + */ + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string tracking_id = 5; + * @param value The trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + trackingId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string tracking_id = 5; + * @return This builder for chaining. + */ + public Builder clearTrackingId() { + trackingId_ = getDefaultInstance().getTrackingId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string tracking_id = 5; + * @param value The bytes for trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + trackingId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest, com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.Builder, com.daimler.mbcarkit.proto.Protos.UnsubscribeRequestOrBuilder> unsubscribeRequestBuilder_; + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + * @return Whether the unsubscribeRequest field is set. + */ + @java.lang.Override + public boolean hasUnsubscribeRequest() { + return msgCase_ == 2; + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + * @return The unsubscribeRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest getUnsubscribeRequest() { + if (unsubscribeRequestBuilder_ == null) { + if (msgCase_ == 2) { + return (com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) msg_; + } + return com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance(); + } else { + if (msgCase_ == 2) { + return unsubscribeRequestBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance(); + } + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + public Builder setUnsubscribeRequest(com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest value) { + if (unsubscribeRequestBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + unsubscribeRequestBuilder_.setMessage(value); + } + msgCase_ = 2; + return this; + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + public Builder setUnsubscribeRequest( + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.Builder builderForValue) { + if (unsubscribeRequestBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + unsubscribeRequestBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 2; + return this; + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + public Builder mergeUnsubscribeRequest(com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest value) { + if (unsubscribeRequestBuilder_ == null) { + if (msgCase_ == 2 && + msg_ != com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.newBuilder((com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 2) { + unsubscribeRequestBuilder_.mergeFrom(value); + } else { + unsubscribeRequestBuilder_.setMessage(value); + } + } + msgCase_ = 2; + return this; + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + public Builder clearUnsubscribeRequest() { + if (unsubscribeRequestBuilder_ == null) { + if (msgCase_ == 2) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 2) { + msgCase_ = 0; + msg_ = null; + } + unsubscribeRequestBuilder_.clear(); + } + return this; + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.Builder getUnsubscribeRequestBuilder() { + return getUnsubscribeRequestFieldBuilder().getBuilder(); + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequestOrBuilder getUnsubscribeRequestOrBuilder() { + if ((msgCase_ == 2) && (unsubscribeRequestBuilder_ != null)) { + return unsubscribeRequestBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 2) { + return (com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) msg_; + } + return com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance(); + } + } + /** + * .proto.UnsubscribeRequest unsubscribeRequest = 2; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest, com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.Builder, com.daimler.mbcarkit.proto.Protos.UnsubscribeRequestOrBuilder> + getUnsubscribeRequestFieldBuilder() { + if (unsubscribeRequestBuilder_ == null) { + if (!(msgCase_ == 2)) { + msg_ = com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance(); + } + unsubscribeRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest, com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.Builder, com.daimler.mbcarkit.proto.Protos.UnsubscribeRequestOrBuilder>( + (com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 2; + onChanged(); + return unsubscribeRequestBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest, com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Builder, com.daimler.mbcarkit.proto.VehicleCommands.CommandRequestOrBuilder> commandRequestBuilder_; + /** + * .proto.CommandRequest commandRequest = 3; + * @return Whether the commandRequest field is set. + */ + @java.lang.Override + public boolean hasCommandRequest() { + return msgCase_ == 3; + } + /** + * .proto.CommandRequest commandRequest = 3; + * @return The commandRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest getCommandRequest() { + if (commandRequestBuilder_ == null) { + if (msgCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) msg_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance(); + } else { + if (msgCase_ == 3) { + return commandRequestBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance(); + } + } + /** + * .proto.CommandRequest commandRequest = 3; + */ + public Builder setCommandRequest(com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest value) { + if (commandRequestBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + commandRequestBuilder_.setMessage(value); + } + msgCase_ = 3; + return this; + } + /** + * .proto.CommandRequest commandRequest = 3; + */ + public Builder setCommandRequest( + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Builder builderForValue) { + if (commandRequestBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + commandRequestBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 3; + return this; + } + /** + * .proto.CommandRequest commandRequest = 3; + */ + public Builder mergeCommandRequest(com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest value) { + if (commandRequestBuilder_ == null) { + if (msgCase_ == 3 && + msg_ != com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 3) { + commandRequestBuilder_.mergeFrom(value); + } else { + commandRequestBuilder_.setMessage(value); + } + } + msgCase_ = 3; + return this; + } + /** + * .proto.CommandRequest commandRequest = 3; + */ + public Builder clearCommandRequest() { + if (commandRequestBuilder_ == null) { + if (msgCase_ == 3) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 3) { + msgCase_ = 0; + msg_ = null; + } + commandRequestBuilder_.clear(); + } + return this; + } + /** + * .proto.CommandRequest commandRequest = 3; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Builder getCommandRequestBuilder() { + return getCommandRequestFieldBuilder().getBuilder(); + } + /** + * .proto.CommandRequest commandRequest = 3; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequestOrBuilder getCommandRequestOrBuilder() { + if ((msgCase_ == 3) && (commandRequestBuilder_ != null)) { + return commandRequestBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) msg_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance(); + } + } + /** + * .proto.CommandRequest commandRequest = 3; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest, com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Builder, com.daimler.mbcarkit.proto.VehicleCommands.CommandRequestOrBuilder> + getCommandRequestFieldBuilder() { + if (commandRequestBuilder_ == null) { + if (!(msgCase_ == 3)) { + msg_ = com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance(); + } + commandRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest, com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Builder, com.daimler.mbcarkit.proto.VehicleCommands.CommandRequestOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 3; + onChanged(); + return commandRequestBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEventOrBuilder> trackingEventBuilder_; + /** + * .proto.TrackingEvent tracking_event = 4; + * @return Whether the trackingEvent field is set. + */ + @java.lang.Override + public boolean hasTrackingEvent() { + return msgCase_ == 4; + } + /** + * .proto.TrackingEvent tracking_event = 4; + * @return The trackingEvent. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getTrackingEvent() { + if (trackingEventBuilder_ == null) { + if (msgCase_ == 4) { + return (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance(); + } else { + if (msgCase_ == 4) { + return trackingEventBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance(); + } + } + /** + * .proto.TrackingEvent tracking_event = 4; + */ + public Builder setTrackingEvent(com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent value) { + if (trackingEventBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + trackingEventBuilder_.setMessage(value); + } + msgCase_ = 4; + return this; + } + /** + * .proto.TrackingEvent tracking_event = 4; + */ + public Builder setTrackingEvent( + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder builderForValue) { + if (trackingEventBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + trackingEventBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 4; + return this; + } + /** + * .proto.TrackingEvent tracking_event = 4; + */ + public Builder mergeTrackingEvent(com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent value) { + if (trackingEventBuilder_ == null) { + if (msgCase_ == 4 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 4) { + trackingEventBuilder_.mergeFrom(value); + } else { + trackingEventBuilder_.setMessage(value); + } + } + msgCase_ = 4; + return this; + } + /** + * .proto.TrackingEvent tracking_event = 4; + */ + public Builder clearTrackingEvent() { + if (trackingEventBuilder_ == null) { + if (msgCase_ == 4) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 4) { + msgCase_ = 0; + msg_ = null; + } + trackingEventBuilder_.clear(); + } + return this; + } + /** + * .proto.TrackingEvent tracking_event = 4; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder getTrackingEventBuilder() { + return getTrackingEventFieldBuilder().getBuilder(); + } + /** + * .proto.TrackingEvent tracking_event = 4; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEventOrBuilder getTrackingEventOrBuilder() { + if ((msgCase_ == 4) && (trackingEventBuilder_ != null)) { + return trackingEventBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 4) { + return (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance(); + } + } + /** + * .proto.TrackingEvent tracking_event = 4; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEventOrBuilder> + getTrackingEventFieldBuilder() { + if (trackingEventBuilder_ == null) { + if (!(msgCase_ == 4)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance(); + } + trackingEventBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEventOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 4; + onChanged(); + return trackingEventBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingIntervalOrBuilder> pingIntervalBuilder_; + /** + * .proto.ConfigurePingInterval ping_interval = 6; + * @return Whether the pingInterval field is set. + */ + @java.lang.Override + public boolean hasPingInterval() { + return msgCase_ == 6; + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + * @return The pingInterval. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getPingInterval() { + if (pingIntervalBuilder_ == null) { + if (msgCase_ == 6) { + return (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance(); + } else { + if (msgCase_ == 6) { + return pingIntervalBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance(); + } + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + public Builder setPingInterval(com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval value) { + if (pingIntervalBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + pingIntervalBuilder_.setMessage(value); + } + msgCase_ = 6; + return this; + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + public Builder setPingInterval( + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder builderForValue) { + if (pingIntervalBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + pingIntervalBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 6; + return this; + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + public Builder mergePingInterval(com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval value) { + if (pingIntervalBuilder_ == null) { + if (msgCase_ == 6 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 6) { + pingIntervalBuilder_.mergeFrom(value); + } else { + pingIntervalBuilder_.setMessage(value); + } + } + msgCase_ = 6; + return this; + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + public Builder clearPingInterval() { + if (pingIntervalBuilder_ == null) { + if (msgCase_ == 6) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 6) { + msgCase_ = 0; + msg_ = null; + } + pingIntervalBuilder_.clear(); + } + return this; + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder getPingIntervalBuilder() { + return getPingIntervalFieldBuilder().getBuilder(); + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingIntervalOrBuilder getPingIntervalOrBuilder() { + if ((msgCase_ == 6) && (pingIntervalBuilder_ != null)) { + return pingIntervalBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 6) { + return (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance(); + } + } + /** + * .proto.ConfigurePingInterval ping_interval = 6; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingIntervalOrBuilder> + getPingIntervalFieldBuilder() { + if (pingIntervalBuilder_ == null) { + if (!(msgCase_ == 6)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance(); + } + pingIntervalBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingIntervalOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 6; + onChanged(); + return pingIntervalBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequestOrBuilder> acknowledgeVepRequestBuilder_; + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + * @return Whether the acknowledgeVepRequest field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeVepRequest() { + return msgCase_ == 7; + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + * @return The acknowledgeVepRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getAcknowledgeVepRequest() { + if (acknowledgeVepRequestBuilder_ == null) { + if (msgCase_ == 7) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance(); + } else { + if (msgCase_ == 7) { + return acknowledgeVepRequestBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + public Builder setAcknowledgeVepRequest(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest value) { + if (acknowledgeVepRequestBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeVepRequestBuilder_.setMessage(value); + } + msgCase_ = 7; + return this; + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + public Builder setAcknowledgeVepRequest( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder builderForValue) { + if (acknowledgeVepRequestBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeVepRequestBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 7; + return this; + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + public Builder mergeAcknowledgeVepRequest(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest value) { + if (acknowledgeVepRequestBuilder_ == null) { + if (msgCase_ == 7 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 7) { + acknowledgeVepRequestBuilder_.mergeFrom(value); + } else { + acknowledgeVepRequestBuilder_.setMessage(value); + } + } + msgCase_ = 7; + return this; + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + public Builder clearAcknowledgeVepRequest() { + if (acknowledgeVepRequestBuilder_ == null) { + if (msgCase_ == 7) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 7) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeVepRequestBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder getAcknowledgeVepRequestBuilder() { + return getAcknowledgeVepRequestFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequestOrBuilder getAcknowledgeVepRequestOrBuilder() { + if ((msgCase_ == 7) && (acknowledgeVepRequestBuilder_ != null)) { + return acknowledgeVepRequestBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 7) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeVEPRequest acknowledge_vep_request = 7; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequestOrBuilder> + getAcknowledgeVepRequestFieldBuilder() { + if (acknowledgeVepRequestBuilder_ == null) { + if (!(msgCase_ == 7)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance(); + } + acknowledgeVepRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequestOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 7; + onChanged(); + return acknowledgeVepRequestBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVINOrBuilder> acknowledgeServiceStatusUpdatesByVinBuilder_; + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + * @return Whether the acknowledgeServiceStatusUpdatesByVin field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeServiceStatusUpdatesByVin() { + return msgCase_ == 9; + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + * @return The acknowledgeServiceStatusUpdatesByVin. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN getAcknowledgeServiceStatusUpdatesByVin() { + if (acknowledgeServiceStatusUpdatesByVinBuilder_ == null) { + if (msgCase_ == 9) { + return (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance(); + } else { + if (msgCase_ == 9) { + return acknowledgeServiceStatusUpdatesByVinBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + public Builder setAcknowledgeServiceStatusUpdatesByVin(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN value) { + if (acknowledgeServiceStatusUpdatesByVinBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeServiceStatusUpdatesByVinBuilder_.setMessage(value); + } + msgCase_ = 9; + return this; + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + public Builder setAcknowledgeServiceStatusUpdatesByVin( + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.Builder builderForValue) { + if (acknowledgeServiceStatusUpdatesByVinBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeServiceStatusUpdatesByVinBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 9; + return this; + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + public Builder mergeAcknowledgeServiceStatusUpdatesByVin(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN value) { + if (acknowledgeServiceStatusUpdatesByVinBuilder_ == null) { + if (msgCase_ == 9 && + msg_ != com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 9) { + acknowledgeServiceStatusUpdatesByVinBuilder_.mergeFrom(value); + } else { + acknowledgeServiceStatusUpdatesByVinBuilder_.setMessage(value); + } + } + msgCase_ = 9; + return this; + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + public Builder clearAcknowledgeServiceStatusUpdatesByVin() { + if (acknowledgeServiceStatusUpdatesByVinBuilder_ == null) { + if (msgCase_ == 9) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 9) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeServiceStatusUpdatesByVinBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.Builder getAcknowledgeServiceStatusUpdatesByVinBuilder() { + return getAcknowledgeServiceStatusUpdatesByVinFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVINOrBuilder getAcknowledgeServiceStatusUpdatesByVinOrBuilder() { + if ((msgCase_ == 9) && (acknowledgeServiceStatusUpdatesByVinBuilder_ != null)) { + return acknowledgeServiceStatusUpdatesByVinBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 9) { + return (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeServiceStatusUpdatesByVIN acknowledge_service_status_updates_by_vin = 9; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVINOrBuilder> + getAcknowledgeServiceStatusUpdatesByVinFieldBuilder() { + if (acknowledgeServiceStatusUpdatesByVinBuilder_ == null) { + if (!(msgCase_ == 9)) { + msg_ = com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance(); + } + acknowledgeServiceStatusUpdatesByVinBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVINOrBuilder>( + (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 9; + onChanged(); + return acknowledgeServiceStatusUpdatesByVinBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdateOrBuilder> acknowledgeServiceStatusUpdateBuilder_; + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + * @return Whether the acknowledgeServiceStatusUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeServiceStatusUpdate() { + return msgCase_ == 13; + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + * @return The acknowledgeServiceStatusUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate getAcknowledgeServiceStatusUpdate() { + if (acknowledgeServiceStatusUpdateBuilder_ == null) { + if (msgCase_ == 13) { + return (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 13) { + return acknowledgeServiceStatusUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + public Builder setAcknowledgeServiceStatusUpdate(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate value) { + if (acknowledgeServiceStatusUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeServiceStatusUpdateBuilder_.setMessage(value); + } + msgCase_ = 13; + return this; + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + public Builder setAcknowledgeServiceStatusUpdate( + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.Builder builderForValue) { + if (acknowledgeServiceStatusUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeServiceStatusUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 13; + return this; + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + public Builder mergeAcknowledgeServiceStatusUpdate(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate value) { + if (acknowledgeServiceStatusUpdateBuilder_ == null) { + if (msgCase_ == 13 && + msg_ != com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.newBuilder((com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 13) { + acknowledgeServiceStatusUpdateBuilder_.mergeFrom(value); + } else { + acknowledgeServiceStatusUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 13; + return this; + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + public Builder clearAcknowledgeServiceStatusUpdate() { + if (acknowledgeServiceStatusUpdateBuilder_ == null) { + if (msgCase_ == 13) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 13) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeServiceStatusUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.Builder getAcknowledgeServiceStatusUpdateBuilder() { + return getAcknowledgeServiceStatusUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdateOrBuilder getAcknowledgeServiceStatusUpdateOrBuilder() { + if ((msgCase_ == 13) && (acknowledgeServiceStatusUpdateBuilder_ != null)) { + return acknowledgeServiceStatusUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 13) { + return (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeServiceStatusUpdate acknowledge_service_status_update = 13; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdateOrBuilder> + getAcknowledgeServiceStatusUpdateFieldBuilder() { + if (acknowledgeServiceStatusUpdateBuilder_ == null) { + if (!(msgCase_ == 13)) { + msg_ = com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance(); + } + acknowledgeServiceStatusUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 13; + onChanged(); + return acknowledgeServiceStatusUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdateOrBuilder> acknowledgeUserDataUpdateBuilder_; + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + * @return Whether the acknowledgeUserDataUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeUserDataUpdate() { + return msgCase_ == 10; + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + * @return The acknowledgeUserDataUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate getAcknowledgeUserDataUpdate() { + if (acknowledgeUserDataUpdateBuilder_ == null) { + if (msgCase_ == 10) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 10) { + return acknowledgeUserDataUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + public Builder setAcknowledgeUserDataUpdate(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate value) { + if (acknowledgeUserDataUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeUserDataUpdateBuilder_.setMessage(value); + } + msgCase_ = 10; + return this; + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + public Builder setAcknowledgeUserDataUpdate( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.Builder builderForValue) { + if (acknowledgeUserDataUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeUserDataUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 10; + return this; + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + public Builder mergeAcknowledgeUserDataUpdate(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate value) { + if (acknowledgeUserDataUpdateBuilder_ == null) { + if (msgCase_ == 10 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 10) { + acknowledgeUserDataUpdateBuilder_.mergeFrom(value); + } else { + acknowledgeUserDataUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 10; + return this; + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + public Builder clearAcknowledgeUserDataUpdate() { + if (acknowledgeUserDataUpdateBuilder_ == null) { + if (msgCase_ == 10) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 10) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeUserDataUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.Builder getAcknowledgeUserDataUpdateBuilder() { + return getAcknowledgeUserDataUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdateOrBuilder getAcknowledgeUserDataUpdateOrBuilder() { + if ((msgCase_ == 10) && (acknowledgeUserDataUpdateBuilder_ != null)) { + return acknowledgeUserDataUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 10) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeUserDataUpdate acknowledge_user_data_update = 10; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdateOrBuilder> + getAcknowledgeUserDataUpdateFieldBuilder() { + if (acknowledgeUserDataUpdateBuilder_ == null) { + if (!(msgCase_ == 10)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance(); + } + acknowledgeUserDataUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 10; + onChanged(); + return acknowledgeUserDataUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdateOrBuilder> acknowledgeUserPictureUpdateBuilder_; + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + * @return Whether the acknowledgeUserPictureUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeUserPictureUpdate() { + return msgCase_ == 11; + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + * @return The acknowledgeUserPictureUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate getAcknowledgeUserPictureUpdate() { + if (acknowledgeUserPictureUpdateBuilder_ == null) { + if (msgCase_ == 11) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 11) { + return acknowledgeUserPictureUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + public Builder setAcknowledgeUserPictureUpdate(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate value) { + if (acknowledgeUserPictureUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeUserPictureUpdateBuilder_.setMessage(value); + } + msgCase_ = 11; + return this; + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + public Builder setAcknowledgeUserPictureUpdate( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.Builder builderForValue) { + if (acknowledgeUserPictureUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeUserPictureUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 11; + return this; + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + public Builder mergeAcknowledgeUserPictureUpdate(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate value) { + if (acknowledgeUserPictureUpdateBuilder_ == null) { + if (msgCase_ == 11 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 11) { + acknowledgeUserPictureUpdateBuilder_.mergeFrom(value); + } else { + acknowledgeUserPictureUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 11; + return this; + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + public Builder clearAcknowledgeUserPictureUpdate() { + if (acknowledgeUserPictureUpdateBuilder_ == null) { + if (msgCase_ == 11) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 11) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeUserPictureUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.Builder getAcknowledgeUserPictureUpdateBuilder() { + return getAcknowledgeUserPictureUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdateOrBuilder getAcknowledgeUserPictureUpdateOrBuilder() { + if ((msgCase_ == 11) && (acknowledgeUserPictureUpdateBuilder_ != null)) { + return acknowledgeUserPictureUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 11) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeUserPictureUpdate acknowledge_user_picture_update = 11; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdateOrBuilder> + getAcknowledgeUserPictureUpdateFieldBuilder() { + if (acknowledgeUserPictureUpdateBuilder_ == null) { + if (!(msgCase_ == 11)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance(); + } + acknowledgeUserPictureUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 11; + onChanged(); + return acknowledgeUserPictureUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdateOrBuilder> acknowledgeUserPinUpdateBuilder_; + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + * @return Whether the acknowledgeUserPinUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeUserPinUpdate() { + return msgCase_ == 12; + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + * @return The acknowledgeUserPinUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate getAcknowledgeUserPinUpdate() { + if (acknowledgeUserPinUpdateBuilder_ == null) { + if (msgCase_ == 12) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 12) { + return acknowledgeUserPinUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + public Builder setAcknowledgeUserPinUpdate(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate value) { + if (acknowledgeUserPinUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeUserPinUpdateBuilder_.setMessage(value); + } + msgCase_ = 12; + return this; + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + public Builder setAcknowledgeUserPinUpdate( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.Builder builderForValue) { + if (acknowledgeUserPinUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeUserPinUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 12; + return this; + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + public Builder mergeAcknowledgeUserPinUpdate(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate value) { + if (acknowledgeUserPinUpdateBuilder_ == null) { + if (msgCase_ == 12 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 12) { + acknowledgeUserPinUpdateBuilder_.mergeFrom(value); + } else { + acknowledgeUserPinUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 12; + return this; + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + public Builder clearAcknowledgeUserPinUpdate() { + if (acknowledgeUserPinUpdateBuilder_ == null) { + if (msgCase_ == 12) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 12) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeUserPinUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.Builder getAcknowledgeUserPinUpdateBuilder() { + return getAcknowledgeUserPinUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdateOrBuilder getAcknowledgeUserPinUpdateOrBuilder() { + if ((msgCase_ == 12) && (acknowledgeUserPinUpdateBuilder_ != null)) { + return acknowledgeUserPinUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 12) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeUserPINUpdate acknowledge_user_pin_update = 12; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdateOrBuilder> + getAcknowledgeUserPinUpdateFieldBuilder() { + if (acknowledgeUserPinUpdateBuilder_ == null) { + if (!(msgCase_ == 12)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance(); + } + acknowledgeUserPinUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 12; + onChanged(); + return acknowledgeUserPinUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest, com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.Builder, com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequestOrBuilder> updateUserJwtRequestBuilder_; + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + * @return Whether the updateUserJwtRequest field is set. + */ + @java.lang.Override + public boolean hasUpdateUserJwtRequest() { + return msgCase_ == 14; + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + * @return The updateUserJwtRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest getUpdateUserJwtRequest() { + if (updateUserJwtRequestBuilder_ == null) { + if (msgCase_ == 14) { + return (com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance(); + } else { + if (msgCase_ == 14) { + return updateUserJwtRequestBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance(); + } + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + public Builder setUpdateUserJwtRequest(com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest value) { + if (updateUserJwtRequestBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + updateUserJwtRequestBuilder_.setMessage(value); + } + msgCase_ = 14; + return this; + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + public Builder setUpdateUserJwtRequest( + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.Builder builderForValue) { + if (updateUserJwtRequestBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + updateUserJwtRequestBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 14; + return this; + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + public Builder mergeUpdateUserJwtRequest(com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest value) { + if (updateUserJwtRequestBuilder_ == null) { + if (msgCase_ == 14 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 14) { + updateUserJwtRequestBuilder_.mergeFrom(value); + } else { + updateUserJwtRequestBuilder_.setMessage(value); + } + } + msgCase_ = 14; + return this; + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + public Builder clearUpdateUserJwtRequest() { + if (updateUserJwtRequestBuilder_ == null) { + if (msgCase_ == 14) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 14) { + msgCase_ = 0; + msg_ = null; + } + updateUserJwtRequestBuilder_.clear(); + } + return this; + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.Builder getUpdateUserJwtRequestBuilder() { + return getUpdateUserJwtRequestFieldBuilder().getBuilder(); + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequestOrBuilder getUpdateUserJwtRequestOrBuilder() { + if ((msgCase_ == 14) && (updateUserJwtRequestBuilder_ != null)) { + return updateUserJwtRequestBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 14) { + return (com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance(); + } + } + /** + * .proto.UpdateUserJWTRequest update_user_jwt_request = 14; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest, com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.Builder, com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequestOrBuilder> + getUpdateUserJwtRequestFieldBuilder() { + if (updateUserJwtRequestBuilder_ == null) { + if (!(msgCase_ == 14)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance(); + } + updateUserJwtRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest, com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.Builder, com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequestOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 14; + onChanged(); + return updateUserJwtRequestBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdateOrBuilder> acknowledgeUserVehicleAuthChangedUpdateBuilder_; + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + * @return Whether the acknowledgeUserVehicleAuthChangedUpdate field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeUserVehicleAuthChangedUpdate() { + return msgCase_ == 15; + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + * @return The acknowledgeUserVehicleAuthChangedUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate getAcknowledgeUserVehicleAuthChangedUpdate() { + if (acknowledgeUserVehicleAuthChangedUpdateBuilder_ == null) { + if (msgCase_ == 15) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 15) { + return acknowledgeUserVehicleAuthChangedUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + public Builder setAcknowledgeUserVehicleAuthChangedUpdate(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate value) { + if (acknowledgeUserVehicleAuthChangedUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeUserVehicleAuthChangedUpdateBuilder_.setMessage(value); + } + msgCase_ = 15; + return this; + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + public Builder setAcknowledgeUserVehicleAuthChangedUpdate( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.Builder builderForValue) { + if (acknowledgeUserVehicleAuthChangedUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeUserVehicleAuthChangedUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 15; + return this; + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + public Builder mergeAcknowledgeUserVehicleAuthChangedUpdate(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate value) { + if (acknowledgeUserVehicleAuthChangedUpdateBuilder_ == null) { + if (msgCase_ == 15 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 15) { + acknowledgeUserVehicleAuthChangedUpdateBuilder_.mergeFrom(value); + } else { + acknowledgeUserVehicleAuthChangedUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 15; + return this; + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + public Builder clearAcknowledgeUserVehicleAuthChangedUpdate() { + if (acknowledgeUserVehicleAuthChangedUpdateBuilder_ == null) { + if (msgCase_ == 15) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 15) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeUserVehicleAuthChangedUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.Builder getAcknowledgeUserVehicleAuthChangedUpdateBuilder() { + return getAcknowledgeUserVehicleAuthChangedUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdateOrBuilder getAcknowledgeUserVehicleAuthChangedUpdateOrBuilder() { + if ((msgCase_ == 15) && (acknowledgeUserVehicleAuthChangedUpdateBuilder_ != null)) { + return acknowledgeUserVehicleAuthChangedUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 15) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeUserVehicleAuthChangedUpdate acknowledge_user_vehicle_auth_changed_update = 15; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdateOrBuilder> + getAcknowledgeUserVehicleAuthChangedUpdateFieldBuilder() { + if (acknowledgeUserVehicleAuthChangedUpdateBuilder_ == null) { + if (!(msgCase_ == 15)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance(); + } + acknowledgeUserVehicleAuthChangedUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 15; + onChanged(); + return acknowledgeUserVehicleAuthChangedUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder> acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_; + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + * @return Whether the acknowledgeAbilityToGetVehicleMasterDataFromRestApi field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeAbilityToGetVehicleMasterDataFromRestApi() { + return msgCase_ == 16; + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + * @return The acknowledgeAbilityToGetVehicleMasterDataFromRestApi. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI getAcknowledgeAbilityToGetVehicleMasterDataFromRestApi() { + if (acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ == null) { + if (msgCase_ == 16) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance(); + } else { + if (msgCase_ == 16) { + return acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + public Builder setAcknowledgeAbilityToGetVehicleMasterDataFromRestApi(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI value) { + if (acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.setMessage(value); + } + msgCase_ = 16; + return this; + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + public Builder setAcknowledgeAbilityToGetVehicleMasterDataFromRestApi( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.Builder builderForValue) { + if (acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 16; + return this; + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + public Builder mergeAcknowledgeAbilityToGetVehicleMasterDataFromRestApi(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI value) { + if (acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ == null) { + if (msgCase_ == 16 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.newBuilder((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 16) { + acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.mergeFrom(value); + } else { + acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.setMessage(value); + } + } + msgCase_ = 16; + return this; + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + public Builder clearAcknowledgeAbilityToGetVehicleMasterDataFromRestApi() { + if (acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ == null) { + if (msgCase_ == 16) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 16) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.Builder getAcknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder() { + return getAcknowledgeAbilityToGetVehicleMasterDataFromRestApiFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder getAcknowledgeAbilityToGetVehicleMasterDataFromRestApiOrBuilder() { + if ((msgCase_ == 16) && (acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ != null)) { + return acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 16) { + return (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI acknowledge_ability_to_get_vehicle_master_data_from_rest_api = 16; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder> + getAcknowledgeAbilityToGetVehicleMasterDataFromRestApiFieldBuilder() { + if (acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ == null) { + if (!(msgCase_ == 16)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance(); + } + acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.Builder, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 16; + onChanged(); + return acknowledgeAbilityToGetVehicleMasterDataFromRestApiBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdatedOrBuilder> acknowledgeVehicleUpdatedBuilder_; + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + * @return Whether the acknowledgeVehicleUpdated field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeVehicleUpdated() { + return msgCase_ == 17; + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + * @return The acknowledgeVehicleUpdated. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getAcknowledgeVehicleUpdated() { + if (acknowledgeVehicleUpdatedBuilder_ == null) { + if (msgCase_ == 17) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance(); + } else { + if (msgCase_ == 17) { + return acknowledgeVehicleUpdatedBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + public Builder setAcknowledgeVehicleUpdated(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated value) { + if (acknowledgeVehicleUpdatedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeVehicleUpdatedBuilder_.setMessage(value); + } + msgCase_ = 17; + return this; + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + public Builder setAcknowledgeVehicleUpdated( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder builderForValue) { + if (acknowledgeVehicleUpdatedBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeVehicleUpdatedBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 17; + return this; + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + public Builder mergeAcknowledgeVehicleUpdated(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated value) { + if (acknowledgeVehicleUpdatedBuilder_ == null) { + if (msgCase_ == 17 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 17) { + acknowledgeVehicleUpdatedBuilder_.mergeFrom(value); + } else { + acknowledgeVehicleUpdatedBuilder_.setMessage(value); + } + } + msgCase_ = 17; + return this; + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + public Builder clearAcknowledgeVehicleUpdated() { + if (acknowledgeVehicleUpdatedBuilder_ == null) { + if (msgCase_ == 17) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 17) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeVehicleUpdatedBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder getAcknowledgeVehicleUpdatedBuilder() { + return getAcknowledgeVehicleUpdatedFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdatedOrBuilder getAcknowledgeVehicleUpdatedOrBuilder() { + if ((msgCase_ == 17) && (acknowledgeVehicleUpdatedBuilder_ != null)) { + return acknowledgeVehicleUpdatedBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 17) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeVehicleUpdated acknowledge_vehicle_updated = 17; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdatedOrBuilder> + getAcknowledgeVehicleUpdatedFieldBuilder() { + if (acknowledgeVehicleUpdatedBuilder_ == null) { + if (!(msgCase_ == 17)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance(); + } + acknowledgeVehicleUpdatedBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdatedOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 17; + onChanged(); + return acknowledgeVehicleUpdatedBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChangeOrBuilder> acknowledgePreferredDealerChangeBuilder_; + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + * @return Whether the acknowledgePreferredDealerChange field is set. + */ + @java.lang.Override + public boolean hasAcknowledgePreferredDealerChange() { + return msgCase_ == 18; + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + * @return The acknowledgePreferredDealerChange. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getAcknowledgePreferredDealerChange() { + if (acknowledgePreferredDealerChangeBuilder_ == null) { + if (msgCase_ == 18) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance(); + } else { + if (msgCase_ == 18) { + return acknowledgePreferredDealerChangeBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + public Builder setAcknowledgePreferredDealerChange(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange value) { + if (acknowledgePreferredDealerChangeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgePreferredDealerChangeBuilder_.setMessage(value); + } + msgCase_ = 18; + return this; + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + public Builder setAcknowledgePreferredDealerChange( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder builderForValue) { + if (acknowledgePreferredDealerChangeBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgePreferredDealerChangeBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 18; + return this; + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + public Builder mergeAcknowledgePreferredDealerChange(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange value) { + if (acknowledgePreferredDealerChangeBuilder_ == null) { + if (msgCase_ == 18 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 18) { + acknowledgePreferredDealerChangeBuilder_.mergeFrom(value); + } else { + acknowledgePreferredDealerChangeBuilder_.setMessage(value); + } + } + msgCase_ = 18; + return this; + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + public Builder clearAcknowledgePreferredDealerChange() { + if (acknowledgePreferredDealerChangeBuilder_ == null) { + if (msgCase_ == 18) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 18) { + msgCase_ = 0; + msg_ = null; + } + acknowledgePreferredDealerChangeBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder getAcknowledgePreferredDealerChangeBuilder() { + return getAcknowledgePreferredDealerChangeFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChangeOrBuilder getAcknowledgePreferredDealerChangeOrBuilder() { + if ((msgCase_ == 18) && (acknowledgePreferredDealerChangeBuilder_ != null)) { + return acknowledgePreferredDealerChangeBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 18) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgePreferredDealerChange acknowledge_preferred_dealer_change = 18; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChangeOrBuilder> + getAcknowledgePreferredDealerChangeFieldBuilder() { + if (acknowledgePreferredDealerChangeBuilder_ == null) { + if (!(msgCase_ == 18)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance(); + } + acknowledgePreferredDealerChangeBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChangeOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 18; + onChanged(); + return acknowledgePreferredDealerChangeBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder> acknowledgeApptwinCommandStatusUpdateByVinBuilder_; + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + * @return Whether the acknowledgeApptwinCommandStatusUpdateByVin field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeApptwinCommandStatusUpdateByVin() { + return msgCase_ == 19; + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + * @return The acknowledgeApptwinCommandStatusUpdateByVin. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN getAcknowledgeApptwinCommandStatusUpdateByVin() { + if (acknowledgeApptwinCommandStatusUpdateByVinBuilder_ == null) { + if (msgCase_ == 19) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } else { + if (msgCase_ == 19) { + return acknowledgeApptwinCommandStatusUpdateByVinBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + public Builder setAcknowledgeApptwinCommandStatusUpdateByVin(com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN value) { + if (acknowledgeApptwinCommandStatusUpdateByVinBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeApptwinCommandStatusUpdateByVinBuilder_.setMessage(value); + } + msgCase_ = 19; + return this; + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + public Builder setAcknowledgeApptwinCommandStatusUpdateByVin( + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.Builder builderForValue) { + if (acknowledgeApptwinCommandStatusUpdateByVinBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeApptwinCommandStatusUpdateByVinBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 19; + return this; + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + public Builder mergeAcknowledgeApptwinCommandStatusUpdateByVin(com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN value) { + if (acknowledgeApptwinCommandStatusUpdateByVinBuilder_ == null) { + if (msgCase_ == 19 && + msg_ != com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 19) { + acknowledgeApptwinCommandStatusUpdateByVinBuilder_.mergeFrom(value); + } else { + acknowledgeApptwinCommandStatusUpdateByVinBuilder_.setMessage(value); + } + } + msgCase_ = 19; + return this; + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + public Builder clearAcknowledgeApptwinCommandStatusUpdateByVin() { + if (acknowledgeApptwinCommandStatusUpdateByVinBuilder_ == null) { + if (msgCase_ == 19) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 19) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeApptwinCommandStatusUpdateByVinBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.Builder getAcknowledgeApptwinCommandStatusUpdateByVinBuilder() { + return getAcknowledgeApptwinCommandStatusUpdateByVinFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder getAcknowledgeApptwinCommandStatusUpdateByVinOrBuilder() { + if ((msgCase_ == 19) && (acknowledgeApptwinCommandStatusUpdateByVinBuilder_ != null)) { + return acknowledgeApptwinCommandStatusUpdateByVinBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 19) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN acknowledge_apptwin_command_status_update_by_vin = 19; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder> + getAcknowledgeApptwinCommandStatusUpdateByVinFieldBuilder() { + if (acknowledgeApptwinCommandStatusUpdateByVinBuilder_ == null) { + if (!(msgCase_ == 19)) { + msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + acknowledgeApptwinCommandStatusUpdateByVinBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder>( + (com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 19; + onChanged(); + return acknowledgeApptwinCommandStatusUpdateByVinBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Client.Logout, com.daimler.mbcarkit.proto.Client.Logout.Builder, com.daimler.mbcarkit.proto.Client.LogoutOrBuilder> logoutBuilder_; + /** + * .proto.Logout logout = 20; + * @return Whether the logout field is set. + */ + @java.lang.Override + public boolean hasLogout() { + return msgCase_ == 20; + } + /** + * .proto.Logout logout = 20; + * @return The logout. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.Logout getLogout() { + if (logoutBuilder_ == null) { + if (msgCase_ == 20) { + return (com.daimler.mbcarkit.proto.Client.Logout) msg_; + } + return com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance(); + } else { + if (msgCase_ == 20) { + return logoutBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance(); + } + } + /** + * .proto.Logout logout = 20; + */ + public Builder setLogout(com.daimler.mbcarkit.proto.Client.Logout value) { + if (logoutBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + logoutBuilder_.setMessage(value); + } + msgCase_ = 20; + return this; + } + /** + * .proto.Logout logout = 20; + */ + public Builder setLogout( + com.daimler.mbcarkit.proto.Client.Logout.Builder builderForValue) { + if (logoutBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + logoutBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 20; + return this; + } + /** + * .proto.Logout logout = 20; + */ + public Builder mergeLogout(com.daimler.mbcarkit.proto.Client.Logout value) { + if (logoutBuilder_ == null) { + if (msgCase_ == 20 && + msg_ != com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.Client.Logout.newBuilder((com.daimler.mbcarkit.proto.Client.Logout) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 20) { + logoutBuilder_.mergeFrom(value); + } else { + logoutBuilder_.setMessage(value); + } + } + msgCase_ = 20; + return this; + } + /** + * .proto.Logout logout = 20; + */ + public Builder clearLogout() { + if (logoutBuilder_ == null) { + if (msgCase_ == 20) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 20) { + msgCase_ = 0; + msg_ = null; + } + logoutBuilder_.clear(); + } + return this; + } + /** + * .proto.Logout logout = 20; + */ + public com.daimler.mbcarkit.proto.Client.Logout.Builder getLogoutBuilder() { + return getLogoutFieldBuilder().getBuilder(); + } + /** + * .proto.Logout logout = 20; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.LogoutOrBuilder getLogoutOrBuilder() { + if ((msgCase_ == 20) && (logoutBuilder_ != null)) { + return logoutBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 20) { + return (com.daimler.mbcarkit.proto.Client.Logout) msg_; + } + return com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance(); + } + } + /** + * .proto.Logout logout = 20; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Client.Logout, com.daimler.mbcarkit.proto.Client.Logout.Builder, com.daimler.mbcarkit.proto.Client.LogoutOrBuilder> + getLogoutFieldBuilder() { + if (logoutBuilder_ == null) { + if (!(msgCase_ == 20)) { + msg_ = com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance(); + } + logoutBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Client.Logout, com.daimler.mbcarkit.proto.Client.Logout.Builder, com.daimler.mbcarkit.proto.Client.LogoutOrBuilder>( + (com.daimler.mbcarkit.proto.Client.Logout) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 20; + onChanged(); + return logoutBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponseOrBuilder> apptwinPendingCommandsResponseBuilder_; + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + * @return Whether the apptwinPendingCommandsResponse field is set. + */ + @java.lang.Override + public boolean hasApptwinPendingCommandsResponse() { + return msgCase_ == 21; + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + * @return The apptwinPendingCommandsResponse. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse getApptwinPendingCommandsResponse() { + if (apptwinPendingCommandsResponseBuilder_ == null) { + if (msgCase_ == 21) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance(); + } else { + if (msgCase_ == 21) { + return apptwinPendingCommandsResponseBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance(); + } + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + public Builder setApptwinPendingCommandsResponse(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse value) { + if (apptwinPendingCommandsResponseBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + apptwinPendingCommandsResponseBuilder_.setMessage(value); + } + msgCase_ = 21; + return this; + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + public Builder setApptwinPendingCommandsResponse( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.Builder builderForValue) { + if (apptwinPendingCommandsResponseBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + apptwinPendingCommandsResponseBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 21; + return this; + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + public Builder mergeApptwinPendingCommandsResponse(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse value) { + if (apptwinPendingCommandsResponseBuilder_ == null) { + if (msgCase_ == 21 && + msg_ != com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.newBuilder((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 21) { + apptwinPendingCommandsResponseBuilder_.mergeFrom(value); + } else { + apptwinPendingCommandsResponseBuilder_.setMessage(value); + } + } + msgCase_ = 21; + return this; + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + public Builder clearApptwinPendingCommandsResponse() { + if (apptwinPendingCommandsResponseBuilder_ == null) { + if (msgCase_ == 21) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 21) { + msgCase_ = 0; + msg_ = null; + } + apptwinPendingCommandsResponseBuilder_.clear(); + } + return this; + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.Builder getApptwinPendingCommandsResponseBuilder() { + return getApptwinPendingCommandsResponseFieldBuilder().getBuilder(); + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponseOrBuilder getApptwinPendingCommandsResponseOrBuilder() { + if ((msgCase_ == 21) && (apptwinPendingCommandsResponseBuilder_ != null)) { + return apptwinPendingCommandsResponseBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 21) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance(); + } + } + /** + * .proto.AppTwinPendingCommandsResponse apptwin_pending_commands_response = 21; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponseOrBuilder> + getApptwinPendingCommandsResponseFieldBuilder() { + if (apptwinPendingCommandsResponseBuilder_ == null) { + if (!(msgCase_ == 21)) { + msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance(); + } + apptwinPendingCommandsResponseBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponseOrBuilder>( + (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 21; + onChanged(); + return apptwinPendingCommandsResponseBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVINOrBuilder> acknowledgeVepUpdatesByVinBuilder_; + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + * @return Whether the acknowledgeVepUpdatesByVin field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeVepUpdatesByVin() { + return msgCase_ == 22; + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + * @return The acknowledgeVepUpdatesByVin. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getAcknowledgeVepUpdatesByVin() { + if (acknowledgeVepUpdatesByVinBuilder_ == null) { + if (msgCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance(); + } else { + if (msgCase_ == 22) { + return acknowledgeVepUpdatesByVinBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + public Builder setAcknowledgeVepUpdatesByVin(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN value) { + if (acknowledgeVepUpdatesByVinBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeVepUpdatesByVinBuilder_.setMessage(value); + } + msgCase_ = 22; + return this; + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + public Builder setAcknowledgeVepUpdatesByVin( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder builderForValue) { + if (acknowledgeVepUpdatesByVinBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeVepUpdatesByVinBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 22; + return this; + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + public Builder mergeAcknowledgeVepUpdatesByVin(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN value) { + if (acknowledgeVepUpdatesByVinBuilder_ == null) { + if (msgCase_ == 22 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 22) { + acknowledgeVepUpdatesByVinBuilder_.mergeFrom(value); + } else { + acknowledgeVepUpdatesByVinBuilder_.setMessage(value); + } + } + msgCase_ = 22; + return this; + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + public Builder clearAcknowledgeVepUpdatesByVin() { + if (acknowledgeVepUpdatesByVinBuilder_ == null) { + if (msgCase_ == 22) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 22) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeVepUpdatesByVinBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder getAcknowledgeVepUpdatesByVinBuilder() { + return getAcknowledgeVepUpdatesByVinFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVINOrBuilder getAcknowledgeVepUpdatesByVinOrBuilder() { + if ((msgCase_ == 22) && (acknowledgeVepUpdatesByVinBuilder_ != null)) { + return acknowledgeVepUpdatesByVinBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeVEPUpdatesByVIN acknowledge_vep_updates_by_vin = 22; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVINOrBuilder> + getAcknowledgeVepUpdatesByVinFieldBuilder() { + if (acknowledgeVepUpdatesByVinBuilder_ == null) { + if (!(msgCase_ == 22)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance(); + } + acknowledgeVepUpdatesByVinBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVINOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 22; + onChanged(); + return acknowledgeVepUpdatesByVinBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles, com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehiclesOrBuilder> acknowledgeAssignedVehiclesBuilder_; + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + * @return Whether the acknowledgeAssignedVehicles field is set. + */ + @java.lang.Override + public boolean hasAcknowledgeAssignedVehicles() { + return msgCase_ == 23; + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + * @return The acknowledgeAssignedVehicles. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles getAcknowledgeAssignedVehicles() { + if (acknowledgeAssignedVehiclesBuilder_ == null) { + if (msgCase_ == 23) { + return (com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) msg_; + } + return com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance(); + } else { + if (msgCase_ == 23) { + return acknowledgeAssignedVehiclesBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + public Builder setAcknowledgeAssignedVehicles(com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles value) { + if (acknowledgeAssignedVehiclesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + acknowledgeAssignedVehiclesBuilder_.setMessage(value); + } + msgCase_ = 23; + return this; + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + public Builder setAcknowledgeAssignedVehicles( + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.Builder builderForValue) { + if (acknowledgeAssignedVehiclesBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + acknowledgeAssignedVehiclesBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 23; + return this; + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + public Builder mergeAcknowledgeAssignedVehicles(com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles value) { + if (acknowledgeAssignedVehiclesBuilder_ == null) { + if (msgCase_ == 23 && + msg_ != com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.newBuilder((com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 23) { + acknowledgeAssignedVehiclesBuilder_.mergeFrom(value); + } else { + acknowledgeAssignedVehiclesBuilder_.setMessage(value); + } + } + msgCase_ = 23; + return this; + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + public Builder clearAcknowledgeAssignedVehicles() { + if (acknowledgeAssignedVehiclesBuilder_ == null) { + if (msgCase_ == 23) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 23) { + msgCase_ = 0; + msg_ = null; + } + acknowledgeAssignedVehiclesBuilder_.clear(); + } + return this; + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.Builder getAcknowledgeAssignedVehiclesBuilder() { + return getAcknowledgeAssignedVehiclesFieldBuilder().getBuilder(); + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehiclesOrBuilder getAcknowledgeAssignedVehiclesOrBuilder() { + if ((msgCase_ == 23) && (acknowledgeAssignedVehiclesBuilder_ != null)) { + return acknowledgeAssignedVehiclesBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 23) { + return (com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) msg_; + } + return com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance(); + } + } + /** + * .proto.AcknowledgeAssignedVehicles acknowledge_assigned_vehicles = 23; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles, com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehiclesOrBuilder> + getAcknowledgeAssignedVehiclesFieldBuilder() { + if (acknowledgeAssignedVehiclesBuilder_ == null) { + if (!(msgCase_ == 23)) { + msg_ = com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance(); + } + acknowledgeAssignedVehiclesBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles, com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehiclesOrBuilder>( + (com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 23; + onChanged(); + return acknowledgeAssignedVehiclesBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.ClientMessage) + } + + // @@protoc_insertion_point(class_scope:proto.ClientMessage) + private static final com.daimler.mbcarkit.proto.Client.ClientMessage DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Client.ClientMessage(); + } + + public static com.daimler.mbcarkit.proto.Client.ClientMessage getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ClientMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.ClientMessage getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface LogoutOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.Logout) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Message to send from the app right before logging out of keycloak
+   * Stops the corresponding AppTwin actor and shuts it down and
+   * stops the websocket actor (but does not shut it down. This automatically happens, when the websocket connection is terminated)
+   * 
+ * + * Protobuf type {@code proto.Logout} + */ + public static final class Logout extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.Logout) + LogoutOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Logout.class.getName()); + } + // Use Logout.newBuilder() to construct. + private Logout(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private Logout() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_Logout_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_Logout_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Client.Logout.class, com.daimler.mbcarkit.proto.Client.Logout.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Client.Logout)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Client.Logout other = (com.daimler.mbcarkit.proto.Client.Logout) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Client.Logout parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Client.Logout parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Client.Logout parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Client.Logout prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Message to send from the app right before logging out of keycloak
+     * Stops the corresponding AppTwin actor and shuts it down and
+     * stops the websocket actor (but does not shut it down. This automatically happens, when the websocket connection is terminated)
+     * 
+ * + * Protobuf type {@code proto.Logout} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.Logout) + com.daimler.mbcarkit.proto.Client.LogoutOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_Logout_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_Logout_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Client.Logout.class, com.daimler.mbcarkit.proto.Client.Logout.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Client.Logout.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Client.internal_static_proto_Logout_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.Logout getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.Logout build() { + com.daimler.mbcarkit.proto.Client.Logout result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.Logout buildPartial() { + com.daimler.mbcarkit.proto.Client.Logout result = new com.daimler.mbcarkit.proto.Client.Logout(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Client.Logout) { + return mergeFrom((com.daimler.mbcarkit.proto.Client.Logout)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Client.Logout other) { + if (other == com.daimler.mbcarkit.proto.Client.Logout.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.Logout) + } + + // @@protoc_insertion_point(class_scope:proto.Logout) + private static final com.daimler.mbcarkit.proto.Client.Logout DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Client.Logout(); + } + + public static com.daimler.mbcarkit.proto.Client.Logout getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Logout parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Client.Logout getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ClientMessage_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ClientMessage_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_Logout_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_Logout_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014client.proto\022\005proto\032\014protos.proto\032\030ser" + + "vice-activation.proto\032\021user-events.proto" + + "\032\026vehicle-commands.proto\032\024vehicle-events" + + ".proto\032\020vehicleapi.proto\"\250\014\n\rClientMessa" + + "ge\022\023\n\013tracking_id\030\005 \001(\t\0227\n\022unsubscribeRe" + + "quest\030\002 \001(\0132\031.proto.UnsubscribeRequestH\000" + + "\022/\n\016commandRequest\030\003 \001(\0132\025.proto.Command" + + "RequestH\000\022.\n\016tracking_event\030\004 \001(\0132\024.prot" + + "o.TrackingEventH\000\0225\n\rping_interval\030\006 \001(\013" + + "2\034.proto.ConfigurePingIntervalH\000\022?\n\027ackn" + + "owledge_vep_request\030\007 \001(\0132\034.proto.Acknow" + + "ledgeVEPRequestH\000\022`\n)acknowledge_service" + + "_status_updates_by_vin\030\t \001(\0132+.proto.Ack" + + "nowledgeServiceStatusUpdatesByVINH\000\022R\n!a" + + "cknowledge_service_status_update\030\r \001(\0132%" + + ".proto.AcknowledgeServiceStatusUpdateH\000\022" + + "H\n\034acknowledge_user_data_update\030\n \001(\0132 ." + + "proto.AcknowledgeUserDataUpdateH\000\022N\n\037ack" + + "nowledge_user_picture_update\030\013 \001(\0132#.pro" + + "to.AcknowledgeUserPictureUpdateH\000\022F\n\033ack" + + "nowledge_user_pin_update\030\014 \001(\0132\037.proto.A" + + "cknowledgeUserPINUpdateH\000\022>\n\027update_user" + + "_jwt_request\030\016 \001(\0132\033.proto.UpdateUserJWT" + + "RequestH\000\022f\n,acknowledge_user_vehicle_au" + + "th_changed_update\030\017 \001(\0132..proto.Acknowle" + + "dgeUserVehicleAuthChangedUpdateH\000\022\202\001\nUNKNOWN_MEMBER_STATUS = 0; + */ + UNKNOWN_MEMBER_STATUS(0), + /** + * STARTING = 1; + */ + STARTING(1), + /** + * READY = 2; + */ + READY(2), + /** + * STOPPING = 3; + */ + STOPPING(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + MemberStatus.class.getName()); + } + /** + * UNKNOWN_MEMBER_STATUS = 0; + */ + public static final int UNKNOWN_MEMBER_STATUS_VALUE = 0; + /** + * STARTING = 1; + */ + public static final int STARTING_VALUE = 1; + /** + * READY = 2; + */ + public static final int READY_VALUE = 2; + /** + * STOPPING = 3; + */ + public static final int STOPPING_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static MemberStatus valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static MemberStatus forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_MEMBER_STATUS; + case 1: return STARTING; + case 2: return READY; + case 3: return STOPPING; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + MemberStatus> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public MemberStatus findValueByNumber(int number) { + return MemberStatus.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Cluster.getDescriptor().getEnumTypes().get(0); + } + + private static final MemberStatus[] VALUES = values(); + + public static MemberStatus valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private MemberStatus(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.MemberStatus) + } + + public interface AppTwinMemberStatusValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AppTwinMemberStatusValue) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.MemberStatus status = 1; + * @return The enum numeric value on the wire for status. + */ + int getStatusValue(); + /** + * .proto.MemberStatus status = 1; + * @return The status. + */ + com.daimler.mbcarkit.proto.Cluster.MemberStatus getStatus(); + + /** + * uint32 apptwin_count = 2; + * @return The apptwinCount. + */ + int getApptwinCount(); + } + /** + * Protobuf type {@code proto.AppTwinMemberStatusValue} + */ + public static final class AppTwinMemberStatusValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AppTwinMemberStatusValue) + AppTwinMemberStatusValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AppTwinMemberStatusValue.class.getName()); + } + // Use AppTwinMemberStatusValue.newBuilder() to construct. + private AppTwinMemberStatusValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AppTwinMemberStatusValue() { + status_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Cluster.internal_static_proto_AppTwinMemberStatusValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Cluster.internal_static_proto_AppTwinMemberStatusValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue.class, com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue.Builder.class); + } + + public static final int STATUS_FIELD_NUMBER = 1; + private int status_ = 0; + /** + * .proto.MemberStatus status = 1; + * @return The enum numeric value on the wire for status. + */ + @java.lang.Override public int getStatusValue() { + return status_; + } + /** + * .proto.MemberStatus status = 1; + * @return The status. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Cluster.MemberStatus getStatus() { + com.daimler.mbcarkit.proto.Cluster.MemberStatus result = com.daimler.mbcarkit.proto.Cluster.MemberStatus.forNumber(status_); + return result == null ? com.daimler.mbcarkit.proto.Cluster.MemberStatus.UNRECOGNIZED : result; + } + + public static final int APPTWIN_COUNT_FIELD_NUMBER = 2; + private int apptwinCount_ = 0; + /** + * uint32 apptwin_count = 2; + * @return The apptwinCount. + */ + @java.lang.Override + public int getApptwinCount() { + return apptwinCount_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (status_ != com.daimler.mbcarkit.proto.Cluster.MemberStatus.UNKNOWN_MEMBER_STATUS.getNumber()) { + output.writeEnum(1, status_); + } + if (apptwinCount_ != 0) { + output.writeUInt32(2, apptwinCount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (status_ != com.daimler.mbcarkit.proto.Cluster.MemberStatus.UNKNOWN_MEMBER_STATUS.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, status_); + } + if (apptwinCount_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeUInt32Size(2, apptwinCount_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue other = (com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue) obj; + + if (status_ != other.status_) return false; + if (getApptwinCount() + != other.getApptwinCount()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + STATUS_FIELD_NUMBER; + hash = (53 * hash) + status_; + hash = (37 * hash) + APPTWIN_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getApptwinCount(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AppTwinMemberStatusValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AppTwinMemberStatusValue) + com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Cluster.internal_static_proto_AppTwinMemberStatusValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Cluster.internal_static_proto_AppTwinMemberStatusValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue.class, com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + status_ = 0; + apptwinCount_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Cluster.internal_static_proto_AppTwinMemberStatusValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue build() { + com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue buildPartial() { + com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue result = new com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.status_ = status_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.apptwinCount_ = apptwinCount_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue) { + return mergeFrom((com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue other) { + if (other == com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue.getDefaultInstance()) return this; + if (other.status_ != 0) { + setStatusValue(other.getStatusValue()); + } + if (other.getApptwinCount() != 0) { + setApptwinCount(other.getApptwinCount()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + status_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + apptwinCount_ = input.readUInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int status_ = 0; + /** + * .proto.MemberStatus status = 1; + * @return The enum numeric value on the wire for status. + */ + @java.lang.Override public int getStatusValue() { + return status_; + } + /** + * .proto.MemberStatus status = 1; + * @param value The enum numeric value on the wire for status to set. + * @return This builder for chaining. + */ + public Builder setStatusValue(int value) { + status_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.MemberStatus status = 1; + * @return The status. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Cluster.MemberStatus getStatus() { + com.daimler.mbcarkit.proto.Cluster.MemberStatus result = com.daimler.mbcarkit.proto.Cluster.MemberStatus.forNumber(status_); + return result == null ? com.daimler.mbcarkit.proto.Cluster.MemberStatus.UNRECOGNIZED : result; + } + /** + * .proto.MemberStatus status = 1; + * @param value The status to set. + * @return This builder for chaining. + */ + public Builder setStatus(com.daimler.mbcarkit.proto.Cluster.MemberStatus value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + status_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.MemberStatus status = 1; + * @return This builder for chaining. + */ + public Builder clearStatus() { + bitField0_ = (bitField0_ & ~0x00000001); + status_ = 0; + onChanged(); + return this; + } + + private int apptwinCount_ ; + /** + * uint32 apptwin_count = 2; + * @return The apptwinCount. + */ + @java.lang.Override + public int getApptwinCount() { + return apptwinCount_; + } + /** + * uint32 apptwin_count = 2; + * @param value The apptwinCount to set. + * @return This builder for chaining. + */ + public Builder setApptwinCount(int value) { + + apptwinCount_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * uint32 apptwin_count = 2; + * @return This builder for chaining. + */ + public Builder clearApptwinCount() { + bitField0_ = (bitField0_ & ~0x00000002); + apptwinCount_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AppTwinMemberStatusValue) + } + + // @@protoc_insertion_point(class_scope:proto.AppTwinMemberStatusValue) + private static final com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue(); + } + + public static com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AppTwinMemberStatusValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Cluster.AppTwinMemberStatusValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AppTwinMemberStatusValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AppTwinMemberStatusValue_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\rcluster.proto\022\005proto\"V\n\030AppTwinMemberS" + + "tatusValue\022#\n\006status\030\001 \001(\0162\023.proto.Membe" + + "rStatus\022\025\n\rapptwin_count\030\002 \001(\r*P\n\014Member" + + "Status\022\031\n\025UNKNOWN_MEMBER_STATUS\020\000\022\014\n\010STA" + + "RTING\020\001\022\t\n\005READY\020\002\022\014\n\010STOPPING\020\003B\034\n\032com." + + "daimler.mbcarkit.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_proto_AppTwinMemberStatusValue_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_AppTwinMemberStatusValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AppTwinMemberStatusValue_descriptor, + new java.lang.String[] { "Status", "ApptwinCount", }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Eventpush.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Eventpush.java new file mode 100644 index 00000000000..6bbe18a281d --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Eventpush.java @@ -0,0 +1,1684 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: eventpush.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class Eventpush { + private Eventpush() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Eventpush.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface EventPushCommandOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.EventPushCommand) + com.google.protobuf.MessageOrBuilder { + + /** + * string vin = 1 [json_name = "vin"]; + * @return The vin. + */ + java.lang.String getVin(); + /** + * string vin = 1 [json_name = "vin"]; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @return The state. + */ + com.daimler.mbcarkit.proto.Acp.VVA.CommandState getState(); + + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @return The enum numeric value on the wire for condition. + */ + int getConditionValue(); + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @return The condition. + */ + com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition getCondition(); + + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @return The type. + */ + com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType(); + + /** + * int64 process_id = 5 [json_name = "pid"]; + * @return The processId. + */ + long getProcessId(); + + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @return The trackingId. + */ + java.lang.String getTrackingId(); + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @return The bytes for trackingId. + */ + com.google.protobuf.ByteString + getTrackingIdBytes(); + + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @return The correlationId. + */ + java.lang.String getCorrelationId(); + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @return The bytes for correlationId. + */ + com.google.protobuf.ByteString + getCorrelationIdBytes(); + + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @return A list containing the errorCodes. + */ + java.util.List getErrorCodesList(); + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @return The count of errorCodes. + */ + int getErrorCodesCount(); + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @param index The index of the element to return. + * @return The errorCodes at the given index. + */ + int getErrorCodes(int index); + + /** + * string guid = 9 [json_name = "guid"]; + * @return The guid. + */ + java.lang.String getGuid(); + /** + * string guid = 9 [json_name = "guid"]; + * @return The bytes for guid. + */ + com.google.protobuf.ByteString + getGuidBytes(); + + /** + * int64 timestamp_in_s = 10 [json_name = "timestamp"]; + * @return The timestampInS. + */ + long getTimestampInS(); + } + /** + * Protobuf type {@code proto.EventPushCommand} + */ + public static final class EventPushCommand extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.EventPushCommand) + EventPushCommandOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + EventPushCommand.class.getName()); + } + // Use EventPushCommand.newBuilder() to construct. + private EventPushCommand(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private EventPushCommand() { + vin_ = ""; + state_ = 0; + condition_ = 0; + type_ = 0; + trackingId_ = ""; + correlationId_ = ""; + errorCodes_ = emptyIntList(); + guid_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Eventpush.internal_static_proto_EventPushCommand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Eventpush.internal_static_proto_EventPushCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Eventpush.EventPushCommand.class, com.daimler.mbcarkit.proto.Eventpush.EventPushCommand.Builder.class); + } + + public static final int VIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + * string vin = 1 [json_name = "vin"]; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + * string vin = 1 [json_name = "vin"]; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STATE_FIELD_NUMBER = 2; + private int state_ = 0; + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override public int getStateValue() { + return state_; + } + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @return The state. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.VVA.CommandState getState() { + com.daimler.mbcarkit.proto.Acp.VVA.CommandState result = com.daimler.mbcarkit.proto.Acp.VVA.CommandState.forNumber(state_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VVA.CommandState.UNRECOGNIZED : result; + } + + public static final int CONDITION_FIELD_NUMBER = 3; + private int condition_ = 0; + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @return The enum numeric value on the wire for condition. + */ + @java.lang.Override public int getConditionValue() { + return condition_; + } + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @return The condition. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition getCondition() { + com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition result = com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition.forNumber(condition_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition.UNRECOGNIZED : result; + } + + public static final int TYPE_FIELD_NUMBER = 4; + private int type_ = 0; + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @return The type. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType() { + com.daimler.mbcarkit.proto.Acp.ACP.CommandType result = com.daimler.mbcarkit.proto.Acp.ACP.CommandType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNRECOGNIZED : result; + } + + public static final int PROCESS_ID_FIELD_NUMBER = 5; + private long processId_ = 0L; + /** + * int64 process_id = 5 [json_name = "pid"]; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + + public static final int TRACKING_ID_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object trackingId_ = ""; + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @return The trackingId. + */ + @java.lang.Override + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } + } + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @return The bytes for trackingId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CORRELATION_ID_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object correlationId_ = ""; + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @return The correlationId. + */ + @java.lang.Override + public java.lang.String getCorrelationId() { + java.lang.Object ref = correlationId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + correlationId_ = s; + return s; + } + } + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @return The bytes for correlationId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCorrelationIdBytes() { + java.lang.Object ref = correlationId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + correlationId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ERROR_CODES_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private com.google.protobuf.Internal.IntList errorCodes_ = + emptyIntList(); + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @return A list containing the errorCodes. + */ + @java.lang.Override + public java.util.List + getErrorCodesList() { + return errorCodes_; + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @return The count of errorCodes. + */ + public int getErrorCodesCount() { + return errorCodes_.size(); + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @param index The index of the element to return. + * @return The errorCodes at the given index. + */ + public int getErrorCodes(int index) { + return errorCodes_.getInt(index); + } + private int errorCodesMemoizedSerializedSize = -1; + + public static final int GUID_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private volatile java.lang.Object guid_ = ""; + /** + * string guid = 9 [json_name = "guid"]; + * @return The guid. + */ + @java.lang.Override + public java.lang.String getGuid() { + java.lang.Object ref = guid_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + guid_ = s; + return s; + } + } + /** + * string guid = 9 [json_name = "guid"]; + * @return The bytes for guid. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGuidBytes() { + java.lang.Object ref = guid_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + guid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TIMESTAMP_IN_S_FIELD_NUMBER = 10; + private long timestampInS_ = 0L; + /** + * int64 timestamp_in_s = 10 [json_name = "timestamp"]; + * @return The timestampInS. + */ + @java.lang.Override + public long getTimestampInS() { + return timestampInS_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, vin_); + } + if (state_ != com.daimler.mbcarkit.proto.Acp.VVA.CommandState.UNKNOWN_COMMAND_STATE.getNumber()) { + output.writeEnum(2, state_); + } + if (condition_ != com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition.UNKNWON_COMMAND_CONDITION.getNumber()) { + output.writeEnum(3, condition_); + } + if (type_ != com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNKNOWNCOMMANDTYPE.getNumber()) { + output.writeEnum(4, type_); + } + if (processId_ != 0L) { + output.writeInt64(5, processId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 6, trackingId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(correlationId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 7, correlationId_); + } + if (getErrorCodesList().size() > 0) { + output.writeUInt32NoTag(66); + output.writeUInt32NoTag(errorCodesMemoizedSerializedSize); + } + for (int i = 0; i < errorCodes_.size(); i++) { + output.writeInt32NoTag(errorCodes_.getInt(i)); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(guid_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 9, guid_); + } + if (timestampInS_ != 0L) { + output.writeInt64(10, timestampInS_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, vin_); + } + if (state_ != com.daimler.mbcarkit.proto.Acp.VVA.CommandState.UNKNOWN_COMMAND_STATE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, state_); + } + if (condition_ != com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition.UNKNWON_COMMAND_CONDITION.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, condition_); + } + if (type_ != com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNKNOWNCOMMANDTYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(4, type_); + } + if (processId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(5, processId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(6, trackingId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(correlationId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(7, correlationId_); + } + { + int dataSize = 0; + for (int i = 0; i < errorCodes_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(errorCodes_.getInt(i)); + } + size += dataSize; + if (!getErrorCodesList().isEmpty()) { + size += 1; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + errorCodesMemoizedSerializedSize = dataSize; + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(guid_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(9, guid_); + } + if (timestampInS_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(10, timestampInS_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Eventpush.EventPushCommand)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Eventpush.EventPushCommand other = (com.daimler.mbcarkit.proto.Eventpush.EventPushCommand) obj; + + if (!getVin() + .equals(other.getVin())) return false; + if (state_ != other.state_) return false; + if (condition_ != other.condition_) return false; + if (type_ != other.type_) return false; + if (getProcessId() + != other.getProcessId()) return false; + if (!getTrackingId() + .equals(other.getTrackingId())) return false; + if (!getCorrelationId() + .equals(other.getCorrelationId())) return false; + if (!getErrorCodesList() + .equals(other.getErrorCodesList())) return false; + if (!getGuid() + .equals(other.getGuid())) return false; + if (getTimestampInS() + != other.getTimestampInS()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (37 * hash) + CONDITION_FIELD_NUMBER; + hash = (53 * hash) + condition_; + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + hash = (37 * hash) + PROCESS_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getProcessId()); + hash = (37 * hash) + TRACKING_ID_FIELD_NUMBER; + hash = (53 * hash) + getTrackingId().hashCode(); + hash = (37 * hash) + CORRELATION_ID_FIELD_NUMBER; + hash = (53 * hash) + getCorrelationId().hashCode(); + if (getErrorCodesCount() > 0) { + hash = (37 * hash) + ERROR_CODES_FIELD_NUMBER; + hash = (53 * hash) + getErrorCodesList().hashCode(); + } + hash = (37 * hash) + GUID_FIELD_NUMBER; + hash = (53 * hash) + getGuid().hashCode(); + hash = (37 * hash) + TIMESTAMP_IN_S_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestampInS()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Eventpush.EventPushCommand prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.EventPushCommand} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.EventPushCommand) + com.daimler.mbcarkit.proto.Eventpush.EventPushCommandOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Eventpush.internal_static_proto_EventPushCommand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Eventpush.internal_static_proto_EventPushCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Eventpush.EventPushCommand.class, com.daimler.mbcarkit.proto.Eventpush.EventPushCommand.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Eventpush.EventPushCommand.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + vin_ = ""; + state_ = 0; + condition_ = 0; + type_ = 0; + processId_ = 0L; + trackingId_ = ""; + correlationId_ = ""; + errorCodes_ = emptyIntList(); + guid_ = ""; + timestampInS_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Eventpush.internal_static_proto_EventPushCommand_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Eventpush.EventPushCommand getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Eventpush.EventPushCommand.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Eventpush.EventPushCommand build() { + com.daimler.mbcarkit.proto.Eventpush.EventPushCommand result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Eventpush.EventPushCommand buildPartial() { + com.daimler.mbcarkit.proto.Eventpush.EventPushCommand result = new com.daimler.mbcarkit.proto.Eventpush.EventPushCommand(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Eventpush.EventPushCommand result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.condition_ = condition_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.type_ = type_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.processId_ = processId_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.trackingId_ = trackingId_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.correlationId_ = correlationId_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + errorCodes_.makeImmutable(); + result.errorCodes_ = errorCodes_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.guid_ = guid_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.timestampInS_ = timestampInS_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Eventpush.EventPushCommand) { + return mergeFrom((com.daimler.mbcarkit.proto.Eventpush.EventPushCommand)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Eventpush.EventPushCommand other) { + if (other == com.daimler.mbcarkit.proto.Eventpush.EventPushCommand.getDefaultInstance()) return this; + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (other.condition_ != 0) { + setConditionValue(other.getConditionValue()); + } + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + if (other.getProcessId() != 0L) { + setProcessId(other.getProcessId()); + } + if (!other.getTrackingId().isEmpty()) { + trackingId_ = other.trackingId_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (!other.getCorrelationId().isEmpty()) { + correlationId_ = other.correlationId_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (!other.errorCodes_.isEmpty()) { + if (errorCodes_.isEmpty()) { + errorCodes_ = other.errorCodes_; + errorCodes_.makeImmutable(); + bitField0_ |= 0x00000080; + } else { + ensureErrorCodesIsMutable(); + errorCodes_.addAll(other.errorCodes_); + } + onChanged(); + } + if (!other.getGuid().isEmpty()) { + guid_ = other.guid_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (other.getTimestampInS() != 0L) { + setTimestampInS(other.getTimestampInS()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + state_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + condition_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + type_ = input.readEnum(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + processId_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 50: { + trackingId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + correlationId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 64: { + int v = input.readInt32(); + ensureErrorCodesIsMutable(); + errorCodes_.addInt(v); + break; + } // case 64 + case 66: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureErrorCodesIsMutable(); + while (input.getBytesUntilLimit() > 0) { + errorCodes_.addInt(input.readInt32()); + } + input.popLimit(limit); + break; + } // case 66 + case 74: { + guid_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 80: { + timestampInS_ = input.readInt64(); + bitField0_ |= 0x00000200; + break; + } // case 80 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object vin_ = ""; + /** + * string vin = 1 [json_name = "vin"]; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string vin = 1 [json_name = "vin"]; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string vin = 1 [json_name = "vin"]; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string vin = 1 [json_name = "vin"]; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string vin = 1 [json_name = "vin"]; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int state_ = 0; + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override public int getStateValue() { + return state_; + } + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @return The state. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VVA.CommandState getState() { + com.daimler.mbcarkit.proto.Acp.VVA.CommandState result = com.daimler.mbcarkit.proto.Acp.VVA.CommandState.forNumber(state_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VVA.CommandState.UNRECOGNIZED : result; + } + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState(com.daimler.mbcarkit.proto.Acp.VVA.CommandState value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + state_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VVA.CommandState state = 2 [json_name = "acpState"]; + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000002); + state_ = 0; + onChanged(); + return this; + } + + private int condition_ = 0; + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @return The enum numeric value on the wire for condition. + */ + @java.lang.Override public int getConditionValue() { + return condition_; + } + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @param value The enum numeric value on the wire for condition to set. + * @return This builder for chaining. + */ + public Builder setConditionValue(int value) { + condition_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @return The condition. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition getCondition() { + com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition result = com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition.forNumber(condition_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition.UNRECOGNIZED : result; + } + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @param value The condition to set. + * @return This builder for chaining. + */ + public Builder setCondition(com.daimler.mbcarkit.proto.Acp.VVA.CommandCondition value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + condition_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VVA.CommandCondition condition = 3 [json_name = "acpCondition"]; + * @return This builder for chaining. + */ + public Builder clearCondition() { + bitField0_ = (bitField0_ & ~0x00000004); + condition_ = 0; + onChanged(); + return this; + } + + private int type_ = 0; + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @param value The enum numeric value on the wire for type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + type_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @return The type. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType() { + com.daimler.mbcarkit.proto.Acp.ACP.CommandType result = com.daimler.mbcarkit.proto.Acp.ACP.CommandType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNRECOGNIZED : result; + } + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(com.daimler.mbcarkit.proto.Acp.ACP.CommandType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + type_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ACP.CommandType type = 4 [json_name = "acpCommandType"]; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000008); + type_ = 0; + onChanged(); + return this; + } + + private long processId_ ; + /** + * int64 process_id = 5 [json_name = "pid"]; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + /** + * int64 process_id = 5 [json_name = "pid"]; + * @param value The processId to set. + * @return This builder for chaining. + */ + public Builder setProcessId(long value) { + + processId_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * int64 process_id = 5 [json_name = "pid"]; + * @return This builder for chaining. + */ + public Builder clearProcessId() { + bitField0_ = (bitField0_ & ~0x00000010); + processId_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object trackingId_ = ""; + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @return The trackingId. + */ + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @return The bytes for trackingId. + */ + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @param value The trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + trackingId_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @return This builder for chaining. + */ + public Builder clearTrackingId() { + trackingId_ = getDefaultInstance().getTrackingId(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string tracking_id = 6 [json_name = "trackingId"]; + * @param value The bytes for trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + trackingId_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object correlationId_ = ""; + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @return The correlationId. + */ + public java.lang.String getCorrelationId() { + java.lang.Object ref = correlationId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + correlationId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @return The bytes for correlationId. + */ + public com.google.protobuf.ByteString + getCorrelationIdBytes() { + java.lang.Object ref = correlationId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + correlationId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @param value The correlationId to set. + * @return This builder for chaining. + */ + public Builder setCorrelationId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + correlationId_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @return This builder for chaining. + */ + public Builder clearCorrelationId() { + correlationId_ = getDefaultInstance().getCorrelationId(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string correlation_id = 7 [json_name = "correlationId"]; + * @param value The bytes for correlationId to set. + * @return This builder for chaining. + */ + public Builder setCorrelationIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + correlationId_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList errorCodes_ = emptyIntList(); + private void ensureErrorCodesIsMutable() { + if (!errorCodes_.isModifiable()) { + errorCodes_ = makeMutableCopy(errorCodes_); + } + bitField0_ |= 0x00000080; + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @return A list containing the errorCodes. + */ + public java.util.List + getErrorCodesList() { + errorCodes_.makeImmutable(); + return errorCodes_; + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @return The count of errorCodes. + */ + public int getErrorCodesCount() { + return errorCodes_.size(); + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @param index The index of the element to return. + * @return The errorCodes at the given index. + */ + public int getErrorCodes(int index) { + return errorCodes_.getInt(index); + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @param index The index to set the value at. + * @param value The errorCodes to set. + * @return This builder for chaining. + */ + public Builder setErrorCodes( + int index, int value) { + + ensureErrorCodesIsMutable(); + errorCodes_.setInt(index, value); + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @param value The errorCodes to add. + * @return This builder for chaining. + */ + public Builder addErrorCodes(int value) { + + ensureErrorCodesIsMutable(); + errorCodes_.addInt(value); + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @param values The errorCodes to add. + * @return This builder for chaining. + */ + public Builder addAllErrorCodes( + java.lang.Iterable values) { + ensureErrorCodesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, errorCodes_); + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * repeated int32 error_codes = 8 [json_name = "errorCodes"]; + * @return This builder for chaining. + */ + public Builder clearErrorCodes() { + errorCodes_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + + private java.lang.Object guid_ = ""; + /** + * string guid = 9 [json_name = "guid"]; + * @return The guid. + */ + public java.lang.String getGuid() { + java.lang.Object ref = guid_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + guid_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string guid = 9 [json_name = "guid"]; + * @return The bytes for guid. + */ + public com.google.protobuf.ByteString + getGuidBytes() { + java.lang.Object ref = guid_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + guid_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string guid = 9 [json_name = "guid"]; + * @param value The guid to set. + * @return This builder for chaining. + */ + public Builder setGuid( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + guid_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * string guid = 9 [json_name = "guid"]; + * @return This builder for chaining. + */ + public Builder clearGuid() { + guid_ = getDefaultInstance().getGuid(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + /** + * string guid = 9 [json_name = "guid"]; + * @param value The bytes for guid to set. + * @return This builder for chaining. + */ + public Builder setGuidBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + guid_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private long timestampInS_ ; + /** + * int64 timestamp_in_s = 10 [json_name = "timestamp"]; + * @return The timestampInS. + */ + @java.lang.Override + public long getTimestampInS() { + return timestampInS_; + } + /** + * int64 timestamp_in_s = 10 [json_name = "timestamp"]; + * @param value The timestampInS to set. + * @return This builder for chaining. + */ + public Builder setTimestampInS(long value) { + + timestampInS_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * int64 timestamp_in_s = 10 [json_name = "timestamp"]; + * @return This builder for chaining. + */ + public Builder clearTimestampInS() { + bitField0_ = (bitField0_ & ~0x00000200); + timestampInS_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.EventPushCommand) + } + + // @@protoc_insertion_point(class_scope:proto.EventPushCommand) + private static final com.daimler.mbcarkit.proto.Eventpush.EventPushCommand DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Eventpush.EventPushCommand(); + } + + public static com.daimler.mbcarkit.proto.Eventpush.EventPushCommand getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EventPushCommand parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Eventpush.EventPushCommand getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_EventPushCommand_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_EventPushCommand_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\017eventpush.proto\022\005proto\032\tacp.proto\032\ngog" + + "o.proto\"\203\003\n\020EventPushCommand\022\020\n\003vin\030\001 \001(" + + "\tR\003vin\0220\n\005state\030\002 \001(\0162\027.proto.VVA.Comman" + + "dStateR\010acpState\022<\n\tcondition\030\003 \001(\0162\033.pr" + + "oto.VVA.CommandConditionR\014acpCondition\0224" + + "\n\004type\030\004 \001(\0162\026.proto.ACP.CommandTypeR\016ac" + + "pCommandType\022\027\n\nprocess_id\030\005 \001(\003R\003pid\022\037\n" + + "\013tracking_id\030\006 \001(\tR\ntrackingId\022%\n\016correl" + + "ation_id\030\007 \001(\tR\rcorrelationId\022\037\n\013error_c" + + "odes\030\010 \003(\005R\nerrorCodes\022\022\n\004guid\030\t \001(\tR\004gu" + + "id\022!\n\016timestamp_in_s\030\n \001(\003R\ttimestampB \n" + + "\032com.daimler.mbcarkit.proto\320\341\036\001b\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.daimler.mbcarkit.proto.Acp.getDescriptor(), + com.google.protobuf.GoGoProtos.getDescriptor(), + }); + internal_static_proto_EventPushCommand_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_EventPushCommand_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_EventPushCommand_descriptor, + new java.lang.String[] { "Vin", "State", "Condition", "Type", "ProcessId", "TrackingId", "CorrelationId", "ErrorCodes", "Guid", "TimestampInS", }); + descriptor.resolveAllFeaturesImmutable(); + com.daimler.mbcarkit.proto.Acp.getDescriptor(); + com.google.protobuf.GoGoProtos.getDescriptor(); + com.google.protobuf.ExtensionRegistry registry = + com.google.protobuf.ExtensionRegistry.newInstance(); + registry.add(com.google.protobuf.GoGoProtos.goprotoEnumPrefixAll); + com.google.protobuf.Descriptors.FileDescriptor + .internalUpdateFileDescriptor(descriptor, registry); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Protos.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Protos.java new file mode 100644 index 00000000000..7ffda0c58a4 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Protos.java @@ -0,0 +1,11252 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: protos.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class Protos { + private Protos() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Protos.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code proto.SubscriptionErrorType} + */ + public enum SubscriptionErrorType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN = 0; + */ + UNKNOWN(0), + /** + * INVALID_JWT = 1; + */ + INVALID_JWT(1), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SubscriptionErrorType.class.getName()); + } + /** + * UNKNOWN = 0; + */ + public static final int UNKNOWN_VALUE = 0; + /** + * INVALID_JWT = 1; + */ + public static final int INVALID_JWT_VALUE = 1; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static SubscriptionErrorType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static SubscriptionErrorType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN; + case 1: return INVALID_JWT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + SubscriptionErrorType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public SubscriptionErrorType findValueByNumber(int number) { + return SubscriptionErrorType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.getDescriptor().getEnumTypes().get(0); + } + + private static final SubscriptionErrorType[] VALUES = values(); + + public static SubscriptionErrorType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private SubscriptionErrorType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.SubscriptionErrorType) + } + + /** + * Protobuf enum {@code proto.OperatingSystemName} + */ + public enum OperatingSystemName + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_OPERATING_SYSTEM = 0; + */ + UNKNOWN_OPERATING_SYSTEM(0), + /** + * IOS = 1; + */ + IOS(1), + /** + * ANDROID = 2; + */ + ANDROID(2), + /** + * INT_TEST = 3; + */ + INT_TEST(3), + /** + * MANUAL_TEST = 4; + */ + MANUAL_TEST(4), + /** + * WEB = 5; + */ + WEB(5), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + OperatingSystemName.class.getName()); + } + /** + * UNKNOWN_OPERATING_SYSTEM = 0; + */ + public static final int UNKNOWN_OPERATING_SYSTEM_VALUE = 0; + /** + * IOS = 1; + */ + public static final int IOS_VALUE = 1; + /** + * ANDROID = 2; + */ + public static final int ANDROID_VALUE = 2; + /** + * INT_TEST = 3; + */ + public static final int INT_TEST_VALUE = 3; + /** + * MANUAL_TEST = 4; + */ + public static final int MANUAL_TEST_VALUE = 4; + /** + * WEB = 5; + */ + public static final int WEB_VALUE = 5; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static OperatingSystemName valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static OperatingSystemName forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_OPERATING_SYSTEM; + case 1: return IOS; + case 2: return ANDROID; + case 3: return INT_TEST; + case 4: return MANUAL_TEST; + case 5: return WEB; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + OperatingSystemName> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public OperatingSystemName findValueByNumber(int number) { + return OperatingSystemName.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.getDescriptor().getEnumTypes().get(1); + } + + private static final OperatingSystemName[] VALUES = values(); + + public static OperatingSystemName valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private OperatingSystemName(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.OperatingSystemName) + } + + public interface SubscribeRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SubscribeRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+     * 
+ * + * repeated string topics = 1; + * @return A list containing the topics. + */ + java.util.List + getTopicsList(); + /** + *
+     * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+     * 
+ * + * repeated string topics = 1; + * @return The count of topics. + */ + int getTopicsCount(); + /** + *
+     * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+     * 
+ * + * repeated string topics = 1; + * @param index The index of the element to return. + * @return The topics at the given index. + */ + java.lang.String getTopics(int index); + /** + *
+     * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+     * 
+ * + * repeated string topics = 1; + * @param index The index of the value to return. + * @return The bytes of the topics at the given index. + */ + com.google.protobuf.ByteString + getTopicsBytes(int index); + + /** + *
+     * indicates whether the previous set of topics should be replaced or whether the content of
+     * topics should be merged into the already existing set of topics in the publisher actor. E.g. You're already
+     * subscribed to topics A and B. If you send a SubscribeRequest with B and C:
+     * replace = true -> you are subscribed to B and C
+     * replace = false -> you are subscribed to A, B and C
+     * 
+ * + * bool replace = 2; + * @return The replace. + */ + boolean getReplace(); + } + /** + *
+   * SubscriptionRequest is sent to an actor to indicate that the sender wants to subscribe
+   * to events of specific topics. By convention the "Sender" property of the actor message is the
+   * Subscriber and will receive the events.
+   * 
+ * + * Protobuf type {@code proto.SubscribeRequest} + */ + public static final class SubscribeRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SubscribeRequest) + SubscribeRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SubscribeRequest.class.getName()); + } + // Use SubscribeRequest.newBuilder() to construct. + private SubscribeRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SubscribeRequest() { + topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscribeRequest.class, com.daimler.mbcarkit.proto.Protos.SubscribeRequest.Builder.class); + } + + public static final int TOPICS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + *
+     * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+     * 
+ * + * repeated string topics = 1; + * @return A list containing the topics. + */ + public com.google.protobuf.ProtocolStringList + getTopicsList() { + return topics_; + } + /** + *
+     * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+     * 
+ * + * repeated string topics = 1; + * @return The count of topics. + */ + public int getTopicsCount() { + return topics_.size(); + } + /** + *
+     * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+     * 
+ * + * repeated string topics = 1; + * @param index The index of the element to return. + * @return The topics at the given index. + */ + public java.lang.String getTopics(int index) { + return topics_.get(index); + } + /** + *
+     * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+     * 
+ * + * repeated string topics = 1; + * @param index The index of the value to return. + * @return The bytes of the topics at the given index. + */ + public com.google.protobuf.ByteString + getTopicsBytes(int index) { + return topics_.getByteString(index); + } + + public static final int REPLACE_FIELD_NUMBER = 2; + private boolean replace_ = false; + /** + *
+     * indicates whether the previous set of topics should be replaced or whether the content of
+     * topics should be merged into the already existing set of topics in the publisher actor. E.g. You're already
+     * subscribed to topics A and B. If you send a SubscribeRequest with B and C:
+     * replace = true -> you are subscribed to B and C
+     * replace = false -> you are subscribed to A, B and C
+     * 
+ * + * bool replace = 2; + * @return The replace. + */ + @java.lang.Override + public boolean getReplace() { + return replace_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < topics_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, topics_.getRaw(i)); + } + if (replace_ != false) { + output.writeBool(2, replace_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < topics_.size(); i++) { + dataSize += computeStringSizeNoTag(topics_.getRaw(i)); + } + size += dataSize; + size += 1 * getTopicsList().size(); + } + if (replace_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, replace_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.SubscribeRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.SubscribeRequest other = (com.daimler.mbcarkit.proto.Protos.SubscribeRequest) obj; + + if (!getTopicsList() + .equals(other.getTopicsList())) return false; + if (getReplace() + != other.getReplace()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTopicsCount() > 0) { + hash = (37 * hash) + TOPICS_FIELD_NUMBER; + hash = (53 * hash) + getTopicsList().hashCode(); + } + hash = (37 * hash) + REPLACE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getReplace()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.SubscribeRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * SubscriptionRequest is sent to an actor to indicate that the sender wants to subscribe
+     * to events of specific topics. By convention the "Sender" property of the actor message is the
+     * Subscriber and will receive the events.
+     * 
+ * + * Protobuf type {@code proto.SubscribeRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SubscribeRequest) + com.daimler.mbcarkit.proto.Protos.SubscribeRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscribeRequest.class, com.daimler.mbcarkit.proto.Protos.SubscribeRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.SubscribeRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + replace_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.SubscribeRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeRequest build() { + com.daimler.mbcarkit.proto.Protos.SubscribeRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeRequest buildPartial() { + com.daimler.mbcarkit.proto.Protos.SubscribeRequest result = new com.daimler.mbcarkit.proto.Protos.SubscribeRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.SubscribeRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + topics_.makeImmutable(); + result.topics_ = topics_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.replace_ = replace_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.SubscribeRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.SubscribeRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.SubscribeRequest other) { + if (other == com.daimler.mbcarkit.proto.Protos.SubscribeRequest.getDefaultInstance()) return this; + if (!other.topics_.isEmpty()) { + if (topics_.isEmpty()) { + topics_ = other.topics_; + bitField0_ |= 0x00000001; + } else { + ensureTopicsIsMutable(); + topics_.addAll(other.topics_); + } + onChanged(); + } + if (other.getReplace() != false) { + setReplace(other.getReplace()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + ensureTopicsIsMutable(); + topics_.add(s); + break; + } // case 10 + case 16: { + replace_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.LazyStringArrayList topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureTopicsIsMutable() { + if (!topics_.isModifiable()) { + topics_ = new com.google.protobuf.LazyStringArrayList(topics_); + } + bitField0_ |= 0x00000001; + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @return A list containing the topics. + */ + public com.google.protobuf.ProtocolStringList + getTopicsList() { + topics_.makeImmutable(); + return topics_; + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @return The count of topics. + */ + public int getTopicsCount() { + return topics_.size(); + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @param index The index of the element to return. + * @return The topics at the given index. + */ + public java.lang.String getTopics(int index) { + return topics_.get(index); + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @param index The index of the value to return. + * @return The bytes of the topics at the given index. + */ + public com.google.protobuf.ByteString + getTopicsBytes(int index) { + return topics_.getByteString(index); + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @param index The index to set the value at. + * @param value The topics to set. + * @return This builder for chaining. + */ + public Builder setTopics( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureTopicsIsMutable(); + topics_.set(index, value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @param value The topics to add. + * @return This builder for chaining. + */ + public Builder addTopics( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureTopicsIsMutable(); + topics_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @param values The topics to add. + * @return This builder for chaining. + */ + public Builder addAllTopics( + java.lang.Iterable values) { + ensureTopicsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, topics_); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @return This builder for chaining. + */ + public Builder clearTopics() { + topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001);; + onChanged(); + return this; + } + /** + *
+       * An array of topics for which the Subscriber wants to be notified from the Receiver of this message
+       * 
+ * + * repeated string topics = 1; + * @param value The bytes of the topics to add. + * @return This builder for chaining. + */ + public Builder addTopicsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureTopicsIsMutable(); + topics_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private boolean replace_ ; + /** + *
+       * indicates whether the previous set of topics should be replaced or whether the content of
+       * topics should be merged into the already existing set of topics in the publisher actor. E.g. You're already
+       * subscribed to topics A and B. If you send a SubscribeRequest with B and C:
+       * replace = true -> you are subscribed to B and C
+       * replace = false -> you are subscribed to A, B and C
+       * 
+ * + * bool replace = 2; + * @return The replace. + */ + @java.lang.Override + public boolean getReplace() { + return replace_; + } + /** + *
+       * indicates whether the previous set of topics should be replaced or whether the content of
+       * topics should be merged into the already existing set of topics in the publisher actor. E.g. You're already
+       * subscribed to topics A and B. If you send a SubscribeRequest with B and C:
+       * replace = true -> you are subscribed to B and C
+       * replace = false -> you are subscribed to A, B and C
+       * 
+ * + * bool replace = 2; + * @param value The replace to set. + * @return This builder for chaining. + */ + public Builder setReplace(boolean value) { + + replace_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * indicates whether the previous set of topics should be replaced or whether the content of
+       * topics should be merged into the already existing set of topics in the publisher actor. E.g. You're already
+       * subscribed to topics A and B. If you send a SubscribeRequest with B and C:
+       * replace = true -> you are subscribed to B and C
+       * replace = false -> you are subscribed to A, B and C
+       * 
+ * + * bool replace = 2; + * @return This builder for chaining. + */ + public Builder clearReplace() { + bitField0_ = (bitField0_ & ~0x00000002); + replace_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SubscribeRequest) + } + + // @@protoc_insertion_point(class_scope:proto.SubscribeRequest) + private static final com.daimler.mbcarkit.proto.Protos.SubscribeRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.SubscribeRequest(); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SubscribeRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SubscribeResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SubscribeResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * bool success = 1; + * @return The success. + */ + boolean getSuccess(); + + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + int getErrorsCount(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + boolean containsErrors( + java.lang.String key); + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getErrors(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + java.util.Map + getErrorsMap(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key); + + /** + * repeated string subscribed_topics = 3; + * @return A list containing the subscribedTopics. + */ + java.util.List + getSubscribedTopicsList(); + /** + * repeated string subscribed_topics = 3; + * @return The count of subscribedTopics. + */ + int getSubscribedTopicsCount(); + /** + * repeated string subscribed_topics = 3; + * @param index The index of the element to return. + * @return The subscribedTopics at the given index. + */ + java.lang.String getSubscribedTopics(int index); + /** + * repeated string subscribed_topics = 3; + * @param index The index of the value to return. + * @return The bytes of the subscribedTopics at the given index. + */ + com.google.protobuf.ByteString + getSubscribedTopicsBytes(int index); + } + /** + *
+   * SubscribeResponse is returned by the actor which received a SubscribeRequest. In case of a successful subscription
+   * success will be true and error_codes empty/nil. In case of an error the errors map will contain
+   * information that points to the reason for failure. The error map's keys are topics that have resulted in an error.
+   * The message also contains all successfully subscribed topics under the `subscribed_topics` key.
+   * By convention if an SubscribeRequest is sent for topics that have already been subscribed to, the SubscribeResponse
+   * will be successful and no error will be returned.
+   * 
+ * + * Protobuf type {@code proto.SubscribeResponse} + */ + public static final class SubscribeResponse extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SubscribeResponse) + SubscribeResponseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SubscribeResponse.class.getName()); + } + // Use SubscribeResponse.newBuilder() to construct. + private SubscribeResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SubscribeResponse() { + subscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeResponse_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscribeResponse.class, com.daimler.mbcarkit.proto.Protos.SubscribeResponse.Builder.class); + } + + public static final int SUCCESS_FIELD_NUMBER = 1; + private boolean success_ = false; + /** + * bool success = 1; + * @return The success. + */ + @java.lang.Override + public boolean getSuccess() { + return success_; + } + + public static final int ERRORS_FIELD_NUMBER = 2; + private static final class ErrorsDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionError> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeResponse_ErrorsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.Protos.SubscriptionError.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionError> errors_; + private com.google.protobuf.MapField + internalGetErrors() { + if (errors_ == null) { + return com.google.protobuf.MapField.emptyMapField( + ErrorsDefaultEntryHolder.defaultEntry); + } + return errors_; + } + public int getErrorsCount() { + return internalGetErrors().getMap().size(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public boolean containsErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetErrors().getMap().containsKey(key); + } + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getErrors() { + return getErrorsMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public java.util.Map getErrorsMap() { + return internalGetErrors().getMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetErrors().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetErrors().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int SUBSCRIBED_TOPICS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList subscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * repeated string subscribed_topics = 3; + * @return A list containing the subscribedTopics. + */ + public com.google.protobuf.ProtocolStringList + getSubscribedTopicsList() { + return subscribedTopics_; + } + /** + * repeated string subscribed_topics = 3; + * @return The count of subscribedTopics. + */ + public int getSubscribedTopicsCount() { + return subscribedTopics_.size(); + } + /** + * repeated string subscribed_topics = 3; + * @param index The index of the element to return. + * @return The subscribedTopics at the given index. + */ + public java.lang.String getSubscribedTopics(int index) { + return subscribedTopics_.get(index); + } + /** + * repeated string subscribed_topics = 3; + * @param index The index of the value to return. + * @return The bytes of the subscribedTopics at the given index. + */ + public com.google.protobuf.ByteString + getSubscribedTopicsBytes(int index) { + return subscribedTopics_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (success_ != false) { + output.writeBool(1, success_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetErrors(), + ErrorsDefaultEntryHolder.defaultEntry, + 2); + for (int i = 0; i < subscribedTopics_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, subscribedTopics_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (success_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, success_); + } + for (java.util.Map.Entry entry + : internalGetErrors().getMap().entrySet()) { + com.google.protobuf.MapEntry + errors__ = ErrorsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, errors__); + } + { + int dataSize = 0; + for (int i = 0; i < subscribedTopics_.size(); i++) { + dataSize += computeStringSizeNoTag(subscribedTopics_.getRaw(i)); + } + size += dataSize; + size += 1 * getSubscribedTopicsList().size(); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.SubscribeResponse)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.SubscribeResponse other = (com.daimler.mbcarkit.proto.Protos.SubscribeResponse) obj; + + if (getSuccess() + != other.getSuccess()) return false; + if (!internalGetErrors().equals( + other.internalGetErrors())) return false; + if (!getSubscribedTopicsList() + .equals(other.getSubscribedTopicsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SUCCESS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getSuccess()); + if (!internalGetErrors().getMap().isEmpty()) { + hash = (37 * hash) + ERRORS_FIELD_NUMBER; + hash = (53 * hash) + internalGetErrors().hashCode(); + } + if (getSubscribedTopicsCount() > 0) { + hash = (37 * hash) + SUBSCRIBED_TOPICS_FIELD_NUMBER; + hash = (53 * hash) + getSubscribedTopicsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.SubscribeResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * SubscribeResponse is returned by the actor which received a SubscribeRequest. In case of a successful subscription
+     * success will be true and error_codes empty/nil. In case of an error the errors map will contain
+     * information that points to the reason for failure. The error map's keys are topics that have resulted in an error.
+     * The message also contains all successfully subscribed topics under the `subscribed_topics` key.
+     * By convention if an SubscribeRequest is sent for topics that have already been subscribed to, the SubscribeResponse
+     * will be successful and no error will be returned.
+     * 
+ * + * Protobuf type {@code proto.SubscribeResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SubscribeResponse) + com.daimler.mbcarkit.proto.Protos.SubscribeResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeResponse_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetMutableErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscribeResponse.class, com.daimler.mbcarkit.proto.Protos.SubscribeResponse.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.SubscribeResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + success_ = false; + internalGetMutableErrors().clear(); + subscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeResponse_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeResponse getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.SubscribeResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeResponse build() { + com.daimler.mbcarkit.proto.Protos.SubscribeResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeResponse buildPartial() { + com.daimler.mbcarkit.proto.Protos.SubscribeResponse result = new com.daimler.mbcarkit.proto.Protos.SubscribeResponse(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.SubscribeResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.success_ = success_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.errors_ = internalGetErrors().build(ErrorsDefaultEntryHolder.defaultEntry); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + subscribedTopics_.makeImmutable(); + result.subscribedTopics_ = subscribedTopics_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.SubscribeResponse) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.SubscribeResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.SubscribeResponse other) { + if (other == com.daimler.mbcarkit.proto.Protos.SubscribeResponse.getDefaultInstance()) return this; + if (other.getSuccess() != false) { + setSuccess(other.getSuccess()); + } + internalGetMutableErrors().mergeFrom( + other.internalGetErrors()); + bitField0_ |= 0x00000002; + if (!other.subscribedTopics_.isEmpty()) { + if (subscribedTopics_.isEmpty()) { + subscribedTopics_ = other.subscribedTopics_; + bitField0_ |= 0x00000004; + } else { + ensureSubscribedTopicsIsMutable(); + subscribedTopics_.addAll(other.subscribedTopics_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + success_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + com.google.protobuf.MapEntry + errors__ = input.readMessage( + ErrorsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableErrors().ensureBuilderMap().put( + errors__.getKey(), errors__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + ensureSubscribedTopicsIsMutable(); + subscribedTopics_.add(s); + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean success_ ; + /** + * bool success = 1; + * @return The success. + */ + @java.lang.Override + public boolean getSuccess() { + return success_; + } + /** + * bool success = 1; + * @param value The success to set. + * @return This builder for chaining. + */ + public Builder setSuccess(boolean value) { + + success_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool success = 1; + * @return This builder for chaining. + */ + public Builder clearSuccess() { + bitField0_ = (bitField0_ & ~0x00000001); + success_ = false; + onChanged(); + return this; + } + + private static final class ErrorsConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError build(com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.Protos.SubscriptionError) { return (com.daimler.mbcarkit.proto.Protos.SubscriptionError) val; } + return ((com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return ErrorsDefaultEntryHolder.defaultEntry; + } + }; + private static final ErrorsConverter errorsConverter = new ErrorsConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder, com.daimler.mbcarkit.proto.Protos.SubscriptionError, com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder> errors_; + private com.google.protobuf.MapFieldBuilder + internalGetErrors() { + if (errors_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(errorsConverter); + } + return errors_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableErrors() { + if (errors_ == null) { + errors_ = new com.google.protobuf.MapFieldBuilder<>(errorsConverter); + } + bitField0_ |= 0x00000002; + onChanged(); + return errors_; + } + public int getErrorsCount() { + return internalGetErrors().ensureBuilderMap().size(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public boolean containsErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetErrors().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getErrors() { + return getErrorsMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public java.util.Map getErrorsMap() { + return internalGetErrors().getImmutableMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableErrors().ensureBuilderMap(); + return map.containsKey(key) ? errorsConverter.build(map.get(key)) : defaultValue; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableErrors().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return errorsConverter.build(map.get(key)); + } + public Builder clearErrors() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutableErrors().clear(); + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder removeErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableErrors().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableErrors() { + bitField0_ |= 0x00000002; + return internalGetMutableErrors().ensureMessageMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder putErrors( + java.lang.String key, + com.daimler.mbcarkit.proto.Protos.SubscriptionError value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableErrors().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder putAllErrors( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableErrors().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder putErrorsBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableErrors().ensureBuilderMap(); + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.Protos.SubscriptionError.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.Protos.SubscriptionError) { + entry = ((com.daimler.mbcarkit.proto.Protos.SubscriptionError) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder) entry; + } + + private com.google.protobuf.LazyStringArrayList subscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureSubscribedTopicsIsMutable() { + if (!subscribedTopics_.isModifiable()) { + subscribedTopics_ = new com.google.protobuf.LazyStringArrayList(subscribedTopics_); + } + bitField0_ |= 0x00000004; + } + /** + * repeated string subscribed_topics = 3; + * @return A list containing the subscribedTopics. + */ + public com.google.protobuf.ProtocolStringList + getSubscribedTopicsList() { + subscribedTopics_.makeImmutable(); + return subscribedTopics_; + } + /** + * repeated string subscribed_topics = 3; + * @return The count of subscribedTopics. + */ + public int getSubscribedTopicsCount() { + return subscribedTopics_.size(); + } + /** + * repeated string subscribed_topics = 3; + * @param index The index of the element to return. + * @return The subscribedTopics at the given index. + */ + public java.lang.String getSubscribedTopics(int index) { + return subscribedTopics_.get(index); + } + /** + * repeated string subscribed_topics = 3; + * @param index The index of the value to return. + * @return The bytes of the subscribedTopics at the given index. + */ + public com.google.protobuf.ByteString + getSubscribedTopicsBytes(int index) { + return subscribedTopics_.getByteString(index); + } + /** + * repeated string subscribed_topics = 3; + * @param index The index to set the value at. + * @param value The subscribedTopics to set. + * @return This builder for chaining. + */ + public Builder setSubscribedTopics( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureSubscribedTopicsIsMutable(); + subscribedTopics_.set(index, value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * repeated string subscribed_topics = 3; + * @param value The subscribedTopics to add. + * @return This builder for chaining. + */ + public Builder addSubscribedTopics( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureSubscribedTopicsIsMutable(); + subscribedTopics_.add(value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * repeated string subscribed_topics = 3; + * @param values The subscribedTopics to add. + * @return This builder for chaining. + */ + public Builder addAllSubscribedTopics( + java.lang.Iterable values) { + ensureSubscribedTopicsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, subscribedTopics_); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * repeated string subscribed_topics = 3; + * @return This builder for chaining. + */ + public Builder clearSubscribedTopics() { + subscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004);; + onChanged(); + return this; + } + /** + * repeated string subscribed_topics = 3; + * @param value The bytes of the subscribedTopics to add. + * @return This builder for chaining. + */ + public Builder addSubscribedTopicsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureSubscribedTopicsIsMutable(); + subscribedTopics_.add(value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SubscribeResponse) + } + + // @@protoc_insertion_point(class_scope:proto.SubscribeResponse) + private static final com.daimler.mbcarkit.proto.Protos.SubscribeResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.SubscribeResponse(); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SubscribeResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UnsubscribeRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UnsubscribeRequest) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * An array of topics for which the Subscriber does not want to receive any more messages
+     * 
+ * + * repeated string topics = 1; + * @return A list containing the topics. + */ + java.util.List + getTopicsList(); + /** + *
+     * An array of topics for which the Subscriber does not want to receive any more messages
+     * 
+ * + * repeated string topics = 1; + * @return The count of topics. + */ + int getTopicsCount(); + /** + *
+     * An array of topics for which the Subscriber does not want to receive any more messages
+     * 
+ * + * repeated string topics = 1; + * @param index The index of the element to return. + * @return The topics at the given index. + */ + java.lang.String getTopics(int index); + /** + *
+     * An array of topics for which the Subscriber does not want to receive any more messages
+     * 
+ * + * repeated string topics = 1; + * @param index The index of the value to return. + * @return The bytes of the topics at the given index. + */ + com.google.protobuf.ByteString + getTopicsBytes(int index); + + /** + *
+     * Whether the publisher should respond
+     * 
+ * + * bool anticipate_response = 2; + * @return The anticipateResponse. + */ + boolean getAnticipateResponse(); + } + /** + *
+   * UnsubscribeRequest is sent to an actor to indicate that the sender wants to unsubscribe
+   * from events specified by the topics array.
+   * 
+ * + * Protobuf type {@code proto.UnsubscribeRequest} + */ + public static final class UnsubscribeRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UnsubscribeRequest) + UnsubscribeRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UnsubscribeRequest.class.getName()); + } + // Use UnsubscribeRequest.newBuilder() to construct. + private UnsubscribeRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UnsubscribeRequest() { + topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.class, com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.Builder.class); + } + + public static final int TOPICS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + *
+     * An array of topics for which the Subscriber does not want to receive any more messages
+     * 
+ * + * repeated string topics = 1; + * @return A list containing the topics. + */ + public com.google.protobuf.ProtocolStringList + getTopicsList() { + return topics_; + } + /** + *
+     * An array of topics for which the Subscriber does not want to receive any more messages
+     * 
+ * + * repeated string topics = 1; + * @return The count of topics. + */ + public int getTopicsCount() { + return topics_.size(); + } + /** + *
+     * An array of topics for which the Subscriber does not want to receive any more messages
+     * 
+ * + * repeated string topics = 1; + * @param index The index of the element to return. + * @return The topics at the given index. + */ + public java.lang.String getTopics(int index) { + return topics_.get(index); + } + /** + *
+     * An array of topics for which the Subscriber does not want to receive any more messages
+     * 
+ * + * repeated string topics = 1; + * @param index The index of the value to return. + * @return The bytes of the topics at the given index. + */ + public com.google.protobuf.ByteString + getTopicsBytes(int index) { + return topics_.getByteString(index); + } + + public static final int ANTICIPATE_RESPONSE_FIELD_NUMBER = 2; + private boolean anticipateResponse_ = false; + /** + *
+     * Whether the publisher should respond
+     * 
+ * + * bool anticipate_response = 2; + * @return The anticipateResponse. + */ + @java.lang.Override + public boolean getAnticipateResponse() { + return anticipateResponse_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < topics_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, topics_.getRaw(i)); + } + if (anticipateResponse_ != false) { + output.writeBool(2, anticipateResponse_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < topics_.size(); i++) { + dataSize += computeStringSizeNoTag(topics_.getRaw(i)); + } + size += dataSize; + size += 1 * getTopicsList().size(); + } + if (anticipateResponse_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, anticipateResponse_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest other = (com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) obj; + + if (!getTopicsList() + .equals(other.getTopicsList())) return false; + if (getAnticipateResponse() + != other.getAnticipateResponse()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTopicsCount() > 0) { + hash = (37 * hash) + TOPICS_FIELD_NUMBER; + hash = (53 * hash) + getTopicsList().hashCode(); + } + hash = (37 * hash) + ANTICIPATE_RESPONSE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAnticipateResponse()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * UnsubscribeRequest is sent to an actor to indicate that the sender wants to unsubscribe
+     * from events specified by the topics array.
+     * 
+ * + * Protobuf type {@code proto.UnsubscribeRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UnsubscribeRequest) + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.class, com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + anticipateResponse_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest build() { + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest buildPartial() { + com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest result = new com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + topics_.makeImmutable(); + result.topics_ = topics_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.anticipateResponse_ = anticipateResponse_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest other) { + if (other == com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest.getDefaultInstance()) return this; + if (!other.topics_.isEmpty()) { + if (topics_.isEmpty()) { + topics_ = other.topics_; + bitField0_ |= 0x00000001; + } else { + ensureTopicsIsMutable(); + topics_.addAll(other.topics_); + } + onChanged(); + } + if (other.getAnticipateResponse() != false) { + setAnticipateResponse(other.getAnticipateResponse()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + ensureTopicsIsMutable(); + topics_.add(s); + break; + } // case 10 + case 16: { + anticipateResponse_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.LazyStringArrayList topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureTopicsIsMutable() { + if (!topics_.isModifiable()) { + topics_ = new com.google.protobuf.LazyStringArrayList(topics_); + } + bitField0_ |= 0x00000001; + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @return A list containing the topics. + */ + public com.google.protobuf.ProtocolStringList + getTopicsList() { + topics_.makeImmutable(); + return topics_; + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @return The count of topics. + */ + public int getTopicsCount() { + return topics_.size(); + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @param index The index of the element to return. + * @return The topics at the given index. + */ + public java.lang.String getTopics(int index) { + return topics_.get(index); + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @param index The index of the value to return. + * @return The bytes of the topics at the given index. + */ + public com.google.protobuf.ByteString + getTopicsBytes(int index) { + return topics_.getByteString(index); + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @param index The index to set the value at. + * @param value The topics to set. + * @return This builder for chaining. + */ + public Builder setTopics( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureTopicsIsMutable(); + topics_.set(index, value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @param value The topics to add. + * @return This builder for chaining. + */ + public Builder addTopics( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureTopicsIsMutable(); + topics_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @param values The topics to add. + * @return This builder for chaining. + */ + public Builder addAllTopics( + java.lang.Iterable values) { + ensureTopicsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, topics_); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @return This builder for chaining. + */ + public Builder clearTopics() { + topics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001);; + onChanged(); + return this; + } + /** + *
+       * An array of topics for which the Subscriber does not want to receive any more messages
+       * 
+ * + * repeated string topics = 1; + * @param value The bytes of the topics to add. + * @return This builder for chaining. + */ + public Builder addTopicsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureTopicsIsMutable(); + topics_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private boolean anticipateResponse_ ; + /** + *
+       * Whether the publisher should respond
+       * 
+ * + * bool anticipate_response = 2; + * @return The anticipateResponse. + */ + @java.lang.Override + public boolean getAnticipateResponse() { + return anticipateResponse_; + } + /** + *
+       * Whether the publisher should respond
+       * 
+ * + * bool anticipate_response = 2; + * @param value The anticipateResponse to set. + * @return This builder for chaining. + */ + public Builder setAnticipateResponse(boolean value) { + + anticipateResponse_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Whether the publisher should respond
+       * 
+ * + * bool anticipate_response = 2; + * @return This builder for chaining. + */ + public Builder clearAnticipateResponse() { + bitField0_ = (bitField0_ & ~0x00000002); + anticipateResponse_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.UnsubscribeRequest) + } + + // @@protoc_insertion_point(class_scope:proto.UnsubscribeRequest) + private static final com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest(); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UnsubscribeRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UnsubscribeResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UnsubscribeResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * bool success = 1; + * @return The success. + */ + boolean getSuccess(); + + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + int getErrorsCount(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + boolean containsErrors( + java.lang.String key); + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getErrors(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + java.util.Map + getErrorsMap(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key); + + /** + * repeated string unsubscribed_topics = 3; + * @return A list containing the unsubscribedTopics. + */ + java.util.List + getUnsubscribedTopicsList(); + /** + * repeated string unsubscribed_topics = 3; + * @return The count of unsubscribedTopics. + */ + int getUnsubscribedTopicsCount(); + /** + * repeated string unsubscribed_topics = 3; + * @param index The index of the element to return. + * @return The unsubscribedTopics at the given index. + */ + java.lang.String getUnsubscribedTopics(int index); + /** + * repeated string unsubscribed_topics = 3; + * @param index The index of the value to return. + * @return The bytes of the unsubscribedTopics at the given index. + */ + com.google.protobuf.ByteString + getUnsubscribedTopicsBytes(int index); + } + /** + *
+   * UnsubscribeResponse is returned by the actor which received a UnsubscribeRequest. In case of a successful removal,
+   * success will be true and error_codes empty/nil. In case of an error the errors map will contain
+   * information that points to the reason for failure. The error map's keys are topics that have resulted in an error.
+   * The message also contains all successfully subscribed topics under the `unsubscribed_topics` key.
+   * By convention if an UnsubscribeRequest is sent for topics that have already been unsubscribed from the UnsubscribeResponse
+   * will be successful and no error will be returned.
+   * 
+ * + * Protobuf type {@code proto.UnsubscribeResponse} + */ + public static final class UnsubscribeResponse extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UnsubscribeResponse) + UnsubscribeResponseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UnsubscribeResponse.class.getName()); + } + // Use UnsubscribeResponse.newBuilder() to construct. + private UnsubscribeResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UnsubscribeResponse() { + unsubscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeResponse_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse.class, com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse.Builder.class); + } + + public static final int SUCCESS_FIELD_NUMBER = 1; + private boolean success_ = false; + /** + * bool success = 1; + * @return The success. + */ + @java.lang.Override + public boolean getSuccess() { + return success_; + } + + public static final int ERRORS_FIELD_NUMBER = 2; + private static final class ErrorsDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionError> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeResponse_ErrorsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.Protos.SubscriptionError.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionError> errors_; + private com.google.protobuf.MapField + internalGetErrors() { + if (errors_ == null) { + return com.google.protobuf.MapField.emptyMapField( + ErrorsDefaultEntryHolder.defaultEntry); + } + return errors_; + } + public int getErrorsCount() { + return internalGetErrors().getMap().size(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public boolean containsErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetErrors().getMap().containsKey(key); + } + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getErrors() { + return getErrorsMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public java.util.Map getErrorsMap() { + return internalGetErrors().getMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetErrors().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetErrors().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int UNSUBSCRIBED_TOPICS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList unsubscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * repeated string unsubscribed_topics = 3; + * @return A list containing the unsubscribedTopics. + */ + public com.google.protobuf.ProtocolStringList + getUnsubscribedTopicsList() { + return unsubscribedTopics_; + } + /** + * repeated string unsubscribed_topics = 3; + * @return The count of unsubscribedTopics. + */ + public int getUnsubscribedTopicsCount() { + return unsubscribedTopics_.size(); + } + /** + * repeated string unsubscribed_topics = 3; + * @param index The index of the element to return. + * @return The unsubscribedTopics at the given index. + */ + public java.lang.String getUnsubscribedTopics(int index) { + return unsubscribedTopics_.get(index); + } + /** + * repeated string unsubscribed_topics = 3; + * @param index The index of the value to return. + * @return The bytes of the unsubscribedTopics at the given index. + */ + public com.google.protobuf.ByteString + getUnsubscribedTopicsBytes(int index) { + return unsubscribedTopics_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (success_ != false) { + output.writeBool(1, success_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetErrors(), + ErrorsDefaultEntryHolder.defaultEntry, + 2); + for (int i = 0; i < unsubscribedTopics_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, unsubscribedTopics_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (success_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, success_); + } + for (java.util.Map.Entry entry + : internalGetErrors().getMap().entrySet()) { + com.google.protobuf.MapEntry + errors__ = ErrorsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, errors__); + } + { + int dataSize = 0; + for (int i = 0; i < unsubscribedTopics_.size(); i++) { + dataSize += computeStringSizeNoTag(unsubscribedTopics_.getRaw(i)); + } + size += dataSize; + size += 1 * getUnsubscribedTopicsList().size(); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse other = (com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse) obj; + + if (getSuccess() + != other.getSuccess()) return false; + if (!internalGetErrors().equals( + other.internalGetErrors())) return false; + if (!getUnsubscribedTopicsList() + .equals(other.getUnsubscribedTopicsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SUCCESS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getSuccess()); + if (!internalGetErrors().getMap().isEmpty()) { + hash = (37 * hash) + ERRORS_FIELD_NUMBER; + hash = (53 * hash) + internalGetErrors().hashCode(); + } + if (getUnsubscribedTopicsCount() > 0) { + hash = (37 * hash) + UNSUBSCRIBED_TOPICS_FIELD_NUMBER; + hash = (53 * hash) + getUnsubscribedTopicsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * UnsubscribeResponse is returned by the actor which received a UnsubscribeRequest. In case of a successful removal,
+     * success will be true and error_codes empty/nil. In case of an error the errors map will contain
+     * information that points to the reason for failure. The error map's keys are topics that have resulted in an error.
+     * The message also contains all successfully subscribed topics under the `unsubscribed_topics` key.
+     * By convention if an UnsubscribeRequest is sent for topics that have already been unsubscribed from the UnsubscribeResponse
+     * will be successful and no error will be returned.
+     * 
+ * + * Protobuf type {@code proto.UnsubscribeResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UnsubscribeResponse) + com.daimler.mbcarkit.proto.Protos.UnsubscribeResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeResponse_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetMutableErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse.class, com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + success_ = false; + internalGetMutableErrors().clear(); + unsubscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeResponse_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse build() { + com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse buildPartial() { + com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse result = new com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.success_ = success_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.errors_ = internalGetErrors().build(ErrorsDefaultEntryHolder.defaultEntry); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + unsubscribedTopics_.makeImmutable(); + result.unsubscribedTopics_ = unsubscribedTopics_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse other) { + if (other == com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse.getDefaultInstance()) return this; + if (other.getSuccess() != false) { + setSuccess(other.getSuccess()); + } + internalGetMutableErrors().mergeFrom( + other.internalGetErrors()); + bitField0_ |= 0x00000002; + if (!other.unsubscribedTopics_.isEmpty()) { + if (unsubscribedTopics_.isEmpty()) { + unsubscribedTopics_ = other.unsubscribedTopics_; + bitField0_ |= 0x00000004; + } else { + ensureUnsubscribedTopicsIsMutable(); + unsubscribedTopics_.addAll(other.unsubscribedTopics_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + success_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + com.google.protobuf.MapEntry + errors__ = input.readMessage( + ErrorsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableErrors().ensureBuilderMap().put( + errors__.getKey(), errors__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + java.lang.String s = input.readStringRequireUtf8(); + ensureUnsubscribedTopicsIsMutable(); + unsubscribedTopics_.add(s); + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean success_ ; + /** + * bool success = 1; + * @return The success. + */ + @java.lang.Override + public boolean getSuccess() { + return success_; + } + /** + * bool success = 1; + * @param value The success to set. + * @return This builder for chaining. + */ + public Builder setSuccess(boolean value) { + + success_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool success = 1; + * @return This builder for chaining. + */ + public Builder clearSuccess() { + bitField0_ = (bitField0_ & ~0x00000001); + success_ = false; + onChanged(); + return this; + } + + private static final class ErrorsConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError build(com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.Protos.SubscriptionError) { return (com.daimler.mbcarkit.proto.Protos.SubscriptionError) val; } + return ((com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return ErrorsDefaultEntryHolder.defaultEntry; + } + }; + private static final ErrorsConverter errorsConverter = new ErrorsConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder, com.daimler.mbcarkit.proto.Protos.SubscriptionError, com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder> errors_; + private com.google.protobuf.MapFieldBuilder + internalGetErrors() { + if (errors_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(errorsConverter); + } + return errors_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableErrors() { + if (errors_ == null) { + errors_ = new com.google.protobuf.MapFieldBuilder<>(errorsConverter); + } + bitField0_ |= 0x00000002; + onChanged(); + return errors_; + } + public int getErrorsCount() { + return internalGetErrors().ensureBuilderMap().size(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public boolean containsErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetErrors().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getErrors() { + return getErrorsMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public java.util.Map getErrorsMap() { + return internalGetErrors().getImmutableMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableErrors().ensureBuilderMap(); + return map.containsKey(key) ? errorsConverter.build(map.get(key)) : defaultValue; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableErrors().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return errorsConverter.build(map.get(key)); + } + public Builder clearErrors() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutableErrors().clear(); + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder removeErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableErrors().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableErrors() { + bitField0_ |= 0x00000002; + return internalGetMutableErrors().ensureMessageMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder putErrors( + java.lang.String key, + com.daimler.mbcarkit.proto.Protos.SubscriptionError value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableErrors().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder putAllErrors( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableErrors().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder putErrorsBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableErrors().ensureBuilderMap(); + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.Protos.SubscriptionError.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.Protos.SubscriptionError) { + entry = ((com.daimler.mbcarkit.proto.Protos.SubscriptionError) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder) entry; + } + + private com.google.protobuf.LazyStringArrayList unsubscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureUnsubscribedTopicsIsMutable() { + if (!unsubscribedTopics_.isModifiable()) { + unsubscribedTopics_ = new com.google.protobuf.LazyStringArrayList(unsubscribedTopics_); + } + bitField0_ |= 0x00000004; + } + /** + * repeated string unsubscribed_topics = 3; + * @return A list containing the unsubscribedTopics. + */ + public com.google.protobuf.ProtocolStringList + getUnsubscribedTopicsList() { + unsubscribedTopics_.makeImmutable(); + return unsubscribedTopics_; + } + /** + * repeated string unsubscribed_topics = 3; + * @return The count of unsubscribedTopics. + */ + public int getUnsubscribedTopicsCount() { + return unsubscribedTopics_.size(); + } + /** + * repeated string unsubscribed_topics = 3; + * @param index The index of the element to return. + * @return The unsubscribedTopics at the given index. + */ + public java.lang.String getUnsubscribedTopics(int index) { + return unsubscribedTopics_.get(index); + } + /** + * repeated string unsubscribed_topics = 3; + * @param index The index of the value to return. + * @return The bytes of the unsubscribedTopics at the given index. + */ + public com.google.protobuf.ByteString + getUnsubscribedTopicsBytes(int index) { + return unsubscribedTopics_.getByteString(index); + } + /** + * repeated string unsubscribed_topics = 3; + * @param index The index to set the value at. + * @param value The unsubscribedTopics to set. + * @return This builder for chaining. + */ + public Builder setUnsubscribedTopics( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureUnsubscribedTopicsIsMutable(); + unsubscribedTopics_.set(index, value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * repeated string unsubscribed_topics = 3; + * @param value The unsubscribedTopics to add. + * @return This builder for chaining. + */ + public Builder addUnsubscribedTopics( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureUnsubscribedTopicsIsMutable(); + unsubscribedTopics_.add(value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * repeated string unsubscribed_topics = 3; + * @param values The unsubscribedTopics to add. + * @return This builder for chaining. + */ + public Builder addAllUnsubscribedTopics( + java.lang.Iterable values) { + ensureUnsubscribedTopicsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, unsubscribedTopics_); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * repeated string unsubscribed_topics = 3; + * @return This builder for chaining. + */ + public Builder clearUnsubscribedTopics() { + unsubscribedTopics_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004);; + onChanged(); + return this; + } + /** + * repeated string unsubscribed_topics = 3; + * @param value The bytes of the unsubscribedTopics to add. + * @return This builder for chaining. + */ + public Builder addUnsubscribedTopicsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureUnsubscribedTopicsIsMutable(); + unsubscribedTopics_.add(value); + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.UnsubscribeResponse) + } + + // @@protoc_insertion_point(class_scope:proto.UnsubscribeResponse) + private static final com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse(); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UnsubscribeResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SubscriptionErrorOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SubscriptionError) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return A list containing the code. + */ + java.util.List getCodeList(); + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return The count of code. + */ + int getCodeCount(); + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param index The index of the element to return. + * @return The code at the given index. + */ + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType getCode(int index); + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return A list containing the enum numeric values on the wire for code. + */ + java.util.List + getCodeValueList(); + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of code at the given index. + */ + int getCodeValue(int index); + + /** + *
+     * Optional
+     * 
+ * + * repeated string message = 2; + * @return A list containing the message. + */ + java.util.List + getMessageList(); + /** + *
+     * Optional
+     * 
+ * + * repeated string message = 2; + * @return The count of message. + */ + int getMessageCount(); + /** + *
+     * Optional
+     * 
+ * + * repeated string message = 2; + * @param index The index of the element to return. + * @return The message at the given index. + */ + java.lang.String getMessage(int index); + /** + *
+     * Optional
+     * 
+ * + * repeated string message = 2; + * @param index The index of the value to return. + * @return The bytes of the message at the given index. + */ + com.google.protobuf.ByteString + getMessageBytes(int index); + } + /** + * Protobuf type {@code proto.SubscriptionError} + */ + public static final class SubscriptionError extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SubscriptionError) + SubscriptionErrorOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SubscriptionError.class.getName()); + } + // Use SubscriptionError.newBuilder() to construct. + private SubscriptionError(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SubscriptionError() { + code_ = java.util.Collections.emptyList(); + message_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscriptionError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscriptionError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscriptionError.class, com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder.class); + } + + public static final int CODE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List code_; + private static final com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType> code_converter_ = + new com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType>() { + public com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType convert(java.lang.Integer from) { + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType result = com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType.forNumber(from); + return result == null ? com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType.UNRECOGNIZED : result; + } + }; + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return A list containing the code. + */ + @java.lang.Override + public java.util.List getCodeList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType>(code_, code_converter_); + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return The count of code. + */ + @java.lang.Override + public int getCodeCount() { + return code_.size(); + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param index The index of the element to return. + * @return The code at the given index. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType getCode(int index) { + return code_converter_.convert(code_.get(index)); + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return A list containing the enum numeric values on the wire for code. + */ + @java.lang.Override + public java.util.List + getCodeValueList() { + return code_; + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of code at the given index. + */ + @java.lang.Override + public int getCodeValue(int index) { + return code_.get(index); + } + private int codeMemoizedSerializedSize; + + public static final int MESSAGE_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList message_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + *
+     * Optional
+     * 
+ * + * repeated string message = 2; + * @return A list containing the message. + */ + public com.google.protobuf.ProtocolStringList + getMessageList() { + return message_; + } + /** + *
+     * Optional
+     * 
+ * + * repeated string message = 2; + * @return The count of message. + */ + public int getMessageCount() { + return message_.size(); + } + /** + *
+     * Optional
+     * 
+ * + * repeated string message = 2; + * @param index The index of the element to return. + * @return The message at the given index. + */ + public java.lang.String getMessage(int index) { + return message_.get(index); + } + /** + *
+     * Optional
+     * 
+ * + * repeated string message = 2; + * @param index The index of the value to return. + * @return The bytes of the message at the given index. + */ + public com.google.protobuf.ByteString + getMessageBytes(int index) { + return message_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (getCodeList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(codeMemoizedSerializedSize); + } + for (int i = 0; i < code_.size(); i++) { + output.writeEnumNoTag(code_.get(i)); + } + for (int i = 0; i < message_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, message_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < code_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeEnumSizeNoTag(code_.get(i)); + } + size += dataSize; + if (!getCodeList().isEmpty()) { size += 1; + size += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(dataSize); + }codeMemoizedSerializedSize = dataSize; + } + { + int dataSize = 0; + for (int i = 0; i < message_.size(); i++) { + dataSize += computeStringSizeNoTag(message_.getRaw(i)); + } + size += dataSize; + size += 1 * getMessageList().size(); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.SubscriptionError)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.SubscriptionError other = (com.daimler.mbcarkit.proto.Protos.SubscriptionError) obj; + + if (!code_.equals(other.code_)) return false; + if (!getMessageList() + .equals(other.getMessageList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getCodeCount() > 0) { + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + code_.hashCode(); + } + if (getMessageCount() > 0) { + hash = (37 * hash) + MESSAGE_FIELD_NUMBER; + hash = (53 * hash) + getMessageList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.SubscriptionError prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SubscriptionError} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SubscriptionError) + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscriptionError_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscriptionError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscriptionError.class, com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.SubscriptionError.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + code_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + message_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscriptionError_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.SubscriptionError.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError build() { + com.daimler.mbcarkit.proto.Protos.SubscriptionError result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError buildPartial() { + com.daimler.mbcarkit.proto.Protos.SubscriptionError result = new com.daimler.mbcarkit.proto.Protos.SubscriptionError(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.Protos.SubscriptionError result) { + if (((bitField0_ & 0x00000001) != 0)) { + code_ = java.util.Collections.unmodifiableList(code_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.code_ = code_; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.SubscriptionError result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + message_.makeImmutable(); + result.message_ = message_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.SubscriptionError) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.SubscriptionError)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.SubscriptionError other) { + if (other == com.daimler.mbcarkit.proto.Protos.SubscriptionError.getDefaultInstance()) return this; + if (!other.code_.isEmpty()) { + if (code_.isEmpty()) { + code_ = other.code_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureCodeIsMutable(); + code_.addAll(other.code_); + } + onChanged(); + } + if (!other.message_.isEmpty()) { + if (message_.isEmpty()) { + message_ = other.message_; + bitField0_ |= 0x00000002; + } else { + ensureMessageIsMutable(); + message_.addAll(other.message_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + int tmpRaw = input.readEnum(); + ensureCodeIsMutable(); + code_.add(tmpRaw); + break; + } // case 8 + case 10: { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while(input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureCodeIsMutable(); + code_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } // case 10 + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + ensureMessageIsMutable(); + message_.add(s); + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List code_ = + java.util.Collections.emptyList(); + private void ensureCodeIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + code_ = new java.util.ArrayList(code_); + bitField0_ |= 0x00000001; + } + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return A list containing the code. + */ + public java.util.List getCodeList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType>(code_, code_converter_); + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return The count of code. + */ + public int getCodeCount() { + return code_.size(); + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param index The index of the element to return. + * @return The code at the given index. + */ + public com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType getCode(int index) { + return code_converter_.convert(code_.get(index)); + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param index The index to set the value at. + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode( + int index, com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType value) { + if (value == null) { + throw new NullPointerException(); + } + ensureCodeIsMutable(); + code_.set(index, value.getNumber()); + onChanged(); + return this; + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param value The code to add. + * @return This builder for chaining. + */ + public Builder addCode(com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType value) { + if (value == null) { + throw new NullPointerException(); + } + ensureCodeIsMutable(); + code_.add(value.getNumber()); + onChanged(); + return this; + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param values The code to add. + * @return This builder for chaining. + */ + public Builder addAllCode( + java.lang.Iterable values) { + ensureCodeIsMutable(); + for (com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType value : values) { + code_.add(value.getNumber()); + } + onChanged(); + return this; + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return This builder for chaining. + */ + public Builder clearCode() { + code_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @return A list containing the enum numeric values on the wire for code. + */ + public java.util.List + getCodeValueList() { + return java.util.Collections.unmodifiableList(code_); + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of code at the given index. + */ + public int getCodeValue(int index) { + return code_.get(index); + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for code to set. + * @return This builder for chaining. + */ + public Builder setCodeValue( + int index, int value) { + ensureCodeIsMutable(); + code_.set(index, value); + onChanged(); + return this; + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param value The enum numeric value on the wire for code to add. + * @return This builder for chaining. + */ + public Builder addCodeValue(int value) { + ensureCodeIsMutable(); + code_.add(value); + onChanged(); + return this; + } + /** + * repeated .proto.SubscriptionErrorType code = 1; + * @param values The enum numeric values on the wire for code to add. + * @return This builder for chaining. + */ + public Builder addAllCodeValue( + java.lang.Iterable values) { + ensureCodeIsMutable(); + for (int value : values) { + code_.add(value); + } + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList message_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureMessageIsMutable() { + if (!message_.isModifiable()) { + message_ = new com.google.protobuf.LazyStringArrayList(message_); + } + bitField0_ |= 0x00000002; + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @return A list containing the message. + */ + public com.google.protobuf.ProtocolStringList + getMessageList() { + message_.makeImmutable(); + return message_; + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @return The count of message. + */ + public int getMessageCount() { + return message_.size(); + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @param index The index of the element to return. + * @return The message at the given index. + */ + public java.lang.String getMessage(int index) { + return message_.get(index); + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @param index The index of the value to return. + * @return The bytes of the message at the given index. + */ + public com.google.protobuf.ByteString + getMessageBytes(int index) { + return message_.getByteString(index); + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @param index The index to set the value at. + * @param value The message to set. + * @return This builder for chaining. + */ + public Builder setMessage( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureMessageIsMutable(); + message_.set(index, value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @param value The message to add. + * @return This builder for chaining. + */ + public Builder addMessage( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureMessageIsMutable(); + message_.add(value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @param values The message to add. + * @return This builder for chaining. + */ + public Builder addAllMessage( + java.lang.Iterable values) { + ensureMessageIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, message_); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @return This builder for chaining. + */ + public Builder clearMessage() { + message_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002);; + onChanged(); + return this; + } + /** + *
+       * Optional
+       * 
+ * + * repeated string message = 2; + * @param value The bytes of the message to add. + * @return This builder for chaining. + */ + public Builder addMessageBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureMessageIsMutable(); + message_.add(value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SubscriptionError) + } + + // @@protoc_insertion_point(class_scope:proto.SubscriptionError) + private static final com.daimler.mbcarkit.proto.Protos.SubscriptionError DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.SubscriptionError(); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscriptionError getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SubscriptionError parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SubscribeToAppTwinRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SubscribeToAppTwinRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * string session_id = 1; + * @return The sessionId. + */ + java.lang.String getSessionId(); + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + com.google.protobuf.ByteString + getSessionIdBytes(); + + /** + * string ciam_id = 2; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + *
+     * additional data
+     * 
+ * + * string device_locale = 3; + * @return The deviceLocale. + */ + java.lang.String getDeviceLocale(); + /** + *
+     * additional data
+     * 
+ * + * string device_locale = 3; + * @return The bytes for deviceLocale. + */ + com.google.protobuf.ByteString + getDeviceLocaleBytes(); + + /** + * string app_id = 4; + * @return The appId. + */ + java.lang.String getAppId(); + /** + * string app_id = 4; + * @return The bytes for appId. + */ + com.google.protobuf.ByteString + getAppIdBytes(); + + /** + * string app_version = 5; + * @return The appVersion. + */ + java.lang.String getAppVersion(); + /** + * string app_version = 5; + * @return The bytes for appVersion. + */ + com.google.protobuf.ByteString + getAppVersionBytes(); + + /** + * .proto.OperatingSystemName os_name = 6; + * @return The enum numeric value on the wire for osName. + */ + int getOsNameValue(); + /** + * .proto.OperatingSystemName os_name = 6; + * @return The osName. + */ + com.daimler.mbcarkit.proto.Protos.OperatingSystemName getOsName(); + + /** + * string os_version = 7; + * @return The osVersion. + */ + java.lang.String getOsVersion(); + /** + * string os_version = 7; + * @return The bytes for osVersion. + */ + com.google.protobuf.ByteString + getOsVersionBytes(); + + /** + * string device_model = 8; + * @return The deviceModel. + */ + java.lang.String getDeviceModel(); + /** + * string device_model = 8; + * @return The bytes for deviceModel. + */ + com.google.protobuf.ByteString + getDeviceModelBytes(); + + /** + * string network_carrier = 9; + * @return The networkCarrier. + */ + java.lang.String getNetworkCarrier(); + /** + * string network_carrier = 9; + * @return The bytes for networkCarrier. + */ + com.google.protobuf.ByteString + getNetworkCarrierBytes(); + + /** + * string sdk_version = 10; + * @return The sdkVersion. + */ + java.lang.String getSdkVersion(); + /** + * string sdk_version = 10; + * @return The bytes for sdkVersion. + */ + com.google.protobuf.ByteString + getSdkVersionBytes(); + } + /** + *
+   * Sent from Websocket-Service -> AppTwin
+   * 
+ * + * Protobuf type {@code proto.SubscribeToAppTwinRequest} + */ + public static final class SubscribeToAppTwinRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SubscribeToAppTwinRequest) + SubscribeToAppTwinRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SubscribeToAppTwinRequest.class.getName()); + } + // Use SubscribeToAppTwinRequest.newBuilder() to construct. + private SubscribeToAppTwinRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SubscribeToAppTwinRequest() { + sessionId_ = ""; + ciamId_ = ""; + deviceLocale_ = ""; + appId_ = ""; + appVersion_ = ""; + osName_ = 0; + osVersion_ = ""; + deviceModel_ = ""; + networkCarrier_ = ""; + sdkVersion_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest.class, com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest.Builder.class); + } + + public static final int SESSION_ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object sessionId_ = ""; + /** + * string session_id = 1; + * @return The sessionId. + */ + @java.lang.Override + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } + } + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CIAM_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEVICE_LOCALE_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceLocale_ = ""; + /** + *
+     * additional data
+     * 
+ * + * string device_locale = 3; + * @return The deviceLocale. + */ + @java.lang.Override + public java.lang.String getDeviceLocale() { + java.lang.Object ref = deviceLocale_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceLocale_ = s; + return s; + } + } + /** + *
+     * additional data
+     * 
+ * + * string device_locale = 3; + * @return The bytes for deviceLocale. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDeviceLocaleBytes() { + java.lang.Object ref = deviceLocale_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceLocale_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int APP_ID_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object appId_ = ""; + /** + * string app_id = 4; + * @return The appId. + */ + @java.lang.Override + public java.lang.String getAppId() { + java.lang.Object ref = appId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + appId_ = s; + return s; + } + } + /** + * string app_id = 4; + * @return The bytes for appId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAppIdBytes() { + java.lang.Object ref = appId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + appId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int APP_VERSION_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object appVersion_ = ""; + /** + * string app_version = 5; + * @return The appVersion. + */ + @java.lang.Override + public java.lang.String getAppVersion() { + java.lang.Object ref = appVersion_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + appVersion_ = s; + return s; + } + } + /** + * string app_version = 5; + * @return The bytes for appVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAppVersionBytes() { + java.lang.Object ref = appVersion_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + appVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int OS_NAME_FIELD_NUMBER = 6; + private int osName_ = 0; + /** + * .proto.OperatingSystemName os_name = 6; + * @return The enum numeric value on the wire for osName. + */ + @java.lang.Override public int getOsNameValue() { + return osName_; + } + /** + * .proto.OperatingSystemName os_name = 6; + * @return The osName. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Protos.OperatingSystemName getOsName() { + com.daimler.mbcarkit.proto.Protos.OperatingSystemName result = com.daimler.mbcarkit.proto.Protos.OperatingSystemName.forNumber(osName_); + return result == null ? com.daimler.mbcarkit.proto.Protos.OperatingSystemName.UNRECOGNIZED : result; + } + + public static final int OS_VERSION_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object osVersion_ = ""; + /** + * string os_version = 7; + * @return The osVersion. + */ + @java.lang.Override + public java.lang.String getOsVersion() { + java.lang.Object ref = osVersion_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + osVersion_ = s; + return s; + } + } + /** + * string os_version = 7; + * @return The bytes for osVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getOsVersionBytes() { + java.lang.Object ref = osVersion_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + osVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DEVICE_MODEL_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private volatile java.lang.Object deviceModel_ = ""; + /** + * string device_model = 8; + * @return The deviceModel. + */ + @java.lang.Override + public java.lang.String getDeviceModel() { + java.lang.Object ref = deviceModel_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceModel_ = s; + return s; + } + } + /** + * string device_model = 8; + * @return The bytes for deviceModel. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDeviceModelBytes() { + java.lang.Object ref = deviceModel_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceModel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NETWORK_CARRIER_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private volatile java.lang.Object networkCarrier_ = ""; + /** + * string network_carrier = 9; + * @return The networkCarrier. + */ + @java.lang.Override + public java.lang.String getNetworkCarrier() { + java.lang.Object ref = networkCarrier_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + networkCarrier_ = s; + return s; + } + } + /** + * string network_carrier = 9; + * @return The bytes for networkCarrier. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNetworkCarrierBytes() { + java.lang.Object ref = networkCarrier_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + networkCarrier_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SDK_VERSION_FIELD_NUMBER = 10; + @SuppressWarnings("serial") + private volatile java.lang.Object sdkVersion_ = ""; + /** + * string sdk_version = 10; + * @return The sdkVersion. + */ + @java.lang.Override + public java.lang.String getSdkVersion() { + java.lang.Object ref = sdkVersion_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sdkVersion_ = s; + return s; + } + } + /** + * string sdk_version = 10; + * @return The bytes for sdkVersion. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSdkVersionBytes() { + java.lang.Object ref = sdkVersion_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sdkVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(deviceLocale_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, deviceLocale_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(appId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, appId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(appVersion_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, appVersion_); + } + if (osName_ != com.daimler.mbcarkit.proto.Protos.OperatingSystemName.UNKNOWN_OPERATING_SYSTEM.getNumber()) { + output.writeEnum(6, osName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(osVersion_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 7, osVersion_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(deviceModel_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 8, deviceModel_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(networkCarrier_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 9, networkCarrier_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sdkVersion_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 10, sdkVersion_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(deviceLocale_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, deviceLocale_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(appId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, appId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(appVersion_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, appVersion_); + } + if (osName_ != com.daimler.mbcarkit.proto.Protos.OperatingSystemName.UNKNOWN_OPERATING_SYSTEM.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(6, osName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(osVersion_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(7, osVersion_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(deviceModel_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(8, deviceModel_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(networkCarrier_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(9, networkCarrier_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sdkVersion_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(10, sdkVersion_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest other = (com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest) obj; + + if (!getSessionId() + .equals(other.getSessionId())) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (!getDeviceLocale() + .equals(other.getDeviceLocale())) return false; + if (!getAppId() + .equals(other.getAppId())) return false; + if (!getAppVersion() + .equals(other.getAppVersion())) return false; + if (osName_ != other.osName_) return false; + if (!getOsVersion() + .equals(other.getOsVersion())) return false; + if (!getDeviceModel() + .equals(other.getDeviceModel())) return false; + if (!getNetworkCarrier() + .equals(other.getNetworkCarrier())) return false; + if (!getSdkVersion() + .equals(other.getSdkVersion())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; + hash = (53 * hash) + getSessionId().hashCode(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + DEVICE_LOCALE_FIELD_NUMBER; + hash = (53 * hash) + getDeviceLocale().hashCode(); + hash = (37 * hash) + APP_ID_FIELD_NUMBER; + hash = (53 * hash) + getAppId().hashCode(); + hash = (37 * hash) + APP_VERSION_FIELD_NUMBER; + hash = (53 * hash) + getAppVersion().hashCode(); + hash = (37 * hash) + OS_NAME_FIELD_NUMBER; + hash = (53 * hash) + osName_; + hash = (37 * hash) + OS_VERSION_FIELD_NUMBER; + hash = (53 * hash) + getOsVersion().hashCode(); + hash = (37 * hash) + DEVICE_MODEL_FIELD_NUMBER; + hash = (53 * hash) + getDeviceModel().hashCode(); + hash = (37 * hash) + NETWORK_CARRIER_FIELD_NUMBER; + hash = (53 * hash) + getNetworkCarrier().hashCode(); + hash = (37 * hash) + SDK_VERSION_FIELD_NUMBER; + hash = (53 * hash) + getSdkVersion().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sent from Websocket-Service -> AppTwin
+     * 
+ * + * Protobuf type {@code proto.SubscribeToAppTwinRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SubscribeToAppTwinRequest) + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest.class, com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sessionId_ = ""; + ciamId_ = ""; + deviceLocale_ = ""; + appId_ = ""; + appVersion_ = ""; + osName_ = 0; + osVersion_ = ""; + deviceModel_ = ""; + networkCarrier_ = ""; + sdkVersion_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest build() { + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest buildPartial() { + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest result = new com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sessionId_ = sessionId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deviceLocale_ = deviceLocale_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.appId_ = appId_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.appVersion_ = appVersion_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.osName_ = osName_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.osVersion_ = osVersion_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.deviceModel_ = deviceModel_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.networkCarrier_ = networkCarrier_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.sdkVersion_ = sdkVersion_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest other) { + if (other == com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest.getDefaultInstance()) return this; + if (!other.getSessionId().isEmpty()) { + sessionId_ = other.sessionId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getDeviceLocale().isEmpty()) { + deviceLocale_ = other.deviceLocale_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getAppId().isEmpty()) { + appId_ = other.appId_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getAppVersion().isEmpty()) { + appVersion_ = other.appVersion_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (other.osName_ != 0) { + setOsNameValue(other.getOsNameValue()); + } + if (!other.getOsVersion().isEmpty()) { + osVersion_ = other.osVersion_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (!other.getDeviceModel().isEmpty()) { + deviceModel_ = other.deviceModel_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (!other.getNetworkCarrier().isEmpty()) { + networkCarrier_ = other.networkCarrier_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (!other.getSdkVersion().isEmpty()) { + sdkVersion_ = other.sdkVersion_; + bitField0_ |= 0x00000200; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + sessionId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + deviceLocale_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + appId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: { + appVersion_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 48: { + osName_ = input.readEnum(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 58: { + osVersion_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + deviceModel_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 74: { + networkCarrier_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 82: { + sdkVersion_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 82 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object sessionId_ = ""; + /** + * string session_id = 1; + * @return The sessionId. + */ + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + public com.google.protobuf.ByteString + getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string session_id = 1; + * @param value The sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string session_id = 1; + * @return This builder for chaining. + */ + public Builder clearSessionId() { + sessionId_ = getDefaultInstance().getSessionId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string session_id = 1; + * @param value The bytes for sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ciam_id = 2; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object deviceLocale_ = ""; + /** + *
+       * additional data
+       * 
+ * + * string device_locale = 3; + * @return The deviceLocale. + */ + public java.lang.String getDeviceLocale() { + java.lang.Object ref = deviceLocale_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceLocale_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * additional data
+       * 
+ * + * string device_locale = 3; + * @return The bytes for deviceLocale. + */ + public com.google.protobuf.ByteString + getDeviceLocaleBytes() { + java.lang.Object ref = deviceLocale_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceLocale_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * additional data
+       * 
+ * + * string device_locale = 3; + * @param value The deviceLocale to set. + * @return This builder for chaining. + */ + public Builder setDeviceLocale( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + deviceLocale_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * additional data
+       * 
+ * + * string device_locale = 3; + * @return This builder for chaining. + */ + public Builder clearDeviceLocale() { + deviceLocale_ = getDefaultInstance().getDeviceLocale(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+       * additional data
+       * 
+ * + * string device_locale = 3; + * @param value The bytes for deviceLocale to set. + * @return This builder for chaining. + */ + public Builder setDeviceLocaleBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + deviceLocale_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object appId_ = ""; + /** + * string app_id = 4; + * @return The appId. + */ + public java.lang.String getAppId() { + java.lang.Object ref = appId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + appId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string app_id = 4; + * @return The bytes for appId. + */ + public com.google.protobuf.ByteString + getAppIdBytes() { + java.lang.Object ref = appId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + appId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string app_id = 4; + * @param value The appId to set. + * @return This builder for chaining. + */ + public Builder setAppId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + appId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string app_id = 4; + * @return This builder for chaining. + */ + public Builder clearAppId() { + appId_ = getDefaultInstance().getAppId(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string app_id = 4; + * @param value The bytes for appId to set. + * @return This builder for chaining. + */ + public Builder setAppIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + appId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object appVersion_ = ""; + /** + * string app_version = 5; + * @return The appVersion. + */ + public java.lang.String getAppVersion() { + java.lang.Object ref = appVersion_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + appVersion_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string app_version = 5; + * @return The bytes for appVersion. + */ + public com.google.protobuf.ByteString + getAppVersionBytes() { + java.lang.Object ref = appVersion_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + appVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string app_version = 5; + * @param value The appVersion to set. + * @return This builder for chaining. + */ + public Builder setAppVersion( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + appVersion_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string app_version = 5; + * @return This builder for chaining. + */ + public Builder clearAppVersion() { + appVersion_ = getDefaultInstance().getAppVersion(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string app_version = 5; + * @param value The bytes for appVersion to set. + * @return This builder for chaining. + */ + public Builder setAppVersionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + appVersion_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private int osName_ = 0; + /** + * .proto.OperatingSystemName os_name = 6; + * @return The enum numeric value on the wire for osName. + */ + @java.lang.Override public int getOsNameValue() { + return osName_; + } + /** + * .proto.OperatingSystemName os_name = 6; + * @param value The enum numeric value on the wire for osName to set. + * @return This builder for chaining. + */ + public Builder setOsNameValue(int value) { + osName_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .proto.OperatingSystemName os_name = 6; + * @return The osName. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.OperatingSystemName getOsName() { + com.daimler.mbcarkit.proto.Protos.OperatingSystemName result = com.daimler.mbcarkit.proto.Protos.OperatingSystemName.forNumber(osName_); + return result == null ? com.daimler.mbcarkit.proto.Protos.OperatingSystemName.UNRECOGNIZED : result; + } + /** + * .proto.OperatingSystemName os_name = 6; + * @param value The osName to set. + * @return This builder for chaining. + */ + public Builder setOsName(com.daimler.mbcarkit.proto.Protos.OperatingSystemName value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + osName_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.OperatingSystemName os_name = 6; + * @return This builder for chaining. + */ + public Builder clearOsName() { + bitField0_ = (bitField0_ & ~0x00000020); + osName_ = 0; + onChanged(); + return this; + } + + private java.lang.Object osVersion_ = ""; + /** + * string os_version = 7; + * @return The osVersion. + */ + public java.lang.String getOsVersion() { + java.lang.Object ref = osVersion_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + osVersion_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string os_version = 7; + * @return The bytes for osVersion. + */ + public com.google.protobuf.ByteString + getOsVersionBytes() { + java.lang.Object ref = osVersion_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + osVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string os_version = 7; + * @param value The osVersion to set. + * @return This builder for chaining. + */ + public Builder setOsVersion( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + osVersion_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string os_version = 7; + * @return This builder for chaining. + */ + public Builder clearOsVersion() { + osVersion_ = getDefaultInstance().getOsVersion(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string os_version = 7; + * @param value The bytes for osVersion to set. + * @return This builder for chaining. + */ + public Builder setOsVersionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + osVersion_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object deviceModel_ = ""; + /** + * string device_model = 8; + * @return The deviceModel. + */ + public java.lang.String getDeviceModel() { + java.lang.Object ref = deviceModel_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deviceModel_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string device_model = 8; + * @return The bytes for deviceModel. + */ + public com.google.protobuf.ByteString + getDeviceModelBytes() { + java.lang.Object ref = deviceModel_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deviceModel_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string device_model = 8; + * @param value The deviceModel to set. + * @return This builder for chaining. + */ + public Builder setDeviceModel( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + deviceModel_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * string device_model = 8; + * @return This builder for chaining. + */ + public Builder clearDeviceModel() { + deviceModel_ = getDefaultInstance().getDeviceModel(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + /** + * string device_model = 8; + * @param value The bytes for deviceModel to set. + * @return This builder for chaining. + */ + public Builder setDeviceModelBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + deviceModel_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private java.lang.Object networkCarrier_ = ""; + /** + * string network_carrier = 9; + * @return The networkCarrier. + */ + public java.lang.String getNetworkCarrier() { + java.lang.Object ref = networkCarrier_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + networkCarrier_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string network_carrier = 9; + * @return The bytes for networkCarrier. + */ + public com.google.protobuf.ByteString + getNetworkCarrierBytes() { + java.lang.Object ref = networkCarrier_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + networkCarrier_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string network_carrier = 9; + * @param value The networkCarrier to set. + * @return This builder for chaining. + */ + public Builder setNetworkCarrier( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + networkCarrier_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * string network_carrier = 9; + * @return This builder for chaining. + */ + public Builder clearNetworkCarrier() { + networkCarrier_ = getDefaultInstance().getNetworkCarrier(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + /** + * string network_carrier = 9; + * @param value The bytes for networkCarrier to set. + * @return This builder for chaining. + */ + public Builder setNetworkCarrierBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + networkCarrier_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private java.lang.Object sdkVersion_ = ""; + /** + * string sdk_version = 10; + * @return The sdkVersion. + */ + public java.lang.String getSdkVersion() { + java.lang.Object ref = sdkVersion_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sdkVersion_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string sdk_version = 10; + * @return The bytes for sdkVersion. + */ + public com.google.protobuf.ByteString + getSdkVersionBytes() { + java.lang.Object ref = sdkVersion_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sdkVersion_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string sdk_version = 10; + * @param value The sdkVersion to set. + * @return This builder for chaining. + */ + public Builder setSdkVersion( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + sdkVersion_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * string sdk_version = 10; + * @return This builder for chaining. + */ + public Builder clearSdkVersion() { + sdkVersion_ = getDefaultInstance().getSdkVersion(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + /** + * string sdk_version = 10; + * @param value The bytes for sdkVersion to set. + * @return This builder for chaining. + */ + public Builder setSdkVersionBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + sdkVersion_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SubscribeToAppTwinRequest) + } + + // @@protoc_insertion_point(class_scope:proto.SubscribeToAppTwinRequest) + private static final com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest(); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SubscribeToAppTwinRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ResubscribeToAppTwinRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ResubscribeToAppTwinRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * string session_id = 1; + * @return The sessionId. + */ + java.lang.String getSessionId(); + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + com.google.protobuf.ByteString + getSessionIdBytes(); + + /** + * string ciam_id = 2; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + } + /** + * Protobuf type {@code proto.ResubscribeToAppTwinRequest} + */ + public static final class ResubscribeToAppTwinRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ResubscribeToAppTwinRequest) + ResubscribeToAppTwinRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ResubscribeToAppTwinRequest.class.getName()); + } + // Use ResubscribeToAppTwinRequest.newBuilder() to construct. + private ResubscribeToAppTwinRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ResubscribeToAppTwinRequest() { + sessionId_ = ""; + ciamId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest.class, com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest.Builder.class); + } + + public static final int SESSION_ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object sessionId_ = ""; + /** + * string session_id = 1; + * @return The sessionId. + */ + @java.lang.Override + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } + } + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CIAM_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest other = (com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest) obj; + + if (!getSessionId() + .equals(other.getSessionId())) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; + hash = (53 * hash) + getSessionId().hashCode(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ResubscribeToAppTwinRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ResubscribeToAppTwinRequest) + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest.class, com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sessionId_ = ""; + ciamId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest build() { + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest buildPartial() { + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest result = new com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sessionId_ = sessionId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest other) { + if (other == com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest.getDefaultInstance()) return this; + if (!other.getSessionId().isEmpty()) { + sessionId_ = other.sessionId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + sessionId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object sessionId_ = ""; + /** + * string session_id = 1; + * @return The sessionId. + */ + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + public com.google.protobuf.ByteString + getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string session_id = 1; + * @param value The sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string session_id = 1; + * @return This builder for chaining. + */ + public Builder clearSessionId() { + sessionId_ = getDefaultInstance().getSessionId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string session_id = 1; + * @param value The bytes for sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ciam_id = 2; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ResubscribeToAppTwinRequest) + } + + // @@protoc_insertion_point(class_scope:proto.ResubscribeToAppTwinRequest) + private static final com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest(); + } + + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResubscribeToAppTwinRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ResubscribeToAppTwinResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ResubscribeToAppTwinResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @return The enum numeric value on the wire for result. + */ + int getResultValue(); + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @return The result. + */ + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult getResult(); + } + /** + * Protobuf type {@code proto.ResubscribeToAppTwinResponse} + */ + public static final class ResubscribeToAppTwinResponse extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ResubscribeToAppTwinResponse) + ResubscribeToAppTwinResponseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ResubscribeToAppTwinResponse.class.getName()); + } + // Use ResubscribeToAppTwinResponse.newBuilder() to construct. + private ResubscribeToAppTwinResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ResubscribeToAppTwinResponse() { + result_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.class, com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.Builder.class); + } + + /** + * Protobuf enum {@code proto.ResubscribeToAppTwinResponse.ResubscribeResult} + */ + public enum ResubscribeResult + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_ERROR = 0; + */ + UNKNOWN_ERROR(0), + /** + * SUCCESS = 1; + */ + SUCCESS(1), + /** + * INVALID_JWT_ERROR = 2; + */ + INVALID_JWT_ERROR(2), + /** + * TARGET_DOES_NOT_EXIST = 3; + */ + TARGET_DOES_NOT_EXIST(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ResubscribeResult.class.getName()); + } + /** + * UNKNOWN_ERROR = 0; + */ + public static final int UNKNOWN_ERROR_VALUE = 0; + /** + * SUCCESS = 1; + */ + public static final int SUCCESS_VALUE = 1; + /** + * INVALID_JWT_ERROR = 2; + */ + public static final int INVALID_JWT_ERROR_VALUE = 2; + /** + * TARGET_DOES_NOT_EXIST = 3; + */ + public static final int TARGET_DOES_NOT_EXIST_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ResubscribeResult valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ResubscribeResult forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_ERROR; + case 1: return SUCCESS; + case 2: return INVALID_JWT_ERROR; + case 3: return TARGET_DOES_NOT_EXIST; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ResubscribeResult> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ResubscribeResult findValueByNumber(int number) { + return ResubscribeResult.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.getDescriptor().getEnumTypes().get(0); + } + + private static final ResubscribeResult[] VALUES = values(); + + public static ResubscribeResult valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ResubscribeResult(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.ResubscribeToAppTwinResponse.ResubscribeResult) + } + + public static final int RESULT_FIELD_NUMBER = 1; + private int result_ = 0; + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @return The enum numeric value on the wire for result. + */ + @java.lang.Override public int getResultValue() { + return result_; + } + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @return The result. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult getResult() { + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult result = com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult.forNumber(result_); + return result == null ? com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (result_ != com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult.UNKNOWN_ERROR.getNumber()) { + output.writeEnum(1, result_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (result_ != com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult.UNKNOWN_ERROR.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, result_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse other = (com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse) obj; + + if (result_ != other.result_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RESULT_FIELD_NUMBER; + hash = (53 * hash) + result_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ResubscribeToAppTwinResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ResubscribeToAppTwinResponse) + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.class, com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + result_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_ResubscribeToAppTwinResponse_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse build() { + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse buildPartial() { + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse result = new com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.result_ = result_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse other) { + if (other == com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.getDefaultInstance()) return this; + if (other.result_ != 0) { + setResultValue(other.getResultValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + result_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int result_ = 0; + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @return The enum numeric value on the wire for result. + */ + @java.lang.Override public int getResultValue() { + return result_; + } + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @param value The enum numeric value on the wire for result to set. + * @return This builder for chaining. + */ + public Builder setResultValue(int value) { + result_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @return The result. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult getResult() { + com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult result = com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult.forNumber(result_); + return result == null ? com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult.UNRECOGNIZED : result; + } + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @param value The result to set. + * @return This builder for chaining. + */ + public Builder setResult(com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse.ResubscribeResult value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + result_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ResubscribeToAppTwinResponse.ResubscribeResult result = 1; + * @return This builder for chaining. + */ + public Builder clearResult() { + bitField0_ = (bitField0_ & ~0x00000001); + result_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ResubscribeToAppTwinResponse) + } + + // @@protoc_insertion_point(class_scope:proto.ResubscribeToAppTwinResponse) + private static final com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse(); + } + + public static com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ResubscribeToAppTwinResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.ResubscribeToAppTwinResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SubscribeToAppTwinResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SubscribeToAppTwinResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * bool success = 1; + * @return The success. + */ + boolean getSuccess(); + + /** + * .proto.SubscriptionErrorType error_code = 2; + * @return The enum numeric value on the wire for errorCode. + */ + int getErrorCodeValue(); + /** + * .proto.SubscriptionErrorType error_code = 2; + * @return The errorCode. + */ + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType getErrorCode(); + } + /** + *
+   * Sent from AppTwin -> Websocket-Service
+   * 
+ * + * Protobuf type {@code proto.SubscribeToAppTwinResponse} + */ + public static final class SubscribeToAppTwinResponse extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SubscribeToAppTwinResponse) + SubscribeToAppTwinResponseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SubscribeToAppTwinResponse.class.getName()); + } + // Use SubscribeToAppTwinResponse.newBuilder() to construct. + private SubscribeToAppTwinResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SubscribeToAppTwinResponse() { + errorCode_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse.class, com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse.Builder.class); + } + + public static final int SUCCESS_FIELD_NUMBER = 1; + private boolean success_ = false; + /** + * bool success = 1; + * @return The success. + */ + @java.lang.Override + public boolean getSuccess() { + return success_; + } + + public static final int ERROR_CODE_FIELD_NUMBER = 2; + private int errorCode_ = 0; + /** + * .proto.SubscriptionErrorType error_code = 2; + * @return The enum numeric value on the wire for errorCode. + */ + @java.lang.Override public int getErrorCodeValue() { + return errorCode_; + } + /** + * .proto.SubscriptionErrorType error_code = 2; + * @return The errorCode. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType getErrorCode() { + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType result = com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType.forNumber(errorCode_); + return result == null ? com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (success_ != false) { + output.writeBool(1, success_); + } + if (errorCode_ != com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType.UNKNOWN.getNumber()) { + output.writeEnum(2, errorCode_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (success_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, success_); + } + if (errorCode_ != com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType.UNKNOWN.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, errorCode_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse other = (com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse) obj; + + if (getSuccess() + != other.getSuccess()) return false; + if (errorCode_ != other.errorCode_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SUCCESS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getSuccess()); + hash = (37 * hash) + ERROR_CODE_FIELD_NUMBER; + hash = (53 * hash) + errorCode_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sent from AppTwin -> Websocket-Service
+     * 
+ * + * Protobuf type {@code proto.SubscribeToAppTwinResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SubscribeToAppTwinResponse) + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse.class, com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + success_ = false; + errorCode_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_SubscribeToAppTwinResponse_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse build() { + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse buildPartial() { + com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse result = new com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.success_ = success_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.errorCode_ = errorCode_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse other) { + if (other == com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse.getDefaultInstance()) return this; + if (other.getSuccess() != false) { + setSuccess(other.getSuccess()); + } + if (other.errorCode_ != 0) { + setErrorCodeValue(other.getErrorCodeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + success_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + errorCode_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean success_ ; + /** + * bool success = 1; + * @return The success. + */ + @java.lang.Override + public boolean getSuccess() { + return success_; + } + /** + * bool success = 1; + * @param value The success to set. + * @return This builder for chaining. + */ + public Builder setSuccess(boolean value) { + + success_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool success = 1; + * @return This builder for chaining. + */ + public Builder clearSuccess() { + bitField0_ = (bitField0_ & ~0x00000001); + success_ = false; + onChanged(); + return this; + } + + private int errorCode_ = 0; + /** + * .proto.SubscriptionErrorType error_code = 2; + * @return The enum numeric value on the wire for errorCode. + */ + @java.lang.Override public int getErrorCodeValue() { + return errorCode_; + } + /** + * .proto.SubscriptionErrorType error_code = 2; + * @param value The enum numeric value on the wire for errorCode to set. + * @return This builder for chaining. + */ + public Builder setErrorCodeValue(int value) { + errorCode_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .proto.SubscriptionErrorType error_code = 2; + * @return The errorCode. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType getErrorCode() { + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType result = com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType.forNumber(errorCode_); + return result == null ? com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType.UNRECOGNIZED : result; + } + /** + * .proto.SubscriptionErrorType error_code = 2; + * @param value The errorCode to set. + * @return This builder for chaining. + */ + public Builder setErrorCode(com.daimler.mbcarkit.proto.Protos.SubscriptionErrorType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + errorCode_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.SubscriptionErrorType error_code = 2; + * @return This builder for chaining. + */ + public Builder clearErrorCode() { + bitField0_ = (bitField0_ & ~0x00000002); + errorCode_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SubscribeToAppTwinResponse) + } + + // @@protoc_insertion_point(class_scope:proto.SubscribeToAppTwinResponse) + private static final com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse(); + } + + public static com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SubscribeToAppTwinResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscribeToAppTwinResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UnsubscribeFromAppTwinRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UnsubscribeFromAppTwinRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * string session_id = 1; + * @return The sessionId. + */ + java.lang.String getSessionId(); + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + com.google.protobuf.ByteString + getSessionIdBytes(); + } + /** + * Protobuf type {@code proto.UnsubscribeFromAppTwinRequest} + */ + public static final class UnsubscribeFromAppTwinRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UnsubscribeFromAppTwinRequest) + UnsubscribeFromAppTwinRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UnsubscribeFromAppTwinRequest.class.getName()); + } + // Use UnsubscribeFromAppTwinRequest.newBuilder() to construct. + private UnsubscribeFromAppTwinRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UnsubscribeFromAppTwinRequest() { + sessionId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest.class, com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest.Builder.class); + } + + public static final int SESSION_ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object sessionId_ = ""; + /** + * string session_id = 1; + * @return The sessionId. + */ + @java.lang.Override + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } + } + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, sessionId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sessionId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, sessionId_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest other = (com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest) obj; + + if (!getSessionId() + .equals(other.getSessionId())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SESSION_ID_FIELD_NUMBER; + hash = (53 * hash) + getSessionId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.UnsubscribeFromAppTwinRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UnsubscribeFromAppTwinRequest) + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest.class, com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sessionId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest build() { + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest buildPartial() { + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest result = new com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sessionId_ = sessionId_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest other) { + if (other == com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest.getDefaultInstance()) return this; + if (!other.getSessionId().isEmpty()) { + sessionId_ = other.sessionId_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + sessionId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object sessionId_ = ""; + /** + * string session_id = 1; + * @return The sessionId. + */ + public java.lang.String getSessionId() { + java.lang.Object ref = sessionId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + sessionId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string session_id = 1; + * @return The bytes for sessionId. + */ + public com.google.protobuf.ByteString + getSessionIdBytes() { + java.lang.Object ref = sessionId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + sessionId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string session_id = 1; + * @param value The sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string session_id = 1; + * @return This builder for chaining. + */ + public Builder clearSessionId() { + sessionId_ = getDefaultInstance().getSessionId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string session_id = 1; + * @param value The bytes for sessionId to set. + * @return This builder for chaining. + */ + public Builder setSessionIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + sessionId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.UnsubscribeFromAppTwinRequest) + } + + // @@protoc_insertion_point(class_scope:proto.UnsubscribeFromAppTwinRequest) + private static final com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest(); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UnsubscribeFromAppTwinRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UnsubscribeFromAppTwinResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UnsubscribeFromAppTwinResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * bool success = 1; + * @return The success. + */ + boolean getSuccess(); + + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + int getErrorsCount(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + boolean containsErrors( + java.lang.String key); + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getErrors(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + java.util.Map + getErrorsMap(); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue); + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key); + } + /** + * Protobuf type {@code proto.UnsubscribeFromAppTwinResponse} + */ + public static final class UnsubscribeFromAppTwinResponse extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UnsubscribeFromAppTwinResponse) + UnsubscribeFromAppTwinResponseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UnsubscribeFromAppTwinResponse.class.getName()); + } + // Use UnsubscribeFromAppTwinResponse.newBuilder() to construct. + private UnsubscribeFromAppTwinResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UnsubscribeFromAppTwinResponse() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinResponse_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse.class, com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse.Builder.class); + } + + public static final int SUCCESS_FIELD_NUMBER = 1; + private boolean success_ = false; + /** + * bool success = 1; + * @return The success. + */ + @java.lang.Override + public boolean getSuccess() { + return success_; + } + + public static final int ERRORS_FIELD_NUMBER = 2; + private static final class ErrorsDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionError> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinResponse_ErrorsEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.Protos.SubscriptionError.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionError> errors_; + private com.google.protobuf.MapField + internalGetErrors() { + if (errors_ == null) { + return com.google.protobuf.MapField.emptyMapField( + ErrorsDefaultEntryHolder.defaultEntry); + } + return errors_; + } + public int getErrorsCount() { + return internalGetErrors().getMap().size(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public boolean containsErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetErrors().getMap().containsKey(key); + } + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getErrors() { + return getErrorsMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public java.util.Map getErrorsMap() { + return internalGetErrors().getMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetErrors().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetErrors().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (success_ != false) { + output.writeBool(1, success_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetErrors(), + ErrorsDefaultEntryHolder.defaultEntry, + 2); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (success_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, success_); + } + for (java.util.Map.Entry entry + : internalGetErrors().getMap().entrySet()) { + com.google.protobuf.MapEntry + errors__ = ErrorsDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, errors__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse other = (com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse) obj; + + if (getSuccess() + != other.getSuccess()) return false; + if (!internalGetErrors().equals( + other.internalGetErrors())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SUCCESS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getSuccess()); + if (!internalGetErrors().getMap().isEmpty()) { + hash = (37 * hash) + ERRORS_FIELD_NUMBER; + hash = (53 * hash) + internalGetErrors().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.UnsubscribeFromAppTwinResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UnsubscribeFromAppTwinResponse) + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinResponse_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetMutableErrors(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse.class, com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + success_ = false; + internalGetMutableErrors().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_UnsubscribeFromAppTwinResponse_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse build() { + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse buildPartial() { + com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse result = new com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.success_ = success_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.errors_ = internalGetErrors().build(ErrorsDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse other) { + if (other == com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse.getDefaultInstance()) return this; + if (other.getSuccess() != false) { + setSuccess(other.getSuccess()); + } + internalGetMutableErrors().mergeFrom( + other.internalGetErrors()); + bitField0_ |= 0x00000002; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + success_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + com.google.protobuf.MapEntry + errors__ = input.readMessage( + ErrorsDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableErrors().ensureBuilderMap().put( + errors__.getKey(), errors__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean success_ ; + /** + * bool success = 1; + * @return The success. + */ + @java.lang.Override + public boolean getSuccess() { + return success_; + } + /** + * bool success = 1; + * @param value The success to set. + * @return This builder for chaining. + */ + public Builder setSuccess(boolean value) { + + success_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool success = 1; + * @return This builder for chaining. + */ + public Builder clearSuccess() { + bitField0_ = (bitField0_ & ~0x00000001); + success_ = false; + onChanged(); + return this; + } + + private static final class ErrorsConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError build(com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.Protos.SubscriptionError) { return (com.daimler.mbcarkit.proto.Protos.SubscriptionError) val; } + return ((com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return ErrorsDefaultEntryHolder.defaultEntry; + } + }; + private static final ErrorsConverter errorsConverter = new ErrorsConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder, com.daimler.mbcarkit.proto.Protos.SubscriptionError, com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder> errors_; + private com.google.protobuf.MapFieldBuilder + internalGetErrors() { + if (errors_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(errorsConverter); + } + return errors_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableErrors() { + if (errors_ == null) { + errors_ = new com.google.protobuf.MapFieldBuilder<>(errorsConverter); + } + bitField0_ |= 0x00000002; + onChanged(); + return errors_; + } + public int getErrorsCount() { + return internalGetErrors().ensureBuilderMap().size(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public boolean containsErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetErrors().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getErrorsMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getErrors() { + return getErrorsMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public java.util.Map getErrorsMap() { + return internalGetErrors().getImmutableMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Protos.SubscriptionError defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableErrors().ensureBuilderMap(); + return map.containsKey(key) ? errorsConverter.build(map.get(key)) : defaultValue; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.SubscriptionError getErrorsOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableErrors().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return errorsConverter.build(map.get(key)); + } + public Builder clearErrors() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutableErrors().clear(); + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder removeErrors( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableErrors().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableErrors() { + bitField0_ |= 0x00000002; + return internalGetMutableErrors().ensureMessageMap(); + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder putErrors( + java.lang.String key, + com.daimler.mbcarkit.proto.Protos.SubscriptionError value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableErrors().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public Builder putAllErrors( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableErrors().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<string, .proto.SubscriptionError> errors = 2; + */ + public com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder putErrorsBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableErrors().ensureBuilderMap(); + com.daimler.mbcarkit.proto.Protos.SubscriptionErrorOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.Protos.SubscriptionError.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.Protos.SubscriptionError) { + entry = ((com.daimler.mbcarkit.proto.Protos.SubscriptionError) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.Protos.SubscriptionError.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.UnsubscribeFromAppTwinResponse) + } + + // @@protoc_insertion_point(class_scope:proto.UnsubscribeFromAppTwinResponse) + private static final com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse(); + } + + public static com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UnsubscribeFromAppTwinResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.UnsubscribeFromAppTwinResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface HeartbeatOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.Heartbeat) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.Heartbeat} + */ + public static final class Heartbeat extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.Heartbeat) + HeartbeatOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Heartbeat.class.getName()); + } + // Use Heartbeat.newBuilder() to construct. + private Heartbeat(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private Heartbeat() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_Heartbeat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_Heartbeat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.Heartbeat.class, com.daimler.mbcarkit.proto.Protos.Heartbeat.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.Heartbeat)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.Heartbeat other = (com.daimler.mbcarkit.proto.Protos.Heartbeat) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.Heartbeat parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.Heartbeat prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.Heartbeat} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.Heartbeat) + com.daimler.mbcarkit.proto.Protos.HeartbeatOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_Heartbeat_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_Heartbeat_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.Heartbeat.class, com.daimler.mbcarkit.proto.Protos.Heartbeat.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.Heartbeat.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_Heartbeat_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.Heartbeat getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.Heartbeat.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.Heartbeat build() { + com.daimler.mbcarkit.proto.Protos.Heartbeat result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.Heartbeat buildPartial() { + com.daimler.mbcarkit.proto.Protos.Heartbeat result = new com.daimler.mbcarkit.proto.Protos.Heartbeat(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.Heartbeat) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.Heartbeat)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.Heartbeat other) { + if (other == com.daimler.mbcarkit.proto.Protos.Heartbeat.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.Heartbeat) + } + + // @@protoc_insertion_point(class_scope:proto.Heartbeat) + private static final com.daimler.mbcarkit.proto.Protos.Heartbeat DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.Heartbeat(); + } + + public static com.daimler.mbcarkit.proto.Protos.Heartbeat getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Heartbeat parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.Heartbeat getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AssignedVehiclesOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AssignedVehicles) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated string vins = 1; + * @return A list containing the vins. + */ + java.util.List + getVinsList(); + /** + * repeated string vins = 1; + * @return The count of vins. + */ + int getVinsCount(); + /** + * repeated string vins = 1; + * @param index The index of the element to return. + * @return The vins at the given index. + */ + java.lang.String getVins(int index); + /** + * repeated string vins = 1; + * @param index The index of the value to return. + * @return The bytes of the vins at the given index. + */ + com.google.protobuf.ByteString + getVinsBytes(int index); + } + /** + *
+   * This message is used to tell the App which vehicles are assigned to the current user.
+   * The message is sent when the AppTwin is fully initialized (i.e. when it received the first vcb-response)
+   *
+   * The list of VINs is needed when a user gets unassigned from a vehicle while not connected to an AppTwin
+   * In this case the vehicle would still show in the app the next time the user starts it (see https://appsfactory.atlassian.net/browse/DAIM-3831)
+   * To prevent this, we tell the App which VINs are assigned via this message
+   * 
+ * + * Protobuf type {@code proto.AssignedVehicles} + */ + public static final class AssignedVehicles extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AssignedVehicles) + AssignedVehiclesOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AssignedVehicles.class.getName()); + } + // Use AssignedVehicles.newBuilder() to construct. + private AssignedVehicles(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AssignedVehicles() { + vins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AssignedVehicles_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AssignedVehicles_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.AssignedVehicles.class, com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder.class); + } + + public static final int VINS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList vins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * repeated string vins = 1; + * @return A list containing the vins. + */ + public com.google.protobuf.ProtocolStringList + getVinsList() { + return vins_; + } + /** + * repeated string vins = 1; + * @return The count of vins. + */ + public int getVinsCount() { + return vins_.size(); + } + /** + * repeated string vins = 1; + * @param index The index of the element to return. + * @return The vins at the given index. + */ + public java.lang.String getVins(int index) { + return vins_.get(index); + } + /** + * repeated string vins = 1; + * @param index The index of the value to return. + * @return The bytes of the vins at the given index. + */ + public com.google.protobuf.ByteString + getVinsBytes(int index) { + return vins_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < vins_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, vins_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < vins_.size(); i++) { + dataSize += computeStringSizeNoTag(vins_.getRaw(i)); + } + size += dataSize; + size += 1 * getVinsList().size(); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.AssignedVehicles)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.AssignedVehicles other = (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) obj; + + if (!getVinsList() + .equals(other.getVinsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getVinsCount() > 0) { + hash = (37 * hash) + VINS_FIELD_NUMBER; + hash = (53 * hash) + getVinsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.AssignedVehicles prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * This message is used to tell the App which vehicles are assigned to the current user.
+     * The message is sent when the AppTwin is fully initialized (i.e. when it received the first vcb-response)
+     *
+     * The list of VINs is needed when a user gets unassigned from a vehicle while not connected to an AppTwin
+     * In this case the vehicle would still show in the app the next time the user starts it (see https://appsfactory.atlassian.net/browse/DAIM-3831)
+     * To prevent this, we tell the App which VINs are assigned via this message
+     * 
+ * + * Protobuf type {@code proto.AssignedVehicles} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AssignedVehicles) + com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AssignedVehicles_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AssignedVehicles_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.AssignedVehicles.class, com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.AssignedVehicles.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + vins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AssignedVehicles_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AssignedVehicles getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AssignedVehicles build() { + com.daimler.mbcarkit.proto.Protos.AssignedVehicles result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AssignedVehicles buildPartial() { + com.daimler.mbcarkit.proto.Protos.AssignedVehicles result = new com.daimler.mbcarkit.proto.Protos.AssignedVehicles(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Protos.AssignedVehicles result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + vins_.makeImmutable(); + result.vins_ = vins_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.AssignedVehicles) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.AssignedVehicles)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.AssignedVehicles other) { + if (other == com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance()) return this; + if (!other.vins_.isEmpty()) { + if (vins_.isEmpty()) { + vins_ = other.vins_; + bitField0_ |= 0x00000001; + } else { + ensureVinsIsMutable(); + vins_.addAll(other.vins_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + ensureVinsIsMutable(); + vins_.add(s); + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.LazyStringArrayList vins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureVinsIsMutable() { + if (!vins_.isModifiable()) { + vins_ = new com.google.protobuf.LazyStringArrayList(vins_); + } + bitField0_ |= 0x00000001; + } + /** + * repeated string vins = 1; + * @return A list containing the vins. + */ + public com.google.protobuf.ProtocolStringList + getVinsList() { + vins_.makeImmutable(); + return vins_; + } + /** + * repeated string vins = 1; + * @return The count of vins. + */ + public int getVinsCount() { + return vins_.size(); + } + /** + * repeated string vins = 1; + * @param index The index of the element to return. + * @return The vins at the given index. + */ + public java.lang.String getVins(int index) { + return vins_.get(index); + } + /** + * repeated string vins = 1; + * @param index The index of the value to return. + * @return The bytes of the vins at the given index. + */ + public com.google.protobuf.ByteString + getVinsBytes(int index) { + return vins_.getByteString(index); + } + /** + * repeated string vins = 1; + * @param index The index to set the value at. + * @param value The vins to set. + * @return This builder for chaining. + */ + public Builder setVins( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureVinsIsMutable(); + vins_.set(index, value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string vins = 1; + * @param value The vins to add. + * @return This builder for chaining. + */ + public Builder addVins( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureVinsIsMutable(); + vins_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string vins = 1; + * @param values The vins to add. + * @return This builder for chaining. + */ + public Builder addAllVins( + java.lang.Iterable values) { + ensureVinsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, vins_); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string vins = 1; + * @return This builder for chaining. + */ + public Builder clearVins() { + vins_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001);; + onChanged(); + return this; + } + /** + * repeated string vins = 1; + * @param value The bytes of the vins to add. + * @return This builder for chaining. + */ + public Builder addVinsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureVinsIsMutable(); + vins_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AssignedVehicles) + } + + // @@protoc_insertion_point(class_scope:proto.AssignedVehicles) + private static final com.daimler.mbcarkit.proto.Protos.AssignedVehicles DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.AssignedVehicles(); + } + + public static com.daimler.mbcarkit.proto.Protos.AssignedVehicles getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AssignedVehicles parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AssignedVehicles getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeAssignedVehiclesOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeAssignedVehicles) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.AcknowledgeAssignedVehicles} + */ + public static final class AcknowledgeAssignedVehicles extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeAssignedVehicles) + AcknowledgeAssignedVehiclesOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeAssignedVehicles.class.getName()); + } + // Use AcknowledgeAssignedVehicles.newBuilder() to construct. + private AcknowledgeAssignedVehicles(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeAssignedVehicles() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AcknowledgeAssignedVehicles_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AcknowledgeAssignedVehicles_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.class, com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles other = (com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeAssignedVehicles} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeAssignedVehicles) + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehiclesOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AcknowledgeAssignedVehicles_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AcknowledgeAssignedVehicles_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.class, com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Protos.internal_static_proto_AcknowledgeAssignedVehicles_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles build() { + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles buildPartial() { + com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles result = new com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles) { + return mergeFrom((com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles other) { + if (other == com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeAssignedVehicles) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeAssignedVehicles) + private static final com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles(); + } + + public static com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeAssignedVehicles parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SubscribeRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SubscribeRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SubscribeResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SubscribeResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SubscribeResponse_ErrorsEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SubscribeResponse_ErrorsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UnsubscribeRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UnsubscribeRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UnsubscribeResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UnsubscribeResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UnsubscribeResponse_ErrorsEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UnsubscribeResponse_ErrorsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SubscriptionError_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SubscriptionError_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SubscribeToAppTwinRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SubscribeToAppTwinRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ResubscribeToAppTwinRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ResubscribeToAppTwinRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ResubscribeToAppTwinResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ResubscribeToAppTwinResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SubscribeToAppTwinResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SubscribeToAppTwinResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UnsubscribeFromAppTwinRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UnsubscribeFromAppTwinRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UnsubscribeFromAppTwinResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UnsubscribeFromAppTwinResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UnsubscribeFromAppTwinResponse_ErrorsEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UnsubscribeFromAppTwinResponse_ErrorsEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_Heartbeat_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_Heartbeat_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AssignedVehicles_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AssignedVehicles_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeAssignedVehicles_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeAssignedVehicles_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014protos.proto\022\005proto\"3\n\020SubscribeReques" + + "t\022\016\n\006topics\030\001 \003(\t\022\017\n\007replace\030\002 \001(\010\"\276\001\n\021S" + + "ubscribeResponse\022\017\n\007success\030\001 \001(\010\0224\n\006err" + + "ors\030\002 \003(\0132$.proto.SubscribeResponse.Erro" + + "rsEntry\022\031\n\021subscribed_topics\030\003 \003(\t\032G\n\013Er" + + "rorsEntry\022\013\n\003key\030\001 \001(\t\022\'\n\005value\030\002 \001(\0132\030." + + "proto.SubscriptionError:\0028\001\"A\n\022Unsubscri" + + "beRequest\022\016\n\006topics\030\001 \003(\t\022\033\n\023anticipate_" + + "response\030\002 \001(\010\"\304\001\n\023UnsubscribeResponse\022\017" + + "\n\007success\030\001 \001(\010\0226\n\006errors\030\002 \003(\0132&.proto." + + "UnsubscribeResponse.ErrorsEntry\022\033\n\023unsub" + + "scribed_topics\030\003 \003(\t\032G\n\013ErrorsEntry\022\013\n\003k" + + "ey\030\001 \001(\t\022\'\n\005value\030\002 \001(\0132\030.proto.Subscrip" + + "tionError:\0028\001\"P\n\021SubscriptionError\022*\n\004co" + + "de\030\001 \003(\0162\034.proto.SubscriptionErrorType\022\017" + + "\n\007message\030\002 \003(\t\"\201\002\n\031SubscribeToAppTwinRe" + + "quest\022\022\n\nsession_id\030\001 \001(\t\022\017\n\007ciam_id\030\002 \001" + + "(\t\022\025\n\rdevice_locale\030\003 \001(\t\022\016\n\006app_id\030\004 \001(" + + "\t\022\023\n\013app_version\030\005 \001(\t\022+\n\007os_name\030\006 \001(\0162" + + "\032.proto.OperatingSystemName\022\022\n\nos_versio" + + "n\030\007 \001(\t\022\024\n\014device_model\030\010 \001(\t\022\027\n\017network" + + "_carrier\030\t \001(\t\022\023\n\013sdk_version\030\n \001(\t\"B\n\033R" + + "esubscribeToAppTwinRequest\022\022\n\nsession_id" + + "\030\001 \001(\t\022\017\n\007ciam_id\030\002 \001(\t\"\314\001\n\034ResubscribeT" + + "oAppTwinResponse\022E\n\006result\030\001 \001(\01625.proto" + + ".ResubscribeToAppTwinResponse.Resubscrib" + + "eResult\"e\n\021ResubscribeResult\022\021\n\rUNKNOWN_" + + "ERROR\020\000\022\013\n\007SUCCESS\020\001\022\025\n\021INVALID_JWT_ERRO" + + "R\020\002\022\031\n\025TARGET_DOES_NOT_EXIST\020\003\"_\n\032Subscr" + + "ibeToAppTwinResponse\022\017\n\007success\030\001 \001(\010\0220\n" + + "\nerror_code\030\002 \001(\0162\034.proto.SubscriptionEr" + + "rorType\"3\n\035UnsubscribeFromAppTwinRequest" + + "\022\022\n\nsession_id\030\001 \001(\t\"\275\001\n\036UnsubscribeFrom" + + "AppTwinResponse\022\017\n\007success\030\001 \001(\010\022A\n\006erro" + + "rs\030\002 \003(\01321.proto.UnsubscribeFromAppTwinR" + + "esponse.ErrorsEntry\032G\n\013ErrorsEntry\022\013\n\003ke" + + "y\030\001 \001(\t\022\'\n\005value\030\002 \001(\0132\030.proto.Subscript" + + "ionError:\0028\001\"\013\n\tHeartbeat\" \n\020AssignedVeh" + + "icles\022\014\n\004vins\030\001 \003(\t\"\035\n\033AcknowledgeAssign" + + "edVehicles*5\n\025SubscriptionErrorType\022\013\n\007U" + + "NKNOWN\020\000\022\017\n\013INVALID_JWT\020\001*q\n\023OperatingSy" + + "stemName\022\034\n\030UNKNOWN_OPERATING_SYSTEM\020\000\022\007" + + "\n\003IOS\020\001\022\013\n\007ANDROID\020\002\022\014\n\010INT_TEST\020\003\022\017\n\013MA" + + "NUAL_TEST\020\004\022\007\n\003WEB\020\005B\034\n\032com.daimler.mbca" + + "rkit.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_proto_SubscribeRequest_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_SubscribeRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SubscribeRequest_descriptor, + new java.lang.String[] { "Topics", "Replace", }); + internal_static_proto_SubscribeResponse_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_proto_SubscribeResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SubscribeResponse_descriptor, + new java.lang.String[] { "Success", "Errors", "SubscribedTopics", }); + internal_static_proto_SubscribeResponse_ErrorsEntry_descriptor = + internal_static_proto_SubscribeResponse_descriptor.getNestedTypes().get(0); + internal_static_proto_SubscribeResponse_ErrorsEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SubscribeResponse_ErrorsEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_UnsubscribeRequest_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_proto_UnsubscribeRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UnsubscribeRequest_descriptor, + new java.lang.String[] { "Topics", "AnticipateResponse", }); + internal_static_proto_UnsubscribeResponse_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_proto_UnsubscribeResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UnsubscribeResponse_descriptor, + new java.lang.String[] { "Success", "Errors", "UnsubscribedTopics", }); + internal_static_proto_UnsubscribeResponse_ErrorsEntry_descriptor = + internal_static_proto_UnsubscribeResponse_descriptor.getNestedTypes().get(0); + internal_static_proto_UnsubscribeResponse_ErrorsEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UnsubscribeResponse_ErrorsEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_SubscriptionError_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_proto_SubscriptionError_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SubscriptionError_descriptor, + new java.lang.String[] { "Code", "Message", }); + internal_static_proto_SubscribeToAppTwinRequest_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_proto_SubscribeToAppTwinRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SubscribeToAppTwinRequest_descriptor, + new java.lang.String[] { "SessionId", "CiamId", "DeviceLocale", "AppId", "AppVersion", "OsName", "OsVersion", "DeviceModel", "NetworkCarrier", "SdkVersion", }); + internal_static_proto_ResubscribeToAppTwinRequest_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_proto_ResubscribeToAppTwinRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ResubscribeToAppTwinRequest_descriptor, + new java.lang.String[] { "SessionId", "CiamId", }); + internal_static_proto_ResubscribeToAppTwinResponse_descriptor = + getDescriptor().getMessageTypes().get(7); + internal_static_proto_ResubscribeToAppTwinResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ResubscribeToAppTwinResponse_descriptor, + new java.lang.String[] { "Result", }); + internal_static_proto_SubscribeToAppTwinResponse_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_proto_SubscribeToAppTwinResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SubscribeToAppTwinResponse_descriptor, + new java.lang.String[] { "Success", "ErrorCode", }); + internal_static_proto_UnsubscribeFromAppTwinRequest_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_proto_UnsubscribeFromAppTwinRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UnsubscribeFromAppTwinRequest_descriptor, + new java.lang.String[] { "SessionId", }); + internal_static_proto_UnsubscribeFromAppTwinResponse_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_proto_UnsubscribeFromAppTwinResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UnsubscribeFromAppTwinResponse_descriptor, + new java.lang.String[] { "Success", "Errors", }); + internal_static_proto_UnsubscribeFromAppTwinResponse_ErrorsEntry_descriptor = + internal_static_proto_UnsubscribeFromAppTwinResponse_descriptor.getNestedTypes().get(0); + internal_static_proto_UnsubscribeFromAppTwinResponse_ErrorsEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UnsubscribeFromAppTwinResponse_ErrorsEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_Heartbeat_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_proto_Heartbeat_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_Heartbeat_descriptor, + new java.lang.String[] { }); + internal_static_proto_AssignedVehicles_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_proto_AssignedVehicles_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AssignedVehicles_descriptor, + new java.lang.String[] { "Vins", }); + internal_static_proto_AcknowledgeAssignedVehicles_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_proto_AcknowledgeAssignedVehicles_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeAssignedVehicles_descriptor, + new java.lang.String[] { }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/ServiceActivation.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/ServiceActivation.java new file mode 100644 index 00000000000..b08cd9799e4 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/ServiceActivation.java @@ -0,0 +1,3527 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: service-activation.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class ServiceActivation { + private ServiceActivation() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ServiceActivation.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code proto.ServiceStatus} + */ + public enum ServiceStatus + implements com.google.protobuf.ProtocolMessageEnum { + /** + * SERVICE_STATUS_UNKNOWN = 0; + */ + SERVICE_STATUS_UNKNOWN(0), + /** + * SERVICE_STATUS_ACTIVE = 1; + */ + SERVICE_STATUS_ACTIVE(1), + /** + * SERVICE_STATUS_INACTIVE = 2; + */ + SERVICE_STATUS_INACTIVE(2), + /** + * SERVICE_STATUS_ACTIVATION_PENDING = 3; + */ + SERVICE_STATUS_ACTIVATION_PENDING(3), + /** + * SERVICE_STATUS_DEACTIVATION_PENDING = 4; + */ + SERVICE_STATUS_DEACTIVATION_PENDING(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ServiceStatus.class.getName()); + } + /** + * SERVICE_STATUS_UNKNOWN = 0; + */ + public static final int SERVICE_STATUS_UNKNOWN_VALUE = 0; + /** + * SERVICE_STATUS_ACTIVE = 1; + */ + public static final int SERVICE_STATUS_ACTIVE_VALUE = 1; + /** + * SERVICE_STATUS_INACTIVE = 2; + */ + public static final int SERVICE_STATUS_INACTIVE_VALUE = 2; + /** + * SERVICE_STATUS_ACTIVATION_PENDING = 3; + */ + public static final int SERVICE_STATUS_ACTIVATION_PENDING_VALUE = 3; + /** + * SERVICE_STATUS_DEACTIVATION_PENDING = 4; + */ + public static final int SERVICE_STATUS_DEACTIVATION_PENDING_VALUE = 4; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ServiceStatus valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ServiceStatus forNumber(int value) { + switch (value) { + case 0: return SERVICE_STATUS_UNKNOWN; + case 1: return SERVICE_STATUS_ACTIVE; + case 2: return SERVICE_STATUS_INACTIVE; + case 3: return SERVICE_STATUS_ACTIVATION_PENDING; + case 4: return SERVICE_STATUS_DEACTIVATION_PENDING; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ServiceStatus> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ServiceStatus findValueByNumber(int number) { + return ServiceStatus.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.getDescriptor().getEnumTypes().get(0); + } + + private static final ServiceStatus[] VALUES = values(); + + public static ServiceStatus valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ServiceStatus(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.ServiceStatus) + } + + public interface AcknowledgeServiceStatusUpdatesByVINOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeServiceStatusUpdatesByVIN) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgeServiceStatusUpdatesByVIN} + */ + public static final class AcknowledgeServiceStatusUpdatesByVIN extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeServiceStatusUpdatesByVIN) + AcknowledgeServiceStatusUpdatesByVINOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeServiceStatusUpdatesByVIN.class.getName()); + } + // Use AcknowledgeServiceStatusUpdatesByVIN.newBuilder() to construct. + private AcknowledgeServiceStatusUpdatesByVIN(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeServiceStatusUpdatesByVIN() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.class, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN other = (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeServiceStatusUpdatesByVIN} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeServiceStatusUpdatesByVIN) + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVINOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.class, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN build() { + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN buildPartial() { + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN result = new com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN) { + return mergeFrom((com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN other) { + if (other == com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeServiceStatusUpdatesByVIN) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeServiceStatusUpdatesByVIN) + private static final com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN(); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeServiceStatusUpdatesByVIN parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdatesByVIN getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeServiceStatusUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeServiceStatusUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgeServiceStatusUpdate} + */ + public static final class AcknowledgeServiceStatusUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeServiceStatusUpdate) + AcknowledgeServiceStatusUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeServiceStatusUpdate.class.getName()); + } + // Use AcknowledgeServiceStatusUpdate.newBuilder() to construct. + private AcknowledgeServiceStatusUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeServiceStatusUpdate() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.class, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate other = (com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeServiceStatusUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeServiceStatusUpdate) + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.class, com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_AcknowledgeServiceStatusUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate build() { + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate buildPartial() { + com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate result = new com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate other) { + if (other == com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeServiceStatusUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeServiceStatusUpdate) + private static final com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate(); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeServiceStatusUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.AcknowledgeServiceStatusUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ServiceStatusUpdatesByVINOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ServiceStatusUpdatesByVIN) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + int getUpdatesCount(); + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + boolean containsUpdates( + java.lang.String key); + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getUpdates(); + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + java.util.Map + getUpdatesMap(); + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getUpdatesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate defaultValue); + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getUpdatesOrThrow( + java.lang.String key); + } + /** + * Protobuf type {@code proto.ServiceStatusUpdatesByVIN} + */ + public static final class ServiceStatusUpdatesByVIN extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ServiceStatusUpdatesByVIN) + ServiceStatusUpdatesByVINOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ServiceStatusUpdatesByVIN.class.getName()); + } + // Use ServiceStatusUpdatesByVIN.newBuilder() to construct. + private ServiceStatusUpdatesByVIN(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ServiceStatusUpdatesByVIN() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdatesByVIN_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.class, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int UPDATES_FIELD_NUMBER = 2; + private static final class UpdatesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdatesByVIN_UpdatesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate> updates_; + private com.google.protobuf.MapField + internalGetUpdates() { + if (updates_ == null) { + return com.google.protobuf.MapField.emptyMapField( + UpdatesDefaultEntryHolder.defaultEntry); + } + return updates_; + } + public int getUpdatesCount() { + return internalGetUpdates().getMap().size(); + } + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + @java.lang.Override + public boolean containsUpdates( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetUpdates().getMap().containsKey(key); + } + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getUpdates() { + return getUpdatesMap(); + } + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + @java.lang.Override + public java.util.Map getUpdatesMap() { + return internalGetUpdates().getMap(); + } + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getUpdatesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetUpdates().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * Updates with VinOrFins 
+     * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getUpdatesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetUpdates().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetUpdates(), + UpdatesDefaultEntryHolder.defaultEntry, + 2); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + for (java.util.Map.Entry entry + : internalGetUpdates().getMap().entrySet()) { + com.google.protobuf.MapEntry + updates__ = UpdatesDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, updates__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN other = (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!internalGetUpdates().equals( + other.internalGetUpdates())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + if (!internalGetUpdates().getMap().isEmpty()) { + hash = (37 * hash) + UPDATES_FIELD_NUMBER; + hash = (53 * hash) + internalGetUpdates().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ServiceStatusUpdatesByVIN} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ServiceStatusUpdatesByVIN) + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdatesByVIN_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetMutableUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.class, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + internalGetMutableUpdates().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdatesByVIN_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN build() { + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN buildPartial() { + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN result = new com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.updates_ = internalGetUpdates().build(UpdatesDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) { + return mergeFrom((com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN other) { + if (other == com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + internalGetMutableUpdates().mergeFrom( + other.internalGetUpdates()); + bitField0_ |= 0x00000002; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + com.google.protobuf.MapEntry + updates__ = input.readMessage( + UpdatesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableUpdates().ensureBuilderMap().put( + updates__.getKey(), updates__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private static final class UpdatesConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate build(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) { return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) val; } + return ((com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return UpdatesDefaultEntryHolder.defaultEntry; + } + }; + private static final UpdatesConverter updatesConverter = new UpdatesConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder> updates_; + private com.google.protobuf.MapFieldBuilder + internalGetUpdates() { + if (updates_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(updatesConverter); + } + return updates_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableUpdates() { + if (updates_ == null) { + updates_ = new com.google.protobuf.MapFieldBuilder<>(updatesConverter); + } + bitField0_ |= 0x00000002; + onChanged(); + return updates_; + } + public int getUpdatesCount() { + return internalGetUpdates().ensureBuilderMap().size(); + } + /** + *
+       * Updates with VinOrFins 
+       * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + @java.lang.Override + public boolean containsUpdates( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetUpdates().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getUpdates() { + return getUpdatesMap(); + } + /** + *
+       * Updates with VinOrFins 
+       * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + @java.lang.Override + public java.util.Map getUpdatesMap() { + return internalGetUpdates().getImmutableMap(); + } + /** + *
+       * Updates with VinOrFins 
+       * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getUpdatesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableUpdates().ensureBuilderMap(); + return map.containsKey(key) ? updatesConverter.build(map.get(key)) : defaultValue; + } + /** + *
+       * Updates with VinOrFins 
+       * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getUpdatesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableUpdates().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return updatesConverter.build(map.get(key)); + } + public Builder clearUpdates() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutableUpdates().clear(); + return this; + } + /** + *
+       * Updates with VinOrFins 
+       * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + public Builder removeUpdates( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableUpdates().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableUpdates() { + bitField0_ |= 0x00000002; + return internalGetMutableUpdates().ensureMessageMap(); + } + /** + *
+       * Updates with VinOrFins 
+       * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + public Builder putUpdates( + java.lang.String key, + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableUpdates().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + *
+       * Updates with VinOrFins 
+       * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + public Builder putAllUpdates( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableUpdates().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + /** + *
+       * Updates with VinOrFins 
+       * 
+ * + * map<string, .proto.ServiceStatusUpdate> updates = 2; + */ + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder putUpdatesBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableUpdates().ensureBuilderMap(); + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) { + entry = ((com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.ServiceStatusUpdatesByVIN) + } + + // @@protoc_insertion_point(class_scope:proto.ServiceStatusUpdatesByVIN) + private static final com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN(); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ServiceStatusUpdatesByVIN parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ServiceStatusUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ServiceStatusUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + * string ciam_id = 7; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + * string ciam_id = 7; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + *
+     * FinOrVin
+     * 
+ * + * string vin = 5; + * @return The vin. + */ + java.lang.String getVin(); + /** + *
+     * FinOrVin
+     * 
+ * + * string vin = 5; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + *
+     * when was the event emitted? This is the time of the update,
+     * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+     * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + long getEmitTimestamp(); + + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + long getEmitTimestampInMs(); + + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + int getUpdatesCount(); + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + boolean containsUpdates( + int key); + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getUpdates(); + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + java.util.Map + getUpdatesMap(); + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus getUpdatesOrDefault( + int key, + /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus defaultValue); + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus getUpdatesOrThrow( + int key); + /** + * Use {@link #getUpdatesValueMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getUpdatesValue(); + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + java.util.Map + getUpdatesValueMap(); + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + int getUpdatesValueOrDefault( + int key, + int defaultValue); + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + int getUpdatesValueOrThrow( + int key); + } + /** + * Protobuf type {@code proto.ServiceStatusUpdate} + */ + public static final class ServiceStatusUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ServiceStatusUpdate) + ServiceStatusUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ServiceStatusUpdate.class.getName()); + } + // Use ServiceStatusUpdate.newBuilder() to construct. + private ServiceStatusUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ServiceStatusUpdate() { + ciamId_ = ""; + vin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdate_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 6: + return internalGetUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.class, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int CIAM_ID_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 7; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + * string ciam_id = 7; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VIN_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + *
+     * FinOrVin
+     * 
+ * + * string vin = 5; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + *
+     * FinOrVin
+     * 
+ * + * string vin = 5; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EMIT_TIMESTAMP_FIELD_NUMBER = 2; + private long emitTimestamp_ = 0L; + /** + *
+     * when was the event emitted? This is the time of the update,
+     * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+     * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + + public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 8; + private long emitTimestampInMs_ = 0L; + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + + public static final int UPDATES_FIELD_NUMBER = 6; + private static final class UpdatesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.Integer, java.lang.Integer> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdate_UpdatesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.INT32, + 0, + com.google.protobuf.WireFormat.FieldType.ENUM, + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus.SERVICE_STATUS_UNKNOWN.getNumber()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.Integer, java.lang.Integer> updates_; + private com.google.protobuf.MapField + internalGetUpdates() { + if (updates_ == null) { + return com.google.protobuf.MapField.emptyMapField( + UpdatesDefaultEntryHolder.defaultEntry); + } + return updates_; + } + private static final + com.google.protobuf.Internal.MapAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus> updatesValueConverter = + com.google.protobuf.Internal.MapAdapter.newEnumConverter( + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus.internalGetValueMap(), + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus.UNRECOGNIZED); + private static final java.util.Map + internalGetAdaptedUpdatesMap( + java.util.Map map) { + return new com.google.protobuf.Internal.MapAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus, java.lang.Integer>( + map, updatesValueConverter); + } + public int getUpdatesCount() { + return internalGetUpdates().getMap().size(); + } + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public boolean containsUpdates( + int key) { + + return internalGetUpdates().getMap().containsKey(key); + } + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map + getUpdates() { + return getUpdatesMap(); + } + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public java.util.Map + getUpdatesMap() { + return internalGetAdaptedUpdatesMap( + internalGetUpdates().getMap());} + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus getUpdatesOrDefault( + int key, + /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus defaultValue) { + + java.util.Map map = + internalGetUpdates().getMap(); + return map.containsKey(key) + ? updatesValueConverter.doForward(map.get(key)) + : defaultValue; + } + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus getUpdatesOrThrow( + int key) { + + java.util.Map map = + internalGetUpdates().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return updatesValueConverter.doForward(map.get(key)); + } + /** + * Use {@link #getUpdatesValueMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map + getUpdatesValue() { + return getUpdatesValueMap(); + } + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public java.util.Map + getUpdatesValueMap() { + return internalGetUpdates().getMap(); + } + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public int getUpdatesValueOrDefault( + int key, + int defaultValue) { + + java.util.Map map = + internalGetUpdates().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * serviceID -> Status
+     * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public int getUpdatesValueOrThrow( + int key) { + + java.util.Map map = + internalGetUpdates().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + if (emitTimestamp_ != 0L) { + output.writeInt64(2, emitTimestamp_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, vin_); + } + com.google.protobuf.GeneratedMessage + .serializeIntegerMapTo( + output, + internalGetUpdates(), + UpdatesDefaultEntryHolder.defaultEntry, + 6); + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 7, ciamId_); + } + if (emitTimestampInMs_ != 0L) { + output.writeInt64(8, emitTimestampInMs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + if (emitTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, emitTimestamp_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, vin_); + } + for (java.util.Map.Entry entry + : internalGetUpdates().getMap().entrySet()) { + com.google.protobuf.MapEntry + updates__ = UpdatesDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, updates__); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(7, ciamId_); + } + if (emitTimestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(8, emitTimestampInMs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate other = (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (!getVin() + .equals(other.getVin())) return false; + if (getEmitTimestamp() + != other.getEmitTimestamp()) return false; + if (getEmitTimestampInMs() + != other.getEmitTimestampInMs()) return false; + if (!internalGetUpdates().equals( + other.internalGetUpdates())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + hash = (37 * hash) + EMIT_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestamp()); + hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestampInMs()); + if (!internalGetUpdates().getMap().isEmpty()) { + hash = (37 * hash) + UPDATES_FIELD_NUMBER; + hash = (53 * hash) + internalGetUpdates().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ServiceStatusUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ServiceStatusUpdate) + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdate_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 6: + return internalGetUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 6: + return internalGetMutableUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.class, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + ciamId_ = ""; + vin_ = ""; + emitTimestamp_ = 0L; + emitTimestampInMs_ = 0L; + internalGetMutableUpdates().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.ServiceActivation.internal_static_proto_ServiceStatusUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate build() { + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate buildPartial() { + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate result = new com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.emitTimestamp_ = emitTimestamp_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.emitTimestampInMs_ = emitTimestampInMs_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.updates_ = internalGetUpdates(); + result.updates_.makeImmutable(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate other) { + if (other == com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.getEmitTimestamp() != 0L) { + setEmitTimestamp(other.getEmitTimestamp()); + } + if (other.getEmitTimestampInMs() != 0L) { + setEmitTimestampInMs(other.getEmitTimestampInMs()); + } + internalGetMutableUpdates().mergeFrom( + other.internalGetUpdates()); + bitField0_ |= 0x00000020; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + emitTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 16 + case 42: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 42 + case 50: { + com.google.protobuf.MapEntry + updates__ = input.readMessage( + UpdatesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableUpdates().getMutableMap().put( + updates__.getKey(), updates__.getValue()); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 58 + case 64: { + emitTimestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 64 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 7; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ciam_id = 7; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ciam_id = 7; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string ciam_id = 7; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string ciam_id = 7; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object vin_ = ""; + /** + *
+       * FinOrVin
+       * 
+ * + * string vin = 5; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * FinOrVin
+       * 
+ * + * string vin = 5; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * FinOrVin
+       * 
+ * + * string vin = 5; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * FinOrVin
+       * 
+ * + * string vin = 5; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+       * FinOrVin
+       * 
+ * + * string vin = 5; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private long emitTimestamp_ ; + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 2; + * @param value The emitTimestamp to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestamp(long value) { + + emitTimestamp_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 2; + * @return This builder for chaining. + */ + public Builder clearEmitTimestamp() { + bitField0_ = (bitField0_ & ~0x00000008); + emitTimestamp_ = 0L; + onChanged(); + return this; + } + + private long emitTimestampInMs_ ; + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @param value The emitTimestampInMs to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestampInMs(long value) { + + emitTimestampInMs_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return This builder for chaining. + */ + public Builder clearEmitTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000010); + emitTimestampInMs_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.MapField< + java.lang.Integer, java.lang.Integer> updates_; + private com.google.protobuf.MapField + internalGetUpdates() { + if (updates_ == null) { + return com.google.protobuf.MapField.emptyMapField( + UpdatesDefaultEntryHolder.defaultEntry); + } + return updates_; + } + private com.google.protobuf.MapField + internalGetMutableUpdates() { + if (updates_ == null) { + updates_ = com.google.protobuf.MapField.newMapField( + UpdatesDefaultEntryHolder.defaultEntry); + } + if (!updates_.isMutable()) { + updates_ = updates_.copy(); + } + bitField0_ |= 0x00000020; + onChanged(); + return updates_; + } + public int getUpdatesCount() { + return internalGetUpdates().getMap().size(); + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public boolean containsUpdates( + int key) { + + return internalGetUpdates().getMap().containsKey(key); + } + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map + getUpdates() { + return getUpdatesMap(); + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public java.util.Map + getUpdatesMap() { + return internalGetAdaptedUpdatesMap( + internalGetUpdates().getMap());} + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus getUpdatesOrDefault( + int key, + /* nullable */ +com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus defaultValue) { + + java.util.Map map = + internalGetUpdates().getMap(); + return map.containsKey(key) + ? updatesValueConverter.doForward(map.get(key)) + : defaultValue; + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus getUpdatesOrThrow( + int key) { + + java.util.Map map = + internalGetUpdates().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return updatesValueConverter.doForward(map.get(key)); + } + /** + * Use {@link #getUpdatesValueMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map + getUpdatesValue() { + return getUpdatesValueMap(); + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public java.util.Map + getUpdatesValueMap() { + return internalGetUpdates().getMap(); + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public int getUpdatesValueOrDefault( + int key, + int defaultValue) { + + java.util.Map map = + internalGetUpdates().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + @java.lang.Override + public int getUpdatesValueOrThrow( + int key) { + + java.util.Map map = + internalGetUpdates().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + public Builder clearUpdates() { + bitField0_ = (bitField0_ & ~0x00000020); + internalGetMutableUpdates().getMutableMap() + .clear(); + return this; + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + public Builder removeUpdates( + int key) { + + internalGetMutableUpdates().getMutableMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableUpdates() { + bitField0_ |= 0x00000020; + return internalGetAdaptedUpdatesMap( + internalGetMutableUpdates().getMutableMap()); + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + public Builder putUpdates( + int key, + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatus value) { + + + internalGetMutableUpdates().getMutableMap() + .put(key, updatesValueConverter.doBackward(value)); + bitField0_ |= 0x00000020; + return this; + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + public Builder putAllUpdates( + java.util.Map values) { + internalGetAdaptedUpdatesMap( + internalGetMutableUpdates().getMutableMap()) + .putAll(values); + bitField0_ |= 0x00000020; + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableUpdatesValue() { + bitField0_ |= 0x00000020; + return internalGetMutableUpdates().getMutableMap(); + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + public Builder putUpdatesValue( + int key, + int value) { + + + internalGetMutableUpdates().getMutableMap() + .put(key, value); + bitField0_ |= 0x00000020; + return this; + } + /** + *
+       * serviceID -> Status
+       * 
+ * + * map<int32, .proto.ServiceStatus> updates = 6; + */ + public Builder putAllUpdatesValue( + java.util.Map values) { + internalGetMutableUpdates().getMutableMap() + .putAll(values); + bitField0_ |= 0x00000020; + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ServiceStatusUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.ServiceStatusUpdate) + private static final com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate(); + } + + public static com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ServiceStatusUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeServiceStatusUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeServiceStatusUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ServiceStatusUpdatesByVIN_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ServiceStatusUpdatesByVIN_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ServiceStatusUpdatesByVIN_UpdatesEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ServiceStatusUpdatesByVIN_UpdatesEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ServiceStatusUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ServiceStatusUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ServiceStatusUpdate_UpdatesEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ServiceStatusUpdate_UpdatesEntry_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\030service-activation.proto\022\005proto\"?\n$Ack" + + "nowledgeServiceStatusUpdatesByVIN\022\027\n\017seq" + + "uence_number\030\001 \001(\005\"9\n\036AcknowledgeService" + + "StatusUpdate\022\027\n\017sequence_number\030\001 \001(\005\"\300\001" + + "\n\031ServiceStatusUpdatesByVIN\022\027\n\017sequence_" + + "number\030\001 \001(\005\022>\n\007updates\030\002 \003(\0132-.proto.Se" + + "rviceStatusUpdatesByVIN.UpdatesEntry\032J\n\014" + + "UpdatesEntry\022\013\n\003key\030\001 \001(\t\022)\n\005value\030\002 \001(\013" + + "2\032.proto.ServiceStatusUpdate:\0028\001\"\202\002\n\023Ser" + + "viceStatusUpdate\022\027\n\017sequence_number\030\001 \001(" + + "\005\022\017\n\007ciam_id\030\007 \001(\t\022\013\n\003vin\030\005 \001(\t\022\026\n\016emit_" + + "timestamp\030\002 \001(\003\022\034\n\024emit_timestamp_in_ms\030" + + "\010 \001(\003\0228\n\007updates\030\006 \003(\0132\'.proto.ServiceSt" + + "atusUpdate.UpdatesEntry\032D\n\014UpdatesEntry\022" + + "\013\n\003key\030\001 \001(\005\022#\n\005value\030\002 \001(\0162\024.proto.Serv" + + "iceStatus:\0028\001*\263\001\n\rServiceStatus\022\032\n\026SERVI" + + "CE_STATUS_UNKNOWN\020\000\022\031\n\025SERVICE_STATUS_AC" + + "TIVE\020\001\022\033\n\027SERVICE_STATUS_INACTIVE\020\002\022%\n!S" + + "ERVICE_STATUS_ACTIVATION_PENDING\020\003\022\'\n#SE" + + "RVICE_STATUS_DEACTIVATION_PENDING\020\004B\034\n\032c" + + "om.daimler.mbcarkit.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeServiceStatusUpdatesByVIN_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_AcknowledgeServiceStatusUpdate_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_proto_AcknowledgeServiceStatusUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeServiceStatusUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_ServiceStatusUpdatesByVIN_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_proto_ServiceStatusUpdatesByVIN_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ServiceStatusUpdatesByVIN_descriptor, + new java.lang.String[] { "SequenceNumber", "Updates", }); + internal_static_proto_ServiceStatusUpdatesByVIN_UpdatesEntry_descriptor = + internal_static_proto_ServiceStatusUpdatesByVIN_descriptor.getNestedTypes().get(0); + internal_static_proto_ServiceStatusUpdatesByVIN_UpdatesEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ServiceStatusUpdatesByVIN_UpdatesEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_ServiceStatusUpdate_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_proto_ServiceStatusUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ServiceStatusUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", "CiamId", "Vin", "EmitTimestamp", "EmitTimestampInMs", "Updates", }); + internal_static_proto_ServiceStatusUpdate_UpdatesEntry_descriptor = + internal_static_proto_ServiceStatusUpdate_descriptor.getNestedTypes().get(0); + internal_static_proto_ServiceStatusUpdate_UpdatesEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ServiceStatusUpdate_UpdatesEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/UserEvents.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/UserEvents.java new file mode 100644 index 00000000000..87cf07fd0b4 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/UserEvents.java @@ -0,0 +1,14181 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: user-events.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class UserEvents { + private UserEvents() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UserEvents.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface AcknowledgeUserDataUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeUserDataUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgeUserDataUpdate} + */ + public static final class AcknowledgeUserDataUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeUserDataUpdate) + AcknowledgeUserDataUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeUserDataUpdate.class.getName()); + } + // Use AcknowledgeUserDataUpdate.newBuilder() to construct. + private AcknowledgeUserDataUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeUserDataUpdate() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserDataUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserDataUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate other = (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeUserDataUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeUserDataUpdate) + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserDataUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserDataUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserDataUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate build() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate result = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeUserDataUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeUserDataUpdate) + private static final com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeUserDataUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserDataUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UserDataUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UserDataUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + * string ciam_id = 2; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + *
+     * when was the event emitted? This is the time of the update,
+     * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+     * 
+ * + * int64 emit_timestamp = 3; + * @return The emitTimestamp. + */ + long getEmitTimestamp(); + + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + long getEmitTimestampInMs(); + + /** + * .proto.CPDUserData old_data = 6; + * @return Whether the oldData field is set. + */ + boolean hasOldData(); + /** + * .proto.CPDUserData old_data = 6; + * @return The oldData. + */ + com.daimler.mbcarkit.proto.UserEvents.CPDUserData getOldData(); + /** + * .proto.CPDUserData old_data = 6; + */ + com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder getOldDataOrBuilder(); + + /** + * .proto.CPDUserData new_data = 7; + * @return Whether the newData field is set. + */ + boolean hasNewData(); + /** + * .proto.CPDUserData new_data = 7; + * @return The newData. + */ + com.daimler.mbcarkit.proto.UserEvents.CPDUserData getNewData(); + /** + * .proto.CPDUserData new_data = 7; + */ + com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder getNewDataOrBuilder(); + } + /** + * Protobuf type {@code proto.UserDataUpdate} + */ + public static final class UserDataUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UserDataUpdate) + UserDataUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UserDataUpdate.class.getName()); + } + // Use UserDataUpdate.newBuilder() to construct. + private UserDataUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UserDataUpdate() { + ciamId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserDataUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserDataUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.class, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder.class); + } + + private int bitField0_; + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int CIAM_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EMIT_TIMESTAMP_FIELD_NUMBER = 3; + private long emitTimestamp_ = 0L; + /** + *
+     * when was the event emitted? This is the time of the update,
+     * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+     * 
+ * + * int64 emit_timestamp = 3; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + + public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 8; + private long emitTimestampInMs_ = 0L; + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + + public static final int OLD_DATA_FIELD_NUMBER = 6; + private com.daimler.mbcarkit.proto.UserEvents.CPDUserData oldData_; + /** + * .proto.CPDUserData old_data = 6; + * @return Whether the oldData field is set. + */ + @java.lang.Override + public boolean hasOldData() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .proto.CPDUserData old_data = 6; + * @return The oldData. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData getOldData() { + return oldData_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance() : oldData_; + } + /** + * .proto.CPDUserData old_data = 6; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder getOldDataOrBuilder() { + return oldData_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance() : oldData_; + } + + public static final int NEW_DATA_FIELD_NUMBER = 7; + private com.daimler.mbcarkit.proto.UserEvents.CPDUserData newData_; + /** + * .proto.CPDUserData new_data = 7; + * @return Whether the newData field is set. + */ + @java.lang.Override + public boolean hasNewData() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .proto.CPDUserData new_data = 7; + * @return The newData. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData getNewData() { + return newData_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance() : newData_; + } + /** + * .proto.CPDUserData new_data = 7; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder getNewDataOrBuilder() { + return newData_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance() : newData_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_); + } + if (emitTimestamp_ != 0L) { + output.writeInt64(3, emitTimestamp_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(6, getOldData()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(7, getNewData()); + } + if (emitTimestampInMs_ != 0L) { + output.writeInt64(8, emitTimestampInMs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_); + } + if (emitTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, emitTimestamp_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, getOldData()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getNewData()); + } + if (emitTimestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(8, emitTimestampInMs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate other = (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (getEmitTimestamp() + != other.getEmitTimestamp()) return false; + if (getEmitTimestampInMs() + != other.getEmitTimestampInMs()) return false; + if (hasOldData() != other.hasOldData()) return false; + if (hasOldData()) { + if (!getOldData() + .equals(other.getOldData())) return false; + } + if (hasNewData() != other.hasNewData()) return false; + if (hasNewData()) { + if (!getNewData() + .equals(other.getNewData())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + EMIT_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestamp()); + hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestampInMs()); + if (hasOldData()) { + hash = (37 * hash) + OLD_DATA_FIELD_NUMBER; + hash = (53 * hash) + getOldData().hashCode(); + } + if (hasNewData()) { + hash = (37 * hash) + NEW_DATA_FIELD_NUMBER; + hash = (53 * hash) + getNewData().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.UserDataUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UserDataUpdate) + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserDataUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserDataUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.class, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getOldDataFieldBuilder(); + getNewDataFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + ciamId_ = ""; + emitTimestamp_ = 0L; + emitTimestampInMs_ = 0L; + oldData_ = null; + if (oldDataBuilder_ != null) { + oldDataBuilder_.dispose(); + oldDataBuilder_ = null; + } + newData_ = null; + if (newDataBuilder_ != null) { + newDataBuilder_.dispose(); + newDataBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserDataUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate build() { + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate result = new com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.emitTimestamp_ = emitTimestamp_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.emitTimestampInMs_ = emitTimestampInMs_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000010) != 0)) { + result.oldData_ = oldDataBuilder_ == null + ? oldData_ + : oldDataBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.newData_ = newDataBuilder_ == null + ? newData_ + : newDataBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getEmitTimestamp() != 0L) { + setEmitTimestamp(other.getEmitTimestamp()); + } + if (other.getEmitTimestampInMs() != 0L) { + setEmitTimestampInMs(other.getEmitTimestampInMs()); + } + if (other.hasOldData()) { + mergeOldData(other.getOldData()); + } + if (other.hasNewData()) { + mergeNewData(other.getNewData()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + emitTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 50: { + input.readMessage( + getOldDataFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 50 + case 58: { + input.readMessage( + getNewDataFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 58 + case 64: { + emitTimestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 64 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ciam_id = 2; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long emitTimestamp_ ; + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 3; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 3; + * @param value The emitTimestamp to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestamp(long value) { + + emitTimestamp_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 3; + * @return This builder for chaining. + */ + public Builder clearEmitTimestamp() { + bitField0_ = (bitField0_ & ~0x00000004); + emitTimestamp_ = 0L; + onChanged(); + return this; + } + + private long emitTimestampInMs_ ; + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @param value The emitTimestampInMs to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestampInMs(long value) { + + emitTimestampInMs_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return This builder for chaining. + */ + public Builder clearEmitTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000008); + emitTimestampInMs_ = 0L; + onChanged(); + return this; + } + + private com.daimler.mbcarkit.proto.UserEvents.CPDUserData oldData_; + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserData, com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder> oldDataBuilder_; + /** + * .proto.CPDUserData old_data = 6; + * @return Whether the oldData field is set. + */ + public boolean hasOldData() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .proto.CPDUserData old_data = 6; + * @return The oldData. + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData getOldData() { + if (oldDataBuilder_ == null) { + return oldData_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance() : oldData_; + } else { + return oldDataBuilder_.getMessage(); + } + } + /** + * .proto.CPDUserData old_data = 6; + */ + public Builder setOldData(com.daimler.mbcarkit.proto.UserEvents.CPDUserData value) { + if (oldDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + oldData_ = value; + } else { + oldDataBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .proto.CPDUserData old_data = 6; + */ + public Builder setOldData( + com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder builderForValue) { + if (oldDataBuilder_ == null) { + oldData_ = builderForValue.build(); + } else { + oldDataBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .proto.CPDUserData old_data = 6; + */ + public Builder mergeOldData(com.daimler.mbcarkit.proto.UserEvents.CPDUserData value) { + if (oldDataBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + oldData_ != null && + oldData_ != com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance()) { + getOldDataBuilder().mergeFrom(value); + } else { + oldData_ = value; + } + } else { + oldDataBuilder_.mergeFrom(value); + } + if (oldData_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + /** + * .proto.CPDUserData old_data = 6; + */ + public Builder clearOldData() { + bitField0_ = (bitField0_ & ~0x00000010); + oldData_ = null; + if (oldDataBuilder_ != null) { + oldDataBuilder_.dispose(); + oldDataBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .proto.CPDUserData old_data = 6; + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder getOldDataBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getOldDataFieldBuilder().getBuilder(); + } + /** + * .proto.CPDUserData old_data = 6; + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder getOldDataOrBuilder() { + if (oldDataBuilder_ != null) { + return oldDataBuilder_.getMessageOrBuilder(); + } else { + return oldData_ == null ? + com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance() : oldData_; + } + } + /** + * .proto.CPDUserData old_data = 6; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserData, com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder> + getOldDataFieldBuilder() { + if (oldDataBuilder_ == null) { + oldDataBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserData, com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder>( + getOldData(), + getParentForChildren(), + isClean()); + oldData_ = null; + } + return oldDataBuilder_; + } + + private com.daimler.mbcarkit.proto.UserEvents.CPDUserData newData_; + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserData, com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder> newDataBuilder_; + /** + * .proto.CPDUserData new_data = 7; + * @return Whether the newData field is set. + */ + public boolean hasNewData() { + return ((bitField0_ & 0x00000020) != 0); + } + /** + * .proto.CPDUserData new_data = 7; + * @return The newData. + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData getNewData() { + if (newDataBuilder_ == null) { + return newData_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance() : newData_; + } else { + return newDataBuilder_.getMessage(); + } + } + /** + * .proto.CPDUserData new_data = 7; + */ + public Builder setNewData(com.daimler.mbcarkit.proto.UserEvents.CPDUserData value) { + if (newDataBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + newData_ = value; + } else { + newDataBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .proto.CPDUserData new_data = 7; + */ + public Builder setNewData( + com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder builderForValue) { + if (newDataBuilder_ == null) { + newData_ = builderForValue.build(); + } else { + newDataBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .proto.CPDUserData new_data = 7; + */ + public Builder mergeNewData(com.daimler.mbcarkit.proto.UserEvents.CPDUserData value) { + if (newDataBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) && + newData_ != null && + newData_ != com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance()) { + getNewDataBuilder().mergeFrom(value); + } else { + newData_ = value; + } + } else { + newDataBuilder_.mergeFrom(value); + } + if (newData_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + /** + * .proto.CPDUserData new_data = 7; + */ + public Builder clearNewData() { + bitField0_ = (bitField0_ & ~0x00000020); + newData_ = null; + if (newDataBuilder_ != null) { + newDataBuilder_.dispose(); + newDataBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .proto.CPDUserData new_data = 7; + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder getNewDataBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getNewDataFieldBuilder().getBuilder(); + } + /** + * .proto.CPDUserData new_data = 7; + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder getNewDataOrBuilder() { + if (newDataBuilder_ != null) { + return newDataBuilder_.getMessageOrBuilder(); + } else { + return newData_ == null ? + com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance() : newData_; + } + } + /** + * .proto.CPDUserData new_data = 7; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserData, com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder> + getNewDataFieldBuilder() { + if (newDataBuilder_ == null) { + newDataBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserData, com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder>( + getNewData(), + getParentForChildren(), + isClean()); + newData_ = null; + } + return newDataBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.UserDataUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.UserDataUpdate) + private static final com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserDataUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeUserVehicleAuthChangedUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeUserVehicleAuthChangedUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgeUserVehicleAuthChangedUpdate} + */ + public static final class AcknowledgeUserVehicleAuthChangedUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeUserVehicleAuthChangedUpdate) + AcknowledgeUserVehicleAuthChangedUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeUserVehicleAuthChangedUpdate.class.getName()); + } + // Use AcknowledgeUserVehicleAuthChangedUpdate.newBuilder() to construct. + private AcknowledgeUserVehicleAuthChangedUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeUserVehicleAuthChangedUpdate() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate other = (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeUserVehicleAuthChangedUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeUserVehicleAuthChangedUpdate) + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate build() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate result = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeUserVehicleAuthChangedUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeUserVehicleAuthChangedUpdate) + private static final com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeUserVehicleAuthChangedUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserVehicleAuthChangedUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI} + */ + public static final class AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) + AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.class.getName()); + } + // Use AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.newBuilder() to construct. + private AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI other = (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPIOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI build() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI result = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI) + private static final com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UserVehicleAuthChangedUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UserVehicleAuthChangedUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + * string ciam_id = 2; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + *
+     * when was the event emitted? This is the time of the update,
+     * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+     * 
+ * + * int64 emit_timestamp = 3; + * @return The emitTimestamp. + */ + long getEmitTimestamp(); + + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + long getEmitTimestampInMs(); + } + /** + * Protobuf type {@code proto.UserVehicleAuthChangedUpdate} + */ + public static final class UserVehicleAuthChangedUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UserVehicleAuthChangedUpdate) + UserVehicleAuthChangedUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UserVehicleAuthChangedUpdate.class.getName()); + } + // Use UserVehicleAuthChangedUpdate.newBuilder() to construct. + private UserVehicleAuthChangedUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UserVehicleAuthChangedUpdate() { + ciamId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserVehicleAuthChangedUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserVehicleAuthChangedUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.class, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int CIAM_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EMIT_TIMESTAMP_FIELD_NUMBER = 3; + private long emitTimestamp_ = 0L; + /** + *
+     * when was the event emitted? This is the time of the update,
+     * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+     * 
+ * + * int64 emit_timestamp = 3; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + + public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 8; + private long emitTimestampInMs_ = 0L; + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_); + } + if (emitTimestamp_ != 0L) { + output.writeInt64(3, emitTimestamp_); + } + if (emitTimestampInMs_ != 0L) { + output.writeInt64(8, emitTimestampInMs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_); + } + if (emitTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, emitTimestamp_); + } + if (emitTimestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(8, emitTimestampInMs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate other = (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (getEmitTimestamp() + != other.getEmitTimestamp()) return false; + if (getEmitTimestampInMs() + != other.getEmitTimestampInMs()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + EMIT_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestamp()); + hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestampInMs()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.UserVehicleAuthChangedUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UserVehicleAuthChangedUpdate) + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserVehicleAuthChangedUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserVehicleAuthChangedUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.class, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + ciamId_ = ""; + emitTimestamp_ = 0L; + emitTimestampInMs_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserVehicleAuthChangedUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate build() { + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate result = new com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.emitTimestamp_ = emitTimestamp_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.emitTimestampInMs_ = emitTimestampInMs_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getEmitTimestamp() != 0L) { + setEmitTimestamp(other.getEmitTimestamp()); + } + if (other.getEmitTimestampInMs() != 0L) { + setEmitTimestampInMs(other.getEmitTimestampInMs()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + emitTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 64: { + emitTimestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 64 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ciam_id = 2; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long emitTimestamp_ ; + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 3; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 3; + * @param value The emitTimestamp to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestamp(long value) { + + emitTimestamp_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * when was the event emitted? This is the time of the update,
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 3; + * @return This builder for chaining. + */ + public Builder clearEmitTimestamp() { + bitField0_ = (bitField0_ & ~0x00000004); + emitTimestamp_ = 0L; + onChanged(); + return this; + } + + private long emitTimestampInMs_ ; + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @param value The emitTimestampInMs to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestampInMs(long value) { + + emitTimestampInMs_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 8; + * @return This builder for chaining. + */ + public Builder clearEmitTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000008); + emitTimestampInMs_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.UserVehicleAuthChangedUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.UserVehicleAuthChangedUpdate) + private static final com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserVehicleAuthChangedUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface CPDUserDataOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.CPDUserData) + com.google.protobuf.MessageOrBuilder { + + /** + * string ciam_id = 1; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + * string ciam_id = 1; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + * string user_id = 2; + * @return The userId. + */ + java.lang.String getUserId(); + /** + * string user_id = 2; + * @return The bytes for userId. + */ + com.google.protobuf.ByteString + getUserIdBytes(); + + /** + * string first_name = 3; + * @return The firstName. + */ + java.lang.String getFirstName(); + /** + * string first_name = 3; + * @return The bytes for firstName. + */ + com.google.protobuf.ByteString + getFirstNameBytes(); + + /** + * string last_name1 = 4; + * @return The lastName1. + */ + java.lang.String getLastName1(); + /** + * string last_name1 = 4; + * @return The bytes for lastName1. + */ + com.google.protobuf.ByteString + getLastName1Bytes(); + + /** + * string last_name2 = 5; + * @return The lastName2. + */ + java.lang.String getLastName2(); + /** + * string last_name2 = 5; + * @return The bytes for lastName2. + */ + com.google.protobuf.ByteString + getLastName2Bytes(); + + /** + * string title = 6; + * @return The title. + */ + java.lang.String getTitle(); + /** + * string title = 6; + * @return The bytes for title. + */ + com.google.protobuf.ByteString + getTitleBytes(); + + /** + * string name_prefix = 7; + * @return The namePrefix. + */ + java.lang.String getNamePrefix(); + /** + * string name_prefix = 7; + * @return The bytes for namePrefix. + */ + com.google.protobuf.ByteString + getNamePrefixBytes(); + + /** + * string middle_initial = 8; + * @return The middleInitial. + */ + java.lang.String getMiddleInitial(); + /** + * string middle_initial = 8; + * @return The bytes for middleInitial. + */ + com.google.protobuf.ByteString + getMiddleInitialBytes(); + + /** + * string salutation_code = 9; + * @return The salutationCode. + */ + java.lang.String getSalutationCode(); + /** + * string salutation_code = 9; + * @return The bytes for salutationCode. + */ + com.google.protobuf.ByteString + getSalutationCodeBytes(); + + /** + * string email = 10; + * @return The email. + */ + java.lang.String getEmail(); + /** + * string email = 10; + * @return The bytes for email. + */ + com.google.protobuf.ByteString + getEmailBytes(); + + /** + * string landline_phone = 11; + * @return The landlinePhone. + */ + java.lang.String getLandlinePhone(); + /** + * string landline_phone = 11; + * @return The bytes for landlinePhone. + */ + com.google.protobuf.ByteString + getLandlinePhoneBytes(); + + /** + * string mobile_phone_number = 12; + * @return The mobilePhoneNumber. + */ + java.lang.String getMobilePhoneNumber(); + /** + * string mobile_phone_number = 12; + * @return The bytes for mobilePhoneNumber. + */ + com.google.protobuf.ByteString + getMobilePhoneNumberBytes(); + + /** + * string created_at = 13; + * @return The createdAt. + */ + java.lang.String getCreatedAt(); + /** + * string created_at = 13; + * @return The bytes for createdAt. + */ + com.google.protobuf.ByteString + getCreatedAtBytes(); + + /** + * string created_by = 14; + * @return The createdBy. + */ + java.lang.String getCreatedBy(); + /** + * string created_by = 14; + * @return The bytes for createdBy. + */ + com.google.protobuf.ByteString + getCreatedByBytes(); + + /** + * string updated_at = 15; + * @return The updatedAt. + */ + java.lang.String getUpdatedAt(); + /** + * string updated_at = 15; + * @return The bytes for updatedAt. + */ + com.google.protobuf.ByteString + getUpdatedAtBytes(); + + /** + * string birthday = 28; + * @return The birthday. + */ + java.lang.String getBirthday(); + /** + * string birthday = 28; + * @return The bytes for birthday. + */ + com.google.protobuf.ByteString + getBirthdayBytes(); + + /** + * string preferred_language_code = 29; + * @return The preferredLanguageCode. + */ + java.lang.String getPreferredLanguageCode(); + /** + * string preferred_language_code = 29; + * @return The bytes for preferredLanguageCode. + */ + com.google.protobuf.ByteString + getPreferredLanguageCodeBytes(); + + /** + * string account_country_code = 30; + * @return The accountCountryCode. + */ + java.lang.String getAccountCountryCode(); + /** + * string account_country_code = 30; + * @return The bytes for accountCountryCode. + */ + com.google.protobuf.ByteString + getAccountCountryCodeBytes(); + + /** + *
+     * doc says: TODO
+     * 
+ * + * string uc_id = 31; + * @return The ucId. + */ + java.lang.String getUcId(); + /** + *
+     * doc says: TODO
+     * 
+ * + * string uc_id = 31; + * @return The bytes for ucId. + */ + com.google.protobuf.ByteString + getUcIdBytes(); + + /** + * bool vip = 32; + * @return The vip. + */ + boolean getVip(); + + /** + * .proto.CPDUserAddress address = 33; + * @return Whether the address field is set. + */ + boolean hasAddress(); + /** + * .proto.CPDUserAddress address = 33; + * @return The address. + */ + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress getAddress(); + /** + * .proto.CPDUserAddress address = 33; + */ + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddressOrBuilder getAddressOrBuilder(); + + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + * @return Whether the communicationPreference field is set. + */ + boolean hasCommunicationPreference(); + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + * @return The communicationPreference. + */ + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference getCommunicationPreference(); + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreferenceOrBuilder getCommunicationPreferenceOrBuilder(); + } + /** + * Protobuf type {@code proto.CPDUserData} + */ + public static final class CPDUserData extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.CPDUserData) + CPDUserDataOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CPDUserData.class.getName()); + } + // Use CPDUserData.newBuilder() to construct. + private CPDUserData(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private CPDUserData() { + ciamId_ = ""; + userId_ = ""; + firstName_ = ""; + lastName1_ = ""; + lastName2_ = ""; + title_ = ""; + namePrefix_ = ""; + middleInitial_ = ""; + salutationCode_ = ""; + email_ = ""; + landlinePhone_ = ""; + mobilePhoneNumber_ = ""; + createdAt_ = ""; + createdBy_ = ""; + updatedAt_ = ""; + birthday_ = ""; + preferredLanguageCode_ = ""; + accountCountryCode_ = ""; + ucId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.CPDUserData.class, com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder.class); + } + + private int bitField0_; + public static final int CIAM_ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 1; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + * string ciam_id = 1; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int USER_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object userId_ = ""; + /** + * string user_id = 2; + * @return The userId. + */ + @java.lang.Override + public java.lang.String getUserId() { + java.lang.Object ref = userId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userId_ = s; + return s; + } + } + /** + * string user_id = 2; + * @return The bytes for userId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUserIdBytes() { + java.lang.Object ref = userId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FIRST_NAME_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object firstName_ = ""; + /** + * string first_name = 3; + * @return The firstName. + */ + @java.lang.Override + public java.lang.String getFirstName() { + java.lang.Object ref = firstName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + firstName_ = s; + return s; + } + } + /** + * string first_name = 3; + * @return The bytes for firstName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFirstNameBytes() { + java.lang.Object ref = firstName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + firstName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LAST_NAME1_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object lastName1_ = ""; + /** + * string last_name1 = 4; + * @return The lastName1. + */ + @java.lang.Override + public java.lang.String getLastName1() { + java.lang.Object ref = lastName1_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + lastName1_ = s; + return s; + } + } + /** + * string last_name1 = 4; + * @return The bytes for lastName1. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLastName1Bytes() { + java.lang.Object ref = lastName1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + lastName1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LAST_NAME2_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object lastName2_ = ""; + /** + * string last_name2 = 5; + * @return The lastName2. + */ + @java.lang.Override + public java.lang.String getLastName2() { + java.lang.Object ref = lastName2_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + lastName2_ = s; + return s; + } + } + /** + * string last_name2 = 5; + * @return The bytes for lastName2. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLastName2Bytes() { + java.lang.Object ref = lastName2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + lastName2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TITLE_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object title_ = ""; + /** + * string title = 6; + * @return The title. + */ + @java.lang.Override + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } + } + /** + * string title = 6; + * @return The bytes for title. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NAME_PREFIX_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object namePrefix_ = ""; + /** + * string name_prefix = 7; + * @return The namePrefix. + */ + @java.lang.Override + public java.lang.String getNamePrefix() { + java.lang.Object ref = namePrefix_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + namePrefix_ = s; + return s; + } + } + /** + * string name_prefix = 7; + * @return The bytes for namePrefix. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNamePrefixBytes() { + java.lang.Object ref = namePrefix_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + namePrefix_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MIDDLE_INITIAL_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private volatile java.lang.Object middleInitial_ = ""; + /** + * string middle_initial = 8; + * @return The middleInitial. + */ + @java.lang.Override + public java.lang.String getMiddleInitial() { + java.lang.Object ref = middleInitial_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + middleInitial_ = s; + return s; + } + } + /** + * string middle_initial = 8; + * @return The bytes for middleInitial. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMiddleInitialBytes() { + java.lang.Object ref = middleInitial_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + middleInitial_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SALUTATION_CODE_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private volatile java.lang.Object salutationCode_ = ""; + /** + * string salutation_code = 9; + * @return The salutationCode. + */ + @java.lang.Override + public java.lang.String getSalutationCode() { + java.lang.Object ref = salutationCode_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + salutationCode_ = s; + return s; + } + } + /** + * string salutation_code = 9; + * @return The bytes for salutationCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSalutationCodeBytes() { + java.lang.Object ref = salutationCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + salutationCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EMAIL_FIELD_NUMBER = 10; + @SuppressWarnings("serial") + private volatile java.lang.Object email_ = ""; + /** + * string email = 10; + * @return The email. + */ + @java.lang.Override + public java.lang.String getEmail() { + java.lang.Object ref = email_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + email_ = s; + return s; + } + } + /** + * string email = 10; + * @return The bytes for email. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getEmailBytes() { + java.lang.Object ref = email_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + email_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int LANDLINE_PHONE_FIELD_NUMBER = 11; + @SuppressWarnings("serial") + private volatile java.lang.Object landlinePhone_ = ""; + /** + * string landline_phone = 11; + * @return The landlinePhone. + */ + @java.lang.Override + public java.lang.String getLandlinePhone() { + java.lang.Object ref = landlinePhone_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + landlinePhone_ = s; + return s; + } + } + /** + * string landline_phone = 11; + * @return The bytes for landlinePhone. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getLandlinePhoneBytes() { + java.lang.Object ref = landlinePhone_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + landlinePhone_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MOBILE_PHONE_NUMBER_FIELD_NUMBER = 12; + @SuppressWarnings("serial") + private volatile java.lang.Object mobilePhoneNumber_ = ""; + /** + * string mobile_phone_number = 12; + * @return The mobilePhoneNumber. + */ + @java.lang.Override + public java.lang.String getMobilePhoneNumber() { + java.lang.Object ref = mobilePhoneNumber_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + mobilePhoneNumber_ = s; + return s; + } + } + /** + * string mobile_phone_number = 12; + * @return The bytes for mobilePhoneNumber. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMobilePhoneNumberBytes() { + java.lang.Object ref = mobilePhoneNumber_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + mobilePhoneNumber_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CREATED_AT_FIELD_NUMBER = 13; + @SuppressWarnings("serial") + private volatile java.lang.Object createdAt_ = ""; + /** + * string created_at = 13; + * @return The createdAt. + */ + @java.lang.Override + public java.lang.String getCreatedAt() { + java.lang.Object ref = createdAt_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + createdAt_ = s; + return s; + } + } + /** + * string created_at = 13; + * @return The bytes for createdAt. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCreatedAtBytes() { + java.lang.Object ref = createdAt_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + createdAt_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CREATED_BY_FIELD_NUMBER = 14; + @SuppressWarnings("serial") + private volatile java.lang.Object createdBy_ = ""; + /** + * string created_by = 14; + * @return The createdBy. + */ + @java.lang.Override + public java.lang.String getCreatedBy() { + java.lang.Object ref = createdBy_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + createdBy_ = s; + return s; + } + } + /** + * string created_by = 14; + * @return The bytes for createdBy. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCreatedByBytes() { + java.lang.Object ref = createdBy_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + createdBy_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int UPDATED_AT_FIELD_NUMBER = 15; + @SuppressWarnings("serial") + private volatile java.lang.Object updatedAt_ = ""; + /** + * string updated_at = 15; + * @return The updatedAt. + */ + @java.lang.Override + public java.lang.String getUpdatedAt() { + java.lang.Object ref = updatedAt_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + updatedAt_ = s; + return s; + } + } + /** + * string updated_at = 15; + * @return The bytes for updatedAt. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUpdatedAtBytes() { + java.lang.Object ref = updatedAt_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + updatedAt_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BIRTHDAY_FIELD_NUMBER = 28; + @SuppressWarnings("serial") + private volatile java.lang.Object birthday_ = ""; + /** + * string birthday = 28; + * @return The birthday. + */ + @java.lang.Override + public java.lang.String getBirthday() { + java.lang.Object ref = birthday_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + birthday_ = s; + return s; + } + } + /** + * string birthday = 28; + * @return The bytes for birthday. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBirthdayBytes() { + java.lang.Object ref = birthday_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + birthday_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PREFERRED_LANGUAGE_CODE_FIELD_NUMBER = 29; + @SuppressWarnings("serial") + private volatile java.lang.Object preferredLanguageCode_ = ""; + /** + * string preferred_language_code = 29; + * @return The preferredLanguageCode. + */ + @java.lang.Override + public java.lang.String getPreferredLanguageCode() { + java.lang.Object ref = preferredLanguageCode_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + preferredLanguageCode_ = s; + return s; + } + } + /** + * string preferred_language_code = 29; + * @return The bytes for preferredLanguageCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPreferredLanguageCodeBytes() { + java.lang.Object ref = preferredLanguageCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + preferredLanguageCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ACCOUNT_COUNTRY_CODE_FIELD_NUMBER = 30; + @SuppressWarnings("serial") + private volatile java.lang.Object accountCountryCode_ = ""; + /** + * string account_country_code = 30; + * @return The accountCountryCode. + */ + @java.lang.Override + public java.lang.String getAccountCountryCode() { + java.lang.Object ref = accountCountryCode_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + accountCountryCode_ = s; + return s; + } + } + /** + * string account_country_code = 30; + * @return The bytes for accountCountryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAccountCountryCodeBytes() { + java.lang.Object ref = accountCountryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + accountCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int UC_ID_FIELD_NUMBER = 31; + @SuppressWarnings("serial") + private volatile java.lang.Object ucId_ = ""; + /** + *
+     * doc says: TODO
+     * 
+ * + * string uc_id = 31; + * @return The ucId. + */ + @java.lang.Override + public java.lang.String getUcId() { + java.lang.Object ref = ucId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ucId_ = s; + return s; + } + } + /** + *
+     * doc says: TODO
+     * 
+ * + * string uc_id = 31; + * @return The bytes for ucId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUcIdBytes() { + java.lang.Object ref = ucId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ucId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VIP_FIELD_NUMBER = 32; + private boolean vip_ = false; + /** + * bool vip = 32; + * @return The vip. + */ + @java.lang.Override + public boolean getVip() { + return vip_; + } + + public static final int ADDRESS_FIELD_NUMBER = 33; + private com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress address_; + /** + * .proto.CPDUserAddress address = 33; + * @return Whether the address field is set. + */ + @java.lang.Override + public boolean hasAddress() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .proto.CPDUserAddress address = 33; + * @return The address. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress getAddress() { + return address_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.getDefaultInstance() : address_; + } + /** + * .proto.CPDUserAddress address = 33; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddressOrBuilder getAddressOrBuilder() { + return address_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.getDefaultInstance() : address_; + } + + public static final int COMMUNICATION_PREFERENCE_FIELD_NUMBER = 34; + private com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference communicationPreference_; + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + * @return Whether the communicationPreference field is set. + */ + @java.lang.Override + public boolean hasCommunicationPreference() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + * @return The communicationPreference. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference getCommunicationPreference() { + return communicationPreference_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.getDefaultInstance() : communicationPreference_; + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreferenceOrBuilder getCommunicationPreferenceOrBuilder() { + return communicationPreference_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.getDefaultInstance() : communicationPreference_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, ciamId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(userId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, userId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(firstName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, firstName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(lastName1_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, lastName1_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(lastName2_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, lastName2_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(title_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 6, title_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(namePrefix_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 7, namePrefix_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(middleInitial_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 8, middleInitial_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(salutationCode_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 9, salutationCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(email_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 10, email_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(landlinePhone_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 11, landlinePhone_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(mobilePhoneNumber_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 12, mobilePhoneNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(createdAt_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 13, createdAt_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(createdBy_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 14, createdBy_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(updatedAt_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 15, updatedAt_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(birthday_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 28, birthday_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(preferredLanguageCode_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 29, preferredLanguageCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(accountCountryCode_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 30, accountCountryCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ucId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 31, ucId_); + } + if (vip_ != false) { + output.writeBool(32, vip_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(33, getAddress()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(34, getCommunicationPreference()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, ciamId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(userId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, userId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(firstName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, firstName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(lastName1_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, lastName1_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(lastName2_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, lastName2_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(title_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(6, title_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(namePrefix_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(7, namePrefix_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(middleInitial_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(8, middleInitial_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(salutationCode_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(9, salutationCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(email_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(10, email_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(landlinePhone_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(11, landlinePhone_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(mobilePhoneNumber_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(12, mobilePhoneNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(createdAt_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(13, createdAt_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(createdBy_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(14, createdBy_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(updatedAt_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(15, updatedAt_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(birthday_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(28, birthday_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(preferredLanguageCode_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(29, preferredLanguageCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(accountCountryCode_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(30, accountCountryCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ucId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(31, ucId_); + } + if (vip_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(32, vip_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(33, getAddress()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(34, getCommunicationPreference()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.CPDUserData)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.CPDUserData other = (com.daimler.mbcarkit.proto.UserEvents.CPDUserData) obj; + + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (!getUserId() + .equals(other.getUserId())) return false; + if (!getFirstName() + .equals(other.getFirstName())) return false; + if (!getLastName1() + .equals(other.getLastName1())) return false; + if (!getLastName2() + .equals(other.getLastName2())) return false; + if (!getTitle() + .equals(other.getTitle())) return false; + if (!getNamePrefix() + .equals(other.getNamePrefix())) return false; + if (!getMiddleInitial() + .equals(other.getMiddleInitial())) return false; + if (!getSalutationCode() + .equals(other.getSalutationCode())) return false; + if (!getEmail() + .equals(other.getEmail())) return false; + if (!getLandlinePhone() + .equals(other.getLandlinePhone())) return false; + if (!getMobilePhoneNumber() + .equals(other.getMobilePhoneNumber())) return false; + if (!getCreatedAt() + .equals(other.getCreatedAt())) return false; + if (!getCreatedBy() + .equals(other.getCreatedBy())) return false; + if (!getUpdatedAt() + .equals(other.getUpdatedAt())) return false; + if (!getBirthday() + .equals(other.getBirthday())) return false; + if (!getPreferredLanguageCode() + .equals(other.getPreferredLanguageCode())) return false; + if (!getAccountCountryCode() + .equals(other.getAccountCountryCode())) return false; + if (!getUcId() + .equals(other.getUcId())) return false; + if (getVip() + != other.getVip()) return false; + if (hasAddress() != other.hasAddress()) return false; + if (hasAddress()) { + if (!getAddress() + .equals(other.getAddress())) return false; + } + if (hasCommunicationPreference() != other.hasCommunicationPreference()) return false; + if (hasCommunicationPreference()) { + if (!getCommunicationPreference() + .equals(other.getCommunicationPreference())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + USER_ID_FIELD_NUMBER; + hash = (53 * hash) + getUserId().hashCode(); + hash = (37 * hash) + FIRST_NAME_FIELD_NUMBER; + hash = (53 * hash) + getFirstName().hashCode(); + hash = (37 * hash) + LAST_NAME1_FIELD_NUMBER; + hash = (53 * hash) + getLastName1().hashCode(); + hash = (37 * hash) + LAST_NAME2_FIELD_NUMBER; + hash = (53 * hash) + getLastName2().hashCode(); + hash = (37 * hash) + TITLE_FIELD_NUMBER; + hash = (53 * hash) + getTitle().hashCode(); + hash = (37 * hash) + NAME_PREFIX_FIELD_NUMBER; + hash = (53 * hash) + getNamePrefix().hashCode(); + hash = (37 * hash) + MIDDLE_INITIAL_FIELD_NUMBER; + hash = (53 * hash) + getMiddleInitial().hashCode(); + hash = (37 * hash) + SALUTATION_CODE_FIELD_NUMBER; + hash = (53 * hash) + getSalutationCode().hashCode(); + hash = (37 * hash) + EMAIL_FIELD_NUMBER; + hash = (53 * hash) + getEmail().hashCode(); + hash = (37 * hash) + LANDLINE_PHONE_FIELD_NUMBER; + hash = (53 * hash) + getLandlinePhone().hashCode(); + hash = (37 * hash) + MOBILE_PHONE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getMobilePhoneNumber().hashCode(); + hash = (37 * hash) + CREATED_AT_FIELD_NUMBER; + hash = (53 * hash) + getCreatedAt().hashCode(); + hash = (37 * hash) + CREATED_BY_FIELD_NUMBER; + hash = (53 * hash) + getCreatedBy().hashCode(); + hash = (37 * hash) + UPDATED_AT_FIELD_NUMBER; + hash = (53 * hash) + getUpdatedAt().hashCode(); + hash = (37 * hash) + BIRTHDAY_FIELD_NUMBER; + hash = (53 * hash) + getBirthday().hashCode(); + hash = (37 * hash) + PREFERRED_LANGUAGE_CODE_FIELD_NUMBER; + hash = (53 * hash) + getPreferredLanguageCode().hashCode(); + hash = (37 * hash) + ACCOUNT_COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getAccountCountryCode().hashCode(); + hash = (37 * hash) + UC_ID_FIELD_NUMBER; + hash = (53 * hash) + getUcId().hashCode(); + hash = (37 * hash) + VIP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getVip()); + if (hasAddress()) { + hash = (37 * hash) + ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getAddress().hashCode(); + } + if (hasCommunicationPreference()) { + hash = (37 * hash) + COMMUNICATION_PREFERENCE_FIELD_NUMBER; + hash = (53 * hash) + getCommunicationPreference().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.CPDUserData prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.CPDUserData} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.CPDUserData) + com.daimler.mbcarkit.proto.UserEvents.CPDUserDataOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserData_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserData_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.CPDUserData.class, com.daimler.mbcarkit.proto.UserEvents.CPDUserData.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.CPDUserData.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getAddressFieldBuilder(); + getCommunicationPreferenceFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + ciamId_ = ""; + userId_ = ""; + firstName_ = ""; + lastName1_ = ""; + lastName2_ = ""; + title_ = ""; + namePrefix_ = ""; + middleInitial_ = ""; + salutationCode_ = ""; + email_ = ""; + landlinePhone_ = ""; + mobilePhoneNumber_ = ""; + createdAt_ = ""; + createdBy_ = ""; + updatedAt_ = ""; + birthday_ = ""; + preferredLanguageCode_ = ""; + accountCountryCode_ = ""; + ucId_ = ""; + vip_ = false; + address_ = null; + if (addressBuilder_ != null) { + addressBuilder_.dispose(); + addressBuilder_ = null; + } + communicationPreference_ = null; + if (communicationPreferenceBuilder_ != null) { + communicationPreferenceBuilder_.dispose(); + communicationPreferenceBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserData_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData build() { + com.daimler.mbcarkit.proto.UserEvents.CPDUserData result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.CPDUserData result = new com.daimler.mbcarkit.proto.UserEvents.CPDUserData(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.CPDUserData result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.userId_ = userId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.firstName_ = firstName_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.lastName1_ = lastName1_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.lastName2_ = lastName2_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.title_ = title_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.namePrefix_ = namePrefix_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.middleInitial_ = middleInitial_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.salutationCode_ = salutationCode_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.email_ = email_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.landlinePhone_ = landlinePhone_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.mobilePhoneNumber_ = mobilePhoneNumber_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.createdAt_ = createdAt_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.createdBy_ = createdBy_; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.updatedAt_ = updatedAt_; + } + if (((from_bitField0_ & 0x00008000) != 0)) { + result.birthday_ = birthday_; + } + if (((from_bitField0_ & 0x00010000) != 0)) { + result.preferredLanguageCode_ = preferredLanguageCode_; + } + if (((from_bitField0_ & 0x00020000) != 0)) { + result.accountCountryCode_ = accountCountryCode_; + } + if (((from_bitField0_ & 0x00040000) != 0)) { + result.ucId_ = ucId_; + } + if (((from_bitField0_ & 0x00080000) != 0)) { + result.vip_ = vip_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00100000) != 0)) { + result.address_ = addressBuilder_ == null + ? address_ + : addressBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00200000) != 0)) { + result.communicationPreference_ = communicationPreferenceBuilder_ == null + ? communicationPreference_ + : communicationPreferenceBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.CPDUserData) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.CPDUserData)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.CPDUserData other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.CPDUserData.getDefaultInstance()) return this; + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getUserId().isEmpty()) { + userId_ = other.userId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getFirstName().isEmpty()) { + firstName_ = other.firstName_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getLastName1().isEmpty()) { + lastName1_ = other.lastName1_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getLastName2().isEmpty()) { + lastName2_ = other.lastName2_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (!other.getTitle().isEmpty()) { + title_ = other.title_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (!other.getNamePrefix().isEmpty()) { + namePrefix_ = other.namePrefix_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (!other.getMiddleInitial().isEmpty()) { + middleInitial_ = other.middleInitial_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (!other.getSalutationCode().isEmpty()) { + salutationCode_ = other.salutationCode_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (!other.getEmail().isEmpty()) { + email_ = other.email_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (!other.getLandlinePhone().isEmpty()) { + landlinePhone_ = other.landlinePhone_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (!other.getMobilePhoneNumber().isEmpty()) { + mobilePhoneNumber_ = other.mobilePhoneNumber_; + bitField0_ |= 0x00000800; + onChanged(); + } + if (!other.getCreatedAt().isEmpty()) { + createdAt_ = other.createdAt_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (!other.getCreatedBy().isEmpty()) { + createdBy_ = other.createdBy_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (!other.getUpdatedAt().isEmpty()) { + updatedAt_ = other.updatedAt_; + bitField0_ |= 0x00004000; + onChanged(); + } + if (!other.getBirthday().isEmpty()) { + birthday_ = other.birthday_; + bitField0_ |= 0x00008000; + onChanged(); + } + if (!other.getPreferredLanguageCode().isEmpty()) { + preferredLanguageCode_ = other.preferredLanguageCode_; + bitField0_ |= 0x00010000; + onChanged(); + } + if (!other.getAccountCountryCode().isEmpty()) { + accountCountryCode_ = other.accountCountryCode_; + bitField0_ |= 0x00020000; + onChanged(); + } + if (!other.getUcId().isEmpty()) { + ucId_ = other.ucId_; + bitField0_ |= 0x00040000; + onChanged(); + } + if (other.getVip() != false) { + setVip(other.getVip()); + } + if (other.hasAddress()) { + mergeAddress(other.getAddress()); + } + if (other.hasCommunicationPreference()) { + mergeCommunicationPreference(other.getCommunicationPreference()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + userId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + firstName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + lastName1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: { + lastName2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + title_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + namePrefix_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + middleInitial_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 74: { + salutationCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 82: { + email_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: { + landlinePhone_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 98: { + mobilePhoneNumber_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000800; + break; + } // case 98 + case 106: { + createdAt_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 106 + case 114: { + createdBy_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 122: { + updatedAt_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00004000; + break; + } // case 122 + case 226: { + birthday_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00008000; + break; + } // case 226 + case 234: { + preferredLanguageCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00010000; + break; + } // case 234 + case 242: { + accountCountryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00020000; + break; + } // case 242 + case 250: { + ucId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00040000; + break; + } // case 250 + case 256: { + vip_ = input.readBool(); + bitField0_ |= 0x00080000; + break; + } // case 256 + case 266: { + input.readMessage( + getAddressFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00100000; + break; + } // case 266 + case 274: { + input.readMessage( + getCommunicationPreferenceFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00200000; + break; + } // case 274 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 1; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ciam_id = 1; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ciam_id = 1; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string ciam_id = 1; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string ciam_id = 1; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object userId_ = ""; + /** + * string user_id = 2; + * @return The userId. + */ + public java.lang.String getUserId() { + java.lang.Object ref = userId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + userId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string user_id = 2; + * @return The bytes for userId. + */ + public com.google.protobuf.ByteString + getUserIdBytes() { + java.lang.Object ref = userId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + userId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string user_id = 2; + * @param value The userId to set. + * @return This builder for chaining. + */ + public Builder setUserId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + userId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string user_id = 2; + * @return This builder for chaining. + */ + public Builder clearUserId() { + userId_ = getDefaultInstance().getUserId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string user_id = 2; + * @param value The bytes for userId to set. + * @return This builder for chaining. + */ + public Builder setUserIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + userId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object firstName_ = ""; + /** + * string first_name = 3; + * @return The firstName. + */ + public java.lang.String getFirstName() { + java.lang.Object ref = firstName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + firstName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string first_name = 3; + * @return The bytes for firstName. + */ + public com.google.protobuf.ByteString + getFirstNameBytes() { + java.lang.Object ref = firstName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + firstName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string first_name = 3; + * @param value The firstName to set. + * @return This builder for chaining. + */ + public Builder setFirstName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + firstName_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string first_name = 3; + * @return This builder for chaining. + */ + public Builder clearFirstName() { + firstName_ = getDefaultInstance().getFirstName(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string first_name = 3; + * @param value The bytes for firstName to set. + * @return This builder for chaining. + */ + public Builder setFirstNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + firstName_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object lastName1_ = ""; + /** + * string last_name1 = 4; + * @return The lastName1. + */ + public java.lang.String getLastName1() { + java.lang.Object ref = lastName1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + lastName1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string last_name1 = 4; + * @return The bytes for lastName1. + */ + public com.google.protobuf.ByteString + getLastName1Bytes() { + java.lang.Object ref = lastName1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + lastName1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string last_name1 = 4; + * @param value The lastName1 to set. + * @return This builder for chaining. + */ + public Builder setLastName1( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + lastName1_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string last_name1 = 4; + * @return This builder for chaining. + */ + public Builder clearLastName1() { + lastName1_ = getDefaultInstance().getLastName1(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string last_name1 = 4; + * @param value The bytes for lastName1 to set. + * @return This builder for chaining. + */ + public Builder setLastName1Bytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + lastName1_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object lastName2_ = ""; + /** + * string last_name2 = 5; + * @return The lastName2. + */ + public java.lang.String getLastName2() { + java.lang.Object ref = lastName2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + lastName2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string last_name2 = 5; + * @return The bytes for lastName2. + */ + public com.google.protobuf.ByteString + getLastName2Bytes() { + java.lang.Object ref = lastName2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + lastName2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string last_name2 = 5; + * @param value The lastName2 to set. + * @return This builder for chaining. + */ + public Builder setLastName2( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + lastName2_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string last_name2 = 5; + * @return This builder for chaining. + */ + public Builder clearLastName2() { + lastName2_ = getDefaultInstance().getLastName2(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string last_name2 = 5; + * @param value The bytes for lastName2 to set. + * @return This builder for chaining. + */ + public Builder setLastName2Bytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + lastName2_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object title_ = ""; + /** + * string title = 6; + * @return The title. + */ + public java.lang.String getTitle() { + java.lang.Object ref = title_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + title_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string title = 6; + * @return The bytes for title. + */ + public com.google.protobuf.ByteString + getTitleBytes() { + java.lang.Object ref = title_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + title_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string title = 6; + * @param value The title to set. + * @return This builder for chaining. + */ + public Builder setTitle( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + title_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string title = 6; + * @return This builder for chaining. + */ + public Builder clearTitle() { + title_ = getDefaultInstance().getTitle(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string title = 6; + * @param value The bytes for title to set. + * @return This builder for chaining. + */ + public Builder setTitleBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + title_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object namePrefix_ = ""; + /** + * string name_prefix = 7; + * @return The namePrefix. + */ + public java.lang.String getNamePrefix() { + java.lang.Object ref = namePrefix_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + namePrefix_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string name_prefix = 7; + * @return The bytes for namePrefix. + */ + public com.google.protobuf.ByteString + getNamePrefixBytes() { + java.lang.Object ref = namePrefix_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + namePrefix_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string name_prefix = 7; + * @param value The namePrefix to set. + * @return This builder for chaining. + */ + public Builder setNamePrefix( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + namePrefix_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string name_prefix = 7; + * @return This builder for chaining. + */ + public Builder clearNamePrefix() { + namePrefix_ = getDefaultInstance().getNamePrefix(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string name_prefix = 7; + * @param value The bytes for namePrefix to set. + * @return This builder for chaining. + */ + public Builder setNamePrefixBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + namePrefix_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object middleInitial_ = ""; + /** + * string middle_initial = 8; + * @return The middleInitial. + */ + public java.lang.String getMiddleInitial() { + java.lang.Object ref = middleInitial_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + middleInitial_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string middle_initial = 8; + * @return The bytes for middleInitial. + */ + public com.google.protobuf.ByteString + getMiddleInitialBytes() { + java.lang.Object ref = middleInitial_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + middleInitial_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string middle_initial = 8; + * @param value The middleInitial to set. + * @return This builder for chaining. + */ + public Builder setMiddleInitial( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + middleInitial_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * string middle_initial = 8; + * @return This builder for chaining. + */ + public Builder clearMiddleInitial() { + middleInitial_ = getDefaultInstance().getMiddleInitial(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + /** + * string middle_initial = 8; + * @param value The bytes for middleInitial to set. + * @return This builder for chaining. + */ + public Builder setMiddleInitialBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + middleInitial_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private java.lang.Object salutationCode_ = ""; + /** + * string salutation_code = 9; + * @return The salutationCode. + */ + public java.lang.String getSalutationCode() { + java.lang.Object ref = salutationCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + salutationCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string salutation_code = 9; + * @return The bytes for salutationCode. + */ + public com.google.protobuf.ByteString + getSalutationCodeBytes() { + java.lang.Object ref = salutationCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + salutationCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string salutation_code = 9; + * @param value The salutationCode to set. + * @return This builder for chaining. + */ + public Builder setSalutationCode( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + salutationCode_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * string salutation_code = 9; + * @return This builder for chaining. + */ + public Builder clearSalutationCode() { + salutationCode_ = getDefaultInstance().getSalutationCode(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + /** + * string salutation_code = 9; + * @param value The bytes for salutationCode to set. + * @return This builder for chaining. + */ + public Builder setSalutationCodeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + salutationCode_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private java.lang.Object email_ = ""; + /** + * string email = 10; + * @return The email. + */ + public java.lang.String getEmail() { + java.lang.Object ref = email_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + email_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string email = 10; + * @return The bytes for email. + */ + public com.google.protobuf.ByteString + getEmailBytes() { + java.lang.Object ref = email_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + email_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string email = 10; + * @param value The email to set. + * @return This builder for chaining. + */ + public Builder setEmail( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + email_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * string email = 10; + * @return This builder for chaining. + */ + public Builder clearEmail() { + email_ = getDefaultInstance().getEmail(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + /** + * string email = 10; + * @param value The bytes for email to set. + * @return This builder for chaining. + */ + public Builder setEmailBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + email_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.lang.Object landlinePhone_ = ""; + /** + * string landline_phone = 11; + * @return The landlinePhone. + */ + public java.lang.String getLandlinePhone() { + java.lang.Object ref = landlinePhone_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + landlinePhone_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string landline_phone = 11; + * @return The bytes for landlinePhone. + */ + public com.google.protobuf.ByteString + getLandlinePhoneBytes() { + java.lang.Object ref = landlinePhone_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + landlinePhone_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string landline_phone = 11; + * @param value The landlinePhone to set. + * @return This builder for chaining. + */ + public Builder setLandlinePhone( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + landlinePhone_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * string landline_phone = 11; + * @return This builder for chaining. + */ + public Builder clearLandlinePhone() { + landlinePhone_ = getDefaultInstance().getLandlinePhone(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + /** + * string landline_phone = 11; + * @param value The bytes for landlinePhone to set. + * @return This builder for chaining. + */ + public Builder setLandlinePhoneBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + landlinePhone_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private java.lang.Object mobilePhoneNumber_ = ""; + /** + * string mobile_phone_number = 12; + * @return The mobilePhoneNumber. + */ + public java.lang.String getMobilePhoneNumber() { + java.lang.Object ref = mobilePhoneNumber_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + mobilePhoneNumber_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string mobile_phone_number = 12; + * @return The bytes for mobilePhoneNumber. + */ + public com.google.protobuf.ByteString + getMobilePhoneNumberBytes() { + java.lang.Object ref = mobilePhoneNumber_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + mobilePhoneNumber_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string mobile_phone_number = 12; + * @param value The mobilePhoneNumber to set. + * @return This builder for chaining. + */ + public Builder setMobilePhoneNumber( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + mobilePhoneNumber_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * string mobile_phone_number = 12; + * @return This builder for chaining. + */ + public Builder clearMobilePhoneNumber() { + mobilePhoneNumber_ = getDefaultInstance().getMobilePhoneNumber(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; + } + /** + * string mobile_phone_number = 12; + * @param value The bytes for mobilePhoneNumber to set. + * @return This builder for chaining. + */ + public Builder setMobilePhoneNumberBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + mobilePhoneNumber_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + private java.lang.Object createdAt_ = ""; + /** + * string created_at = 13; + * @return The createdAt. + */ + public java.lang.String getCreatedAt() { + java.lang.Object ref = createdAt_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + createdAt_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string created_at = 13; + * @return The bytes for createdAt. + */ + public com.google.protobuf.ByteString + getCreatedAtBytes() { + java.lang.Object ref = createdAt_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + createdAt_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string created_at = 13; + * @param value The createdAt to set. + * @return This builder for chaining. + */ + public Builder setCreatedAt( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + createdAt_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * string created_at = 13; + * @return This builder for chaining. + */ + public Builder clearCreatedAt() { + createdAt_ = getDefaultInstance().getCreatedAt(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + /** + * string created_at = 13; + * @param value The bytes for createdAt to set. + * @return This builder for chaining. + */ + public Builder setCreatedAtBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + createdAt_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private java.lang.Object createdBy_ = ""; + /** + * string created_by = 14; + * @return The createdBy. + */ + public java.lang.String getCreatedBy() { + java.lang.Object ref = createdBy_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + createdBy_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string created_by = 14; + * @return The bytes for createdBy. + */ + public com.google.protobuf.ByteString + getCreatedByBytes() { + java.lang.Object ref = createdBy_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + createdBy_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string created_by = 14; + * @param value The createdBy to set. + * @return This builder for chaining. + */ + public Builder setCreatedBy( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + createdBy_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * string created_by = 14; + * @return This builder for chaining. + */ + public Builder clearCreatedBy() { + createdBy_ = getDefaultInstance().getCreatedBy(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + /** + * string created_by = 14; + * @param value The bytes for createdBy to set. + * @return This builder for chaining. + */ + public Builder setCreatedByBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + createdBy_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private java.lang.Object updatedAt_ = ""; + /** + * string updated_at = 15; + * @return The updatedAt. + */ + public java.lang.String getUpdatedAt() { + java.lang.Object ref = updatedAt_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + updatedAt_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string updated_at = 15; + * @return The bytes for updatedAt. + */ + public com.google.protobuf.ByteString + getUpdatedAtBytes() { + java.lang.Object ref = updatedAt_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + updatedAt_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string updated_at = 15; + * @param value The updatedAt to set. + * @return This builder for chaining. + */ + public Builder setUpdatedAt( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + updatedAt_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * string updated_at = 15; + * @return This builder for chaining. + */ + public Builder clearUpdatedAt() { + updatedAt_ = getDefaultInstance().getUpdatedAt(); + bitField0_ = (bitField0_ & ~0x00004000); + onChanged(); + return this; + } + /** + * string updated_at = 15; + * @param value The bytes for updatedAt to set. + * @return This builder for chaining. + */ + public Builder setUpdatedAtBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + updatedAt_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + private java.lang.Object birthday_ = ""; + /** + * string birthday = 28; + * @return The birthday. + */ + public java.lang.String getBirthday() { + java.lang.Object ref = birthday_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + birthday_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string birthday = 28; + * @return The bytes for birthday. + */ + public com.google.protobuf.ByteString + getBirthdayBytes() { + java.lang.Object ref = birthday_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + birthday_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string birthday = 28; + * @param value The birthday to set. + * @return This builder for chaining. + */ + public Builder setBirthday( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + birthday_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + /** + * string birthday = 28; + * @return This builder for chaining. + */ + public Builder clearBirthday() { + birthday_ = getDefaultInstance().getBirthday(); + bitField0_ = (bitField0_ & ~0x00008000); + onChanged(); + return this; + } + /** + * string birthday = 28; + * @param value The bytes for birthday to set. + * @return This builder for chaining. + */ + public Builder setBirthdayBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + birthday_ = value; + bitField0_ |= 0x00008000; + onChanged(); + return this; + } + + private java.lang.Object preferredLanguageCode_ = ""; + /** + * string preferred_language_code = 29; + * @return The preferredLanguageCode. + */ + public java.lang.String getPreferredLanguageCode() { + java.lang.Object ref = preferredLanguageCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + preferredLanguageCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string preferred_language_code = 29; + * @return The bytes for preferredLanguageCode. + */ + public com.google.protobuf.ByteString + getPreferredLanguageCodeBytes() { + java.lang.Object ref = preferredLanguageCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + preferredLanguageCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string preferred_language_code = 29; + * @param value The preferredLanguageCode to set. + * @return This builder for chaining. + */ + public Builder setPreferredLanguageCode( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + preferredLanguageCode_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + /** + * string preferred_language_code = 29; + * @return This builder for chaining. + */ + public Builder clearPreferredLanguageCode() { + preferredLanguageCode_ = getDefaultInstance().getPreferredLanguageCode(); + bitField0_ = (bitField0_ & ~0x00010000); + onChanged(); + return this; + } + /** + * string preferred_language_code = 29; + * @param value The bytes for preferredLanguageCode to set. + * @return This builder for chaining. + */ + public Builder setPreferredLanguageCodeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + preferredLanguageCode_ = value; + bitField0_ |= 0x00010000; + onChanged(); + return this; + } + + private java.lang.Object accountCountryCode_ = ""; + /** + * string account_country_code = 30; + * @return The accountCountryCode. + */ + public java.lang.String getAccountCountryCode() { + java.lang.Object ref = accountCountryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + accountCountryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string account_country_code = 30; + * @return The bytes for accountCountryCode. + */ + public com.google.protobuf.ByteString + getAccountCountryCodeBytes() { + java.lang.Object ref = accountCountryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + accountCountryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string account_country_code = 30; + * @param value The accountCountryCode to set. + * @return This builder for chaining. + */ + public Builder setAccountCountryCode( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + accountCountryCode_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + /** + * string account_country_code = 30; + * @return This builder for chaining. + */ + public Builder clearAccountCountryCode() { + accountCountryCode_ = getDefaultInstance().getAccountCountryCode(); + bitField0_ = (bitField0_ & ~0x00020000); + onChanged(); + return this; + } + /** + * string account_country_code = 30; + * @param value The bytes for accountCountryCode to set. + * @return This builder for chaining. + */ + public Builder setAccountCountryCodeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + accountCountryCode_ = value; + bitField0_ |= 0x00020000; + onChanged(); + return this; + } + + private java.lang.Object ucId_ = ""; + /** + *
+       * doc says: TODO
+       * 
+ * + * string uc_id = 31; + * @return The ucId. + */ + public java.lang.String getUcId() { + java.lang.Object ref = ucId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ucId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * doc says: TODO
+       * 
+ * + * string uc_id = 31; + * @return The bytes for ucId. + */ + public com.google.protobuf.ByteString + getUcIdBytes() { + java.lang.Object ref = ucId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ucId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * doc says: TODO
+       * 
+ * + * string uc_id = 31; + * @param value The ucId to set. + * @return This builder for chaining. + */ + public Builder setUcId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ucId_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + /** + *
+       * doc says: TODO
+       * 
+ * + * string uc_id = 31; + * @return This builder for chaining. + */ + public Builder clearUcId() { + ucId_ = getDefaultInstance().getUcId(); + bitField0_ = (bitField0_ & ~0x00040000); + onChanged(); + return this; + } + /** + *
+       * doc says: TODO
+       * 
+ * + * string uc_id = 31; + * @param value The bytes for ucId to set. + * @return This builder for chaining. + */ + public Builder setUcIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ucId_ = value; + bitField0_ |= 0x00040000; + onChanged(); + return this; + } + + private boolean vip_ ; + /** + * bool vip = 32; + * @return The vip. + */ + @java.lang.Override + public boolean getVip() { + return vip_; + } + /** + * bool vip = 32; + * @param value The vip to set. + * @return This builder for chaining. + */ + public Builder setVip(boolean value) { + + vip_ = value; + bitField0_ |= 0x00080000; + onChanged(); + return this; + } + /** + * bool vip = 32; + * @return This builder for chaining. + */ + public Builder clearVip() { + bitField0_ = (bitField0_ & ~0x00080000); + vip_ = false; + onChanged(); + return this; + } + + private com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress address_; + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress, com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserAddressOrBuilder> addressBuilder_; + /** + * .proto.CPDUserAddress address = 33; + * @return Whether the address field is set. + */ + public boolean hasAddress() { + return ((bitField0_ & 0x00100000) != 0); + } + /** + * .proto.CPDUserAddress address = 33; + * @return The address. + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress getAddress() { + if (addressBuilder_ == null) { + return address_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.getDefaultInstance() : address_; + } else { + return addressBuilder_.getMessage(); + } + } + /** + * .proto.CPDUserAddress address = 33; + */ + public Builder setAddress(com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress value) { + if (addressBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + address_ = value; + } else { + addressBuilder_.setMessage(value); + } + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .proto.CPDUserAddress address = 33; + */ + public Builder setAddress( + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.Builder builderForValue) { + if (addressBuilder_ == null) { + address_ = builderForValue.build(); + } else { + addressBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00100000; + onChanged(); + return this; + } + /** + * .proto.CPDUserAddress address = 33; + */ + public Builder mergeAddress(com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress value) { + if (addressBuilder_ == null) { + if (((bitField0_ & 0x00100000) != 0) && + address_ != null && + address_ != com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.getDefaultInstance()) { + getAddressBuilder().mergeFrom(value); + } else { + address_ = value; + } + } else { + addressBuilder_.mergeFrom(value); + } + if (address_ != null) { + bitField0_ |= 0x00100000; + onChanged(); + } + return this; + } + /** + * .proto.CPDUserAddress address = 33; + */ + public Builder clearAddress() { + bitField0_ = (bitField0_ & ~0x00100000); + address_ = null; + if (addressBuilder_ != null) { + addressBuilder_.dispose(); + addressBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .proto.CPDUserAddress address = 33; + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.Builder getAddressBuilder() { + bitField0_ |= 0x00100000; + onChanged(); + return getAddressFieldBuilder().getBuilder(); + } + /** + * .proto.CPDUserAddress address = 33; + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddressOrBuilder getAddressOrBuilder() { + if (addressBuilder_ != null) { + return addressBuilder_.getMessageOrBuilder(); + } else { + return address_ == null ? + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.getDefaultInstance() : address_; + } + } + /** + * .proto.CPDUserAddress address = 33; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress, com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserAddressOrBuilder> + getAddressFieldBuilder() { + if (addressBuilder_ == null) { + addressBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress, com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserAddressOrBuilder>( + getAddress(), + getParentForChildren(), + isClean()); + address_ = null; + } + return addressBuilder_; + } + + private com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference communicationPreference_; + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference, com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreferenceOrBuilder> communicationPreferenceBuilder_; + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + * @return Whether the communicationPreference field is set. + */ + public boolean hasCommunicationPreference() { + return ((bitField0_ & 0x00200000) != 0); + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + * @return The communicationPreference. + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference getCommunicationPreference() { + if (communicationPreferenceBuilder_ == null) { + return communicationPreference_ == null ? com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.getDefaultInstance() : communicationPreference_; + } else { + return communicationPreferenceBuilder_.getMessage(); + } + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + public Builder setCommunicationPreference(com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference value) { + if (communicationPreferenceBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + communicationPreference_ = value; + } else { + communicationPreferenceBuilder_.setMessage(value); + } + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + public Builder setCommunicationPreference( + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.Builder builderForValue) { + if (communicationPreferenceBuilder_ == null) { + communicationPreference_ = builderForValue.build(); + } else { + communicationPreferenceBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00200000; + onChanged(); + return this; + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + public Builder mergeCommunicationPreference(com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference value) { + if (communicationPreferenceBuilder_ == null) { + if (((bitField0_ & 0x00200000) != 0) && + communicationPreference_ != null && + communicationPreference_ != com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.getDefaultInstance()) { + getCommunicationPreferenceBuilder().mergeFrom(value); + } else { + communicationPreference_ = value; + } + } else { + communicationPreferenceBuilder_.mergeFrom(value); + } + if (communicationPreference_ != null) { + bitField0_ |= 0x00200000; + onChanged(); + } + return this; + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + public Builder clearCommunicationPreference() { + bitField0_ = (bitField0_ & ~0x00200000); + communicationPreference_ = null; + if (communicationPreferenceBuilder_ != null) { + communicationPreferenceBuilder_.dispose(); + communicationPreferenceBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.Builder getCommunicationPreferenceBuilder() { + bitField0_ |= 0x00200000; + onChanged(); + return getCommunicationPreferenceFieldBuilder().getBuilder(); + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreferenceOrBuilder getCommunicationPreferenceOrBuilder() { + if (communicationPreferenceBuilder_ != null) { + return communicationPreferenceBuilder_.getMessageOrBuilder(); + } else { + return communicationPreference_ == null ? + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.getDefaultInstance() : communicationPreference_; + } + } + /** + * .proto.CPDUserCommunicationPreference communication_preference = 34; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference, com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreferenceOrBuilder> + getCommunicationPreferenceFieldBuilder() { + if (communicationPreferenceBuilder_ == null) { + communicationPreferenceBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference, com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.Builder, com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreferenceOrBuilder>( + getCommunicationPreference(), + getParentForChildren(), + isClean()); + communicationPreference_ = null; + } + return communicationPreferenceBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.CPDUserData) + } + + // @@protoc_insertion_point(class_scope:proto.CPDUserData) + private static final com.daimler.mbcarkit.proto.UserEvents.CPDUserData DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.CPDUserData(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserData getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CPDUserData parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserData getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface CPDUserAddressOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.CPDUserAddress) + com.google.protobuf.MessageOrBuilder { + + /** + * string country_code = 1; + * @return The countryCode. + */ + java.lang.String getCountryCode(); + /** + * string country_code = 1; + * @return The bytes for countryCode. + */ + com.google.protobuf.ByteString + getCountryCodeBytes(); + + /** + * string state = 2; + * @return The state. + */ + java.lang.String getState(); + /** + * string state = 2; + * @return The bytes for state. + */ + com.google.protobuf.ByteString + getStateBytes(); + + /** + * string province = 3; + * @return The province. + */ + java.lang.String getProvince(); + /** + * string province = 3; + * @return The bytes for province. + */ + com.google.protobuf.ByteString + getProvinceBytes(); + + /** + * string street = 4; + * @return The street. + */ + java.lang.String getStreet(); + /** + * string street = 4; + * @return The bytes for street. + */ + com.google.protobuf.ByteString + getStreetBytes(); + + /** + * string house_no = 5; + * @return The houseNo. + */ + java.lang.String getHouseNo(); + /** + * string house_no = 5; + * @return The bytes for houseNo. + */ + com.google.protobuf.ByteString + getHouseNoBytes(); + + /** + * string zip_code = 6; + * @return The zipCode. + */ + java.lang.String getZipCode(); + /** + * string zip_code = 6; + * @return The bytes for zipCode. + */ + com.google.protobuf.ByteString + getZipCodeBytes(); + + /** + * string city = 7; + * @return The city. + */ + java.lang.String getCity(); + /** + * string city = 7; + * @return The bytes for city. + */ + com.google.protobuf.ByteString + getCityBytes(); + + /** + * string street_type = 8; + * @return The streetType. + */ + java.lang.String getStreetType(); + /** + * string street_type = 8; + * @return The bytes for streetType. + */ + com.google.protobuf.ByteString + getStreetTypeBytes(); + + /** + * string house_name = 9; + * @return The houseName. + */ + java.lang.String getHouseName(); + /** + * string house_name = 9; + * @return The bytes for houseName. + */ + com.google.protobuf.ByteString + getHouseNameBytes(); + + /** + * string floor_no = 10; + * @return The floorNo. + */ + java.lang.String getFloorNo(); + /** + * string floor_no = 10; + * @return The bytes for floorNo. + */ + com.google.protobuf.ByteString + getFloorNoBytes(); + + /** + * string door_no = 11; + * @return The doorNo. + */ + java.lang.String getDoorNo(); + /** + * string door_no = 11; + * @return The bytes for doorNo. + */ + com.google.protobuf.ByteString + getDoorNoBytes(); + + /** + * string address_line1 = 12; + * @return The addressLine1. + */ + java.lang.String getAddressLine1(); + /** + * string address_line1 = 12; + * @return The bytes for addressLine1. + */ + com.google.protobuf.ByteString + getAddressLine1Bytes(); + + /** + * string address_line2 = 13; + * @return The addressLine2. + */ + java.lang.String getAddressLine2(); + /** + * string address_line2 = 13; + * @return The bytes for addressLine2. + */ + com.google.protobuf.ByteString + getAddressLine2Bytes(); + + /** + * string address_line3 = 14; + * @return The addressLine3. + */ + java.lang.String getAddressLine3(); + /** + * string address_line3 = 14; + * @return The bytes for addressLine3. + */ + com.google.protobuf.ByteString + getAddressLine3Bytes(); + + /** + * string post_office_box = 15; + * @return The postOfficeBox. + */ + java.lang.String getPostOfficeBox(); + /** + * string post_office_box = 15; + * @return The bytes for postOfficeBox. + */ + com.google.protobuf.ByteString + getPostOfficeBoxBytes(); + } + /** + * Protobuf type {@code proto.CPDUserAddress} + */ + public static final class CPDUserAddress extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.CPDUserAddress) + CPDUserAddressOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CPDUserAddress.class.getName()); + } + // Use CPDUserAddress.newBuilder() to construct. + private CPDUserAddress(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private CPDUserAddress() { + countryCode_ = ""; + state_ = ""; + province_ = ""; + street_ = ""; + houseNo_ = ""; + zipCode_ = ""; + city_ = ""; + streetType_ = ""; + houseName_ = ""; + floorNo_ = ""; + doorNo_ = ""; + addressLine1_ = ""; + addressLine2_ = ""; + addressLine3_ = ""; + postOfficeBox_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserAddress_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserAddress_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.class, com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.Builder.class); + } + + public static final int COUNTRY_CODE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object countryCode_ = ""; + /** + * string country_code = 1; + * @return The countryCode. + */ + @java.lang.Override + public java.lang.String getCountryCode() { + java.lang.Object ref = countryCode_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + countryCode_ = s; + return s; + } + } + /** + * string country_code = 1; + * @return The bytes for countryCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCountryCodeBytes() { + java.lang.Object ref = countryCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + countryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STATE_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object state_ = ""; + /** + * string state = 2; + * @return The state. + */ + @java.lang.Override + public java.lang.String getState() { + java.lang.Object ref = state_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + state_ = s; + return s; + } + } + /** + * string state = 2; + * @return The bytes for state. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStateBytes() { + java.lang.Object ref = state_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + state_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PROVINCE_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object province_ = ""; + /** + * string province = 3; + * @return The province. + */ + @java.lang.Override + public java.lang.String getProvince() { + java.lang.Object ref = province_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + province_ = s; + return s; + } + } + /** + * string province = 3; + * @return The bytes for province. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getProvinceBytes() { + java.lang.Object ref = province_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + province_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STREET_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object street_ = ""; + /** + * string street = 4; + * @return The street. + */ + @java.lang.Override + public java.lang.String getStreet() { + java.lang.Object ref = street_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + street_ = s; + return s; + } + } + /** + * string street = 4; + * @return The bytes for street. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStreetBytes() { + java.lang.Object ref = street_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + street_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int HOUSE_NO_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object houseNo_ = ""; + /** + * string house_no = 5; + * @return The houseNo. + */ + @java.lang.Override + public java.lang.String getHouseNo() { + java.lang.Object ref = houseNo_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + houseNo_ = s; + return s; + } + } + /** + * string house_no = 5; + * @return The bytes for houseNo. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getHouseNoBytes() { + java.lang.Object ref = houseNo_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + houseNo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ZIP_CODE_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private volatile java.lang.Object zipCode_ = ""; + /** + * string zip_code = 6; + * @return The zipCode. + */ + @java.lang.Override + public java.lang.String getZipCode() { + java.lang.Object ref = zipCode_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + zipCode_ = s; + return s; + } + } + /** + * string zip_code = 6; + * @return The bytes for zipCode. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getZipCodeBytes() { + java.lang.Object ref = zipCode_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + zipCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int CITY_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object city_ = ""; + /** + * string city = 7; + * @return The city. + */ + @java.lang.Override + public java.lang.String getCity() { + java.lang.Object ref = city_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + city_ = s; + return s; + } + } + /** + * string city = 7; + * @return The bytes for city. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCityBytes() { + java.lang.Object ref = city_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + city_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int STREET_TYPE_FIELD_NUMBER = 8; + @SuppressWarnings("serial") + private volatile java.lang.Object streetType_ = ""; + /** + * string street_type = 8; + * @return The streetType. + */ + @java.lang.Override + public java.lang.String getStreetType() { + java.lang.Object ref = streetType_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + streetType_ = s; + return s; + } + } + /** + * string street_type = 8; + * @return The bytes for streetType. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStreetTypeBytes() { + java.lang.Object ref = streetType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + streetType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int HOUSE_NAME_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private volatile java.lang.Object houseName_ = ""; + /** + * string house_name = 9; + * @return The houseName. + */ + @java.lang.Override + public java.lang.String getHouseName() { + java.lang.Object ref = houseName_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + houseName_ = s; + return s; + } + } + /** + * string house_name = 9; + * @return The bytes for houseName. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getHouseNameBytes() { + java.lang.Object ref = houseName_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + houseName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FLOOR_NO_FIELD_NUMBER = 10; + @SuppressWarnings("serial") + private volatile java.lang.Object floorNo_ = ""; + /** + * string floor_no = 10; + * @return The floorNo. + */ + @java.lang.Override + public java.lang.String getFloorNo() { + java.lang.Object ref = floorNo_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + floorNo_ = s; + return s; + } + } + /** + * string floor_no = 10; + * @return The bytes for floorNo. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFloorNoBytes() { + java.lang.Object ref = floorNo_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + floorNo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DOOR_NO_FIELD_NUMBER = 11; + @SuppressWarnings("serial") + private volatile java.lang.Object doorNo_ = ""; + /** + * string door_no = 11; + * @return The doorNo. + */ + @java.lang.Override + public java.lang.String getDoorNo() { + java.lang.Object ref = doorNo_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + doorNo_ = s; + return s; + } + } + /** + * string door_no = 11; + * @return The bytes for doorNo. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDoorNoBytes() { + java.lang.Object ref = doorNo_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + doorNo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ADDRESS_LINE1_FIELD_NUMBER = 12; + @SuppressWarnings("serial") + private volatile java.lang.Object addressLine1_ = ""; + /** + * string address_line1 = 12; + * @return The addressLine1. + */ + @java.lang.Override + public java.lang.String getAddressLine1() { + java.lang.Object ref = addressLine1_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + addressLine1_ = s; + return s; + } + } + /** + * string address_line1 = 12; + * @return The bytes for addressLine1. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAddressLine1Bytes() { + java.lang.Object ref = addressLine1_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + addressLine1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ADDRESS_LINE2_FIELD_NUMBER = 13; + @SuppressWarnings("serial") + private volatile java.lang.Object addressLine2_ = ""; + /** + * string address_line2 = 13; + * @return The addressLine2. + */ + @java.lang.Override + public java.lang.String getAddressLine2() { + java.lang.Object ref = addressLine2_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + addressLine2_ = s; + return s; + } + } + /** + * string address_line2 = 13; + * @return The bytes for addressLine2. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAddressLine2Bytes() { + java.lang.Object ref = addressLine2_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + addressLine2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ADDRESS_LINE3_FIELD_NUMBER = 14; + @SuppressWarnings("serial") + private volatile java.lang.Object addressLine3_ = ""; + /** + * string address_line3 = 14; + * @return The addressLine3. + */ + @java.lang.Override + public java.lang.String getAddressLine3() { + java.lang.Object ref = addressLine3_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + addressLine3_ = s; + return s; + } + } + /** + * string address_line3 = 14; + * @return The bytes for addressLine3. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAddressLine3Bytes() { + java.lang.Object ref = addressLine3_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + addressLine3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int POST_OFFICE_BOX_FIELD_NUMBER = 15; + @SuppressWarnings("serial") + private volatile java.lang.Object postOfficeBox_ = ""; + /** + * string post_office_box = 15; + * @return The postOfficeBox. + */ + @java.lang.Override + public java.lang.String getPostOfficeBox() { + java.lang.Object ref = postOfficeBox_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + postOfficeBox_ = s; + return s; + } + } + /** + * string post_office_box = 15; + * @return The bytes for postOfficeBox. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPostOfficeBoxBytes() { + java.lang.Object ref = postOfficeBox_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + postOfficeBox_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(countryCode_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, countryCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(state_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, state_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(province_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, province_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(street_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, street_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(houseNo_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, houseNo_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(zipCode_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 6, zipCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(city_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 7, city_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(streetType_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 8, streetType_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(houseName_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 9, houseName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(floorNo_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 10, floorNo_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(doorNo_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 11, doorNo_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(addressLine1_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 12, addressLine1_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(addressLine2_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 13, addressLine2_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(addressLine3_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 14, addressLine3_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(postOfficeBox_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 15, postOfficeBox_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(countryCode_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, countryCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(state_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, state_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(province_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, province_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(street_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, street_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(houseNo_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, houseNo_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(zipCode_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(6, zipCode_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(city_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(7, city_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(streetType_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(8, streetType_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(houseName_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(9, houseName_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(floorNo_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(10, floorNo_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(doorNo_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(11, doorNo_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(addressLine1_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(12, addressLine1_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(addressLine2_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(13, addressLine2_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(addressLine3_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(14, addressLine3_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(postOfficeBox_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(15, postOfficeBox_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress other = (com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress) obj; + + if (!getCountryCode() + .equals(other.getCountryCode())) return false; + if (!getState() + .equals(other.getState())) return false; + if (!getProvince() + .equals(other.getProvince())) return false; + if (!getStreet() + .equals(other.getStreet())) return false; + if (!getHouseNo() + .equals(other.getHouseNo())) return false; + if (!getZipCode() + .equals(other.getZipCode())) return false; + if (!getCity() + .equals(other.getCity())) return false; + if (!getStreetType() + .equals(other.getStreetType())) return false; + if (!getHouseName() + .equals(other.getHouseName())) return false; + if (!getFloorNo() + .equals(other.getFloorNo())) return false; + if (!getDoorNo() + .equals(other.getDoorNo())) return false; + if (!getAddressLine1() + .equals(other.getAddressLine1())) return false; + if (!getAddressLine2() + .equals(other.getAddressLine2())) return false; + if (!getAddressLine3() + .equals(other.getAddressLine3())) return false; + if (!getPostOfficeBox() + .equals(other.getPostOfficeBox())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + COUNTRY_CODE_FIELD_NUMBER; + hash = (53 * hash) + getCountryCode().hashCode(); + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + getState().hashCode(); + hash = (37 * hash) + PROVINCE_FIELD_NUMBER; + hash = (53 * hash) + getProvince().hashCode(); + hash = (37 * hash) + STREET_FIELD_NUMBER; + hash = (53 * hash) + getStreet().hashCode(); + hash = (37 * hash) + HOUSE_NO_FIELD_NUMBER; + hash = (53 * hash) + getHouseNo().hashCode(); + hash = (37 * hash) + ZIP_CODE_FIELD_NUMBER; + hash = (53 * hash) + getZipCode().hashCode(); + hash = (37 * hash) + CITY_FIELD_NUMBER; + hash = (53 * hash) + getCity().hashCode(); + hash = (37 * hash) + STREET_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getStreetType().hashCode(); + hash = (37 * hash) + HOUSE_NAME_FIELD_NUMBER; + hash = (53 * hash) + getHouseName().hashCode(); + hash = (37 * hash) + FLOOR_NO_FIELD_NUMBER; + hash = (53 * hash) + getFloorNo().hashCode(); + hash = (37 * hash) + DOOR_NO_FIELD_NUMBER; + hash = (53 * hash) + getDoorNo().hashCode(); + hash = (37 * hash) + ADDRESS_LINE1_FIELD_NUMBER; + hash = (53 * hash) + getAddressLine1().hashCode(); + hash = (37 * hash) + ADDRESS_LINE2_FIELD_NUMBER; + hash = (53 * hash) + getAddressLine2().hashCode(); + hash = (37 * hash) + ADDRESS_LINE3_FIELD_NUMBER; + hash = (53 * hash) + getAddressLine3().hashCode(); + hash = (37 * hash) + POST_OFFICE_BOX_FIELD_NUMBER; + hash = (53 * hash) + getPostOfficeBox().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.CPDUserAddress} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.CPDUserAddress) + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddressOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserAddress_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserAddress_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.class, com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + countryCode_ = ""; + state_ = ""; + province_ = ""; + street_ = ""; + houseNo_ = ""; + zipCode_ = ""; + city_ = ""; + streetType_ = ""; + houseName_ = ""; + floorNo_ = ""; + doorNo_ = ""; + addressLine1_ = ""; + addressLine2_ = ""; + addressLine3_ = ""; + postOfficeBox_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserAddress_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress build() { + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress result = new com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.countryCode_ = countryCode_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.province_ = province_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.street_ = street_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.houseNo_ = houseNo_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.zipCode_ = zipCode_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.city_ = city_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.streetType_ = streetType_; + } + if (((from_bitField0_ & 0x00000100) != 0)) { + result.houseName_ = houseName_; + } + if (((from_bitField0_ & 0x00000200) != 0)) { + result.floorNo_ = floorNo_; + } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.doorNo_ = doorNo_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.addressLine1_ = addressLine1_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.addressLine2_ = addressLine2_; + } + if (((from_bitField0_ & 0x00002000) != 0)) { + result.addressLine3_ = addressLine3_; + } + if (((from_bitField0_ & 0x00004000) != 0)) { + result.postOfficeBox_ = postOfficeBox_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress.getDefaultInstance()) return this; + if (!other.getCountryCode().isEmpty()) { + countryCode_ = other.countryCode_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getState().isEmpty()) { + state_ = other.state_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getProvince().isEmpty()) { + province_ = other.province_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getStreet().isEmpty()) { + street_ = other.street_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.getHouseNo().isEmpty()) { + houseNo_ = other.houseNo_; + bitField0_ |= 0x00000010; + onChanged(); + } + if (!other.getZipCode().isEmpty()) { + zipCode_ = other.zipCode_; + bitField0_ |= 0x00000020; + onChanged(); + } + if (!other.getCity().isEmpty()) { + city_ = other.city_; + bitField0_ |= 0x00000040; + onChanged(); + } + if (!other.getStreetType().isEmpty()) { + streetType_ = other.streetType_; + bitField0_ |= 0x00000080; + onChanged(); + } + if (!other.getHouseName().isEmpty()) { + houseName_ = other.houseName_; + bitField0_ |= 0x00000100; + onChanged(); + } + if (!other.getFloorNo().isEmpty()) { + floorNo_ = other.floorNo_; + bitField0_ |= 0x00000200; + onChanged(); + } + if (!other.getDoorNo().isEmpty()) { + doorNo_ = other.doorNo_; + bitField0_ |= 0x00000400; + onChanged(); + } + if (!other.getAddressLine1().isEmpty()) { + addressLine1_ = other.addressLine1_; + bitField0_ |= 0x00000800; + onChanged(); + } + if (!other.getAddressLine2().isEmpty()) { + addressLine2_ = other.addressLine2_; + bitField0_ |= 0x00001000; + onChanged(); + } + if (!other.getAddressLine3().isEmpty()) { + addressLine3_ = other.addressLine3_; + bitField0_ |= 0x00002000; + onChanged(); + } + if (!other.getPostOfficeBox().isEmpty()) { + postOfficeBox_ = other.postOfficeBox_; + bitField0_ |= 0x00004000; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + countryCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + state_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + province_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + street_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: { + houseNo_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + zipCode_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + city_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + streetType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 66 + case 74: { + houseName_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000100; + break; + } // case 74 + case 82: { + floorNo_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000200; + break; + } // case 82 + case 90: { + doorNo_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000400; + break; + } // case 90 + case 98: { + addressLine1_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000800; + break; + } // case 98 + case 106: { + addressLine2_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00001000; + break; + } // case 106 + case 114: { + addressLine3_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00002000; + break; + } // case 114 + case 122: { + postOfficeBox_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00004000; + break; + } // case 122 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object countryCode_ = ""; + /** + * string country_code = 1; + * @return The countryCode. + */ + public java.lang.String getCountryCode() { + java.lang.Object ref = countryCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + countryCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string country_code = 1; + * @return The bytes for countryCode. + */ + public com.google.protobuf.ByteString + getCountryCodeBytes() { + java.lang.Object ref = countryCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + countryCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string country_code = 1; + * @param value The countryCode to set. + * @return This builder for chaining. + */ + public Builder setCountryCode( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + countryCode_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string country_code = 1; + * @return This builder for chaining. + */ + public Builder clearCountryCode() { + countryCode_ = getDefaultInstance().getCountryCode(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string country_code = 1; + * @param value The bytes for countryCode to set. + * @return This builder for chaining. + */ + public Builder setCountryCodeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + countryCode_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object state_ = ""; + /** + * string state = 2; + * @return The state. + */ + public java.lang.String getState() { + java.lang.Object ref = state_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + state_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string state = 2; + * @return The bytes for state. + */ + public com.google.protobuf.ByteString + getStateBytes() { + java.lang.Object ref = state_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + state_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string state = 2; + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + state_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string state = 2; + * @return This builder for chaining. + */ + public Builder clearState() { + state_ = getDefaultInstance().getState(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string state = 2; + * @param value The bytes for state to set. + * @return This builder for chaining. + */ + public Builder setStateBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + state_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object province_ = ""; + /** + * string province = 3; + * @return The province. + */ + public java.lang.String getProvince() { + java.lang.Object ref = province_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + province_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string province = 3; + * @return The bytes for province. + */ + public com.google.protobuf.ByteString + getProvinceBytes() { + java.lang.Object ref = province_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + province_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string province = 3; + * @param value The province to set. + * @return This builder for chaining. + */ + public Builder setProvince( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + province_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string province = 3; + * @return This builder for chaining. + */ + public Builder clearProvince() { + province_ = getDefaultInstance().getProvince(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string province = 3; + * @param value The bytes for province to set. + * @return This builder for chaining. + */ + public Builder setProvinceBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + province_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object street_ = ""; + /** + * string street = 4; + * @return The street. + */ + public java.lang.String getStreet() { + java.lang.Object ref = street_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + street_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string street = 4; + * @return The bytes for street. + */ + public com.google.protobuf.ByteString + getStreetBytes() { + java.lang.Object ref = street_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + street_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string street = 4; + * @param value The street to set. + * @return This builder for chaining. + */ + public Builder setStreet( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + street_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string street = 4; + * @return This builder for chaining. + */ + public Builder clearStreet() { + street_ = getDefaultInstance().getStreet(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string street = 4; + * @param value The bytes for street to set. + * @return This builder for chaining. + */ + public Builder setStreetBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + street_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private java.lang.Object houseNo_ = ""; + /** + * string house_no = 5; + * @return The houseNo. + */ + public java.lang.String getHouseNo() { + java.lang.Object ref = houseNo_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + houseNo_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string house_no = 5; + * @return The bytes for houseNo. + */ + public com.google.protobuf.ByteString + getHouseNoBytes() { + java.lang.Object ref = houseNo_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + houseNo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string house_no = 5; + * @param value The houseNo to set. + * @return This builder for chaining. + */ + public Builder setHouseNo( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + houseNo_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * string house_no = 5; + * @return This builder for chaining. + */ + public Builder clearHouseNo() { + houseNo_ = getDefaultInstance().getHouseNo(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + /** + * string house_no = 5; + * @param value The bytes for houseNo to set. + * @return This builder for chaining. + */ + public Builder setHouseNoBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + houseNo_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + + private java.lang.Object zipCode_ = ""; + /** + * string zip_code = 6; + * @return The zipCode. + */ + public java.lang.String getZipCode() { + java.lang.Object ref = zipCode_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + zipCode_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string zip_code = 6; + * @return The bytes for zipCode. + */ + public com.google.protobuf.ByteString + getZipCodeBytes() { + java.lang.Object ref = zipCode_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + zipCode_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string zip_code = 6; + * @param value The zipCode to set. + * @return This builder for chaining. + */ + public Builder setZipCode( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + zipCode_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string zip_code = 6; + * @return This builder for chaining. + */ + public Builder clearZipCode() { + zipCode_ = getDefaultInstance().getZipCode(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string zip_code = 6; + * @param value The bytes for zipCode to set. + * @return This builder for chaining. + */ + public Builder setZipCodeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + zipCode_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + private java.lang.Object city_ = ""; + /** + * string city = 7; + * @return The city. + */ + public java.lang.String getCity() { + java.lang.Object ref = city_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + city_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string city = 7; + * @return The bytes for city. + */ + public com.google.protobuf.ByteString + getCityBytes() { + java.lang.Object ref = city_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + city_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string city = 7; + * @param value The city to set. + * @return This builder for chaining. + */ + public Builder setCity( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + city_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * string city = 7; + * @return This builder for chaining. + */ + public Builder clearCity() { + city_ = getDefaultInstance().getCity(); + bitField0_ = (bitField0_ & ~0x00000040); + onChanged(); + return this; + } + /** + * string city = 7; + * @param value The bytes for city to set. + * @return This builder for chaining. + */ + public Builder setCityBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + city_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + + private java.lang.Object streetType_ = ""; + /** + * string street_type = 8; + * @return The streetType. + */ + public java.lang.String getStreetType() { + java.lang.Object ref = streetType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + streetType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string street_type = 8; + * @return The bytes for streetType. + */ + public com.google.protobuf.ByteString + getStreetTypeBytes() { + java.lang.Object ref = streetType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + streetType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string street_type = 8; + * @param value The streetType to set. + * @return This builder for chaining. + */ + public Builder setStreetType( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + streetType_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * string street_type = 8; + * @return This builder for chaining. + */ + public Builder clearStreetType() { + streetType_ = getDefaultInstance().getStreetType(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + /** + * string street_type = 8; + * @param value The bytes for streetType to set. + * @return This builder for chaining. + */ + public Builder setStreetTypeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + streetType_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + private java.lang.Object houseName_ = ""; + /** + * string house_name = 9; + * @return The houseName. + */ + public java.lang.String getHouseName() { + java.lang.Object ref = houseName_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + houseName_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string house_name = 9; + * @return The bytes for houseName. + */ + public com.google.protobuf.ByteString + getHouseNameBytes() { + java.lang.Object ref = houseName_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + houseName_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string house_name = 9; + * @param value The houseName to set. + * @return This builder for chaining. + */ + public Builder setHouseName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + houseName_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + /** + * string house_name = 9; + * @return This builder for chaining. + */ + public Builder clearHouseName() { + houseName_ = getDefaultInstance().getHouseName(); + bitField0_ = (bitField0_ & ~0x00000100); + onChanged(); + return this; + } + /** + * string house_name = 9; + * @param value The bytes for houseName to set. + * @return This builder for chaining. + */ + public Builder setHouseNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + houseName_ = value; + bitField0_ |= 0x00000100; + onChanged(); + return this; + } + + private java.lang.Object floorNo_ = ""; + /** + * string floor_no = 10; + * @return The floorNo. + */ + public java.lang.String getFloorNo() { + java.lang.Object ref = floorNo_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + floorNo_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string floor_no = 10; + * @return The bytes for floorNo. + */ + public com.google.protobuf.ByteString + getFloorNoBytes() { + java.lang.Object ref = floorNo_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + floorNo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string floor_no = 10; + * @param value The floorNo to set. + * @return This builder for chaining. + */ + public Builder setFloorNo( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + floorNo_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + /** + * string floor_no = 10; + * @return This builder for chaining. + */ + public Builder clearFloorNo() { + floorNo_ = getDefaultInstance().getFloorNo(); + bitField0_ = (bitField0_ & ~0x00000200); + onChanged(); + return this; + } + /** + * string floor_no = 10; + * @param value The bytes for floorNo to set. + * @return This builder for chaining. + */ + public Builder setFloorNoBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + floorNo_ = value; + bitField0_ |= 0x00000200; + onChanged(); + return this; + } + + private java.lang.Object doorNo_ = ""; + /** + * string door_no = 11; + * @return The doorNo. + */ + public java.lang.String getDoorNo() { + java.lang.Object ref = doorNo_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + doorNo_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string door_no = 11; + * @return The bytes for doorNo. + */ + public com.google.protobuf.ByteString + getDoorNoBytes() { + java.lang.Object ref = doorNo_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + doorNo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string door_no = 11; + * @param value The doorNo to set. + * @return This builder for chaining. + */ + public Builder setDoorNo( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + doorNo_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * string door_no = 11; + * @return This builder for chaining. + */ + public Builder clearDoorNo() { + doorNo_ = getDefaultInstance().getDoorNo(); + bitField0_ = (bitField0_ & ~0x00000400); + onChanged(); + return this; + } + /** + * string door_no = 11; + * @param value The bytes for doorNo to set. + * @return This builder for chaining. + */ + public Builder setDoorNoBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + doorNo_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + + private java.lang.Object addressLine1_ = ""; + /** + * string address_line1 = 12; + * @return The addressLine1. + */ + public java.lang.String getAddressLine1() { + java.lang.Object ref = addressLine1_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + addressLine1_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string address_line1 = 12; + * @return The bytes for addressLine1. + */ + public com.google.protobuf.ByteString + getAddressLine1Bytes() { + java.lang.Object ref = addressLine1_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + addressLine1_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string address_line1 = 12; + * @param value The addressLine1 to set. + * @return This builder for chaining. + */ + public Builder setAddressLine1( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + addressLine1_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * string address_line1 = 12; + * @return This builder for chaining. + */ + public Builder clearAddressLine1() { + addressLine1_ = getDefaultInstance().getAddressLine1(); + bitField0_ = (bitField0_ & ~0x00000800); + onChanged(); + return this; + } + /** + * string address_line1 = 12; + * @param value The bytes for addressLine1 to set. + * @return This builder for chaining. + */ + public Builder setAddressLine1Bytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + addressLine1_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + + private java.lang.Object addressLine2_ = ""; + /** + * string address_line2 = 13; + * @return The addressLine2. + */ + public java.lang.String getAddressLine2() { + java.lang.Object ref = addressLine2_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + addressLine2_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string address_line2 = 13; + * @return The bytes for addressLine2. + */ + public com.google.protobuf.ByteString + getAddressLine2Bytes() { + java.lang.Object ref = addressLine2_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + addressLine2_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string address_line2 = 13; + * @param value The addressLine2 to set. + * @return This builder for chaining. + */ + public Builder setAddressLine2( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + addressLine2_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * string address_line2 = 13; + * @return This builder for chaining. + */ + public Builder clearAddressLine2() { + addressLine2_ = getDefaultInstance().getAddressLine2(); + bitField0_ = (bitField0_ & ~0x00001000); + onChanged(); + return this; + } + /** + * string address_line2 = 13; + * @param value The bytes for addressLine2 to set. + * @return This builder for chaining. + */ + public Builder setAddressLine2Bytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + addressLine2_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + + private java.lang.Object addressLine3_ = ""; + /** + * string address_line3 = 14; + * @return The addressLine3. + */ + public java.lang.String getAddressLine3() { + java.lang.Object ref = addressLine3_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + addressLine3_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string address_line3 = 14; + * @return The bytes for addressLine3. + */ + public com.google.protobuf.ByteString + getAddressLine3Bytes() { + java.lang.Object ref = addressLine3_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + addressLine3_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string address_line3 = 14; + * @param value The addressLine3 to set. + * @return This builder for chaining. + */ + public Builder setAddressLine3( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + addressLine3_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + /** + * string address_line3 = 14; + * @return This builder for chaining. + */ + public Builder clearAddressLine3() { + addressLine3_ = getDefaultInstance().getAddressLine3(); + bitField0_ = (bitField0_ & ~0x00002000); + onChanged(); + return this; + } + /** + * string address_line3 = 14; + * @param value The bytes for addressLine3 to set. + * @return This builder for chaining. + */ + public Builder setAddressLine3Bytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + addressLine3_ = value; + bitField0_ |= 0x00002000; + onChanged(); + return this; + } + + private java.lang.Object postOfficeBox_ = ""; + /** + * string post_office_box = 15; + * @return The postOfficeBox. + */ + public java.lang.String getPostOfficeBox() { + java.lang.Object ref = postOfficeBox_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + postOfficeBox_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string post_office_box = 15; + * @return The bytes for postOfficeBox. + */ + public com.google.protobuf.ByteString + getPostOfficeBoxBytes() { + java.lang.Object ref = postOfficeBox_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + postOfficeBox_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string post_office_box = 15; + * @param value The postOfficeBox to set. + * @return This builder for chaining. + */ + public Builder setPostOfficeBox( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + postOfficeBox_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + /** + * string post_office_box = 15; + * @return This builder for chaining. + */ + public Builder clearPostOfficeBox() { + postOfficeBox_ = getDefaultInstance().getPostOfficeBox(); + bitField0_ = (bitField0_ & ~0x00004000); + onChanged(); + return this; + } + /** + * string post_office_box = 15; + * @param value The bytes for postOfficeBox to set. + * @return This builder for chaining. + */ + public Builder setPostOfficeBoxBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + postOfficeBox_ = value; + bitField0_ |= 0x00004000; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.CPDUserAddress) + } + + // @@protoc_insertion_point(class_scope:proto.CPDUserAddress) + private static final com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CPDUserAddress parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserAddress getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface CPDUserCommunicationPreferenceOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.CPDUserCommunicationPreference) + com.google.protobuf.MessageOrBuilder { + + /** + * bool contacted_by_phone = 1; + * @return The contactedByPhone. + */ + boolean getContactedByPhone(); + + /** + * bool contacted_by_letter = 2; + * @return The contactedByLetter. + */ + boolean getContactedByLetter(); + + /** + * bool contacted_by_email = 3; + * @return The contactedByEmail. + */ + boolean getContactedByEmail(); + + /** + * bool contacted_by_sms = 4; + * @return The contactedBySms. + */ + boolean getContactedBySms(); + } + /** + * Protobuf type {@code proto.CPDUserCommunicationPreference} + */ + public static final class CPDUserCommunicationPreference extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.CPDUserCommunicationPreference) + CPDUserCommunicationPreferenceOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CPDUserCommunicationPreference.class.getName()); + } + // Use CPDUserCommunicationPreference.newBuilder() to construct. + private CPDUserCommunicationPreference(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private CPDUserCommunicationPreference() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserCommunicationPreference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserCommunicationPreference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.class, com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.Builder.class); + } + + public static final int CONTACTED_BY_PHONE_FIELD_NUMBER = 1; + private boolean contactedByPhone_ = false; + /** + * bool contacted_by_phone = 1; + * @return The contactedByPhone. + */ + @java.lang.Override + public boolean getContactedByPhone() { + return contactedByPhone_; + } + + public static final int CONTACTED_BY_LETTER_FIELD_NUMBER = 2; + private boolean contactedByLetter_ = false; + /** + * bool contacted_by_letter = 2; + * @return The contactedByLetter. + */ + @java.lang.Override + public boolean getContactedByLetter() { + return contactedByLetter_; + } + + public static final int CONTACTED_BY_EMAIL_FIELD_NUMBER = 3; + private boolean contactedByEmail_ = false; + /** + * bool contacted_by_email = 3; + * @return The contactedByEmail. + */ + @java.lang.Override + public boolean getContactedByEmail() { + return contactedByEmail_; + } + + public static final int CONTACTED_BY_SMS_FIELD_NUMBER = 4; + private boolean contactedBySms_ = false; + /** + * bool contacted_by_sms = 4; + * @return The contactedBySms. + */ + @java.lang.Override + public boolean getContactedBySms() { + return contactedBySms_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (contactedByPhone_ != false) { + output.writeBool(1, contactedByPhone_); + } + if (contactedByLetter_ != false) { + output.writeBool(2, contactedByLetter_); + } + if (contactedByEmail_ != false) { + output.writeBool(3, contactedByEmail_); + } + if (contactedBySms_ != false) { + output.writeBool(4, contactedBySms_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (contactedByPhone_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, contactedByPhone_); + } + if (contactedByLetter_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, contactedByLetter_); + } + if (contactedByEmail_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, contactedByEmail_); + } + if (contactedBySms_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(4, contactedBySms_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference other = (com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference) obj; + + if (getContactedByPhone() + != other.getContactedByPhone()) return false; + if (getContactedByLetter() + != other.getContactedByLetter()) return false; + if (getContactedByEmail() + != other.getContactedByEmail()) return false; + if (getContactedBySms() + != other.getContactedBySms()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CONTACTED_BY_PHONE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getContactedByPhone()); + hash = (37 * hash) + CONTACTED_BY_LETTER_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getContactedByLetter()); + hash = (37 * hash) + CONTACTED_BY_EMAIL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getContactedByEmail()); + hash = (37 * hash) + CONTACTED_BY_SMS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getContactedBySms()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.CPDUserCommunicationPreference} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.CPDUserCommunicationPreference) + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreferenceOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserCommunicationPreference_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserCommunicationPreference_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.class, com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + contactedByPhone_ = false; + contactedByLetter_ = false; + contactedByEmail_ = false; + contactedBySms_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_CPDUserCommunicationPreference_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference build() { + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference result = new com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.contactedByPhone_ = contactedByPhone_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.contactedByLetter_ = contactedByLetter_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.contactedByEmail_ = contactedByEmail_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.contactedBySms_ = contactedBySms_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference.getDefaultInstance()) return this; + if (other.getContactedByPhone() != false) { + setContactedByPhone(other.getContactedByPhone()); + } + if (other.getContactedByLetter() != false) { + setContactedByLetter(other.getContactedByLetter()); + } + if (other.getContactedByEmail() != false) { + setContactedByEmail(other.getContactedByEmail()); + } + if (other.getContactedBySms() != false) { + setContactedBySms(other.getContactedBySms()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + contactedByPhone_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + contactedByLetter_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + contactedByEmail_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + contactedBySms_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } // case 32 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean contactedByPhone_ ; + /** + * bool contacted_by_phone = 1; + * @return The contactedByPhone. + */ + @java.lang.Override + public boolean getContactedByPhone() { + return contactedByPhone_; + } + /** + * bool contacted_by_phone = 1; + * @param value The contactedByPhone to set. + * @return This builder for chaining. + */ + public Builder setContactedByPhone(boolean value) { + + contactedByPhone_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool contacted_by_phone = 1; + * @return This builder for chaining. + */ + public Builder clearContactedByPhone() { + bitField0_ = (bitField0_ & ~0x00000001); + contactedByPhone_ = false; + onChanged(); + return this; + } + + private boolean contactedByLetter_ ; + /** + * bool contacted_by_letter = 2; + * @return The contactedByLetter. + */ + @java.lang.Override + public boolean getContactedByLetter() { + return contactedByLetter_; + } + /** + * bool contacted_by_letter = 2; + * @param value The contactedByLetter to set. + * @return This builder for chaining. + */ + public Builder setContactedByLetter(boolean value) { + + contactedByLetter_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bool contacted_by_letter = 2; + * @return This builder for chaining. + */ + public Builder clearContactedByLetter() { + bitField0_ = (bitField0_ & ~0x00000002); + contactedByLetter_ = false; + onChanged(); + return this; + } + + private boolean contactedByEmail_ ; + /** + * bool contacted_by_email = 3; + * @return The contactedByEmail. + */ + @java.lang.Override + public boolean getContactedByEmail() { + return contactedByEmail_; + } + /** + * bool contacted_by_email = 3; + * @param value The contactedByEmail to set. + * @return This builder for chaining. + */ + public Builder setContactedByEmail(boolean value) { + + contactedByEmail_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bool contacted_by_email = 3; + * @return This builder for chaining. + */ + public Builder clearContactedByEmail() { + bitField0_ = (bitField0_ & ~0x00000004); + contactedByEmail_ = false; + onChanged(); + return this; + } + + private boolean contactedBySms_ ; + /** + * bool contacted_by_sms = 4; + * @return The contactedBySms. + */ + @java.lang.Override + public boolean getContactedBySms() { + return contactedBySms_; + } + /** + * bool contacted_by_sms = 4; + * @param value The contactedBySms to set. + * @return This builder for chaining. + */ + public Builder setContactedBySms(boolean value) { + + contactedBySms_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * bool contacted_by_sms = 4; + * @return This builder for chaining. + */ + public Builder clearContactedBySms() { + bitField0_ = (bitField0_ & ~0x00000008); + contactedBySms_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.CPDUserCommunicationPreference) + } + + // @@protoc_insertion_point(class_scope:proto.CPDUserCommunicationPreference) + private static final com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CPDUserCommunicationPreference parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.CPDUserCommunicationPreference getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeUserPictureUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeUserPictureUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgeUserPictureUpdate} + */ + public static final class AcknowledgeUserPictureUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeUserPictureUpdate) + AcknowledgeUserPictureUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeUserPictureUpdate.class.getName()); + } + // Use AcknowledgeUserPictureUpdate.newBuilder() to construct. + private AcknowledgeUserPictureUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeUserPictureUpdate() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPictureUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPictureUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate other = (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeUserPictureUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeUserPictureUpdate) + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPictureUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPictureUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPictureUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate build() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate result = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeUserPictureUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeUserPictureUpdate) + private static final com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeUserPictureUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPictureUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UserPictureUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UserPictureUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + *
+     * ciam ID
+     * 
+ * + * string ciam_id = 5; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + *
+     * ciam ID
+     * 
+ * + * string ciam_id = 5; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + *
+     * when was the event emitted? This is the time of the update
+     * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + long getEmitTimestamp(); + + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @return The emitTimestampInMs. + */ + long getEmitTimestampInMs(); + + /** + *
+     * this timestamp indicates when a message was read from the eventhub
+     * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @return The eventhubReceiveTimestamp. + */ + long getEventhubReceiveTimestamp(); + + /** + *
+     * this timestamp indicates when a message was processed in the app twin
+     * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @return The apptwinReceiveTimestamp. + */ + long getApptwinReceiveTimestamp(); + } + /** + *
+   * Sent after a picture upload/change
+   * 
+ * + * Protobuf type {@code proto.UserPictureUpdate} + */ + public static final class UserPictureUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UserPictureUpdate) + UserPictureUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UserPictureUpdate.class.getName()); + } + // Use UserPictureUpdate.newBuilder() to construct. + private UserPictureUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UserPictureUpdate() { + ciamId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPictureUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPictureUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.class, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int CIAM_ID_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + *
+     * ciam ID
+     * 
+ * + * string ciam_id = 5; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + *
+     * ciam ID
+     * 
+ * + * string ciam_id = 5; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EMIT_TIMESTAMP_FIELD_NUMBER = 2; + private long emitTimestamp_ = 0L; + /** + *
+     * when was the event emitted? This is the time of the update
+     * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + + public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 6; + private long emitTimestampInMs_ = 0L; + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + + public static final int EVENTHUB_RECEIVE_TIMESTAMP_FIELD_NUMBER = 3; + private long eventhubReceiveTimestamp_ = 0L; + /** + *
+     * this timestamp indicates when a message was read from the eventhub
+     * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @return The eventhubReceiveTimestamp. + */ + @java.lang.Override + public long getEventhubReceiveTimestamp() { + return eventhubReceiveTimestamp_; + } + + public static final int APPTWIN_RECEIVE_TIMESTAMP_FIELD_NUMBER = 4; + private long apptwinReceiveTimestamp_ = 0L; + /** + *
+     * this timestamp indicates when a message was processed in the app twin
+     * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @return The apptwinReceiveTimestamp. + */ + @java.lang.Override + public long getApptwinReceiveTimestamp() { + return apptwinReceiveTimestamp_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + if (emitTimestamp_ != 0L) { + output.writeInt64(2, emitTimestamp_); + } + if (eventhubReceiveTimestamp_ != 0L) { + output.writeInt64(3, eventhubReceiveTimestamp_); + } + if (apptwinReceiveTimestamp_ != 0L) { + output.writeInt64(4, apptwinReceiveTimestamp_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, ciamId_); + } + if (emitTimestampInMs_ != 0L) { + output.writeInt64(6, emitTimestampInMs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + if (emitTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, emitTimestamp_); + } + if (eventhubReceiveTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, eventhubReceiveTimestamp_); + } + if (apptwinReceiveTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(4, apptwinReceiveTimestamp_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, ciamId_); + } + if (emitTimestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(6, emitTimestampInMs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate other = (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (getEmitTimestamp() + != other.getEmitTimestamp()) return false; + if (getEmitTimestampInMs() + != other.getEmitTimestampInMs()) return false; + if (getEventhubReceiveTimestamp() + != other.getEventhubReceiveTimestamp()) return false; + if (getApptwinReceiveTimestamp() + != other.getApptwinReceiveTimestamp()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + EMIT_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestamp()); + hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestampInMs()); + hash = (37 * hash) + EVENTHUB_RECEIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEventhubReceiveTimestamp()); + hash = (37 * hash) + APPTWIN_RECEIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getApptwinReceiveTimestamp()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sent after a picture upload/change
+     * 
+ * + * Protobuf type {@code proto.UserPictureUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UserPictureUpdate) + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPictureUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPictureUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.class, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + ciamId_ = ""; + emitTimestamp_ = 0L; + emitTimestampInMs_ = 0L; + eventhubReceiveTimestamp_ = 0L; + apptwinReceiveTimestamp_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPictureUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate build() { + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate result = new com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.emitTimestamp_ = emitTimestamp_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.emitTimestampInMs_ = emitTimestampInMs_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.eventhubReceiveTimestamp_ = eventhubReceiveTimestamp_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.apptwinReceiveTimestamp_ = apptwinReceiveTimestamp_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getEmitTimestamp() != 0L) { + setEmitTimestamp(other.getEmitTimestamp()); + } + if (other.getEmitTimestampInMs() != 0L) { + setEmitTimestampInMs(other.getEmitTimestampInMs()); + } + if (other.getEventhubReceiveTimestamp() != 0L) { + setEventhubReceiveTimestamp(other.getEventhubReceiveTimestamp()); + } + if (other.getApptwinReceiveTimestamp() != 0L) { + setApptwinReceiveTimestamp(other.getApptwinReceiveTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + emitTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 16 + case 24: { + eventhubReceiveTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 24 + case 32: { + apptwinReceiveTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000020; + break; + } // case 32 + case 42: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 42 + case 48: { + emitTimestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 48 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long emitTimestamp_ ; + /** + *
+       * when was the event emitted? This is the time of the update
+       * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + /** + *
+       * when was the event emitted? This is the time of the update
+       * 
+ * + * int64 emit_timestamp = 2; + * @param value The emitTimestamp to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestamp(long value) { + + emitTimestamp_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * when was the event emitted? This is the time of the update
+       * 
+ * + * int64 emit_timestamp = 2; + * @return This builder for chaining. + */ + public Builder clearEmitTimestamp() { + bitField0_ = (bitField0_ & ~0x00000004); + emitTimestamp_ = 0L; + onChanged(); + return this; + } + + private long emitTimestampInMs_ ; + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @param value The emitTimestampInMs to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestampInMs(long value) { + + emitTimestampInMs_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @return This builder for chaining. + */ + public Builder clearEmitTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000008); + emitTimestampInMs_ = 0L; + onChanged(); + return this; + } + + private long eventhubReceiveTimestamp_ ; + /** + *
+       * this timestamp indicates when a message was read from the eventhub
+       * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @return The eventhubReceiveTimestamp. + */ + @java.lang.Override + public long getEventhubReceiveTimestamp() { + return eventhubReceiveTimestamp_; + } + /** + *
+       * this timestamp indicates when a message was read from the eventhub
+       * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @param value The eventhubReceiveTimestamp to set. + * @return This builder for chaining. + */ + public Builder setEventhubReceiveTimestamp(long value) { + + eventhubReceiveTimestamp_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * this timestamp indicates when a message was read from the eventhub
+       * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @return This builder for chaining. + */ + public Builder clearEventhubReceiveTimestamp() { + bitField0_ = (bitField0_ & ~0x00000010); + eventhubReceiveTimestamp_ = 0L; + onChanged(); + return this; + } + + private long apptwinReceiveTimestamp_ ; + /** + *
+       * this timestamp indicates when a message was processed in the app twin
+       * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @return The apptwinReceiveTimestamp. + */ + @java.lang.Override + public long getApptwinReceiveTimestamp() { + return apptwinReceiveTimestamp_; + } + /** + *
+       * this timestamp indicates when a message was processed in the app twin
+       * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @param value The apptwinReceiveTimestamp to set. + * @return This builder for chaining. + */ + public Builder setApptwinReceiveTimestamp(long value) { + + apptwinReceiveTimestamp_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * this timestamp indicates when a message was processed in the app twin
+       * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @return This builder for chaining. + */ + public Builder clearApptwinReceiveTimestamp() { + bitField0_ = (bitField0_ & ~0x00000020); + apptwinReceiveTimestamp_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.UserPictureUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.UserPictureUpdate) + private static final com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserPictureUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeUserPINUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeUserPINUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgeUserPINUpdate} + */ + public static final class AcknowledgeUserPINUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeUserPINUpdate) + AcknowledgeUserPINUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeUserPINUpdate.class.getName()); + } + // Use AcknowledgeUserPINUpdate.newBuilder() to construct. + private AcknowledgeUserPINUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeUserPINUpdate() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPINUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPINUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate other = (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeUserPINUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeUserPINUpdate) + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPINUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPINUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUserPINUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate build() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate result = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeUserPINUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeUserPINUpdate) + private static final com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeUserPINUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUserPINUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UserPINUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UserPINUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + *
+     * ciam ID
+     * 
+ * + * string ciam_id = 5; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + *
+     * ciam ID
+     * 
+ * + * string ciam_id = 5; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + *
+     * when was the event emitted? This is the time of the update
+     * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + long getEmitTimestamp(); + + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @return The emitTimestampInMs. + */ + long getEmitTimestampInMs(); + + /** + *
+     * this timestamp indicates when a message was read from the eventhub
+     * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @return The eventhubReceiveTimestamp. + */ + long getEventhubReceiveTimestamp(); + + /** + *
+     * this timestamp indicates when a message was processed in the app twin
+     * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @return The apptwinReceiveTimestamp. + */ + long getApptwinReceiveTimestamp(); + } + /** + *
+   * Sent after a PIN update
+   * 
+ * + * Protobuf type {@code proto.UserPINUpdate} + */ + public static final class UserPINUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UserPINUpdate) + UserPINUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UserPINUpdate.class.getName()); + } + // Use UserPINUpdate.newBuilder() to construct. + private UserPINUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UserPINUpdate() { + ciamId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPINUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPINUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.class, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int CIAM_ID_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + *
+     * ciam ID
+     * 
+ * + * string ciam_id = 5; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + *
+     * ciam ID
+     * 
+ * + * string ciam_id = 5; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EMIT_TIMESTAMP_FIELD_NUMBER = 2; + private long emitTimestamp_ = 0L; + /** + *
+     * when was the event emitted? This is the time of the update
+     * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + + public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 6; + private long emitTimestampInMs_ = 0L; + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + + public static final int EVENTHUB_RECEIVE_TIMESTAMP_FIELD_NUMBER = 3; + private long eventhubReceiveTimestamp_ = 0L; + /** + *
+     * this timestamp indicates when a message was read from the eventhub
+     * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @return The eventhubReceiveTimestamp. + */ + @java.lang.Override + public long getEventhubReceiveTimestamp() { + return eventhubReceiveTimestamp_; + } + + public static final int APPTWIN_RECEIVE_TIMESTAMP_FIELD_NUMBER = 4; + private long apptwinReceiveTimestamp_ = 0L; + /** + *
+     * this timestamp indicates when a message was processed in the app twin
+     * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @return The apptwinReceiveTimestamp. + */ + @java.lang.Override + public long getApptwinReceiveTimestamp() { + return apptwinReceiveTimestamp_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + if (emitTimestamp_ != 0L) { + output.writeInt64(2, emitTimestamp_); + } + if (eventhubReceiveTimestamp_ != 0L) { + output.writeInt64(3, eventhubReceiveTimestamp_); + } + if (apptwinReceiveTimestamp_ != 0L) { + output.writeInt64(4, apptwinReceiveTimestamp_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, ciamId_); + } + if (emitTimestampInMs_ != 0L) { + output.writeInt64(6, emitTimestampInMs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + if (emitTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, emitTimestamp_); + } + if (eventhubReceiveTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, eventhubReceiveTimestamp_); + } + if (apptwinReceiveTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(4, apptwinReceiveTimestamp_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, ciamId_); + } + if (emitTimestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(6, emitTimestampInMs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate other = (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (getEmitTimestamp() + != other.getEmitTimestamp()) return false; + if (getEmitTimestampInMs() + != other.getEmitTimestampInMs()) return false; + if (getEventhubReceiveTimestamp() + != other.getEventhubReceiveTimestamp()) return false; + if (getApptwinReceiveTimestamp() + != other.getApptwinReceiveTimestamp()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + EMIT_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestamp()); + hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestampInMs()); + hash = (37 * hash) + EVENTHUB_RECEIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEventhubReceiveTimestamp()); + hash = (37 * hash) + APPTWIN_RECEIVE_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getApptwinReceiveTimestamp()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sent after a PIN update
+     * 
+ * + * Protobuf type {@code proto.UserPINUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UserPINUpdate) + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPINUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPINUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.class, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + ciamId_ = ""; + emitTimestamp_ = 0L; + emitTimestampInMs_ = 0L; + eventhubReceiveTimestamp_ = 0L; + apptwinReceiveTimestamp_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UserPINUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate build() { + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate result = new com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.emitTimestamp_ = emitTimestamp_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.emitTimestampInMs_ = emitTimestampInMs_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.eventhubReceiveTimestamp_ = eventhubReceiveTimestamp_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.apptwinReceiveTimestamp_ = apptwinReceiveTimestamp_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getEmitTimestamp() != 0L) { + setEmitTimestamp(other.getEmitTimestamp()); + } + if (other.getEmitTimestampInMs() != 0L) { + setEmitTimestampInMs(other.getEmitTimestampInMs()); + } + if (other.getEventhubReceiveTimestamp() != 0L) { + setEventhubReceiveTimestamp(other.getEventhubReceiveTimestamp()); + } + if (other.getApptwinReceiveTimestamp() != 0L) { + setApptwinReceiveTimestamp(other.getApptwinReceiveTimestamp()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + emitTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 16 + case 24: { + eventhubReceiveTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 24 + case 32: { + apptwinReceiveTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000020; + break; + } // case 32 + case 42: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 42 + case 48: { + emitTimestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 48 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * ciam ID
+       * 
+ * + * string ciam_id = 5; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long emitTimestamp_ ; + /** + *
+       * when was the event emitted? This is the time of the update
+       * 
+ * + * int64 emit_timestamp = 2; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + /** + *
+       * when was the event emitted? This is the time of the update
+       * 
+ * + * int64 emit_timestamp = 2; + * @param value The emitTimestamp to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestamp(long value) { + + emitTimestamp_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * when was the event emitted? This is the time of the update
+       * 
+ * + * int64 emit_timestamp = 2; + * @return This builder for chaining. + */ + public Builder clearEmitTimestamp() { + bitField0_ = (bitField0_ & ~0x00000004); + emitTimestamp_ = 0L; + onChanged(); + return this; + } + + private long emitTimestampInMs_ ; + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @param value The emitTimestampInMs to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestampInMs(long value) { + + emitTimestampInMs_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 6; + * @return This builder for chaining. + */ + public Builder clearEmitTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000008); + emitTimestampInMs_ = 0L; + onChanged(); + return this; + } + + private long eventhubReceiveTimestamp_ ; + /** + *
+       * this timestamp indicates when a message was read from the eventhub
+       * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @return The eventhubReceiveTimestamp. + */ + @java.lang.Override + public long getEventhubReceiveTimestamp() { + return eventhubReceiveTimestamp_; + } + /** + *
+       * this timestamp indicates when a message was read from the eventhub
+       * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @param value The eventhubReceiveTimestamp to set. + * @return This builder for chaining. + */ + public Builder setEventhubReceiveTimestamp(long value) { + + eventhubReceiveTimestamp_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * this timestamp indicates when a message was read from the eventhub
+       * 
+ * + * int64 eventhub_receive_timestamp = 3; + * @return This builder for chaining. + */ + public Builder clearEventhubReceiveTimestamp() { + bitField0_ = (bitField0_ & ~0x00000010); + eventhubReceiveTimestamp_ = 0L; + onChanged(); + return this; + } + + private long apptwinReceiveTimestamp_ ; + /** + *
+       * this timestamp indicates when a message was processed in the app twin
+       * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @return The apptwinReceiveTimestamp. + */ + @java.lang.Override + public long getApptwinReceiveTimestamp() { + return apptwinReceiveTimestamp_; + } + /** + *
+       * this timestamp indicates when a message was processed in the app twin
+       * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @param value The apptwinReceiveTimestamp to set. + * @return This builder for chaining. + */ + public Builder setApptwinReceiveTimestamp(long value) { + + apptwinReceiveTimestamp_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * this timestamp indicates when a message was processed in the app twin
+       * 
+ * + * int64 apptwin_receive_timestamp = 4; + * @return This builder for chaining. + */ + public Builder clearApptwinReceiveTimestamp() { + bitField0_ = (bitField0_ & ~0x00000020); + apptwinReceiveTimestamp_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.UserPINUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.UserPINUpdate) + private static final com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UserPINUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface UpdateUserJWTRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.UpdateUserJWTRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * string jwt = 1; + * @return The jwt. + */ + java.lang.String getJwt(); + /** + * string jwt = 1; + * @return The bytes for jwt. + */ + com.google.protobuf.ByteString + getJwtBytes(); + } + /** + *
+   * Contains the refreshed jwt of the user
+   * 
+ * + * Protobuf type {@code proto.UpdateUserJWTRequest} + */ + public static final class UpdateUserJWTRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.UpdateUserJWTRequest) + UpdateUserJWTRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + UpdateUserJWTRequest.class.getName()); + } + // Use UpdateUserJWTRequest.newBuilder() to construct. + private UpdateUserJWTRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private UpdateUserJWTRequest() { + jwt_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UpdateUserJWTRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UpdateUserJWTRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.class, com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.Builder.class); + } + + public static final int JWT_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object jwt_ = ""; + /** + * string jwt = 1; + * @return The jwt. + */ + @java.lang.Override + public java.lang.String getJwt() { + java.lang.Object ref = jwt_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + jwt_ = s; + return s; + } + } + /** + * string jwt = 1; + * @return The bytes for jwt. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getJwtBytes() { + java.lang.Object ref = jwt_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + jwt_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(jwt_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, jwt_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(jwt_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, jwt_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest other = (com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) obj; + + if (!getJwt() + .equals(other.getJwt())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + JWT_FIELD_NUMBER; + hash = (53 * hash) + getJwt().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Contains the refreshed jwt of the user
+     * 
+ * + * Protobuf type {@code proto.UpdateUserJWTRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.UpdateUserJWTRequest) + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UpdateUserJWTRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UpdateUserJWTRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.class, com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + jwt_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_UpdateUserJWTRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest build() { + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest result = new com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.jwt_ = jwt_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest.getDefaultInstance()) return this; + if (!other.getJwt().isEmpty()) { + jwt_ = other.jwt_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + jwt_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object jwt_ = ""; + /** + * string jwt = 1; + * @return The jwt. + */ + public java.lang.String getJwt() { + java.lang.Object ref = jwt_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + jwt_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string jwt = 1; + * @return The bytes for jwt. + */ + public com.google.protobuf.ByteString + getJwtBytes() { + java.lang.Object ref = jwt_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + jwt_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string jwt = 1; + * @param value The jwt to set. + * @return This builder for chaining. + */ + public Builder setJwt( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + jwt_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string jwt = 1; + * @return This builder for chaining. + */ + public Builder clearJwt() { + jwt_ = getDefaultInstance().getJwt(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string jwt = 1; + * @param value The bytes for jwt to set. + * @return This builder for chaining. + */ + public Builder setJwtBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + jwt_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.UpdateUserJWTRequest) + } + + // @@protoc_insertion_point(class_scope:proto.UpdateUserJWTRequest) + private static final com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public UpdateUserJWTRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UpdateUserJWTRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeUpdateUserJWTRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeUpdateUserJWTRequest) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Ack for the UpdateUserJWTRequest
+   * 
+ * + * Protobuf type {@code proto.AcknowledgeUpdateUserJWTRequest} + */ + public static final class AcknowledgeUpdateUserJWTRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeUpdateUserJWTRequest) + AcknowledgeUpdateUserJWTRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeUpdateUserJWTRequest.class.getName()); + } + // Use AcknowledgeUpdateUserJWTRequest.newBuilder() to construct. + private AcknowledgeUpdateUserJWTRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeUpdateUserJWTRequest() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUpdateUserJWTRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUpdateUserJWTRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest other = (com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Ack for the UpdateUserJWTRequest
+     * 
+ * + * Protobuf type {@code proto.AcknowledgeUpdateUserJWTRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeUpdateUserJWTRequest) + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUpdateUserJWTRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUpdateUserJWTRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest.class, com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.UserEvents.internal_static_proto_AcknowledgeUpdateUserJWTRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest build() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest buildPartial() { + com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest result = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest other) { + if (other == com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeUpdateUserJWTRequest) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeUpdateUserJWTRequest) + private static final com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest(); + } + + public static com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeUpdateUserJWTRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.AcknowledgeUpdateUserJWTRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeUserDataUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeUserDataUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UserDataUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UserDataUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UserVehicleAuthChangedUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UserVehicleAuthChangedUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_CPDUserData_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_CPDUserData_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_CPDUserAddress_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_CPDUserAddress_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_CPDUserCommunicationPreference_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_CPDUserCommunicationPreference_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeUserPictureUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeUserPictureUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UserPictureUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UserPictureUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeUserPINUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeUserPINUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UserPINUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UserPINUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_UpdateUserJWTRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_UpdateUserJWTRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeUpdateUserJWTRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeUpdateUserJWTRequest_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\021user-events.proto\022\005proto\"4\n\031Acknowledg" + + "eUserDataUpdate\022\027\n\017sequence_number\030\001 \001(\005" + + "\"\274\001\n\016UserDataUpdate\022\027\n\017sequence_number\030\001" + + " \001(\005\022\017\n\007ciam_id\030\002 \001(\t\022\026\n\016emit_timestamp\030" + + "\003 \001(\003\022\034\n\024emit_timestamp_in_ms\030\010 \001(\003\022$\n\010o" + + "ld_data\030\006 \001(\0132\022.proto.CPDUserData\022$\n\010new" + + "_data\030\007 \001(\0132\022.proto.CPDUserData\"B\n\'Ackno" + + "wledgeUserVehicleAuthChangedUpdate\022\027\n\017se" + + "quence_number\030\001 \001(\005\"N\n3AcknowledgeAbilit" + + "yToGetVehicleMasterDataFromRestAPI\022\027\n\017se" + + "quence_number\030\001 \001(\005\"~\n\034UserVehicleAuthCh" + + "angedUpdate\022\027\n\017sequence_number\030\001 \001(\005\022\017\n\007" + + "ciam_id\030\002 \001(\t\022\026\n\016emit_timestamp\030\003 \001(\003\022\034\n" + + "\024emit_timestamp_in_ms\030\010 \001(\003\"\236\004\n\013CPDUserD" + + "ata\022\017\n\007ciam_id\030\001 \001(\t\022\017\n\007user_id\030\002 \001(\t\022\022\n" + + "\nfirst_name\030\003 \001(\t\022\022\n\nlast_name1\030\004 \001(\t\022\022\n" + + "\nlast_name2\030\005 \001(\t\022\r\n\005title\030\006 \001(\t\022\023\n\013name" + + "_prefix\030\007 \001(\t\022\026\n\016middle_initial\030\010 \001(\t\022\027\n" + + "\017salutation_code\030\t \001(\t\022\r\n\005email\030\n \001(\t\022\026\n" + + "\016landline_phone\030\013 \001(\t\022\033\n\023mobile_phone_nu" + + "mber\030\014 \001(\t\022\022\n\ncreated_at\030\r \001(\t\022\022\n\ncreate" + + "d_by\030\016 \001(\t\022\022\n\nupdated_at\030\017 \001(\t\022\020\n\010birthd" + + "ay\030\034 \001(\t\022\037\n\027preferred_language_code\030\035 \001(" + + "\t\022\034\n\024account_country_code\030\036 \001(\t\022\r\n\005uc_id" + + "\030\037 \001(\t\022\013\n\003vip\030 \001(\010\022&\n\007address\030! \001(\0132\025.p" + + "roto.CPDUserAddress\022G\n\030communication_pre" + + "ference\030\" \001(\0132%.proto.CPDUserCommunicati" + + "onPreference\"\263\002\n\016CPDUserAddress\022\024\n\014count" + + "ry_code\030\001 \001(\t\022\r\n\005state\030\002 \001(\t\022\020\n\010province" + + "\030\003 \001(\t\022\016\n\006street\030\004 \001(\t\022\020\n\010house_no\030\005 \001(\t" + + "\022\020\n\010zip_code\030\006 \001(\t\022\014\n\004city\030\007 \001(\t\022\023\n\013stre" + + "et_type\030\010 \001(\t\022\022\n\nhouse_name\030\t \001(\t\022\020\n\010flo" + + "or_no\030\n \001(\t\022\017\n\007door_no\030\013 \001(\t\022\025\n\raddress_" + + "line1\030\014 \001(\t\022\025\n\raddress_line2\030\r \001(\t\022\025\n\rad" + + "dress_line3\030\016 \001(\t\022\027\n\017post_office_box\030\017 \001" + + "(\t\"\217\001\n\036CPDUserCommunicationPreference\022\032\n" + + "\022contacted_by_phone\030\001 \001(\010\022\033\n\023contacted_b" + + "y_letter\030\002 \001(\010\022\032\n\022contacted_by_email\030\003 \001" + + "(\010\022\030\n\020contacted_by_sms\030\004 \001(\010\"7\n\034Acknowle" + + "dgeUserPictureUpdate\022\027\n\017sequence_number\030" + + "\001 \001(\005\"\272\001\n\021UserPictureUpdate\022\027\n\017sequence_" + + "number\030\001 \001(\005\022\017\n\007ciam_id\030\005 \001(\t\022\026\n\016emit_ti" + + "mestamp\030\002 \001(\003\022\034\n\024emit_timestamp_in_ms\030\006 " + + "\001(\003\022\"\n\032eventhub_receive_timestamp\030\003 \001(\003\022" + + "!\n\031apptwin_receive_timestamp\030\004 \001(\003\"3\n\030Ac" + + "knowledgeUserPINUpdate\022\027\n\017sequence_numbe" + + "r\030\001 \001(\005\"\266\001\n\rUserPINUpdate\022\027\n\017sequence_nu" + + "mber\030\001 \001(\005\022\017\n\007ciam_id\030\005 \001(\t\022\026\n\016emit_time" + + "stamp\030\002 \001(\003\022\034\n\024emit_timestamp_in_ms\030\006 \001(" + + "\003\022\"\n\032eventhub_receive_timestamp\030\003 \001(\003\022!\n" + + "\031apptwin_receive_timestamp\030\004 \001(\003\"#\n\024Upda" + + "teUserJWTRequest\022\013\n\003jwt\030\001 \001(\t\"!\n\037Acknowl" + + "edgeUpdateUserJWTRequestB\034\n\032com.daimler." + + "mbcarkit.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_proto_AcknowledgeUserDataUpdate_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_AcknowledgeUserDataUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeUserDataUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_UserDataUpdate_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_proto_UserDataUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UserDataUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", "CiamId", "EmitTimestamp", "EmitTimestampInMs", "OldData", "NewData", }); + internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeUserVehicleAuthChangedUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeAbilityToGetVehicleMasterDataFromRestAPI_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_UserVehicleAuthChangedUpdate_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_proto_UserVehicleAuthChangedUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UserVehicleAuthChangedUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", "CiamId", "EmitTimestamp", "EmitTimestampInMs", }); + internal_static_proto_CPDUserData_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_proto_CPDUserData_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_CPDUserData_descriptor, + new java.lang.String[] { "CiamId", "UserId", "FirstName", "LastName1", "LastName2", "Title", "NamePrefix", "MiddleInitial", "SalutationCode", "Email", "LandlinePhone", "MobilePhoneNumber", "CreatedAt", "CreatedBy", "UpdatedAt", "Birthday", "PreferredLanguageCode", "AccountCountryCode", "UcId", "Vip", "Address", "CommunicationPreference", }); + internal_static_proto_CPDUserAddress_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_proto_CPDUserAddress_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_CPDUserAddress_descriptor, + new java.lang.String[] { "CountryCode", "State", "Province", "Street", "HouseNo", "ZipCode", "City", "StreetType", "HouseName", "FloorNo", "DoorNo", "AddressLine1", "AddressLine2", "AddressLine3", "PostOfficeBox", }); + internal_static_proto_CPDUserCommunicationPreference_descriptor = + getDescriptor().getMessageTypes().get(7); + internal_static_proto_CPDUserCommunicationPreference_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_CPDUserCommunicationPreference_descriptor, + new java.lang.String[] { "ContactedByPhone", "ContactedByLetter", "ContactedByEmail", "ContactedBySms", }); + internal_static_proto_AcknowledgeUserPictureUpdate_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_proto_AcknowledgeUserPictureUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeUserPictureUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_UserPictureUpdate_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_proto_UserPictureUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UserPictureUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", "CiamId", "EmitTimestamp", "EmitTimestampInMs", "EventhubReceiveTimestamp", "ApptwinReceiveTimestamp", }); + internal_static_proto_AcknowledgeUserPINUpdate_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_proto_AcknowledgeUserPINUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeUserPINUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_UserPINUpdate_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_proto_UserPINUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UserPINUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", "CiamId", "EmitTimestamp", "EmitTimestampInMs", "EventhubReceiveTimestamp", "ApptwinReceiveTimestamp", }); + internal_static_proto_UpdateUserJWTRequest_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_proto_UpdateUserJWTRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_UpdateUserJWTRequest_descriptor, + new java.lang.String[] { "Jwt", }); + internal_static_proto_AcknowledgeUpdateUserJWTRequest_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_proto_AcknowledgeUpdateUserJWTRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeUpdateUserJWTRequest_descriptor, + new java.lang.String[] { }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VehicleCommands.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VehicleCommands.java new file mode 100644 index 00000000000..59548b1cb8f --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VehicleCommands.java @@ -0,0 +1,47071 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vehicle-commands.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class VehicleCommands { + private VehicleCommands() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleCommands.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code proto.Door} + */ + public enum Door + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * the lowercase versions are for json (de)serialization purposes only. The upper case version should be the preferred
+     * enum values to be used in code.
+     * These definitions need to come before upper case versions
+     * 
+ * + * unknown_door = 0; + */ + unknown_door(0), + /** + * frontleft = 1; + */ + frontleft(1), + /** + * frontright = 2; + */ + frontright(2), + /** + * rearleft = 3; + */ + rearleft(3), + /** + * rearright = 4; + */ + rearright(4), + /** + * trunk = 5; + */ + trunk(5), + /** + * fuelflap = 6; + */ + fuelflap(6), + /** + * chargeflap = 7; + */ + chargeflap(7), + /** + * chargecoupler = 8; + */ + chargecoupler(8), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Door.class.getName()); + } + /** + * UNKNOWN_DOOR = 0; + */ + public static final Door UNKNOWN_DOOR = unknown_door; + /** + * FRONT_LEFT = 1; + */ + public static final Door FRONT_LEFT = frontleft; + /** + * FRONT_RIGHT = 2; + */ + public static final Door FRONT_RIGHT = frontright; + /** + * REAR_LEFT = 3; + */ + public static final Door REAR_LEFT = rearleft; + /** + * REAR_RIGHT = 4; + */ + public static final Door REAR_RIGHT = rearright; + /** + * TRUNK = 5; + */ + public static final Door TRUNK = trunk; + /** + * FUEL_FLAP = 6; + */ + public static final Door FUEL_FLAP = fuelflap; + /** + * CHARGE_FLAP = 7; + */ + public static final Door CHARGE_FLAP = chargeflap; + /** + * CHARGE_COUPLER = 8; + */ + public static final Door CHARGE_COUPLER = chargecoupler; + /** + *
+     * the lowercase versions are for json (de)serialization purposes only. The upper case version should be the preferred
+     * enum values to be used in code.
+     * These definitions need to come before upper case versions
+     * 
+ * + * unknown_door = 0; + */ + public static final int unknown_door_VALUE = 0; + /** + * frontleft = 1; + */ + public static final int frontleft_VALUE = 1; + /** + * frontright = 2; + */ + public static final int frontright_VALUE = 2; + /** + * rearleft = 3; + */ + public static final int rearleft_VALUE = 3; + /** + * rearright = 4; + */ + public static final int rearright_VALUE = 4; + /** + * trunk = 5; + */ + public static final int trunk_VALUE = 5; + /** + * fuelflap = 6; + */ + public static final int fuelflap_VALUE = 6; + /** + * chargeflap = 7; + */ + public static final int chargeflap_VALUE = 7; + /** + * chargecoupler = 8; + */ + public static final int chargecoupler_VALUE = 8; + /** + * UNKNOWN_DOOR = 0; + */ + public static final int UNKNOWN_DOOR_VALUE = 0; + /** + * FRONT_LEFT = 1; + */ + public static final int FRONT_LEFT_VALUE = 1; + /** + * FRONT_RIGHT = 2; + */ + public static final int FRONT_RIGHT_VALUE = 2; + /** + * REAR_LEFT = 3; + */ + public static final int REAR_LEFT_VALUE = 3; + /** + * REAR_RIGHT = 4; + */ + public static final int REAR_RIGHT_VALUE = 4; + /** + * TRUNK = 5; + */ + public static final int TRUNK_VALUE = 5; + /** + * FUEL_FLAP = 6; + */ + public static final int FUEL_FLAP_VALUE = 6; + /** + * CHARGE_FLAP = 7; + */ + public static final int CHARGE_FLAP_VALUE = 7; + /** + * CHARGE_COUPLER = 8; + */ + public static final int CHARGE_COUPLER_VALUE = 8; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Door valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Door forNumber(int value) { + switch (value) { + case 0: return unknown_door; + case 1: return frontleft; + case 2: return frontright; + case 3: return rearleft; + case 4: return rearright; + case 5: return trunk; + case 6: return fuelflap; + case 7: return chargeflap; + case 8: return chargecoupler; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + Door> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Door findValueByNumber(int number) { + return Door.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.getDescriptor().getEnumTypes().get(0); + } + + private static final Door[] VALUES = getStaticValuesArray(); + private static Door[] getStaticValuesArray() { + return new Door[] { + unknown_door, frontleft, frontright, rearleft, rearright, trunk, fuelflap, chargeflap, chargecoupler, UNKNOWN_DOOR, FRONT_LEFT, FRONT_RIGHT, REAR_LEFT, REAR_RIGHT, TRUNK, FUEL_FLAP, CHARGE_FLAP, CHARGE_COUPLER, + }; + } + public static Door valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Door(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.Door) + } + + /** + * Protobuf enum {@code proto.ZEVPreconditioningType} + */ + public enum ZEVPreconditioningType + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * the lowercase versions are for json parsing purposes only. The upper case version should be the preferred
+     * enum values to be used in code.
+     * These definitions need to come before upper case versions
+     * 
+ * + * unknown_zev_preconditioning_command_type = 0; + */ + unknown_zev_preconditioning_command_type(0), + /** + * immediate = 1; + */ + immediate(1), + /** + * departure = 2; + */ + departure(2), + /** + * now = 3; + */ + now(3), + /** + * departureWeekly = 4; + */ + departureWeekly(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ZEVPreconditioningType.class.getName()); + } + /** + *
+     * the uppercase versions are here to have exported values
+     * The given preconditioning command type is unknown
+     * 
+ * + * UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE = 0; + */ + public static final ZEVPreconditioningType UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE = unknown_zev_preconditioning_command_type; + /** + *
+     * starts immediate preconditioning
+     * 
+ * + * IMMEDIATE = 1; + */ + public static final ZEVPreconditioningType IMMEDIATE = immediate; + /** + *
+     * starts preconditioning at departure time (requires a departure time to be provided in ZEVPreconditioningStart)
+     * 
+ * + * DEPARTURE = 2; + */ + public static final ZEVPreconditioningType DEPARTURE = departure; + /** + *
+     * start right away (departure time is ignored)
+     * 
+ * + * NOW = 3; + */ + public static final ZEVPreconditioningType NOW = now; + /** + *
+     * starts preconditioning for a configured weekly profile (does NOT require a departure time to be provided)
+     * 
+ * + * DEPARTURE_WEEKLY = 4; + */ + public static final ZEVPreconditioningType DEPARTURE_WEEKLY = departureWeekly; + /** + *
+     * the lowercase versions are for json parsing purposes only. The upper case version should be the preferred
+     * enum values to be used in code.
+     * These definitions need to come before upper case versions
+     * 
+ * + * unknown_zev_preconditioning_command_type = 0; + */ + public static final int unknown_zev_preconditioning_command_type_VALUE = 0; + /** + * immediate = 1; + */ + public static final int immediate_VALUE = 1; + /** + * departure = 2; + */ + public static final int departure_VALUE = 2; + /** + * now = 3; + */ + public static final int now_VALUE = 3; + /** + * departureWeekly = 4; + */ + public static final int departureWeekly_VALUE = 4; + /** + *
+     * the uppercase versions are here to have exported values
+     * The given preconditioning command type is unknown
+     * 
+ * + * UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE = 0; + */ + public static final int UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE_VALUE = 0; + /** + *
+     * starts immediate preconditioning
+     * 
+ * + * IMMEDIATE = 1; + */ + public static final int IMMEDIATE_VALUE = 1; + /** + *
+     * starts preconditioning at departure time (requires a departure time to be provided in ZEVPreconditioningStart)
+     * 
+ * + * DEPARTURE = 2; + */ + public static final int DEPARTURE_VALUE = 2; + /** + *
+     * start right away (departure time is ignored)
+     * 
+ * + * NOW = 3; + */ + public static final int NOW_VALUE = 3; + /** + *
+     * starts preconditioning for a configured weekly profile (does NOT require a departure time to be provided)
+     * 
+ * + * DEPARTURE_WEEKLY = 4; + */ + public static final int DEPARTURE_WEEKLY_VALUE = 4; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ZEVPreconditioningType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ZEVPreconditioningType forNumber(int value) { + switch (value) { + case 0: return unknown_zev_preconditioning_command_type; + case 1: return immediate; + case 2: return departure; + case 3: return now; + case 4: return departureWeekly; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ZEVPreconditioningType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ZEVPreconditioningType findValueByNumber(int number) { + return ZEVPreconditioningType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.getDescriptor().getEnumTypes().get(1); + } + + private static final ZEVPreconditioningType[] VALUES = getStaticValuesArray(); + private static ZEVPreconditioningType[] getStaticValuesArray() { + return new ZEVPreconditioningType[] { + unknown_zev_preconditioning_command_type, immediate, departure, now, departureWeekly, UNKNOWN_ZEV_PRECONDITIONING_COMMAND_TYPE, IMMEDIATE, DEPARTURE, NOW, DEPARTURE_WEEKLY, + }; + } + public static ZEVPreconditioningType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ZEVPreconditioningType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.ZEVPreconditioningType) + } + + /** + * Protobuf enum {@code proto.TimeProfileDay} + */ + public enum TimeProfileDay + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * the short versions are for json (en)coding purposes only. The upper case version should be the preferred
+     * enum values to be used in code.
+     * These definitions need to come before upper case versions
+     * 
+ * + * Mo = 0; + */ + Mo(0), + /** + * Tu = 1; + */ + Tu(1), + /** + * We = 2; + */ + We(2), + /** + * Th = 3; + */ + Th(3), + /** + * Fr = 4; + */ + Fr(4), + /** + * Sa = 5; + */ + Sa(5), + /** + * Su = 6; + */ + Su(6), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TimeProfileDay.class.getName()); + } + /** + * MONDAY = 0; + */ + public static final TimeProfileDay MONDAY = Mo; + /** + * TUESDAY = 1; + */ + public static final TimeProfileDay TUESDAY = Tu; + /** + * WEDNESDAY = 2; + */ + public static final TimeProfileDay WEDNESDAY = We; + /** + * THURSDAY = 3; + */ + public static final TimeProfileDay THURSDAY = Th; + /** + * FRIDAY = 4; + */ + public static final TimeProfileDay FRIDAY = Fr; + /** + * SATURDAY = 5; + */ + public static final TimeProfileDay SATURDAY = Sa; + /** + * SUNDAY = 6; + */ + public static final TimeProfileDay SUNDAY = Su; + /** + *
+     * the short versions are for json (en)coding purposes only. The upper case version should be the preferred
+     * enum values to be used in code.
+     * These definitions need to come before upper case versions
+     * 
+ * + * Mo = 0; + */ + public static final int Mo_VALUE = 0; + /** + * Tu = 1; + */ + public static final int Tu_VALUE = 1; + /** + * We = 2; + */ + public static final int We_VALUE = 2; + /** + * Th = 3; + */ + public static final int Th_VALUE = 3; + /** + * Fr = 4; + */ + public static final int Fr_VALUE = 4; + /** + * Sa = 5; + */ + public static final int Sa_VALUE = 5; + /** + * Su = 6; + */ + public static final int Su_VALUE = 6; + /** + * MONDAY = 0; + */ + public static final int MONDAY_VALUE = 0; + /** + * TUESDAY = 1; + */ + public static final int TUESDAY_VALUE = 1; + /** + * WEDNESDAY = 2; + */ + public static final int WEDNESDAY_VALUE = 2; + /** + * THURSDAY = 3; + */ + public static final int THURSDAY_VALUE = 3; + /** + * FRIDAY = 4; + */ + public static final int FRIDAY_VALUE = 4; + /** + * SATURDAY = 5; + */ + public static final int SATURDAY_VALUE = 5; + /** + * SUNDAY = 6; + */ + public static final int SUNDAY_VALUE = 6; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static TimeProfileDay valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static TimeProfileDay forNumber(int value) { + switch (value) { + case 0: return Mo; + case 1: return Tu; + case 2: return We; + case 3: return Th; + case 4: return Fr; + case 5: return Sa; + case 6: return Su; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + TimeProfileDay> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public TimeProfileDay findValueByNumber(int number) { + return TimeProfileDay.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.getDescriptor().getEnumTypes().get(2); + } + + private static final TimeProfileDay[] VALUES = getStaticValuesArray(); + private static TimeProfileDay[] getStaticValuesArray() { + return new TimeProfileDay[] { + Mo, Tu, We, Th, Fr, Sa, Su, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, + }; + } + public static TimeProfileDay valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private TimeProfileDay(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.TimeProfileDay) + } + + /** + * Protobuf enum {@code proto.DriveType} + */ + public enum DriveType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNKNOWN_DRIVE_TYPE = 0; + */ + UNKNOWN_DRIVE_TYPE(0), + /** + * PICK_UP = 1; + */ + PICK_UP(1), + /** + * DROP_OFF = 2; + */ + DROP_OFF(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + DriveType.class.getName()); + } + /** + * UNKNOWN_DRIVE_TYPE = 0; + */ + public static final int UNKNOWN_DRIVE_TYPE_VALUE = 0; + /** + * PICK_UP = 1; + */ + public static final int PICK_UP_VALUE = 1; + /** + * DROP_OFF = 2; + */ + public static final int DROP_OFF_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DriveType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static DriveType forNumber(int value) { + switch (value) { + case 0: return UNKNOWN_DRIVE_TYPE; + case 1: return PICK_UP; + case 2: return DROP_OFF; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + DriveType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public DriveType findValueByNumber(int number) { + return DriveType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.getDescriptor().getEnumTypes().get(3); + } + + private static final DriveType[] VALUES = values(); + + public static DriveType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private DriveType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.DriveType) + } + + public interface AcknowledgeCommandRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeCommandRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * string request_id = 1; + * @return The requestId. + */ + java.lang.String getRequestId(); + /** + * string request_id = 1; + * @return The bytes for requestId. + */ + com.google.protobuf.ByteString + getRequestIdBytes(); + } + /** + *
+   * Acknowledge the CommandRequest reached the apptwin actor
+   * Websocket <- Apptwin
+   * 
+ * + * Protobuf type {@code proto.AcknowledgeCommandRequest} + */ + public static final class AcknowledgeCommandRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeCommandRequest) + AcknowledgeCommandRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeCommandRequest.class.getName()); + } + // Use AcknowledgeCommandRequest.newBuilder() to construct. + private AcknowledgeCommandRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeCommandRequest() { + requestId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AcknowledgeCommandRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AcknowledgeCommandRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest.class, com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest.Builder.class); + } + + public static final int REQUEST_ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object requestId_ = ""; + /** + * string request_id = 1; + * @return The requestId. + */ + @java.lang.Override + public java.lang.String getRequestId() { + java.lang.Object ref = requestId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + requestId_ = s; + return s; + } + } + /** + * string request_id = 1; + * @return The bytes for requestId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRequestIdBytes() { + java.lang.Object ref = requestId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + requestId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, requestId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, requestId_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest other = (com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest) obj; + + if (!getRequestId() + .equals(other.getRequestId())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER; + hash = (53 * hash) + getRequestId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Acknowledge the CommandRequest reached the apptwin actor
+     * Websocket <- Apptwin
+     * 
+ * + * Protobuf type {@code proto.AcknowledgeCommandRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeCommandRequest) + com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AcknowledgeCommandRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AcknowledgeCommandRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest.class, com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + requestId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AcknowledgeCommandRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest build() { + com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest result = new com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.requestId_ = requestId_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest.getDefaultInstance()) return this; + if (!other.getRequestId().isEmpty()) { + requestId_ = other.requestId_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + requestId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object requestId_ = ""; + /** + * string request_id = 1; + * @return The requestId. + */ + public java.lang.String getRequestId() { + java.lang.Object ref = requestId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + requestId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string request_id = 1; + * @return The bytes for requestId. + */ + public com.google.protobuf.ByteString + getRequestIdBytes() { + java.lang.Object ref = requestId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + requestId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string request_id = 1; + * @param value The requestId to set. + * @return This builder for chaining. + */ + public Builder setRequestId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + requestId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string request_id = 1; + * @return This builder for chaining. + */ + public Builder clearRequestId() { + requestId_ = getDefaultInstance().getRequestId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string request_id = 1; + * @param value The bytes for requestId to set. + * @return This builder for chaining. + */ + public Builder setRequestIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + requestId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeCommandRequest) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeCommandRequest) + private static final com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeCommandRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AcknowledgeCommandRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface CommandRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.CommandRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * string vin = 1; + * @return The vin. + */ + java.lang.String getVin(); + /** + * string vin = 1; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + *
+     * Set this id to correlate a CommandStatus
+     * with this command request.
+     * 
+ * + * string request_id = 7; + * @return The requestId. + */ + java.lang.String getRequestId(); + /** + *
+     * Set this id to correlate a CommandStatus
+     * with this command request.
+     * 
+ * + * string request_id = 7; + * @return The bytes for requestId. + */ + com.google.protobuf.ByteString + getRequestIdBytes(); + + /** + * .proto.CommandRequest.Backend backend = 36; + * @return The enum numeric value on the wire for backend. + */ + int getBackendValue(); + /** + * .proto.CommandRequest.Backend backend = 36; + * @return The backend. + */ + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend getBackend(); + + /** + * .proto.AuxheatStart auxheat_start = 2; + * @return Whether the auxheatStart field is set. + */ + boolean hasAuxheatStart(); + /** + * .proto.AuxheatStart auxheat_start = 2; + * @return The auxheatStart. + */ + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart getAuxheatStart(); + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStartOrBuilder getAuxheatStartOrBuilder(); + + /** + * .proto.AuxheatStop auxheat_stop = 3; + * @return Whether the auxheatStop field is set. + */ + boolean hasAuxheatStop(); + /** + * .proto.AuxheatStop auxheat_stop = 3; + * @return The auxheatStop. + */ + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop getAuxheatStop(); + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStopOrBuilder getAuxheatStopOrBuilder(); + + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + * @return Whether the auxheatConfigure field is set. + */ + boolean hasAuxheatConfigure(); + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + * @return The auxheatConfigure. + */ + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure getAuxheatConfigure(); + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigureOrBuilder getAuxheatConfigureOrBuilder(); + + /** + * .proto.DoorsLock doors_lock = 5; + * @return Whether the doorsLock field is set. + */ + boolean hasDoorsLock(); + /** + * .proto.DoorsLock doors_lock = 5; + * @return The doorsLock. + */ + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock getDoorsLock(); + /** + * .proto.DoorsLock doors_lock = 5; + */ + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLockOrBuilder getDoorsLockOrBuilder(); + + /** + * .proto.DoorsUnlock doors_unlock = 6; + * @return Whether the doorsUnlock field is set. + */ + boolean hasDoorsUnlock(); + /** + * .proto.DoorsUnlock doors_unlock = 6; + * @return The doorsUnlock. + */ + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock getDoorsUnlock(); + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlockOrBuilder getDoorsUnlockOrBuilder(); + + /** + * .proto.SunroofOpen sunroof_open = 9; + * @return Whether the sunroofOpen field is set. + */ + boolean hasSunroofOpen(); + /** + * .proto.SunroofOpen sunroof_open = 9; + * @return The sunroofOpen. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen getSunroofOpen(); + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpenOrBuilder getSunroofOpenOrBuilder(); + + /** + * .proto.SunroofClose sunroof_close = 10; + * @return Whether the sunroofClose field is set. + */ + boolean hasSunroofClose(); + /** + * .proto.SunroofClose sunroof_close = 10; + * @return The sunroofClose. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose getSunroofClose(); + /** + * .proto.SunroofClose sunroof_close = 10; + */ + com.daimler.mbcarkit.proto.VehicleCommands.SunroofCloseOrBuilder getSunroofCloseOrBuilder(); + + /** + * .proto.SunroofLift sunroof_lift = 11; + * @return Whether the sunroofLift field is set. + */ + boolean hasSunroofLift(); + /** + * .proto.SunroofLift sunroof_lift = 11; + * @return The sunroofLift. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift getSunroofLift(); + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLiftOrBuilder getSunroofLiftOrBuilder(); + + /** + * .proto.SunroofMove sunroof_move = 47; + * @return Whether the sunroofMove field is set. + */ + boolean hasSunroofMove(); + /** + * .proto.SunroofMove sunroof_move = 47; + * @return The sunroofMove. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove getSunroofMove(); + /** + * .proto.SunroofMove sunroof_move = 47; + */ + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMoveOrBuilder getSunroofMoveOrBuilder(); + + /** + * .proto.WindowsOpen windows_open = 12; + * @return Whether the windowsOpen field is set. + */ + boolean hasWindowsOpen(); + /** + * .proto.WindowsOpen windows_open = 12; + * @return The windowsOpen. + */ + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen getWindowsOpen(); + /** + * .proto.WindowsOpen windows_open = 12; + */ + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpenOrBuilder getWindowsOpenOrBuilder(); + + /** + * .proto.WindowsClose windows_close = 13; + * @return Whether the windowsClose field is set. + */ + boolean hasWindowsClose(); + /** + * .proto.WindowsClose windows_close = 13; + * @return The windowsClose. + */ + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose getWindowsClose(); + /** + * .proto.WindowsClose windows_close = 13; + */ + com.daimler.mbcarkit.proto.VehicleCommands.WindowsCloseOrBuilder getWindowsCloseOrBuilder(); + + /** + * .proto.WindowsVentilate windows_ventilate = 43; + * @return Whether the windowsVentilate field is set. + */ + boolean hasWindowsVentilate(); + /** + * .proto.WindowsVentilate windows_ventilate = 43; + * @return The windowsVentilate. + */ + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate getWindowsVentilate(); + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilateOrBuilder getWindowsVentilateOrBuilder(); + + /** + * .proto.WindowsMove windows_move = 44; + * @return Whether the windowsMove field is set. + */ + boolean hasWindowsMove(); + /** + * .proto.WindowsMove windows_move = 44; + * @return The windowsMove. + */ + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove getWindowsMove(); + /** + * .proto.WindowsMove windows_move = 44; + */ + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMoveOrBuilder getWindowsMoveOrBuilder(); + + /** + * .proto.EngineStart engine_start = 19; + * @return Whether the engineStart field is set. + */ + boolean hasEngineStart(); + /** + * .proto.EngineStart engine_start = 19; + * @return The engineStart. + */ + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart getEngineStart(); + /** + * .proto.EngineStart engine_start = 19; + */ + com.daimler.mbcarkit.proto.VehicleCommands.EngineStartOrBuilder getEngineStartOrBuilder(); + + /** + * .proto.EngineStop engine_stop = 20; + * @return Whether the engineStop field is set. + */ + boolean hasEngineStop(); + /** + * .proto.EngineStop engine_stop = 20; + * @return The engineStop. + */ + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop getEngineStop(); + /** + * .proto.EngineStop engine_stop = 20; + */ + com.daimler.mbcarkit.proto.VehicleCommands.EngineStopOrBuilder getEngineStopOrBuilder(); + + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + * @return Whether the zevPreconditioningStart field is set. + */ + boolean hasZevPreconditioningStart(); + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + * @return The zevPreconditioningStart. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart getZevPreconditioningStart(); + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStartOrBuilder getZevPreconditioningStartOrBuilder(); + + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + * @return Whether the zevPreconditioningStop field is set. + */ + boolean hasZevPreconditioningStop(); + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + * @return The zevPreconditioningStop. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop getZevPreconditioningStop(); + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStopOrBuilder getZevPreconditioningStopOrBuilder(); + + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + * @return Whether the zevPreconditionConfigure field is set. + */ + boolean hasZevPreconditionConfigure(); + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + * @return The zevPreconditionConfigure. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure getZevPreconditionConfigure(); + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureOrBuilder getZevPreconditionConfigureOrBuilder(); + + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + * @return Whether the zevPreconditionConfigureSeats field is set. + */ + boolean hasZevPreconditionConfigureSeats(); + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + * @return The zevPreconditionConfigureSeats. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats getZevPreconditionConfigureSeats(); + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeatsOrBuilder getZevPreconditionConfigureSeatsOrBuilder(); + + /** + * .proto.SpeedalertStart speedalert_start = 23; + * @return Whether the speedalertStart field is set. + */ + boolean hasSpeedalertStart(); + /** + * .proto.SpeedalertStart speedalert_start = 23; + * @return The speedalertStart. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart getSpeedalertStart(); + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStartOrBuilder getSpeedalertStartOrBuilder(); + + /** + * .proto.SpeedalertStop speedalert_stop = 24; + * @return Whether the speedalertStop field is set. + */ + boolean hasSpeedalertStop(); + /** + * .proto.SpeedalertStop speedalert_stop = 24; + * @return The speedalertStop. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop getSpeedalertStop(); + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStopOrBuilder getSpeedalertStopOrBuilder(); + + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + * @return Whether the batteryChargeProgram field is set. + */ + boolean hasBatteryChargeProgram(); + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + * @return The batteryChargeProgram. + */ + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure getBatteryChargeProgram(); + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigureOrBuilder getBatteryChargeProgramOrBuilder(); + + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + * @return Whether the batteryMaxSoc field is set. + */ + boolean hasBatteryMaxSoc(); + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + * @return The batteryMaxSoc. + */ + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure getBatteryMaxSoc(); + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigureOrBuilder getBatteryMaxSocOrBuilder(); + + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + * @return Whether the chargeProgramConfigure field is set. + */ + boolean hasChargeProgramConfigure(); + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + * @return The chargeProgramConfigure. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure getChargeProgramConfigure(); + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigureOrBuilder getChargeProgramConfigureOrBuilder(); + + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + * @return Whether the chargeControlConfigure field is set. + */ + boolean hasChargeControlConfigure(); + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + * @return The chargeControlConfigure. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure getChargeControlConfigure(); + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigureOrBuilder getChargeControlConfigureOrBuilder(); + + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + * @return Whether the chargeOptConfigure field is set. + */ + boolean hasChargeOptConfigure(); + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + * @return The chargeOptConfigure. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure getChargeOptConfigure(); + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigureOrBuilder getChargeOptConfigureOrBuilder(); + + /** + * .proto.ChargeOptStart charge_opt_start = 30; + * @return Whether the chargeOptStart field is set. + */ + boolean hasChargeOptStart(); + /** + * .proto.ChargeOptStart charge_opt_start = 30; + * @return The chargeOptStart. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart getChargeOptStart(); + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStartOrBuilder getChargeOptStartOrBuilder(); + + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + * @return Whether the chargeOptStop field is set. + */ + boolean hasChargeOptStop(); + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + * @return The chargeOptStop. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop getChargeOptStop(); + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStopOrBuilder getChargeOptStopOrBuilder(); + + /** + * .proto.TemperatureConfigure temperature_configure = 32; + * @return Whether the temperatureConfigure field is set. + */ + boolean hasTemperatureConfigure(); + /** + * .proto.TemperatureConfigure temperature_configure = 32; + * @return The temperatureConfigure. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure getTemperatureConfigure(); + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigureOrBuilder getTemperatureConfigureOrBuilder(); + + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + * @return Whether the weekProfileConfigure field is set. + */ + boolean hasWeekProfileConfigure(); + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + * @return The weekProfileConfigure. + */ + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure getWeekProfileConfigure(); + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureOrBuilder getWeekProfileConfigureOrBuilder(); + + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + * @return Whether the weekProfileConfigureV2 field is set. + */ + boolean hasWeekProfileConfigureV2(); + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + * @return The weekProfileConfigureV2. + */ + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 getWeekProfileConfigureV2(); + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2OrBuilder getWeekProfileConfigureV2OrBuilder(); + + /** + * .proto.SigPosStart sigpos_start = 35; + * @return Whether the sigposStart field is set. + */ + boolean hasSigposStart(); + /** + * .proto.SigPosStart sigpos_start = 35; + * @return The sigposStart. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart getSigposStart(); + /** + * .proto.SigPosStart sigpos_start = 35; + */ + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStartOrBuilder getSigposStartOrBuilder(); + + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + * @return Whether the theftalarmConfirmDamagedetection field is set. + */ + boolean hasTheftalarmConfirmDamagedetection(); + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + * @return The theftalarmConfirmDamagedetection. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection getTheftalarmConfirmDamagedetection(); + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetectionOrBuilder getTheftalarmConfirmDamagedetectionOrBuilder(); + + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + * @return Whether the theftalarmDeselectDamagedetection field is set. + */ + boolean hasTheftalarmDeselectDamagedetection(); + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + * @return The theftalarmDeselectDamagedetection. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection getTheftalarmDeselectDamagedetection(); + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetectionOrBuilder getTheftalarmDeselectDamagedetectionOrBuilder(); + + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + * @return Whether the theftalarmDeselectInterior field is set. + */ + boolean hasTheftalarmDeselectInterior(); + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + * @return The theftalarmDeselectInterior. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior getTheftalarmDeselectInterior(); + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInteriorOrBuilder getTheftalarmDeselectInteriorOrBuilder(); + + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + * @return Whether the theftalarmDeselectTow field is set. + */ + boolean hasTheftalarmDeselectTow(); + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + * @return The theftalarmDeselectTow. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow getTheftalarmDeselectTow(); + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTowOrBuilder getTheftalarmDeselectTowOrBuilder(); + + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + * @return Whether the theftalarmSelectDamagedetection field is set. + */ + boolean hasTheftalarmSelectDamagedetection(); + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + * @return The theftalarmSelectDamagedetection. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection getTheftalarmSelectDamagedetection(); + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetectionOrBuilder getTheftalarmSelectDamagedetectionOrBuilder(); + + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + * @return Whether the theftalarmSelectInterior field is set. + */ + boolean hasTheftalarmSelectInterior(); + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + * @return The theftalarmSelectInterior. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior getTheftalarmSelectInterior(); + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInteriorOrBuilder getTheftalarmSelectInteriorOrBuilder(); + + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + * @return Whether the theftalarmSelectTow field is set. + */ + boolean hasTheftalarmSelectTow(); + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + * @return The theftalarmSelectTow. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow getTheftalarmSelectTow(); + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTowOrBuilder getTheftalarmSelectTowOrBuilder(); + + /** + * .proto.TheftalarmStart theftalarm_start = 38; + * @return Whether the theftalarmStart field is set. + */ + boolean hasTheftalarmStart(); + /** + * .proto.TheftalarmStart theftalarm_start = 38; + * @return The theftalarmStart. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart getTheftalarmStart(); + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStartOrBuilder getTheftalarmStartOrBuilder(); + + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + * @return Whether the theftalarmStop field is set. + */ + boolean hasTheftalarmStop(); + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + * @return The theftalarmStop. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop getTheftalarmStop(); + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStopOrBuilder getTheftalarmStopOrBuilder(); + + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + * @return Whether the automaticValetParkingActivate field is set. + */ + boolean hasAutomaticValetParkingActivate(); + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + * @return The automaticValetParkingActivate. + */ + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate getAutomaticValetParkingActivate(); + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivateOrBuilder getAutomaticValetParkingActivateOrBuilder(); + + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + * @return Whether the chargeFlapUnlock field is set. + */ + boolean hasChargeFlapUnlock(); + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + * @return The chargeFlapUnlock. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock getChargeFlapUnlock(); + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlockOrBuilder getChargeFlapUnlockOrBuilder(); + + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + * @return Whether the chargeCouplerUnlock field is set. + */ + boolean hasChargeCouplerUnlock(); + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + * @return The chargeCouplerUnlock. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock getChargeCouplerUnlock(); + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlockOrBuilder getChargeCouplerUnlockOrBuilder(); + + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + * @return Whether the deactivateVehicleKeys field is set. + */ + boolean hasDeactivateVehicleKeys(); + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + * @return The deactivateVehicleKeys. + */ + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys getDeactivateVehicleKeys(); + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeysOrBuilder getDeactivateVehicleKeysOrBuilder(); + + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + * @return Whether the activateVehicleKeys field is set. + */ + boolean hasActivateVehicleKeys(); + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + * @return The activateVehicleKeys. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys getActivateVehicleKeys(); + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeysOrBuilder getActivateVehicleKeysOrBuilder(); + + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.CommandCase getCommandCase(); + } + /** + *
+   * After the command was issued at VVA based on this
+   * command request the call will get a command request
+   * correlation message which matches the request id
+   * with the process id.
+   * Sending direction: App - BFF -> AppTwin
+   * 
+ * + * Protobuf type {@code proto.CommandRequest} + */ + public static final class CommandRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.CommandRequest) + CommandRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CommandRequest.class.getName()); + } + // Use CommandRequest.newBuilder() to construct. + private CommandRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private CommandRequest() { + vin_ = ""; + requestId_ = ""; + backend_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_CommandRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_CommandRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.class, com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Builder.class); + } + + /** + *
+     * Temporary backend switch field. Will be removed as soon as all commands are migrated to the VehicleAPI
+     * This field only needs to be set if the command is supported by both API from our backend. If this field is removed
+     * don't forget to set the field 36 to reserved.
+     * 
+ * + * Protobuf enum {@code proto.CommandRequest.Backend} + */ + public enum Backend + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+       * default value
+       * 
+ * + * VVA = 0; + */ + VVA(0), + /** + * VehicleAPI = 1; + */ + VehicleAPI(1), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Backend.class.getName()); + } + /** + *
+       * default value
+       * 
+ * + * VVA = 0; + */ + public static final int VVA_VALUE = 0; + /** + * VehicleAPI = 1; + */ + public static final int VehicleAPI_VALUE = 1; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Backend valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Backend forNumber(int value) { + switch (value) { + case 0: return VVA; + case 1: return VehicleAPI; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + Backend> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Backend findValueByNumber(int number) { + return Backend.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDescriptor().getEnumTypes().get(0); + } + + private static final Backend[] VALUES = values(); + + public static Backend valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Backend(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.CommandRequest.Backend) + } + + private int commandCase_ = 0; + @SuppressWarnings("serial") + private java.lang.Object command_; + public enum CommandCase + implements com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + AUXHEAT_START(2), + AUXHEAT_STOP(3), + AUXHEAT_CONFIGURE(4), + DOORS_LOCK(5), + DOORS_UNLOCK(6), + SUNROOF_OPEN(9), + SUNROOF_CLOSE(10), + SUNROOF_LIFT(11), + SUNROOF_MOVE(47), + WINDOWS_OPEN(12), + WINDOWS_CLOSE(13), + WINDOWS_VENTILATE(43), + WINDOWS_MOVE(44), + ENGINE_START(19), + ENGINE_STOP(20), + ZEV_PRECONDITIONING_START(21), + ZEV_PRECONDITIONING_STOP(22), + ZEV_PRECONDITION_CONFIGURE(25), + ZEV_PRECONDITION_CONFIGURE_SEATS(26), + SPEEDALERT_START(23), + SPEEDALERT_STOP(24), + BATTERY_CHARGE_PROGRAM(27), + BATTERY_MAX_SOC(28), + CHARGE_PROGRAM_CONFIGURE(34), + CHARGE_CONTROL_CONFIGURE(40), + CHARGE_OPT_CONFIGURE(29), + CHARGE_OPT_START(30), + CHARGE_OPT_STOP(31), + TEMPERATURE_CONFIGURE(32), + WEEK_PROFILE_CONFIGURE(33), + WEEK_PROFILE_CONFIGURE_V2(41), + SIGPOS_START(35), + THEFTALARM_CONFIRM_DAMAGEDETECTION(8), + THEFTALARM_DESELECT_DAMAGEDETECTION(14), + THEFTALARM_DESELECT_INTERIOR(15), + THEFTALARM_DESELECT_TOW(16), + THEFTALARM_SELECT_DAMAGEDETECTION(17), + THEFTALARM_SELECT_INTERIOR(18), + THEFTALARM_SELECT_TOW(37), + THEFTALARM_START(38), + THEFTALARM_STOP(39), + AUTOMATIC_VALET_PARKING_ACTIVATE(42), + CHARGE_FLAP_UNLOCK(45), + CHARGE_COUPLER_UNLOCK(46), + DEACTIVATE_VEHICLE_KEYS(48), + ACTIVATE_VEHICLE_KEYS(49), + COMMAND_NOT_SET(0); + private final int value; + private CommandCase(int value) { + this.value = value; + } + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static CommandCase valueOf(int value) { + return forNumber(value); + } + + public static CommandCase forNumber(int value) { + switch (value) { + case 2: return AUXHEAT_START; + case 3: return AUXHEAT_STOP; + case 4: return AUXHEAT_CONFIGURE; + case 5: return DOORS_LOCK; + case 6: return DOORS_UNLOCK; + case 9: return SUNROOF_OPEN; + case 10: return SUNROOF_CLOSE; + case 11: return SUNROOF_LIFT; + case 47: return SUNROOF_MOVE; + case 12: return WINDOWS_OPEN; + case 13: return WINDOWS_CLOSE; + case 43: return WINDOWS_VENTILATE; + case 44: return WINDOWS_MOVE; + case 19: return ENGINE_START; + case 20: return ENGINE_STOP; + case 21: return ZEV_PRECONDITIONING_START; + case 22: return ZEV_PRECONDITIONING_STOP; + case 25: return ZEV_PRECONDITION_CONFIGURE; + case 26: return ZEV_PRECONDITION_CONFIGURE_SEATS; + case 23: return SPEEDALERT_START; + case 24: return SPEEDALERT_STOP; + case 27: return BATTERY_CHARGE_PROGRAM; + case 28: return BATTERY_MAX_SOC; + case 34: return CHARGE_PROGRAM_CONFIGURE; + case 40: return CHARGE_CONTROL_CONFIGURE; + case 29: return CHARGE_OPT_CONFIGURE; + case 30: return CHARGE_OPT_START; + case 31: return CHARGE_OPT_STOP; + case 32: return TEMPERATURE_CONFIGURE; + case 33: return WEEK_PROFILE_CONFIGURE; + case 41: return WEEK_PROFILE_CONFIGURE_V2; + case 35: return SIGPOS_START; + case 8: return THEFTALARM_CONFIRM_DAMAGEDETECTION; + case 14: return THEFTALARM_DESELECT_DAMAGEDETECTION; + case 15: return THEFTALARM_DESELECT_INTERIOR; + case 16: return THEFTALARM_DESELECT_TOW; + case 17: return THEFTALARM_SELECT_DAMAGEDETECTION; + case 18: return THEFTALARM_SELECT_INTERIOR; + case 37: return THEFTALARM_SELECT_TOW; + case 38: return THEFTALARM_START; + case 39: return THEFTALARM_STOP; + case 42: return AUTOMATIC_VALET_PARKING_ACTIVATE; + case 45: return CHARGE_FLAP_UNLOCK; + case 46: return CHARGE_COUPLER_UNLOCK; + case 48: return DEACTIVATE_VEHICLE_KEYS; + case 49: return ACTIVATE_VEHICLE_KEYS; + case 0: return COMMAND_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public CommandCase + getCommandCase() { + return CommandCase.forNumber( + commandCase_); + } + + public static final int VIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + * string vin = 1; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + * string vin = 1; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int REQUEST_ID_FIELD_NUMBER = 7; + @SuppressWarnings("serial") + private volatile java.lang.Object requestId_ = ""; + /** + *
+     * Set this id to correlate a CommandStatus
+     * with this command request.
+     * 
+ * + * string request_id = 7; + * @return The requestId. + */ + @java.lang.Override + public java.lang.String getRequestId() { + java.lang.Object ref = requestId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + requestId_ = s; + return s; + } + } + /** + *
+     * Set this id to correlate a CommandStatus
+     * with this command request.
+     * 
+ * + * string request_id = 7; + * @return The bytes for requestId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRequestIdBytes() { + java.lang.Object ref = requestId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + requestId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BACKEND_FIELD_NUMBER = 36; + private int backend_ = 0; + /** + * .proto.CommandRequest.Backend backend = 36; + * @return The enum numeric value on the wire for backend. + */ + @java.lang.Override public int getBackendValue() { + return backend_; + } + /** + * .proto.CommandRequest.Backend backend = 36; + * @return The backend. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend getBackend() { + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend result = com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend.forNumber(backend_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend.UNRECOGNIZED : result; + } + + public static final int AUXHEAT_START_FIELD_NUMBER = 2; + /** + * .proto.AuxheatStart auxheat_start = 2; + * @return Whether the auxheatStart field is set. + */ + @java.lang.Override + public boolean hasAuxheatStart() { + return commandCase_ == 2; + } + /** + * .proto.AuxheatStart auxheat_start = 2; + * @return The auxheatStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart getAuxheatStart() { + if (commandCase_ == 2) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance(); + } + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStartOrBuilder getAuxheatStartOrBuilder() { + if (commandCase_ == 2) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance(); + } + + public static final int AUXHEAT_STOP_FIELD_NUMBER = 3; + /** + * .proto.AuxheatStop auxheat_stop = 3; + * @return Whether the auxheatStop field is set. + */ + @java.lang.Override + public boolean hasAuxheatStop() { + return commandCase_ == 3; + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + * @return The auxheatStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop getAuxheatStop() { + if (commandCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance(); + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStopOrBuilder getAuxheatStopOrBuilder() { + if (commandCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance(); + } + + public static final int AUXHEAT_CONFIGURE_FIELD_NUMBER = 4; + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + * @return Whether the auxheatConfigure field is set. + */ + @java.lang.Override + public boolean hasAuxheatConfigure() { + return commandCase_ == 4; + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + * @return The auxheatConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure getAuxheatConfigure() { + if (commandCase_ == 4) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance(); + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigureOrBuilder getAuxheatConfigureOrBuilder() { + if (commandCase_ == 4) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance(); + } + + public static final int DOORS_LOCK_FIELD_NUMBER = 5; + /** + * .proto.DoorsLock doors_lock = 5; + * @return Whether the doorsLock field is set. + */ + @java.lang.Override + public boolean hasDoorsLock() { + return commandCase_ == 5; + } + /** + * .proto.DoorsLock doors_lock = 5; + * @return The doorsLock. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock getDoorsLock() { + if (commandCase_ == 5) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance(); + } + /** + * .proto.DoorsLock doors_lock = 5; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLockOrBuilder getDoorsLockOrBuilder() { + if (commandCase_ == 5) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance(); + } + + public static final int DOORS_UNLOCK_FIELD_NUMBER = 6; + /** + * .proto.DoorsUnlock doors_unlock = 6; + * @return Whether the doorsUnlock field is set. + */ + @java.lang.Override + public boolean hasDoorsUnlock() { + return commandCase_ == 6; + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + * @return The doorsUnlock. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock getDoorsUnlock() { + if (commandCase_ == 6) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance(); + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlockOrBuilder getDoorsUnlockOrBuilder() { + if (commandCase_ == 6) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance(); + } + + public static final int SUNROOF_OPEN_FIELD_NUMBER = 9; + /** + * .proto.SunroofOpen sunroof_open = 9; + * @return Whether the sunroofOpen field is set. + */ + @java.lang.Override + public boolean hasSunroofOpen() { + return commandCase_ == 9; + } + /** + * .proto.SunroofOpen sunroof_open = 9; + * @return The sunroofOpen. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen getSunroofOpen() { + if (commandCase_ == 9) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance(); + } + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpenOrBuilder getSunroofOpenOrBuilder() { + if (commandCase_ == 9) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance(); + } + + public static final int SUNROOF_CLOSE_FIELD_NUMBER = 10; + /** + * .proto.SunroofClose sunroof_close = 10; + * @return Whether the sunroofClose field is set. + */ + @java.lang.Override + public boolean hasSunroofClose() { + return commandCase_ == 10; + } + /** + * .proto.SunroofClose sunroof_close = 10; + * @return The sunroofClose. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose getSunroofClose() { + if (commandCase_ == 10) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance(); + } + /** + * .proto.SunroofClose sunroof_close = 10; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofCloseOrBuilder getSunroofCloseOrBuilder() { + if (commandCase_ == 10) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance(); + } + + public static final int SUNROOF_LIFT_FIELD_NUMBER = 11; + /** + * .proto.SunroofLift sunroof_lift = 11; + * @return Whether the sunroofLift field is set. + */ + @java.lang.Override + public boolean hasSunroofLift() { + return commandCase_ == 11; + } + /** + * .proto.SunroofLift sunroof_lift = 11; + * @return The sunroofLift. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift getSunroofLift() { + if (commandCase_ == 11) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance(); + } + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLiftOrBuilder getSunroofLiftOrBuilder() { + if (commandCase_ == 11) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance(); + } + + public static final int SUNROOF_MOVE_FIELD_NUMBER = 47; + /** + * .proto.SunroofMove sunroof_move = 47; + * @return Whether the sunroofMove field is set. + */ + @java.lang.Override + public boolean hasSunroofMove() { + return commandCase_ == 47; + } + /** + * .proto.SunroofMove sunroof_move = 47; + * @return The sunroofMove. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove getSunroofMove() { + if (commandCase_ == 47) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance(); + } + /** + * .proto.SunroofMove sunroof_move = 47; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMoveOrBuilder getSunroofMoveOrBuilder() { + if (commandCase_ == 47) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance(); + } + + public static final int WINDOWS_OPEN_FIELD_NUMBER = 12; + /** + * .proto.WindowsOpen windows_open = 12; + * @return Whether the windowsOpen field is set. + */ + @java.lang.Override + public boolean hasWindowsOpen() { + return commandCase_ == 12; + } + /** + * .proto.WindowsOpen windows_open = 12; + * @return The windowsOpen. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen getWindowsOpen() { + if (commandCase_ == 12) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance(); + } + /** + * .proto.WindowsOpen windows_open = 12; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpenOrBuilder getWindowsOpenOrBuilder() { + if (commandCase_ == 12) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance(); + } + + public static final int WINDOWS_CLOSE_FIELD_NUMBER = 13; + /** + * .proto.WindowsClose windows_close = 13; + * @return Whether the windowsClose field is set. + */ + @java.lang.Override + public boolean hasWindowsClose() { + return commandCase_ == 13; + } + /** + * .proto.WindowsClose windows_close = 13; + * @return The windowsClose. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose getWindowsClose() { + if (commandCase_ == 13) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance(); + } + /** + * .proto.WindowsClose windows_close = 13; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsCloseOrBuilder getWindowsCloseOrBuilder() { + if (commandCase_ == 13) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance(); + } + + public static final int WINDOWS_VENTILATE_FIELD_NUMBER = 43; + /** + * .proto.WindowsVentilate windows_ventilate = 43; + * @return Whether the windowsVentilate field is set. + */ + @java.lang.Override + public boolean hasWindowsVentilate() { + return commandCase_ == 43; + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + * @return The windowsVentilate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate getWindowsVentilate() { + if (commandCase_ == 43) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance(); + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilateOrBuilder getWindowsVentilateOrBuilder() { + if (commandCase_ == 43) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance(); + } + + public static final int WINDOWS_MOVE_FIELD_NUMBER = 44; + /** + * .proto.WindowsMove windows_move = 44; + * @return Whether the windowsMove field is set. + */ + @java.lang.Override + public boolean hasWindowsMove() { + return commandCase_ == 44; + } + /** + * .proto.WindowsMove windows_move = 44; + * @return The windowsMove. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove getWindowsMove() { + if (commandCase_ == 44) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance(); + } + /** + * .proto.WindowsMove windows_move = 44; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMoveOrBuilder getWindowsMoveOrBuilder() { + if (commandCase_ == 44) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance(); + } + + public static final int ENGINE_START_FIELD_NUMBER = 19; + /** + * .proto.EngineStart engine_start = 19; + * @return Whether the engineStart field is set. + */ + @java.lang.Override + public boolean hasEngineStart() { + return commandCase_ == 19; + } + /** + * .proto.EngineStart engine_start = 19; + * @return The engineStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStart getEngineStart() { + if (commandCase_ == 19) { + return (com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance(); + } + /** + * .proto.EngineStart engine_start = 19; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStartOrBuilder getEngineStartOrBuilder() { + if (commandCase_ == 19) { + return (com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance(); + } + + public static final int ENGINE_STOP_FIELD_NUMBER = 20; + /** + * .proto.EngineStop engine_stop = 20; + * @return Whether the engineStop field is set. + */ + @java.lang.Override + public boolean hasEngineStop() { + return commandCase_ == 20; + } + /** + * .proto.EngineStop engine_stop = 20; + * @return The engineStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStop getEngineStop() { + if (commandCase_ == 20) { + return (com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance(); + } + /** + * .proto.EngineStop engine_stop = 20; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStopOrBuilder getEngineStopOrBuilder() { + if (commandCase_ == 20) { + return (com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance(); + } + + public static final int ZEV_PRECONDITIONING_START_FIELD_NUMBER = 21; + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + * @return Whether the zevPreconditioningStart field is set. + */ + @java.lang.Override + public boolean hasZevPreconditioningStart() { + return commandCase_ == 21; + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + * @return The zevPreconditioningStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart getZevPreconditioningStart() { + if (commandCase_ == 21) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance(); + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStartOrBuilder getZevPreconditioningStartOrBuilder() { + if (commandCase_ == 21) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance(); + } + + public static final int ZEV_PRECONDITIONING_STOP_FIELD_NUMBER = 22; + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + * @return Whether the zevPreconditioningStop field is set. + */ + @java.lang.Override + public boolean hasZevPreconditioningStop() { + return commandCase_ == 22; + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + * @return The zevPreconditioningStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop getZevPreconditioningStop() { + if (commandCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance(); + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStopOrBuilder getZevPreconditioningStopOrBuilder() { + if (commandCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance(); + } + + public static final int ZEV_PRECONDITION_CONFIGURE_FIELD_NUMBER = 25; + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + * @return Whether the zevPreconditionConfigure field is set. + */ + @java.lang.Override + public boolean hasZevPreconditionConfigure() { + return commandCase_ == 25; + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + * @return The zevPreconditionConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure getZevPreconditionConfigure() { + if (commandCase_ == 25) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance(); + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureOrBuilder getZevPreconditionConfigureOrBuilder() { + if (commandCase_ == 25) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance(); + } + + public static final int ZEV_PRECONDITION_CONFIGURE_SEATS_FIELD_NUMBER = 26; + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + * @return Whether the zevPreconditionConfigureSeats field is set. + */ + @java.lang.Override + public boolean hasZevPreconditionConfigureSeats() { + return commandCase_ == 26; + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + * @return The zevPreconditionConfigureSeats. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats getZevPreconditionConfigureSeats() { + if (commandCase_ == 26) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance(); + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeatsOrBuilder getZevPreconditionConfigureSeatsOrBuilder() { + if (commandCase_ == 26) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance(); + } + + public static final int SPEEDALERT_START_FIELD_NUMBER = 23; + /** + * .proto.SpeedalertStart speedalert_start = 23; + * @return Whether the speedalertStart field is set. + */ + @java.lang.Override + public boolean hasSpeedalertStart() { + return commandCase_ == 23; + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + * @return The speedalertStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart getSpeedalertStart() { + if (commandCase_ == 23) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance(); + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStartOrBuilder getSpeedalertStartOrBuilder() { + if (commandCase_ == 23) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance(); + } + + public static final int SPEEDALERT_STOP_FIELD_NUMBER = 24; + /** + * .proto.SpeedalertStop speedalert_stop = 24; + * @return Whether the speedalertStop field is set. + */ + @java.lang.Override + public boolean hasSpeedalertStop() { + return commandCase_ == 24; + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + * @return The speedalertStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop getSpeedalertStop() { + if (commandCase_ == 24) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance(); + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStopOrBuilder getSpeedalertStopOrBuilder() { + if (commandCase_ == 24) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance(); + } + + public static final int BATTERY_CHARGE_PROGRAM_FIELD_NUMBER = 27; + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + * @return Whether the batteryChargeProgram field is set. + */ + @java.lang.Override + public boolean hasBatteryChargeProgram() { + return commandCase_ == 27; + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + * @return The batteryChargeProgram. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure getBatteryChargeProgram() { + if (commandCase_ == 27) { + return (com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance(); + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigureOrBuilder getBatteryChargeProgramOrBuilder() { + if (commandCase_ == 27) { + return (com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance(); + } + + public static final int BATTERY_MAX_SOC_FIELD_NUMBER = 28; + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + * @return Whether the batteryMaxSoc field is set. + */ + @java.lang.Override + public boolean hasBatteryMaxSoc() { + return commandCase_ == 28; + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + * @return The batteryMaxSoc. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure getBatteryMaxSoc() { + if (commandCase_ == 28) { + return (com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance(); + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigureOrBuilder getBatteryMaxSocOrBuilder() { + if (commandCase_ == 28) { + return (com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance(); + } + + public static final int CHARGE_PROGRAM_CONFIGURE_FIELD_NUMBER = 34; + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + * @return Whether the chargeProgramConfigure field is set. + */ + @java.lang.Override + public boolean hasChargeProgramConfigure() { + return commandCase_ == 34; + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + * @return The chargeProgramConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure getChargeProgramConfigure() { + if (commandCase_ == 34) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance(); + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigureOrBuilder getChargeProgramConfigureOrBuilder() { + if (commandCase_ == 34) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance(); + } + + public static final int CHARGE_CONTROL_CONFIGURE_FIELD_NUMBER = 40; + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + * @return Whether the chargeControlConfigure field is set. + */ + @java.lang.Override + public boolean hasChargeControlConfigure() { + return commandCase_ == 40; + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + * @return The chargeControlConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure getChargeControlConfigure() { + if (commandCase_ == 40) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance(); + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigureOrBuilder getChargeControlConfigureOrBuilder() { + if (commandCase_ == 40) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance(); + } + + public static final int CHARGE_OPT_CONFIGURE_FIELD_NUMBER = 29; + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + * @return Whether the chargeOptConfigure field is set. + */ + @java.lang.Override + public boolean hasChargeOptConfigure() { + return commandCase_ == 29; + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + * @return The chargeOptConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure getChargeOptConfigure() { + if (commandCase_ == 29) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance(); + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigureOrBuilder getChargeOptConfigureOrBuilder() { + if (commandCase_ == 29) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance(); + } + + public static final int CHARGE_OPT_START_FIELD_NUMBER = 30; + /** + * .proto.ChargeOptStart charge_opt_start = 30; + * @return Whether the chargeOptStart field is set. + */ + @java.lang.Override + public boolean hasChargeOptStart() { + return commandCase_ == 30; + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + * @return The chargeOptStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart getChargeOptStart() { + if (commandCase_ == 30) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance(); + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStartOrBuilder getChargeOptStartOrBuilder() { + if (commandCase_ == 30) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance(); + } + + public static final int CHARGE_OPT_STOP_FIELD_NUMBER = 31; + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + * @return Whether the chargeOptStop field is set. + */ + @java.lang.Override + public boolean hasChargeOptStop() { + return commandCase_ == 31; + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + * @return The chargeOptStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop getChargeOptStop() { + if (commandCase_ == 31) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance(); + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStopOrBuilder getChargeOptStopOrBuilder() { + if (commandCase_ == 31) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance(); + } + + public static final int TEMPERATURE_CONFIGURE_FIELD_NUMBER = 32; + /** + * .proto.TemperatureConfigure temperature_configure = 32; + * @return Whether the temperatureConfigure field is set. + */ + @java.lang.Override + public boolean hasTemperatureConfigure() { + return commandCase_ == 32; + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + * @return The temperatureConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure getTemperatureConfigure() { + if (commandCase_ == 32) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance(); + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigureOrBuilder getTemperatureConfigureOrBuilder() { + if (commandCase_ == 32) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance(); + } + + public static final int WEEK_PROFILE_CONFIGURE_FIELD_NUMBER = 33; + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + * @return Whether the weekProfileConfigure field is set. + */ + @java.lang.Override + public boolean hasWeekProfileConfigure() { + return commandCase_ == 33; + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + * @return The weekProfileConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure getWeekProfileConfigure() { + if (commandCase_ == 33) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance(); + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureOrBuilder getWeekProfileConfigureOrBuilder() { + if (commandCase_ == 33) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance(); + } + + public static final int WEEK_PROFILE_CONFIGURE_V2_FIELD_NUMBER = 41; + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + * @return Whether the weekProfileConfigureV2 field is set. + */ + @java.lang.Override + public boolean hasWeekProfileConfigureV2() { + return commandCase_ == 41; + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + * @return The weekProfileConfigureV2. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 getWeekProfileConfigureV2() { + if (commandCase_ == 41) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance(); + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2OrBuilder getWeekProfileConfigureV2OrBuilder() { + if (commandCase_ == 41) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance(); + } + + public static final int SIGPOS_START_FIELD_NUMBER = 35; + /** + * .proto.SigPosStart sigpos_start = 35; + * @return Whether the sigposStart field is set. + */ + @java.lang.Override + public boolean hasSigposStart() { + return commandCase_ == 35; + } + /** + * .proto.SigPosStart sigpos_start = 35; + * @return The sigposStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart getSigposStart() { + if (commandCase_ == 35) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance(); + } + /** + * .proto.SigPosStart sigpos_start = 35; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStartOrBuilder getSigposStartOrBuilder() { + if (commandCase_ == 35) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance(); + } + + public static final int THEFTALARM_CONFIRM_DAMAGEDETECTION_FIELD_NUMBER = 8; + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + * @return Whether the theftalarmConfirmDamagedetection field is set. + */ + @java.lang.Override + public boolean hasTheftalarmConfirmDamagedetection() { + return commandCase_ == 8; + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + * @return The theftalarmConfirmDamagedetection. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection getTheftalarmConfirmDamagedetection() { + if (commandCase_ == 8) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance(); + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetectionOrBuilder getTheftalarmConfirmDamagedetectionOrBuilder() { + if (commandCase_ == 8) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance(); + } + + public static final int THEFTALARM_DESELECT_DAMAGEDETECTION_FIELD_NUMBER = 14; + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + * @return Whether the theftalarmDeselectDamagedetection field is set. + */ + @java.lang.Override + public boolean hasTheftalarmDeselectDamagedetection() { + return commandCase_ == 14; + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + * @return The theftalarmDeselectDamagedetection. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection getTheftalarmDeselectDamagedetection() { + if (commandCase_ == 14) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance(); + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetectionOrBuilder getTheftalarmDeselectDamagedetectionOrBuilder() { + if (commandCase_ == 14) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance(); + } + + public static final int THEFTALARM_DESELECT_INTERIOR_FIELD_NUMBER = 15; + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + * @return Whether the theftalarmDeselectInterior field is set. + */ + @java.lang.Override + public boolean hasTheftalarmDeselectInterior() { + return commandCase_ == 15; + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + * @return The theftalarmDeselectInterior. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior getTheftalarmDeselectInterior() { + if (commandCase_ == 15) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance(); + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInteriorOrBuilder getTheftalarmDeselectInteriorOrBuilder() { + if (commandCase_ == 15) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance(); + } + + public static final int THEFTALARM_DESELECT_TOW_FIELD_NUMBER = 16; + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + * @return Whether the theftalarmDeselectTow field is set. + */ + @java.lang.Override + public boolean hasTheftalarmDeselectTow() { + return commandCase_ == 16; + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + * @return The theftalarmDeselectTow. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow getTheftalarmDeselectTow() { + if (commandCase_ == 16) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance(); + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTowOrBuilder getTheftalarmDeselectTowOrBuilder() { + if (commandCase_ == 16) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance(); + } + + public static final int THEFTALARM_SELECT_DAMAGEDETECTION_FIELD_NUMBER = 17; + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + * @return Whether the theftalarmSelectDamagedetection field is set. + */ + @java.lang.Override + public boolean hasTheftalarmSelectDamagedetection() { + return commandCase_ == 17; + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + * @return The theftalarmSelectDamagedetection. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection getTheftalarmSelectDamagedetection() { + if (commandCase_ == 17) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance(); + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetectionOrBuilder getTheftalarmSelectDamagedetectionOrBuilder() { + if (commandCase_ == 17) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance(); + } + + public static final int THEFTALARM_SELECT_INTERIOR_FIELD_NUMBER = 18; + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + * @return Whether the theftalarmSelectInterior field is set. + */ + @java.lang.Override + public boolean hasTheftalarmSelectInterior() { + return commandCase_ == 18; + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + * @return The theftalarmSelectInterior. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior getTheftalarmSelectInterior() { + if (commandCase_ == 18) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance(); + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInteriorOrBuilder getTheftalarmSelectInteriorOrBuilder() { + if (commandCase_ == 18) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance(); + } + + public static final int THEFTALARM_SELECT_TOW_FIELD_NUMBER = 37; + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + * @return Whether the theftalarmSelectTow field is set. + */ + @java.lang.Override + public boolean hasTheftalarmSelectTow() { + return commandCase_ == 37; + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + * @return The theftalarmSelectTow. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow getTheftalarmSelectTow() { + if (commandCase_ == 37) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance(); + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTowOrBuilder getTheftalarmSelectTowOrBuilder() { + if (commandCase_ == 37) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance(); + } + + public static final int THEFTALARM_START_FIELD_NUMBER = 38; + /** + * .proto.TheftalarmStart theftalarm_start = 38; + * @return Whether the theftalarmStart field is set. + */ + @java.lang.Override + public boolean hasTheftalarmStart() { + return commandCase_ == 38; + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + * @return The theftalarmStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart getTheftalarmStart() { + if (commandCase_ == 38) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance(); + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStartOrBuilder getTheftalarmStartOrBuilder() { + if (commandCase_ == 38) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance(); + } + + public static final int THEFTALARM_STOP_FIELD_NUMBER = 39; + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + * @return Whether the theftalarmStop field is set. + */ + @java.lang.Override + public boolean hasTheftalarmStop() { + return commandCase_ == 39; + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + * @return The theftalarmStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop getTheftalarmStop() { + if (commandCase_ == 39) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance(); + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStopOrBuilder getTheftalarmStopOrBuilder() { + if (commandCase_ == 39) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance(); + } + + public static final int AUTOMATIC_VALET_PARKING_ACTIVATE_FIELD_NUMBER = 42; + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + * @return Whether the automaticValetParkingActivate field is set. + */ + @java.lang.Override + public boolean hasAutomaticValetParkingActivate() { + return commandCase_ == 42; + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + * @return The automaticValetParkingActivate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate getAutomaticValetParkingActivate() { + if (commandCase_ == 42) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance(); + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivateOrBuilder getAutomaticValetParkingActivateOrBuilder() { + if (commandCase_ == 42) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance(); + } + + public static final int CHARGE_FLAP_UNLOCK_FIELD_NUMBER = 45; + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + * @return Whether the chargeFlapUnlock field is set. + */ + @java.lang.Override + public boolean hasChargeFlapUnlock() { + return commandCase_ == 45; + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + * @return The chargeFlapUnlock. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock getChargeFlapUnlock() { + if (commandCase_ == 45) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance(); + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlockOrBuilder getChargeFlapUnlockOrBuilder() { + if (commandCase_ == 45) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance(); + } + + public static final int CHARGE_COUPLER_UNLOCK_FIELD_NUMBER = 46; + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + * @return Whether the chargeCouplerUnlock field is set. + */ + @java.lang.Override + public boolean hasChargeCouplerUnlock() { + return commandCase_ == 46; + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + * @return The chargeCouplerUnlock. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock getChargeCouplerUnlock() { + if (commandCase_ == 46) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance(); + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlockOrBuilder getChargeCouplerUnlockOrBuilder() { + if (commandCase_ == 46) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance(); + } + + public static final int DEACTIVATE_VEHICLE_KEYS_FIELD_NUMBER = 48; + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + * @return Whether the deactivateVehicleKeys field is set. + */ + @java.lang.Override + public boolean hasDeactivateVehicleKeys() { + return commandCase_ == 48; + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + * @return The deactivateVehicleKeys. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys getDeactivateVehicleKeys() { + if (commandCase_ == 48) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance(); + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeysOrBuilder getDeactivateVehicleKeysOrBuilder() { + if (commandCase_ == 48) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance(); + } + + public static final int ACTIVATE_VEHICLE_KEYS_FIELD_NUMBER = 49; + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + * @return Whether the activateVehicleKeys field is set. + */ + @java.lang.Override + public boolean hasActivateVehicleKeys() { + return commandCase_ == 49; + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + * @return The activateVehicleKeys. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys getActivateVehicleKeys() { + if (commandCase_ == 49) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance(); + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeysOrBuilder getActivateVehicleKeysOrBuilder() { + if (commandCase_ == 49) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, vin_); + } + if (commandCase_ == 2) { + output.writeMessage(2, (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) command_); + } + if (commandCase_ == 3) { + output.writeMessage(3, (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) command_); + } + if (commandCase_ == 4) { + output.writeMessage(4, (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) command_); + } + if (commandCase_ == 5) { + output.writeMessage(5, (com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) command_); + } + if (commandCase_ == 6) { + output.writeMessage(6, (com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) command_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 7, requestId_); + } + if (commandCase_ == 8) { + output.writeMessage(8, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) command_); + } + if (commandCase_ == 9) { + output.writeMessage(9, (com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) command_); + } + if (commandCase_ == 10) { + output.writeMessage(10, (com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) command_); + } + if (commandCase_ == 11) { + output.writeMessage(11, (com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) command_); + } + if (commandCase_ == 12) { + output.writeMessage(12, (com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) command_); + } + if (commandCase_ == 13) { + output.writeMessage(13, (com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) command_); + } + if (commandCase_ == 14) { + output.writeMessage(14, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) command_); + } + if (commandCase_ == 15) { + output.writeMessage(15, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) command_); + } + if (commandCase_ == 16) { + output.writeMessage(16, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) command_); + } + if (commandCase_ == 17) { + output.writeMessage(17, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) command_); + } + if (commandCase_ == 18) { + output.writeMessage(18, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) command_); + } + if (commandCase_ == 19) { + output.writeMessage(19, (com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) command_); + } + if (commandCase_ == 20) { + output.writeMessage(20, (com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) command_); + } + if (commandCase_ == 21) { + output.writeMessage(21, (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) command_); + } + if (commandCase_ == 22) { + output.writeMessage(22, (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) command_); + } + if (commandCase_ == 23) { + output.writeMessage(23, (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) command_); + } + if (commandCase_ == 24) { + output.writeMessage(24, (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) command_); + } + if (commandCase_ == 25) { + output.writeMessage(25, (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) command_); + } + if (commandCase_ == 26) { + output.writeMessage(26, (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) command_); + } + if (commandCase_ == 27) { + output.writeMessage(27, (com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) command_); + } + if (commandCase_ == 28) { + output.writeMessage(28, (com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) command_); + } + if (commandCase_ == 29) { + output.writeMessage(29, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) command_); + } + if (commandCase_ == 30) { + output.writeMessage(30, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) command_); + } + if (commandCase_ == 31) { + output.writeMessage(31, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) command_); + } + if (commandCase_ == 32) { + output.writeMessage(32, (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) command_); + } + if (commandCase_ == 33) { + output.writeMessage(33, (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) command_); + } + if (commandCase_ == 34) { + output.writeMessage(34, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) command_); + } + if (commandCase_ == 35) { + output.writeMessage(35, (com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) command_); + } + if (backend_ != com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend.VVA.getNumber()) { + output.writeEnum(36, backend_); + } + if (commandCase_ == 37) { + output.writeMessage(37, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) command_); + } + if (commandCase_ == 38) { + output.writeMessage(38, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) command_); + } + if (commandCase_ == 39) { + output.writeMessage(39, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) command_); + } + if (commandCase_ == 40) { + output.writeMessage(40, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) command_); + } + if (commandCase_ == 41) { + output.writeMessage(41, (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) command_); + } + if (commandCase_ == 42) { + output.writeMessage(42, (com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) command_); + } + if (commandCase_ == 43) { + output.writeMessage(43, (com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) command_); + } + if (commandCase_ == 44) { + output.writeMessage(44, (com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) command_); + } + if (commandCase_ == 45) { + output.writeMessage(45, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) command_); + } + if (commandCase_ == 46) { + output.writeMessage(46, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) command_); + } + if (commandCase_ == 47) { + output.writeMessage(47, (com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) command_); + } + if (commandCase_ == 48) { + output.writeMessage(48, (com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) command_); + } + if (commandCase_ == 49) { + output.writeMessage(49, (com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) command_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, vin_); + } + if (commandCase_ == 2) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) command_); + } + if (commandCase_ == 3) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) command_); + } + if (commandCase_ == 4) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) command_); + } + if (commandCase_ == 5) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, (com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) command_); + } + if (commandCase_ == 6) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, (com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) command_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(7, requestId_); + } + if (commandCase_ == 8) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) command_); + } + if (commandCase_ == 9) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, (com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) command_); + } + if (commandCase_ == 10) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, (com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) command_); + } + if (commandCase_ == 11) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, (com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) command_); + } + if (commandCase_ == 12) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(12, (com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) command_); + } + if (commandCase_ == 13) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(13, (com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) command_); + } + if (commandCase_ == 14) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(14, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) command_); + } + if (commandCase_ == 15) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(15, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) command_); + } + if (commandCase_ == 16) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(16, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) command_); + } + if (commandCase_ == 17) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(17, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) command_); + } + if (commandCase_ == 18) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(18, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) command_); + } + if (commandCase_ == 19) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(19, (com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) command_); + } + if (commandCase_ == 20) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(20, (com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) command_); + } + if (commandCase_ == 21) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(21, (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) command_); + } + if (commandCase_ == 22) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(22, (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) command_); + } + if (commandCase_ == 23) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(23, (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) command_); + } + if (commandCase_ == 24) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(24, (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) command_); + } + if (commandCase_ == 25) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(25, (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) command_); + } + if (commandCase_ == 26) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(26, (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) command_); + } + if (commandCase_ == 27) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(27, (com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) command_); + } + if (commandCase_ == 28) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(28, (com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) command_); + } + if (commandCase_ == 29) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(29, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) command_); + } + if (commandCase_ == 30) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(30, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) command_); + } + if (commandCase_ == 31) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(31, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) command_); + } + if (commandCase_ == 32) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(32, (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) command_); + } + if (commandCase_ == 33) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(33, (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) command_); + } + if (commandCase_ == 34) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(34, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) command_); + } + if (commandCase_ == 35) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(35, (com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) command_); + } + if (backend_ != com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend.VVA.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(36, backend_); + } + if (commandCase_ == 37) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(37, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) command_); + } + if (commandCase_ == 38) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(38, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) command_); + } + if (commandCase_ == 39) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(39, (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) command_); + } + if (commandCase_ == 40) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(40, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) command_); + } + if (commandCase_ == 41) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(41, (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) command_); + } + if (commandCase_ == 42) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(42, (com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) command_); + } + if (commandCase_ == 43) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(43, (com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) command_); + } + if (commandCase_ == 44) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(44, (com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) command_); + } + if (commandCase_ == 45) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(45, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) command_); + } + if (commandCase_ == 46) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(46, (com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) command_); + } + if (commandCase_ == 47) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(47, (com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) command_); + } + if (commandCase_ == 48) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(48, (com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) command_); + } + if (commandCase_ == 49) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(49, (com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) command_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest other = (com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) obj; + + if (!getVin() + .equals(other.getVin())) return false; + if (!getRequestId() + .equals(other.getRequestId())) return false; + if (backend_ != other.backend_) return false; + if (!getCommandCase().equals(other.getCommandCase())) return false; + switch (commandCase_) { + case 2: + if (!getAuxheatStart() + .equals(other.getAuxheatStart())) return false; + break; + case 3: + if (!getAuxheatStop() + .equals(other.getAuxheatStop())) return false; + break; + case 4: + if (!getAuxheatConfigure() + .equals(other.getAuxheatConfigure())) return false; + break; + case 5: + if (!getDoorsLock() + .equals(other.getDoorsLock())) return false; + break; + case 6: + if (!getDoorsUnlock() + .equals(other.getDoorsUnlock())) return false; + break; + case 9: + if (!getSunroofOpen() + .equals(other.getSunroofOpen())) return false; + break; + case 10: + if (!getSunroofClose() + .equals(other.getSunroofClose())) return false; + break; + case 11: + if (!getSunroofLift() + .equals(other.getSunroofLift())) return false; + break; + case 47: + if (!getSunroofMove() + .equals(other.getSunroofMove())) return false; + break; + case 12: + if (!getWindowsOpen() + .equals(other.getWindowsOpen())) return false; + break; + case 13: + if (!getWindowsClose() + .equals(other.getWindowsClose())) return false; + break; + case 43: + if (!getWindowsVentilate() + .equals(other.getWindowsVentilate())) return false; + break; + case 44: + if (!getWindowsMove() + .equals(other.getWindowsMove())) return false; + break; + case 19: + if (!getEngineStart() + .equals(other.getEngineStart())) return false; + break; + case 20: + if (!getEngineStop() + .equals(other.getEngineStop())) return false; + break; + case 21: + if (!getZevPreconditioningStart() + .equals(other.getZevPreconditioningStart())) return false; + break; + case 22: + if (!getZevPreconditioningStop() + .equals(other.getZevPreconditioningStop())) return false; + break; + case 25: + if (!getZevPreconditionConfigure() + .equals(other.getZevPreconditionConfigure())) return false; + break; + case 26: + if (!getZevPreconditionConfigureSeats() + .equals(other.getZevPreconditionConfigureSeats())) return false; + break; + case 23: + if (!getSpeedalertStart() + .equals(other.getSpeedalertStart())) return false; + break; + case 24: + if (!getSpeedalertStop() + .equals(other.getSpeedalertStop())) return false; + break; + case 27: + if (!getBatteryChargeProgram() + .equals(other.getBatteryChargeProgram())) return false; + break; + case 28: + if (!getBatteryMaxSoc() + .equals(other.getBatteryMaxSoc())) return false; + break; + case 34: + if (!getChargeProgramConfigure() + .equals(other.getChargeProgramConfigure())) return false; + break; + case 40: + if (!getChargeControlConfigure() + .equals(other.getChargeControlConfigure())) return false; + break; + case 29: + if (!getChargeOptConfigure() + .equals(other.getChargeOptConfigure())) return false; + break; + case 30: + if (!getChargeOptStart() + .equals(other.getChargeOptStart())) return false; + break; + case 31: + if (!getChargeOptStop() + .equals(other.getChargeOptStop())) return false; + break; + case 32: + if (!getTemperatureConfigure() + .equals(other.getTemperatureConfigure())) return false; + break; + case 33: + if (!getWeekProfileConfigure() + .equals(other.getWeekProfileConfigure())) return false; + break; + case 41: + if (!getWeekProfileConfigureV2() + .equals(other.getWeekProfileConfigureV2())) return false; + break; + case 35: + if (!getSigposStart() + .equals(other.getSigposStart())) return false; + break; + case 8: + if (!getTheftalarmConfirmDamagedetection() + .equals(other.getTheftalarmConfirmDamagedetection())) return false; + break; + case 14: + if (!getTheftalarmDeselectDamagedetection() + .equals(other.getTheftalarmDeselectDamagedetection())) return false; + break; + case 15: + if (!getTheftalarmDeselectInterior() + .equals(other.getTheftalarmDeselectInterior())) return false; + break; + case 16: + if (!getTheftalarmDeselectTow() + .equals(other.getTheftalarmDeselectTow())) return false; + break; + case 17: + if (!getTheftalarmSelectDamagedetection() + .equals(other.getTheftalarmSelectDamagedetection())) return false; + break; + case 18: + if (!getTheftalarmSelectInterior() + .equals(other.getTheftalarmSelectInterior())) return false; + break; + case 37: + if (!getTheftalarmSelectTow() + .equals(other.getTheftalarmSelectTow())) return false; + break; + case 38: + if (!getTheftalarmStart() + .equals(other.getTheftalarmStart())) return false; + break; + case 39: + if (!getTheftalarmStop() + .equals(other.getTheftalarmStop())) return false; + break; + case 42: + if (!getAutomaticValetParkingActivate() + .equals(other.getAutomaticValetParkingActivate())) return false; + break; + case 45: + if (!getChargeFlapUnlock() + .equals(other.getChargeFlapUnlock())) return false; + break; + case 46: + if (!getChargeCouplerUnlock() + .equals(other.getChargeCouplerUnlock())) return false; + break; + case 48: + if (!getDeactivateVehicleKeys() + .equals(other.getDeactivateVehicleKeys())) return false; + break; + case 49: + if (!getActivateVehicleKeys() + .equals(other.getActivateVehicleKeys())) return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER; + hash = (53 * hash) + getRequestId().hashCode(); + hash = (37 * hash) + BACKEND_FIELD_NUMBER; + hash = (53 * hash) + backend_; + switch (commandCase_) { + case 2: + hash = (37 * hash) + AUXHEAT_START_FIELD_NUMBER; + hash = (53 * hash) + getAuxheatStart().hashCode(); + break; + case 3: + hash = (37 * hash) + AUXHEAT_STOP_FIELD_NUMBER; + hash = (53 * hash) + getAuxheatStop().hashCode(); + break; + case 4: + hash = (37 * hash) + AUXHEAT_CONFIGURE_FIELD_NUMBER; + hash = (53 * hash) + getAuxheatConfigure().hashCode(); + break; + case 5: + hash = (37 * hash) + DOORS_LOCK_FIELD_NUMBER; + hash = (53 * hash) + getDoorsLock().hashCode(); + break; + case 6: + hash = (37 * hash) + DOORS_UNLOCK_FIELD_NUMBER; + hash = (53 * hash) + getDoorsUnlock().hashCode(); + break; + case 9: + hash = (37 * hash) + SUNROOF_OPEN_FIELD_NUMBER; + hash = (53 * hash) + getSunroofOpen().hashCode(); + break; + case 10: + hash = (37 * hash) + SUNROOF_CLOSE_FIELD_NUMBER; + hash = (53 * hash) + getSunroofClose().hashCode(); + break; + case 11: + hash = (37 * hash) + SUNROOF_LIFT_FIELD_NUMBER; + hash = (53 * hash) + getSunroofLift().hashCode(); + break; + case 47: + hash = (37 * hash) + SUNROOF_MOVE_FIELD_NUMBER; + hash = (53 * hash) + getSunroofMove().hashCode(); + break; + case 12: + hash = (37 * hash) + WINDOWS_OPEN_FIELD_NUMBER; + hash = (53 * hash) + getWindowsOpen().hashCode(); + break; + case 13: + hash = (37 * hash) + WINDOWS_CLOSE_FIELD_NUMBER; + hash = (53 * hash) + getWindowsClose().hashCode(); + break; + case 43: + hash = (37 * hash) + WINDOWS_VENTILATE_FIELD_NUMBER; + hash = (53 * hash) + getWindowsVentilate().hashCode(); + break; + case 44: + hash = (37 * hash) + WINDOWS_MOVE_FIELD_NUMBER; + hash = (53 * hash) + getWindowsMove().hashCode(); + break; + case 19: + hash = (37 * hash) + ENGINE_START_FIELD_NUMBER; + hash = (53 * hash) + getEngineStart().hashCode(); + break; + case 20: + hash = (37 * hash) + ENGINE_STOP_FIELD_NUMBER; + hash = (53 * hash) + getEngineStop().hashCode(); + break; + case 21: + hash = (37 * hash) + ZEV_PRECONDITIONING_START_FIELD_NUMBER; + hash = (53 * hash) + getZevPreconditioningStart().hashCode(); + break; + case 22: + hash = (37 * hash) + ZEV_PRECONDITIONING_STOP_FIELD_NUMBER; + hash = (53 * hash) + getZevPreconditioningStop().hashCode(); + break; + case 25: + hash = (37 * hash) + ZEV_PRECONDITION_CONFIGURE_FIELD_NUMBER; + hash = (53 * hash) + getZevPreconditionConfigure().hashCode(); + break; + case 26: + hash = (37 * hash) + ZEV_PRECONDITION_CONFIGURE_SEATS_FIELD_NUMBER; + hash = (53 * hash) + getZevPreconditionConfigureSeats().hashCode(); + break; + case 23: + hash = (37 * hash) + SPEEDALERT_START_FIELD_NUMBER; + hash = (53 * hash) + getSpeedalertStart().hashCode(); + break; + case 24: + hash = (37 * hash) + SPEEDALERT_STOP_FIELD_NUMBER; + hash = (53 * hash) + getSpeedalertStop().hashCode(); + break; + case 27: + hash = (37 * hash) + BATTERY_CHARGE_PROGRAM_FIELD_NUMBER; + hash = (53 * hash) + getBatteryChargeProgram().hashCode(); + break; + case 28: + hash = (37 * hash) + BATTERY_MAX_SOC_FIELD_NUMBER; + hash = (53 * hash) + getBatteryMaxSoc().hashCode(); + break; + case 34: + hash = (37 * hash) + CHARGE_PROGRAM_CONFIGURE_FIELD_NUMBER; + hash = (53 * hash) + getChargeProgramConfigure().hashCode(); + break; + case 40: + hash = (37 * hash) + CHARGE_CONTROL_CONFIGURE_FIELD_NUMBER; + hash = (53 * hash) + getChargeControlConfigure().hashCode(); + break; + case 29: + hash = (37 * hash) + CHARGE_OPT_CONFIGURE_FIELD_NUMBER; + hash = (53 * hash) + getChargeOptConfigure().hashCode(); + break; + case 30: + hash = (37 * hash) + CHARGE_OPT_START_FIELD_NUMBER; + hash = (53 * hash) + getChargeOptStart().hashCode(); + break; + case 31: + hash = (37 * hash) + CHARGE_OPT_STOP_FIELD_NUMBER; + hash = (53 * hash) + getChargeOptStop().hashCode(); + break; + case 32: + hash = (37 * hash) + TEMPERATURE_CONFIGURE_FIELD_NUMBER; + hash = (53 * hash) + getTemperatureConfigure().hashCode(); + break; + case 33: + hash = (37 * hash) + WEEK_PROFILE_CONFIGURE_FIELD_NUMBER; + hash = (53 * hash) + getWeekProfileConfigure().hashCode(); + break; + case 41: + hash = (37 * hash) + WEEK_PROFILE_CONFIGURE_V2_FIELD_NUMBER; + hash = (53 * hash) + getWeekProfileConfigureV2().hashCode(); + break; + case 35: + hash = (37 * hash) + SIGPOS_START_FIELD_NUMBER; + hash = (53 * hash) + getSigposStart().hashCode(); + break; + case 8: + hash = (37 * hash) + THEFTALARM_CONFIRM_DAMAGEDETECTION_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmConfirmDamagedetection().hashCode(); + break; + case 14: + hash = (37 * hash) + THEFTALARM_DESELECT_DAMAGEDETECTION_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmDeselectDamagedetection().hashCode(); + break; + case 15: + hash = (37 * hash) + THEFTALARM_DESELECT_INTERIOR_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmDeselectInterior().hashCode(); + break; + case 16: + hash = (37 * hash) + THEFTALARM_DESELECT_TOW_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmDeselectTow().hashCode(); + break; + case 17: + hash = (37 * hash) + THEFTALARM_SELECT_DAMAGEDETECTION_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmSelectDamagedetection().hashCode(); + break; + case 18: + hash = (37 * hash) + THEFTALARM_SELECT_INTERIOR_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmSelectInterior().hashCode(); + break; + case 37: + hash = (37 * hash) + THEFTALARM_SELECT_TOW_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmSelectTow().hashCode(); + break; + case 38: + hash = (37 * hash) + THEFTALARM_START_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmStart().hashCode(); + break; + case 39: + hash = (37 * hash) + THEFTALARM_STOP_FIELD_NUMBER; + hash = (53 * hash) + getTheftalarmStop().hashCode(); + break; + case 42: + hash = (37 * hash) + AUTOMATIC_VALET_PARKING_ACTIVATE_FIELD_NUMBER; + hash = (53 * hash) + getAutomaticValetParkingActivate().hashCode(); + break; + case 45: + hash = (37 * hash) + CHARGE_FLAP_UNLOCK_FIELD_NUMBER; + hash = (53 * hash) + getChargeFlapUnlock().hashCode(); + break; + case 46: + hash = (37 * hash) + CHARGE_COUPLER_UNLOCK_FIELD_NUMBER; + hash = (53 * hash) + getChargeCouplerUnlock().hashCode(); + break; + case 48: + hash = (37 * hash) + DEACTIVATE_VEHICLE_KEYS_FIELD_NUMBER; + hash = (53 * hash) + getDeactivateVehicleKeys().hashCode(); + break; + case 49: + hash = (37 * hash) + ACTIVATE_VEHICLE_KEYS_FIELD_NUMBER; + hash = (53 * hash) + getActivateVehicleKeys().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * After the command was issued at VVA based on this
+     * command request the call will get a command request
+     * correlation message which matches the request id
+     * with the process id.
+     * Sending direction: App - BFF -> AppTwin
+     * 
+ * + * Protobuf type {@code proto.CommandRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.CommandRequest) + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_CommandRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_CommandRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.class, com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + bitField1_ = 0; + vin_ = ""; + requestId_ = ""; + backend_ = 0; + if (auxheatStartBuilder_ != null) { + auxheatStartBuilder_.clear(); + } + if (auxheatStopBuilder_ != null) { + auxheatStopBuilder_.clear(); + } + if (auxheatConfigureBuilder_ != null) { + auxheatConfigureBuilder_.clear(); + } + if (doorsLockBuilder_ != null) { + doorsLockBuilder_.clear(); + } + if (doorsUnlockBuilder_ != null) { + doorsUnlockBuilder_.clear(); + } + if (sunroofOpenBuilder_ != null) { + sunroofOpenBuilder_.clear(); + } + if (sunroofCloseBuilder_ != null) { + sunroofCloseBuilder_.clear(); + } + if (sunroofLiftBuilder_ != null) { + sunroofLiftBuilder_.clear(); + } + if (sunroofMoveBuilder_ != null) { + sunroofMoveBuilder_.clear(); + } + if (windowsOpenBuilder_ != null) { + windowsOpenBuilder_.clear(); + } + if (windowsCloseBuilder_ != null) { + windowsCloseBuilder_.clear(); + } + if (windowsVentilateBuilder_ != null) { + windowsVentilateBuilder_.clear(); + } + if (windowsMoveBuilder_ != null) { + windowsMoveBuilder_.clear(); + } + if (engineStartBuilder_ != null) { + engineStartBuilder_.clear(); + } + if (engineStopBuilder_ != null) { + engineStopBuilder_.clear(); + } + if (zevPreconditioningStartBuilder_ != null) { + zevPreconditioningStartBuilder_.clear(); + } + if (zevPreconditioningStopBuilder_ != null) { + zevPreconditioningStopBuilder_.clear(); + } + if (zevPreconditionConfigureBuilder_ != null) { + zevPreconditionConfigureBuilder_.clear(); + } + if (zevPreconditionConfigureSeatsBuilder_ != null) { + zevPreconditionConfigureSeatsBuilder_.clear(); + } + if (speedalertStartBuilder_ != null) { + speedalertStartBuilder_.clear(); + } + if (speedalertStopBuilder_ != null) { + speedalertStopBuilder_.clear(); + } + if (batteryChargeProgramBuilder_ != null) { + batteryChargeProgramBuilder_.clear(); + } + if (batteryMaxSocBuilder_ != null) { + batteryMaxSocBuilder_.clear(); + } + if (chargeProgramConfigureBuilder_ != null) { + chargeProgramConfigureBuilder_.clear(); + } + if (chargeControlConfigureBuilder_ != null) { + chargeControlConfigureBuilder_.clear(); + } + if (chargeOptConfigureBuilder_ != null) { + chargeOptConfigureBuilder_.clear(); + } + if (chargeOptStartBuilder_ != null) { + chargeOptStartBuilder_.clear(); + } + if (chargeOptStopBuilder_ != null) { + chargeOptStopBuilder_.clear(); + } + if (temperatureConfigureBuilder_ != null) { + temperatureConfigureBuilder_.clear(); + } + if (weekProfileConfigureBuilder_ != null) { + weekProfileConfigureBuilder_.clear(); + } + if (weekProfileConfigureV2Builder_ != null) { + weekProfileConfigureV2Builder_.clear(); + } + if (sigposStartBuilder_ != null) { + sigposStartBuilder_.clear(); + } + if (theftalarmConfirmDamagedetectionBuilder_ != null) { + theftalarmConfirmDamagedetectionBuilder_.clear(); + } + if (theftalarmDeselectDamagedetectionBuilder_ != null) { + theftalarmDeselectDamagedetectionBuilder_.clear(); + } + if (theftalarmDeselectInteriorBuilder_ != null) { + theftalarmDeselectInteriorBuilder_.clear(); + } + if (theftalarmDeselectTowBuilder_ != null) { + theftalarmDeselectTowBuilder_.clear(); + } + if (theftalarmSelectDamagedetectionBuilder_ != null) { + theftalarmSelectDamagedetectionBuilder_.clear(); + } + if (theftalarmSelectInteriorBuilder_ != null) { + theftalarmSelectInteriorBuilder_.clear(); + } + if (theftalarmSelectTowBuilder_ != null) { + theftalarmSelectTowBuilder_.clear(); + } + if (theftalarmStartBuilder_ != null) { + theftalarmStartBuilder_.clear(); + } + if (theftalarmStopBuilder_ != null) { + theftalarmStopBuilder_.clear(); + } + if (automaticValetParkingActivateBuilder_ != null) { + automaticValetParkingActivateBuilder_.clear(); + } + if (chargeFlapUnlockBuilder_ != null) { + chargeFlapUnlockBuilder_.clear(); + } + if (chargeCouplerUnlockBuilder_ != null) { + chargeCouplerUnlockBuilder_.clear(); + } + if (deactivateVehicleKeysBuilder_ != null) { + deactivateVehicleKeysBuilder_.clear(); + } + if (activateVehicleKeysBuilder_ != null) { + activateVehicleKeysBuilder_.clear(); + } + commandCase_ = 0; + command_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_CommandRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest build() { + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest result = new com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + if (bitField1_ != 0) { buildPartial1(result); } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.requestId_ = requestId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.backend_ = backend_; + } + } + + private void buildPartial1(com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest result) { + int from_bitField1_ = bitField1_; + } + + private void buildPartialOneofs(com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest result) { + result.commandCase_ = commandCase_; + result.command_ = this.command_; + if (commandCase_ == 2 && + auxheatStartBuilder_ != null) { + result.command_ = auxheatStartBuilder_.build(); + } + if (commandCase_ == 3 && + auxheatStopBuilder_ != null) { + result.command_ = auxheatStopBuilder_.build(); + } + if (commandCase_ == 4 && + auxheatConfigureBuilder_ != null) { + result.command_ = auxheatConfigureBuilder_.build(); + } + if (commandCase_ == 5 && + doorsLockBuilder_ != null) { + result.command_ = doorsLockBuilder_.build(); + } + if (commandCase_ == 6 && + doorsUnlockBuilder_ != null) { + result.command_ = doorsUnlockBuilder_.build(); + } + if (commandCase_ == 9 && + sunroofOpenBuilder_ != null) { + result.command_ = sunroofOpenBuilder_.build(); + } + if (commandCase_ == 10 && + sunroofCloseBuilder_ != null) { + result.command_ = sunroofCloseBuilder_.build(); + } + if (commandCase_ == 11 && + sunroofLiftBuilder_ != null) { + result.command_ = sunroofLiftBuilder_.build(); + } + if (commandCase_ == 47 && + sunroofMoveBuilder_ != null) { + result.command_ = sunroofMoveBuilder_.build(); + } + if (commandCase_ == 12 && + windowsOpenBuilder_ != null) { + result.command_ = windowsOpenBuilder_.build(); + } + if (commandCase_ == 13 && + windowsCloseBuilder_ != null) { + result.command_ = windowsCloseBuilder_.build(); + } + if (commandCase_ == 43 && + windowsVentilateBuilder_ != null) { + result.command_ = windowsVentilateBuilder_.build(); + } + if (commandCase_ == 44 && + windowsMoveBuilder_ != null) { + result.command_ = windowsMoveBuilder_.build(); + } + if (commandCase_ == 19 && + engineStartBuilder_ != null) { + result.command_ = engineStartBuilder_.build(); + } + if (commandCase_ == 20 && + engineStopBuilder_ != null) { + result.command_ = engineStopBuilder_.build(); + } + if (commandCase_ == 21 && + zevPreconditioningStartBuilder_ != null) { + result.command_ = zevPreconditioningStartBuilder_.build(); + } + if (commandCase_ == 22 && + zevPreconditioningStopBuilder_ != null) { + result.command_ = zevPreconditioningStopBuilder_.build(); + } + if (commandCase_ == 25 && + zevPreconditionConfigureBuilder_ != null) { + result.command_ = zevPreconditionConfigureBuilder_.build(); + } + if (commandCase_ == 26 && + zevPreconditionConfigureSeatsBuilder_ != null) { + result.command_ = zevPreconditionConfigureSeatsBuilder_.build(); + } + if (commandCase_ == 23 && + speedalertStartBuilder_ != null) { + result.command_ = speedalertStartBuilder_.build(); + } + if (commandCase_ == 24 && + speedalertStopBuilder_ != null) { + result.command_ = speedalertStopBuilder_.build(); + } + if (commandCase_ == 27 && + batteryChargeProgramBuilder_ != null) { + result.command_ = batteryChargeProgramBuilder_.build(); + } + if (commandCase_ == 28 && + batteryMaxSocBuilder_ != null) { + result.command_ = batteryMaxSocBuilder_.build(); + } + if (commandCase_ == 34 && + chargeProgramConfigureBuilder_ != null) { + result.command_ = chargeProgramConfigureBuilder_.build(); + } + if (commandCase_ == 40 && + chargeControlConfigureBuilder_ != null) { + result.command_ = chargeControlConfigureBuilder_.build(); + } + if (commandCase_ == 29 && + chargeOptConfigureBuilder_ != null) { + result.command_ = chargeOptConfigureBuilder_.build(); + } + if (commandCase_ == 30 && + chargeOptStartBuilder_ != null) { + result.command_ = chargeOptStartBuilder_.build(); + } + if (commandCase_ == 31 && + chargeOptStopBuilder_ != null) { + result.command_ = chargeOptStopBuilder_.build(); + } + if (commandCase_ == 32 && + temperatureConfigureBuilder_ != null) { + result.command_ = temperatureConfigureBuilder_.build(); + } + if (commandCase_ == 33 && + weekProfileConfigureBuilder_ != null) { + result.command_ = weekProfileConfigureBuilder_.build(); + } + if (commandCase_ == 41 && + weekProfileConfigureV2Builder_ != null) { + result.command_ = weekProfileConfigureV2Builder_.build(); + } + if (commandCase_ == 35 && + sigposStartBuilder_ != null) { + result.command_ = sigposStartBuilder_.build(); + } + if (commandCase_ == 8 && + theftalarmConfirmDamagedetectionBuilder_ != null) { + result.command_ = theftalarmConfirmDamagedetectionBuilder_.build(); + } + if (commandCase_ == 14 && + theftalarmDeselectDamagedetectionBuilder_ != null) { + result.command_ = theftalarmDeselectDamagedetectionBuilder_.build(); + } + if (commandCase_ == 15 && + theftalarmDeselectInteriorBuilder_ != null) { + result.command_ = theftalarmDeselectInteriorBuilder_.build(); + } + if (commandCase_ == 16 && + theftalarmDeselectTowBuilder_ != null) { + result.command_ = theftalarmDeselectTowBuilder_.build(); + } + if (commandCase_ == 17 && + theftalarmSelectDamagedetectionBuilder_ != null) { + result.command_ = theftalarmSelectDamagedetectionBuilder_.build(); + } + if (commandCase_ == 18 && + theftalarmSelectInteriorBuilder_ != null) { + result.command_ = theftalarmSelectInteriorBuilder_.build(); + } + if (commandCase_ == 37 && + theftalarmSelectTowBuilder_ != null) { + result.command_ = theftalarmSelectTowBuilder_.build(); + } + if (commandCase_ == 38 && + theftalarmStartBuilder_ != null) { + result.command_ = theftalarmStartBuilder_.build(); + } + if (commandCase_ == 39 && + theftalarmStopBuilder_ != null) { + result.command_ = theftalarmStopBuilder_.build(); + } + if (commandCase_ == 42 && + automaticValetParkingActivateBuilder_ != null) { + result.command_ = automaticValetParkingActivateBuilder_.build(); + } + if (commandCase_ == 45 && + chargeFlapUnlockBuilder_ != null) { + result.command_ = chargeFlapUnlockBuilder_.build(); + } + if (commandCase_ == 46 && + chargeCouplerUnlockBuilder_ != null) { + result.command_ = chargeCouplerUnlockBuilder_.build(); + } + if (commandCase_ == 48 && + deactivateVehicleKeysBuilder_ != null) { + result.command_ = deactivateVehicleKeysBuilder_.build(); + } + if (commandCase_ == 49 && + activateVehicleKeysBuilder_ != null) { + result.command_ = activateVehicleKeysBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.getDefaultInstance()) return this; + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getRequestId().isEmpty()) { + requestId_ = other.requestId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.backend_ != 0) { + setBackendValue(other.getBackendValue()); + } + switch (other.getCommandCase()) { + case AUXHEAT_START: { + mergeAuxheatStart(other.getAuxheatStart()); + break; + } + case AUXHEAT_STOP: { + mergeAuxheatStop(other.getAuxheatStop()); + break; + } + case AUXHEAT_CONFIGURE: { + mergeAuxheatConfigure(other.getAuxheatConfigure()); + break; + } + case DOORS_LOCK: { + mergeDoorsLock(other.getDoorsLock()); + break; + } + case DOORS_UNLOCK: { + mergeDoorsUnlock(other.getDoorsUnlock()); + break; + } + case SUNROOF_OPEN: { + mergeSunroofOpen(other.getSunroofOpen()); + break; + } + case SUNROOF_CLOSE: { + mergeSunroofClose(other.getSunroofClose()); + break; + } + case SUNROOF_LIFT: { + mergeSunroofLift(other.getSunroofLift()); + break; + } + case SUNROOF_MOVE: { + mergeSunroofMove(other.getSunroofMove()); + break; + } + case WINDOWS_OPEN: { + mergeWindowsOpen(other.getWindowsOpen()); + break; + } + case WINDOWS_CLOSE: { + mergeWindowsClose(other.getWindowsClose()); + break; + } + case WINDOWS_VENTILATE: { + mergeWindowsVentilate(other.getWindowsVentilate()); + break; + } + case WINDOWS_MOVE: { + mergeWindowsMove(other.getWindowsMove()); + break; + } + case ENGINE_START: { + mergeEngineStart(other.getEngineStart()); + break; + } + case ENGINE_STOP: { + mergeEngineStop(other.getEngineStop()); + break; + } + case ZEV_PRECONDITIONING_START: { + mergeZevPreconditioningStart(other.getZevPreconditioningStart()); + break; + } + case ZEV_PRECONDITIONING_STOP: { + mergeZevPreconditioningStop(other.getZevPreconditioningStop()); + break; + } + case ZEV_PRECONDITION_CONFIGURE: { + mergeZevPreconditionConfigure(other.getZevPreconditionConfigure()); + break; + } + case ZEV_PRECONDITION_CONFIGURE_SEATS: { + mergeZevPreconditionConfigureSeats(other.getZevPreconditionConfigureSeats()); + break; + } + case SPEEDALERT_START: { + mergeSpeedalertStart(other.getSpeedalertStart()); + break; + } + case SPEEDALERT_STOP: { + mergeSpeedalertStop(other.getSpeedalertStop()); + break; + } + case BATTERY_CHARGE_PROGRAM: { + mergeBatteryChargeProgram(other.getBatteryChargeProgram()); + break; + } + case BATTERY_MAX_SOC: { + mergeBatteryMaxSoc(other.getBatteryMaxSoc()); + break; + } + case CHARGE_PROGRAM_CONFIGURE: { + mergeChargeProgramConfigure(other.getChargeProgramConfigure()); + break; + } + case CHARGE_CONTROL_CONFIGURE: { + mergeChargeControlConfigure(other.getChargeControlConfigure()); + break; + } + case CHARGE_OPT_CONFIGURE: { + mergeChargeOptConfigure(other.getChargeOptConfigure()); + break; + } + case CHARGE_OPT_START: { + mergeChargeOptStart(other.getChargeOptStart()); + break; + } + case CHARGE_OPT_STOP: { + mergeChargeOptStop(other.getChargeOptStop()); + break; + } + case TEMPERATURE_CONFIGURE: { + mergeTemperatureConfigure(other.getTemperatureConfigure()); + break; + } + case WEEK_PROFILE_CONFIGURE: { + mergeWeekProfileConfigure(other.getWeekProfileConfigure()); + break; + } + case WEEK_PROFILE_CONFIGURE_V2: { + mergeWeekProfileConfigureV2(other.getWeekProfileConfigureV2()); + break; + } + case SIGPOS_START: { + mergeSigposStart(other.getSigposStart()); + break; + } + case THEFTALARM_CONFIRM_DAMAGEDETECTION: { + mergeTheftalarmConfirmDamagedetection(other.getTheftalarmConfirmDamagedetection()); + break; + } + case THEFTALARM_DESELECT_DAMAGEDETECTION: { + mergeTheftalarmDeselectDamagedetection(other.getTheftalarmDeselectDamagedetection()); + break; + } + case THEFTALARM_DESELECT_INTERIOR: { + mergeTheftalarmDeselectInterior(other.getTheftalarmDeselectInterior()); + break; + } + case THEFTALARM_DESELECT_TOW: { + mergeTheftalarmDeselectTow(other.getTheftalarmDeselectTow()); + break; + } + case THEFTALARM_SELECT_DAMAGEDETECTION: { + mergeTheftalarmSelectDamagedetection(other.getTheftalarmSelectDamagedetection()); + break; + } + case THEFTALARM_SELECT_INTERIOR: { + mergeTheftalarmSelectInterior(other.getTheftalarmSelectInterior()); + break; + } + case THEFTALARM_SELECT_TOW: { + mergeTheftalarmSelectTow(other.getTheftalarmSelectTow()); + break; + } + case THEFTALARM_START: { + mergeTheftalarmStart(other.getTheftalarmStart()); + break; + } + case THEFTALARM_STOP: { + mergeTheftalarmStop(other.getTheftalarmStop()); + break; + } + case AUTOMATIC_VALET_PARKING_ACTIVATE: { + mergeAutomaticValetParkingActivate(other.getAutomaticValetParkingActivate()); + break; + } + case CHARGE_FLAP_UNLOCK: { + mergeChargeFlapUnlock(other.getChargeFlapUnlock()); + break; + } + case CHARGE_COUPLER_UNLOCK: { + mergeChargeCouplerUnlock(other.getChargeCouplerUnlock()); + break; + } + case DEACTIVATE_VEHICLE_KEYS: { + mergeDeactivateVehicleKeys(other.getDeactivateVehicleKeys()); + break; + } + case ACTIVATE_VEHICLE_KEYS: { + mergeActivateVehicleKeys(other.getActivateVehicleKeys()); + break; + } + case COMMAND_NOT_SET: { + break; + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getAuxheatStartFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 2; + break; + } // case 18 + case 26: { + input.readMessage( + getAuxheatStopFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 3; + break; + } // case 26 + case 34: { + input.readMessage( + getAuxheatConfigureFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 4; + break; + } // case 34 + case 42: { + input.readMessage( + getDoorsLockFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 5; + break; + } // case 42 + case 50: { + input.readMessage( + getDoorsUnlockFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 6; + break; + } // case 50 + case 58: { + requestId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 58 + case 66: { + input.readMessage( + getTheftalarmConfirmDamagedetectionFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 8; + break; + } // case 66 + case 74: { + input.readMessage( + getSunroofOpenFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 9; + break; + } // case 74 + case 82: { + input.readMessage( + getSunroofCloseFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 10; + break; + } // case 82 + case 90: { + input.readMessage( + getSunroofLiftFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 11; + break; + } // case 90 + case 98: { + input.readMessage( + getWindowsOpenFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 12; + break; + } // case 98 + case 106: { + input.readMessage( + getWindowsCloseFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 13; + break; + } // case 106 + case 114: { + input.readMessage( + getTheftalarmDeselectDamagedetectionFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 14; + break; + } // case 114 + case 122: { + input.readMessage( + getTheftalarmDeselectInteriorFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 15; + break; + } // case 122 + case 130: { + input.readMessage( + getTheftalarmDeselectTowFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 16; + break; + } // case 130 + case 138: { + input.readMessage( + getTheftalarmSelectDamagedetectionFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 17; + break; + } // case 138 + case 146: { + input.readMessage( + getTheftalarmSelectInteriorFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 18; + break; + } // case 146 + case 154: { + input.readMessage( + getEngineStartFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 19; + break; + } // case 154 + case 162: { + input.readMessage( + getEngineStopFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 20; + break; + } // case 162 + case 170: { + input.readMessage( + getZevPreconditioningStartFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 21; + break; + } // case 170 + case 178: { + input.readMessage( + getZevPreconditioningStopFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 22; + break; + } // case 178 + case 186: { + input.readMessage( + getSpeedalertStartFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 23; + break; + } // case 186 + case 194: { + input.readMessage( + getSpeedalertStopFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 24; + break; + } // case 194 + case 202: { + input.readMessage( + getZevPreconditionConfigureFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 25; + break; + } // case 202 + case 210: { + input.readMessage( + getZevPreconditionConfigureSeatsFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 26; + break; + } // case 210 + case 218: { + input.readMessage( + getBatteryChargeProgramFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 27; + break; + } // case 218 + case 226: { + input.readMessage( + getBatteryMaxSocFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 28; + break; + } // case 226 + case 234: { + input.readMessage( + getChargeOptConfigureFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 29; + break; + } // case 234 + case 242: { + input.readMessage( + getChargeOptStartFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 30; + break; + } // case 242 + case 250: { + input.readMessage( + getChargeOptStopFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 31; + break; + } // case 250 + case 258: { + input.readMessage( + getTemperatureConfigureFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 32; + break; + } // case 258 + case 266: { + input.readMessage( + getWeekProfileConfigureFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 33; + break; + } // case 266 + case 274: { + input.readMessage( + getChargeProgramConfigureFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 34; + break; + } // case 274 + case 282: { + input.readMessage( + getSigposStartFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 35; + break; + } // case 282 + case 288: { + backend_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 288 + case 298: { + input.readMessage( + getTheftalarmSelectTowFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 37; + break; + } // case 298 + case 306: { + input.readMessage( + getTheftalarmStartFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 38; + break; + } // case 306 + case 314: { + input.readMessage( + getTheftalarmStopFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 39; + break; + } // case 314 + case 322: { + input.readMessage( + getChargeControlConfigureFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 40; + break; + } // case 322 + case 330: { + input.readMessage( + getWeekProfileConfigureV2FieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 41; + break; + } // case 330 + case 338: { + input.readMessage( + getAutomaticValetParkingActivateFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 42; + break; + } // case 338 + case 346: { + input.readMessage( + getWindowsVentilateFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 43; + break; + } // case 346 + case 354: { + input.readMessage( + getWindowsMoveFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 44; + break; + } // case 354 + case 362: { + input.readMessage( + getChargeFlapUnlockFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 45; + break; + } // case 362 + case 370: { + input.readMessage( + getChargeCouplerUnlockFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 46; + break; + } // case 370 + case 378: { + input.readMessage( + getSunroofMoveFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 47; + break; + } // case 378 + case 386: { + input.readMessage( + getDeactivateVehicleKeysFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 48; + break; + } // case 386 + case 394: { + input.readMessage( + getActivateVehicleKeysFieldBuilder().getBuilder(), + extensionRegistry); + commandCase_ = 49; + break; + } // case 394 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int commandCase_ = 0; + private java.lang.Object command_; + public CommandCase + getCommandCase() { + return CommandCase.forNumber( + commandCase_); + } + + public Builder clearCommand() { + commandCase_ = 0; + command_ = null; + onChanged(); + return this; + } + + private int bitField0_; + private int bitField1_; + + private java.lang.Object vin_ = ""; + /** + * string vin = 1; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string vin = 1; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string vin = 1; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string vin = 1; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string vin = 1; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object requestId_ = ""; + /** + *
+       * Set this id to correlate a CommandStatus
+       * with this command request.
+       * 
+ * + * string request_id = 7; + * @return The requestId. + */ + public java.lang.String getRequestId() { + java.lang.Object ref = requestId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + requestId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Set this id to correlate a CommandStatus
+       * with this command request.
+       * 
+ * + * string request_id = 7; + * @return The bytes for requestId. + */ + public com.google.protobuf.ByteString + getRequestIdBytes() { + java.lang.Object ref = requestId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + requestId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Set this id to correlate a CommandStatus
+       * with this command request.
+       * 
+ * + * string request_id = 7; + * @param value The requestId to set. + * @return This builder for chaining. + */ + public Builder setRequestId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + requestId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Set this id to correlate a CommandStatus
+       * with this command request.
+       * 
+ * + * string request_id = 7; + * @return This builder for chaining. + */ + public Builder clearRequestId() { + requestId_ = getDefaultInstance().getRequestId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * Set this id to correlate a CommandStatus
+       * with this command request.
+       * 
+ * + * string request_id = 7; + * @param value The bytes for requestId to set. + * @return This builder for chaining. + */ + public Builder setRequestIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + requestId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private int backend_ = 0; + /** + * .proto.CommandRequest.Backend backend = 36; + * @return The enum numeric value on the wire for backend. + */ + @java.lang.Override public int getBackendValue() { + return backend_; + } + /** + * .proto.CommandRequest.Backend backend = 36; + * @param value The enum numeric value on the wire for backend to set. + * @return This builder for chaining. + */ + public Builder setBackendValue(int value) { + backend_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .proto.CommandRequest.Backend backend = 36; + * @return The backend. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend getBackend() { + com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend result = com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend.forNumber(backend_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend.UNRECOGNIZED : result; + } + /** + * .proto.CommandRequest.Backend backend = 36; + * @param value The backend to set. + * @return This builder for chaining. + */ + public Builder setBackend(com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest.Backend value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + backend_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.CommandRequest.Backend backend = 36; + * @return This builder for chaining. + */ + public Builder clearBackend() { + bitField0_ = (bitField0_ & ~0x00000004); + backend_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStartOrBuilder> auxheatStartBuilder_; + /** + * .proto.AuxheatStart auxheat_start = 2; + * @return Whether the auxheatStart field is set. + */ + @java.lang.Override + public boolean hasAuxheatStart() { + return commandCase_ == 2; + } + /** + * .proto.AuxheatStart auxheat_start = 2; + * @return The auxheatStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart getAuxheatStart() { + if (auxheatStartBuilder_ == null) { + if (commandCase_ == 2) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance(); + } else { + if (commandCase_ == 2) { + return auxheatStartBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance(); + } + } + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + public Builder setAuxheatStart(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart value) { + if (auxheatStartBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + auxheatStartBuilder_.setMessage(value); + } + commandCase_ = 2; + return this; + } + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + public Builder setAuxheatStart( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.Builder builderForValue) { + if (auxheatStartBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + auxheatStartBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 2; + return this; + } + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + public Builder mergeAuxheatStart(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart value) { + if (auxheatStartBuilder_ == null) { + if (commandCase_ == 2 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 2) { + auxheatStartBuilder_.mergeFrom(value); + } else { + auxheatStartBuilder_.setMessage(value); + } + } + commandCase_ = 2; + return this; + } + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + public Builder clearAuxheatStart() { + if (auxheatStartBuilder_ == null) { + if (commandCase_ == 2) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 2) { + commandCase_ = 0; + command_ = null; + } + auxheatStartBuilder_.clear(); + } + return this; + } + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.Builder getAuxheatStartBuilder() { + return getAuxheatStartFieldBuilder().getBuilder(); + } + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStartOrBuilder getAuxheatStartOrBuilder() { + if ((commandCase_ == 2) && (auxheatStartBuilder_ != null)) { + return auxheatStartBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 2) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance(); + } + } + /** + * .proto.AuxheatStart auxheat_start = 2; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStartOrBuilder> + getAuxheatStartFieldBuilder() { + if (auxheatStartBuilder_ == null) { + if (!(commandCase_ == 2)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance(); + } + auxheatStartBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStartOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 2; + onChanged(); + return auxheatStartBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStopOrBuilder> auxheatStopBuilder_; + /** + * .proto.AuxheatStop auxheat_stop = 3; + * @return Whether the auxheatStop field is set. + */ + @java.lang.Override + public boolean hasAuxheatStop() { + return commandCase_ == 3; + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + * @return The auxheatStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop getAuxheatStop() { + if (auxheatStopBuilder_ == null) { + if (commandCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance(); + } else { + if (commandCase_ == 3) { + return auxheatStopBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance(); + } + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + public Builder setAuxheatStop(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop value) { + if (auxheatStopBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + auxheatStopBuilder_.setMessage(value); + } + commandCase_ = 3; + return this; + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + public Builder setAuxheatStop( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.Builder builderForValue) { + if (auxheatStopBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + auxheatStopBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 3; + return this; + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + public Builder mergeAuxheatStop(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop value) { + if (auxheatStopBuilder_ == null) { + if (commandCase_ == 3 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 3) { + auxheatStopBuilder_.mergeFrom(value); + } else { + auxheatStopBuilder_.setMessage(value); + } + } + commandCase_ = 3; + return this; + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + public Builder clearAuxheatStop() { + if (auxheatStopBuilder_ == null) { + if (commandCase_ == 3) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 3) { + commandCase_ = 0; + command_ = null; + } + auxheatStopBuilder_.clear(); + } + return this; + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.Builder getAuxheatStopBuilder() { + return getAuxheatStopFieldBuilder().getBuilder(); + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStopOrBuilder getAuxheatStopOrBuilder() { + if ((commandCase_ == 3) && (auxheatStopBuilder_ != null)) { + return auxheatStopBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance(); + } + } + /** + * .proto.AuxheatStop auxheat_stop = 3; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStopOrBuilder> + getAuxheatStopFieldBuilder() { + if (auxheatStopBuilder_ == null) { + if (!(commandCase_ == 3)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance(); + } + auxheatStopBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStopOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 3; + onChanged(); + return auxheatStopBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigureOrBuilder> auxheatConfigureBuilder_; + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + * @return Whether the auxheatConfigure field is set. + */ + @java.lang.Override + public boolean hasAuxheatConfigure() { + return commandCase_ == 4; + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + * @return The auxheatConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure getAuxheatConfigure() { + if (auxheatConfigureBuilder_ == null) { + if (commandCase_ == 4) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 4) { + return auxheatConfigureBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance(); + } + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + public Builder setAuxheatConfigure(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure value) { + if (auxheatConfigureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + auxheatConfigureBuilder_.setMessage(value); + } + commandCase_ = 4; + return this; + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + public Builder setAuxheatConfigure( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Builder builderForValue) { + if (auxheatConfigureBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + auxheatConfigureBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 4; + return this; + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + public Builder mergeAuxheatConfigure(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure value) { + if (auxheatConfigureBuilder_ == null) { + if (commandCase_ == 4 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 4) { + auxheatConfigureBuilder_.mergeFrom(value); + } else { + auxheatConfigureBuilder_.setMessage(value); + } + } + commandCase_ = 4; + return this; + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + public Builder clearAuxheatConfigure() { + if (auxheatConfigureBuilder_ == null) { + if (commandCase_ == 4) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 4) { + commandCase_ = 0; + command_ = null; + } + auxheatConfigureBuilder_.clear(); + } + return this; + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Builder getAuxheatConfigureBuilder() { + return getAuxheatConfigureFieldBuilder().getBuilder(); + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigureOrBuilder getAuxheatConfigureOrBuilder() { + if ((commandCase_ == 4) && (auxheatConfigureBuilder_ != null)) { + return auxheatConfigureBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 4) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance(); + } + } + /** + * .proto.AuxheatConfigure auxheat_configure = 4; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigureOrBuilder> + getAuxheatConfigureFieldBuilder() { + if (auxheatConfigureBuilder_ == null) { + if (!(commandCase_ == 4)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance(); + } + auxheatConfigureBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 4; + onChanged(); + return auxheatConfigureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock, com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DoorsLockOrBuilder> doorsLockBuilder_; + /** + * .proto.DoorsLock doors_lock = 5; + * @return Whether the doorsLock field is set. + */ + @java.lang.Override + public boolean hasDoorsLock() { + return commandCase_ == 5; + } + /** + * .proto.DoorsLock doors_lock = 5; + * @return The doorsLock. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock getDoorsLock() { + if (doorsLockBuilder_ == null) { + if (commandCase_ == 5) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance(); + } else { + if (commandCase_ == 5) { + return doorsLockBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance(); + } + } + /** + * .proto.DoorsLock doors_lock = 5; + */ + public Builder setDoorsLock(com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock value) { + if (doorsLockBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + doorsLockBuilder_.setMessage(value); + } + commandCase_ = 5; + return this; + } + /** + * .proto.DoorsLock doors_lock = 5; + */ + public Builder setDoorsLock( + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.Builder builderForValue) { + if (doorsLockBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + doorsLockBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 5; + return this; + } + /** + * .proto.DoorsLock doors_lock = 5; + */ + public Builder mergeDoorsLock(com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock value) { + if (doorsLockBuilder_ == null) { + if (commandCase_ == 5 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 5) { + doorsLockBuilder_.mergeFrom(value); + } else { + doorsLockBuilder_.setMessage(value); + } + } + commandCase_ = 5; + return this; + } + /** + * .proto.DoorsLock doors_lock = 5; + */ + public Builder clearDoorsLock() { + if (doorsLockBuilder_ == null) { + if (commandCase_ == 5) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 5) { + commandCase_ = 0; + command_ = null; + } + doorsLockBuilder_.clear(); + } + return this; + } + /** + * .proto.DoorsLock doors_lock = 5; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.Builder getDoorsLockBuilder() { + return getDoorsLockFieldBuilder().getBuilder(); + } + /** + * .proto.DoorsLock doors_lock = 5; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLockOrBuilder getDoorsLockOrBuilder() { + if ((commandCase_ == 5) && (doorsLockBuilder_ != null)) { + return doorsLockBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 5) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance(); + } + } + /** + * .proto.DoorsLock doors_lock = 5; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock, com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DoorsLockOrBuilder> + getDoorsLockFieldBuilder() { + if (doorsLockBuilder_ == null) { + if (!(commandCase_ == 5)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance(); + } + doorsLockBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock, com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DoorsLockOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 5; + onChanged(); + return doorsLockBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock, com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlockOrBuilder> doorsUnlockBuilder_; + /** + * .proto.DoorsUnlock doors_unlock = 6; + * @return Whether the doorsUnlock field is set. + */ + @java.lang.Override + public boolean hasDoorsUnlock() { + return commandCase_ == 6; + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + * @return The doorsUnlock. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock getDoorsUnlock() { + if (doorsUnlockBuilder_ == null) { + if (commandCase_ == 6) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance(); + } else { + if (commandCase_ == 6) { + return doorsUnlockBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance(); + } + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + public Builder setDoorsUnlock(com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock value) { + if (doorsUnlockBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + doorsUnlockBuilder_.setMessage(value); + } + commandCase_ = 6; + return this; + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + public Builder setDoorsUnlock( + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.Builder builderForValue) { + if (doorsUnlockBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + doorsUnlockBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 6; + return this; + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + public Builder mergeDoorsUnlock(com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock value) { + if (doorsUnlockBuilder_ == null) { + if (commandCase_ == 6 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 6) { + doorsUnlockBuilder_.mergeFrom(value); + } else { + doorsUnlockBuilder_.setMessage(value); + } + } + commandCase_ = 6; + return this; + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + public Builder clearDoorsUnlock() { + if (doorsUnlockBuilder_ == null) { + if (commandCase_ == 6) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 6) { + commandCase_ = 0; + command_ = null; + } + doorsUnlockBuilder_.clear(); + } + return this; + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.Builder getDoorsUnlockBuilder() { + return getDoorsUnlockFieldBuilder().getBuilder(); + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlockOrBuilder getDoorsUnlockOrBuilder() { + if ((commandCase_ == 6) && (doorsUnlockBuilder_ != null)) { + return doorsUnlockBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 6) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance(); + } + } + /** + * .proto.DoorsUnlock doors_unlock = 6; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock, com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlockOrBuilder> + getDoorsUnlockFieldBuilder() { + if (doorsUnlockBuilder_ == null) { + if (!(commandCase_ == 6)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance(); + } + doorsUnlockBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock, com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlockOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 6; + onChanged(); + return doorsUnlockBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen, com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpenOrBuilder> sunroofOpenBuilder_; + /** + * .proto.SunroofOpen sunroof_open = 9; + * @return Whether the sunroofOpen field is set. + */ + @java.lang.Override + public boolean hasSunroofOpen() { + return commandCase_ == 9; + } + /** + * .proto.SunroofOpen sunroof_open = 9; + * @return The sunroofOpen. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen getSunroofOpen() { + if (sunroofOpenBuilder_ == null) { + if (commandCase_ == 9) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance(); + } else { + if (commandCase_ == 9) { + return sunroofOpenBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance(); + } + } + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + public Builder setSunroofOpen(com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen value) { + if (sunroofOpenBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + sunroofOpenBuilder_.setMessage(value); + } + commandCase_ = 9; + return this; + } + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + public Builder setSunroofOpen( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.Builder builderForValue) { + if (sunroofOpenBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + sunroofOpenBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 9; + return this; + } + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + public Builder mergeSunroofOpen(com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen value) { + if (sunroofOpenBuilder_ == null) { + if (commandCase_ == 9 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 9) { + sunroofOpenBuilder_.mergeFrom(value); + } else { + sunroofOpenBuilder_.setMessage(value); + } + } + commandCase_ = 9; + return this; + } + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + public Builder clearSunroofOpen() { + if (sunroofOpenBuilder_ == null) { + if (commandCase_ == 9) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 9) { + commandCase_ = 0; + command_ = null; + } + sunroofOpenBuilder_.clear(); + } + return this; + } + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.Builder getSunroofOpenBuilder() { + return getSunroofOpenFieldBuilder().getBuilder(); + } + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpenOrBuilder getSunroofOpenOrBuilder() { + if ((commandCase_ == 9) && (sunroofOpenBuilder_ != null)) { + return sunroofOpenBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 9) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance(); + } + } + /** + * .proto.SunroofOpen sunroof_open = 9; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen, com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpenOrBuilder> + getSunroofOpenFieldBuilder() { + if (sunroofOpenBuilder_ == null) { + if (!(commandCase_ == 9)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance(); + } + sunroofOpenBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen, com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpenOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 9; + onChanged(); + return sunroofOpenBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose, com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofCloseOrBuilder> sunroofCloseBuilder_; + /** + * .proto.SunroofClose sunroof_close = 10; + * @return Whether the sunroofClose field is set. + */ + @java.lang.Override + public boolean hasSunroofClose() { + return commandCase_ == 10; + } + /** + * .proto.SunroofClose sunroof_close = 10; + * @return The sunroofClose. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose getSunroofClose() { + if (sunroofCloseBuilder_ == null) { + if (commandCase_ == 10) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance(); + } else { + if (commandCase_ == 10) { + return sunroofCloseBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance(); + } + } + /** + * .proto.SunroofClose sunroof_close = 10; + */ + public Builder setSunroofClose(com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose value) { + if (sunroofCloseBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + sunroofCloseBuilder_.setMessage(value); + } + commandCase_ = 10; + return this; + } + /** + * .proto.SunroofClose sunroof_close = 10; + */ + public Builder setSunroofClose( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.Builder builderForValue) { + if (sunroofCloseBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + sunroofCloseBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 10; + return this; + } + /** + * .proto.SunroofClose sunroof_close = 10; + */ + public Builder mergeSunroofClose(com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose value) { + if (sunroofCloseBuilder_ == null) { + if (commandCase_ == 10 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 10) { + sunroofCloseBuilder_.mergeFrom(value); + } else { + sunroofCloseBuilder_.setMessage(value); + } + } + commandCase_ = 10; + return this; + } + /** + * .proto.SunroofClose sunroof_close = 10; + */ + public Builder clearSunroofClose() { + if (sunroofCloseBuilder_ == null) { + if (commandCase_ == 10) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 10) { + commandCase_ = 0; + command_ = null; + } + sunroofCloseBuilder_.clear(); + } + return this; + } + /** + * .proto.SunroofClose sunroof_close = 10; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.Builder getSunroofCloseBuilder() { + return getSunroofCloseFieldBuilder().getBuilder(); + } + /** + * .proto.SunroofClose sunroof_close = 10; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofCloseOrBuilder getSunroofCloseOrBuilder() { + if ((commandCase_ == 10) && (sunroofCloseBuilder_ != null)) { + return sunroofCloseBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 10) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance(); + } + } + /** + * .proto.SunroofClose sunroof_close = 10; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose, com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofCloseOrBuilder> + getSunroofCloseFieldBuilder() { + if (sunroofCloseBuilder_ == null) { + if (!(commandCase_ == 10)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance(); + } + sunroofCloseBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose, com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofCloseOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 10; + onChanged(); + return sunroofCloseBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift, com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofLiftOrBuilder> sunroofLiftBuilder_; + /** + * .proto.SunroofLift sunroof_lift = 11; + * @return Whether the sunroofLift field is set. + */ + @java.lang.Override + public boolean hasSunroofLift() { + return commandCase_ == 11; + } + /** + * .proto.SunroofLift sunroof_lift = 11; + * @return The sunroofLift. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift getSunroofLift() { + if (sunroofLiftBuilder_ == null) { + if (commandCase_ == 11) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance(); + } else { + if (commandCase_ == 11) { + return sunroofLiftBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance(); + } + } + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + public Builder setSunroofLift(com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift value) { + if (sunroofLiftBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + sunroofLiftBuilder_.setMessage(value); + } + commandCase_ = 11; + return this; + } + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + public Builder setSunroofLift( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.Builder builderForValue) { + if (sunroofLiftBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + sunroofLiftBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 11; + return this; + } + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + public Builder mergeSunroofLift(com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift value) { + if (sunroofLiftBuilder_ == null) { + if (commandCase_ == 11 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 11) { + sunroofLiftBuilder_.mergeFrom(value); + } else { + sunroofLiftBuilder_.setMessage(value); + } + } + commandCase_ = 11; + return this; + } + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + public Builder clearSunroofLift() { + if (sunroofLiftBuilder_ == null) { + if (commandCase_ == 11) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 11) { + commandCase_ = 0; + command_ = null; + } + sunroofLiftBuilder_.clear(); + } + return this; + } + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.Builder getSunroofLiftBuilder() { + return getSunroofLiftFieldBuilder().getBuilder(); + } + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLiftOrBuilder getSunroofLiftOrBuilder() { + if ((commandCase_ == 11) && (sunroofLiftBuilder_ != null)) { + return sunroofLiftBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 11) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance(); + } + } + /** + * .proto.SunroofLift sunroof_lift = 11; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift, com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofLiftOrBuilder> + getSunroofLiftFieldBuilder() { + if (sunroofLiftBuilder_ == null) { + if (!(commandCase_ == 11)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance(); + } + sunroofLiftBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift, com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofLiftOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 11; + onChanged(); + return sunroofLiftBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove, com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofMoveOrBuilder> sunroofMoveBuilder_; + /** + * .proto.SunroofMove sunroof_move = 47; + * @return Whether the sunroofMove field is set. + */ + @java.lang.Override + public boolean hasSunroofMove() { + return commandCase_ == 47; + } + /** + * .proto.SunroofMove sunroof_move = 47; + * @return The sunroofMove. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove getSunroofMove() { + if (sunroofMoveBuilder_ == null) { + if (commandCase_ == 47) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance(); + } else { + if (commandCase_ == 47) { + return sunroofMoveBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance(); + } + } + /** + * .proto.SunroofMove sunroof_move = 47; + */ + public Builder setSunroofMove(com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove value) { + if (sunroofMoveBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + sunroofMoveBuilder_.setMessage(value); + } + commandCase_ = 47; + return this; + } + /** + * .proto.SunroofMove sunroof_move = 47; + */ + public Builder setSunroofMove( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.Builder builderForValue) { + if (sunroofMoveBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + sunroofMoveBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 47; + return this; + } + /** + * .proto.SunroofMove sunroof_move = 47; + */ + public Builder mergeSunroofMove(com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove value) { + if (sunroofMoveBuilder_ == null) { + if (commandCase_ == 47 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 47) { + sunroofMoveBuilder_.mergeFrom(value); + } else { + sunroofMoveBuilder_.setMessage(value); + } + } + commandCase_ = 47; + return this; + } + /** + * .proto.SunroofMove sunroof_move = 47; + */ + public Builder clearSunroofMove() { + if (sunroofMoveBuilder_ == null) { + if (commandCase_ == 47) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 47) { + commandCase_ = 0; + command_ = null; + } + sunroofMoveBuilder_.clear(); + } + return this; + } + /** + * .proto.SunroofMove sunroof_move = 47; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.Builder getSunroofMoveBuilder() { + return getSunroofMoveFieldBuilder().getBuilder(); + } + /** + * .proto.SunroofMove sunroof_move = 47; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMoveOrBuilder getSunroofMoveOrBuilder() { + if ((commandCase_ == 47) && (sunroofMoveBuilder_ != null)) { + return sunroofMoveBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 47) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance(); + } + } + /** + * .proto.SunroofMove sunroof_move = 47; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove, com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofMoveOrBuilder> + getSunroofMoveFieldBuilder() { + if (sunroofMoveBuilder_ == null) { + if (!(commandCase_ == 47)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance(); + } + sunroofMoveBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove, com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SunroofMoveOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 47; + onChanged(); + return sunroofMoveBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen, com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpenOrBuilder> windowsOpenBuilder_; + /** + * .proto.WindowsOpen windows_open = 12; + * @return Whether the windowsOpen field is set. + */ + @java.lang.Override + public boolean hasWindowsOpen() { + return commandCase_ == 12; + } + /** + * .proto.WindowsOpen windows_open = 12; + * @return The windowsOpen. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen getWindowsOpen() { + if (windowsOpenBuilder_ == null) { + if (commandCase_ == 12) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance(); + } else { + if (commandCase_ == 12) { + return windowsOpenBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance(); + } + } + /** + * .proto.WindowsOpen windows_open = 12; + */ + public Builder setWindowsOpen(com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen value) { + if (windowsOpenBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + windowsOpenBuilder_.setMessage(value); + } + commandCase_ = 12; + return this; + } + /** + * .proto.WindowsOpen windows_open = 12; + */ + public Builder setWindowsOpen( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.Builder builderForValue) { + if (windowsOpenBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + windowsOpenBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 12; + return this; + } + /** + * .proto.WindowsOpen windows_open = 12; + */ + public Builder mergeWindowsOpen(com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen value) { + if (windowsOpenBuilder_ == null) { + if (commandCase_ == 12 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 12) { + windowsOpenBuilder_.mergeFrom(value); + } else { + windowsOpenBuilder_.setMessage(value); + } + } + commandCase_ = 12; + return this; + } + /** + * .proto.WindowsOpen windows_open = 12; + */ + public Builder clearWindowsOpen() { + if (windowsOpenBuilder_ == null) { + if (commandCase_ == 12) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 12) { + commandCase_ = 0; + command_ = null; + } + windowsOpenBuilder_.clear(); + } + return this; + } + /** + * .proto.WindowsOpen windows_open = 12; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.Builder getWindowsOpenBuilder() { + return getWindowsOpenFieldBuilder().getBuilder(); + } + /** + * .proto.WindowsOpen windows_open = 12; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpenOrBuilder getWindowsOpenOrBuilder() { + if ((commandCase_ == 12) && (windowsOpenBuilder_ != null)) { + return windowsOpenBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 12) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance(); + } + } + /** + * .proto.WindowsOpen windows_open = 12; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen, com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpenOrBuilder> + getWindowsOpenFieldBuilder() { + if (windowsOpenBuilder_ == null) { + if (!(commandCase_ == 12)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance(); + } + windowsOpenBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen, com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpenOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 12; + onChanged(); + return windowsOpenBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose, com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsCloseOrBuilder> windowsCloseBuilder_; + /** + * .proto.WindowsClose windows_close = 13; + * @return Whether the windowsClose field is set. + */ + @java.lang.Override + public boolean hasWindowsClose() { + return commandCase_ == 13; + } + /** + * .proto.WindowsClose windows_close = 13; + * @return The windowsClose. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose getWindowsClose() { + if (windowsCloseBuilder_ == null) { + if (commandCase_ == 13) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance(); + } else { + if (commandCase_ == 13) { + return windowsCloseBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance(); + } + } + /** + * .proto.WindowsClose windows_close = 13; + */ + public Builder setWindowsClose(com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose value) { + if (windowsCloseBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + windowsCloseBuilder_.setMessage(value); + } + commandCase_ = 13; + return this; + } + /** + * .proto.WindowsClose windows_close = 13; + */ + public Builder setWindowsClose( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.Builder builderForValue) { + if (windowsCloseBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + windowsCloseBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 13; + return this; + } + /** + * .proto.WindowsClose windows_close = 13; + */ + public Builder mergeWindowsClose(com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose value) { + if (windowsCloseBuilder_ == null) { + if (commandCase_ == 13 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 13) { + windowsCloseBuilder_.mergeFrom(value); + } else { + windowsCloseBuilder_.setMessage(value); + } + } + commandCase_ = 13; + return this; + } + /** + * .proto.WindowsClose windows_close = 13; + */ + public Builder clearWindowsClose() { + if (windowsCloseBuilder_ == null) { + if (commandCase_ == 13) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 13) { + commandCase_ = 0; + command_ = null; + } + windowsCloseBuilder_.clear(); + } + return this; + } + /** + * .proto.WindowsClose windows_close = 13; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.Builder getWindowsCloseBuilder() { + return getWindowsCloseFieldBuilder().getBuilder(); + } + /** + * .proto.WindowsClose windows_close = 13; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsCloseOrBuilder getWindowsCloseOrBuilder() { + if ((commandCase_ == 13) && (windowsCloseBuilder_ != null)) { + return windowsCloseBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 13) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance(); + } + } + /** + * .proto.WindowsClose windows_close = 13; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose, com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsCloseOrBuilder> + getWindowsCloseFieldBuilder() { + if (windowsCloseBuilder_ == null) { + if (!(commandCase_ == 13)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance(); + } + windowsCloseBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose, com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsCloseOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 13; + onChanged(); + return windowsCloseBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate, com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilateOrBuilder> windowsVentilateBuilder_; + /** + * .proto.WindowsVentilate windows_ventilate = 43; + * @return Whether the windowsVentilate field is set. + */ + @java.lang.Override + public boolean hasWindowsVentilate() { + return commandCase_ == 43; + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + * @return The windowsVentilate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate getWindowsVentilate() { + if (windowsVentilateBuilder_ == null) { + if (commandCase_ == 43) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance(); + } else { + if (commandCase_ == 43) { + return windowsVentilateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance(); + } + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + public Builder setWindowsVentilate(com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate value) { + if (windowsVentilateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + windowsVentilateBuilder_.setMessage(value); + } + commandCase_ = 43; + return this; + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + public Builder setWindowsVentilate( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.Builder builderForValue) { + if (windowsVentilateBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + windowsVentilateBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 43; + return this; + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + public Builder mergeWindowsVentilate(com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate value) { + if (windowsVentilateBuilder_ == null) { + if (commandCase_ == 43 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 43) { + windowsVentilateBuilder_.mergeFrom(value); + } else { + windowsVentilateBuilder_.setMessage(value); + } + } + commandCase_ = 43; + return this; + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + public Builder clearWindowsVentilate() { + if (windowsVentilateBuilder_ == null) { + if (commandCase_ == 43) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 43) { + commandCase_ = 0; + command_ = null; + } + windowsVentilateBuilder_.clear(); + } + return this; + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.Builder getWindowsVentilateBuilder() { + return getWindowsVentilateFieldBuilder().getBuilder(); + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilateOrBuilder getWindowsVentilateOrBuilder() { + if ((commandCase_ == 43) && (windowsVentilateBuilder_ != null)) { + return windowsVentilateBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 43) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance(); + } + } + /** + * .proto.WindowsVentilate windows_ventilate = 43; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate, com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilateOrBuilder> + getWindowsVentilateFieldBuilder() { + if (windowsVentilateBuilder_ == null) { + if (!(commandCase_ == 43)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance(); + } + windowsVentilateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate, com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilateOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 43; + onChanged(); + return windowsVentilateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove, com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsMoveOrBuilder> windowsMoveBuilder_; + /** + * .proto.WindowsMove windows_move = 44; + * @return Whether the windowsMove field is set. + */ + @java.lang.Override + public boolean hasWindowsMove() { + return commandCase_ == 44; + } + /** + * .proto.WindowsMove windows_move = 44; + * @return The windowsMove. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove getWindowsMove() { + if (windowsMoveBuilder_ == null) { + if (commandCase_ == 44) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance(); + } else { + if (commandCase_ == 44) { + return windowsMoveBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance(); + } + } + /** + * .proto.WindowsMove windows_move = 44; + */ + public Builder setWindowsMove(com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove value) { + if (windowsMoveBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + windowsMoveBuilder_.setMessage(value); + } + commandCase_ = 44; + return this; + } + /** + * .proto.WindowsMove windows_move = 44; + */ + public Builder setWindowsMove( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.Builder builderForValue) { + if (windowsMoveBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + windowsMoveBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 44; + return this; + } + /** + * .proto.WindowsMove windows_move = 44; + */ + public Builder mergeWindowsMove(com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove value) { + if (windowsMoveBuilder_ == null) { + if (commandCase_ == 44 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 44) { + windowsMoveBuilder_.mergeFrom(value); + } else { + windowsMoveBuilder_.setMessage(value); + } + } + commandCase_ = 44; + return this; + } + /** + * .proto.WindowsMove windows_move = 44; + */ + public Builder clearWindowsMove() { + if (windowsMoveBuilder_ == null) { + if (commandCase_ == 44) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 44) { + commandCase_ = 0; + command_ = null; + } + windowsMoveBuilder_.clear(); + } + return this; + } + /** + * .proto.WindowsMove windows_move = 44; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.Builder getWindowsMoveBuilder() { + return getWindowsMoveFieldBuilder().getBuilder(); + } + /** + * .proto.WindowsMove windows_move = 44; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMoveOrBuilder getWindowsMoveOrBuilder() { + if ((commandCase_ == 44) && (windowsMoveBuilder_ != null)) { + return windowsMoveBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 44) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance(); + } + } + /** + * .proto.WindowsMove windows_move = 44; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove, com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsMoveOrBuilder> + getWindowsMoveFieldBuilder() { + if (windowsMoveBuilder_ == null) { + if (!(commandCase_ == 44)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance(); + } + windowsMoveBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove, com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WindowsMoveOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 44; + onChanged(); + return windowsMoveBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart, com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.EngineStartOrBuilder> engineStartBuilder_; + /** + * .proto.EngineStart engine_start = 19; + * @return Whether the engineStart field is set. + */ + @java.lang.Override + public boolean hasEngineStart() { + return commandCase_ == 19; + } + /** + * .proto.EngineStart engine_start = 19; + * @return The engineStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStart getEngineStart() { + if (engineStartBuilder_ == null) { + if (commandCase_ == 19) { + return (com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance(); + } else { + if (commandCase_ == 19) { + return engineStartBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance(); + } + } + /** + * .proto.EngineStart engine_start = 19; + */ + public Builder setEngineStart(com.daimler.mbcarkit.proto.VehicleCommands.EngineStart value) { + if (engineStartBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + engineStartBuilder_.setMessage(value); + } + commandCase_ = 19; + return this; + } + /** + * .proto.EngineStart engine_start = 19; + */ + public Builder setEngineStart( + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.Builder builderForValue) { + if (engineStartBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + engineStartBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 19; + return this; + } + /** + * .proto.EngineStart engine_start = 19; + */ + public Builder mergeEngineStart(com.daimler.mbcarkit.proto.VehicleCommands.EngineStart value) { + if (engineStartBuilder_ == null) { + if (commandCase_ == 19 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 19) { + engineStartBuilder_.mergeFrom(value); + } else { + engineStartBuilder_.setMessage(value); + } + } + commandCase_ = 19; + return this; + } + /** + * .proto.EngineStart engine_start = 19; + */ + public Builder clearEngineStart() { + if (engineStartBuilder_ == null) { + if (commandCase_ == 19) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 19) { + commandCase_ = 0; + command_ = null; + } + engineStartBuilder_.clear(); + } + return this; + } + /** + * .proto.EngineStart engine_start = 19; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.Builder getEngineStartBuilder() { + return getEngineStartFieldBuilder().getBuilder(); + } + /** + * .proto.EngineStart engine_start = 19; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStartOrBuilder getEngineStartOrBuilder() { + if ((commandCase_ == 19) && (engineStartBuilder_ != null)) { + return engineStartBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 19) { + return (com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance(); + } + } + /** + * .proto.EngineStart engine_start = 19; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart, com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.EngineStartOrBuilder> + getEngineStartFieldBuilder() { + if (engineStartBuilder_ == null) { + if (!(commandCase_ == 19)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance(); + } + engineStartBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart, com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.EngineStartOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 19; + onChanged(); + return engineStartBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop, com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.EngineStopOrBuilder> engineStopBuilder_; + /** + * .proto.EngineStop engine_stop = 20; + * @return Whether the engineStop field is set. + */ + @java.lang.Override + public boolean hasEngineStop() { + return commandCase_ == 20; + } + /** + * .proto.EngineStop engine_stop = 20; + * @return The engineStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStop getEngineStop() { + if (engineStopBuilder_ == null) { + if (commandCase_ == 20) { + return (com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance(); + } else { + if (commandCase_ == 20) { + return engineStopBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance(); + } + } + /** + * .proto.EngineStop engine_stop = 20; + */ + public Builder setEngineStop(com.daimler.mbcarkit.proto.VehicleCommands.EngineStop value) { + if (engineStopBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + engineStopBuilder_.setMessage(value); + } + commandCase_ = 20; + return this; + } + /** + * .proto.EngineStop engine_stop = 20; + */ + public Builder setEngineStop( + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.Builder builderForValue) { + if (engineStopBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + engineStopBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 20; + return this; + } + /** + * .proto.EngineStop engine_stop = 20; + */ + public Builder mergeEngineStop(com.daimler.mbcarkit.proto.VehicleCommands.EngineStop value) { + if (engineStopBuilder_ == null) { + if (commandCase_ == 20 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 20) { + engineStopBuilder_.mergeFrom(value); + } else { + engineStopBuilder_.setMessage(value); + } + } + commandCase_ = 20; + return this; + } + /** + * .proto.EngineStop engine_stop = 20; + */ + public Builder clearEngineStop() { + if (engineStopBuilder_ == null) { + if (commandCase_ == 20) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 20) { + commandCase_ = 0; + command_ = null; + } + engineStopBuilder_.clear(); + } + return this; + } + /** + * .proto.EngineStop engine_stop = 20; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.Builder getEngineStopBuilder() { + return getEngineStopFieldBuilder().getBuilder(); + } + /** + * .proto.EngineStop engine_stop = 20; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStopOrBuilder getEngineStopOrBuilder() { + if ((commandCase_ == 20) && (engineStopBuilder_ != null)) { + return engineStopBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 20) { + return (com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance(); + } + } + /** + * .proto.EngineStop engine_stop = 20; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop, com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.EngineStopOrBuilder> + getEngineStopFieldBuilder() { + if (engineStopBuilder_ == null) { + if (!(commandCase_ == 20)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance(); + } + engineStopBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop, com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.EngineStopOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 20; + onChanged(); + return engineStopBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStartOrBuilder> zevPreconditioningStartBuilder_; + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + * @return Whether the zevPreconditioningStart field is set. + */ + @java.lang.Override + public boolean hasZevPreconditioningStart() { + return commandCase_ == 21; + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + * @return The zevPreconditioningStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart getZevPreconditioningStart() { + if (zevPreconditioningStartBuilder_ == null) { + if (commandCase_ == 21) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance(); + } else { + if (commandCase_ == 21) { + return zevPreconditioningStartBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance(); + } + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + public Builder setZevPreconditioningStart(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart value) { + if (zevPreconditioningStartBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + zevPreconditioningStartBuilder_.setMessage(value); + } + commandCase_ = 21; + return this; + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + public Builder setZevPreconditioningStart( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.Builder builderForValue) { + if (zevPreconditioningStartBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + zevPreconditioningStartBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 21; + return this; + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + public Builder mergeZevPreconditioningStart(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart value) { + if (zevPreconditioningStartBuilder_ == null) { + if (commandCase_ == 21 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 21) { + zevPreconditioningStartBuilder_.mergeFrom(value); + } else { + zevPreconditioningStartBuilder_.setMessage(value); + } + } + commandCase_ = 21; + return this; + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + public Builder clearZevPreconditioningStart() { + if (zevPreconditioningStartBuilder_ == null) { + if (commandCase_ == 21) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 21) { + commandCase_ = 0; + command_ = null; + } + zevPreconditioningStartBuilder_.clear(); + } + return this; + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.Builder getZevPreconditioningStartBuilder() { + return getZevPreconditioningStartFieldBuilder().getBuilder(); + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStartOrBuilder getZevPreconditioningStartOrBuilder() { + if ((commandCase_ == 21) && (zevPreconditioningStartBuilder_ != null)) { + return zevPreconditioningStartBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 21) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance(); + } + } + /** + * .proto.ZEVPreconditioningStart zev_preconditioning_start = 21; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStartOrBuilder> + getZevPreconditioningStartFieldBuilder() { + if (zevPreconditioningStartBuilder_ == null) { + if (!(commandCase_ == 21)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance(); + } + zevPreconditioningStartBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStartOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 21; + onChanged(); + return zevPreconditioningStartBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStopOrBuilder> zevPreconditioningStopBuilder_; + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + * @return Whether the zevPreconditioningStop field is set. + */ + @java.lang.Override + public boolean hasZevPreconditioningStop() { + return commandCase_ == 22; + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + * @return The zevPreconditioningStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop getZevPreconditioningStop() { + if (zevPreconditioningStopBuilder_ == null) { + if (commandCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance(); + } else { + if (commandCase_ == 22) { + return zevPreconditioningStopBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance(); + } + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + public Builder setZevPreconditioningStop(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop value) { + if (zevPreconditioningStopBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + zevPreconditioningStopBuilder_.setMessage(value); + } + commandCase_ = 22; + return this; + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + public Builder setZevPreconditioningStop( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.Builder builderForValue) { + if (zevPreconditioningStopBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + zevPreconditioningStopBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 22; + return this; + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + public Builder mergeZevPreconditioningStop(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop value) { + if (zevPreconditioningStopBuilder_ == null) { + if (commandCase_ == 22 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 22) { + zevPreconditioningStopBuilder_.mergeFrom(value); + } else { + zevPreconditioningStopBuilder_.setMessage(value); + } + } + commandCase_ = 22; + return this; + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + public Builder clearZevPreconditioningStop() { + if (zevPreconditioningStopBuilder_ == null) { + if (commandCase_ == 22) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 22) { + commandCase_ = 0; + command_ = null; + } + zevPreconditioningStopBuilder_.clear(); + } + return this; + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.Builder getZevPreconditioningStopBuilder() { + return getZevPreconditioningStopFieldBuilder().getBuilder(); + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStopOrBuilder getZevPreconditioningStopOrBuilder() { + if ((commandCase_ == 22) && (zevPreconditioningStopBuilder_ != null)) { + return zevPreconditioningStopBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance(); + } + } + /** + * .proto.ZEVPreconditioningStop zev_preconditioning_stop = 22; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStopOrBuilder> + getZevPreconditioningStopFieldBuilder() { + if (zevPreconditioningStopBuilder_ == null) { + if (!(commandCase_ == 22)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance(); + } + zevPreconditioningStopBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStopOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 22; + onChanged(); + return zevPreconditioningStopBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureOrBuilder> zevPreconditionConfigureBuilder_; + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + * @return Whether the zevPreconditionConfigure field is set. + */ + @java.lang.Override + public boolean hasZevPreconditionConfigure() { + return commandCase_ == 25; + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + * @return The zevPreconditionConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure getZevPreconditionConfigure() { + if (zevPreconditionConfigureBuilder_ == null) { + if (commandCase_ == 25) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 25) { + return zevPreconditionConfigureBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance(); + } + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + public Builder setZevPreconditionConfigure(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure value) { + if (zevPreconditionConfigureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + zevPreconditionConfigureBuilder_.setMessage(value); + } + commandCase_ = 25; + return this; + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + public Builder setZevPreconditionConfigure( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.Builder builderForValue) { + if (zevPreconditionConfigureBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + zevPreconditionConfigureBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 25; + return this; + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + public Builder mergeZevPreconditionConfigure(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure value) { + if (zevPreconditionConfigureBuilder_ == null) { + if (commandCase_ == 25 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 25) { + zevPreconditionConfigureBuilder_.mergeFrom(value); + } else { + zevPreconditionConfigureBuilder_.setMessage(value); + } + } + commandCase_ = 25; + return this; + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + public Builder clearZevPreconditionConfigure() { + if (zevPreconditionConfigureBuilder_ == null) { + if (commandCase_ == 25) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 25) { + commandCase_ = 0; + command_ = null; + } + zevPreconditionConfigureBuilder_.clear(); + } + return this; + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.Builder getZevPreconditionConfigureBuilder() { + return getZevPreconditionConfigureFieldBuilder().getBuilder(); + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureOrBuilder getZevPreconditionConfigureOrBuilder() { + if ((commandCase_ == 25) && (zevPreconditionConfigureBuilder_ != null)) { + return zevPreconditionConfigureBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 25) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance(); + } + } + /** + * .proto.ZEVPreconditioningConfigure zev_precondition_configure = 25; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureOrBuilder> + getZevPreconditionConfigureFieldBuilder() { + if (zevPreconditionConfigureBuilder_ == null) { + if (!(commandCase_ == 25)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance(); + } + zevPreconditionConfigureBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 25; + onChanged(); + return zevPreconditionConfigureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeatsOrBuilder> zevPreconditionConfigureSeatsBuilder_; + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + * @return Whether the zevPreconditionConfigureSeats field is set. + */ + @java.lang.Override + public boolean hasZevPreconditionConfigureSeats() { + return commandCase_ == 26; + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + * @return The zevPreconditionConfigureSeats. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats getZevPreconditionConfigureSeats() { + if (zevPreconditionConfigureSeatsBuilder_ == null) { + if (commandCase_ == 26) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance(); + } else { + if (commandCase_ == 26) { + return zevPreconditionConfigureSeatsBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance(); + } + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + public Builder setZevPreconditionConfigureSeats(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats value) { + if (zevPreconditionConfigureSeatsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + zevPreconditionConfigureSeatsBuilder_.setMessage(value); + } + commandCase_ = 26; + return this; + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + public Builder setZevPreconditionConfigureSeats( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.Builder builderForValue) { + if (zevPreconditionConfigureSeatsBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + zevPreconditionConfigureSeatsBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 26; + return this; + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + public Builder mergeZevPreconditionConfigureSeats(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats value) { + if (zevPreconditionConfigureSeatsBuilder_ == null) { + if (commandCase_ == 26 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 26) { + zevPreconditionConfigureSeatsBuilder_.mergeFrom(value); + } else { + zevPreconditionConfigureSeatsBuilder_.setMessage(value); + } + } + commandCase_ = 26; + return this; + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + public Builder clearZevPreconditionConfigureSeats() { + if (zevPreconditionConfigureSeatsBuilder_ == null) { + if (commandCase_ == 26) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 26) { + commandCase_ = 0; + command_ = null; + } + zevPreconditionConfigureSeatsBuilder_.clear(); + } + return this; + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.Builder getZevPreconditionConfigureSeatsBuilder() { + return getZevPreconditionConfigureSeatsFieldBuilder().getBuilder(); + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeatsOrBuilder getZevPreconditionConfigureSeatsOrBuilder() { + if ((commandCase_ == 26) && (zevPreconditionConfigureSeatsBuilder_ != null)) { + return zevPreconditionConfigureSeatsBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 26) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance(); + } + } + /** + * .proto.ZEVPreconditioningConfigureSeats zev_precondition_configure_seats = 26; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeatsOrBuilder> + getZevPreconditionConfigureSeatsFieldBuilder() { + if (zevPreconditionConfigureSeatsBuilder_ == null) { + if (!(commandCase_ == 26)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance(); + } + zevPreconditionConfigureSeatsBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeatsOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 26; + onChanged(); + return zevPreconditionConfigureSeatsBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStartOrBuilder> speedalertStartBuilder_; + /** + * .proto.SpeedalertStart speedalert_start = 23; + * @return Whether the speedalertStart field is set. + */ + @java.lang.Override + public boolean hasSpeedalertStart() { + return commandCase_ == 23; + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + * @return The speedalertStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart getSpeedalertStart() { + if (speedalertStartBuilder_ == null) { + if (commandCase_ == 23) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance(); + } else { + if (commandCase_ == 23) { + return speedalertStartBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance(); + } + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + public Builder setSpeedalertStart(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart value) { + if (speedalertStartBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + speedalertStartBuilder_.setMessage(value); + } + commandCase_ = 23; + return this; + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + public Builder setSpeedalertStart( + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.Builder builderForValue) { + if (speedalertStartBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + speedalertStartBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 23; + return this; + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + public Builder mergeSpeedalertStart(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart value) { + if (speedalertStartBuilder_ == null) { + if (commandCase_ == 23 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 23) { + speedalertStartBuilder_.mergeFrom(value); + } else { + speedalertStartBuilder_.setMessage(value); + } + } + commandCase_ = 23; + return this; + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + public Builder clearSpeedalertStart() { + if (speedalertStartBuilder_ == null) { + if (commandCase_ == 23) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 23) { + commandCase_ = 0; + command_ = null; + } + speedalertStartBuilder_.clear(); + } + return this; + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.Builder getSpeedalertStartBuilder() { + return getSpeedalertStartFieldBuilder().getBuilder(); + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStartOrBuilder getSpeedalertStartOrBuilder() { + if ((commandCase_ == 23) && (speedalertStartBuilder_ != null)) { + return speedalertStartBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 23) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance(); + } + } + /** + * .proto.SpeedalertStart speedalert_start = 23; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStartOrBuilder> + getSpeedalertStartFieldBuilder() { + if (speedalertStartBuilder_ == null) { + if (!(commandCase_ == 23)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance(); + } + speedalertStartBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStartOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 23; + onChanged(); + return speedalertStartBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStopOrBuilder> speedalertStopBuilder_; + /** + * .proto.SpeedalertStop speedalert_stop = 24; + * @return Whether the speedalertStop field is set. + */ + @java.lang.Override + public boolean hasSpeedalertStop() { + return commandCase_ == 24; + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + * @return The speedalertStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop getSpeedalertStop() { + if (speedalertStopBuilder_ == null) { + if (commandCase_ == 24) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance(); + } else { + if (commandCase_ == 24) { + return speedalertStopBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance(); + } + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + public Builder setSpeedalertStop(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop value) { + if (speedalertStopBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + speedalertStopBuilder_.setMessage(value); + } + commandCase_ = 24; + return this; + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + public Builder setSpeedalertStop( + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.Builder builderForValue) { + if (speedalertStopBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + speedalertStopBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 24; + return this; + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + public Builder mergeSpeedalertStop(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop value) { + if (speedalertStopBuilder_ == null) { + if (commandCase_ == 24 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 24) { + speedalertStopBuilder_.mergeFrom(value); + } else { + speedalertStopBuilder_.setMessage(value); + } + } + commandCase_ = 24; + return this; + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + public Builder clearSpeedalertStop() { + if (speedalertStopBuilder_ == null) { + if (commandCase_ == 24) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 24) { + commandCase_ = 0; + command_ = null; + } + speedalertStopBuilder_.clear(); + } + return this; + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.Builder getSpeedalertStopBuilder() { + return getSpeedalertStopFieldBuilder().getBuilder(); + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStopOrBuilder getSpeedalertStopOrBuilder() { + if ((commandCase_ == 24) && (speedalertStopBuilder_ != null)) { + return speedalertStopBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 24) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance(); + } + } + /** + * .proto.SpeedalertStop speedalert_stop = 24; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStopOrBuilder> + getSpeedalertStopFieldBuilder() { + if (speedalertStopBuilder_ == null) { + if (!(commandCase_ == 24)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance(); + } + speedalertStopBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStopOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 24; + onChanged(); + return speedalertStopBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure, com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigureOrBuilder> batteryChargeProgramBuilder_; + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + * @return Whether the batteryChargeProgram field is set. + */ + @java.lang.Override + public boolean hasBatteryChargeProgram() { + return commandCase_ == 27; + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + * @return The batteryChargeProgram. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure getBatteryChargeProgram() { + if (batteryChargeProgramBuilder_ == null) { + if (commandCase_ == 27) { + return (com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 27) { + return batteryChargeProgramBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance(); + } + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + public Builder setBatteryChargeProgram(com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure value) { + if (batteryChargeProgramBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + batteryChargeProgramBuilder_.setMessage(value); + } + commandCase_ = 27; + return this; + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + public Builder setBatteryChargeProgram( + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.Builder builderForValue) { + if (batteryChargeProgramBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + batteryChargeProgramBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 27; + return this; + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + public Builder mergeBatteryChargeProgram(com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure value) { + if (batteryChargeProgramBuilder_ == null) { + if (commandCase_ == 27 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 27) { + batteryChargeProgramBuilder_.mergeFrom(value); + } else { + batteryChargeProgramBuilder_.setMessage(value); + } + } + commandCase_ = 27; + return this; + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + public Builder clearBatteryChargeProgram() { + if (batteryChargeProgramBuilder_ == null) { + if (commandCase_ == 27) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 27) { + commandCase_ = 0; + command_ = null; + } + batteryChargeProgramBuilder_.clear(); + } + return this; + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.Builder getBatteryChargeProgramBuilder() { + return getBatteryChargeProgramFieldBuilder().getBuilder(); + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigureOrBuilder getBatteryChargeProgramOrBuilder() { + if ((commandCase_ == 27) && (batteryChargeProgramBuilder_ != null)) { + return batteryChargeProgramBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 27) { + return (com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance(); + } + } + /** + * .proto.BatteryChargeProgramConfigure battery_charge_program = 27; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure, com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigureOrBuilder> + getBatteryChargeProgramFieldBuilder() { + if (batteryChargeProgramBuilder_ == null) { + if (!(commandCase_ == 27)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance(); + } + batteryChargeProgramBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure, com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 27; + onChanged(); + return batteryChargeProgramBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure, com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigureOrBuilder> batteryMaxSocBuilder_; + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + * @return Whether the batteryMaxSoc field is set. + */ + @java.lang.Override + public boolean hasBatteryMaxSoc() { + return commandCase_ == 28; + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + * @return The batteryMaxSoc. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure getBatteryMaxSoc() { + if (batteryMaxSocBuilder_ == null) { + if (commandCase_ == 28) { + return (com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 28) { + return batteryMaxSocBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance(); + } + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + public Builder setBatteryMaxSoc(com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure value) { + if (batteryMaxSocBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + batteryMaxSocBuilder_.setMessage(value); + } + commandCase_ = 28; + return this; + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + public Builder setBatteryMaxSoc( + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.Builder builderForValue) { + if (batteryMaxSocBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + batteryMaxSocBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 28; + return this; + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + public Builder mergeBatteryMaxSoc(com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure value) { + if (batteryMaxSocBuilder_ == null) { + if (commandCase_ == 28 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 28) { + batteryMaxSocBuilder_.mergeFrom(value); + } else { + batteryMaxSocBuilder_.setMessage(value); + } + } + commandCase_ = 28; + return this; + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + public Builder clearBatteryMaxSoc() { + if (batteryMaxSocBuilder_ == null) { + if (commandCase_ == 28) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 28) { + commandCase_ = 0; + command_ = null; + } + batteryMaxSocBuilder_.clear(); + } + return this; + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.Builder getBatteryMaxSocBuilder() { + return getBatteryMaxSocFieldBuilder().getBuilder(); + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigureOrBuilder getBatteryMaxSocOrBuilder() { + if ((commandCase_ == 28) && (batteryMaxSocBuilder_ != null)) { + return batteryMaxSocBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 28) { + return (com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance(); + } + } + /** + * .proto.BatteryMaxSocConfigure battery_max_soc = 28; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure, com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigureOrBuilder> + getBatteryMaxSocFieldBuilder() { + if (batteryMaxSocBuilder_ == null) { + if (!(commandCase_ == 28)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance(); + } + batteryMaxSocBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure, com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 28; + onChanged(); + return batteryMaxSocBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigureOrBuilder> chargeProgramConfigureBuilder_; + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + * @return Whether the chargeProgramConfigure field is set. + */ + @java.lang.Override + public boolean hasChargeProgramConfigure() { + return commandCase_ == 34; + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + * @return The chargeProgramConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure getChargeProgramConfigure() { + if (chargeProgramConfigureBuilder_ == null) { + if (commandCase_ == 34) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 34) { + return chargeProgramConfigureBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance(); + } + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + public Builder setChargeProgramConfigure(com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure value) { + if (chargeProgramConfigureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + chargeProgramConfigureBuilder_.setMessage(value); + } + commandCase_ = 34; + return this; + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + public Builder setChargeProgramConfigure( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.Builder builderForValue) { + if (chargeProgramConfigureBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + chargeProgramConfigureBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 34; + return this; + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + public Builder mergeChargeProgramConfigure(com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure value) { + if (chargeProgramConfigureBuilder_ == null) { + if (commandCase_ == 34 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 34) { + chargeProgramConfigureBuilder_.mergeFrom(value); + } else { + chargeProgramConfigureBuilder_.setMessage(value); + } + } + commandCase_ = 34; + return this; + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + public Builder clearChargeProgramConfigure() { + if (chargeProgramConfigureBuilder_ == null) { + if (commandCase_ == 34) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 34) { + commandCase_ = 0; + command_ = null; + } + chargeProgramConfigureBuilder_.clear(); + } + return this; + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.Builder getChargeProgramConfigureBuilder() { + return getChargeProgramConfigureFieldBuilder().getBuilder(); + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigureOrBuilder getChargeProgramConfigureOrBuilder() { + if ((commandCase_ == 34) && (chargeProgramConfigureBuilder_ != null)) { + return chargeProgramConfigureBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 34) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance(); + } + } + /** + * .proto.ChargeProgramConfigure charge_program_configure = 34; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigureOrBuilder> + getChargeProgramConfigureFieldBuilder() { + if (chargeProgramConfigureBuilder_ == null) { + if (!(commandCase_ == 34)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance(); + } + chargeProgramConfigureBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 34; + onChanged(); + return chargeProgramConfigureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigureOrBuilder> chargeControlConfigureBuilder_; + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + * @return Whether the chargeControlConfigure field is set. + */ + @java.lang.Override + public boolean hasChargeControlConfigure() { + return commandCase_ == 40; + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + * @return The chargeControlConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure getChargeControlConfigure() { + if (chargeControlConfigureBuilder_ == null) { + if (commandCase_ == 40) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 40) { + return chargeControlConfigureBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance(); + } + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + public Builder setChargeControlConfigure(com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure value) { + if (chargeControlConfigureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + chargeControlConfigureBuilder_.setMessage(value); + } + commandCase_ = 40; + return this; + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + public Builder setChargeControlConfigure( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.Builder builderForValue) { + if (chargeControlConfigureBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + chargeControlConfigureBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 40; + return this; + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + public Builder mergeChargeControlConfigure(com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure value) { + if (chargeControlConfigureBuilder_ == null) { + if (commandCase_ == 40 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 40) { + chargeControlConfigureBuilder_.mergeFrom(value); + } else { + chargeControlConfigureBuilder_.setMessage(value); + } + } + commandCase_ = 40; + return this; + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + public Builder clearChargeControlConfigure() { + if (chargeControlConfigureBuilder_ == null) { + if (commandCase_ == 40) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 40) { + commandCase_ = 0; + command_ = null; + } + chargeControlConfigureBuilder_.clear(); + } + return this; + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.Builder getChargeControlConfigureBuilder() { + return getChargeControlConfigureFieldBuilder().getBuilder(); + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigureOrBuilder getChargeControlConfigureOrBuilder() { + if ((commandCase_ == 40) && (chargeControlConfigureBuilder_ != null)) { + return chargeControlConfigureBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 40) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance(); + } + } + /** + * .proto.ChargeControlConfigure charge_control_configure = 40; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigureOrBuilder> + getChargeControlConfigureFieldBuilder() { + if (chargeControlConfigureBuilder_ == null) { + if (!(commandCase_ == 40)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance(); + } + chargeControlConfigureBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 40; + onChanged(); + return chargeControlConfigureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigureOrBuilder> chargeOptConfigureBuilder_; + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + * @return Whether the chargeOptConfigure field is set. + */ + @java.lang.Override + public boolean hasChargeOptConfigure() { + return commandCase_ == 29; + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + * @return The chargeOptConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure getChargeOptConfigure() { + if (chargeOptConfigureBuilder_ == null) { + if (commandCase_ == 29) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 29) { + return chargeOptConfigureBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance(); + } + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + public Builder setChargeOptConfigure(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure value) { + if (chargeOptConfigureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + chargeOptConfigureBuilder_.setMessage(value); + } + commandCase_ = 29; + return this; + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + public Builder setChargeOptConfigure( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Builder builderForValue) { + if (chargeOptConfigureBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + chargeOptConfigureBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 29; + return this; + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + public Builder mergeChargeOptConfigure(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure value) { + if (chargeOptConfigureBuilder_ == null) { + if (commandCase_ == 29 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 29) { + chargeOptConfigureBuilder_.mergeFrom(value); + } else { + chargeOptConfigureBuilder_.setMessage(value); + } + } + commandCase_ = 29; + return this; + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + public Builder clearChargeOptConfigure() { + if (chargeOptConfigureBuilder_ == null) { + if (commandCase_ == 29) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 29) { + commandCase_ = 0; + command_ = null; + } + chargeOptConfigureBuilder_.clear(); + } + return this; + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Builder getChargeOptConfigureBuilder() { + return getChargeOptConfigureFieldBuilder().getBuilder(); + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigureOrBuilder getChargeOptConfigureOrBuilder() { + if ((commandCase_ == 29) && (chargeOptConfigureBuilder_ != null)) { + return chargeOptConfigureBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 29) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance(); + } + } + /** + * .proto.ChargeOptConfigure charge_opt_configure = 29; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigureOrBuilder> + getChargeOptConfigureFieldBuilder() { + if (chargeOptConfigureBuilder_ == null) { + if (!(commandCase_ == 29)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance(); + } + chargeOptConfigureBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 29; + onChanged(); + return chargeOptConfigureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStartOrBuilder> chargeOptStartBuilder_; + /** + * .proto.ChargeOptStart charge_opt_start = 30; + * @return Whether the chargeOptStart field is set. + */ + @java.lang.Override + public boolean hasChargeOptStart() { + return commandCase_ == 30; + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + * @return The chargeOptStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart getChargeOptStart() { + if (chargeOptStartBuilder_ == null) { + if (commandCase_ == 30) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance(); + } else { + if (commandCase_ == 30) { + return chargeOptStartBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance(); + } + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + public Builder setChargeOptStart(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart value) { + if (chargeOptStartBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + chargeOptStartBuilder_.setMessage(value); + } + commandCase_ = 30; + return this; + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + public Builder setChargeOptStart( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.Builder builderForValue) { + if (chargeOptStartBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + chargeOptStartBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 30; + return this; + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + public Builder mergeChargeOptStart(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart value) { + if (chargeOptStartBuilder_ == null) { + if (commandCase_ == 30 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 30) { + chargeOptStartBuilder_.mergeFrom(value); + } else { + chargeOptStartBuilder_.setMessage(value); + } + } + commandCase_ = 30; + return this; + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + public Builder clearChargeOptStart() { + if (chargeOptStartBuilder_ == null) { + if (commandCase_ == 30) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 30) { + commandCase_ = 0; + command_ = null; + } + chargeOptStartBuilder_.clear(); + } + return this; + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.Builder getChargeOptStartBuilder() { + return getChargeOptStartFieldBuilder().getBuilder(); + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStartOrBuilder getChargeOptStartOrBuilder() { + if ((commandCase_ == 30) && (chargeOptStartBuilder_ != null)) { + return chargeOptStartBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 30) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance(); + } + } + /** + * .proto.ChargeOptStart charge_opt_start = 30; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStartOrBuilder> + getChargeOptStartFieldBuilder() { + if (chargeOptStartBuilder_ == null) { + if (!(commandCase_ == 30)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance(); + } + chargeOptStartBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStartOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 30; + onChanged(); + return chargeOptStartBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStopOrBuilder> chargeOptStopBuilder_; + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + * @return Whether the chargeOptStop field is set. + */ + @java.lang.Override + public boolean hasChargeOptStop() { + return commandCase_ == 31; + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + * @return The chargeOptStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop getChargeOptStop() { + if (chargeOptStopBuilder_ == null) { + if (commandCase_ == 31) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance(); + } else { + if (commandCase_ == 31) { + return chargeOptStopBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance(); + } + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + public Builder setChargeOptStop(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop value) { + if (chargeOptStopBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + chargeOptStopBuilder_.setMessage(value); + } + commandCase_ = 31; + return this; + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + public Builder setChargeOptStop( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.Builder builderForValue) { + if (chargeOptStopBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + chargeOptStopBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 31; + return this; + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + public Builder mergeChargeOptStop(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop value) { + if (chargeOptStopBuilder_ == null) { + if (commandCase_ == 31 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 31) { + chargeOptStopBuilder_.mergeFrom(value); + } else { + chargeOptStopBuilder_.setMessage(value); + } + } + commandCase_ = 31; + return this; + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + public Builder clearChargeOptStop() { + if (chargeOptStopBuilder_ == null) { + if (commandCase_ == 31) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 31) { + commandCase_ = 0; + command_ = null; + } + chargeOptStopBuilder_.clear(); + } + return this; + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.Builder getChargeOptStopBuilder() { + return getChargeOptStopFieldBuilder().getBuilder(); + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStopOrBuilder getChargeOptStopOrBuilder() { + if ((commandCase_ == 31) && (chargeOptStopBuilder_ != null)) { + return chargeOptStopBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 31) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance(); + } + } + /** + * .proto.ChargeOptStop charge_opt_stop = 31; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStopOrBuilder> + getChargeOptStopFieldBuilder() { + if (chargeOptStopBuilder_ == null) { + if (!(commandCase_ == 31)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance(); + } + chargeOptStopBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStopOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 31; + onChanged(); + return chargeOptStopBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigureOrBuilder> temperatureConfigureBuilder_; + /** + * .proto.TemperatureConfigure temperature_configure = 32; + * @return Whether the temperatureConfigure field is set. + */ + @java.lang.Override + public boolean hasTemperatureConfigure() { + return commandCase_ == 32; + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + * @return The temperatureConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure getTemperatureConfigure() { + if (temperatureConfigureBuilder_ == null) { + if (commandCase_ == 32) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 32) { + return temperatureConfigureBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance(); + } + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + public Builder setTemperatureConfigure(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure value) { + if (temperatureConfigureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + temperatureConfigureBuilder_.setMessage(value); + } + commandCase_ = 32; + return this; + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + public Builder setTemperatureConfigure( + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.Builder builderForValue) { + if (temperatureConfigureBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + temperatureConfigureBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 32; + return this; + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + public Builder mergeTemperatureConfigure(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure value) { + if (temperatureConfigureBuilder_ == null) { + if (commandCase_ == 32 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 32) { + temperatureConfigureBuilder_.mergeFrom(value); + } else { + temperatureConfigureBuilder_.setMessage(value); + } + } + commandCase_ = 32; + return this; + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + public Builder clearTemperatureConfigure() { + if (temperatureConfigureBuilder_ == null) { + if (commandCase_ == 32) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 32) { + commandCase_ = 0; + command_ = null; + } + temperatureConfigureBuilder_.clear(); + } + return this; + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.Builder getTemperatureConfigureBuilder() { + return getTemperatureConfigureFieldBuilder().getBuilder(); + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigureOrBuilder getTemperatureConfigureOrBuilder() { + if ((commandCase_ == 32) && (temperatureConfigureBuilder_ != null)) { + return temperatureConfigureBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 32) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance(); + } + } + /** + * .proto.TemperatureConfigure temperature_configure = 32; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigureOrBuilder> + getTemperatureConfigureFieldBuilder() { + if (temperatureConfigureBuilder_ == null) { + if (!(commandCase_ == 32)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance(); + } + temperatureConfigureBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 32; + onChanged(); + return temperatureConfigureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureOrBuilder> weekProfileConfigureBuilder_; + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + * @return Whether the weekProfileConfigure field is set. + */ + @java.lang.Override + public boolean hasWeekProfileConfigure() { + return commandCase_ == 33; + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + * @return The weekProfileConfigure. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure getWeekProfileConfigure() { + if (weekProfileConfigureBuilder_ == null) { + if (commandCase_ == 33) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance(); + } else { + if (commandCase_ == 33) { + return weekProfileConfigureBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance(); + } + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + public Builder setWeekProfileConfigure(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure value) { + if (weekProfileConfigureBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + weekProfileConfigureBuilder_.setMessage(value); + } + commandCase_ = 33; + return this; + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + public Builder setWeekProfileConfigure( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.Builder builderForValue) { + if (weekProfileConfigureBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + weekProfileConfigureBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 33; + return this; + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + public Builder mergeWeekProfileConfigure(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure value) { + if (weekProfileConfigureBuilder_ == null) { + if (commandCase_ == 33 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 33) { + weekProfileConfigureBuilder_.mergeFrom(value); + } else { + weekProfileConfigureBuilder_.setMessage(value); + } + } + commandCase_ = 33; + return this; + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + public Builder clearWeekProfileConfigure() { + if (weekProfileConfigureBuilder_ == null) { + if (commandCase_ == 33) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 33) { + commandCase_ = 0; + command_ = null; + } + weekProfileConfigureBuilder_.clear(); + } + return this; + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.Builder getWeekProfileConfigureBuilder() { + return getWeekProfileConfigureFieldBuilder().getBuilder(); + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureOrBuilder getWeekProfileConfigureOrBuilder() { + if ((commandCase_ == 33) && (weekProfileConfigureBuilder_ != null)) { + return weekProfileConfigureBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 33) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance(); + } + } + /** + * .proto.WeekProfileConfigure week_profile_configure = 33; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureOrBuilder> + getWeekProfileConfigureFieldBuilder() { + if (weekProfileConfigureBuilder_ == null) { + if (!(commandCase_ == 33)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance(); + } + weekProfileConfigureBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 33; + onChanged(); + return weekProfileConfigureBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2OrBuilder> weekProfileConfigureV2Builder_; + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + * @return Whether the weekProfileConfigureV2 field is set. + */ + @java.lang.Override + public boolean hasWeekProfileConfigureV2() { + return commandCase_ == 41; + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + * @return The weekProfileConfigureV2. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 getWeekProfileConfigureV2() { + if (weekProfileConfigureV2Builder_ == null) { + if (commandCase_ == 41) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance(); + } else { + if (commandCase_ == 41) { + return weekProfileConfigureV2Builder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance(); + } + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + public Builder setWeekProfileConfigureV2(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 value) { + if (weekProfileConfigureV2Builder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + weekProfileConfigureV2Builder_.setMessage(value); + } + commandCase_ = 41; + return this; + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + public Builder setWeekProfileConfigureV2( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.Builder builderForValue) { + if (weekProfileConfigureV2Builder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + weekProfileConfigureV2Builder_.setMessage(builderForValue.build()); + } + commandCase_ = 41; + return this; + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + public Builder mergeWeekProfileConfigureV2(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 value) { + if (weekProfileConfigureV2Builder_ == null) { + if (commandCase_ == 41 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 41) { + weekProfileConfigureV2Builder_.mergeFrom(value); + } else { + weekProfileConfigureV2Builder_.setMessage(value); + } + } + commandCase_ = 41; + return this; + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + public Builder clearWeekProfileConfigureV2() { + if (weekProfileConfigureV2Builder_ == null) { + if (commandCase_ == 41) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 41) { + commandCase_ = 0; + command_ = null; + } + weekProfileConfigureV2Builder_.clear(); + } + return this; + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.Builder getWeekProfileConfigureV2Builder() { + return getWeekProfileConfigureV2FieldBuilder().getBuilder(); + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2OrBuilder getWeekProfileConfigureV2OrBuilder() { + if ((commandCase_ == 41) && (weekProfileConfigureV2Builder_ != null)) { + return weekProfileConfigureV2Builder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 41) { + return (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance(); + } + } + /** + * .proto.WeekProfileConfigureV2 week_profile_configure_v2 = 41; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2OrBuilder> + getWeekProfileConfigureV2FieldBuilder() { + if (weekProfileConfigureV2Builder_ == null) { + if (!(commandCase_ == 41)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance(); + } + weekProfileConfigureV2Builder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2OrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 41; + onChanged(); + return weekProfileConfigureV2Builder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart, com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SigPosStartOrBuilder> sigposStartBuilder_; + /** + * .proto.SigPosStart sigpos_start = 35; + * @return Whether the sigposStart field is set. + */ + @java.lang.Override + public boolean hasSigposStart() { + return commandCase_ == 35; + } + /** + * .proto.SigPosStart sigpos_start = 35; + * @return The sigposStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart getSigposStart() { + if (sigposStartBuilder_ == null) { + if (commandCase_ == 35) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance(); + } else { + if (commandCase_ == 35) { + return sigposStartBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance(); + } + } + /** + * .proto.SigPosStart sigpos_start = 35; + */ + public Builder setSigposStart(com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart value) { + if (sigposStartBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + sigposStartBuilder_.setMessage(value); + } + commandCase_ = 35; + return this; + } + /** + * .proto.SigPosStart sigpos_start = 35; + */ + public Builder setSigposStart( + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.Builder builderForValue) { + if (sigposStartBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + sigposStartBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 35; + return this; + } + /** + * .proto.SigPosStart sigpos_start = 35; + */ + public Builder mergeSigposStart(com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart value) { + if (sigposStartBuilder_ == null) { + if (commandCase_ == 35 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 35) { + sigposStartBuilder_.mergeFrom(value); + } else { + sigposStartBuilder_.setMessage(value); + } + } + commandCase_ = 35; + return this; + } + /** + * .proto.SigPosStart sigpos_start = 35; + */ + public Builder clearSigposStart() { + if (sigposStartBuilder_ == null) { + if (commandCase_ == 35) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 35) { + commandCase_ = 0; + command_ = null; + } + sigposStartBuilder_.clear(); + } + return this; + } + /** + * .proto.SigPosStart sigpos_start = 35; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.Builder getSigposStartBuilder() { + return getSigposStartFieldBuilder().getBuilder(); + } + /** + * .proto.SigPosStart sigpos_start = 35; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStartOrBuilder getSigposStartOrBuilder() { + if ((commandCase_ == 35) && (sigposStartBuilder_ != null)) { + return sigposStartBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 35) { + return (com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance(); + } + } + /** + * .proto.SigPosStart sigpos_start = 35; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart, com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SigPosStartOrBuilder> + getSigposStartFieldBuilder() { + if (sigposStartBuilder_ == null) { + if (!(commandCase_ == 35)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance(); + } + sigposStartBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart, com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.SigPosStartOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 35; + onChanged(); + return sigposStartBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetectionOrBuilder> theftalarmConfirmDamagedetectionBuilder_; + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + * @return Whether the theftalarmConfirmDamagedetection field is set. + */ + @java.lang.Override + public boolean hasTheftalarmConfirmDamagedetection() { + return commandCase_ == 8; + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + * @return The theftalarmConfirmDamagedetection. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection getTheftalarmConfirmDamagedetection() { + if (theftalarmConfirmDamagedetectionBuilder_ == null) { + if (commandCase_ == 8) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance(); + } else { + if (commandCase_ == 8) { + return theftalarmConfirmDamagedetectionBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + public Builder setTheftalarmConfirmDamagedetection(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection value) { + if (theftalarmConfirmDamagedetectionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmConfirmDamagedetectionBuilder_.setMessage(value); + } + commandCase_ = 8; + return this; + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + public Builder setTheftalarmConfirmDamagedetection( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.Builder builderForValue) { + if (theftalarmConfirmDamagedetectionBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmConfirmDamagedetectionBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 8; + return this; + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + public Builder mergeTheftalarmConfirmDamagedetection(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection value) { + if (theftalarmConfirmDamagedetectionBuilder_ == null) { + if (commandCase_ == 8 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 8) { + theftalarmConfirmDamagedetectionBuilder_.mergeFrom(value); + } else { + theftalarmConfirmDamagedetectionBuilder_.setMessage(value); + } + } + commandCase_ = 8; + return this; + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + public Builder clearTheftalarmConfirmDamagedetection() { + if (theftalarmConfirmDamagedetectionBuilder_ == null) { + if (commandCase_ == 8) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 8) { + commandCase_ = 0; + command_ = null; + } + theftalarmConfirmDamagedetectionBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.Builder getTheftalarmConfirmDamagedetectionBuilder() { + return getTheftalarmConfirmDamagedetectionFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetectionOrBuilder getTheftalarmConfirmDamagedetectionOrBuilder() { + if ((commandCase_ == 8) && (theftalarmConfirmDamagedetectionBuilder_ != null)) { + return theftalarmConfirmDamagedetectionBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 8) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmConfirmDamagedetection theftalarm_confirm_damagedetection = 8; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetectionOrBuilder> + getTheftalarmConfirmDamagedetectionFieldBuilder() { + if (theftalarmConfirmDamagedetectionBuilder_ == null) { + if (!(commandCase_ == 8)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance(); + } + theftalarmConfirmDamagedetectionBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetectionOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 8; + onChanged(); + return theftalarmConfirmDamagedetectionBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetectionOrBuilder> theftalarmDeselectDamagedetectionBuilder_; + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + * @return Whether the theftalarmDeselectDamagedetection field is set. + */ + @java.lang.Override + public boolean hasTheftalarmDeselectDamagedetection() { + return commandCase_ == 14; + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + * @return The theftalarmDeselectDamagedetection. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection getTheftalarmDeselectDamagedetection() { + if (theftalarmDeselectDamagedetectionBuilder_ == null) { + if (commandCase_ == 14) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance(); + } else { + if (commandCase_ == 14) { + return theftalarmDeselectDamagedetectionBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + public Builder setTheftalarmDeselectDamagedetection(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection value) { + if (theftalarmDeselectDamagedetectionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmDeselectDamagedetectionBuilder_.setMessage(value); + } + commandCase_ = 14; + return this; + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + public Builder setTheftalarmDeselectDamagedetection( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.Builder builderForValue) { + if (theftalarmDeselectDamagedetectionBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmDeselectDamagedetectionBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 14; + return this; + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + public Builder mergeTheftalarmDeselectDamagedetection(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection value) { + if (theftalarmDeselectDamagedetectionBuilder_ == null) { + if (commandCase_ == 14 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 14) { + theftalarmDeselectDamagedetectionBuilder_.mergeFrom(value); + } else { + theftalarmDeselectDamagedetectionBuilder_.setMessage(value); + } + } + commandCase_ = 14; + return this; + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + public Builder clearTheftalarmDeselectDamagedetection() { + if (theftalarmDeselectDamagedetectionBuilder_ == null) { + if (commandCase_ == 14) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 14) { + commandCase_ = 0; + command_ = null; + } + theftalarmDeselectDamagedetectionBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.Builder getTheftalarmDeselectDamagedetectionBuilder() { + return getTheftalarmDeselectDamagedetectionFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetectionOrBuilder getTheftalarmDeselectDamagedetectionOrBuilder() { + if ((commandCase_ == 14) && (theftalarmDeselectDamagedetectionBuilder_ != null)) { + return theftalarmDeselectDamagedetectionBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 14) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmDeselectDamagedetection theftalarm_deselect_damagedetection = 14; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetectionOrBuilder> + getTheftalarmDeselectDamagedetectionFieldBuilder() { + if (theftalarmDeselectDamagedetectionBuilder_ == null) { + if (!(commandCase_ == 14)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance(); + } + theftalarmDeselectDamagedetectionBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetectionOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 14; + onChanged(); + return theftalarmDeselectDamagedetectionBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInteriorOrBuilder> theftalarmDeselectInteriorBuilder_; + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + * @return Whether the theftalarmDeselectInterior field is set. + */ + @java.lang.Override + public boolean hasTheftalarmDeselectInterior() { + return commandCase_ == 15; + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + * @return The theftalarmDeselectInterior. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior getTheftalarmDeselectInterior() { + if (theftalarmDeselectInteriorBuilder_ == null) { + if (commandCase_ == 15) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance(); + } else { + if (commandCase_ == 15) { + return theftalarmDeselectInteriorBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + public Builder setTheftalarmDeselectInterior(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior value) { + if (theftalarmDeselectInteriorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmDeselectInteriorBuilder_.setMessage(value); + } + commandCase_ = 15; + return this; + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + public Builder setTheftalarmDeselectInterior( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.Builder builderForValue) { + if (theftalarmDeselectInteriorBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmDeselectInteriorBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 15; + return this; + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + public Builder mergeTheftalarmDeselectInterior(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior value) { + if (theftalarmDeselectInteriorBuilder_ == null) { + if (commandCase_ == 15 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 15) { + theftalarmDeselectInteriorBuilder_.mergeFrom(value); + } else { + theftalarmDeselectInteriorBuilder_.setMessage(value); + } + } + commandCase_ = 15; + return this; + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + public Builder clearTheftalarmDeselectInterior() { + if (theftalarmDeselectInteriorBuilder_ == null) { + if (commandCase_ == 15) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 15) { + commandCase_ = 0; + command_ = null; + } + theftalarmDeselectInteriorBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.Builder getTheftalarmDeselectInteriorBuilder() { + return getTheftalarmDeselectInteriorFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInteriorOrBuilder getTheftalarmDeselectInteriorOrBuilder() { + if ((commandCase_ == 15) && (theftalarmDeselectInteriorBuilder_ != null)) { + return theftalarmDeselectInteriorBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 15) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmDeselectInterior theftalarm_deselect_interior = 15; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInteriorOrBuilder> + getTheftalarmDeselectInteriorFieldBuilder() { + if (theftalarmDeselectInteriorBuilder_ == null) { + if (!(commandCase_ == 15)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance(); + } + theftalarmDeselectInteriorBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInteriorOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 15; + onChanged(); + return theftalarmDeselectInteriorBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTowOrBuilder> theftalarmDeselectTowBuilder_; + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + * @return Whether the theftalarmDeselectTow field is set. + */ + @java.lang.Override + public boolean hasTheftalarmDeselectTow() { + return commandCase_ == 16; + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + * @return The theftalarmDeselectTow. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow getTheftalarmDeselectTow() { + if (theftalarmDeselectTowBuilder_ == null) { + if (commandCase_ == 16) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance(); + } else { + if (commandCase_ == 16) { + return theftalarmDeselectTowBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + public Builder setTheftalarmDeselectTow(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow value) { + if (theftalarmDeselectTowBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmDeselectTowBuilder_.setMessage(value); + } + commandCase_ = 16; + return this; + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + public Builder setTheftalarmDeselectTow( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.Builder builderForValue) { + if (theftalarmDeselectTowBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmDeselectTowBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 16; + return this; + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + public Builder mergeTheftalarmDeselectTow(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow value) { + if (theftalarmDeselectTowBuilder_ == null) { + if (commandCase_ == 16 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 16) { + theftalarmDeselectTowBuilder_.mergeFrom(value); + } else { + theftalarmDeselectTowBuilder_.setMessage(value); + } + } + commandCase_ = 16; + return this; + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + public Builder clearTheftalarmDeselectTow() { + if (theftalarmDeselectTowBuilder_ == null) { + if (commandCase_ == 16) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 16) { + commandCase_ = 0; + command_ = null; + } + theftalarmDeselectTowBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.Builder getTheftalarmDeselectTowBuilder() { + return getTheftalarmDeselectTowFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTowOrBuilder getTheftalarmDeselectTowOrBuilder() { + if ((commandCase_ == 16) && (theftalarmDeselectTowBuilder_ != null)) { + return theftalarmDeselectTowBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 16) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmDeselectTow theftalarm_deselect_tow = 16; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTowOrBuilder> + getTheftalarmDeselectTowFieldBuilder() { + if (theftalarmDeselectTowBuilder_ == null) { + if (!(commandCase_ == 16)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance(); + } + theftalarmDeselectTowBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTowOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 16; + onChanged(); + return theftalarmDeselectTowBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetectionOrBuilder> theftalarmSelectDamagedetectionBuilder_; + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + * @return Whether the theftalarmSelectDamagedetection field is set. + */ + @java.lang.Override + public boolean hasTheftalarmSelectDamagedetection() { + return commandCase_ == 17; + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + * @return The theftalarmSelectDamagedetection. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection getTheftalarmSelectDamagedetection() { + if (theftalarmSelectDamagedetectionBuilder_ == null) { + if (commandCase_ == 17) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance(); + } else { + if (commandCase_ == 17) { + return theftalarmSelectDamagedetectionBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + public Builder setTheftalarmSelectDamagedetection(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection value) { + if (theftalarmSelectDamagedetectionBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmSelectDamagedetectionBuilder_.setMessage(value); + } + commandCase_ = 17; + return this; + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + public Builder setTheftalarmSelectDamagedetection( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.Builder builderForValue) { + if (theftalarmSelectDamagedetectionBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmSelectDamagedetectionBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 17; + return this; + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + public Builder mergeTheftalarmSelectDamagedetection(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection value) { + if (theftalarmSelectDamagedetectionBuilder_ == null) { + if (commandCase_ == 17 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 17) { + theftalarmSelectDamagedetectionBuilder_.mergeFrom(value); + } else { + theftalarmSelectDamagedetectionBuilder_.setMessage(value); + } + } + commandCase_ = 17; + return this; + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + public Builder clearTheftalarmSelectDamagedetection() { + if (theftalarmSelectDamagedetectionBuilder_ == null) { + if (commandCase_ == 17) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 17) { + commandCase_ = 0; + command_ = null; + } + theftalarmSelectDamagedetectionBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.Builder getTheftalarmSelectDamagedetectionBuilder() { + return getTheftalarmSelectDamagedetectionFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetectionOrBuilder getTheftalarmSelectDamagedetectionOrBuilder() { + if ((commandCase_ == 17) && (theftalarmSelectDamagedetectionBuilder_ != null)) { + return theftalarmSelectDamagedetectionBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 17) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmSelectDamagedetection theftalarm_select_damagedetection = 17; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetectionOrBuilder> + getTheftalarmSelectDamagedetectionFieldBuilder() { + if (theftalarmSelectDamagedetectionBuilder_ == null) { + if (!(commandCase_ == 17)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance(); + } + theftalarmSelectDamagedetectionBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetectionOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 17; + onChanged(); + return theftalarmSelectDamagedetectionBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInteriorOrBuilder> theftalarmSelectInteriorBuilder_; + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + * @return Whether the theftalarmSelectInterior field is set. + */ + @java.lang.Override + public boolean hasTheftalarmSelectInterior() { + return commandCase_ == 18; + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + * @return The theftalarmSelectInterior. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior getTheftalarmSelectInterior() { + if (theftalarmSelectInteriorBuilder_ == null) { + if (commandCase_ == 18) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance(); + } else { + if (commandCase_ == 18) { + return theftalarmSelectInteriorBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + public Builder setTheftalarmSelectInterior(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior value) { + if (theftalarmSelectInteriorBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmSelectInteriorBuilder_.setMessage(value); + } + commandCase_ = 18; + return this; + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + public Builder setTheftalarmSelectInterior( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.Builder builderForValue) { + if (theftalarmSelectInteriorBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmSelectInteriorBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 18; + return this; + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + public Builder mergeTheftalarmSelectInterior(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior value) { + if (theftalarmSelectInteriorBuilder_ == null) { + if (commandCase_ == 18 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 18) { + theftalarmSelectInteriorBuilder_.mergeFrom(value); + } else { + theftalarmSelectInteriorBuilder_.setMessage(value); + } + } + commandCase_ = 18; + return this; + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + public Builder clearTheftalarmSelectInterior() { + if (theftalarmSelectInteriorBuilder_ == null) { + if (commandCase_ == 18) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 18) { + commandCase_ = 0; + command_ = null; + } + theftalarmSelectInteriorBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.Builder getTheftalarmSelectInteriorBuilder() { + return getTheftalarmSelectInteriorFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInteriorOrBuilder getTheftalarmSelectInteriorOrBuilder() { + if ((commandCase_ == 18) && (theftalarmSelectInteriorBuilder_ != null)) { + return theftalarmSelectInteriorBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 18) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmSelectInterior theftalarm_select_interior = 18; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInteriorOrBuilder> + getTheftalarmSelectInteriorFieldBuilder() { + if (theftalarmSelectInteriorBuilder_ == null) { + if (!(commandCase_ == 18)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance(); + } + theftalarmSelectInteriorBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInteriorOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 18; + onChanged(); + return theftalarmSelectInteriorBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTowOrBuilder> theftalarmSelectTowBuilder_; + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + * @return Whether the theftalarmSelectTow field is set. + */ + @java.lang.Override + public boolean hasTheftalarmSelectTow() { + return commandCase_ == 37; + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + * @return The theftalarmSelectTow. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow getTheftalarmSelectTow() { + if (theftalarmSelectTowBuilder_ == null) { + if (commandCase_ == 37) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance(); + } else { + if (commandCase_ == 37) { + return theftalarmSelectTowBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + public Builder setTheftalarmSelectTow(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow value) { + if (theftalarmSelectTowBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmSelectTowBuilder_.setMessage(value); + } + commandCase_ = 37; + return this; + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + public Builder setTheftalarmSelectTow( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.Builder builderForValue) { + if (theftalarmSelectTowBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmSelectTowBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 37; + return this; + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + public Builder mergeTheftalarmSelectTow(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow value) { + if (theftalarmSelectTowBuilder_ == null) { + if (commandCase_ == 37 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 37) { + theftalarmSelectTowBuilder_.mergeFrom(value); + } else { + theftalarmSelectTowBuilder_.setMessage(value); + } + } + commandCase_ = 37; + return this; + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + public Builder clearTheftalarmSelectTow() { + if (theftalarmSelectTowBuilder_ == null) { + if (commandCase_ == 37) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 37) { + commandCase_ = 0; + command_ = null; + } + theftalarmSelectTowBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.Builder getTheftalarmSelectTowBuilder() { + return getTheftalarmSelectTowFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTowOrBuilder getTheftalarmSelectTowOrBuilder() { + if ((commandCase_ == 37) && (theftalarmSelectTowBuilder_ != null)) { + return theftalarmSelectTowBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 37) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmSelectTow theftalarm_select_tow = 37; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTowOrBuilder> + getTheftalarmSelectTowFieldBuilder() { + if (theftalarmSelectTowBuilder_ == null) { + if (!(commandCase_ == 37)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance(); + } + theftalarmSelectTowBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTowOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 37; + onChanged(); + return theftalarmSelectTowBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStartOrBuilder> theftalarmStartBuilder_; + /** + * .proto.TheftalarmStart theftalarm_start = 38; + * @return Whether the theftalarmStart field is set. + */ + @java.lang.Override + public boolean hasTheftalarmStart() { + return commandCase_ == 38; + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + * @return The theftalarmStart. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart getTheftalarmStart() { + if (theftalarmStartBuilder_ == null) { + if (commandCase_ == 38) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance(); + } else { + if (commandCase_ == 38) { + return theftalarmStartBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + public Builder setTheftalarmStart(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart value) { + if (theftalarmStartBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmStartBuilder_.setMessage(value); + } + commandCase_ = 38; + return this; + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + public Builder setTheftalarmStart( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.Builder builderForValue) { + if (theftalarmStartBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmStartBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 38; + return this; + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + public Builder mergeTheftalarmStart(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart value) { + if (theftalarmStartBuilder_ == null) { + if (commandCase_ == 38 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 38) { + theftalarmStartBuilder_.mergeFrom(value); + } else { + theftalarmStartBuilder_.setMessage(value); + } + } + commandCase_ = 38; + return this; + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + public Builder clearTheftalarmStart() { + if (theftalarmStartBuilder_ == null) { + if (commandCase_ == 38) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 38) { + commandCase_ = 0; + command_ = null; + } + theftalarmStartBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.Builder getTheftalarmStartBuilder() { + return getTheftalarmStartFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStartOrBuilder getTheftalarmStartOrBuilder() { + if ((commandCase_ == 38) && (theftalarmStartBuilder_ != null)) { + return theftalarmStartBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 38) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmStart theftalarm_start = 38; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStartOrBuilder> + getTheftalarmStartFieldBuilder() { + if (theftalarmStartBuilder_ == null) { + if (!(commandCase_ == 38)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance(); + } + theftalarmStartBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStartOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 38; + onChanged(); + return theftalarmStartBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStopOrBuilder> theftalarmStopBuilder_; + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + * @return Whether the theftalarmStop field is set. + */ + @java.lang.Override + public boolean hasTheftalarmStop() { + return commandCase_ == 39; + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + * @return The theftalarmStop. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop getTheftalarmStop() { + if (theftalarmStopBuilder_ == null) { + if (commandCase_ == 39) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance(); + } else { + if (commandCase_ == 39) { + return theftalarmStopBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + public Builder setTheftalarmStop(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop value) { + if (theftalarmStopBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + theftalarmStopBuilder_.setMessage(value); + } + commandCase_ = 39; + return this; + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + public Builder setTheftalarmStop( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.Builder builderForValue) { + if (theftalarmStopBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + theftalarmStopBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 39; + return this; + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + public Builder mergeTheftalarmStop(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop value) { + if (theftalarmStopBuilder_ == null) { + if (commandCase_ == 39 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 39) { + theftalarmStopBuilder_.mergeFrom(value); + } else { + theftalarmStopBuilder_.setMessage(value); + } + } + commandCase_ = 39; + return this; + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + public Builder clearTheftalarmStop() { + if (theftalarmStopBuilder_ == null) { + if (commandCase_ == 39) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 39) { + commandCase_ = 0; + command_ = null; + } + theftalarmStopBuilder_.clear(); + } + return this; + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.Builder getTheftalarmStopBuilder() { + return getTheftalarmStopFieldBuilder().getBuilder(); + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStopOrBuilder getTheftalarmStopOrBuilder() { + if ((commandCase_ == 39) && (theftalarmStopBuilder_ != null)) { + return theftalarmStopBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 39) { + return (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance(); + } + } + /** + * .proto.TheftalarmStop theftalarm_stop = 39; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStopOrBuilder> + getTheftalarmStopFieldBuilder() { + if (theftalarmStopBuilder_ == null) { + if (!(commandCase_ == 39)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance(); + } + theftalarmStopBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStopOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 39; + onChanged(); + return theftalarmStopBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate, com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivateOrBuilder> automaticValetParkingActivateBuilder_; + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + * @return Whether the automaticValetParkingActivate field is set. + */ + @java.lang.Override + public boolean hasAutomaticValetParkingActivate() { + return commandCase_ == 42; + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + * @return The automaticValetParkingActivate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate getAutomaticValetParkingActivate() { + if (automaticValetParkingActivateBuilder_ == null) { + if (commandCase_ == 42) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance(); + } else { + if (commandCase_ == 42) { + return automaticValetParkingActivateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance(); + } + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + public Builder setAutomaticValetParkingActivate(com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate value) { + if (automaticValetParkingActivateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + automaticValetParkingActivateBuilder_.setMessage(value); + } + commandCase_ = 42; + return this; + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + public Builder setAutomaticValetParkingActivate( + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.Builder builderForValue) { + if (automaticValetParkingActivateBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + automaticValetParkingActivateBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 42; + return this; + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + public Builder mergeAutomaticValetParkingActivate(com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate value) { + if (automaticValetParkingActivateBuilder_ == null) { + if (commandCase_ == 42 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 42) { + automaticValetParkingActivateBuilder_.mergeFrom(value); + } else { + automaticValetParkingActivateBuilder_.setMessage(value); + } + } + commandCase_ = 42; + return this; + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + public Builder clearAutomaticValetParkingActivate() { + if (automaticValetParkingActivateBuilder_ == null) { + if (commandCase_ == 42) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 42) { + commandCase_ = 0; + command_ = null; + } + automaticValetParkingActivateBuilder_.clear(); + } + return this; + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.Builder getAutomaticValetParkingActivateBuilder() { + return getAutomaticValetParkingActivateFieldBuilder().getBuilder(); + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivateOrBuilder getAutomaticValetParkingActivateOrBuilder() { + if ((commandCase_ == 42) && (automaticValetParkingActivateBuilder_ != null)) { + return automaticValetParkingActivateBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 42) { + return (com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance(); + } + } + /** + * .proto.AutomaticValetParkingActivate automatic_valet_parking_activate = 42; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate, com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivateOrBuilder> + getAutomaticValetParkingActivateFieldBuilder() { + if (automaticValetParkingActivateBuilder_ == null) { + if (!(commandCase_ == 42)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance(); + } + automaticValetParkingActivateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate, com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.Builder, com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivateOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 42; + onChanged(); + return automaticValetParkingActivateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock, com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlockOrBuilder> chargeFlapUnlockBuilder_; + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + * @return Whether the chargeFlapUnlock field is set. + */ + @java.lang.Override + public boolean hasChargeFlapUnlock() { + return commandCase_ == 45; + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + * @return The chargeFlapUnlock. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock getChargeFlapUnlock() { + if (chargeFlapUnlockBuilder_ == null) { + if (commandCase_ == 45) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance(); + } else { + if (commandCase_ == 45) { + return chargeFlapUnlockBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance(); + } + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + public Builder setChargeFlapUnlock(com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock value) { + if (chargeFlapUnlockBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + chargeFlapUnlockBuilder_.setMessage(value); + } + commandCase_ = 45; + return this; + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + public Builder setChargeFlapUnlock( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.Builder builderForValue) { + if (chargeFlapUnlockBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + chargeFlapUnlockBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 45; + return this; + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + public Builder mergeChargeFlapUnlock(com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock value) { + if (chargeFlapUnlockBuilder_ == null) { + if (commandCase_ == 45 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 45) { + chargeFlapUnlockBuilder_.mergeFrom(value); + } else { + chargeFlapUnlockBuilder_.setMessage(value); + } + } + commandCase_ = 45; + return this; + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + public Builder clearChargeFlapUnlock() { + if (chargeFlapUnlockBuilder_ == null) { + if (commandCase_ == 45) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 45) { + commandCase_ = 0; + command_ = null; + } + chargeFlapUnlockBuilder_.clear(); + } + return this; + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.Builder getChargeFlapUnlockBuilder() { + return getChargeFlapUnlockFieldBuilder().getBuilder(); + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlockOrBuilder getChargeFlapUnlockOrBuilder() { + if ((commandCase_ == 45) && (chargeFlapUnlockBuilder_ != null)) { + return chargeFlapUnlockBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 45) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance(); + } + } + /** + * .proto.ChargeFlapUnlock charge_flap_unlock = 45; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock, com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlockOrBuilder> + getChargeFlapUnlockFieldBuilder() { + if (chargeFlapUnlockBuilder_ == null) { + if (!(commandCase_ == 45)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance(); + } + chargeFlapUnlockBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock, com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlockOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 45; + onChanged(); + return chargeFlapUnlockBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock, com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlockOrBuilder> chargeCouplerUnlockBuilder_; + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + * @return Whether the chargeCouplerUnlock field is set. + */ + @java.lang.Override + public boolean hasChargeCouplerUnlock() { + return commandCase_ == 46; + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + * @return The chargeCouplerUnlock. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock getChargeCouplerUnlock() { + if (chargeCouplerUnlockBuilder_ == null) { + if (commandCase_ == 46) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance(); + } else { + if (commandCase_ == 46) { + return chargeCouplerUnlockBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance(); + } + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + public Builder setChargeCouplerUnlock(com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock value) { + if (chargeCouplerUnlockBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + chargeCouplerUnlockBuilder_.setMessage(value); + } + commandCase_ = 46; + return this; + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + public Builder setChargeCouplerUnlock( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.Builder builderForValue) { + if (chargeCouplerUnlockBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + chargeCouplerUnlockBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 46; + return this; + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + public Builder mergeChargeCouplerUnlock(com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock value) { + if (chargeCouplerUnlockBuilder_ == null) { + if (commandCase_ == 46 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 46) { + chargeCouplerUnlockBuilder_.mergeFrom(value); + } else { + chargeCouplerUnlockBuilder_.setMessage(value); + } + } + commandCase_ = 46; + return this; + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + public Builder clearChargeCouplerUnlock() { + if (chargeCouplerUnlockBuilder_ == null) { + if (commandCase_ == 46) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 46) { + commandCase_ = 0; + command_ = null; + } + chargeCouplerUnlockBuilder_.clear(); + } + return this; + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.Builder getChargeCouplerUnlockBuilder() { + return getChargeCouplerUnlockFieldBuilder().getBuilder(); + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlockOrBuilder getChargeCouplerUnlockOrBuilder() { + if ((commandCase_ == 46) && (chargeCouplerUnlockBuilder_ != null)) { + return chargeCouplerUnlockBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 46) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance(); + } + } + /** + * .proto.ChargeCouplerUnlock charge_coupler_unlock = 46; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock, com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlockOrBuilder> + getChargeCouplerUnlockFieldBuilder() { + if (chargeCouplerUnlockBuilder_ == null) { + if (!(commandCase_ == 46)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance(); + } + chargeCouplerUnlockBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock, com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlockOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 46; + onChanged(); + return chargeCouplerUnlockBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys, com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeysOrBuilder> deactivateVehicleKeysBuilder_; + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + * @return Whether the deactivateVehicleKeys field is set. + */ + @java.lang.Override + public boolean hasDeactivateVehicleKeys() { + return commandCase_ == 48; + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + * @return The deactivateVehicleKeys. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys getDeactivateVehicleKeys() { + if (deactivateVehicleKeysBuilder_ == null) { + if (commandCase_ == 48) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance(); + } else { + if (commandCase_ == 48) { + return deactivateVehicleKeysBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance(); + } + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + public Builder setDeactivateVehicleKeys(com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys value) { + if (deactivateVehicleKeysBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + deactivateVehicleKeysBuilder_.setMessage(value); + } + commandCase_ = 48; + return this; + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + public Builder setDeactivateVehicleKeys( + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.Builder builderForValue) { + if (deactivateVehicleKeysBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + deactivateVehicleKeysBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 48; + return this; + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + public Builder mergeDeactivateVehicleKeys(com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys value) { + if (deactivateVehicleKeysBuilder_ == null) { + if (commandCase_ == 48 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 48) { + deactivateVehicleKeysBuilder_.mergeFrom(value); + } else { + deactivateVehicleKeysBuilder_.setMessage(value); + } + } + commandCase_ = 48; + return this; + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + public Builder clearDeactivateVehicleKeys() { + if (deactivateVehicleKeysBuilder_ == null) { + if (commandCase_ == 48) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 48) { + commandCase_ = 0; + command_ = null; + } + deactivateVehicleKeysBuilder_.clear(); + } + return this; + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.Builder getDeactivateVehicleKeysBuilder() { + return getDeactivateVehicleKeysFieldBuilder().getBuilder(); + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeysOrBuilder getDeactivateVehicleKeysOrBuilder() { + if ((commandCase_ == 48) && (deactivateVehicleKeysBuilder_ != null)) { + return deactivateVehicleKeysBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 48) { + return (com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance(); + } + } + /** + * .proto.DeactivateVehicleKeys deactivate_vehicle_keys = 48; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys, com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeysOrBuilder> + getDeactivateVehicleKeysFieldBuilder() { + if (deactivateVehicleKeysBuilder_ == null) { + if (!(commandCase_ == 48)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance(); + } + deactivateVehicleKeysBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys, com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.Builder, com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeysOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 48; + onChanged(); + return deactivateVehicleKeysBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys, com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeysOrBuilder> activateVehicleKeysBuilder_; + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + * @return Whether the activateVehicleKeys field is set. + */ + @java.lang.Override + public boolean hasActivateVehicleKeys() { + return commandCase_ == 49; + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + * @return The activateVehicleKeys. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys getActivateVehicleKeys() { + if (activateVehicleKeysBuilder_ == null) { + if (commandCase_ == 49) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance(); + } else { + if (commandCase_ == 49) { + return activateVehicleKeysBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance(); + } + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + public Builder setActivateVehicleKeys(com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys value) { + if (activateVehicleKeysBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + command_ = value; + onChanged(); + } else { + activateVehicleKeysBuilder_.setMessage(value); + } + commandCase_ = 49; + return this; + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + public Builder setActivateVehicleKeys( + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.Builder builderForValue) { + if (activateVehicleKeysBuilder_ == null) { + command_ = builderForValue.build(); + onChanged(); + } else { + activateVehicleKeysBuilder_.setMessage(builderForValue.build()); + } + commandCase_ = 49; + return this; + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + public Builder mergeActivateVehicleKeys(com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys value) { + if (activateVehicleKeysBuilder_ == null) { + if (commandCase_ == 49 && + command_ != com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance()) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.newBuilder((com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) command_) + .mergeFrom(value).buildPartial(); + } else { + command_ = value; + } + onChanged(); + } else { + if (commandCase_ == 49) { + activateVehicleKeysBuilder_.mergeFrom(value); + } else { + activateVehicleKeysBuilder_.setMessage(value); + } + } + commandCase_ = 49; + return this; + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + public Builder clearActivateVehicleKeys() { + if (activateVehicleKeysBuilder_ == null) { + if (commandCase_ == 49) { + commandCase_ = 0; + command_ = null; + onChanged(); + } + } else { + if (commandCase_ == 49) { + commandCase_ = 0; + command_ = null; + } + activateVehicleKeysBuilder_.clear(); + } + return this; + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.Builder getActivateVehicleKeysBuilder() { + return getActivateVehicleKeysFieldBuilder().getBuilder(); + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeysOrBuilder getActivateVehicleKeysOrBuilder() { + if ((commandCase_ == 49) && (activateVehicleKeysBuilder_ != null)) { + return activateVehicleKeysBuilder_.getMessageOrBuilder(); + } else { + if (commandCase_ == 49) { + return (com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) command_; + } + return com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance(); + } + } + /** + * .proto.ActivateVehicleKeys activate_vehicle_keys = 49; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys, com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeysOrBuilder> + getActivateVehicleKeysFieldBuilder() { + if (activateVehicleKeysBuilder_ == null) { + if (!(commandCase_ == 49)) { + command_ = com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance(); + } + activateVehicleKeysBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys, com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeysOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) command_, + getParentForChildren(), + isClean()); + command_ = null; + } + commandCase_ = 49; + onChanged(); + return activateVehicleKeysBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.CommandRequest) + } + + // @@protoc_insertion_point(class_scope:proto.CommandRequest) + private static final com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public CommandRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface DeactivateVehicleKeysOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.DeactivateVehicleKeys) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + + /** + * int64 expiration_unix = 2; + * @return The expirationUnix. + */ + long getExpirationUnix(); + + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The expirationSeconds. + */ + java.lang.String getExpirationSeconds(); + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The bytes for expirationSeconds. + */ + com.google.protobuf.ByteString + getExpirationSecondsBytes(); + + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The expirationMilliseconds. + */ + java.lang.String getExpirationMilliseconds(); + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The bytes for expirationMilliseconds. + */ + com.google.protobuf.ByteString + getExpirationMillisecondsBytes(); + } + /** + * Protobuf type {@code proto.DeactivateVehicleKeys} + */ + public static final class DeactivateVehicleKeys extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.DeactivateVehicleKeys) + DeactivateVehicleKeysOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + DeactivateVehicleKeys.class.getName()); + } + // Use DeactivateVehicleKeys.newBuilder() to construct. + private DeactivateVehicleKeys(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private DeactivateVehicleKeys() { + pin_ = ""; + expirationSeconds_ = ""; + expirationMilliseconds_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DeactivateVehicleKeys_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DeactivateVehicleKeys_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.class, com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.Builder.class); + } + + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EXPIRATION_UNIX_FIELD_NUMBER = 2; + private long expirationUnix_ = 0L; + /** + * int64 expiration_unix = 2; + * @return The expirationUnix. + */ + @java.lang.Override + public long getExpirationUnix() { + return expirationUnix_; + } + + public static final int EXPIRATION_SECONDS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object expirationSeconds_ = ""; + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The expirationSeconds. + */ + @java.lang.Override + public java.lang.String getExpirationSeconds() { + java.lang.Object ref = expirationSeconds_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expirationSeconds_ = s; + return s; + } + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The bytes for expirationSeconds. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getExpirationSecondsBytes() { + java.lang.Object ref = expirationSeconds_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expirationSeconds_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EXPIRATION_MILLISECONDS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object expirationMilliseconds_ = ""; + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The expirationMilliseconds. + */ + @java.lang.Override + public java.lang.String getExpirationMilliseconds() { + java.lang.Object ref = expirationMilliseconds_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expirationMilliseconds_ = s; + return s; + } + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The bytes for expirationMilliseconds. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getExpirationMillisecondsBytes() { + java.lang.Object ref = expirationMilliseconds_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expirationMilliseconds_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + if (expirationUnix_ != 0L) { + output.writeInt64(2, expirationUnix_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(expirationSeconds_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, expirationSeconds_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(expirationMilliseconds_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, expirationMilliseconds_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + if (expirationUnix_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, expirationUnix_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(expirationSeconds_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, expirationSeconds_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(expirationMilliseconds_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, expirationMilliseconds_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys other = (com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (getExpirationUnix() + != other.getExpirationUnix()) return false; + if (!getExpirationSeconds() + .equals(other.getExpirationSeconds())) return false; + if (!getExpirationMilliseconds() + .equals(other.getExpirationMilliseconds())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + hash = (37 * hash) + EXPIRATION_UNIX_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getExpirationUnix()); + hash = (37 * hash) + EXPIRATION_SECONDS_FIELD_NUMBER; + hash = (53 * hash) + getExpirationSeconds().hashCode(); + hash = (37 * hash) + EXPIRATION_MILLISECONDS_FIELD_NUMBER; + hash = (53 * hash) + getExpirationMilliseconds().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.DeactivateVehicleKeys} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.DeactivateVehicleKeys) + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeysOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DeactivateVehicleKeys_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DeactivateVehicleKeys_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.class, com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + expirationUnix_ = 0L; + expirationSeconds_ = ""; + expirationMilliseconds_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DeactivateVehicleKeys_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys build() { + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys result = new com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.expirationUnix_ = expirationUnix_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.expirationSeconds_ = expirationSeconds_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.expirationMilliseconds_ = expirationMilliseconds_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getExpirationUnix() != 0L) { + setExpirationUnix(other.getExpirationUnix()); + } + if (!other.getExpirationSeconds().isEmpty()) { + expirationSeconds_ = other.expirationSeconds_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getExpirationMilliseconds().isEmpty()) { + expirationMilliseconds_ = other.expirationMilliseconds_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + expirationUnix_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + expirationSeconds_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + expirationMilliseconds_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private long expirationUnix_ ; + /** + * int64 expiration_unix = 2; + * @return The expirationUnix. + */ + @java.lang.Override + public long getExpirationUnix() { + return expirationUnix_; + } + /** + * int64 expiration_unix = 2; + * @param value The expirationUnix to set. + * @return This builder for chaining. + */ + public Builder setExpirationUnix(long value) { + + expirationUnix_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int64 expiration_unix = 2; + * @return This builder for chaining. + */ + public Builder clearExpirationUnix() { + bitField0_ = (bitField0_ & ~0x00000002); + expirationUnix_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object expirationSeconds_ = ""; + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The expirationSeconds. + */ + public java.lang.String getExpirationSeconds() { + java.lang.Object ref = expirationSeconds_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expirationSeconds_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The bytes for expirationSeconds. + */ + public com.google.protobuf.ByteString + getExpirationSecondsBytes() { + java.lang.Object ref = expirationSeconds_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expirationSeconds_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @param value The expirationSeconds to set. + * @return This builder for chaining. + */ + public Builder setExpirationSeconds( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + expirationSeconds_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return This builder for chaining. + */ + public Builder clearExpirationSeconds() { + expirationSeconds_ = getDefaultInstance().getExpirationSeconds(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @param value The bytes for expirationSeconds to set. + * @return This builder for chaining. + */ + public Builder setExpirationSecondsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + expirationSeconds_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object expirationMilliseconds_ = ""; + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The expirationMilliseconds. + */ + public java.lang.String getExpirationMilliseconds() { + java.lang.Object ref = expirationMilliseconds_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expirationMilliseconds_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The bytes for expirationMilliseconds. + */ + public com.google.protobuf.ByteString + getExpirationMillisecondsBytes() { + java.lang.Object ref = expirationMilliseconds_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expirationMilliseconds_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @param value The expirationMilliseconds to set. + * @return This builder for chaining. + */ + public Builder setExpirationMilliseconds( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + expirationMilliseconds_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return This builder for chaining. + */ + public Builder clearExpirationMilliseconds() { + expirationMilliseconds_ = getDefaultInstance().getExpirationMilliseconds(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @param value The bytes for expirationMilliseconds to set. + * @return This builder for chaining. + */ + public Builder setExpirationMillisecondsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + expirationMilliseconds_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.DeactivateVehicleKeys) + } + + // @@protoc_insertion_point(class_scope:proto.DeactivateVehicleKeys) + private static final com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DeactivateVehicleKeys parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DeactivateVehicleKeys getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ActivateVehicleKeysOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ActivateVehicleKeys) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + + /** + * int64 expiration_unix = 2; + * @return The expirationUnix. + */ + long getExpirationUnix(); + + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The expirationSeconds. + */ + java.lang.String getExpirationSeconds(); + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The bytes for expirationSeconds. + */ + com.google.protobuf.ByteString + getExpirationSecondsBytes(); + + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The expirationMilliseconds. + */ + java.lang.String getExpirationMilliseconds(); + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The bytes for expirationMilliseconds. + */ + com.google.protobuf.ByteString + getExpirationMillisecondsBytes(); + } + /** + * Protobuf type {@code proto.ActivateVehicleKeys} + */ + public static final class ActivateVehicleKeys extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ActivateVehicleKeys) + ActivateVehicleKeysOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ActivateVehicleKeys.class.getName()); + } + // Use ActivateVehicleKeys.newBuilder() to construct. + private ActivateVehicleKeys(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ActivateVehicleKeys() { + pin_ = ""; + expirationSeconds_ = ""; + expirationMilliseconds_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ActivateVehicleKeys_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ActivateVehicleKeys_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.class, com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.Builder.class); + } + + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EXPIRATION_UNIX_FIELD_NUMBER = 2; + private long expirationUnix_ = 0L; + /** + * int64 expiration_unix = 2; + * @return The expirationUnix. + */ + @java.lang.Override + public long getExpirationUnix() { + return expirationUnix_; + } + + public static final int EXPIRATION_SECONDS_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object expirationSeconds_ = ""; + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The expirationSeconds. + */ + @java.lang.Override + public java.lang.String getExpirationSeconds() { + java.lang.Object ref = expirationSeconds_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expirationSeconds_ = s; + return s; + } + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The bytes for expirationSeconds. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getExpirationSecondsBytes() { + java.lang.Object ref = expirationSeconds_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expirationSeconds_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EXPIRATION_MILLISECONDS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object expirationMilliseconds_ = ""; + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The expirationMilliseconds. + */ + @java.lang.Override + public java.lang.String getExpirationMilliseconds() { + java.lang.Object ref = expirationMilliseconds_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expirationMilliseconds_ = s; + return s; + } + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The bytes for expirationMilliseconds. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getExpirationMillisecondsBytes() { + java.lang.Object ref = expirationMilliseconds_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expirationMilliseconds_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + if (expirationUnix_ != 0L) { + output.writeInt64(2, expirationUnix_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(expirationSeconds_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, expirationSeconds_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(expirationMilliseconds_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 4, expirationMilliseconds_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + if (expirationUnix_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, expirationUnix_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(expirationSeconds_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, expirationSeconds_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(expirationMilliseconds_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(4, expirationMilliseconds_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys other = (com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (getExpirationUnix() + != other.getExpirationUnix()) return false; + if (!getExpirationSeconds() + .equals(other.getExpirationSeconds())) return false; + if (!getExpirationMilliseconds() + .equals(other.getExpirationMilliseconds())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + hash = (37 * hash) + EXPIRATION_UNIX_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getExpirationUnix()); + hash = (37 * hash) + EXPIRATION_SECONDS_FIELD_NUMBER; + hash = (53 * hash) + getExpirationSeconds().hashCode(); + hash = (37 * hash) + EXPIRATION_MILLISECONDS_FIELD_NUMBER; + hash = (53 * hash) + getExpirationMilliseconds().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ActivateVehicleKeys} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ActivateVehicleKeys) + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeysOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ActivateVehicleKeys_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ActivateVehicleKeys_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.class, com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + expirationUnix_ = 0L; + expirationSeconds_ = ""; + expirationMilliseconds_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ActivateVehicleKeys_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys build() { + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys result = new com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.expirationUnix_ = expirationUnix_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.expirationSeconds_ = expirationSeconds_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.expirationMilliseconds_ = expirationMilliseconds_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getExpirationUnix() != 0L) { + setExpirationUnix(other.getExpirationUnix()); + } + if (!other.getExpirationSeconds().isEmpty()) { + expirationSeconds_ = other.expirationSeconds_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getExpirationMilliseconds().isEmpty()) { + expirationMilliseconds_ = other.expirationMilliseconds_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + expirationUnix_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + expirationSeconds_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + expirationMilliseconds_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private long expirationUnix_ ; + /** + * int64 expiration_unix = 2; + * @return The expirationUnix. + */ + @java.lang.Override + public long getExpirationUnix() { + return expirationUnix_; + } + /** + * int64 expiration_unix = 2; + * @param value The expirationUnix to set. + * @return This builder for chaining. + */ + public Builder setExpirationUnix(long value) { + + expirationUnix_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int64 expiration_unix = 2; + * @return This builder for chaining. + */ + public Builder clearExpirationUnix() { + bitField0_ = (bitField0_ & ~0x00000002); + expirationUnix_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object expirationSeconds_ = ""; + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The expirationSeconds. + */ + public java.lang.String getExpirationSeconds() { + java.lang.Object ref = expirationSeconds_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expirationSeconds_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return The bytes for expirationSeconds. + */ + public com.google.protobuf.ByteString + getExpirationSecondsBytes() { + java.lang.Object ref = expirationSeconds_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expirationSeconds_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @param value The expirationSeconds to set. + * @return This builder for chaining. + */ + public Builder setExpirationSeconds( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + expirationSeconds_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @return This builder for chaining. + */ + public Builder clearExpirationSeconds() { + expirationSeconds_ = getDefaultInstance().getExpirationSeconds(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string expiration_seconds = 3 [json_name = "expirationSeconds"]; + * @param value The bytes for expirationSeconds to set. + * @return This builder for chaining. + */ + public Builder setExpirationSecondsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + expirationSeconds_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object expirationMilliseconds_ = ""; + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The expirationMilliseconds. + */ + public java.lang.String getExpirationMilliseconds() { + java.lang.Object ref = expirationMilliseconds_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + expirationMilliseconds_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return The bytes for expirationMilliseconds. + */ + public com.google.protobuf.ByteString + getExpirationMillisecondsBytes() { + java.lang.Object ref = expirationMilliseconds_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + expirationMilliseconds_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @param value The expirationMilliseconds to set. + * @return This builder for chaining. + */ + public Builder setExpirationMilliseconds( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + expirationMilliseconds_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @return This builder for chaining. + */ + public Builder clearExpirationMilliseconds() { + expirationMilliseconds_ = getDefaultInstance().getExpirationMilliseconds(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + * string expiration_milliseconds = 4 [json_name = "expirationMilliseconds"]; + * @param value The bytes for expirationMilliseconds to set. + * @return This builder for chaining. + */ + public Builder setExpirationMillisecondsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + expirationMilliseconds_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ActivateVehicleKeys) + } + + // @@protoc_insertion_point(class_scope:proto.ActivateVehicleKeys) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ActivateVehicleKeys parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ActivateVehicleKeys getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AuxheatStartOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AuxheatStart) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.AuxheatStart} + */ + public static final class AuxheatStart extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AuxheatStart) + AuxheatStartOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AuxheatStart.class.getName()); + } + // Use AuxheatStart.newBuilder() to construct. + private AuxheatStart(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AuxheatStart() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.class, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart other = (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AuxheatStart} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AuxheatStart) + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStartOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.class, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStart_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart build() { + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart result = new com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AuxheatStart) + } + + // @@protoc_insertion_point(class_scope:proto.AuxheatStart) + private static final com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AuxheatStart parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AuxheatStopOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AuxheatStop) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.AuxheatStop} + */ + public static final class AuxheatStop extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AuxheatStop) + AuxheatStopOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AuxheatStop.class.getName()); + } + // Use AuxheatStop.newBuilder() to construct. + private AuxheatStop(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AuxheatStop() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.class, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop other = (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AuxheatStop} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AuxheatStop) + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStopOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.class, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatStop_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop build() { + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop result = new com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AuxheatStop) + } + + // @@protoc_insertion_point(class_scope:proto.AuxheatStop) + private static final com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AuxheatStop parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AuxheatConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AuxheatConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @return The enum numeric value on the wire for timeSelection. + */ + int getTimeSelectionValue(); + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @return The timeSelection. + */ + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection getTimeSelection(); + + /** + *
+     * Minutes from midnight.
+     * 
+ * + * int32 time_1 = 2 [json_name = "auxheattime1"]; + * @return The time1. + */ + int getTime1(); + + /** + *
+     * Minutes from midnight.
+     * 
+ * + * int32 time_2 = 3 [json_name = "auxheattime2"]; + * @return The time2. + */ + int getTime2(); + + /** + *
+     * Minutes from midnight.
+     * 
+ * + * int32 time_3 = 4 [json_name = "auxheattime3"]; + * @return The time3. + */ + int getTime3(); + } + /** + * Protobuf type {@code proto.AuxheatConfigure} + */ + public static final class AuxheatConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AuxheatConfigure) + AuxheatConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AuxheatConfigure.class.getName()); + } + // Use AuxheatConfigure.newBuilder() to construct. + private AuxheatConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AuxheatConfigure() { + timeSelection_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Builder.class); + } + + /** + * Protobuf enum {@code proto.AuxheatConfigure.Selection} + */ + public enum Selection + implements com.google.protobuf.ProtocolMessageEnum { + /** + * NO_SELECTION = 0; + */ + NO_SELECTION(0), + /** + * TIME_1 = 1; + */ + TIME_1(1), + /** + * TIME_2 = 2; + */ + TIME_2(2), + /** + * TIME_3 = 3; + */ + TIME_3(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Selection.class.getName()); + } + /** + * NO_SELECTION = 0; + */ + public static final int NO_SELECTION_VALUE = 0; + /** + * TIME_1 = 1; + */ + public static final int TIME_1_VALUE = 1; + /** + * TIME_2 = 2; + */ + public static final int TIME_2_VALUE = 2; + /** + * TIME_3 = 3; + */ + public static final int TIME_3_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Selection valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Selection forNumber(int value) { + switch (value) { + case 0: return NO_SELECTION; + case 1: return TIME_1; + case 2: return TIME_2; + case 3: return TIME_3; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + Selection> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Selection findValueByNumber(int number) { + return Selection.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDescriptor().getEnumTypes().get(0); + } + + private static final Selection[] VALUES = values(); + + public static Selection valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Selection(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.AuxheatConfigure.Selection) + } + + public static final int TIME_SELECTION_FIELD_NUMBER = 1; + private int timeSelection_ = 0; + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @return The enum numeric value on the wire for timeSelection. + */ + @java.lang.Override public int getTimeSelectionValue() { + return timeSelection_; + } + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @return The timeSelection. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection getTimeSelection() { + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection result = com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection.forNumber(timeSelection_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection.UNRECOGNIZED : result; + } + + public static final int TIME_1_FIELD_NUMBER = 2; + private int time1_ = 0; + /** + *
+     * Minutes from midnight.
+     * 
+ * + * int32 time_1 = 2 [json_name = "auxheattime1"]; + * @return The time1. + */ + @java.lang.Override + public int getTime1() { + return time1_; + } + + public static final int TIME_2_FIELD_NUMBER = 3; + private int time2_ = 0; + /** + *
+     * Minutes from midnight.
+     * 
+ * + * int32 time_2 = 3 [json_name = "auxheattime2"]; + * @return The time2. + */ + @java.lang.Override + public int getTime2() { + return time2_; + } + + public static final int TIME_3_FIELD_NUMBER = 4; + private int time3_ = 0; + /** + *
+     * Minutes from midnight.
+     * 
+ * + * int32 time_3 = 4 [json_name = "auxheattime3"]; + * @return The time3. + */ + @java.lang.Override + public int getTime3() { + return time3_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (timeSelection_ != com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection.NO_SELECTION.getNumber()) { + output.writeEnum(1, timeSelection_); + } + if (time1_ != 0) { + output.writeInt32(2, time1_); + } + if (time2_ != 0) { + output.writeInt32(3, time2_); + } + if (time3_ != 0) { + output.writeInt32(4, time3_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (timeSelection_ != com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection.NO_SELECTION.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, timeSelection_); + } + if (time1_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, time1_); + } + if (time2_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, time2_); + } + if (time3_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, time3_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) obj; + + if (timeSelection_ != other.timeSelection_) return false; + if (getTime1() + != other.getTime1()) return false; + if (getTime2() + != other.getTime2()) return false; + if (getTime3() + != other.getTime3()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIME_SELECTION_FIELD_NUMBER; + hash = (53 * hash) + timeSelection_; + hash = (37 * hash) + TIME_1_FIELD_NUMBER; + hash = (53 * hash) + getTime1(); + hash = (37 * hash) + TIME_2_FIELD_NUMBER; + hash = (53 * hash) + getTime2(); + hash = (37 * hash) + TIME_3_FIELD_NUMBER; + hash = (53 * hash) + getTime3(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AuxheatConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AuxheatConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timeSelection_ = 0; + time1_ = 0; + time2_ = 0; + time3_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AuxheatConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timeSelection_ = timeSelection_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.time1_ = time1_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.time2_ = time2_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.time3_ = time3_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.getDefaultInstance()) return this; + if (other.timeSelection_ != 0) { + setTimeSelectionValue(other.getTimeSelectionValue()); + } + if (other.getTime1() != 0) { + setTime1(other.getTime1()); + } + if (other.getTime2() != 0) { + setTime2(other.getTime2()); + } + if (other.getTime3() != 0) { + setTime3(other.getTime3()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + timeSelection_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + time1_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + time2_ = input.readInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + time3_ = input.readInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int timeSelection_ = 0; + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @return The enum numeric value on the wire for timeSelection. + */ + @java.lang.Override public int getTimeSelectionValue() { + return timeSelection_; + } + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @param value The enum numeric value on the wire for timeSelection to set. + * @return This builder for chaining. + */ + public Builder setTimeSelectionValue(int value) { + timeSelection_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @return The timeSelection. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection getTimeSelection() { + com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection result = com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection.forNumber(timeSelection_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection.UNRECOGNIZED : result; + } + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @param value The timeSelection to set. + * @return This builder for chaining. + */ + public Builder setTimeSelection(com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure.Selection value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + timeSelection_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.AuxheatConfigure.Selection time_selection = 1 [json_name = "auxheattimeselection"]; + * @return This builder for chaining. + */ + public Builder clearTimeSelection() { + bitField0_ = (bitField0_ & ~0x00000001); + timeSelection_ = 0; + onChanged(); + return this; + } + + private int time1_ ; + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_1 = 2 [json_name = "auxheattime1"]; + * @return The time1. + */ + @java.lang.Override + public int getTime1() { + return time1_; + } + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_1 = 2 [json_name = "auxheattime1"]; + * @param value The time1 to set. + * @return This builder for chaining. + */ + public Builder setTime1(int value) { + + time1_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_1 = 2 [json_name = "auxheattime1"]; + * @return This builder for chaining. + */ + public Builder clearTime1() { + bitField0_ = (bitField0_ & ~0x00000002); + time1_ = 0; + onChanged(); + return this; + } + + private int time2_ ; + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_2 = 3 [json_name = "auxheattime2"]; + * @return The time2. + */ + @java.lang.Override + public int getTime2() { + return time2_; + } + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_2 = 3 [json_name = "auxheattime2"]; + * @param value The time2 to set. + * @return This builder for chaining. + */ + public Builder setTime2(int value) { + + time2_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_2 = 3 [json_name = "auxheattime2"]; + * @return This builder for chaining. + */ + public Builder clearTime2() { + bitField0_ = (bitField0_ & ~0x00000004); + time2_ = 0; + onChanged(); + return this; + } + + private int time3_ ; + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_3 = 4 [json_name = "auxheattime3"]; + * @return The time3. + */ + @java.lang.Override + public int getTime3() { + return time3_; + } + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_3 = 4 [json_name = "auxheattime3"]; + * @param value The time3 to set. + * @return This builder for chaining. + */ + public Builder setTime3(int value) { + + time3_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * Minutes from midnight.
+       * 
+ * + * int32 time_3 = 4 [json_name = "auxheattime3"]; + * @return This builder for chaining. + */ + public Builder clearTime3() { + bitField0_ = (bitField0_ & ~0x00000008); + time3_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AuxheatConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.AuxheatConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AuxheatConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AuxheatConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface DoorsLockOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.DoorsLock) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @return A list containing the doors. + */ + java.util.List getDoorsList(); + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @return The count of doors. + */ + int getDoorsCount(); + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @param index The index of the element to return. + * @return The doors at the given index. + */ + com.daimler.mbcarkit.proto.VehicleCommands.Door getDoors(int index); + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @return A list containing the enum numeric values on the wire for doors. + */ + java.util.List + getDoorsValueList(); + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of doors at the given index. + */ + int getDoorsValue(int index); + } + /** + * Protobuf type {@code proto.DoorsLock} + */ + public static final class DoorsLock extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.DoorsLock) + DoorsLockOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + DoorsLock.class.getName()); + } + // Use DoorsLock.newBuilder() to construct. + private DoorsLock(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private DoorsLock() { + doors_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsLock_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsLock_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.class, com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.Builder.class); + } + + public static final int DOORS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List doors_; + private static final com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.Door> doors_converter_ = + new com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.Door>() { + public com.daimler.mbcarkit.proto.VehicleCommands.Door convert(java.lang.Integer from) { + com.daimler.mbcarkit.proto.VehicleCommands.Door result = com.daimler.mbcarkit.proto.VehicleCommands.Door.forNumber(from); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.Door.UNRECOGNIZED : result; + } + }; + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @return A list containing the doors. + */ + @java.lang.Override + public java.util.List getDoorsList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.Door>(doors_, doors_converter_); + } + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @return The count of doors. + */ + @java.lang.Override + public int getDoorsCount() { + return doors_.size(); + } + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @param index The index of the element to return. + * @return The doors at the given index. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.Door getDoors(int index) { + return doors_converter_.convert(doors_.get(index)); + } + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @return A list containing the enum numeric values on the wire for doors. + */ + @java.lang.Override + public java.util.List + getDoorsValueList() { + return doors_; + } + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 1; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of doors at the given index. + */ + @java.lang.Override + public int getDoorsValue(int index) { + return doors_.get(index); + } + private int doorsMemoizedSerializedSize; + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (getDoorsList().size() > 0) { + output.writeUInt32NoTag(10); + output.writeUInt32NoTag(doorsMemoizedSerializedSize); + } + for (int i = 0; i < doors_.size(); i++) { + output.writeEnumNoTag(doors_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < doors_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeEnumSizeNoTag(doors_.get(i)); + } + size += dataSize; + if (!getDoorsList().isEmpty()) { size += 1; + size += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(dataSize); + }doorsMemoizedSerializedSize = dataSize; + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock other = (com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) obj; + + if (!doors_.equals(other.doors_)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getDoorsCount() > 0) { + hash = (37 * hash) + DOORS_FIELD_NUMBER; + hash = (53 * hash) + doors_.hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.DoorsLock} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.DoorsLock) + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLockOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsLock_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsLock_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.class, com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + doors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsLock_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock build() { + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock result = new com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock result) { + if (((bitField0_ & 0x00000001) != 0)) { + doors_ = java.util.Collections.unmodifiableList(doors_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.doors_ = doors_; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock.getDefaultInstance()) return this; + if (!other.doors_.isEmpty()) { + if (doors_.isEmpty()) { + doors_ = other.doors_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureDoorsIsMutable(); + doors_.addAll(other.doors_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + int tmpRaw = input.readEnum(); + ensureDoorsIsMutable(); + doors_.add(tmpRaw); + break; + } // case 8 + case 10: { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while(input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureDoorsIsMutable(); + doors_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List doors_ = + java.util.Collections.emptyList(); + private void ensureDoorsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + doors_ = new java.util.ArrayList(doors_); + bitField0_ |= 0x00000001; + } + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @return A list containing the doors. + */ + public java.util.List getDoorsList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.Door>(doors_, doors_converter_); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @return The count of doors. + */ + public int getDoorsCount() { + return doors_.size(); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @param index The index of the element to return. + * @return The doors at the given index. + */ + public com.daimler.mbcarkit.proto.VehicleCommands.Door getDoors(int index) { + return doors_converter_.convert(doors_.get(index)); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @param index The index to set the value at. + * @param value The doors to set. + * @return This builder for chaining. + */ + public Builder setDoors( + int index, com.daimler.mbcarkit.proto.VehicleCommands.Door value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDoorsIsMutable(); + doors_.set(index, value.getNumber()); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @param value The doors to add. + * @return This builder for chaining. + */ + public Builder addDoors(com.daimler.mbcarkit.proto.VehicleCommands.Door value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDoorsIsMutable(); + doors_.add(value.getNumber()); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @param values The doors to add. + * @return This builder for chaining. + */ + public Builder addAllDoors( + java.lang.Iterable values) { + ensureDoorsIsMutable(); + for (com.daimler.mbcarkit.proto.VehicleCommands.Door value : values) { + doors_.add(value.getNumber()); + } + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @return This builder for chaining. + */ + public Builder clearDoors() { + doors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @return A list containing the enum numeric values on the wire for doors. + */ + public java.util.List + getDoorsValueList() { + return java.util.Collections.unmodifiableList(doors_); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of doors at the given index. + */ + public int getDoorsValue(int index) { + return doors_.get(index); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for doors to set. + * @return This builder for chaining. + */ + public Builder setDoorsValue( + int index, int value) { + ensureDoorsIsMutable(); + doors_.set(index, value); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @param value The enum numeric value on the wire for doors to add. + * @return This builder for chaining. + */ + public Builder addDoorsValue(int value) { + ensureDoorsIsMutable(); + doors_.add(value); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 1; + * @param values The enum numeric values on the wire for doors to add. + * @return This builder for chaining. + */ + public Builder addAllDoorsValue( + java.lang.Iterable values) { + ensureDoorsIsMutable(); + for (int value : values) { + doors_.add(value); + } + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.DoorsLock) + } + + // @@protoc_insertion_point(class_scope:proto.DoorsLock) + private static final com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DoorsLock parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface DoorsUnlockOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.DoorsUnlock) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @return A list containing the doors. + */ + java.util.List getDoorsList(); + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @return The count of doors. + */ + int getDoorsCount(); + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @param index The index of the element to return. + * @return The doors at the given index. + */ + com.daimler.mbcarkit.proto.VehicleCommands.Door getDoors(int index); + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @return A list containing the enum numeric values on the wire for doors. + */ + java.util.List + getDoorsValueList(); + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of doors at the given index. + */ + int getDoorsValue(int index); + } + /** + * Protobuf type {@code proto.DoorsUnlock} + */ + public static final class DoorsUnlock extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.DoorsUnlock) + DoorsUnlockOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + DoorsUnlock.class.getName()); + } + // Use DoorsUnlock.newBuilder() to construct. + private DoorsUnlock(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private DoorsUnlock() { + pin_ = ""; + doors_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsUnlock_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsUnlock_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.class, com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.Builder.class); + } + + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DOORS_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private java.util.List doors_; + private static final com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.Door> doors_converter_ = + new com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.Door>() { + public com.daimler.mbcarkit.proto.VehicleCommands.Door convert(java.lang.Integer from) { + com.daimler.mbcarkit.proto.VehicleCommands.Door result = com.daimler.mbcarkit.proto.VehicleCommands.Door.forNumber(from); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.Door.UNRECOGNIZED : result; + } + }; + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @return A list containing the doors. + */ + @java.lang.Override + public java.util.List getDoorsList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.Door>(doors_, doors_converter_); + } + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @return The count of doors. + */ + @java.lang.Override + public int getDoorsCount() { + return doors_.size(); + } + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @param index The index of the element to return. + * @return The doors at the given index. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.Door getDoors(int index) { + return doors_converter_.convert(doors_.get(index)); + } + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @return A list containing the enum numeric values on the wire for doors. + */ + @java.lang.Override + public java.util.List + getDoorsValueList() { + return doors_; + } + /** + *
+     * doors / flaps to unlock (only supported by TCU type RAMSES)
+     * leave empty to target all doors
+     * 
+ * + * repeated .proto.Door doors = 2; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of doors at the given index. + */ + @java.lang.Override + public int getDoorsValue(int index) { + return doors_.get(index); + } + private int doorsMemoizedSerializedSize; + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + if (getDoorsList().size() > 0) { + output.writeUInt32NoTag(18); + output.writeUInt32NoTag(doorsMemoizedSerializedSize); + } + for (int i = 0; i < doors_.size(); i++) { + output.writeEnumNoTag(doors_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + { + int dataSize = 0; + for (int i = 0; i < doors_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeEnumSizeNoTag(doors_.get(i)); + } + size += dataSize; + if (!getDoorsList().isEmpty()) { size += 1; + size += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(dataSize); + }doorsMemoizedSerializedSize = dataSize; + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock other = (com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (!doors_.equals(other.doors_)) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + if (getDoorsCount() > 0) { + hash = (37 * hash) + DOORS_FIELD_NUMBER; + hash = (53 * hash) + doors_.hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.DoorsUnlock} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.DoorsUnlock) + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlockOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsUnlock_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsUnlock_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.class, com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + doors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_DoorsUnlock_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock build() { + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock result = new com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock result) { + if (((bitField0_ & 0x00000002) != 0)) { + doors_ = java.util.Collections.unmodifiableList(doors_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.doors_ = doors_; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.doors_.isEmpty()) { + if (doors_.isEmpty()) { + doors_ = other.doors_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureDoorsIsMutable(); + doors_.addAll(other.doors_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + int tmpRaw = input.readEnum(); + ensureDoorsIsMutable(); + doors_.add(tmpRaw); + break; + } // case 16 + case 18: { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while(input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureDoorsIsMutable(); + doors_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.util.List doors_ = + java.util.Collections.emptyList(); + private void ensureDoorsIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + doors_ = new java.util.ArrayList(doors_); + bitField0_ |= 0x00000002; + } + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @return A list containing the doors. + */ + public java.util.List getDoorsList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.Door>(doors_, doors_converter_); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @return The count of doors. + */ + public int getDoorsCount() { + return doors_.size(); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @param index The index of the element to return. + * @return The doors at the given index. + */ + public com.daimler.mbcarkit.proto.VehicleCommands.Door getDoors(int index) { + return doors_converter_.convert(doors_.get(index)); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @param index The index to set the value at. + * @param value The doors to set. + * @return This builder for chaining. + */ + public Builder setDoors( + int index, com.daimler.mbcarkit.proto.VehicleCommands.Door value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDoorsIsMutable(); + doors_.set(index, value.getNumber()); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @param value The doors to add. + * @return This builder for chaining. + */ + public Builder addDoors(com.daimler.mbcarkit.proto.VehicleCommands.Door value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDoorsIsMutable(); + doors_.add(value.getNumber()); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @param values The doors to add. + * @return This builder for chaining. + */ + public Builder addAllDoors( + java.lang.Iterable values) { + ensureDoorsIsMutable(); + for (com.daimler.mbcarkit.proto.VehicleCommands.Door value : values) { + doors_.add(value.getNumber()); + } + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @return This builder for chaining. + */ + public Builder clearDoors() { + doors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @return A list containing the enum numeric values on the wire for doors. + */ + public java.util.List + getDoorsValueList() { + return java.util.Collections.unmodifiableList(doors_); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of doors at the given index. + */ + public int getDoorsValue(int index) { + return doors_.get(index); + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for doors to set. + * @return This builder for chaining. + */ + public Builder setDoorsValue( + int index, int value) { + ensureDoorsIsMutable(); + doors_.set(index, value); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @param value The enum numeric value on the wire for doors to add. + * @return This builder for chaining. + */ + public Builder addDoorsValue(int value) { + ensureDoorsIsMutable(); + doors_.add(value); + onChanged(); + return this; + } + /** + *
+       * doors / flaps to unlock (only supported by TCU type RAMSES)
+       * leave empty to target all doors
+       * 
+ * + * repeated .proto.Door doors = 2; + * @param values The enum numeric values on the wire for doors to add. + * @return This builder for chaining. + */ + public Builder addAllDoorsValue( + java.lang.Iterable values) { + ensureDoorsIsMutable(); + for (int value : values) { + doors_.add(value); + } + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.DoorsUnlock) + } + + // @@protoc_insertion_point(class_scope:proto.DoorsUnlock) + private static final com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DoorsUnlock parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface EngineStartOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.EngineStart) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + } + /** + * Protobuf type {@code proto.EngineStart} + */ + public static final class EngineStart extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.EngineStart) + EngineStartOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + EngineStart.class.getName()); + } + // Use EngineStart.newBuilder() to construct. + private EngineStart(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private EngineStart() { + pin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.class, com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.Builder.class); + } + + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.EngineStart)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart other = (com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.EngineStart prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.EngineStart} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.EngineStart) + com.daimler.mbcarkit.proto.VehicleCommands.EngineStartOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.class, com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStart_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStart getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStart build() { + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStart buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.EngineStart result = new com.daimler.mbcarkit.proto.VehicleCommands.EngineStart(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.EngineStart result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.EngineStart) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.EngineStart)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.EngineStart other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.EngineStart.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.EngineStart) + } + + // @@protoc_insertion_point(class_scope:proto.EngineStart) + private static final com.daimler.mbcarkit.proto.VehicleCommands.EngineStart DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.EngineStart(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStart getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EngineStart parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStart getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface EngineStopOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.EngineStop) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.EngineStop} + */ + public static final class EngineStop extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.EngineStop) + EngineStopOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + EngineStop.class.getName()); + } + // Use EngineStop.newBuilder() to construct. + private EngineStop(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private EngineStop() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.class, com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.EngineStop)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop other = (com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.EngineStop prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.EngineStop} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.EngineStop) + com.daimler.mbcarkit.proto.VehicleCommands.EngineStopOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.class, com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_EngineStop_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStop getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStop build() { + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStop buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.EngineStop result = new com.daimler.mbcarkit.proto.VehicleCommands.EngineStop(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.EngineStop) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.EngineStop)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.EngineStop other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.EngineStop.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.EngineStop) + } + + // @@protoc_insertion_point(class_scope:proto.EngineStop) + private static final com.daimler.mbcarkit.proto.VehicleCommands.EngineStop DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.EngineStop(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.EngineStop getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EngineStop parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.EngineStop getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SunroofOpenOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SunroofOpen) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + } + /** + * Protobuf type {@code proto.SunroofOpen} + */ + public static final class SunroofOpen extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SunroofOpen) + SunroofOpenOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SunroofOpen.class.getName()); + } + // Use SunroofOpen.newBuilder() to construct. + private SunroofOpen(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SunroofOpen() { + pin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofOpen_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofOpen_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.class, com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.Builder.class); + } + + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen other = (com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SunroofOpen} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SunroofOpen) + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpenOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofOpen_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofOpen_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.class, com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofOpen_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen build() { + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen result = new com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SunroofOpen) + } + + // @@protoc_insertion_point(class_scope:proto.SunroofOpen) + private static final com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SunroofOpen parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SunroofCloseOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SunroofClose) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.SunroofClose} + */ + public static final class SunroofClose extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SunroofClose) + SunroofCloseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SunroofClose.class.getName()); + } + // Use SunroofClose.newBuilder() to construct. + private SunroofClose(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SunroofClose() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofClose_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofClose_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.class, com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose other = (com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SunroofClose} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SunroofClose) + com.daimler.mbcarkit.proto.VehicleCommands.SunroofCloseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofClose_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofClose_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.class, com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofClose_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose build() { + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose result = new com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SunroofClose) + } + + // @@protoc_insertion_point(class_scope:proto.SunroofClose) + private static final com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SunroofClose parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SunroofLiftOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SunroofLift) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + } + /** + * Protobuf type {@code proto.SunroofLift} + */ + public static final class SunroofLift extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SunroofLift) + SunroofLiftOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SunroofLift.class.getName()); + } + // Use SunroofLift.newBuilder() to construct. + private SunroofLift(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SunroofLift() { + pin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofLift_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofLift_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.class, com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.Builder.class); + } + + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift other = (com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SunroofLift} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SunroofLift) + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLiftOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofLift_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofLift_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.class, com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofLift_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift build() { + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift result = new com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SunroofLift) + } + + // @@protoc_insertion_point(class_scope:proto.SunroofLift) + private static final com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SunroofLift parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SunroofMoveOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SunroofMove) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + * @return Whether the sunroof field is set. + */ + boolean hasSunroof(); + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + * @return The sunroof. + */ + com.google.protobuf.Int32Value getSunroof(); + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + com.google.protobuf.Int32ValueOrBuilder getSunroofOrBuilder(); + + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + * @return Whether the sunroofBlindFront field is set. + */ + boolean hasSunroofBlindFront(); + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + * @return The sunroofBlindFront. + */ + com.google.protobuf.Int32Value getSunroofBlindFront(); + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + com.google.protobuf.Int32ValueOrBuilder getSunroofBlindFrontOrBuilder(); + + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + * @return Whether the sunroofBlindRear field is set. + */ + boolean hasSunroofBlindRear(); + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + * @return The sunroofBlindRear. + */ + com.google.protobuf.Int32Value getSunroofBlindRear(); + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + com.google.protobuf.Int32ValueOrBuilder getSunroofBlindRearOrBuilder(); + } + /** + * Protobuf type {@code proto.SunroofMove} + */ + public static final class SunroofMove extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SunroofMove) + SunroofMoveOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SunroofMove.class.getName()); + } + // Use SunroofMove.newBuilder() to construct. + private SunroofMove(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SunroofMove() { + pin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofMove_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofMove_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.class, com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.Builder.class); + } + + private int bitField0_; + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SUNROOF_FIELD_NUMBER = 2; + private com.google.protobuf.Int32Value sunroof_; + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + * @return Whether the sunroof field is set. + */ + @java.lang.Override + public boolean hasSunroof() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + * @return The sunroof. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getSunroof() { + return sunroof_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroof_; + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getSunroofOrBuilder() { + return sunroof_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroof_; + } + + public static final int SUNROOF_BLIND_FRONT_FIELD_NUMBER = 3; + private com.google.protobuf.Int32Value sunroofBlindFront_; + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + * @return Whether the sunroofBlindFront field is set. + */ + @java.lang.Override + public boolean hasSunroofBlindFront() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + * @return The sunroofBlindFront. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getSunroofBlindFront() { + return sunroofBlindFront_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroofBlindFront_; + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getSunroofBlindFrontOrBuilder() { + return sunroofBlindFront_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroofBlindFront_; + } + + public static final int SUNROOF_BLIND_REAR_FIELD_NUMBER = 4; + private com.google.protobuf.Int32Value sunroofBlindRear_; + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + * @return Whether the sunroofBlindRear field is set. + */ + @java.lang.Override + public boolean hasSunroofBlindRear() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + * @return The sunroofBlindRear. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getSunroofBlindRear() { + return sunroofBlindRear_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroofBlindRear_; + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getSunroofBlindRearOrBuilder() { + return sunroofBlindRear_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroofBlindRear_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(2, getSunroof()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(3, getSunroofBlindFront()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(4, getSunroofBlindRear()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getSunroof()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getSunroofBlindFront()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getSunroofBlindRear()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove other = (com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (hasSunroof() != other.hasSunroof()) return false; + if (hasSunroof()) { + if (!getSunroof() + .equals(other.getSunroof())) return false; + } + if (hasSunroofBlindFront() != other.hasSunroofBlindFront()) return false; + if (hasSunroofBlindFront()) { + if (!getSunroofBlindFront() + .equals(other.getSunroofBlindFront())) return false; + } + if (hasSunroofBlindRear() != other.hasSunroofBlindRear()) return false; + if (hasSunroofBlindRear()) { + if (!getSunroofBlindRear() + .equals(other.getSunroofBlindRear())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + if (hasSunroof()) { + hash = (37 * hash) + SUNROOF_FIELD_NUMBER; + hash = (53 * hash) + getSunroof().hashCode(); + } + if (hasSunroofBlindFront()) { + hash = (37 * hash) + SUNROOF_BLIND_FRONT_FIELD_NUMBER; + hash = (53 * hash) + getSunroofBlindFront().hashCode(); + } + if (hasSunroofBlindRear()) { + hash = (37 * hash) + SUNROOF_BLIND_REAR_FIELD_NUMBER; + hash = (53 * hash) + getSunroofBlindRear().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SunroofMove} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SunroofMove) + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMoveOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofMove_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofMove_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.class, com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getSunroofFieldBuilder(); + getSunroofBlindFrontFieldBuilder(); + getSunroofBlindRearFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + sunroof_ = null; + if (sunroofBuilder_ != null) { + sunroofBuilder_.dispose(); + sunroofBuilder_ = null; + } + sunroofBlindFront_ = null; + if (sunroofBlindFrontBuilder_ != null) { + sunroofBlindFrontBuilder_.dispose(); + sunroofBlindFrontBuilder_ = null; + } + sunroofBlindRear_ = null; + if (sunroofBlindRearBuilder_ != null) { + sunroofBlindRearBuilder_.dispose(); + sunroofBlindRearBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SunroofMove_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove build() { + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove result = new com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.sunroof_ = sunroofBuilder_ == null + ? sunroof_ + : sunroofBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.sunroofBlindFront_ = sunroofBlindFrontBuilder_ == null + ? sunroofBlindFront_ + : sunroofBlindFrontBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.sunroofBlindRear_ = sunroofBlindRearBuilder_ == null + ? sunroofBlindRear_ + : sunroofBlindRearBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasSunroof()) { + mergeSunroof(other.getSunroof()); + } + if (other.hasSunroofBlindFront()) { + mergeSunroofBlindFront(other.getSunroofBlindFront()); + } + if (other.hasSunroofBlindRear()) { + mergeSunroofBlindRear(other.getSunroofBlindRear()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getSunroofFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + input.readMessage( + getSunroofBlindFrontFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + input.readMessage( + getSunroofBlindRearFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private com.google.protobuf.Int32Value sunroof_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> sunroofBuilder_; + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + * @return Whether the sunroof field is set. + */ + public boolean hasSunroof() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + * @return The sunroof. + */ + public com.google.protobuf.Int32Value getSunroof() { + if (sunroofBuilder_ == null) { + return sunroof_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroof_; + } else { + return sunroofBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + public Builder setSunroof(com.google.protobuf.Int32Value value) { + if (sunroofBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sunroof_ = value; + } else { + sunroofBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + public Builder setSunroof( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (sunroofBuilder_ == null) { + sunroof_ = builderForValue.build(); + } else { + sunroofBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + public Builder mergeSunroof(com.google.protobuf.Int32Value value) { + if (sunroofBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + sunroof_ != null && + sunroof_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getSunroofBuilder().mergeFrom(value); + } else { + sunroof_ = value; + } + } else { + sunroofBuilder_.mergeFrom(value); + } + if (sunroof_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + public Builder clearSunroof() { + bitField0_ = (bitField0_ & ~0x00000002); + sunroof_ = null; + if (sunroofBuilder_ != null) { + sunroofBuilder_.dispose(); + sunroofBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + public com.google.protobuf.Int32Value.Builder getSunroofBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getSunroofFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getSunroofOrBuilder() { + if (sunroofBuilder_ != null) { + return sunroofBuilder_.getMessageOrBuilder(); + } else { + return sunroof_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : sunroof_; + } + } + /** + * .google.protobuf.Int32Value sunroof = 2 [json_name = "sunroof"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getSunroofFieldBuilder() { + if (sunroofBuilder_ == null) { + sunroofBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getSunroof(), + getParentForChildren(), + isClean()); + sunroof_ = null; + } + return sunroofBuilder_; + } + + private com.google.protobuf.Int32Value sunroofBlindFront_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> sunroofBlindFrontBuilder_; + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + * @return Whether the sunroofBlindFront field is set. + */ + public boolean hasSunroofBlindFront() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + * @return The sunroofBlindFront. + */ + public com.google.protobuf.Int32Value getSunroofBlindFront() { + if (sunroofBlindFrontBuilder_ == null) { + return sunroofBlindFront_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroofBlindFront_; + } else { + return sunroofBlindFrontBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + public Builder setSunroofBlindFront(com.google.protobuf.Int32Value value) { + if (sunroofBlindFrontBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sunroofBlindFront_ = value; + } else { + sunroofBlindFrontBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + public Builder setSunroofBlindFront( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (sunroofBlindFrontBuilder_ == null) { + sunroofBlindFront_ = builderForValue.build(); + } else { + sunroofBlindFrontBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + public Builder mergeSunroofBlindFront(com.google.protobuf.Int32Value value) { + if (sunroofBlindFrontBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && + sunroofBlindFront_ != null && + sunroofBlindFront_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getSunroofBlindFrontBuilder().mergeFrom(value); + } else { + sunroofBlindFront_ = value; + } + } else { + sunroofBlindFrontBuilder_.mergeFrom(value); + } + if (sunroofBlindFront_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + public Builder clearSunroofBlindFront() { + bitField0_ = (bitField0_ & ~0x00000004); + sunroofBlindFront_ = null; + if (sunroofBlindFrontBuilder_ != null) { + sunroofBlindFrontBuilder_.dispose(); + sunroofBlindFrontBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + public com.google.protobuf.Int32Value.Builder getSunroofBlindFrontBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getSunroofBlindFrontFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getSunroofBlindFrontOrBuilder() { + if (sunroofBlindFrontBuilder_ != null) { + return sunroofBlindFrontBuilder_.getMessageOrBuilder(); + } else { + return sunroofBlindFront_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : sunroofBlindFront_; + } + } + /** + * .google.protobuf.Int32Value sunroof_blind_front = 3 [json_name = "sunroofblindfront"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getSunroofBlindFrontFieldBuilder() { + if (sunroofBlindFrontBuilder_ == null) { + sunroofBlindFrontBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getSunroofBlindFront(), + getParentForChildren(), + isClean()); + sunroofBlindFront_ = null; + } + return sunroofBlindFrontBuilder_; + } + + private com.google.protobuf.Int32Value sunroofBlindRear_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> sunroofBlindRearBuilder_; + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + * @return Whether the sunroofBlindRear field is set. + */ + public boolean hasSunroofBlindRear() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + * @return The sunroofBlindRear. + */ + public com.google.protobuf.Int32Value getSunroofBlindRear() { + if (sunroofBlindRearBuilder_ == null) { + return sunroofBlindRear_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : sunroofBlindRear_; + } else { + return sunroofBlindRearBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + public Builder setSunroofBlindRear(com.google.protobuf.Int32Value value) { + if (sunroofBlindRearBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + sunroofBlindRear_ = value; + } else { + sunroofBlindRearBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + public Builder setSunroofBlindRear( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (sunroofBlindRearBuilder_ == null) { + sunroofBlindRear_ = builderForValue.build(); + } else { + sunroofBlindRearBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + public Builder mergeSunroofBlindRear(com.google.protobuf.Int32Value value) { + if (sunroofBlindRearBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && + sunroofBlindRear_ != null && + sunroofBlindRear_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getSunroofBlindRearBuilder().mergeFrom(value); + } else { + sunroofBlindRear_ = value; + } + } else { + sunroofBlindRearBuilder_.mergeFrom(value); + } + if (sunroofBlindRear_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + public Builder clearSunroofBlindRear() { + bitField0_ = (bitField0_ & ~0x00000008); + sunroofBlindRear_ = null; + if (sunroofBlindRearBuilder_ != null) { + sunroofBlindRearBuilder_.dispose(); + sunroofBlindRearBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + public com.google.protobuf.Int32Value.Builder getSunroofBlindRearBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getSunroofBlindRearFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getSunroofBlindRearOrBuilder() { + if (sunroofBlindRearBuilder_ != null) { + return sunroofBlindRearBuilder_.getMessageOrBuilder(); + } else { + return sunroofBlindRear_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : sunroofBlindRear_; + } + } + /** + * .google.protobuf.Int32Value sunroof_blind_rear = 4 [json_name = "sunroofblindrear"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getSunroofBlindRearFieldBuilder() { + if (sunroofBlindRearBuilder_ == null) { + sunroofBlindRearBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getSunroofBlindRear(), + getParentForChildren(), + isClean()); + sunroofBlindRear_ = null; + } + return sunroofBlindRearBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.SunroofMove) + } + + // @@protoc_insertion_point(class_scope:proto.SunroofMove) + private static final com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SunroofMove parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SunroofMove getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WindowsOpenOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WindowsOpen) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + } + /** + * Protobuf type {@code proto.WindowsOpen} + */ + public static final class WindowsOpen extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WindowsOpen) + WindowsOpenOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WindowsOpen.class.getName()); + } + // Use WindowsOpen.newBuilder() to construct. + private WindowsOpen(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WindowsOpen() { + pin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsOpen_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsOpen_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.class, com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.Builder.class); + } + + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen other = (com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WindowsOpen} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WindowsOpen) + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpenOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsOpen_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsOpen_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.class, com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsOpen_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen build() { + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen result = new com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.WindowsOpen) + } + + // @@protoc_insertion_point(class_scope:proto.WindowsOpen) + private static final com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WindowsOpen parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WindowsCloseOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WindowsClose) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.WindowsClose} + */ + public static final class WindowsClose extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WindowsClose) + WindowsCloseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WindowsClose.class.getName()); + } + // Use WindowsClose.newBuilder() to construct. + private WindowsClose(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WindowsClose() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsClose_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsClose_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.class, com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose other = (com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WindowsClose} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WindowsClose) + com.daimler.mbcarkit.proto.VehicleCommands.WindowsCloseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsClose_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsClose_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.class, com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsClose_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose build() { + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose result = new com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.WindowsClose) + } + + // @@protoc_insertion_point(class_scope:proto.WindowsClose) + private static final com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WindowsClose parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WindowsVentilateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WindowsVentilate) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + } + /** + * Protobuf type {@code proto.WindowsVentilate} + */ + public static final class WindowsVentilate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WindowsVentilate) + WindowsVentilateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WindowsVentilate.class.getName()); + } + // Use WindowsVentilate.newBuilder() to construct. + private WindowsVentilate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WindowsVentilate() { + pin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsVentilate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsVentilate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.class, com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.Builder.class); + } + + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate other = (com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WindowsVentilate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WindowsVentilate) + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsVentilate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsVentilate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.class, com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsVentilate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate build() { + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate result = new com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.WindowsVentilate) + } + + // @@protoc_insertion_point(class_scope:proto.WindowsVentilate) + private static final com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WindowsVentilate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WindowsMoveOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WindowsMove) + com.google.protobuf.MessageOrBuilder { + + /** + * string pin = 1; + * @return The pin. + */ + java.lang.String getPin(); + /** + * string pin = 1; + * @return The bytes for pin. + */ + com.google.protobuf.ByteString + getPinBytes(); + + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + * @return Whether the frontLeft field is set. + */ + boolean hasFrontLeft(); + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + * @return The frontLeft. + */ + com.google.protobuf.Int32Value getFrontLeft(); + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + com.google.protobuf.Int32ValueOrBuilder getFrontLeftOrBuilder(); + + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + * @return Whether the frontRight field is set. + */ + boolean hasFrontRight(); + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + * @return The frontRight. + */ + com.google.protobuf.Int32Value getFrontRight(); + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + com.google.protobuf.Int32ValueOrBuilder getFrontRightOrBuilder(); + + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + * @return Whether the rearBlind field is set. + */ + boolean hasRearBlind(); + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + * @return The rearBlind. + */ + com.google.protobuf.Int32Value getRearBlind(); + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + com.google.protobuf.Int32ValueOrBuilder getRearBlindOrBuilder(); + + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + * @return Whether the rearLeft field is set. + */ + boolean hasRearLeft(); + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + * @return The rearLeft. + */ + com.google.protobuf.Int32Value getRearLeft(); + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + com.google.protobuf.Int32ValueOrBuilder getRearLeftOrBuilder(); + + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + * @return Whether the rearLeftBlind field is set. + */ + boolean hasRearLeftBlind(); + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + * @return The rearLeftBlind. + */ + com.google.protobuf.Int32Value getRearLeftBlind(); + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + com.google.protobuf.Int32ValueOrBuilder getRearLeftBlindOrBuilder(); + + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + * @return Whether the rearRight field is set. + */ + boolean hasRearRight(); + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + * @return The rearRight. + */ + com.google.protobuf.Int32Value getRearRight(); + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + com.google.protobuf.Int32ValueOrBuilder getRearRightOrBuilder(); + + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + * @return Whether the rearRightBlind field is set. + */ + boolean hasRearRightBlind(); + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + * @return The rearRightBlind. + */ + com.google.protobuf.Int32Value getRearRightBlind(); + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + com.google.protobuf.Int32ValueOrBuilder getRearRightBlindOrBuilder(); + } + /** + * Protobuf type {@code proto.WindowsMove} + */ + public static final class WindowsMove extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WindowsMove) + WindowsMoveOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WindowsMove.class.getName()); + } + // Use WindowsMove.newBuilder() to construct. + private WindowsMove(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WindowsMove() { + pin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsMove_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsMove_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.class, com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.Builder.class); + } + + private int bitField0_; + public static final int PIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + @java.lang.Override + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FRONT_LEFT_FIELD_NUMBER = 2; + private com.google.protobuf.Int32Value frontLeft_; + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + * @return Whether the frontLeft field is set. + */ + @java.lang.Override + public boolean hasFrontLeft() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + * @return The frontLeft. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getFrontLeft() { + return frontLeft_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : frontLeft_; + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getFrontLeftOrBuilder() { + return frontLeft_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : frontLeft_; + } + + public static final int FRONT_RIGHT_FIELD_NUMBER = 3; + private com.google.protobuf.Int32Value frontRight_; + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + * @return Whether the frontRight field is set. + */ + @java.lang.Override + public boolean hasFrontRight() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + * @return The frontRight. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getFrontRight() { + return frontRight_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : frontRight_; + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getFrontRightOrBuilder() { + return frontRight_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : frontRight_; + } + + public static final int REAR_BLIND_FIELD_NUMBER = 4; + private com.google.protobuf.Int32Value rearBlind_; + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + * @return Whether the rearBlind field is set. + */ + @java.lang.Override + public boolean hasRearBlind() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + * @return The rearBlind. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getRearBlind() { + return rearBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearBlind_; + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getRearBlindOrBuilder() { + return rearBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearBlind_; + } + + public static final int REAR_LEFT_FIELD_NUMBER = 5; + private com.google.protobuf.Int32Value rearLeft_; + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + * @return Whether the rearLeft field is set. + */ + @java.lang.Override + public boolean hasRearLeft() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + * @return The rearLeft. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getRearLeft() { + return rearLeft_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearLeft_; + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getRearLeftOrBuilder() { + return rearLeft_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearLeft_; + } + + public static final int REAR_LEFT_BLIND_FIELD_NUMBER = 6; + private com.google.protobuf.Int32Value rearLeftBlind_; + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + * @return Whether the rearLeftBlind field is set. + */ + @java.lang.Override + public boolean hasRearLeftBlind() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + * @return The rearLeftBlind. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getRearLeftBlind() { + return rearLeftBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearLeftBlind_; + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getRearLeftBlindOrBuilder() { + return rearLeftBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearLeftBlind_; + } + + public static final int REAR_RIGHT_FIELD_NUMBER = 7; + private com.google.protobuf.Int32Value rearRight_; + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + * @return Whether the rearRight field is set. + */ + @java.lang.Override + public boolean hasRearRight() { + return ((bitField0_ & 0x00000020) != 0); + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + * @return The rearRight. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getRearRight() { + return rearRight_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearRight_; + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getRearRightOrBuilder() { + return rearRight_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearRight_; + } + + public static final int REAR_RIGHT_BLIND_FIELD_NUMBER = 8; + private com.google.protobuf.Int32Value rearRightBlind_; + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + * @return Whether the rearRightBlind field is set. + */ + @java.lang.Override + public boolean hasRearRightBlind() { + return ((bitField0_ & 0x00000040) != 0); + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + * @return The rearRightBlind. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getRearRightBlind() { + return rearRightBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearRightBlind_; + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getRearRightBlindOrBuilder() { + return rearRightBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearRightBlind_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, pin_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(2, getFrontLeft()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(3, getFrontRight()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(4, getRearBlind()); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeMessage(5, getRearLeft()); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeMessage(6, getRearLeftBlind()); + } + if (((bitField0_ & 0x00000020) != 0)) { + output.writeMessage(7, getRearRight()); + } + if (((bitField0_ & 0x00000040) != 0)) { + output.writeMessage(8, getRearRightBlind()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(pin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, pin_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getFrontLeft()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getFrontRight()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getRearBlind()); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getRearLeft()); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, getRearLeftBlind()); + } + if (((bitField0_ & 0x00000020) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getRearRight()); + } + if (((bitField0_ & 0x00000040) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(8, getRearRightBlind()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove other = (com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) obj; + + if (!getPin() + .equals(other.getPin())) return false; + if (hasFrontLeft() != other.hasFrontLeft()) return false; + if (hasFrontLeft()) { + if (!getFrontLeft() + .equals(other.getFrontLeft())) return false; + } + if (hasFrontRight() != other.hasFrontRight()) return false; + if (hasFrontRight()) { + if (!getFrontRight() + .equals(other.getFrontRight())) return false; + } + if (hasRearBlind() != other.hasRearBlind()) return false; + if (hasRearBlind()) { + if (!getRearBlind() + .equals(other.getRearBlind())) return false; + } + if (hasRearLeft() != other.hasRearLeft()) return false; + if (hasRearLeft()) { + if (!getRearLeft() + .equals(other.getRearLeft())) return false; + } + if (hasRearLeftBlind() != other.hasRearLeftBlind()) return false; + if (hasRearLeftBlind()) { + if (!getRearLeftBlind() + .equals(other.getRearLeftBlind())) return false; + } + if (hasRearRight() != other.hasRearRight()) return false; + if (hasRearRight()) { + if (!getRearRight() + .equals(other.getRearRight())) return false; + } + if (hasRearRightBlind() != other.hasRearRightBlind()) return false; + if (hasRearRightBlind()) { + if (!getRearRightBlind() + .equals(other.getRearRightBlind())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PIN_FIELD_NUMBER; + hash = (53 * hash) + getPin().hashCode(); + if (hasFrontLeft()) { + hash = (37 * hash) + FRONT_LEFT_FIELD_NUMBER; + hash = (53 * hash) + getFrontLeft().hashCode(); + } + if (hasFrontRight()) { + hash = (37 * hash) + FRONT_RIGHT_FIELD_NUMBER; + hash = (53 * hash) + getFrontRight().hashCode(); + } + if (hasRearBlind()) { + hash = (37 * hash) + REAR_BLIND_FIELD_NUMBER; + hash = (53 * hash) + getRearBlind().hashCode(); + } + if (hasRearLeft()) { + hash = (37 * hash) + REAR_LEFT_FIELD_NUMBER; + hash = (53 * hash) + getRearLeft().hashCode(); + } + if (hasRearLeftBlind()) { + hash = (37 * hash) + REAR_LEFT_BLIND_FIELD_NUMBER; + hash = (53 * hash) + getRearLeftBlind().hashCode(); + } + if (hasRearRight()) { + hash = (37 * hash) + REAR_RIGHT_FIELD_NUMBER; + hash = (53 * hash) + getRearRight().hashCode(); + } + if (hasRearRightBlind()) { + hash = (37 * hash) + REAR_RIGHT_BLIND_FIELD_NUMBER; + hash = (53 * hash) + getRearRightBlind().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WindowsMove} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WindowsMove) + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMoveOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsMove_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsMove_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.class, com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getFrontLeftFieldBuilder(); + getFrontRightFieldBuilder(); + getRearBlindFieldBuilder(); + getRearLeftFieldBuilder(); + getRearLeftBlindFieldBuilder(); + getRearRightFieldBuilder(); + getRearRightBlindFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pin_ = ""; + frontLeft_ = null; + if (frontLeftBuilder_ != null) { + frontLeftBuilder_.dispose(); + frontLeftBuilder_ = null; + } + frontRight_ = null; + if (frontRightBuilder_ != null) { + frontRightBuilder_.dispose(); + frontRightBuilder_ = null; + } + rearBlind_ = null; + if (rearBlindBuilder_ != null) { + rearBlindBuilder_.dispose(); + rearBlindBuilder_ = null; + } + rearLeft_ = null; + if (rearLeftBuilder_ != null) { + rearLeftBuilder_.dispose(); + rearLeftBuilder_ = null; + } + rearLeftBlind_ = null; + if (rearLeftBlindBuilder_ != null) { + rearLeftBlindBuilder_.dispose(); + rearLeftBlindBuilder_ = null; + } + rearRight_ = null; + if (rearRightBuilder_ != null) { + rearRightBuilder_.dispose(); + rearRightBuilder_ = null; + } + rearRightBlind_ = null; + if (rearRightBlindBuilder_ != null) { + rearRightBlindBuilder_.dispose(); + rearRightBlindBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WindowsMove_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove build() { + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove result = new com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pin_ = pin_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.frontLeft_ = frontLeftBuilder_ == null + ? frontLeft_ + : frontLeftBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.frontRight_ = frontRightBuilder_ == null + ? frontRight_ + : frontRightBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.rearBlind_ = rearBlindBuilder_ == null + ? rearBlind_ + : rearBlindBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.rearLeft_ = rearLeftBuilder_ == null + ? rearLeft_ + : rearLeftBuilder_.build(); + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.rearLeftBlind_ = rearLeftBlindBuilder_ == null + ? rearLeftBlind_ + : rearLeftBlindBuilder_.build(); + to_bitField0_ |= 0x00000010; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.rearRight_ = rearRightBuilder_ == null + ? rearRight_ + : rearRightBuilder_.build(); + to_bitField0_ |= 0x00000020; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.rearRightBlind_ = rearRightBlindBuilder_ == null + ? rearRightBlind_ + : rearRightBlindBuilder_.build(); + to_bitField0_ |= 0x00000040; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove.getDefaultInstance()) return this; + if (!other.getPin().isEmpty()) { + pin_ = other.pin_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasFrontLeft()) { + mergeFrontLeft(other.getFrontLeft()); + } + if (other.hasFrontRight()) { + mergeFrontRight(other.getFrontRight()); + } + if (other.hasRearBlind()) { + mergeRearBlind(other.getRearBlind()); + } + if (other.hasRearLeft()) { + mergeRearLeft(other.getRearLeft()); + } + if (other.hasRearLeftBlind()) { + mergeRearLeftBlind(other.getRearLeftBlind()); + } + if (other.hasRearRight()) { + mergeRearRight(other.getRearRight()); + } + if (other.hasRearRightBlind()) { + mergeRearRightBlind(other.getRearRightBlind()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + pin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getFrontLeftFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + input.readMessage( + getFrontRightFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + input.readMessage( + getRearBlindFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: { + input.readMessage( + getRearLeftFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 50: { + input.readMessage( + getRearLeftBlindFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 50 + case 58: { + input.readMessage( + getRearRightFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000040; + break; + } // case 58 + case 66: { + input.readMessage( + getRearRightBlindFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000080; + break; + } // case 66 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object pin_ = ""; + /** + * string pin = 1; + * @return The pin. + */ + public java.lang.String getPin() { + java.lang.Object ref = pin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string pin = 1; + * @return The bytes for pin. + */ + public com.google.protobuf.ByteString + getPinBytes() { + java.lang.Object ref = pin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string pin = 1; + * @param value The pin to set. + * @return This builder for chaining. + */ + public Builder setPin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string pin = 1; + * @return This builder for chaining. + */ + public Builder clearPin() { + pin_ = getDefaultInstance().getPin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string pin = 1; + * @param value The bytes for pin to set. + * @return This builder for chaining. + */ + public Builder setPinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private com.google.protobuf.Int32Value frontLeft_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> frontLeftBuilder_; + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + * @return Whether the frontLeft field is set. + */ + public boolean hasFrontLeft() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + * @return The frontLeft. + */ + public com.google.protobuf.Int32Value getFrontLeft() { + if (frontLeftBuilder_ == null) { + return frontLeft_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : frontLeft_; + } else { + return frontLeftBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + public Builder setFrontLeft(com.google.protobuf.Int32Value value) { + if (frontLeftBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + frontLeft_ = value; + } else { + frontLeftBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + public Builder setFrontLeft( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (frontLeftBuilder_ == null) { + frontLeft_ = builderForValue.build(); + } else { + frontLeftBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + public Builder mergeFrontLeft(com.google.protobuf.Int32Value value) { + if (frontLeftBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + frontLeft_ != null && + frontLeft_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getFrontLeftBuilder().mergeFrom(value); + } else { + frontLeft_ = value; + } + } else { + frontLeftBuilder_.mergeFrom(value); + } + if (frontLeft_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + public Builder clearFrontLeft() { + bitField0_ = (bitField0_ & ~0x00000002); + frontLeft_ = null; + if (frontLeftBuilder_ != null) { + frontLeftBuilder_.dispose(); + frontLeftBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + public com.google.protobuf.Int32Value.Builder getFrontLeftBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getFrontLeftFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getFrontLeftOrBuilder() { + if (frontLeftBuilder_ != null) { + return frontLeftBuilder_.getMessageOrBuilder(); + } else { + return frontLeft_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : frontLeft_; + } + } + /** + * .google.protobuf.Int32Value front_left = 2 [json_name = "windowfrontleft"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getFrontLeftFieldBuilder() { + if (frontLeftBuilder_ == null) { + frontLeftBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getFrontLeft(), + getParentForChildren(), + isClean()); + frontLeft_ = null; + } + return frontLeftBuilder_; + } + + private com.google.protobuf.Int32Value frontRight_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> frontRightBuilder_; + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + * @return Whether the frontRight field is set. + */ + public boolean hasFrontRight() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + * @return The frontRight. + */ + public com.google.protobuf.Int32Value getFrontRight() { + if (frontRightBuilder_ == null) { + return frontRight_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : frontRight_; + } else { + return frontRightBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + public Builder setFrontRight(com.google.protobuf.Int32Value value) { + if (frontRightBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + frontRight_ = value; + } else { + frontRightBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + public Builder setFrontRight( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (frontRightBuilder_ == null) { + frontRight_ = builderForValue.build(); + } else { + frontRightBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + public Builder mergeFrontRight(com.google.protobuf.Int32Value value) { + if (frontRightBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && + frontRight_ != null && + frontRight_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getFrontRightBuilder().mergeFrom(value); + } else { + frontRight_ = value; + } + } else { + frontRightBuilder_.mergeFrom(value); + } + if (frontRight_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + public Builder clearFrontRight() { + bitField0_ = (bitField0_ & ~0x00000004); + frontRight_ = null; + if (frontRightBuilder_ != null) { + frontRightBuilder_.dispose(); + frontRightBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + public com.google.protobuf.Int32Value.Builder getFrontRightBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getFrontRightFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getFrontRightOrBuilder() { + if (frontRightBuilder_ != null) { + return frontRightBuilder_.getMessageOrBuilder(); + } else { + return frontRight_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : frontRight_; + } + } + /** + * .google.protobuf.Int32Value front_right = 3 [json_name = "windowfrontright"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getFrontRightFieldBuilder() { + if (frontRightBuilder_ == null) { + frontRightBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getFrontRight(), + getParentForChildren(), + isClean()); + frontRight_ = null; + } + return frontRightBuilder_; + } + + private com.google.protobuf.Int32Value rearBlind_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> rearBlindBuilder_; + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + * @return Whether the rearBlind field is set. + */ + public boolean hasRearBlind() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + * @return The rearBlind. + */ + public com.google.protobuf.Int32Value getRearBlind() { + if (rearBlindBuilder_ == null) { + return rearBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearBlind_; + } else { + return rearBlindBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + public Builder setRearBlind(com.google.protobuf.Int32Value value) { + if (rearBlindBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rearBlind_ = value; + } else { + rearBlindBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + public Builder setRearBlind( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (rearBlindBuilder_ == null) { + rearBlind_ = builderForValue.build(); + } else { + rearBlindBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + public Builder mergeRearBlind(com.google.protobuf.Int32Value value) { + if (rearBlindBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && + rearBlind_ != null && + rearBlind_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getRearBlindBuilder().mergeFrom(value); + } else { + rearBlind_ = value; + } + } else { + rearBlindBuilder_.mergeFrom(value); + } + if (rearBlind_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + public Builder clearRearBlind() { + bitField0_ = (bitField0_ & ~0x00000008); + rearBlind_ = null; + if (rearBlindBuilder_ != null) { + rearBlindBuilder_.dispose(); + rearBlindBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + public com.google.protobuf.Int32Value.Builder getRearBlindBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getRearBlindFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getRearBlindOrBuilder() { + if (rearBlindBuilder_ != null) { + return rearBlindBuilder_.getMessageOrBuilder(); + } else { + return rearBlind_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : rearBlind_; + } + } + /** + * .google.protobuf.Int32Value rear_blind = 4 [json_name = "windowrearblind"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getRearBlindFieldBuilder() { + if (rearBlindBuilder_ == null) { + rearBlindBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getRearBlind(), + getParentForChildren(), + isClean()); + rearBlind_ = null; + } + return rearBlindBuilder_; + } + + private com.google.protobuf.Int32Value rearLeft_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> rearLeftBuilder_; + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + * @return Whether the rearLeft field is set. + */ + public boolean hasRearLeft() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + * @return The rearLeft. + */ + public com.google.protobuf.Int32Value getRearLeft() { + if (rearLeftBuilder_ == null) { + return rearLeft_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearLeft_; + } else { + return rearLeftBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + public Builder setRearLeft(com.google.protobuf.Int32Value value) { + if (rearLeftBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rearLeft_ = value; + } else { + rearLeftBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + public Builder setRearLeft( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (rearLeftBuilder_ == null) { + rearLeft_ = builderForValue.build(); + } else { + rearLeftBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + public Builder mergeRearLeft(com.google.protobuf.Int32Value value) { + if (rearLeftBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + rearLeft_ != null && + rearLeft_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getRearLeftBuilder().mergeFrom(value); + } else { + rearLeft_ = value; + } + } else { + rearLeftBuilder_.mergeFrom(value); + } + if (rearLeft_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + public Builder clearRearLeft() { + bitField0_ = (bitField0_ & ~0x00000010); + rearLeft_ = null; + if (rearLeftBuilder_ != null) { + rearLeftBuilder_.dispose(); + rearLeftBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + public com.google.protobuf.Int32Value.Builder getRearLeftBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getRearLeftFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getRearLeftOrBuilder() { + if (rearLeftBuilder_ != null) { + return rearLeftBuilder_.getMessageOrBuilder(); + } else { + return rearLeft_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : rearLeft_; + } + } + /** + * .google.protobuf.Int32Value rear_left = 5 [json_name = "windowrearleft"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getRearLeftFieldBuilder() { + if (rearLeftBuilder_ == null) { + rearLeftBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getRearLeft(), + getParentForChildren(), + isClean()); + rearLeft_ = null; + } + return rearLeftBuilder_; + } + + private com.google.protobuf.Int32Value rearLeftBlind_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> rearLeftBlindBuilder_; + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + * @return Whether the rearLeftBlind field is set. + */ + public boolean hasRearLeftBlind() { + return ((bitField0_ & 0x00000020) != 0); + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + * @return The rearLeftBlind. + */ + public com.google.protobuf.Int32Value getRearLeftBlind() { + if (rearLeftBlindBuilder_ == null) { + return rearLeftBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearLeftBlind_; + } else { + return rearLeftBlindBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + public Builder setRearLeftBlind(com.google.protobuf.Int32Value value) { + if (rearLeftBlindBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rearLeftBlind_ = value; + } else { + rearLeftBlindBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + public Builder setRearLeftBlind( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (rearLeftBlindBuilder_ == null) { + rearLeftBlind_ = builderForValue.build(); + } else { + rearLeftBlindBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + public Builder mergeRearLeftBlind(com.google.protobuf.Int32Value value) { + if (rearLeftBlindBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) && + rearLeftBlind_ != null && + rearLeftBlind_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getRearLeftBlindBuilder().mergeFrom(value); + } else { + rearLeftBlind_ = value; + } + } else { + rearLeftBlindBuilder_.mergeFrom(value); + } + if (rearLeftBlind_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + public Builder clearRearLeftBlind() { + bitField0_ = (bitField0_ & ~0x00000020); + rearLeftBlind_ = null; + if (rearLeftBlindBuilder_ != null) { + rearLeftBlindBuilder_.dispose(); + rearLeftBlindBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + public com.google.protobuf.Int32Value.Builder getRearLeftBlindBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getRearLeftBlindFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getRearLeftBlindOrBuilder() { + if (rearLeftBlindBuilder_ != null) { + return rearLeftBlindBuilder_.getMessageOrBuilder(); + } else { + return rearLeftBlind_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : rearLeftBlind_; + } + } + /** + * .google.protobuf.Int32Value rear_left_blind = 6 [json_name = "windowrearleftblind"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getRearLeftBlindFieldBuilder() { + if (rearLeftBlindBuilder_ == null) { + rearLeftBlindBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getRearLeftBlind(), + getParentForChildren(), + isClean()); + rearLeftBlind_ = null; + } + return rearLeftBlindBuilder_; + } + + private com.google.protobuf.Int32Value rearRight_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> rearRightBuilder_; + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + * @return Whether the rearRight field is set. + */ + public boolean hasRearRight() { + return ((bitField0_ & 0x00000040) != 0); + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + * @return The rearRight. + */ + public com.google.protobuf.Int32Value getRearRight() { + if (rearRightBuilder_ == null) { + return rearRight_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearRight_; + } else { + return rearRightBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + public Builder setRearRight(com.google.protobuf.Int32Value value) { + if (rearRightBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rearRight_ = value; + } else { + rearRightBuilder_.setMessage(value); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + public Builder setRearRight( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (rearRightBuilder_ == null) { + rearRight_ = builderForValue.build(); + } else { + rearRightBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + public Builder mergeRearRight(com.google.protobuf.Int32Value value) { + if (rearRightBuilder_ == null) { + if (((bitField0_ & 0x00000040) != 0) && + rearRight_ != null && + rearRight_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getRearRightBuilder().mergeFrom(value); + } else { + rearRight_ = value; + } + } else { + rearRightBuilder_.mergeFrom(value); + } + if (rearRight_ != null) { + bitField0_ |= 0x00000040; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + public Builder clearRearRight() { + bitField0_ = (bitField0_ & ~0x00000040); + rearRight_ = null; + if (rearRightBuilder_ != null) { + rearRightBuilder_.dispose(); + rearRightBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + public com.google.protobuf.Int32Value.Builder getRearRightBuilder() { + bitField0_ |= 0x00000040; + onChanged(); + return getRearRightFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getRearRightOrBuilder() { + if (rearRightBuilder_ != null) { + return rearRightBuilder_.getMessageOrBuilder(); + } else { + return rearRight_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : rearRight_; + } + } + /** + * .google.protobuf.Int32Value rear_right = 7 [json_name = "windowrearright"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getRearRightFieldBuilder() { + if (rearRightBuilder_ == null) { + rearRightBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getRearRight(), + getParentForChildren(), + isClean()); + rearRight_ = null; + } + return rearRightBuilder_; + } + + private com.google.protobuf.Int32Value rearRightBlind_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> rearRightBlindBuilder_; + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + * @return Whether the rearRightBlind field is set. + */ + public boolean hasRearRightBlind() { + return ((bitField0_ & 0x00000080) != 0); + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + * @return The rearRightBlind. + */ + public com.google.protobuf.Int32Value getRearRightBlind() { + if (rearRightBlindBuilder_ == null) { + return rearRightBlind_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : rearRightBlind_; + } else { + return rearRightBlindBuilder_.getMessage(); + } + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + public Builder setRearRightBlind(com.google.protobuf.Int32Value value) { + if (rearRightBlindBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + rearRightBlind_ = value; + } else { + rearRightBlindBuilder_.setMessage(value); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + public Builder setRearRightBlind( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (rearRightBlindBuilder_ == null) { + rearRightBlind_ = builderForValue.build(); + } else { + rearRightBlindBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + public Builder mergeRearRightBlind(com.google.protobuf.Int32Value value) { + if (rearRightBlindBuilder_ == null) { + if (((bitField0_ & 0x00000080) != 0) && + rearRightBlind_ != null && + rearRightBlind_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getRearRightBlindBuilder().mergeFrom(value); + } else { + rearRightBlind_ = value; + } + } else { + rearRightBlindBuilder_.mergeFrom(value); + } + if (rearRightBlind_ != null) { + bitField0_ |= 0x00000080; + onChanged(); + } + return this; + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + public Builder clearRearRightBlind() { + bitField0_ = (bitField0_ & ~0x00000080); + rearRightBlind_ = null; + if (rearRightBlindBuilder_ != null) { + rearRightBlindBuilder_.dispose(); + rearRightBlindBuilder_ = null; + } + onChanged(); + return this; + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + public com.google.protobuf.Int32Value.Builder getRearRightBlindBuilder() { + bitField0_ |= 0x00000080; + onChanged(); + return getRearRightBlindFieldBuilder().getBuilder(); + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getRearRightBlindOrBuilder() { + if (rearRightBlindBuilder_ != null) { + return rearRightBlindBuilder_.getMessageOrBuilder(); + } else { + return rearRightBlind_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : rearRightBlind_; + } + } + /** + * .google.protobuf.Int32Value rear_right_blind = 8 [json_name = "windowrearrightblind"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getRearRightBlindFieldBuilder() { + if (rearRightBlindBuilder_ == null) { + rearRightBlindBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getRearRightBlind(), + getParentForChildren(), + isClean()); + rearRightBlind_ = null; + } + return rearRightBlindBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.WindowsMove) + } + + // @@protoc_insertion_point(class_scope:proto.WindowsMove) + private static final com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WindowsMove parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WindowsMove getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SpeedalertStartOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SpeedalertStart) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 threshold = 1 [json_name = "speedAlertThreshold"]; + * @return The threshold. + */ + int getThreshold(); + + /** + * int64 alert_end_time = 2 [json_name = "speedAlertEndTime"]; + * @return The alertEndTime. + */ + long getAlertEndTime(); + } + /** + * Protobuf type {@code proto.SpeedalertStart} + */ + public static final class SpeedalertStart extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SpeedalertStart) + SpeedalertStartOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SpeedalertStart.class.getName()); + } + // Use SpeedalertStart.newBuilder() to construct. + private SpeedalertStart(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SpeedalertStart() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.class, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.Builder.class); + } + + public static final int THRESHOLD_FIELD_NUMBER = 1; + private int threshold_ = 0; + /** + * int32 threshold = 1 [json_name = "speedAlertThreshold"]; + * @return The threshold. + */ + @java.lang.Override + public int getThreshold() { + return threshold_; + } + + public static final int ALERT_END_TIME_FIELD_NUMBER = 2; + private long alertEndTime_ = 0L; + /** + * int64 alert_end_time = 2 [json_name = "speedAlertEndTime"]; + * @return The alertEndTime. + */ + @java.lang.Override + public long getAlertEndTime() { + return alertEndTime_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (threshold_ != 0) { + output.writeInt32(1, threshold_); + } + if (alertEndTime_ != 0L) { + output.writeInt64(2, alertEndTime_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (threshold_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, threshold_); + } + if (alertEndTime_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, alertEndTime_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart other = (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) obj; + + if (getThreshold() + != other.getThreshold()) return false; + if (getAlertEndTime() + != other.getAlertEndTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + THRESHOLD_FIELD_NUMBER; + hash = (53 * hash) + getThreshold(); + hash = (37 * hash) + ALERT_END_TIME_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getAlertEndTime()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SpeedalertStart} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SpeedalertStart) + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStartOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.class, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + threshold_ = 0; + alertEndTime_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStart_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart build() { + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart result = new com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.threshold_ = threshold_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.alertEndTime_ = alertEndTime_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart.getDefaultInstance()) return this; + if (other.getThreshold() != 0) { + setThreshold(other.getThreshold()); + } + if (other.getAlertEndTime() != 0L) { + setAlertEndTime(other.getAlertEndTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + threshold_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + alertEndTime_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int threshold_ ; + /** + * int32 threshold = 1 [json_name = "speedAlertThreshold"]; + * @return The threshold. + */ + @java.lang.Override + public int getThreshold() { + return threshold_; + } + /** + * int32 threshold = 1 [json_name = "speedAlertThreshold"]; + * @param value The threshold to set. + * @return This builder for chaining. + */ + public Builder setThreshold(int value) { + + threshold_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 threshold = 1 [json_name = "speedAlertThreshold"]; + * @return This builder for chaining. + */ + public Builder clearThreshold() { + bitField0_ = (bitField0_ & ~0x00000001); + threshold_ = 0; + onChanged(); + return this; + } + + private long alertEndTime_ ; + /** + * int64 alert_end_time = 2 [json_name = "speedAlertEndTime"]; + * @return The alertEndTime. + */ + @java.lang.Override + public long getAlertEndTime() { + return alertEndTime_; + } + /** + * int64 alert_end_time = 2 [json_name = "speedAlertEndTime"]; + * @param value The alertEndTime to set. + * @return This builder for chaining. + */ + public Builder setAlertEndTime(long value) { + + alertEndTime_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int64 alert_end_time = 2 [json_name = "speedAlertEndTime"]; + * @return This builder for chaining. + */ + public Builder clearAlertEndTime() { + bitField0_ = (bitField0_ & ~0x00000002); + alertEndTime_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SpeedalertStart) + } + + // @@protoc_insertion_point(class_scope:proto.SpeedalertStart) + private static final com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SpeedalertStart parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStart getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SpeedalertStopOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SpeedalertStop) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.SpeedalertStop} + */ + public static final class SpeedalertStop extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SpeedalertStop) + SpeedalertStopOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SpeedalertStop.class.getName()); + } + // Use SpeedalertStop.newBuilder() to construct. + private SpeedalertStop(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SpeedalertStop() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.class, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop other = (com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SpeedalertStop} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SpeedalertStop) + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStopOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.class, com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SpeedalertStop_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop build() { + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop result = new com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SpeedalertStop) + } + + // @@protoc_insertion_point(class_scope:proto.SpeedalertStop) + private static final com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SpeedalertStop parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SpeedalertStop getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ZEVPreconditioningStartOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ZEVPreconditioningStart) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 departure_time = 1 [json_name = "departuretime"]; + * @return The departureTime. + */ + int getDepartureTime(); + + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The type. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType getType(); + } + /** + * Protobuf type {@code proto.ZEVPreconditioningStart} + */ + public static final class ZEVPreconditioningStart extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ZEVPreconditioningStart) + ZEVPreconditioningStartOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ZEVPreconditioningStart.class.getName()); + } + // Use ZEVPreconditioningStart.newBuilder() to construct. + private ZEVPreconditioningStart(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ZEVPreconditioningStart() { + type_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.class, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.Builder.class); + } + + public static final int DEPARTURE_TIME_FIELD_NUMBER = 1; + private int departureTime_ = 0; + /** + * int32 departure_time = 1 [json_name = "departuretime"]; + * @return The departureTime. + */ + @java.lang.Override + public int getDepartureTime() { + return departureTime_; + } + + public static final int TYPE_FIELD_NUMBER = 2; + private int type_ = 0; + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The type. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType getType() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType result = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (departureTime_ != 0) { + output.writeInt32(1, departureTime_); + } + if (type_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.unknown_zev_preconditioning_command_type.getNumber()) { + output.writeEnum(2, type_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (departureTime_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, departureTime_); + } + if (type_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.unknown_zev_preconditioning_command_type.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, type_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart other = (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) obj; + + if (getDepartureTime() + != other.getDepartureTime()) return false; + if (type_ != other.type_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DEPARTURE_TIME_FIELD_NUMBER; + hash = (53 * hash) + getDepartureTime(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ZEVPreconditioningStart} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ZEVPreconditioningStart) + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStartOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.class, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + departureTime_ = 0; + type_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStart_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart build() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart result = new com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.departureTime_ = departureTime_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.type_ = type_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart.getDefaultInstance()) return this; + if (other.getDepartureTime() != 0) { + setDepartureTime(other.getDepartureTime()); + } + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + departureTime_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + type_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int departureTime_ ; + /** + * int32 departure_time = 1 [json_name = "departuretime"]; + * @return The departureTime. + */ + @java.lang.Override + public int getDepartureTime() { + return departureTime_; + } + /** + * int32 departure_time = 1 [json_name = "departuretime"]; + * @param value The departureTime to set. + * @return This builder for chaining. + */ + public Builder setDepartureTime(int value) { + + departureTime_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 departure_time = 1 [json_name = "departuretime"]; + * @return This builder for chaining. + */ + public Builder clearDepartureTime() { + bitField0_ = (bitField0_ & ~0x00000001); + departureTime_ = 0; + onChanged(); + return this; + } + + private int type_ = 0; + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @param value The enum numeric value on the wire for type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + type_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The type. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType getType() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType result = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.UNRECOGNIZED : result; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + type_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000002); + type_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ZEVPreconditioningStart) + } + + // @@protoc_insertion_point(class_scope:proto.ZEVPreconditioningStart) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ZEVPreconditioningStart parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ZEVPreconditioningStopOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ZEVPreconditioningStop) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The type. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType getType(); + } + /** + * Protobuf type {@code proto.ZEVPreconditioningStop} + */ + public static final class ZEVPreconditioningStop extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ZEVPreconditioningStop) + ZEVPreconditioningStopOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ZEVPreconditioningStop.class.getName()); + } + // Use ZEVPreconditioningStop.newBuilder() to construct. + private ZEVPreconditioningStop(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ZEVPreconditioningStop() { + type_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.class, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.Builder.class); + } + + public static final int TYPE_FIELD_NUMBER = 2; + private int type_ = 0; + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The type. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType getType() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType result = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (type_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.unknown_zev_preconditioning_command_type.getNumber()) { + output.writeEnum(2, type_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (type_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.unknown_zev_preconditioning_command_type.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, type_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop other = (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) obj; + + if (type_ != other.type_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ZEVPreconditioningStop} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ZEVPreconditioningStop) + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStopOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.class, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + type_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningStop_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop build() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop result = new com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.type_ = type_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop.getDefaultInstance()) return this; + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 16: { + type_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int type_ = 0; + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @param value The enum numeric value on the wire for type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + type_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return The type. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType getType() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType result = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType.UNRECOGNIZED : result; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + type_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ZEVPreconditioningType type = 2 [json_name = "type"]; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000001); + type_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ZEVPreconditioningStop) + } + + // @@protoc_insertion_point(class_scope:proto.ZEVPreconditioningStop) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ZEVPreconditioningStop parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ZEVPreconditioningConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ZEVPreconditioningConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @return The enum numeric value on the wire for departureTimeMode. + */ + int getDepartureTimeModeValue(); + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @return The departureTimeMode. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode getDepartureTimeMode(); + + /** + * int32 departure_time = 3 [json_name = "departuretime"]; + * @return The departureTime. + */ + int getDepartureTime(); + } + /** + *
+   * Configure preconditioning
+   * 
+ * + * Protobuf type {@code proto.ZEVPreconditioningConfigure} + */ + public static final class ZEVPreconditioningConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ZEVPreconditioningConfigure) + ZEVPreconditioningConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ZEVPreconditioningConfigure.class.getName()); + } + // Use ZEVPreconditioningConfigure.newBuilder() to construct. + private ZEVPreconditioningConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ZEVPreconditioningConfigure() { + departureTimeMode_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.Builder.class); + } + + /** + * Protobuf enum {@code proto.ZEVPreconditioningConfigure.DepartureTimeMode} + */ + public enum DepartureTimeMode + implements com.google.protobuf.ProtocolMessageEnum { + /** + * DISABLED = 0; + */ + DISABLED(0), + /** + * SINGLE_DEPARTURE = 1; + */ + SINGLE_DEPARTURE(1), + /** + * WEEKLY_DEPARTURE = 2; + */ + WEEKLY_DEPARTURE(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + DepartureTimeMode.class.getName()); + } + /** + * DISABLED = 0; + */ + public static final int DISABLED_VALUE = 0; + /** + * SINGLE_DEPARTURE = 1; + */ + public static final int SINGLE_DEPARTURE_VALUE = 1; + /** + * WEEKLY_DEPARTURE = 2; + */ + public static final int WEEKLY_DEPARTURE_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DepartureTimeMode valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static DepartureTimeMode forNumber(int value) { + switch (value) { + case 0: return DISABLED; + case 1: return SINGLE_DEPARTURE; + case 2: return WEEKLY_DEPARTURE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + DepartureTimeMode> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public DepartureTimeMode findValueByNumber(int number) { + return DepartureTimeMode.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDescriptor().getEnumTypes().get(0); + } + + private static final DepartureTimeMode[] VALUES = values(); + + public static DepartureTimeMode valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private DepartureTimeMode(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.ZEVPreconditioningConfigure.DepartureTimeMode) + } + + public static final int DEPARTURE_TIME_MODE_FIELD_NUMBER = 1; + private int departureTimeMode_ = 0; + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @return The enum numeric value on the wire for departureTimeMode. + */ + @java.lang.Override public int getDepartureTimeModeValue() { + return departureTimeMode_; + } + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @return The departureTimeMode. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode getDepartureTimeMode() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode result = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode.forNumber(departureTimeMode_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode.UNRECOGNIZED : result; + } + + public static final int DEPARTURE_TIME_FIELD_NUMBER = 3; + private int departureTime_ = 0; + /** + * int32 departure_time = 3 [json_name = "departuretime"]; + * @return The departureTime. + */ + @java.lang.Override + public int getDepartureTime() { + return departureTime_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (departureTimeMode_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode.DISABLED.getNumber()) { + output.writeEnum(1, departureTimeMode_); + } + if (departureTime_ != 0) { + output.writeInt32(3, departureTime_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (departureTimeMode_ != com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode.DISABLED.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, departureTimeMode_); + } + if (departureTime_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, departureTime_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) obj; + + if (departureTimeMode_ != other.departureTimeMode_) return false; + if (getDepartureTime() + != other.getDepartureTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DEPARTURE_TIME_MODE_FIELD_NUMBER; + hash = (53 * hash) + departureTimeMode_; + hash = (37 * hash) + DEPARTURE_TIME_FIELD_NUMBER; + hash = (53 * hash) + getDepartureTime(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Configure preconditioning
+     * 
+ * + * Protobuf type {@code proto.ZEVPreconditioningConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ZEVPreconditioningConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + departureTimeMode_ = 0; + departureTime_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.departureTimeMode_ = departureTimeMode_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.departureTime_ = departureTime_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.getDefaultInstance()) return this; + if (other.departureTimeMode_ != 0) { + setDepartureTimeModeValue(other.getDepartureTimeModeValue()); + } + if (other.getDepartureTime() != 0) { + setDepartureTime(other.getDepartureTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + departureTimeMode_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 24: { + departureTime_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int departureTimeMode_ = 0; + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @return The enum numeric value on the wire for departureTimeMode. + */ + @java.lang.Override public int getDepartureTimeModeValue() { + return departureTimeMode_; + } + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @param value The enum numeric value on the wire for departureTimeMode to set. + * @return This builder for chaining. + */ + public Builder setDepartureTimeModeValue(int value) { + departureTimeMode_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @return The departureTimeMode. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode getDepartureTimeMode() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode result = com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode.forNumber(departureTimeMode_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode.UNRECOGNIZED : result; + } + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @param value The departureTimeMode to set. + * @return This builder for chaining. + */ + public Builder setDepartureTimeMode(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure.DepartureTimeMode value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + departureTimeMode_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ZEVPreconditioningConfigure.DepartureTimeMode departure_time_mode = 1 [json_name = "departureTimeMode"]; + * @return This builder for chaining. + */ + public Builder clearDepartureTimeMode() { + bitField0_ = (bitField0_ & ~0x00000001); + departureTimeMode_ = 0; + onChanged(); + return this; + } + + private int departureTime_ ; + /** + * int32 departure_time = 3 [json_name = "departuretime"]; + * @return The departureTime. + */ + @java.lang.Override + public int getDepartureTime() { + return departureTime_; + } + /** + * int32 departure_time = 3 [json_name = "departuretime"]; + * @param value The departureTime to set. + * @return This builder for chaining. + */ + public Builder setDepartureTime(int value) { + + departureTime_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int32 departure_time = 3 [json_name = "departuretime"]; + * @return This builder for chaining. + */ + public Builder clearDepartureTime() { + bitField0_ = (bitField0_ & ~0x00000002); + departureTime_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ZEVPreconditioningConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.ZEVPreconditioningConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ZEVPreconditioningConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ZEVPreconditioningConfigureSeatsOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ZEVPreconditioningConfigureSeats) + com.google.protobuf.MessageOrBuilder { + + /** + * bool front_left = 1 [json_name = "precondSeatFrontLeft"]; + * @return The frontLeft. + */ + boolean getFrontLeft(); + + /** + * bool front_right = 2 [json_name = "precondSeatFrontRight"]; + * @return The frontRight. + */ + boolean getFrontRight(); + + /** + * bool rear_left = 3 [json_name = "precondSeatRearLeft"]; + * @return The rearLeft. + */ + boolean getRearLeft(); + + /** + * bool rear_right = 4 [json_name = "precondSeatRearRight"]; + * @return The rearRight. + */ + boolean getRearRight(); + } + /** + *
+   * Configure which seats should be preconditioned.
+   * Currently, the only available options are to precondition all seats or only the front-left seat
+   * 
+ * + * Protobuf type {@code proto.ZEVPreconditioningConfigureSeats} + */ + public static final class ZEVPreconditioningConfigureSeats extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ZEVPreconditioningConfigureSeats) + ZEVPreconditioningConfigureSeatsOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ZEVPreconditioningConfigureSeats.class.getName()); + } + // Use ZEVPreconditioningConfigureSeats.newBuilder() to construct. + private ZEVPreconditioningConfigureSeats(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ZEVPreconditioningConfigureSeats() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigureSeats_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigureSeats_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.class, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.Builder.class); + } + + public static final int FRONT_LEFT_FIELD_NUMBER = 1; + private boolean frontLeft_ = false; + /** + * bool front_left = 1 [json_name = "precondSeatFrontLeft"]; + * @return The frontLeft. + */ + @java.lang.Override + public boolean getFrontLeft() { + return frontLeft_; + } + + public static final int FRONT_RIGHT_FIELD_NUMBER = 2; + private boolean frontRight_ = false; + /** + * bool front_right = 2 [json_name = "precondSeatFrontRight"]; + * @return The frontRight. + */ + @java.lang.Override + public boolean getFrontRight() { + return frontRight_; + } + + public static final int REAR_LEFT_FIELD_NUMBER = 3; + private boolean rearLeft_ = false; + /** + * bool rear_left = 3 [json_name = "precondSeatRearLeft"]; + * @return The rearLeft. + */ + @java.lang.Override + public boolean getRearLeft() { + return rearLeft_; + } + + public static final int REAR_RIGHT_FIELD_NUMBER = 4; + private boolean rearRight_ = false; + /** + * bool rear_right = 4 [json_name = "precondSeatRearRight"]; + * @return The rearRight. + */ + @java.lang.Override + public boolean getRearRight() { + return rearRight_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (frontLeft_ != false) { + output.writeBool(1, frontLeft_); + } + if (frontRight_ != false) { + output.writeBool(2, frontRight_); + } + if (rearLeft_ != false) { + output.writeBool(3, rearLeft_); + } + if (rearRight_ != false) { + output.writeBool(4, rearRight_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (frontLeft_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, frontLeft_); + } + if (frontRight_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, frontRight_); + } + if (rearLeft_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, rearLeft_); + } + if (rearRight_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(4, rearRight_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats other = (com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) obj; + + if (getFrontLeft() + != other.getFrontLeft()) return false; + if (getFrontRight() + != other.getFrontRight()) return false; + if (getRearLeft() + != other.getRearLeft()) return false; + if (getRearRight() + != other.getRearRight()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + FRONT_LEFT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getFrontLeft()); + hash = (37 * hash) + FRONT_RIGHT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getFrontRight()); + hash = (37 * hash) + REAR_LEFT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getRearLeft()); + hash = (37 * hash) + REAR_RIGHT_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getRearRight()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Configure which seats should be preconditioned.
+     * Currently, the only available options are to precondition all seats or only the front-left seat
+     * 
+ * + * Protobuf type {@code proto.ZEVPreconditioningConfigureSeats} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ZEVPreconditioningConfigureSeats) + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeatsOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigureSeats_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigureSeats_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.class, com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + frontLeft_ = false; + frontRight_ = false; + rearLeft_ = false; + rearRight_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ZEVPreconditioningConfigureSeats_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats build() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats result = new com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.frontLeft_ = frontLeft_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.frontRight_ = frontRight_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.rearLeft_ = rearLeft_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.rearRight_ = rearRight_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.getDefaultInstance()) return this; + if (other.getFrontLeft() != false) { + setFrontLeft(other.getFrontLeft()); + } + if (other.getFrontRight() != false) { + setFrontRight(other.getFrontRight()); + } + if (other.getRearLeft() != false) { + setRearLeft(other.getRearLeft()); + } + if (other.getRearRight() != false) { + setRearRight(other.getRearRight()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + frontLeft_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + frontRight_ = input.readBool(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + rearLeft_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + rearRight_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } // case 32 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean frontLeft_ ; + /** + * bool front_left = 1 [json_name = "precondSeatFrontLeft"]; + * @return The frontLeft. + */ + @java.lang.Override + public boolean getFrontLeft() { + return frontLeft_; + } + /** + * bool front_left = 1 [json_name = "precondSeatFrontLeft"]; + * @param value The frontLeft to set. + * @return This builder for chaining. + */ + public Builder setFrontLeft(boolean value) { + + frontLeft_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool front_left = 1 [json_name = "precondSeatFrontLeft"]; + * @return This builder for chaining. + */ + public Builder clearFrontLeft() { + bitField0_ = (bitField0_ & ~0x00000001); + frontLeft_ = false; + onChanged(); + return this; + } + + private boolean frontRight_ ; + /** + * bool front_right = 2 [json_name = "precondSeatFrontRight"]; + * @return The frontRight. + */ + @java.lang.Override + public boolean getFrontRight() { + return frontRight_; + } + /** + * bool front_right = 2 [json_name = "precondSeatFrontRight"]; + * @param value The frontRight to set. + * @return This builder for chaining. + */ + public Builder setFrontRight(boolean value) { + + frontRight_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * bool front_right = 2 [json_name = "precondSeatFrontRight"]; + * @return This builder for chaining. + */ + public Builder clearFrontRight() { + bitField0_ = (bitField0_ & ~0x00000002); + frontRight_ = false; + onChanged(); + return this; + } + + private boolean rearLeft_ ; + /** + * bool rear_left = 3 [json_name = "precondSeatRearLeft"]; + * @return The rearLeft. + */ + @java.lang.Override + public boolean getRearLeft() { + return rearLeft_; + } + /** + * bool rear_left = 3 [json_name = "precondSeatRearLeft"]; + * @param value The rearLeft to set. + * @return This builder for chaining. + */ + public Builder setRearLeft(boolean value) { + + rearLeft_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bool rear_left = 3 [json_name = "precondSeatRearLeft"]; + * @return This builder for chaining. + */ + public Builder clearRearLeft() { + bitField0_ = (bitField0_ & ~0x00000004); + rearLeft_ = false; + onChanged(); + return this; + } + + private boolean rearRight_ ; + /** + * bool rear_right = 4 [json_name = "precondSeatRearRight"]; + * @return The rearRight. + */ + @java.lang.Override + public boolean getRearRight() { + return rearRight_; + } + /** + * bool rear_right = 4 [json_name = "precondSeatRearRight"]; + * @param value The rearRight to set. + * @return This builder for chaining. + */ + public Builder setRearRight(boolean value) { + + rearRight_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * bool rear_right = 4 [json_name = "precondSeatRearRight"]; + * @return This builder for chaining. + */ + public Builder clearRearRight() { + bitField0_ = (bitField0_ & ~0x00000008); + rearRight_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ZEVPreconditioningConfigureSeats) + } + + // @@protoc_insertion_point(class_scope:proto.ZEVPreconditioningConfigureSeats) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ZEVPreconditioningConfigureSeats parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface BatteryChargeProgramConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.BatteryChargeProgramConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + int getChargeProgramValue(); + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram getChargeProgram(); + } + /** + *
+   * Configure the charge program
+   * 
+ * + * Protobuf type {@code proto.BatteryChargeProgramConfigure} + */ + public static final class BatteryChargeProgramConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.BatteryChargeProgramConfigure) + BatteryChargeProgramConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + BatteryChargeProgramConfigure.class.getName()); + } + // Use BatteryChargeProgramConfigure.newBuilder() to construct. + private BatteryChargeProgramConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private BatteryChargeProgramConfigure() { + chargeProgram_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryChargeProgramConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryChargeProgramConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.Builder.class); + } + + /** + * Protobuf enum {@code proto.BatteryChargeProgramConfigure.ChargeProgram} + */ + public enum ChargeProgram + implements com.google.protobuf.ProtocolMessageEnum { + /** + * DEFAULT = 0; + */ + DEFAULT(0), + /** + * INSTANT = 1; + */ + INSTANT(1), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeProgram.class.getName()); + } + /** + * DEFAULT = 0; + */ + public static final int DEFAULT_VALUE = 0; + /** + * INSTANT = 1; + */ + public static final int INSTANT_VALUE = 1; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ChargeProgram valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ChargeProgram forNumber(int value) { + switch (value) { + case 0: return DEFAULT; + case 1: return INSTANT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ChargeProgram> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ChargeProgram findValueByNumber(int number) { + return ChargeProgram.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDescriptor().getEnumTypes().get(0); + } + + private static final ChargeProgram[] VALUES = values(); + + public static ChargeProgram valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ChargeProgram(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.BatteryChargeProgramConfigure.ChargeProgram) + } + + public static final int CHARGE_PROGRAM_FIELD_NUMBER = 1; + private int chargeProgram_ = 0; + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + @java.lang.Override public int getChargeProgramValue() { + return chargeProgram_; + } + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram getChargeProgram() { + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram result = com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram.forNumber(chargeProgram_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (chargeProgram_ != com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram.DEFAULT.getNumber()) { + output.writeEnum(1, chargeProgram_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (chargeProgram_ != com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram.DEFAULT.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, chargeProgram_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) obj; + + if (chargeProgram_ != other.chargeProgram_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CHARGE_PROGRAM_FIELD_NUMBER; + hash = (53 * hash) + chargeProgram_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Configure the charge program
+     * 
+ * + * Protobuf type {@code proto.BatteryChargeProgramConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.BatteryChargeProgramConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryChargeProgramConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryChargeProgramConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + chargeProgram_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryChargeProgramConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.chargeProgram_ = chargeProgram_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.getDefaultInstance()) return this; + if (other.chargeProgram_ != 0) { + setChargeProgramValue(other.getChargeProgramValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + chargeProgram_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int chargeProgram_ = 0; + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + @java.lang.Override public int getChargeProgramValue() { + return chargeProgram_; + } + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @param value The enum numeric value on the wire for chargeProgram to set. + * @return This builder for chaining. + */ + public Builder setChargeProgramValue(int value) { + chargeProgram_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram getChargeProgram() { + com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram result = com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram.forNumber(chargeProgram_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram.UNRECOGNIZED : result; + } + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @param value The chargeProgram to set. + * @return This builder for chaining. + */ + public Builder setChargeProgram(com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure.ChargeProgram value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + chargeProgram_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.BatteryChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return This builder for chaining. + */ + public Builder clearChargeProgram() { + bitField0_ = (bitField0_ & ~0x00000001); + chargeProgram_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.BatteryChargeProgramConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.BatteryChargeProgramConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BatteryChargeProgramConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryChargeProgramConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface BatteryMaxSocConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.BatteryMaxSocConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * 
+ * + * int32 max_soc = 1 [json_name = "maxsoc"]; + * @return The maxSoc. + */ + int getMaxSoc(); + } + /** + *
+   * Configure the maximum value for the state of charge of the HV battery
+   * 
+ * + * Protobuf type {@code proto.BatteryMaxSocConfigure} + */ + public static final class BatteryMaxSocConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.BatteryMaxSocConfigure) + BatteryMaxSocConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + BatteryMaxSocConfigure.class.getName()); + } + // Use BatteryMaxSocConfigure.newBuilder() to construct. + private BatteryMaxSocConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private BatteryMaxSocConfigure() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryMaxSocConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryMaxSocConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.Builder.class); + } + + public static final int MAX_SOC_FIELD_NUMBER = 1; + private int maxSoc_ = 0; + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * 
+ * + * int32 max_soc = 1 [json_name = "maxsoc"]; + * @return The maxSoc. + */ + @java.lang.Override + public int getMaxSoc() { + return maxSoc_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (maxSoc_ != 0) { + output.writeInt32(1, maxSoc_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (maxSoc_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, maxSoc_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) obj; + + if (getMaxSoc() + != other.getMaxSoc()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MAX_SOC_FIELD_NUMBER; + hash = (53 * hash) + getMaxSoc(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Configure the maximum value for the state of charge of the HV battery
+     * 
+ * + * Protobuf type {@code proto.BatteryMaxSocConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.BatteryMaxSocConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryMaxSocConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryMaxSocConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + maxSoc_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_BatteryMaxSocConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.maxSoc_ = maxSoc_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure.getDefaultInstance()) return this; + if (other.getMaxSoc() != 0) { + setMaxSoc(other.getMaxSoc()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + maxSoc_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int maxSoc_ ; + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * 
+ * + * int32 max_soc = 1 [json_name = "maxsoc"]; + * @return The maxSoc. + */ + @java.lang.Override + public int getMaxSoc() { + return maxSoc_; + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * 
+ * + * int32 max_soc = 1 [json_name = "maxsoc"]; + * @param value The maxSoc to set. + * @return This builder for chaining. + */ + public Builder setMaxSoc(int value) { + + maxSoc_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * 
+ * + * int32 max_soc = 1 [json_name = "maxsoc"]; + * @return This builder for chaining. + */ + public Builder clearMaxSoc() { + bitField0_ = (bitField0_ & ~0x00000001); + maxSoc_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.BatteryMaxSocConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.BatteryMaxSocConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public BatteryMaxSocConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.BatteryMaxSocConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeProgramConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeProgramConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + int getChargeProgramValue(); + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram getChargeProgram(); + + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * Maximum value for the state of charge of the HV battery [in %].
+     * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+     * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + * @return Whether the maxSoc field is set. + */ + boolean hasMaxSoc(); + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * Maximum value for the state of charge of the HV battery [in %].
+     * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+     * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + * @return The maxSoc. + */ + com.google.protobuf.Int32Value getMaxSoc(); + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * Maximum value for the state of charge of the HV battery [in %].
+     * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+     * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + com.google.protobuf.Int32ValueOrBuilder getMaxSocOrBuilder(); + + /** + *
+     * unlock the plug after charging is finished
+     * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+     * true - unlock automatically, false - do not unlock automatically
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + * @return Whether the autoUnlock field is set. + */ + boolean hasAutoUnlock(); + /** + *
+     * unlock the plug after charging is finished
+     * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+     * true - unlock automatically, false - do not unlock automatically
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + * @return The autoUnlock. + */ + com.google.protobuf.BoolValue getAutoUnlock(); + /** + *
+     * unlock the plug after charging is finished
+     * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+     * true - unlock automatically, false - do not unlock automatically
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + com.google.protobuf.BoolValueOrBuilder getAutoUnlockOrBuilder(); + + /** + *
+     * automatically switch between home and work program, based on the location of the car
+     * Denotes whether location based charging should be used.
+     * true - use location based charging, false - do not use location based charging
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return Whether the locationBasedCharging field is set. + */ + boolean hasLocationBasedCharging(); + /** + *
+     * automatically switch between home and work program, based on the location of the car
+     * Denotes whether location based charging should be used.
+     * true - use location based charging, false - do not use location based charging
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return The locationBasedCharging. + */ + com.google.protobuf.BoolValue getLocationBasedCharging(); + /** + *
+     * automatically switch between home and work program, based on the location of the car
+     * Denotes whether location based charging should be used.
+     * true - use location based charging, false - do not use location based charging
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + com.google.protobuf.BoolValueOrBuilder getLocationBasedChargingOrBuilder(); + + /** + *
+     * enable or disable clocktimer
+     * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + * @return Whether the clockTimer field is set. + */ + boolean hasClockTimer(); + /** + *
+     * enable or disable clocktimer
+     * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + * @return The clockTimer. + */ + com.google.protobuf.BoolValue getClockTimer(); + /** + *
+     * enable or disable clocktimer
+     * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + com.google.protobuf.BoolValueOrBuilder getClockTimerOrBuilder(); + + /** + *
+     * enable or disable ecocharging
+     * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + * @return Whether the ecoCharging field is set. + */ + boolean hasEcoCharging(); + /** + *
+     * enable or disable ecocharging
+     * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + * @return The ecoCharging. + */ + com.google.protobuf.BoolValue getEcoCharging(); + /** + *
+     * enable or disable ecocharging
+     * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + com.google.protobuf.BoolValueOrBuilder getEcoChargingOrBuilder(); + } + /** + *
+   * Select the given charge program and enables the consumer to configure it.
+   * 
+ * + * Protobuf type {@code proto.ChargeProgramConfigure} + */ + public static final class ChargeProgramConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeProgramConfigure) + ChargeProgramConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeProgramConfigure.class.getName()); + } + // Use ChargeProgramConfigure.newBuilder() to construct. + private ChargeProgramConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeProgramConfigure() { + chargeProgram_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeProgramConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeProgramConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.Builder.class); + } + + /** + * Protobuf enum {@code proto.ChargeProgramConfigure.ChargeProgram} + */ + public enum ChargeProgram + implements com.google.protobuf.ProtocolMessageEnum { + /** + * DEFAULT_CHARGE_PROGRAM = 0; + */ + DEFAULT_CHARGE_PROGRAM(0), + /** + *
+       * Instant charge program should not be used
+       * INSTANT_CHARGE_PROGRAM = 1;
+       * 
+ * + * HOME_CHARGE_PROGRAM = 2; + */ + HOME_CHARGE_PROGRAM(2), + /** + * WORK_CHARGE_PROGRAM = 3; + */ + WORK_CHARGE_PROGRAM(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeProgram.class.getName()); + } + /** + * DEFAULT_CHARGE_PROGRAM = 0; + */ + public static final int DEFAULT_CHARGE_PROGRAM_VALUE = 0; + /** + *
+       * Instant charge program should not be used
+       * INSTANT_CHARGE_PROGRAM = 1;
+       * 
+ * + * HOME_CHARGE_PROGRAM = 2; + */ + public static final int HOME_CHARGE_PROGRAM_VALUE = 2; + /** + * WORK_CHARGE_PROGRAM = 3; + */ + public static final int WORK_CHARGE_PROGRAM_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ChargeProgram valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ChargeProgram forNumber(int value) { + switch (value) { + case 0: return DEFAULT_CHARGE_PROGRAM; + case 2: return HOME_CHARGE_PROGRAM; + case 3: return WORK_CHARGE_PROGRAM; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ChargeProgram> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ChargeProgram findValueByNumber(int number) { + return ChargeProgram.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDescriptor().getEnumTypes().get(0); + } + + private static final ChargeProgram[] VALUES = values(); + + public static ChargeProgram valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ChargeProgram(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.ChargeProgramConfigure.ChargeProgram) + } + + private int bitField0_; + public static final int CHARGE_PROGRAM_FIELD_NUMBER = 1; + private int chargeProgram_ = 0; + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + @java.lang.Override public int getChargeProgramValue() { + return chargeProgram_; + } + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram getChargeProgram() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram result = com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram.forNumber(chargeProgram_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram.UNRECOGNIZED : result; + } + + public static final int MAX_SOC_FIELD_NUMBER = 2; + private com.google.protobuf.Int32Value maxSoc_; + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * Maximum value for the state of charge of the HV battery [in %].
+     * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+     * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + * @return Whether the maxSoc field is set. + */ + @java.lang.Override + public boolean hasMaxSoc() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * Maximum value for the state of charge of the HV battery [in %].
+     * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+     * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + * @return The maxSoc. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getMaxSoc() { + return maxSoc_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : maxSoc_; + } + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * Maximum value for the state of charge of the HV battery [in %].
+     * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+     * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getMaxSocOrBuilder() { + return maxSoc_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : maxSoc_; + } + + public static final int AUTO_UNLOCK_FIELD_NUMBER = 3; + private com.google.protobuf.BoolValue autoUnlock_; + /** + *
+     * unlock the plug after charging is finished
+     * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+     * true - unlock automatically, false - do not unlock automatically
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + * @return Whether the autoUnlock field is set. + */ + @java.lang.Override + public boolean hasAutoUnlock() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+     * unlock the plug after charging is finished
+     * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+     * true - unlock automatically, false - do not unlock automatically
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + * @return The autoUnlock. + */ + @java.lang.Override + public com.google.protobuf.BoolValue getAutoUnlock() { + return autoUnlock_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : autoUnlock_; + } + /** + *
+     * unlock the plug after charging is finished
+     * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+     * true - unlock automatically, false - do not unlock automatically
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + @java.lang.Override + public com.google.protobuf.BoolValueOrBuilder getAutoUnlockOrBuilder() { + return autoUnlock_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : autoUnlock_; + } + + public static final int LOCATION_BASED_CHARGING_FIELD_NUMBER = 4; + private com.google.protobuf.BoolValue locationBasedCharging_; + /** + *
+     * automatically switch between home and work program, based on the location of the car
+     * Denotes whether location based charging should be used.
+     * true - use location based charging, false - do not use location based charging
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return Whether the locationBasedCharging field is set. + */ + @java.lang.Override + public boolean hasLocationBasedCharging() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+     * automatically switch between home and work program, based on the location of the car
+     * Denotes whether location based charging should be used.
+     * true - use location based charging, false - do not use location based charging
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return The locationBasedCharging. + */ + @java.lang.Override + public com.google.protobuf.BoolValue getLocationBasedCharging() { + return locationBasedCharging_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : locationBasedCharging_; + } + /** + *
+     * automatically switch between home and work program, based on the location of the car
+     * Denotes whether location based charging should be used.
+     * true - use location based charging, false - do not use location based charging
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + @java.lang.Override + public com.google.protobuf.BoolValueOrBuilder getLocationBasedChargingOrBuilder() { + return locationBasedCharging_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : locationBasedCharging_; + } + + public static final int CLOCK_TIMER_FIELD_NUMBER = 6; + private com.google.protobuf.BoolValue clockTimer_; + /** + *
+     * enable or disable clocktimer
+     * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + * @return Whether the clockTimer field is set. + */ + @java.lang.Override + public boolean hasClockTimer() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + *
+     * enable or disable clocktimer
+     * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + * @return The clockTimer. + */ + @java.lang.Override + public com.google.protobuf.BoolValue getClockTimer() { + return clockTimer_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : clockTimer_; + } + /** + *
+     * enable or disable clocktimer
+     * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + @java.lang.Override + public com.google.protobuf.BoolValueOrBuilder getClockTimerOrBuilder() { + return clockTimer_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : clockTimer_; + } + + public static final int ECO_CHARGING_FIELD_NUMBER = 7; + private com.google.protobuf.BoolValue ecoCharging_; + /** + *
+     * enable or disable ecocharging
+     * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + * @return Whether the ecoCharging field is set. + */ + @java.lang.Override + public boolean hasEcoCharging() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + *
+     * enable or disable ecocharging
+     * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + * @return The ecoCharging. + */ + @java.lang.Override + public com.google.protobuf.BoolValue getEcoCharging() { + return ecoCharging_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : ecoCharging_; + } + /** + *
+     * enable or disable ecocharging
+     * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + @java.lang.Override + public com.google.protobuf.BoolValueOrBuilder getEcoChargingOrBuilder() { + return ecoCharging_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : ecoCharging_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (chargeProgram_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram.DEFAULT_CHARGE_PROGRAM.getNumber()) { + output.writeEnum(1, chargeProgram_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(2, getMaxSoc()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(3, getAutoUnlock()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(4, getLocationBasedCharging()); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeMessage(6, getClockTimer()); + } + if (((bitField0_ & 0x00000010) != 0)) { + output.writeMessage(7, getEcoCharging()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (chargeProgram_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram.DEFAULT_CHARGE_PROGRAM.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, chargeProgram_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getMaxSoc()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getAutoUnlock()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, getLocationBasedCharging()); + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, getClockTimer()); + } + if (((bitField0_ & 0x00000010) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(7, getEcoCharging()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) obj; + + if (chargeProgram_ != other.chargeProgram_) return false; + if (hasMaxSoc() != other.hasMaxSoc()) return false; + if (hasMaxSoc()) { + if (!getMaxSoc() + .equals(other.getMaxSoc())) return false; + } + if (hasAutoUnlock() != other.hasAutoUnlock()) return false; + if (hasAutoUnlock()) { + if (!getAutoUnlock() + .equals(other.getAutoUnlock())) return false; + } + if (hasLocationBasedCharging() != other.hasLocationBasedCharging()) return false; + if (hasLocationBasedCharging()) { + if (!getLocationBasedCharging() + .equals(other.getLocationBasedCharging())) return false; + } + if (hasClockTimer() != other.hasClockTimer()) return false; + if (hasClockTimer()) { + if (!getClockTimer() + .equals(other.getClockTimer())) return false; + } + if (hasEcoCharging() != other.hasEcoCharging()) return false; + if (hasEcoCharging()) { + if (!getEcoCharging() + .equals(other.getEcoCharging())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CHARGE_PROGRAM_FIELD_NUMBER; + hash = (53 * hash) + chargeProgram_; + if (hasMaxSoc()) { + hash = (37 * hash) + MAX_SOC_FIELD_NUMBER; + hash = (53 * hash) + getMaxSoc().hashCode(); + } + if (hasAutoUnlock()) { + hash = (37 * hash) + AUTO_UNLOCK_FIELD_NUMBER; + hash = (53 * hash) + getAutoUnlock().hashCode(); + } + if (hasLocationBasedCharging()) { + hash = (37 * hash) + LOCATION_BASED_CHARGING_FIELD_NUMBER; + hash = (53 * hash) + getLocationBasedCharging().hashCode(); + } + if (hasClockTimer()) { + hash = (37 * hash) + CLOCK_TIMER_FIELD_NUMBER; + hash = (53 * hash) + getClockTimer().hashCode(); + } + if (hasEcoCharging()) { + hash = (37 * hash) + ECO_CHARGING_FIELD_NUMBER; + hash = (53 * hash) + getEcoCharging().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Select the given charge program and enables the consumer to configure it.
+     * 
+ * + * Protobuf type {@code proto.ChargeProgramConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeProgramConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeProgramConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeProgramConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getMaxSocFieldBuilder(); + getAutoUnlockFieldBuilder(); + getLocationBasedChargingFieldBuilder(); + getClockTimerFieldBuilder(); + getEcoChargingFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + chargeProgram_ = 0; + maxSoc_ = null; + if (maxSocBuilder_ != null) { + maxSocBuilder_.dispose(); + maxSocBuilder_ = null; + } + autoUnlock_ = null; + if (autoUnlockBuilder_ != null) { + autoUnlockBuilder_.dispose(); + autoUnlockBuilder_ = null; + } + locationBasedCharging_ = null; + if (locationBasedChargingBuilder_ != null) { + locationBasedChargingBuilder_.dispose(); + locationBasedChargingBuilder_ = null; + } + clockTimer_ = null; + if (clockTimerBuilder_ != null) { + clockTimerBuilder_.dispose(); + clockTimerBuilder_ = null; + } + ecoCharging_ = null; + if (ecoChargingBuilder_ != null) { + ecoChargingBuilder_.dispose(); + ecoChargingBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeProgramConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.chargeProgram_ = chargeProgram_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.maxSoc_ = maxSocBuilder_ == null + ? maxSoc_ + : maxSocBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.autoUnlock_ = autoUnlockBuilder_ == null + ? autoUnlock_ + : autoUnlockBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.locationBasedCharging_ = locationBasedChargingBuilder_ == null + ? locationBasedCharging_ + : locationBasedChargingBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.clockTimer_ = clockTimerBuilder_ == null + ? clockTimer_ + : clockTimerBuilder_.build(); + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.ecoCharging_ = ecoChargingBuilder_ == null + ? ecoCharging_ + : ecoChargingBuilder_.build(); + to_bitField0_ |= 0x00000010; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.getDefaultInstance()) return this; + if (other.chargeProgram_ != 0) { + setChargeProgramValue(other.getChargeProgramValue()); + } + if (other.hasMaxSoc()) { + mergeMaxSoc(other.getMaxSoc()); + } + if (other.hasAutoUnlock()) { + mergeAutoUnlock(other.getAutoUnlock()); + } + if (other.hasLocationBasedCharging()) { + mergeLocationBasedCharging(other.getLocationBasedCharging()); + } + if (other.hasClockTimer()) { + mergeClockTimer(other.getClockTimer()); + } + if (other.hasEcoCharging()) { + mergeEcoCharging(other.getEcoCharging()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + chargeProgram_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + input.readMessage( + getMaxSocFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + input.readMessage( + getAutoUnlockFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + input.readMessage( + getLocationBasedChargingFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 50: { + input.readMessage( + getClockTimerFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 50 + case 58: { + input.readMessage( + getEcoChargingFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000020; + break; + } // case 58 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int chargeProgram_ = 0; + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + @java.lang.Override public int getChargeProgramValue() { + return chargeProgram_; + } + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @param value The enum numeric value on the wire for chargeProgram to set. + * @return This builder for chaining. + */ + public Builder setChargeProgramValue(int value) { + chargeProgram_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram getChargeProgram() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram result = com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram.forNumber(chargeProgram_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram.UNRECOGNIZED : result; + } + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @param value The chargeProgram to set. + * @return This builder for chaining. + */ + public Builder setChargeProgram(com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + chargeProgram_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ChargeProgramConfigure.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return This builder for chaining. + */ + public Builder clearChargeProgram() { + bitField0_ = (bitField0_ & ~0x00000001); + chargeProgram_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Int32Value maxSoc_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> maxSocBuilder_; + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + * @return Whether the maxSoc field is set. + */ + public boolean hasMaxSoc() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + * @return The maxSoc. + */ + public com.google.protobuf.Int32Value getMaxSoc() { + if (maxSocBuilder_ == null) { + return maxSoc_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : maxSoc_; + } else { + return maxSocBuilder_.getMessage(); + } + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + public Builder setMaxSoc(com.google.protobuf.Int32Value value) { + if (maxSocBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + maxSoc_ = value; + } else { + maxSocBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + public Builder setMaxSoc( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (maxSocBuilder_ == null) { + maxSoc_ = builderForValue.build(); + } else { + maxSocBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + public Builder mergeMaxSoc(com.google.protobuf.Int32Value value) { + if (maxSocBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + maxSoc_ != null && + maxSoc_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getMaxSocBuilder().mergeFrom(value); + } else { + maxSoc_ = value; + } + } else { + maxSocBuilder_.mergeFrom(value); + } + if (maxSoc_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + public Builder clearMaxSoc() { + bitField0_ = (bitField0_ & ~0x00000002); + maxSoc_ = null; + if (maxSocBuilder_ != null) { + maxSocBuilder_.dispose(); + maxSocBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + public com.google.protobuf.Int32Value.Builder getMaxSocBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getMaxSocFieldBuilder().getBuilder(); + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getMaxSocOrBuilder() { + if (maxSocBuilder_ != null) { + return maxSocBuilder_.getMessageOrBuilder(); + } else { + return maxSoc_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : maxSoc_; + } + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * .google.protobuf.Int32Value max_soc = 2 [json_name = "maxsoc"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getMaxSocFieldBuilder() { + if (maxSocBuilder_ == null) { + maxSocBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getMaxSoc(), + getParentForChildren(), + isClean()); + maxSoc_ = null; + } + return maxSocBuilder_; + } + + private com.google.protobuf.BoolValue autoUnlock_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> autoUnlockBuilder_; + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + * @return Whether the autoUnlock field is set. + */ + public boolean hasAutoUnlock() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + * @return The autoUnlock. + */ + public com.google.protobuf.BoolValue getAutoUnlock() { + if (autoUnlockBuilder_ == null) { + return autoUnlock_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : autoUnlock_; + } else { + return autoUnlockBuilder_.getMessage(); + } + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + public Builder setAutoUnlock(com.google.protobuf.BoolValue value) { + if (autoUnlockBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + autoUnlock_ = value; + } else { + autoUnlockBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + public Builder setAutoUnlock( + com.google.protobuf.BoolValue.Builder builderForValue) { + if (autoUnlockBuilder_ == null) { + autoUnlock_ = builderForValue.build(); + } else { + autoUnlockBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + public Builder mergeAutoUnlock(com.google.protobuf.BoolValue value) { + if (autoUnlockBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && + autoUnlock_ != null && + autoUnlock_ != com.google.protobuf.BoolValue.getDefaultInstance()) { + getAutoUnlockBuilder().mergeFrom(value); + } else { + autoUnlock_ = value; + } + } else { + autoUnlockBuilder_.mergeFrom(value); + } + if (autoUnlock_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + public Builder clearAutoUnlock() { + bitField0_ = (bitField0_ & ~0x00000004); + autoUnlock_ = null; + if (autoUnlockBuilder_ != null) { + autoUnlockBuilder_.dispose(); + autoUnlockBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + public com.google.protobuf.BoolValue.Builder getAutoUnlockBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getAutoUnlockFieldBuilder().getBuilder(); + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + public com.google.protobuf.BoolValueOrBuilder getAutoUnlockOrBuilder() { + if (autoUnlockBuilder_ != null) { + return autoUnlockBuilder_.getMessageOrBuilder(); + } else { + return autoUnlock_ == null ? + com.google.protobuf.BoolValue.getDefaultInstance() : autoUnlock_; + } + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue auto_unlock = 3 [json_name = "autounlock"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> + getAutoUnlockFieldBuilder() { + if (autoUnlockBuilder_ == null) { + autoUnlockBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( + getAutoUnlock(), + getParentForChildren(), + isClean()); + autoUnlock_ = null; + } + return autoUnlockBuilder_; + } + + private com.google.protobuf.BoolValue locationBasedCharging_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> locationBasedChargingBuilder_; + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return Whether the locationBasedCharging field is set. + */ + public boolean hasLocationBasedCharging() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return The locationBasedCharging. + */ + public com.google.protobuf.BoolValue getLocationBasedCharging() { + if (locationBasedChargingBuilder_ == null) { + return locationBasedCharging_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : locationBasedCharging_; + } else { + return locationBasedChargingBuilder_.getMessage(); + } + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + public Builder setLocationBasedCharging(com.google.protobuf.BoolValue value) { + if (locationBasedChargingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + locationBasedCharging_ = value; + } else { + locationBasedChargingBuilder_.setMessage(value); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + public Builder setLocationBasedCharging( + com.google.protobuf.BoolValue.Builder builderForValue) { + if (locationBasedChargingBuilder_ == null) { + locationBasedCharging_ = builderForValue.build(); + } else { + locationBasedChargingBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + public Builder mergeLocationBasedCharging(com.google.protobuf.BoolValue value) { + if (locationBasedChargingBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0) && + locationBasedCharging_ != null && + locationBasedCharging_ != com.google.protobuf.BoolValue.getDefaultInstance()) { + getLocationBasedChargingBuilder().mergeFrom(value); + } else { + locationBasedCharging_ = value; + } + } else { + locationBasedChargingBuilder_.mergeFrom(value); + } + if (locationBasedCharging_ != null) { + bitField0_ |= 0x00000008; + onChanged(); + } + return this; + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + public Builder clearLocationBasedCharging() { + bitField0_ = (bitField0_ & ~0x00000008); + locationBasedCharging_ = null; + if (locationBasedChargingBuilder_ != null) { + locationBasedChargingBuilder_.dispose(); + locationBasedChargingBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + public com.google.protobuf.BoolValue.Builder getLocationBasedChargingBuilder() { + bitField0_ |= 0x00000008; + onChanged(); + return getLocationBasedChargingFieldBuilder().getBuilder(); + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + public com.google.protobuf.BoolValueOrBuilder getLocationBasedChargingOrBuilder() { + if (locationBasedChargingBuilder_ != null) { + return locationBasedChargingBuilder_.getMessageOrBuilder(); + } else { + return locationBasedCharging_ == null ? + com.google.protobuf.BoolValue.getDefaultInstance() : locationBasedCharging_; + } + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * .google.protobuf.BoolValue location_based_charging = 4 [json_name = "locationbasedcharging"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> + getLocationBasedChargingFieldBuilder() { + if (locationBasedChargingBuilder_ == null) { + locationBasedChargingBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( + getLocationBasedCharging(), + getParentForChildren(), + isClean()); + locationBasedCharging_ = null; + } + return locationBasedChargingBuilder_; + } + + private com.google.protobuf.BoolValue clockTimer_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> clockTimerBuilder_; + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + * @return Whether the clockTimer field is set. + */ + public boolean hasClockTimer() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + * @return The clockTimer. + */ + public com.google.protobuf.BoolValue getClockTimer() { + if (clockTimerBuilder_ == null) { + return clockTimer_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : clockTimer_; + } else { + return clockTimerBuilder_.getMessage(); + } + } + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + public Builder setClockTimer(com.google.protobuf.BoolValue value) { + if (clockTimerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + clockTimer_ = value; + } else { + clockTimerBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + public Builder setClockTimer( + com.google.protobuf.BoolValue.Builder builderForValue) { + if (clockTimerBuilder_ == null) { + clockTimer_ = builderForValue.build(); + } else { + clockTimerBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + public Builder mergeClockTimer(com.google.protobuf.BoolValue value) { + if (clockTimerBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + clockTimer_ != null && + clockTimer_ != com.google.protobuf.BoolValue.getDefaultInstance()) { + getClockTimerBuilder().mergeFrom(value); + } else { + clockTimer_ = value; + } + } else { + clockTimerBuilder_.mergeFrom(value); + } + if (clockTimer_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + public Builder clearClockTimer() { + bitField0_ = (bitField0_ & ~0x00000010); + clockTimer_ = null; + if (clockTimerBuilder_ != null) { + clockTimerBuilder_.dispose(); + clockTimerBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + public com.google.protobuf.BoolValue.Builder getClockTimerBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getClockTimerFieldBuilder().getBuilder(); + } + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + public com.google.protobuf.BoolValueOrBuilder getClockTimerOrBuilder() { + if (clockTimerBuilder_ != null) { + return clockTimerBuilder_.getMessageOrBuilder(); + } else { + return clockTimer_ == null ? + com.google.protobuf.BoolValue.getDefaultInstance() : clockTimer_; + } + } + /** + *
+       * enable or disable clocktimer
+       * 
+ * + * .google.protobuf.BoolValue clock_timer = 6 [json_name = "clocktimer"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> + getClockTimerFieldBuilder() { + if (clockTimerBuilder_ == null) { + clockTimerBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( + getClockTimer(), + getParentForChildren(), + isClean()); + clockTimer_ = null; + } + return clockTimerBuilder_; + } + + private com.google.protobuf.BoolValue ecoCharging_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> ecoChargingBuilder_; + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + * @return Whether the ecoCharging field is set. + */ + public boolean hasEcoCharging() { + return ((bitField0_ & 0x00000020) != 0); + } + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + * @return The ecoCharging. + */ + public com.google.protobuf.BoolValue getEcoCharging() { + if (ecoChargingBuilder_ == null) { + return ecoCharging_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : ecoCharging_; + } else { + return ecoChargingBuilder_.getMessage(); + } + } + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + public Builder setEcoCharging(com.google.protobuf.BoolValue value) { + if (ecoChargingBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ecoCharging_ = value; + } else { + ecoChargingBuilder_.setMessage(value); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + public Builder setEcoCharging( + com.google.protobuf.BoolValue.Builder builderForValue) { + if (ecoChargingBuilder_ == null) { + ecoCharging_ = builderForValue.build(); + } else { + ecoChargingBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + public Builder mergeEcoCharging(com.google.protobuf.BoolValue value) { + if (ecoChargingBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0) && + ecoCharging_ != null && + ecoCharging_ != com.google.protobuf.BoolValue.getDefaultInstance()) { + getEcoChargingBuilder().mergeFrom(value); + } else { + ecoCharging_ = value; + } + } else { + ecoChargingBuilder_.mergeFrom(value); + } + if (ecoCharging_ != null) { + bitField0_ |= 0x00000020; + onChanged(); + } + return this; + } + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + public Builder clearEcoCharging() { + bitField0_ = (bitField0_ & ~0x00000020); + ecoCharging_ = null; + if (ecoChargingBuilder_ != null) { + ecoChargingBuilder_.dispose(); + ecoChargingBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + public com.google.protobuf.BoolValue.Builder getEcoChargingBuilder() { + bitField0_ |= 0x00000020; + onChanged(); + return getEcoChargingFieldBuilder().getBuilder(); + } + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + public com.google.protobuf.BoolValueOrBuilder getEcoChargingOrBuilder() { + if (ecoChargingBuilder_ != null) { + return ecoChargingBuilder_.getMessageOrBuilder(); + } else { + return ecoCharging_ == null ? + com.google.protobuf.BoolValue.getDefaultInstance() : ecoCharging_; + } + } + /** + *
+       * enable or disable ecocharging
+       * 
+ * + * .google.protobuf.BoolValue eco_charging = 7 [json_name = "ecocharging"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> + getEcoChargingFieldBuilder() { + if (ecoChargingBuilder_ == null) { + ecoChargingBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( + getEcoCharging(), + getParentForChildren(), + isClean()); + ecoCharging_ = null; + } + return ecoChargingBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeProgramConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeProgramConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeProgramConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeControlConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeControlConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Enables/Disables bidrectional charging
+     * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + * @return Whether the biChargingEnabled field is set. + */ + boolean hasBiChargingEnabled(); + /** + *
+     * Enables/Disables bidrectional charging
+     * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + * @return The biChargingEnabled. + */ + com.google.protobuf.BoolValue getBiChargingEnabled(); + /** + *
+     * Enables/Disables bidrectional charging
+     * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + com.google.protobuf.BoolValueOrBuilder getBiChargingEnabledOrBuilder(); + + /** + *
+     * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+     * a value of 0 is equivalent to -100 kW.
+     * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + * @return Whether the chargingPower field is set. + */ + boolean hasChargingPower(); + /** + *
+     * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+     * a value of 0 is equivalent to -100 kW.
+     * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + * @return The chargingPower. + */ + com.google.protobuf.FloatValue getChargingPower(); + /** + *
+     * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+     * a value of 0 is equivalent to -100 kW.
+     * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + com.google.protobuf.FloatValueOrBuilder getChargingPowerOrBuilder(); + + /** + *
+     * must not be above max_soc
+     * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + * @return Whether the minSoc field is set. + */ + boolean hasMinSoc(); + /** + *
+     * must not be above max_soc
+     * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + * @return The minSoc. + */ + com.google.protobuf.Int32Value getMinSoc(); + /** + *
+     * must not be above max_soc
+     * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + com.google.protobuf.Int32ValueOrBuilder getMinSocOrBuilder(); + } + /** + *
+   * This is an experimental command
+   * 
+ * + * Protobuf type {@code proto.ChargeControlConfigure} + */ + public static final class ChargeControlConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeControlConfigure) + ChargeControlConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeControlConfigure.class.getName()); + } + // Use ChargeControlConfigure.newBuilder() to construct. + private ChargeControlConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeControlConfigure() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeControlConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeControlConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.Builder.class); + } + + private int bitField0_; + public static final int BI_CHARGING_ENABLED_FIELD_NUMBER = 1; + private com.google.protobuf.BoolValue biChargingEnabled_; + /** + *
+     * Enables/Disables bidrectional charging
+     * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + * @return Whether the biChargingEnabled field is set. + */ + @java.lang.Override + public boolean hasBiChargingEnabled() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * Enables/Disables bidrectional charging
+     * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + * @return The biChargingEnabled. + */ + @java.lang.Override + public com.google.protobuf.BoolValue getBiChargingEnabled() { + return biChargingEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : biChargingEnabled_; + } + /** + *
+     * Enables/Disables bidrectional charging
+     * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + @java.lang.Override + public com.google.protobuf.BoolValueOrBuilder getBiChargingEnabledOrBuilder() { + return biChargingEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : biChargingEnabled_; + } + + public static final int CHARGING_POWER_FIELD_NUMBER = 2; + private com.google.protobuf.FloatValue chargingPower_; + /** + *
+     * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+     * a value of 0 is equivalent to -100 kW.
+     * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + * @return Whether the chargingPower field is set. + */ + @java.lang.Override + public boolean hasChargingPower() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+     * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+     * a value of 0 is equivalent to -100 kW.
+     * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + * @return The chargingPower. + */ + @java.lang.Override + public com.google.protobuf.FloatValue getChargingPower() { + return chargingPower_ == null ? com.google.protobuf.FloatValue.getDefaultInstance() : chargingPower_; + } + /** + *
+     * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+     * a value of 0 is equivalent to -100 kW.
+     * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + @java.lang.Override + public com.google.protobuf.FloatValueOrBuilder getChargingPowerOrBuilder() { + return chargingPower_ == null ? com.google.protobuf.FloatValue.getDefaultInstance() : chargingPower_; + } + + public static final int MIN_SOC_FIELD_NUMBER = 3; + private com.google.protobuf.Int32Value minSoc_; + /** + *
+     * must not be above max_soc
+     * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + * @return Whether the minSoc field is set. + */ + @java.lang.Override + public boolean hasMinSoc() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+     * must not be above max_soc
+     * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + * @return The minSoc. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getMinSoc() { + return minSoc_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : minSoc_; + } + /** + *
+     * must not be above max_soc
+     * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getMinSocOrBuilder() { + return minSoc_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : minSoc_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getBiChargingEnabled()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getChargingPower()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(3, getMinSoc()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getBiChargingEnabled()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getChargingPower()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getMinSoc()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) obj; + + if (hasBiChargingEnabled() != other.hasBiChargingEnabled()) return false; + if (hasBiChargingEnabled()) { + if (!getBiChargingEnabled() + .equals(other.getBiChargingEnabled())) return false; + } + if (hasChargingPower() != other.hasChargingPower()) return false; + if (hasChargingPower()) { + if (!getChargingPower() + .equals(other.getChargingPower())) return false; + } + if (hasMinSoc() != other.hasMinSoc()) return false; + if (hasMinSoc()) { + if (!getMinSoc() + .equals(other.getMinSoc())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasBiChargingEnabled()) { + hash = (37 * hash) + BI_CHARGING_ENABLED_FIELD_NUMBER; + hash = (53 * hash) + getBiChargingEnabled().hashCode(); + } + if (hasChargingPower()) { + hash = (37 * hash) + CHARGING_POWER_FIELD_NUMBER; + hash = (53 * hash) + getChargingPower().hashCode(); + } + if (hasMinSoc()) { + hash = (37 * hash) + MIN_SOC_FIELD_NUMBER; + hash = (53 * hash) + getMinSoc().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * This is an experimental command
+     * 
+ * + * Protobuf type {@code proto.ChargeControlConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeControlConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeControlConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeControlConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getBiChargingEnabledFieldBuilder(); + getChargingPowerFieldBuilder(); + getMinSocFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + biChargingEnabled_ = null; + if (biChargingEnabledBuilder_ != null) { + biChargingEnabledBuilder_.dispose(); + biChargingEnabledBuilder_ = null; + } + chargingPower_ = null; + if (chargingPowerBuilder_ != null) { + chargingPowerBuilder_.dispose(); + chargingPowerBuilder_ = null; + } + minSoc_ = null; + if (minSocBuilder_ != null) { + minSocBuilder_.dispose(); + minSocBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeControlConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.biChargingEnabled_ = biChargingEnabledBuilder_ == null + ? biChargingEnabled_ + : biChargingEnabledBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.chargingPower_ = chargingPowerBuilder_ == null + ? chargingPower_ + : chargingPowerBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.minSoc_ = minSocBuilder_ == null + ? minSoc_ + : minSocBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure.getDefaultInstance()) return this; + if (other.hasBiChargingEnabled()) { + mergeBiChargingEnabled(other.getBiChargingEnabled()); + } + if (other.hasChargingPower()) { + mergeChargingPower(other.getChargingPower()); + } + if (other.hasMinSoc()) { + mergeMinSoc(other.getMinSoc()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getBiChargingEnabledFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getChargingPowerFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + input.readMessage( + getMinSocFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.BoolValue biChargingEnabled_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> biChargingEnabledBuilder_; + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + * @return Whether the biChargingEnabled field is set. + */ + public boolean hasBiChargingEnabled() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + * @return The biChargingEnabled. + */ + public com.google.protobuf.BoolValue getBiChargingEnabled() { + if (biChargingEnabledBuilder_ == null) { + return biChargingEnabled_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : biChargingEnabled_; + } else { + return biChargingEnabledBuilder_.getMessage(); + } + } + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + public Builder setBiChargingEnabled(com.google.protobuf.BoolValue value) { + if (biChargingEnabledBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + biChargingEnabled_ = value; + } else { + biChargingEnabledBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + public Builder setBiChargingEnabled( + com.google.protobuf.BoolValue.Builder builderForValue) { + if (biChargingEnabledBuilder_ == null) { + biChargingEnabled_ = builderForValue.build(); + } else { + biChargingEnabledBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + public Builder mergeBiChargingEnabled(com.google.protobuf.BoolValue value) { + if (biChargingEnabledBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + biChargingEnabled_ != null && + biChargingEnabled_ != com.google.protobuf.BoolValue.getDefaultInstance()) { + getBiChargingEnabledBuilder().mergeFrom(value); + } else { + biChargingEnabled_ = value; + } + } else { + biChargingEnabledBuilder_.mergeFrom(value); + } + if (biChargingEnabled_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + public Builder clearBiChargingEnabled() { + bitField0_ = (bitField0_ & ~0x00000001); + biChargingEnabled_ = null; + if (biChargingEnabledBuilder_ != null) { + biChargingEnabledBuilder_.dispose(); + biChargingEnabledBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + public com.google.protobuf.BoolValue.Builder getBiChargingEnabledBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getBiChargingEnabledFieldBuilder().getBuilder(); + } + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + public com.google.protobuf.BoolValueOrBuilder getBiChargingEnabledOrBuilder() { + if (biChargingEnabledBuilder_ != null) { + return biChargingEnabledBuilder_.getMessageOrBuilder(); + } else { + return biChargingEnabled_ == null ? + com.google.protobuf.BoolValue.getDefaultInstance() : biChargingEnabled_; + } + } + /** + *
+       * Enables/Disables bidrectional charging
+       * 
+ * + * .google.protobuf.BoolValue bi_charging_enabled = 1 [json_name = "bidichargingenabled"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> + getBiChargingEnabledFieldBuilder() { + if (biChargingEnabledBuilder_ == null) { + biChargingEnabledBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( + getBiChargingEnabled(), + getParentForChildren(), + isClean()); + biChargingEnabled_ = null; + } + return biChargingEnabledBuilder_; + } + + private com.google.protobuf.FloatValue chargingPower_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.FloatValue, com.google.protobuf.FloatValue.Builder, com.google.protobuf.FloatValueOrBuilder> chargingPowerBuilder_; + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + * @return Whether the chargingPower field is set. + */ + public boolean hasChargingPower() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + * @return The chargingPower. + */ + public com.google.protobuf.FloatValue getChargingPower() { + if (chargingPowerBuilder_ == null) { + return chargingPower_ == null ? com.google.protobuf.FloatValue.getDefaultInstance() : chargingPower_; + } else { + return chargingPowerBuilder_.getMessage(); + } + } + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + public Builder setChargingPower(com.google.protobuf.FloatValue value) { + if (chargingPowerBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + chargingPower_ = value; + } else { + chargingPowerBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + public Builder setChargingPower( + com.google.protobuf.FloatValue.Builder builderForValue) { + if (chargingPowerBuilder_ == null) { + chargingPower_ = builderForValue.build(); + } else { + chargingPowerBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + public Builder mergeChargingPower(com.google.protobuf.FloatValue value) { + if (chargingPowerBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + chargingPower_ != null && + chargingPower_ != com.google.protobuf.FloatValue.getDefaultInstance()) { + getChargingPowerBuilder().mergeFrom(value); + } else { + chargingPower_ = value; + } + } else { + chargingPowerBuilder_.mergeFrom(value); + } + if (chargingPower_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + public Builder clearChargingPower() { + bitField0_ = (bitField0_ & ~0x00000002); + chargingPower_ = null; + if (chargingPowerBuilder_ != null) { + chargingPowerBuilder_.dispose(); + chargingPowerBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + public com.google.protobuf.FloatValue.Builder getChargingPowerBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getChargingPowerFieldBuilder().getBuilder(); + } + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + public com.google.protobuf.FloatValueOrBuilder getChargingPowerOrBuilder() { + if (chargingPowerBuilder_ != null) { + return chargingPowerBuilder_.getMessageOrBuilder(); + } else { + return chargingPower_ == null ? + com.google.protobuf.FloatValue.getDefaultInstance() : chargingPower_; + } + } + /** + *
+       * Sets the charging power in kW with a resolution of 0.1 kW. The value has an offset of -100 kW. So
+       * a value of 0 is equivalent to -100 kW.
+       * 
+ * + * .google.protobuf.FloatValue charging_power = 2 [json_name = "chargingpower"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.FloatValue, com.google.protobuf.FloatValue.Builder, com.google.protobuf.FloatValueOrBuilder> + getChargingPowerFieldBuilder() { + if (chargingPowerBuilder_ == null) { + chargingPowerBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.FloatValue, com.google.protobuf.FloatValue.Builder, com.google.protobuf.FloatValueOrBuilder>( + getChargingPower(), + getParentForChildren(), + isClean()); + chargingPower_ = null; + } + return chargingPowerBuilder_; + } + + private com.google.protobuf.Int32Value minSoc_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> minSocBuilder_; + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + * @return Whether the minSoc field is set. + */ + public boolean hasMinSoc() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + * @return The minSoc. + */ + public com.google.protobuf.Int32Value getMinSoc() { + if (minSocBuilder_ == null) { + return minSoc_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : minSoc_; + } else { + return minSocBuilder_.getMessage(); + } + } + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + public Builder setMinSoc(com.google.protobuf.Int32Value value) { + if (minSocBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + minSoc_ = value; + } else { + minSocBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + public Builder setMinSoc( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (minSocBuilder_ == null) { + minSoc_ = builderForValue.build(); + } else { + minSocBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + public Builder mergeMinSoc(com.google.protobuf.Int32Value value) { + if (minSocBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && + minSoc_ != null && + minSoc_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getMinSocBuilder().mergeFrom(value); + } else { + minSoc_ = value; + } + } else { + minSocBuilder_.mergeFrom(value); + } + if (minSoc_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + public Builder clearMinSoc() { + bitField0_ = (bitField0_ & ~0x00000004); + minSoc_ = null; + if (minSocBuilder_ != null) { + minSocBuilder_.dispose(); + minSocBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + public com.google.protobuf.Int32Value.Builder getMinSocBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getMinSocFieldBuilder().getBuilder(); + } + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getMinSocOrBuilder() { + if (minSocBuilder_ != null) { + return minSocBuilder_.getMessageOrBuilder(); + } else { + return minSoc_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : minSoc_; + } + } + /** + *
+       * must not be above max_soc
+       * 
+ * + * .google.protobuf.Int32Value min_soc = 3 [json_name = "minsoc"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getMinSocFieldBuilder() { + if (minSocBuilder_ == null) { + minSocBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getMinSoc(), + getParentForChildren(), + isClean()); + minSoc_ = null; + } + return minSocBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeControlConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeControlConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeControlConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeControlConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeOptConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeOptConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + java.util.List + getWeekdayTariffList(); + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getWeekdayTariff(int index); + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + int getWeekdayTariffCount(); + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + java.util.List + getWeekdayTariffOrBuilderList(); + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder getWeekdayTariffOrBuilder( + int index); + + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + java.util.List + getWeekendTariffList(); + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getWeekendTariff(int index); + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + int getWeekendTariffCount(); + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + java.util.List + getWeekendTariffOrBuilderList(); + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder getWeekendTariffOrBuilder( + int index); + } + /** + *
+   * Provide functionality to initiate a charge optimization configuration
+   * 
+ * + * Protobuf type {@code proto.ChargeOptConfigure} + */ + public static final class ChargeOptConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeOptConfigure) + ChargeOptConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeOptConfigure.class.getName()); + } + // Use ChargeOptConfigure.newBuilder() to construct. + private ChargeOptConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeOptConfigure() { + weekdayTariff_ = java.util.Collections.emptyList(); + weekendTariff_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Builder.class); + } + + public interface TariffOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeOptConfigure.Tariff) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @return The enum numeric value on the wire for rate. + */ + int getRateValue(); + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @return The rate. + */ + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate getRate(); + + /** + *
+       * Time in seconds after 00:00
+       * 
+ * + * int32 time = 2 [json_name = "time"]; + * @return The time. + */ + int getTime(); + } + /** + * Protobuf type {@code proto.ChargeOptConfigure.Tariff} + */ + public static final class Tariff extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeOptConfigure.Tariff) + TariffOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Tariff.class.getName()); + } + // Use Tariff.newBuilder() to construct. + private Tariff(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private Tariff() { + rate_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_Tariff_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_Tariff_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder.class); + } + + /** + * Protobuf enum {@code proto.ChargeOptConfigure.Tariff.Rate} + */ + public enum Rate + implements com.google.protobuf.ProtocolMessageEnum { + /** + * INVALID_PRICE = 0; + */ + INVALID_PRICE(0), + /** + * LOW_PRICE = 33; + */ + LOW_PRICE(33), + /** + * NORMAL_PRICE = 44; + */ + NORMAL_PRICE(44), + /** + * HIGH_PRICE = 66; + */ + HIGH_PRICE(66), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Rate.class.getName()); + } + /** + * INVALID_PRICE = 0; + */ + public static final int INVALID_PRICE_VALUE = 0; + /** + * LOW_PRICE = 33; + */ + public static final int LOW_PRICE_VALUE = 33; + /** + * NORMAL_PRICE = 44; + */ + public static final int NORMAL_PRICE_VALUE = 44; + /** + * HIGH_PRICE = 66; + */ + public static final int HIGH_PRICE_VALUE = 66; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Rate valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Rate forNumber(int value) { + switch (value) { + case 0: return INVALID_PRICE; + case 33: return LOW_PRICE; + case 44: return NORMAL_PRICE; + case 66: return HIGH_PRICE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + Rate> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Rate findValueByNumber(int number) { + return Rate.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.getDescriptor().getEnumTypes().get(0); + } + + private static final Rate[] VALUES = values(); + + public static Rate valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Rate(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.ChargeOptConfigure.Tariff.Rate) + } + + public static final int RATE_FIELD_NUMBER = 1; + private int rate_ = 0; + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @return The enum numeric value on the wire for rate. + */ + @java.lang.Override public int getRateValue() { + return rate_; + } + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @return The rate. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate getRate() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate result = com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate.forNumber(rate_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate.UNRECOGNIZED : result; + } + + public static final int TIME_FIELD_NUMBER = 2; + private int time_ = 0; + /** + *
+       * Time in seconds after 00:00
+       * 
+ * + * int32 time = 2 [json_name = "time"]; + * @return The time. + */ + @java.lang.Override + public int getTime() { + return time_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (rate_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate.INVALID_PRICE.getNumber()) { + output.writeEnum(1, rate_); + } + if (time_ != 0) { + output.writeInt32(2, time_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (rate_ != com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate.INVALID_PRICE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, rate_); + } + if (time_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, time_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff other = (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff) obj; + + if (rate_ != other.rate_) return false; + if (getTime() + != other.getTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RATE_FIELD_NUMBER; + hash = (53 * hash) + rate_; + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + getTime(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ChargeOptConfigure.Tariff} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeOptConfigure.Tariff) + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_Tariff_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_Tariff_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + rate_ = 0; + time_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_Tariff_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff build() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff result = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.rate_ = rate_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.time_ = time_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.getDefaultInstance()) return this; + if (other.rate_ != 0) { + setRateValue(other.getRateValue()); + } + if (other.getTime() != 0) { + setTime(other.getTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + rate_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + time_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int rate_ = 0; + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @return The enum numeric value on the wire for rate. + */ + @java.lang.Override public int getRateValue() { + return rate_; + } + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @param value The enum numeric value on the wire for rate to set. + * @return This builder for chaining. + */ + public Builder setRateValue(int value) { + rate_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @return The rate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate getRate() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate result = com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate.forNumber(rate_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate.UNRECOGNIZED : result; + } + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @param value The rate to set. + * @return This builder for chaining. + */ + public Builder setRate(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Rate value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + rate_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ChargeOptConfigure.Tariff.Rate rate = 1 [json_name = "rate"]; + * @return This builder for chaining. + */ + public Builder clearRate() { + bitField0_ = (bitField0_ & ~0x00000001); + rate_ = 0; + onChanged(); + return this; + } + + private int time_ ; + /** + *
+         * Time in seconds after 00:00
+         * 
+ * + * int32 time = 2 [json_name = "time"]; + * @return The time. + */ + @java.lang.Override + public int getTime() { + return time_; + } + /** + *
+         * Time in seconds after 00:00
+         * 
+ * + * int32 time = 2 [json_name = "time"]; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(int value) { + + time_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+         * Time in seconds after 00:00
+         * 
+ * + * int32 time = 2 [json_name = "time"]; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000002); + time_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeOptConfigure.Tariff) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeOptConfigure.Tariff) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Tariff parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int WEEKDAY_TARIFF_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List weekdayTariff_; + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + @java.lang.Override + public java.util.List getWeekdayTariffList() { + return weekdayTariff_; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + @java.lang.Override + public java.util.List + getWeekdayTariffOrBuilderList() { + return weekdayTariff_; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + @java.lang.Override + public int getWeekdayTariffCount() { + return weekdayTariff_.size(); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getWeekdayTariff(int index) { + return weekdayTariff_.get(index); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder getWeekdayTariffOrBuilder( + int index) { + return weekdayTariff_.get(index); + } + + public static final int WEEKEND_TARIFF_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private java.util.List weekendTariff_; + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + @java.lang.Override + public java.util.List getWeekendTariffList() { + return weekendTariff_; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + @java.lang.Override + public java.util.List + getWeekendTariffOrBuilderList() { + return weekendTariff_; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + @java.lang.Override + public int getWeekendTariffCount() { + return weekendTariff_.size(); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getWeekendTariff(int index) { + return weekendTariff_.get(index); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder getWeekendTariffOrBuilder( + int index) { + return weekendTariff_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < weekdayTariff_.size(); i++) { + output.writeMessage(1, weekdayTariff_.get(i)); + } + for (int i = 0; i < weekendTariff_.size(); i++) { + output.writeMessage(2, weekendTariff_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < weekdayTariff_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, weekdayTariff_.get(i)); + } + for (int i = 0; i < weekendTariff_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, weekendTariff_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) obj; + + if (!getWeekdayTariffList() + .equals(other.getWeekdayTariffList())) return false; + if (!getWeekendTariffList() + .equals(other.getWeekendTariffList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getWeekdayTariffCount() > 0) { + hash = (37 * hash) + WEEKDAY_TARIFF_FIELD_NUMBER; + hash = (53 * hash) + getWeekdayTariffList().hashCode(); + } + if (getWeekendTariffCount() > 0) { + hash = (37 * hash) + WEEKEND_TARIFF_FIELD_NUMBER; + hash = (53 * hash) + getWeekendTariffList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide functionality to initiate a charge optimization configuration
+     * 
+ * + * Protobuf type {@code proto.ChargeOptConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeOptConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (weekdayTariffBuilder_ == null) { + weekdayTariff_ = java.util.Collections.emptyList(); + } else { + weekdayTariff_ = null; + weekdayTariffBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + if (weekendTariffBuilder_ == null) { + weekendTariff_ = java.util.Collections.emptyList(); + } else { + weekendTariff_ = null; + weekendTariffBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure result) { + if (weekdayTariffBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + weekdayTariff_ = java.util.Collections.unmodifiableList(weekdayTariff_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.weekdayTariff_ = weekdayTariff_; + } else { + result.weekdayTariff_ = weekdayTariffBuilder_.build(); + } + if (weekendTariffBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + weekendTariff_ = java.util.Collections.unmodifiableList(weekendTariff_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.weekendTariff_ = weekendTariff_; + } else { + result.weekendTariff_ = weekendTariffBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.getDefaultInstance()) return this; + if (weekdayTariffBuilder_ == null) { + if (!other.weekdayTariff_.isEmpty()) { + if (weekdayTariff_.isEmpty()) { + weekdayTariff_ = other.weekdayTariff_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureWeekdayTariffIsMutable(); + weekdayTariff_.addAll(other.weekdayTariff_); + } + onChanged(); + } + } else { + if (!other.weekdayTariff_.isEmpty()) { + if (weekdayTariffBuilder_.isEmpty()) { + weekdayTariffBuilder_.dispose(); + weekdayTariffBuilder_ = null; + weekdayTariff_ = other.weekdayTariff_; + bitField0_ = (bitField0_ & ~0x00000001); + weekdayTariffBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getWeekdayTariffFieldBuilder() : null; + } else { + weekdayTariffBuilder_.addAllMessages(other.weekdayTariff_); + } + } + } + if (weekendTariffBuilder_ == null) { + if (!other.weekendTariff_.isEmpty()) { + if (weekendTariff_.isEmpty()) { + weekendTariff_ = other.weekendTariff_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureWeekendTariffIsMutable(); + weekendTariff_.addAll(other.weekendTariff_); + } + onChanged(); + } + } else { + if (!other.weekendTariff_.isEmpty()) { + if (weekendTariffBuilder_.isEmpty()) { + weekendTariffBuilder_.dispose(); + weekendTariffBuilder_ = null; + weekendTariff_ = other.weekendTariff_; + bitField0_ = (bitField0_ & ~0x00000002); + weekendTariffBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getWeekendTariffFieldBuilder() : null; + } else { + weekendTariffBuilder_.addAllMessages(other.weekendTariff_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.parser(), + extensionRegistry); + if (weekdayTariffBuilder_ == null) { + ensureWeekdayTariffIsMutable(); + weekdayTariff_.add(m); + } else { + weekdayTariffBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.parser(), + extensionRegistry); + if (weekendTariffBuilder_ == null) { + ensureWeekendTariffIsMutable(); + weekendTariff_.add(m); + } else { + weekendTariffBuilder_.addMessage(m); + } + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List weekdayTariff_ = + java.util.Collections.emptyList(); + private void ensureWeekdayTariffIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + weekdayTariff_ = new java.util.ArrayList(weekdayTariff_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder> weekdayTariffBuilder_; + + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public java.util.List getWeekdayTariffList() { + if (weekdayTariffBuilder_ == null) { + return java.util.Collections.unmodifiableList(weekdayTariff_); + } else { + return weekdayTariffBuilder_.getMessageList(); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public int getWeekdayTariffCount() { + if (weekdayTariffBuilder_ == null) { + return weekdayTariff_.size(); + } else { + return weekdayTariffBuilder_.getCount(); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getWeekdayTariff(int index) { + if (weekdayTariffBuilder_ == null) { + return weekdayTariff_.get(index); + } else { + return weekdayTariffBuilder_.getMessage(index); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder setWeekdayTariff( + int index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff value) { + if (weekdayTariffBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeekdayTariffIsMutable(); + weekdayTariff_.set(index, value); + onChanged(); + } else { + weekdayTariffBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder setWeekdayTariff( + int index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder builderForValue) { + if (weekdayTariffBuilder_ == null) { + ensureWeekdayTariffIsMutable(); + weekdayTariff_.set(index, builderForValue.build()); + onChanged(); + } else { + weekdayTariffBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder addWeekdayTariff(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff value) { + if (weekdayTariffBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeekdayTariffIsMutable(); + weekdayTariff_.add(value); + onChanged(); + } else { + weekdayTariffBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder addWeekdayTariff( + int index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff value) { + if (weekdayTariffBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeekdayTariffIsMutable(); + weekdayTariff_.add(index, value); + onChanged(); + } else { + weekdayTariffBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder addWeekdayTariff( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder builderForValue) { + if (weekdayTariffBuilder_ == null) { + ensureWeekdayTariffIsMutable(); + weekdayTariff_.add(builderForValue.build()); + onChanged(); + } else { + weekdayTariffBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder addWeekdayTariff( + int index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder builderForValue) { + if (weekdayTariffBuilder_ == null) { + ensureWeekdayTariffIsMutable(); + weekdayTariff_.add(index, builderForValue.build()); + onChanged(); + } else { + weekdayTariffBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder addAllWeekdayTariff( + java.lang.Iterable values) { + if (weekdayTariffBuilder_ == null) { + ensureWeekdayTariffIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, weekdayTariff_); + onChanged(); + } else { + weekdayTariffBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder clearWeekdayTariff() { + if (weekdayTariffBuilder_ == null) { + weekdayTariff_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + weekdayTariffBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public Builder removeWeekdayTariff(int index) { + if (weekdayTariffBuilder_ == null) { + ensureWeekdayTariffIsMutable(); + weekdayTariff_.remove(index); + onChanged(); + } else { + weekdayTariffBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder getWeekdayTariffBuilder( + int index) { + return getWeekdayTariffFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder getWeekdayTariffOrBuilder( + int index) { + if (weekdayTariffBuilder_ == null) { + return weekdayTariff_.get(index); } else { + return weekdayTariffBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public java.util.List + getWeekdayTariffOrBuilderList() { + if (weekdayTariffBuilder_ != null) { + return weekdayTariffBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(weekdayTariff_); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder addWeekdayTariffBuilder() { + return getWeekdayTariffFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.getDefaultInstance()); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder addWeekdayTariffBuilder( + int index) { + return getWeekdayTariffFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.getDefaultInstance()); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekday_tariff = 1 [json_name = "weekdaytariff"]; + */ + public java.util.List + getWeekdayTariffBuilderList() { + return getWeekdayTariffFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder> + getWeekdayTariffFieldBuilder() { + if (weekdayTariffBuilder_ == null) { + weekdayTariffBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder>( + weekdayTariff_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + weekdayTariff_ = null; + } + return weekdayTariffBuilder_; + } + + private java.util.List weekendTariff_ = + java.util.Collections.emptyList(); + private void ensureWeekendTariffIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + weekendTariff_ = new java.util.ArrayList(weekendTariff_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder> weekendTariffBuilder_; + + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public java.util.List getWeekendTariffList() { + if (weekendTariffBuilder_ == null) { + return java.util.Collections.unmodifiableList(weekendTariff_); + } else { + return weekendTariffBuilder_.getMessageList(); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public int getWeekendTariffCount() { + if (weekendTariffBuilder_ == null) { + return weekendTariff_.size(); + } else { + return weekendTariffBuilder_.getCount(); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff getWeekendTariff(int index) { + if (weekendTariffBuilder_ == null) { + return weekendTariff_.get(index); + } else { + return weekendTariffBuilder_.getMessage(index); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder setWeekendTariff( + int index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff value) { + if (weekendTariffBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeekendTariffIsMutable(); + weekendTariff_.set(index, value); + onChanged(); + } else { + weekendTariffBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder setWeekendTariff( + int index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder builderForValue) { + if (weekendTariffBuilder_ == null) { + ensureWeekendTariffIsMutable(); + weekendTariff_.set(index, builderForValue.build()); + onChanged(); + } else { + weekendTariffBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder addWeekendTariff(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff value) { + if (weekendTariffBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeekendTariffIsMutable(); + weekendTariff_.add(value); + onChanged(); + } else { + weekendTariffBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder addWeekendTariff( + int index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff value) { + if (weekendTariffBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeekendTariffIsMutable(); + weekendTariff_.add(index, value); + onChanged(); + } else { + weekendTariffBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder addWeekendTariff( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder builderForValue) { + if (weekendTariffBuilder_ == null) { + ensureWeekendTariffIsMutable(); + weekendTariff_.add(builderForValue.build()); + onChanged(); + } else { + weekendTariffBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder addWeekendTariff( + int index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder builderForValue) { + if (weekendTariffBuilder_ == null) { + ensureWeekendTariffIsMutable(); + weekendTariff_.add(index, builderForValue.build()); + onChanged(); + } else { + weekendTariffBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder addAllWeekendTariff( + java.lang.Iterable values) { + if (weekendTariffBuilder_ == null) { + ensureWeekendTariffIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, weekendTariff_); + onChanged(); + } else { + weekendTariffBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder clearWeekendTariff() { + if (weekendTariffBuilder_ == null) { + weekendTariff_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + weekendTariffBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public Builder removeWeekendTariff(int index) { + if (weekendTariffBuilder_ == null) { + ensureWeekendTariffIsMutable(); + weekendTariff_.remove(index); + onChanged(); + } else { + weekendTariffBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder getWeekendTariffBuilder( + int index) { + return getWeekendTariffFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder getWeekendTariffOrBuilder( + int index) { + if (weekendTariffBuilder_ == null) { + return weekendTariff_.get(index); } else { + return weekendTariffBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public java.util.List + getWeekendTariffOrBuilderList() { + if (weekendTariffBuilder_ != null) { + return weekendTariffBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(weekendTariff_); + } + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder addWeekendTariffBuilder() { + return getWeekendTariffFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.getDefaultInstance()); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder addWeekendTariffBuilder( + int index) { + return getWeekendTariffFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.getDefaultInstance()); + } + /** + * repeated .proto.ChargeOptConfigure.Tariff weekend_tariff = 2 [json_name = "weekendtariff"]; + */ + public java.util.List + getWeekendTariffBuilderList() { + return getWeekendTariffFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder> + getWeekendTariffFieldBuilder() { + if (weekendTariffBuilder_ == null) { + weekendTariffBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure.TariffOrBuilder>( + weekendTariff_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + weekendTariff_ = null; + } + return weekendTariffBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeOptConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeOptConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeOptConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeOptStartOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeOptStart) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to start the charge optimization function in the vehicle
+   * 
+ * + * Protobuf type {@code proto.ChargeOptStart} + */ + public static final class ChargeOptStart extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeOptStart) + ChargeOptStartOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeOptStart.class.getName()); + } + // Use ChargeOptStart.newBuilder() to construct. + private ChargeOptStart(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeOptStart() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart other = (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to start the charge optimization function in the vehicle
+     * 
+ * + * Protobuf type {@code proto.ChargeOptStart} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeOptStart) + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStartOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStart_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart build() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart result = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeOptStart) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeOptStart) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeOptStart parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStart getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeOptStopOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeOptStop) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to stop the charge optimization function in the vehicle
+   * 
+ * + * Protobuf type {@code proto.ChargeOptStop} + */ + public static final class ChargeOptStop extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeOptStop) + ChargeOptStopOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeOptStop.class.getName()); + } + // Use ChargeOptStop.newBuilder() to construct. + private ChargeOptStop(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeOptStop() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop other = (com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to stop the charge optimization function in the vehicle
+     * 
+ * + * Protobuf type {@code proto.ChargeOptStop} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeOptStop) + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStopOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeOptStop_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop build() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop result = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeOptStop) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeOptStop) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeOptStop parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeOptStop getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TemperatureConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TemperatureConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + java.util.List + getTemperaturePointsList(); + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint getTemperaturePoints(int index); + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + int getTemperaturePointsCount(); + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + java.util.List + getTemperaturePointsOrBuilderList(); + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePointOrBuilder getTemperaturePointsOrBuilder( + int index); + } + /** + *
+   * Set the temperature points of the vehicle
+   * 
+ * + * Protobuf type {@code proto.TemperatureConfigure} + */ + public static final class TemperatureConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TemperatureConfigure) + TemperatureConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TemperatureConfigure.class.getName()); + } + // Use TemperatureConfigure.newBuilder() to construct. + private TemperatureConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TemperatureConfigure() { + temperaturePoints_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.Builder.class); + } + + public interface TemperaturePointOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TemperatureConfigure.TemperaturePoint) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @return The enum numeric value on the wire for zone. + */ + int getZoneValue(); + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @return The zone. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone getZone(); + + /** + * double temperature_in_celsius = 3 [json_name = "temp"]; + * @return The temperatureInCelsius. + */ + double getTemperatureInCelsius(); + } + /** + * Protobuf type {@code proto.TemperatureConfigure.TemperaturePoint} + */ + public static final class TemperaturePoint extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TemperatureConfigure.TemperaturePoint) + TemperaturePointOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TemperaturePoint.class.getName()); + } + // Use TemperaturePoint.newBuilder() to construct. + private TemperaturePoint(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TemperaturePoint() { + zone_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_TemperaturePoint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_TemperaturePoint_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.class, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder.class); + } + + /** + * Protobuf enum {@code proto.TemperatureConfigure.TemperaturePoint.Zone} + */ + public enum Zone + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+         * the lowercase versions are for json parsing purposes only. The upper case version should be the preferred
+         * enum values to be used in code.
+         * These definitions need to come before upper case versions
+         * 
+ * + * unknown = 0; + */ + unknown(0), + /** + * frontLeft = 1; + */ + frontLeft(1), + /** + * frontRight = 2; + */ + frontRight(2), + /** + * frontCenter = 3; + */ + frontCenter(3), + /** + * rearLeft = 4; + */ + rearLeft(4), + /** + * rearRight = 5; + */ + rearRight(5), + /** + * rearCenter = 6; + */ + rearCenter(6), + /** + * rear2Left = 7; + */ + rear2Left(7), + /** + * rear2Right = 8; + */ + rear2Right(8), + /** + *
+         * PLEASE BE AWARE OF THE FOLLOWING BEFORE ADDING NEW ZONES:
+         * Currently there is a bug in vehicle API, that we need to send the zones in the correct order. Otherwise the request will be rejected.
+         * The order needs to be like the following:
+         * Front before rear before rear2
+         * Left before right - There is no center zone if there are left and right zones in this row
+         * As this is already the order like specified here, this needs to be considered on adding new zones.
+         * 
+ * + * rear2Center = 9; + */ + rear2Center(9), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Zone.class.getName()); + } + /** + * UNKNOWN_ZONE = 0; + */ + public static final Zone UNKNOWN_ZONE = unknown; + /** + * FRONT_LEFT = 1; + */ + public static final Zone FRONT_LEFT = frontLeft; + /** + * FRONT_RIGHT = 2; + */ + public static final Zone FRONT_RIGHT = frontRight; + /** + * FRONT_CENTER = 3; + */ + public static final Zone FRONT_CENTER = frontCenter; + /** + * REAR_LEFT = 4; + */ + public static final Zone REAR_LEFT = rearLeft; + /** + * REAR_RIGHT = 5; + */ + public static final Zone REAR_RIGHT = rearRight; + /** + * REAR_CENTER = 6; + */ + public static final Zone REAR_CENTER = rearCenter; + /** + * REAR_2_LEFT = 7; + */ + public static final Zone REAR_2_LEFT = rear2Left; + /** + * REAR_2_RIGHT = 8; + */ + public static final Zone REAR_2_RIGHT = rear2Right; + /** + *
+         * PLEASE BE AWARE OF THE FOLLOWING BEFORE ADDING NEW ZONES:
+         * Currently there is a bug in vehicle API, that we need to send the zones in the correct order. Otherwise the request will be rejected.
+         * The order needs to be like the following:
+         * Front before rear before rear2
+         * Left before right - There is no center zone if there are left and right zones in this row
+         * As this is already the order like specified here, this needs to be considered on adding new zones.
+         * 
+ * + * REAR_2_CENTER = 9; + */ + public static final Zone REAR_2_CENTER = rear2Center; + /** + *
+         * the lowercase versions are for json parsing purposes only. The upper case version should be the preferred
+         * enum values to be used in code.
+         * These definitions need to come before upper case versions
+         * 
+ * + * unknown = 0; + */ + public static final int unknown_VALUE = 0; + /** + * frontLeft = 1; + */ + public static final int frontLeft_VALUE = 1; + /** + * frontRight = 2; + */ + public static final int frontRight_VALUE = 2; + /** + * frontCenter = 3; + */ + public static final int frontCenter_VALUE = 3; + /** + * rearLeft = 4; + */ + public static final int rearLeft_VALUE = 4; + /** + * rearRight = 5; + */ + public static final int rearRight_VALUE = 5; + /** + * rearCenter = 6; + */ + public static final int rearCenter_VALUE = 6; + /** + * rear2Left = 7; + */ + public static final int rear2Left_VALUE = 7; + /** + * rear2Right = 8; + */ + public static final int rear2Right_VALUE = 8; + /** + *
+         * PLEASE BE AWARE OF THE FOLLOWING BEFORE ADDING NEW ZONES:
+         * Currently there is a bug in vehicle API, that we need to send the zones in the correct order. Otherwise the request will be rejected.
+         * The order needs to be like the following:
+         * Front before rear before rear2
+         * Left before right - There is no center zone if there are left and right zones in this row
+         * As this is already the order like specified here, this needs to be considered on adding new zones.
+         * 
+ * + * rear2Center = 9; + */ + public static final int rear2Center_VALUE = 9; + /** + * UNKNOWN_ZONE = 0; + */ + public static final int UNKNOWN_ZONE_VALUE = 0; + /** + * FRONT_LEFT = 1; + */ + public static final int FRONT_LEFT_VALUE = 1; + /** + * FRONT_RIGHT = 2; + */ + public static final int FRONT_RIGHT_VALUE = 2; + /** + * FRONT_CENTER = 3; + */ + public static final int FRONT_CENTER_VALUE = 3; + /** + * REAR_LEFT = 4; + */ + public static final int REAR_LEFT_VALUE = 4; + /** + * REAR_RIGHT = 5; + */ + public static final int REAR_RIGHT_VALUE = 5; + /** + * REAR_CENTER = 6; + */ + public static final int REAR_CENTER_VALUE = 6; + /** + * REAR_2_LEFT = 7; + */ + public static final int REAR_2_LEFT_VALUE = 7; + /** + * REAR_2_RIGHT = 8; + */ + public static final int REAR_2_RIGHT_VALUE = 8; + /** + *
+         * PLEASE BE AWARE OF THE FOLLOWING BEFORE ADDING NEW ZONES:
+         * Currently there is a bug in vehicle API, that we need to send the zones in the correct order. Otherwise the request will be rejected.
+         * The order needs to be like the following:
+         * Front before rear before rear2
+         * Left before right - There is no center zone if there are left and right zones in this row
+         * As this is already the order like specified here, this needs to be considered on adding new zones.
+         * 
+ * + * REAR_2_CENTER = 9; + */ + public static final int REAR_2_CENTER_VALUE = 9; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Zone valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Zone forNumber(int value) { + switch (value) { + case 0: return unknown; + case 1: return frontLeft; + case 2: return frontRight; + case 3: return frontCenter; + case 4: return rearLeft; + case 5: return rearRight; + case 6: return rearCenter; + case 7: return rear2Left; + case 8: return rear2Right; + case 9: return rear2Center; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + Zone> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Zone findValueByNumber(int number) { + return Zone.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.getDescriptor().getEnumTypes().get(0); + } + + private static final Zone[] VALUES = getStaticValuesArray(); + private static Zone[] getStaticValuesArray() { + return new Zone[] { + unknown, frontLeft, frontRight, frontCenter, rearLeft, rearRight, rearCenter, rear2Left, rear2Right, rear2Center, UNKNOWN_ZONE, FRONT_LEFT, FRONT_RIGHT, FRONT_CENTER, REAR_LEFT, REAR_RIGHT, REAR_CENTER, REAR_2_LEFT, REAR_2_RIGHT, REAR_2_CENTER, + }; + } + public static Zone valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Zone(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.TemperatureConfigure.TemperaturePoint.Zone) + } + + public static final int ZONE_FIELD_NUMBER = 1; + private int zone_ = 0; + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @return The enum numeric value on the wire for zone. + */ + @java.lang.Override public int getZoneValue() { + return zone_; + } + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @return The zone. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone getZone() { + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone result = com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone.forNumber(zone_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone.UNRECOGNIZED : result; + } + + public static final int TEMPERATURE_IN_CELSIUS_FIELD_NUMBER = 3; + private double temperatureInCelsius_ = 0D; + /** + * double temperature_in_celsius = 3 [json_name = "temp"]; + * @return The temperatureInCelsius. + */ + @java.lang.Override + public double getTemperatureInCelsius() { + return temperatureInCelsius_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (zone_ != com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone.unknown.getNumber()) { + output.writeEnum(1, zone_); + } + if (java.lang.Double.doubleToRawLongBits(temperatureInCelsius_) != 0) { + output.writeDouble(3, temperatureInCelsius_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (zone_ != com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone.unknown.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, zone_); + } + if (java.lang.Double.doubleToRawLongBits(temperatureInCelsius_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(3, temperatureInCelsius_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint other = (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint) obj; + + if (zone_ != other.zone_) return false; + if (java.lang.Double.doubleToLongBits(getTemperatureInCelsius()) + != java.lang.Double.doubleToLongBits( + other.getTemperatureInCelsius())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ZONE_FIELD_NUMBER; + hash = (53 * hash) + zone_; + hash = (37 * hash) + TEMPERATURE_IN_CELSIUS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getTemperatureInCelsius())); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.TemperatureConfigure.TemperaturePoint} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TemperatureConfigure.TemperaturePoint) + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePointOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_TemperaturePoint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_TemperaturePoint_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.class, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + zone_ = 0; + temperatureInCelsius_ = 0D; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_TemperaturePoint_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint build() { + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint result = new com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.zone_ = zone_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.temperatureInCelsius_ = temperatureInCelsius_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.getDefaultInstance()) return this; + if (other.zone_ != 0) { + setZoneValue(other.getZoneValue()); + } + if (other.getTemperatureInCelsius() != 0D) { + setTemperatureInCelsius(other.getTemperatureInCelsius()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + zone_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 25: { + temperatureInCelsius_ = input.readDouble(); + bitField0_ |= 0x00000002; + break; + } // case 25 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int zone_ = 0; + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @return The enum numeric value on the wire for zone. + */ + @java.lang.Override public int getZoneValue() { + return zone_; + } + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @param value The enum numeric value on the wire for zone to set. + * @return This builder for chaining. + */ + public Builder setZoneValue(int value) { + zone_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @return The zone. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone getZone() { + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone result = com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone.forNumber(zone_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone.UNRECOGNIZED : result; + } + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @param value The zone to set. + * @return This builder for chaining. + */ + public Builder setZone(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + zone_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.TemperatureConfigure.TemperaturePoint.Zone zone = 1 [json_name = "zone"]; + * @return This builder for chaining. + */ + public Builder clearZone() { + bitField0_ = (bitField0_ & ~0x00000001); + zone_ = 0; + onChanged(); + return this; + } + + private double temperatureInCelsius_ ; + /** + * double temperature_in_celsius = 3 [json_name = "temp"]; + * @return The temperatureInCelsius. + */ + @java.lang.Override + public double getTemperatureInCelsius() { + return temperatureInCelsius_; + } + /** + * double temperature_in_celsius = 3 [json_name = "temp"]; + * @param value The temperatureInCelsius to set. + * @return This builder for chaining. + */ + public Builder setTemperatureInCelsius(double value) { + + temperatureInCelsius_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * double temperature_in_celsius = 3 [json_name = "temp"]; + * @return This builder for chaining. + */ + public Builder clearTemperatureInCelsius() { + bitField0_ = (bitField0_ & ~0x00000002); + temperatureInCelsius_ = 0D; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TemperatureConfigure.TemperaturePoint) + } + + // @@protoc_insertion_point(class_scope:proto.TemperatureConfigure.TemperaturePoint) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TemperaturePoint parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int TEMPERATURE_POINTS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List temperaturePoints_; + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + @java.lang.Override + public java.util.List getTemperaturePointsList() { + return temperaturePoints_; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + @java.lang.Override + public java.util.List + getTemperaturePointsOrBuilderList() { + return temperaturePoints_; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + @java.lang.Override + public int getTemperaturePointsCount() { + return temperaturePoints_.size(); + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint getTemperaturePoints(int index) { + return temperaturePoints_.get(index); + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePointOrBuilder getTemperaturePointsOrBuilder( + int index) { + return temperaturePoints_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < temperaturePoints_.size(); i++) { + output.writeMessage(1, temperaturePoints_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < temperaturePoints_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, temperaturePoints_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) obj; + + if (!getTemperaturePointsList() + .equals(other.getTemperaturePointsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTemperaturePointsCount() > 0) { + hash = (37 * hash) + TEMPERATURE_POINTS_FIELD_NUMBER; + hash = (53 * hash) + getTemperaturePointsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Set the temperature points of the vehicle
+     * 
+ * + * Protobuf type {@code proto.TemperatureConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TemperatureConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (temperaturePointsBuilder_ == null) { + temperaturePoints_ = java.util.Collections.emptyList(); + } else { + temperaturePoints_ = null; + temperaturePointsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TemperatureConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure result) { + if (temperaturePointsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + temperaturePoints_ = java.util.Collections.unmodifiableList(temperaturePoints_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.temperaturePoints_ = temperaturePoints_; + } else { + result.temperaturePoints_ = temperaturePointsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.getDefaultInstance()) return this; + if (temperaturePointsBuilder_ == null) { + if (!other.temperaturePoints_.isEmpty()) { + if (temperaturePoints_.isEmpty()) { + temperaturePoints_ = other.temperaturePoints_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.addAll(other.temperaturePoints_); + } + onChanged(); + } + } else { + if (!other.temperaturePoints_.isEmpty()) { + if (temperaturePointsBuilder_.isEmpty()) { + temperaturePointsBuilder_.dispose(); + temperaturePointsBuilder_ = null; + temperaturePoints_ = other.temperaturePoints_; + bitField0_ = (bitField0_ & ~0x00000001); + temperaturePointsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getTemperaturePointsFieldBuilder() : null; + } else { + temperaturePointsBuilder_.addAllMessages(other.temperaturePoints_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.parser(), + extensionRegistry); + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(m); + } else { + temperaturePointsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List temperaturePoints_ = + java.util.Collections.emptyList(); + private void ensureTemperaturePointsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + temperaturePoints_ = new java.util.ArrayList(temperaturePoints_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePointOrBuilder> temperaturePointsBuilder_; + + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public java.util.List getTemperaturePointsList() { + if (temperaturePointsBuilder_ == null) { + return java.util.Collections.unmodifiableList(temperaturePoints_); + } else { + return temperaturePointsBuilder_.getMessageList(); + } + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public int getTemperaturePointsCount() { + if (temperaturePointsBuilder_ == null) { + return temperaturePoints_.size(); + } else { + return temperaturePointsBuilder_.getCount(); + } + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint getTemperaturePoints(int index) { + if (temperaturePointsBuilder_ == null) { + return temperaturePoints_.get(index); + } else { + return temperaturePointsBuilder_.getMessage(index); + } + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder setTemperaturePoints( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint value) { + if (temperaturePointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTemperaturePointsIsMutable(); + temperaturePoints_.set(index, value); + onChanged(); + } else { + temperaturePointsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder setTemperaturePoints( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder builderForValue) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.set(index, builderForValue.build()); + onChanged(); + } else { + temperaturePointsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder addTemperaturePoints(com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint value) { + if (temperaturePointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(value); + onChanged(); + } else { + temperaturePointsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder addTemperaturePoints( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint value) { + if (temperaturePointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(index, value); + onChanged(); + } else { + temperaturePointsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder addTemperaturePoints( + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder builderForValue) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(builderForValue.build()); + onChanged(); + } else { + temperaturePointsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder addTemperaturePoints( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder builderForValue) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(index, builderForValue.build()); + onChanged(); + } else { + temperaturePointsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder addAllTemperaturePoints( + java.lang.Iterable values) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, temperaturePoints_); + onChanged(); + } else { + temperaturePointsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder clearTemperaturePoints() { + if (temperaturePointsBuilder_ == null) { + temperaturePoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + temperaturePointsBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public Builder removeTemperaturePoints(int index) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.remove(index); + onChanged(); + } else { + temperaturePointsBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder getTemperaturePointsBuilder( + int index) { + return getTemperaturePointsFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePointOrBuilder getTemperaturePointsOrBuilder( + int index) { + if (temperaturePointsBuilder_ == null) { + return temperaturePoints_.get(index); } else { + return temperaturePointsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public java.util.List + getTemperaturePointsOrBuilderList() { + if (temperaturePointsBuilder_ != null) { + return temperaturePointsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(temperaturePoints_); + } + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder addTemperaturePointsBuilder() { + return getTemperaturePointsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.getDefaultInstance()); + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder addTemperaturePointsBuilder( + int index) { + return getTemperaturePointsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.getDefaultInstance()); + } + /** + * repeated .proto.TemperatureConfigure.TemperaturePoint temperature_points = 1 [json_name = "temperaturePoints"]; + */ + public java.util.List + getTemperaturePointsBuilderList() { + return getTemperaturePointsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePointOrBuilder> + getTemperaturePointsFieldBuilder() { + if (temperaturePointsBuilder_ == null) { + temperaturePointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePointOrBuilder>( + temperaturePoints_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + temperaturePoints_ = null; + } + return temperaturePointsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.TemperatureConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.TemperatureConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TemperatureConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WeekProfileConfigureOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WeekProfileConfigure) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + java.util.List + getWeeklySetHuList(); + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU getWeeklySetHu(int index); + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + int getWeeklySetHuCount(); + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + java.util.List + getWeeklySetHuOrBuilderList(); + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHUOrBuilder getWeeklySetHuOrBuilder( + int index); + } + /** + *
+   * Set the weekprofile for the weekly departure time settings
+   * 
+ * + * Protobuf type {@code proto.WeekProfileConfigure} + */ + public static final class WeekProfileConfigure extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WeekProfileConfigure) + WeekProfileConfigureOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WeekProfileConfigure.class.getName()); + } + // Use WeekProfileConfigure.newBuilder() to construct. + private WeekProfileConfigure(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WeekProfileConfigure() { + weeklySetHu_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.Builder.class); + } + + public interface WeeklySetHUOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WeekProfileConfigure.WeeklySetHU) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @return The enum numeric value on the wire for day. + */ + int getDayValue(); + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @return The day. + */ + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day getDay(); + + /** + *
+       * Time in minutes after 00:00
+       * 
+ * + * int32 time = 2 [json_name = "time"]; + * @return The time. + */ + int getTime(); + } + /** + * Protobuf type {@code proto.WeekProfileConfigure.WeeklySetHU} + */ + public static final class WeeklySetHU extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WeekProfileConfigure.WeeklySetHU) + WeeklySetHUOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WeeklySetHU.class.getName()); + } + // Use WeeklySetHU.newBuilder() to construct. + private WeeklySetHU(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WeeklySetHU() { + day_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_WeeklySetHU_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_WeeklySetHU_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.class, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder.class); + } + + /** + * Protobuf enum {@code proto.WeekProfileConfigure.WeeklySetHU.Day} + */ + public enum Day + implements com.google.protobuf.ProtocolMessageEnum { + /** + * MONDAY = 0; + */ + MONDAY(0), + /** + * TUESDAY = 1; + */ + TUESDAY(1), + /** + * WEDNESDAY = 2; + */ + WEDNESDAY(2), + /** + * THURSDAY = 3; + */ + THURSDAY(3), + /** + * FRIDAY = 4; + */ + FRIDAY(4), + /** + * SATURDAY = 5; + */ + SATURDAY(5), + /** + * SUNDAY = 6; + */ + SUNDAY(6), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Day.class.getName()); + } + /** + * MONDAY = 0; + */ + public static final int MONDAY_VALUE = 0; + /** + * TUESDAY = 1; + */ + public static final int TUESDAY_VALUE = 1; + /** + * WEDNESDAY = 2; + */ + public static final int WEDNESDAY_VALUE = 2; + /** + * THURSDAY = 3; + */ + public static final int THURSDAY_VALUE = 3; + /** + * FRIDAY = 4; + */ + public static final int FRIDAY_VALUE = 4; + /** + * SATURDAY = 5; + */ + public static final int SATURDAY_VALUE = 5; + /** + * SUNDAY = 6; + */ + public static final int SUNDAY_VALUE = 6; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static Day valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static Day forNumber(int value) { + switch (value) { + case 0: return MONDAY; + case 1: return TUESDAY; + case 2: return WEDNESDAY; + case 3: return THURSDAY; + case 4: return FRIDAY; + case 5: return SATURDAY; + case 6: return SUNDAY; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + Day> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public Day findValueByNumber(int number) { + return Day.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.getDescriptor().getEnumTypes().get(0); + } + + private static final Day[] VALUES = values(); + + public static Day valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private Day(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.WeekProfileConfigure.WeeklySetHU.Day) + } + + public static final int DAY_FIELD_NUMBER = 1; + private int day_ = 0; + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @return The enum numeric value on the wire for day. + */ + @java.lang.Override public int getDayValue() { + return day_; + } + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @return The day. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day getDay() { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day result = com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day.forNumber(day_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day.UNRECOGNIZED : result; + } + + public static final int TIME_FIELD_NUMBER = 2; + private int time_ = 0; + /** + *
+       * Time in minutes after 00:00
+       * 
+ * + * int32 time = 2 [json_name = "time"]; + * @return The time. + */ + @java.lang.Override + public int getTime() { + return time_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (day_ != com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day.MONDAY.getNumber()) { + output.writeEnum(1, day_); + } + if (time_ != 0) { + output.writeInt32(2, time_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (day_ != com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day.MONDAY.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, day_); + } + if (time_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, time_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU other = (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU) obj; + + if (day_ != other.day_) return false; + if (getTime() + != other.getTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DAY_FIELD_NUMBER; + hash = (53 * hash) + day_; + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + getTime(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WeekProfileConfigure.WeeklySetHU} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WeekProfileConfigure.WeeklySetHU) + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHUOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_WeeklySetHU_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_WeeklySetHU_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.class, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + day_ = 0; + time_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_WeeklySetHU_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU build() { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU result = new com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.day_ = day_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.time_ = time_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.getDefaultInstance()) return this; + if (other.day_ != 0) { + setDayValue(other.getDayValue()); + } + if (other.getTime() != 0) { + setTime(other.getTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + day_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + time_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int day_ = 0; + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @return The enum numeric value on the wire for day. + */ + @java.lang.Override public int getDayValue() { + return day_; + } + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @param value The enum numeric value on the wire for day to set. + * @return This builder for chaining. + */ + public Builder setDayValue(int value) { + day_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @return The day. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day getDay() { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day result = com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day.forNumber(day_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day.UNRECOGNIZED : result; + } + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @param value The day to set. + * @return This builder for chaining. + */ + public Builder setDay(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Day value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + day_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.WeekProfileConfigure.WeeklySetHU.Day day = 1 [json_name = "day"]; + * @return This builder for chaining. + */ + public Builder clearDay() { + bitField0_ = (bitField0_ & ~0x00000001); + day_ = 0; + onChanged(); + return this; + } + + private int time_ ; + /** + *
+         * Time in minutes after 00:00
+         * 
+ * + * int32 time = 2 [json_name = "time"]; + * @return The time. + */ + @java.lang.Override + public int getTime() { + return time_; + } + /** + *
+         * Time in minutes after 00:00
+         * 
+ * + * int32 time = 2 [json_name = "time"]; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(int value) { + + time_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+         * Time in minutes after 00:00
+         * 
+ * + * int32 time = 2 [json_name = "time"]; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000002); + time_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.WeekProfileConfigure.WeeklySetHU) + } + + // @@protoc_insertion_point(class_scope:proto.WeekProfileConfigure.WeeklySetHU) + private static final com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WeeklySetHU parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public static final int WEEKLY_SET_HU_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List weeklySetHu_; + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + @java.lang.Override + public java.util.List getWeeklySetHuList() { + return weeklySetHu_; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + @java.lang.Override + public java.util.List + getWeeklySetHuOrBuilderList() { + return weeklySetHu_; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + @java.lang.Override + public int getWeeklySetHuCount() { + return weeklySetHu_.size(); + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU getWeeklySetHu(int index) { + return weeklySetHu_.get(index); + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHUOrBuilder getWeeklySetHuOrBuilder( + int index) { + return weeklySetHu_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < weeklySetHu_.size(); i++) { + output.writeMessage(1, weeklySetHu_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < weeklySetHu_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, weeklySetHu_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure other = (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) obj; + + if (!getWeeklySetHuList() + .equals(other.getWeeklySetHuList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getWeeklySetHuCount() > 0) { + hash = (37 * hash) + WEEKLY_SET_HU_FIELD_NUMBER; + hash = (53 * hash) + getWeeklySetHuList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Set the weekprofile for the weekly departure time settings
+     * 
+ * + * Protobuf type {@code proto.WeekProfileConfigure} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WeekProfileConfigure) + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.class, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (weeklySetHuBuilder_ == null) { + weeklySetHu_ = java.util.Collections.emptyList(); + } else { + weeklySetHu_ = null; + weeklySetHuBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigure_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure build() { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure result = new com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure result) { + if (weeklySetHuBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + weeklySetHu_ = java.util.Collections.unmodifiableList(weeklySetHu_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.weeklySetHu_ = weeklySetHu_; + } else { + result.weeklySetHu_ = weeklySetHuBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.getDefaultInstance()) return this; + if (weeklySetHuBuilder_ == null) { + if (!other.weeklySetHu_.isEmpty()) { + if (weeklySetHu_.isEmpty()) { + weeklySetHu_ = other.weeklySetHu_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureWeeklySetHuIsMutable(); + weeklySetHu_.addAll(other.weeklySetHu_); + } + onChanged(); + } + } else { + if (!other.weeklySetHu_.isEmpty()) { + if (weeklySetHuBuilder_.isEmpty()) { + weeklySetHuBuilder_.dispose(); + weeklySetHuBuilder_ = null; + weeklySetHu_ = other.weeklySetHu_; + bitField0_ = (bitField0_ & ~0x00000001); + weeklySetHuBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getWeeklySetHuFieldBuilder() : null; + } else { + weeklySetHuBuilder_.addAllMessages(other.weeklySetHu_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.parser(), + extensionRegistry); + if (weeklySetHuBuilder_ == null) { + ensureWeeklySetHuIsMutable(); + weeklySetHu_.add(m); + } else { + weeklySetHuBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List weeklySetHu_ = + java.util.Collections.emptyList(); + private void ensureWeeklySetHuIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + weeklySetHu_ = new java.util.ArrayList(weeklySetHu_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHUOrBuilder> weeklySetHuBuilder_; + + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public java.util.List getWeeklySetHuList() { + if (weeklySetHuBuilder_ == null) { + return java.util.Collections.unmodifiableList(weeklySetHu_); + } else { + return weeklySetHuBuilder_.getMessageList(); + } + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public int getWeeklySetHuCount() { + if (weeklySetHuBuilder_ == null) { + return weeklySetHu_.size(); + } else { + return weeklySetHuBuilder_.getCount(); + } + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU getWeeklySetHu(int index) { + if (weeklySetHuBuilder_ == null) { + return weeklySetHu_.get(index); + } else { + return weeklySetHuBuilder_.getMessage(index); + } + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder setWeeklySetHu( + int index, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU value) { + if (weeklySetHuBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeeklySetHuIsMutable(); + weeklySetHu_.set(index, value); + onChanged(); + } else { + weeklySetHuBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder setWeeklySetHu( + int index, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder builderForValue) { + if (weeklySetHuBuilder_ == null) { + ensureWeeklySetHuIsMutable(); + weeklySetHu_.set(index, builderForValue.build()); + onChanged(); + } else { + weeklySetHuBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder addWeeklySetHu(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU value) { + if (weeklySetHuBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeeklySetHuIsMutable(); + weeklySetHu_.add(value); + onChanged(); + } else { + weeklySetHuBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder addWeeklySetHu( + int index, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU value) { + if (weeklySetHuBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeeklySetHuIsMutable(); + weeklySetHu_.add(index, value); + onChanged(); + } else { + weeklySetHuBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder addWeeklySetHu( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder builderForValue) { + if (weeklySetHuBuilder_ == null) { + ensureWeeklySetHuIsMutable(); + weeklySetHu_.add(builderForValue.build()); + onChanged(); + } else { + weeklySetHuBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder addWeeklySetHu( + int index, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder builderForValue) { + if (weeklySetHuBuilder_ == null) { + ensureWeeklySetHuIsMutable(); + weeklySetHu_.add(index, builderForValue.build()); + onChanged(); + } else { + weeklySetHuBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder addAllWeeklySetHu( + java.lang.Iterable values) { + if (weeklySetHuBuilder_ == null) { + ensureWeeklySetHuIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, weeklySetHu_); + onChanged(); + } else { + weeklySetHuBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder clearWeeklySetHu() { + if (weeklySetHuBuilder_ == null) { + weeklySetHu_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + weeklySetHuBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public Builder removeWeeklySetHu(int index) { + if (weeklySetHuBuilder_ == null) { + ensureWeeklySetHuIsMutable(); + weeklySetHu_.remove(index); + onChanged(); + } else { + weeklySetHuBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder getWeeklySetHuBuilder( + int index) { + return getWeeklySetHuFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHUOrBuilder getWeeklySetHuOrBuilder( + int index) { + if (weeklySetHuBuilder_ == null) { + return weeklySetHu_.get(index); } else { + return weeklySetHuBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public java.util.List + getWeeklySetHuOrBuilderList() { + if (weeklySetHuBuilder_ != null) { + return weeklySetHuBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(weeklySetHu_); + } + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder addWeeklySetHuBuilder() { + return getWeeklySetHuFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.getDefaultInstance()); + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder addWeeklySetHuBuilder( + int index) { + return getWeeklySetHuFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.getDefaultInstance()); + } + /** + * repeated .proto.WeekProfileConfigure.WeeklySetHU weekly_set_hu = 1 [json_name = "weeklySetHU"]; + */ + public java.util.List + getWeeklySetHuBuilderList() { + return getWeeklySetHuFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHUOrBuilder> + getWeeklySetHuFieldBuilder() { + if (weeklySetHuBuilder_ == null) { + weeklySetHuBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHU.Builder, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure.WeeklySetHUOrBuilder>( + weeklySetHu_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + weeklySetHu_ = null; + } + return weeklySetHuBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.WeekProfileConfigure) + } + + // @@protoc_insertion_point(class_scope:proto.WeekProfileConfigure) + private static final com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WeekProfileConfigure parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigure getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WeekProfileConfigureV2OrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WeekProfileConfigureV2) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + java.util.List + getTimeProfilesList(); + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile getTimeProfiles(int index); + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + int getTimeProfilesCount(); + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + java.util.List + getTimeProfilesOrBuilderList(); + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileOrBuilder getTimeProfilesOrBuilder( + int index); + } + /** + *
+   * Set the week profile for the weekly departure time settings version 2
+   * 
+ * + * Protobuf type {@code proto.WeekProfileConfigureV2} + */ + public static final class WeekProfileConfigureV2 extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WeekProfileConfigureV2) + WeekProfileConfigureV2OrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WeekProfileConfigureV2.class.getName()); + } + // Use WeekProfileConfigureV2.newBuilder() to construct. + private WeekProfileConfigureV2(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WeekProfileConfigureV2() { + timeProfiles_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigureV2_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigureV2_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.class, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.Builder.class); + } + + public static final int TIME_PROFILES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List timeProfiles_; + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + @java.lang.Override + public java.util.List getTimeProfilesList() { + return timeProfiles_; + } + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + @java.lang.Override + public java.util.List + getTimeProfilesOrBuilderList() { + return timeProfiles_; + } + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + @java.lang.Override + public int getTimeProfilesCount() { + return timeProfiles_.size(); + } + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile getTimeProfiles(int index) { + return timeProfiles_.get(index); + } + /** + *
+     * * The whole list of timeProfiles must always be provided
+     * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileOrBuilder getTimeProfilesOrBuilder( + int index) { + return timeProfiles_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < timeProfiles_.size(); i++) { + output.writeMessage(1, timeProfiles_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < timeProfiles_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, timeProfiles_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 other = (com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) obj; + + if (!getTimeProfilesList() + .equals(other.getTimeProfilesList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTimeProfilesCount() > 0) { + hash = (37 * hash) + TIME_PROFILES_FIELD_NUMBER; + hash = (53 * hash) + getTimeProfilesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Set the week profile for the weekly departure time settings version 2
+     * 
+ * + * Protobuf type {@code proto.WeekProfileConfigureV2} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WeekProfileConfigureV2) + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2OrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigureV2_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigureV2_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.class, com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (timeProfilesBuilder_ == null) { + timeProfiles_ = java.util.Collections.emptyList(); + } else { + timeProfiles_ = null; + timeProfilesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_WeekProfileConfigureV2_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 build() { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 result = new com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 result) { + if (timeProfilesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + timeProfiles_ = java.util.Collections.unmodifiableList(timeProfiles_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.timeProfiles_ = timeProfiles_; + } else { + result.timeProfiles_ = timeProfilesBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2.getDefaultInstance()) return this; + if (timeProfilesBuilder_ == null) { + if (!other.timeProfiles_.isEmpty()) { + if (timeProfiles_.isEmpty()) { + timeProfiles_ = other.timeProfiles_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureTimeProfilesIsMutable(); + timeProfiles_.addAll(other.timeProfiles_); + } + onChanged(); + } + } else { + if (!other.timeProfiles_.isEmpty()) { + if (timeProfilesBuilder_.isEmpty()) { + timeProfilesBuilder_.dispose(); + timeProfilesBuilder_ = null; + timeProfiles_ = other.timeProfiles_; + bitField0_ = (bitField0_ & ~0x00000001); + timeProfilesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getTimeProfilesFieldBuilder() : null; + } else { + timeProfilesBuilder_.addAllMessages(other.timeProfiles_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.parser(), + extensionRegistry); + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.add(m); + } else { + timeProfilesBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List timeProfiles_ = + java.util.Collections.emptyList(); + private void ensureTimeProfilesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + timeProfiles_ = new java.util.ArrayList(timeProfiles_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileOrBuilder> timeProfilesBuilder_; + + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public java.util.List getTimeProfilesList() { + if (timeProfilesBuilder_ == null) { + return java.util.Collections.unmodifiableList(timeProfiles_); + } else { + return timeProfilesBuilder_.getMessageList(); + } + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public int getTimeProfilesCount() { + if (timeProfilesBuilder_ == null) { + return timeProfiles_.size(); + } else { + return timeProfilesBuilder_.getCount(); + } + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile getTimeProfiles(int index) { + if (timeProfilesBuilder_ == null) { + return timeProfiles_.get(index); + } else { + return timeProfilesBuilder_.getMessage(index); + } + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder setTimeProfiles( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile value) { + if (timeProfilesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTimeProfilesIsMutable(); + timeProfiles_.set(index, value); + onChanged(); + } else { + timeProfilesBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder setTimeProfiles( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder builderForValue) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.set(index, builderForValue.build()); + onChanged(); + } else { + timeProfilesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder addTimeProfiles(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile value) { + if (timeProfilesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTimeProfilesIsMutable(); + timeProfiles_.add(value); + onChanged(); + } else { + timeProfilesBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder addTimeProfiles( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile value) { + if (timeProfilesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTimeProfilesIsMutable(); + timeProfiles_.add(index, value); + onChanged(); + } else { + timeProfilesBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder addTimeProfiles( + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder builderForValue) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.add(builderForValue.build()); + onChanged(); + } else { + timeProfilesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder addTimeProfiles( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder builderForValue) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.add(index, builderForValue.build()); + onChanged(); + } else { + timeProfilesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder addAllTimeProfiles( + java.lang.Iterable values) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, timeProfiles_); + onChanged(); + } else { + timeProfilesBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder clearTimeProfiles() { + if (timeProfilesBuilder_ == null) { + timeProfiles_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + timeProfilesBuilder_.clear(); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public Builder removeTimeProfiles(int index) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.remove(index); + onChanged(); + } else { + timeProfilesBuilder_.remove(index); + } + return this; + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder getTimeProfilesBuilder( + int index) { + return getTimeProfilesFieldBuilder().getBuilder(index); + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileOrBuilder getTimeProfilesOrBuilder( + int index) { + if (timeProfilesBuilder_ == null) { + return timeProfiles_.get(index); } else { + return timeProfilesBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public java.util.List + getTimeProfilesOrBuilderList() { + if (timeProfilesBuilder_ != null) { + return timeProfilesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(timeProfiles_); + } + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder addTimeProfilesBuilder() { + return getTimeProfilesFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.getDefaultInstance()); + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder addTimeProfilesBuilder( + int index) { + return getTimeProfilesFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.getDefaultInstance()); + } + /** + *
+       * * The whole list of timeProfiles must always be provided
+       * 
+ * + * repeated .proto.TimeProfile time_profiles = 1 [json_name = "timeprofiles"]; + */ + public java.util.List + getTimeProfilesBuilderList() { + return getTimeProfilesFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileOrBuilder> + getTimeProfilesFieldBuilder() { + if (timeProfilesBuilder_ == null) { + timeProfilesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileOrBuilder>( + timeProfiles_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + timeProfiles_ = null; + } + return timeProfilesBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.WeekProfileConfigureV2) + } + + // @@protoc_insertion_point(class_scope:proto.WeekProfileConfigureV2) + private static final com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WeekProfileConfigureV2 parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.WeekProfileConfigureV2 getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TimeProfileOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TimeProfile) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+     * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+     * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + * @return Whether the identifier field is set. + */ + boolean hasIdentifier(); + /** + *
+     * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+     * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+     * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + * @return The identifier. + */ + com.google.protobuf.Int32Value getIdentifier(); + /** + *
+     * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+     * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+     * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + com.google.protobuf.Int32ValueOrBuilder getIdentifierOrBuilder(); + + /** + *
+     * Hour after midnight range [0, 23]
+     * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + * @return Whether the hour field is set. + */ + boolean hasHour(); + /** + *
+     * Hour after midnight range [0, 23]
+     * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + * @return The hour. + */ + com.google.protobuf.Int32Value getHour(); + /** + *
+     * Hour after midnight range [0, 23]
+     * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + com.google.protobuf.Int32ValueOrBuilder getHourOrBuilder(); + + /** + *
+     * Minute after full hour range [0, 59]
+     * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + * @return Whether the minute field is set. + */ + boolean hasMinute(); + /** + *
+     * Minute after full hour range [0, 59]
+     * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + * @return The minute. + */ + com.google.protobuf.Int32Value getMinute(); + /** + *
+     * Minute after full hour range [0, 59]
+     * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + com.google.protobuf.Int32ValueOrBuilder getMinuteOrBuilder(); + + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the days. + */ + java.util.List getDaysList(); + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return The count of days. + */ + int getDaysCount(); + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the element to return. + * @return The days at the given index. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index); + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the enum numeric values on the wire for days. + */ + java.util.List + getDaysValueList(); + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of days at the given index. + */ + int getDaysValue(int index); + + /** + *
+     * Whether this profile entry is active or not
+     * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + * @return Whether the active field is set. + */ + boolean hasActive(); + /** + *
+     * Whether this profile entry is active or not
+     * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + * @return The active. + */ + com.google.protobuf.BoolValue getActive(); + /** + *
+     * Whether this profile entry is active or not
+     * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + com.google.protobuf.BoolValueOrBuilder getActiveOrBuilder(); + + /** + *
+     * If a timeProfile is changed or added the respective applicationId must be provided by the SDK
+     * 11 = Internal Apps
+     * 12 = External Apps
+     * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @return The applicationIdentifier. + */ + int getApplicationIdentifier(); + } + /** + * Protobuf type {@code proto.TimeProfile} + */ + public static final class TimeProfile extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TimeProfile) + TimeProfileOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TimeProfile.class.getName()); + } + // Use TimeProfile.newBuilder() to construct. + private TimeProfile(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TimeProfile() { + days_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TimeProfile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TimeProfile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.class, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder.class); + } + + private int bitField0_; + public static final int IDENTIFIER_FIELD_NUMBER = 1; + private com.google.protobuf.Int32Value identifier_; + /** + *
+     * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+     * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+     * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + * @return Whether the identifier field is set. + */ + @java.lang.Override + public boolean hasIdentifier() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+     * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+     * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + * @return The identifier. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getIdentifier() { + return identifier_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : identifier_; + } + /** + *
+     * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+     * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+     * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getIdentifierOrBuilder() { + return identifier_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : identifier_; + } + + public static final int HOUR_FIELD_NUMBER = 2; + private com.google.protobuf.Int32Value hour_; + /** + *
+     * Hour after midnight range [0, 23]
+     * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + * @return Whether the hour field is set. + */ + @java.lang.Override + public boolean hasHour() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+     * Hour after midnight range [0, 23]
+     * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + * @return The hour. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getHour() { + return hour_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : hour_; + } + /** + *
+     * Hour after midnight range [0, 23]
+     * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getHourOrBuilder() { + return hour_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : hour_; + } + + public static final int MINUTE_FIELD_NUMBER = 3; + private com.google.protobuf.Int32Value minute_; + /** + *
+     * Minute after full hour range [0, 59]
+     * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + * @return Whether the minute field is set. + */ + @java.lang.Override + public boolean hasMinute() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+     * Minute after full hour range [0, 59]
+     * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + * @return The minute. + */ + @java.lang.Override + public com.google.protobuf.Int32Value getMinute() { + return minute_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : minute_; + } + /** + *
+     * Minute after full hour range [0, 59]
+     * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + @java.lang.Override + public com.google.protobuf.Int32ValueOrBuilder getMinuteOrBuilder() { + return minute_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : minute_; + } + + public static final int DAYS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private java.util.List days_; + private static final com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> days_converter_ = + new com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>() { + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay convert(java.lang.Integer from) { + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay result = com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay.forNumber(from); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay.UNRECOGNIZED : result; + } + }; + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the days. + */ + @java.lang.Override + public java.util.List getDaysList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>(days_, days_converter_); + } + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return The count of days. + */ + @java.lang.Override + public int getDaysCount() { + return days_.size(); + } + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the element to return. + * @return The days at the given index. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index) { + return days_converter_.convert(days_.get(index)); + } + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the enum numeric values on the wire for days. + */ + @java.lang.Override + public java.util.List + getDaysValueList() { + return days_; + } + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of days at the given index. + */ + @java.lang.Override + public int getDaysValue(int index) { + return days_.get(index); + } + private int daysMemoizedSerializedSize; + + public static final int ACTIVE_FIELD_NUMBER = 5; + private com.google.protobuf.BoolValue active_; + /** + *
+     * Whether this profile entry is active or not
+     * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + * @return Whether the active field is set. + */ + @java.lang.Override + public boolean hasActive() { + return ((bitField0_ & 0x00000008) != 0); + } + /** + *
+     * Whether this profile entry is active or not
+     * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + * @return The active. + */ + @java.lang.Override + public com.google.protobuf.BoolValue getActive() { + return active_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : active_; + } + /** + *
+     * Whether this profile entry is active or not
+     * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + @java.lang.Override + public com.google.protobuf.BoolValueOrBuilder getActiveOrBuilder() { + return active_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : active_; + } + + public static final int APPLICATION_IDENTIFIER_FIELD_NUMBER = 6; + private int applicationIdentifier_ = 0; + /** + *
+     * If a timeProfile is changed or added the respective applicationId must be provided by the SDK
+     * 11 = Internal Apps
+     * 12 = External Apps
+     * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @return The applicationIdentifier. + */ + @java.lang.Override + public int getApplicationIdentifier() { + return applicationIdentifier_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(1, getIdentifier()); + } + if (((bitField0_ & 0x00000002) != 0)) { + output.writeMessage(2, getHour()); + } + if (((bitField0_ & 0x00000004) != 0)) { + output.writeMessage(3, getMinute()); + } + if (getDaysList().size() > 0) { + output.writeUInt32NoTag(34); + output.writeUInt32NoTag(daysMemoizedSerializedSize); + } + for (int i = 0; i < days_.size(); i++) { + output.writeEnumNoTag(days_.get(i)); + } + if (((bitField0_ & 0x00000008) != 0)) { + output.writeMessage(5, getActive()); + } + if (applicationIdentifier_ != 0) { + output.writeInt32(6, applicationIdentifier_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getIdentifier()); + } + if (((bitField0_ & 0x00000002) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getHour()); + } + if (((bitField0_ & 0x00000004) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getMinute()); + } + { + int dataSize = 0; + for (int i = 0; i < days_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeEnumSizeNoTag(days_.get(i)); + } + size += dataSize; + if (!getDaysList().isEmpty()) { size += 1; + size += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(dataSize); + }daysMemoizedSerializedSize = dataSize; + } + if (((bitField0_ & 0x00000008) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(5, getActive()); + } + if (applicationIdentifier_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(6, applicationIdentifier_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile other = (com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile) obj; + + if (hasIdentifier() != other.hasIdentifier()) return false; + if (hasIdentifier()) { + if (!getIdentifier() + .equals(other.getIdentifier())) return false; + } + if (hasHour() != other.hasHour()) return false; + if (hasHour()) { + if (!getHour() + .equals(other.getHour())) return false; + } + if (hasMinute() != other.hasMinute()) return false; + if (hasMinute()) { + if (!getMinute() + .equals(other.getMinute())) return false; + } + if (!days_.equals(other.days_)) return false; + if (hasActive() != other.hasActive()) return false; + if (hasActive()) { + if (!getActive() + .equals(other.getActive())) return false; + } + if (getApplicationIdentifier() + != other.getApplicationIdentifier()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasIdentifier()) { + hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER; + hash = (53 * hash) + getIdentifier().hashCode(); + } + if (hasHour()) { + hash = (37 * hash) + HOUR_FIELD_NUMBER; + hash = (53 * hash) + getHour().hashCode(); + } + if (hasMinute()) { + hash = (37 * hash) + MINUTE_FIELD_NUMBER; + hash = (53 * hash) + getMinute().hashCode(); + } + if (getDaysCount() > 0) { + hash = (37 * hash) + DAYS_FIELD_NUMBER; + hash = (53 * hash) + days_.hashCode(); + } + if (hasActive()) { + hash = (37 * hash) + ACTIVE_FIELD_NUMBER; + hash = (53 * hash) + getActive().hashCode(); + } + hash = (37 * hash) + APPLICATION_IDENTIFIER_FIELD_NUMBER; + hash = (53 * hash) + getApplicationIdentifier(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.TimeProfile} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TimeProfile) + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TimeProfile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TimeProfile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.class, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getIdentifierFieldBuilder(); + getHourFieldBuilder(); + getMinuteFieldBuilder(); + getActiveFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + identifier_ = null; + if (identifierBuilder_ != null) { + identifierBuilder_.dispose(); + identifierBuilder_ = null; + } + hour_ = null; + if (hourBuilder_ != null) { + hourBuilder_.dispose(); + hourBuilder_ = null; + } + minute_ = null; + if (minuteBuilder_ != null) { + minuteBuilder_.dispose(); + minuteBuilder_ = null; + } + days_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + active_ = null; + if (activeBuilder_ != null) { + activeBuilder_.dispose(); + activeBuilder_ = null; + } + applicationIdentifier_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TimeProfile_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile build() { + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile result = new com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile result) { + if (((bitField0_ & 0x00000008) != 0)) { + days_ = java.util.Collections.unmodifiableList(days_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.days_ = days_; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.identifier_ = identifierBuilder_ == null + ? identifier_ + : identifierBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.hour_ = hourBuilder_ == null + ? hour_ + : hourBuilder_.build(); + to_bitField0_ |= 0x00000002; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.minute_ = minuteBuilder_ == null + ? minute_ + : minuteBuilder_.build(); + to_bitField0_ |= 0x00000004; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.active_ = activeBuilder_ == null + ? active_ + : activeBuilder_.build(); + to_bitField0_ |= 0x00000008; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.applicationIdentifier_ = applicationIdentifier_; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile.getDefaultInstance()) return this; + if (other.hasIdentifier()) { + mergeIdentifier(other.getIdentifier()); + } + if (other.hasHour()) { + mergeHour(other.getHour()); + } + if (other.hasMinute()) { + mergeMinute(other.getMinute()); + } + if (!other.days_.isEmpty()) { + if (days_.isEmpty()) { + days_ = other.days_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureDaysIsMutable(); + days_.addAll(other.days_); + } + onChanged(); + } + if (other.hasActive()) { + mergeActive(other.getActive()); + } + if (other.getApplicationIdentifier() != 0) { + setApplicationIdentifier(other.getApplicationIdentifier()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getIdentifierFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getHourFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + input.readMessage( + getMinuteFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: { + int tmpRaw = input.readEnum(); + ensureDaysIsMutable(); + days_.add(tmpRaw); + break; + } // case 32 + case 34: { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while(input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureDaysIsMutable(); + days_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } // case 34 + case 42: { + input.readMessage( + getActiveFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 42 + case 48: { + applicationIdentifier_ = input.readInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.Int32Value identifier_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> identifierBuilder_; + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + * @return Whether the identifier field is set. + */ + public boolean hasIdentifier() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + * @return The identifier. + */ + public com.google.protobuf.Int32Value getIdentifier() { + if (identifierBuilder_ == null) { + return identifier_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : identifier_; + } else { + return identifierBuilder_.getMessage(); + } + } + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + public Builder setIdentifier(com.google.protobuf.Int32Value value) { + if (identifierBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + identifier_ = value; + } else { + identifierBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + public Builder setIdentifier( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (identifierBuilder_ == null) { + identifier_ = builderForValue.build(); + } else { + identifierBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + public Builder mergeIdentifier(com.google.protobuf.Int32Value value) { + if (identifierBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + identifier_ != null && + identifier_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getIdentifierBuilder().mergeFrom(value); + } else { + identifier_ = value; + } + } else { + identifierBuilder_.mergeFrom(value); + } + if (identifier_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + public Builder clearIdentifier() { + bitField0_ = (bitField0_ & ~0x00000001); + identifier_ = null; + if (identifierBuilder_ != null) { + identifierBuilder_.dispose(); + identifierBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + public com.google.protobuf.Int32Value.Builder getIdentifierBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getIdentifierFieldBuilder().getBuilder(); + } + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getIdentifierOrBuilder() { + if (identifierBuilder_ != null) { + return identifierBuilder_.getMessageOrBuilder(); + } else { + return identifier_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : identifier_; + } + } + /** + *
+       * => only if time profile entry is unchanged, do not provide attribute "id" if new profile entry shall be added
+       * If a new time profile shall be added: do not provide the ID => ID will be set by MIC / vehicle
+       * 
+ * + * .google.protobuf.Int32Value identifier = 1 [json_name = "id"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getIdentifierFieldBuilder() { + if (identifierBuilder_ == null) { + identifierBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getIdentifier(), + getParentForChildren(), + isClean()); + identifier_ = null; + } + return identifierBuilder_; + } + + private com.google.protobuf.Int32Value hour_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> hourBuilder_; + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + * @return Whether the hour field is set. + */ + public boolean hasHour() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + * @return The hour. + */ + public com.google.protobuf.Int32Value getHour() { + if (hourBuilder_ == null) { + return hour_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : hour_; + } else { + return hourBuilder_.getMessage(); + } + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + public Builder setHour(com.google.protobuf.Int32Value value) { + if (hourBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + hour_ = value; + } else { + hourBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + public Builder setHour( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (hourBuilder_ == null) { + hour_ = builderForValue.build(); + } else { + hourBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + public Builder mergeHour(com.google.protobuf.Int32Value value) { + if (hourBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + hour_ != null && + hour_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getHourBuilder().mergeFrom(value); + } else { + hour_ = value; + } + } else { + hourBuilder_.mergeFrom(value); + } + if (hour_ != null) { + bitField0_ |= 0x00000002; + onChanged(); + } + return this; + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + public Builder clearHour() { + bitField0_ = (bitField0_ & ~0x00000002); + hour_ = null; + if (hourBuilder_ != null) { + hourBuilder_.dispose(); + hourBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + public com.google.protobuf.Int32Value.Builder getHourBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getHourFieldBuilder().getBuilder(); + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getHourOrBuilder() { + if (hourBuilder_ != null) { + return hourBuilder_.getMessageOrBuilder(); + } else { + return hour_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : hour_; + } + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * .google.protobuf.Int32Value hour = 2 [json_name = "hour"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getHourFieldBuilder() { + if (hourBuilder_ == null) { + hourBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getHour(), + getParentForChildren(), + isClean()); + hour_ = null; + } + return hourBuilder_; + } + + private com.google.protobuf.Int32Value minute_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> minuteBuilder_; + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + * @return Whether the minute field is set. + */ + public boolean hasMinute() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + * @return The minute. + */ + public com.google.protobuf.Int32Value getMinute() { + if (minuteBuilder_ == null) { + return minute_ == null ? com.google.protobuf.Int32Value.getDefaultInstance() : minute_; + } else { + return minuteBuilder_.getMessage(); + } + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + public Builder setMinute(com.google.protobuf.Int32Value value) { + if (minuteBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + minute_ = value; + } else { + minuteBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + public Builder setMinute( + com.google.protobuf.Int32Value.Builder builderForValue) { + if (minuteBuilder_ == null) { + minute_ = builderForValue.build(); + } else { + minuteBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + public Builder mergeMinute(com.google.protobuf.Int32Value value) { + if (minuteBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && + minute_ != null && + minute_ != com.google.protobuf.Int32Value.getDefaultInstance()) { + getMinuteBuilder().mergeFrom(value); + } else { + minute_ = value; + } + } else { + minuteBuilder_.mergeFrom(value); + } + if (minute_ != null) { + bitField0_ |= 0x00000004; + onChanged(); + } + return this; + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + public Builder clearMinute() { + bitField0_ = (bitField0_ & ~0x00000004); + minute_ = null; + if (minuteBuilder_ != null) { + minuteBuilder_.dispose(); + minuteBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + public com.google.protobuf.Int32Value.Builder getMinuteBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getMinuteFieldBuilder().getBuilder(); + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + public com.google.protobuf.Int32ValueOrBuilder getMinuteOrBuilder() { + if (minuteBuilder_ != null) { + return minuteBuilder_.getMessageOrBuilder(); + } else { + return minute_ == null ? + com.google.protobuf.Int32Value.getDefaultInstance() : minute_; + } + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * .google.protobuf.Int32Value minute = 3 [json_name = "min"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder> + getMinuteFieldBuilder() { + if (minuteBuilder_ == null) { + minuteBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Int32Value, com.google.protobuf.Int32Value.Builder, com.google.protobuf.Int32ValueOrBuilder>( + getMinute(), + getParentForChildren(), + isClean()); + minute_ = null; + } + return minuteBuilder_; + } + + private java.util.List days_ = + java.util.Collections.emptyList(); + private void ensureDaysIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + days_ = new java.util.ArrayList(days_); + bitField0_ |= 0x00000008; + } + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the days. + */ + public java.util.List getDaysList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>(days_, days_converter_); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return The count of days. + */ + public int getDaysCount() { + return days_.size(); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the element to return. + * @return The days at the given index. + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index) { + return days_converter_.convert(days_.get(index)); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index to set the value at. + * @param value The days to set. + * @return This builder for chaining. + */ + public Builder setDays( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDaysIsMutable(); + days_.set(index, value.getNumber()); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param value The days to add. + * @return This builder for chaining. + */ + public Builder addDays(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDaysIsMutable(); + days_.add(value.getNumber()); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param values The days to add. + * @return This builder for chaining. + */ + public Builder addAllDays( + java.lang.Iterable values) { + ensureDaysIsMutable(); + for (com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value : values) { + days_.add(value.getNumber()); + } + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return This builder for chaining. + */ + public Builder clearDays() { + days_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the enum numeric values on the wire for days. + */ + public java.util.List + getDaysValueList() { + return java.util.Collections.unmodifiableList(days_); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of days at the given index. + */ + public int getDaysValue(int index) { + return days_.get(index); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for days to set. + * @return This builder for chaining. + */ + public Builder setDaysValue( + int index, int value) { + ensureDaysIsMutable(); + days_.set(index, value); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param value The enum numeric value on the wire for days to add. + * @return This builder for chaining. + */ + public Builder addDaysValue(int value) { + ensureDaysIsMutable(); + days_.add(value); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param values The enum numeric values on the wire for days to add. + * @return This builder for chaining. + */ + public Builder addAllDaysValue( + java.lang.Iterable values) { + ensureDaysIsMutable(); + for (int value : values) { + days_.add(value); + } + onChanged(); + return this; + } + + private com.google.protobuf.BoolValue active_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> activeBuilder_; + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + * @return Whether the active field is set. + */ + public boolean hasActive() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + * @return The active. + */ + public com.google.protobuf.BoolValue getActive() { + if (activeBuilder_ == null) { + return active_ == null ? com.google.protobuf.BoolValue.getDefaultInstance() : active_; + } else { + return activeBuilder_.getMessage(); + } + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + public Builder setActive(com.google.protobuf.BoolValue value) { + if (activeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + active_ = value; + } else { + activeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + public Builder setActive( + com.google.protobuf.BoolValue.Builder builderForValue) { + if (activeBuilder_ == null) { + active_ = builderForValue.build(); + } else { + activeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + public Builder mergeActive(com.google.protobuf.BoolValue value) { + if (activeBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + active_ != null && + active_ != com.google.protobuf.BoolValue.getDefaultInstance()) { + getActiveBuilder().mergeFrom(value); + } else { + active_ = value; + } + } else { + activeBuilder_.mergeFrom(value); + } + if (active_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + public Builder clearActive() { + bitField0_ = (bitField0_ & ~0x00000010); + active_ = null; + if (activeBuilder_ != null) { + activeBuilder_.dispose(); + activeBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + public com.google.protobuf.BoolValue.Builder getActiveBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getActiveFieldBuilder().getBuilder(); + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + public com.google.protobuf.BoolValueOrBuilder getActiveOrBuilder() { + if (activeBuilder_ != null) { + return activeBuilder_.getMessageOrBuilder(); + } else { + return active_ == null ? + com.google.protobuf.BoolValue.getDefaultInstance() : active_; + } + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * .google.protobuf.BoolValue active = 5 [json_name = "active"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder> + getActiveFieldBuilder() { + if (activeBuilder_ == null) { + activeBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.BoolValue, com.google.protobuf.BoolValue.Builder, com.google.protobuf.BoolValueOrBuilder>( + getActive(), + getParentForChildren(), + isClean()); + active_ = null; + } + return activeBuilder_; + } + + private int applicationIdentifier_ ; + /** + *
+       * If a timeProfile is changed or added the respective applicationId must be provided by the SDK
+       * 11 = Internal Apps
+       * 12 = External Apps
+       * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @return The applicationIdentifier. + */ + @java.lang.Override + public int getApplicationIdentifier() { + return applicationIdentifier_; + } + /** + *
+       * If a timeProfile is changed or added the respective applicationId must be provided by the SDK
+       * 11 = Internal Apps
+       * 12 = External Apps
+       * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @param value The applicationIdentifier to set. + * @return This builder for chaining. + */ + public Builder setApplicationIdentifier(int value) { + + applicationIdentifier_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * If a timeProfile is changed or added the respective applicationId must be provided by the SDK
+       * 11 = Internal Apps
+       * 12 = External Apps
+       * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @return This builder for chaining. + */ + public Builder clearApplicationIdentifier() { + bitField0_ = (bitField0_ & ~0x00000020); + applicationIdentifier_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TimeProfile) + } + + // @@protoc_insertion_point(class_scope:proto.TimeProfile) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TimeProfile parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfile getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SigPosStartOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SigPosStart) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Value needs to be between 0 and 30. The default is 0.
+     * Only allowed for RAMSES
+     * 
+ * + * int32 horn_repeat = 1 [json_name = "hornRepeat"]; + * @return The hornRepeat. + */ + int getHornRepeat(); + + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @return The enum numeric value on the wire for hornType. + */ + int getHornTypeValue(); + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @return The hornType. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType getHornType(); + + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @return The enum numeric value on the wire for lightType. + */ + int getLightTypeValue(); + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @return The lightType. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType getLightType(); + + /** + *
+     * Value needs to be between 0 and 10. It indicates how long the light should be switched on.
+     * 
+ * + * int32 sigpos_duration = 4 [json_name = "sigposDuration"]; + * @return The sigposDuration. + */ + int getSigposDuration(); + + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @return The enum numeric value on the wire for sigposType. + */ + int getSigposTypeValue(); + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @return The sigposType. + */ + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType getSigposType(); + } + /** + *
+   * Invoke the Remote Vehicle Finder for signalling the vehicle’s position with lights, horn or panic alarm.
+   * 
+ * + * Protobuf type {@code proto.SigPosStart} + */ + public static final class SigPosStart extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SigPosStart) + SigPosStartOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SigPosStart.class.getName()); + } + // Use SigPosStart.newBuilder() to construct. + private SigPosStart(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SigPosStart() { + hornType_ = 0; + lightType_ = 0; + sigposType_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SigPosStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SigPosStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.class, com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.Builder.class); + } + + /** + *
+     * Only allowed for RAMSES
+     * 
+ * + * Protobuf enum {@code proto.SigPosStart.HornType} + */ + public enum HornType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * HORN_OFF = 0; + */ + HORN_OFF(0), + /** + * HORN_LOW_VOLUME = 1; + */ + HORN_LOW_VOLUME(1), + /** + * HORN_HIGH_VOLUME = 2; + */ + HORN_HIGH_VOLUME(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + HornType.class.getName()); + } + /** + * HORN_OFF = 0; + */ + public static final int HORN_OFF_VALUE = 0; + /** + * HORN_LOW_VOLUME = 1; + */ + public static final int HORN_LOW_VOLUME_VALUE = 1; + /** + * HORN_HIGH_VOLUME = 2; + */ + public static final int HORN_HIGH_VOLUME_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static HornType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static HornType forNumber(int value) { + switch (value) { + case 0: return HORN_OFF; + case 1: return HORN_LOW_VOLUME; + case 2: return HORN_HIGH_VOLUME; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + HornType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public HornType findValueByNumber(int number) { + return HornType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDescriptor().getEnumTypes().get(0); + } + + private static final HornType[] VALUES = values(); + + public static HornType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private HornType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.SigPosStart.HornType) + } + + /** + *
+     * Only allowed for RAMSES
+     * 
+ * + * Protobuf enum {@code proto.SigPosStart.LightType} + */ + public enum LightType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * LIGHT_OFF = 0; + */ + LIGHT_OFF(0), + /** + * DIPPED_HEAD_LIGHT = 1; + */ + DIPPED_HEAD_LIGHT(1), + /** + * WARNING_LIGHT = 2; + */ + WARNING_LIGHT(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + LightType.class.getName()); + } + /** + * LIGHT_OFF = 0; + */ + public static final int LIGHT_OFF_VALUE = 0; + /** + * DIPPED_HEAD_LIGHT = 1; + */ + public static final int DIPPED_HEAD_LIGHT_VALUE = 1; + /** + * WARNING_LIGHT = 2; + */ + public static final int WARNING_LIGHT_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static LightType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static LightType forNumber(int value) { + switch (value) { + case 0: return LIGHT_OFF; + case 1: return DIPPED_HEAD_LIGHT; + case 2: return WARNING_LIGHT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + LightType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public LightType findValueByNumber(int number) { + return LightType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDescriptor().getEnumTypes().get(1); + } + + private static final LightType[] VALUES = values(); + + public static LightType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private LightType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.SigPosStart.LightType) + } + + /** + * Protobuf enum {@code proto.SigPosStart.SigposType} + */ + public enum SigposType + implements com.google.protobuf.ProtocolMessageEnum { + /** + * LIGHT_ONLY = 0; + */ + LIGHT_ONLY(0), + /** + *
+       * Only allowed for RAMSES
+       * 
+ * + * HORN_ONLY = 1; + */ + HORN_ONLY(1), + /** + *
+       * Only allowed for RAMSES
+       * 
+ * + * LIGHT_AND_HORN = 2; + */ + LIGHT_AND_HORN(2), + /** + *
+       * Only allowed for HERMES
+       * 
+ * + * PANIC_ALARM = 3; + */ + PANIC_ALARM(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SigposType.class.getName()); + } + /** + * LIGHT_ONLY = 0; + */ + public static final int LIGHT_ONLY_VALUE = 0; + /** + *
+       * Only allowed for RAMSES
+       * 
+ * + * HORN_ONLY = 1; + */ + public static final int HORN_ONLY_VALUE = 1; + /** + *
+       * Only allowed for RAMSES
+       * 
+ * + * LIGHT_AND_HORN = 2; + */ + public static final int LIGHT_AND_HORN_VALUE = 2; + /** + *
+       * Only allowed for HERMES
+       * 
+ * + * PANIC_ALARM = 3; + */ + public static final int PANIC_ALARM_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static SigposType valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static SigposType forNumber(int value) { + switch (value) { + case 0: return LIGHT_ONLY; + case 1: return HORN_ONLY; + case 2: return LIGHT_AND_HORN; + case 3: return PANIC_ALARM; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + SigposType> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public SigposType findValueByNumber(int number) { + return SigposType.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDescriptor().getEnumTypes().get(2); + } + + private static final SigposType[] VALUES = values(); + + public static SigposType valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private SigposType(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.SigPosStart.SigposType) + } + + public static final int HORN_REPEAT_FIELD_NUMBER = 1; + private int hornRepeat_ = 0; + /** + *
+     * Value needs to be between 0 and 30. The default is 0.
+     * Only allowed for RAMSES
+     * 
+ * + * int32 horn_repeat = 1 [json_name = "hornRepeat"]; + * @return The hornRepeat. + */ + @java.lang.Override + public int getHornRepeat() { + return hornRepeat_; + } + + public static final int HORN_TYPE_FIELD_NUMBER = 2; + private int hornType_ = 0; + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @return The enum numeric value on the wire for hornType. + */ + @java.lang.Override public int getHornTypeValue() { + return hornType_; + } + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @return The hornType. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType getHornType() { + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType result = com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType.forNumber(hornType_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType.UNRECOGNIZED : result; + } + + public static final int LIGHT_TYPE_FIELD_NUMBER = 3; + private int lightType_ = 0; + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @return The enum numeric value on the wire for lightType. + */ + @java.lang.Override public int getLightTypeValue() { + return lightType_; + } + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @return The lightType. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType getLightType() { + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType result = com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType.forNumber(lightType_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType.UNRECOGNIZED : result; + } + + public static final int SIGPOS_DURATION_FIELD_NUMBER = 4; + private int sigposDuration_ = 0; + /** + *
+     * Value needs to be between 0 and 10. It indicates how long the light should be switched on.
+     * 
+ * + * int32 sigpos_duration = 4 [json_name = "sigposDuration"]; + * @return The sigposDuration. + */ + @java.lang.Override + public int getSigposDuration() { + return sigposDuration_; + } + + public static final int SIGPOS_TYPE_FIELD_NUMBER = 5; + private int sigposType_ = 0; + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @return The enum numeric value on the wire for sigposType. + */ + @java.lang.Override public int getSigposTypeValue() { + return sigposType_; + } + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @return The sigposType. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType getSigposType() { + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType result = com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType.forNumber(sigposType_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (hornRepeat_ != 0) { + output.writeInt32(1, hornRepeat_); + } + if (hornType_ != com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType.HORN_OFF.getNumber()) { + output.writeEnum(2, hornType_); + } + if (lightType_ != com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType.LIGHT_OFF.getNumber()) { + output.writeEnum(3, lightType_); + } + if (sigposDuration_ != 0) { + output.writeInt32(4, sigposDuration_); + } + if (sigposType_ != com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType.LIGHT_ONLY.getNumber()) { + output.writeEnum(5, sigposType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (hornRepeat_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, hornRepeat_); + } + if (hornType_ != com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType.HORN_OFF.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, hornType_); + } + if (lightType_ != com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType.LIGHT_OFF.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, lightType_); + } + if (sigposDuration_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, sigposDuration_); + } + if (sigposType_ != com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType.LIGHT_ONLY.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(5, sigposType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart other = (com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) obj; + + if (getHornRepeat() + != other.getHornRepeat()) return false; + if (hornType_ != other.hornType_) return false; + if (lightType_ != other.lightType_) return false; + if (getSigposDuration() + != other.getSigposDuration()) return false; + if (sigposType_ != other.sigposType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + HORN_REPEAT_FIELD_NUMBER; + hash = (53 * hash) + getHornRepeat(); + hash = (37 * hash) + HORN_TYPE_FIELD_NUMBER; + hash = (53 * hash) + hornType_; + hash = (37 * hash) + LIGHT_TYPE_FIELD_NUMBER; + hash = (53 * hash) + lightType_; + hash = (37 * hash) + SIGPOS_DURATION_FIELD_NUMBER; + hash = (53 * hash) + getSigposDuration(); + hash = (37 * hash) + SIGPOS_TYPE_FIELD_NUMBER; + hash = (53 * hash) + sigposType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Invoke the Remote Vehicle Finder for signalling the vehicle’s position with lights, horn or panic alarm.
+     * 
+ * + * Protobuf type {@code proto.SigPosStart} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SigPosStart) + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStartOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SigPosStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SigPosStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.class, com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + hornRepeat_ = 0; + hornType_ = 0; + lightType_ = 0; + sigposDuration_ = 0; + sigposType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_SigPosStart_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart build() { + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart result = new com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.hornRepeat_ = hornRepeat_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.hornType_ = hornType_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.lightType_ = lightType_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.sigposDuration_ = sigposDuration_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.sigposType_ = sigposType_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.getDefaultInstance()) return this; + if (other.getHornRepeat() != 0) { + setHornRepeat(other.getHornRepeat()); + } + if (other.hornType_ != 0) { + setHornTypeValue(other.getHornTypeValue()); + } + if (other.lightType_ != 0) { + setLightTypeValue(other.getLightTypeValue()); + } + if (other.getSigposDuration() != 0) { + setSigposDuration(other.getSigposDuration()); + } + if (other.sigposType_ != 0) { + setSigposTypeValue(other.getSigposTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + hornRepeat_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + hornType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + lightType_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + sigposDuration_ = input.readInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + sigposType_ = input.readEnum(); + bitField0_ |= 0x00000010; + break; + } // case 40 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int hornRepeat_ ; + /** + *
+       * Value needs to be between 0 and 30. The default is 0.
+       * Only allowed for RAMSES
+       * 
+ * + * int32 horn_repeat = 1 [json_name = "hornRepeat"]; + * @return The hornRepeat. + */ + @java.lang.Override + public int getHornRepeat() { + return hornRepeat_; + } + /** + *
+       * Value needs to be between 0 and 30. The default is 0.
+       * Only allowed for RAMSES
+       * 
+ * + * int32 horn_repeat = 1 [json_name = "hornRepeat"]; + * @param value The hornRepeat to set. + * @return This builder for chaining. + */ + public Builder setHornRepeat(int value) { + + hornRepeat_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Value needs to be between 0 and 30. The default is 0.
+       * Only allowed for RAMSES
+       * 
+ * + * int32 horn_repeat = 1 [json_name = "hornRepeat"]; + * @return This builder for chaining. + */ + public Builder clearHornRepeat() { + bitField0_ = (bitField0_ & ~0x00000001); + hornRepeat_ = 0; + onChanged(); + return this; + } + + private int hornType_ = 0; + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @return The enum numeric value on the wire for hornType. + */ + @java.lang.Override public int getHornTypeValue() { + return hornType_; + } + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @param value The enum numeric value on the wire for hornType to set. + * @return This builder for chaining. + */ + public Builder setHornTypeValue(int value) { + hornType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @return The hornType. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType getHornType() { + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType result = com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType.forNumber(hornType_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType.UNRECOGNIZED : result; + } + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @param value The hornType to set. + * @return This builder for chaining. + */ + public Builder setHornType(com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + hornType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.SigPosStart.HornType horn_type = 2 [json_name = "hornType"]; + * @return This builder for chaining. + */ + public Builder clearHornType() { + bitField0_ = (bitField0_ & ~0x00000002); + hornType_ = 0; + onChanged(); + return this; + } + + private int lightType_ = 0; + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @return The enum numeric value on the wire for lightType. + */ + @java.lang.Override public int getLightTypeValue() { + return lightType_; + } + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @param value The enum numeric value on the wire for lightType to set. + * @return This builder for chaining. + */ + public Builder setLightTypeValue(int value) { + lightType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @return The lightType. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType getLightType() { + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType result = com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType.forNumber(lightType_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType.UNRECOGNIZED : result; + } + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @param value The lightType to set. + * @return This builder for chaining. + */ + public Builder setLightType(com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + lightType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.SigPosStart.LightType light_type = 3 [json_name = "lightType"]; + * @return This builder for chaining. + */ + public Builder clearLightType() { + bitField0_ = (bitField0_ & ~0x00000004); + lightType_ = 0; + onChanged(); + return this; + } + + private int sigposDuration_ ; + /** + *
+       * Value needs to be between 0 and 10. It indicates how long the light should be switched on.
+       * 
+ * + * int32 sigpos_duration = 4 [json_name = "sigposDuration"]; + * @return The sigposDuration. + */ + @java.lang.Override + public int getSigposDuration() { + return sigposDuration_; + } + /** + *
+       * Value needs to be between 0 and 10. It indicates how long the light should be switched on.
+       * 
+ * + * int32 sigpos_duration = 4 [json_name = "sigposDuration"]; + * @param value The sigposDuration to set. + * @return This builder for chaining. + */ + public Builder setSigposDuration(int value) { + + sigposDuration_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * Value needs to be between 0 and 10. It indicates how long the light should be switched on.
+       * 
+ * + * int32 sigpos_duration = 4 [json_name = "sigposDuration"]; + * @return This builder for chaining. + */ + public Builder clearSigposDuration() { + bitField0_ = (bitField0_ & ~0x00000008); + sigposDuration_ = 0; + onChanged(); + return this; + } + + private int sigposType_ = 0; + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @return The enum numeric value on the wire for sigposType. + */ + @java.lang.Override public int getSigposTypeValue() { + return sigposType_; + } + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @param value The enum numeric value on the wire for sigposType to set. + * @return This builder for chaining. + */ + public Builder setSigposTypeValue(int value) { + sigposType_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @return The sigposType. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType getSigposType() { + com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType result = com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType.forNumber(sigposType_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType.UNRECOGNIZED : result; + } + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @param value The sigposType to set. + * @return This builder for chaining. + */ + public Builder setSigposType(com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000010; + sigposType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.SigPosStart.SigposType sigpos_type = 5 [json_name = "sigposType"]; + * @return This builder for chaining. + */ + public Builder clearSigposType() { + bitField0_ = (bitField0_ & ~0x00000010); + sigposType_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SigPosStart) + } + + // @@protoc_insertion_point(class_scope:proto.SigPosStart) + private static final com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SigPosStart parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmConfirmDamagedetectionOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmConfirmDamagedetection) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Confirm the detected parking bump
+   * 
+ * + * Protobuf type {@code proto.TheftalarmConfirmDamagedetection} + */ + public static final class TheftalarmConfirmDamagedetection extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmConfirmDamagedetection) + TheftalarmConfirmDamagedetectionOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmConfirmDamagedetection.class.getName()); + } + // Use TheftalarmConfirmDamagedetection.newBuilder() to construct. + private TheftalarmConfirmDamagedetection(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmConfirmDamagedetection() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmConfirmDamagedetection_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmConfirmDamagedetection_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Confirm the detected parking bump
+     * 
+ * + * Protobuf type {@code proto.TheftalarmConfirmDamagedetection} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmConfirmDamagedetection) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetectionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmConfirmDamagedetection_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmConfirmDamagedetection_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmConfirmDamagedetection_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmConfirmDamagedetection) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmConfirmDamagedetection) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmConfirmDamagedetection parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmConfirmDamagedetection getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmDeselectDamagedetectionOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmDeselectDamagedetection) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to deselect the parking damage detection sensor
+   * 
+ * + * Protobuf type {@code proto.TheftalarmDeselectDamagedetection} + */ + public static final class TheftalarmDeselectDamagedetection extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmDeselectDamagedetection) + TheftalarmDeselectDamagedetectionOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmDeselectDamagedetection.class.getName()); + } + // Use TheftalarmDeselectDamagedetection.newBuilder() to construct. + private TheftalarmDeselectDamagedetection(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmDeselectDamagedetection() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectDamagedetection_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectDamagedetection_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to deselect the parking damage detection sensor
+     * 
+ * + * Protobuf type {@code proto.TheftalarmDeselectDamagedetection} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmDeselectDamagedetection) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetectionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectDamagedetection_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectDamagedetection_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectDamagedetection_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmDeselectDamagedetection) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmDeselectDamagedetection) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmDeselectDamagedetection parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectDamagedetection getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmDeselectInteriorOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmDeselectInterior) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to deselect the interior protection sensor
+   * 
+ * + * Protobuf type {@code proto.TheftalarmDeselectInterior} + */ + public static final class TheftalarmDeselectInterior extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmDeselectInterior) + TheftalarmDeselectInteriorOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmDeselectInterior.class.getName()); + } + // Use TheftalarmDeselectInterior.newBuilder() to construct. + private TheftalarmDeselectInterior(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmDeselectInterior() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectInterior_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectInterior_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to deselect the interior protection sensor
+     * 
+ * + * Protobuf type {@code proto.TheftalarmDeselectInterior} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmDeselectInterior) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInteriorOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectInterior_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectInterior_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectInterior_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmDeselectInterior) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmDeselectInterior) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmDeselectInterior parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectInterior getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmDeselectTowOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmDeselectTow) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to deselect the tow protection sensor
+   * 
+ * + * Protobuf type {@code proto.TheftalarmDeselectTow} + */ + public static final class TheftalarmDeselectTow extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmDeselectTow) + TheftalarmDeselectTowOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmDeselectTow.class.getName()); + } + // Use TheftalarmDeselectTow.newBuilder() to construct. + private TheftalarmDeselectTow(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmDeselectTow() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectTow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectTow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to deselect the tow protection sensor
+     * 
+ * + * Protobuf type {@code proto.TheftalarmDeselectTow} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmDeselectTow) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTowOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectTow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectTow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmDeselectTow_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmDeselectTow) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmDeselectTow) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmDeselectTow parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmDeselectTow getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmSelectDamagedetectionOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmSelectDamagedetection) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to select the parking damage detection sensor
+   * 
+ * + * Protobuf type {@code proto.TheftalarmSelectDamagedetection} + */ + public static final class TheftalarmSelectDamagedetection extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmSelectDamagedetection) + TheftalarmSelectDamagedetectionOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmSelectDamagedetection.class.getName()); + } + // Use TheftalarmSelectDamagedetection.newBuilder() to construct. + private TheftalarmSelectDamagedetection(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmSelectDamagedetection() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectDamagedetection_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectDamagedetection_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to select the parking damage detection sensor
+     * 
+ * + * Protobuf type {@code proto.TheftalarmSelectDamagedetection} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmSelectDamagedetection) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetectionOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectDamagedetection_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectDamagedetection_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectDamagedetection_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmSelectDamagedetection) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmSelectDamagedetection) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmSelectDamagedetection parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectDamagedetection getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmSelectInteriorOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmSelectInterior) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to select the interior protection sensor
+   * 
+ * + * Protobuf type {@code proto.TheftalarmSelectInterior} + */ + public static final class TheftalarmSelectInterior extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmSelectInterior) + TheftalarmSelectInteriorOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmSelectInterior.class.getName()); + } + // Use TheftalarmSelectInterior.newBuilder() to construct. + private TheftalarmSelectInterior(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmSelectInterior() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectInterior_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectInterior_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to select the interior protection sensor
+     * 
+ * + * Protobuf type {@code proto.TheftalarmSelectInterior} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmSelectInterior) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInteriorOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectInterior_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectInterior_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectInterior_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmSelectInterior) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmSelectInterior) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmSelectInterior parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectInterior getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmSelectTowOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmSelectTow) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to select the tow protection sensor
+   * 
+ * + * Protobuf type {@code proto.TheftalarmSelectTow} + */ + public static final class TheftalarmSelectTow extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmSelectTow) + TheftalarmSelectTowOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmSelectTow.class.getName()); + } + // Use TheftalarmSelectTow.newBuilder() to construct. + private TheftalarmSelectTow(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmSelectTow() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectTow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectTow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to select the tow protection sensor
+     * 
+ * + * Protobuf type {@code proto.TheftalarmSelectTow} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmSelectTow) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTowOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectTow_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectTow_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmSelectTow_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmSelectTow) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmSelectTow) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmSelectTow parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmSelectTow getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmStartOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmStart) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Specify how many seconds the alarm should be switched on
+     * 
+ * + * int32 alarm_duration_in_seconds = 1 [json_name = "alarmduration"]; + * @return The alarmDurationInSeconds. + */ + int getAlarmDurationInSeconds(); + } + /** + *
+   * Provide the functionality to trigger an alarm that lasts for "alarm_duration" seconds
+   * 
+ * + * Protobuf type {@code proto.TheftalarmStart} + */ + public static final class TheftalarmStart extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmStart) + TheftalarmStartOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmStart.class.getName()); + } + // Use TheftalarmStart.newBuilder() to construct. + private TheftalarmStart(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmStart() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.Builder.class); + } + + public static final int ALARM_DURATION_IN_SECONDS_FIELD_NUMBER = 1; + private int alarmDurationInSeconds_ = 0; + /** + *
+     * Specify how many seconds the alarm should be switched on
+     * 
+ * + * int32 alarm_duration_in_seconds = 1 [json_name = "alarmduration"]; + * @return The alarmDurationInSeconds. + */ + @java.lang.Override + public int getAlarmDurationInSeconds() { + return alarmDurationInSeconds_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (alarmDurationInSeconds_ != 0) { + output.writeInt32(1, alarmDurationInSeconds_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (alarmDurationInSeconds_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, alarmDurationInSeconds_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) obj; + + if (getAlarmDurationInSeconds() + != other.getAlarmDurationInSeconds()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ALARM_DURATION_IN_SECONDS_FIELD_NUMBER; + hash = (53 * hash) + getAlarmDurationInSeconds(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to trigger an alarm that lasts for "alarm_duration" seconds
+     * 
+ * + * Protobuf type {@code proto.TheftalarmStart} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmStart) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStartOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStart_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStart_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + alarmDurationInSeconds_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStart_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.alarmDurationInSeconds_ = alarmDurationInSeconds_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart.getDefaultInstance()) return this; + if (other.getAlarmDurationInSeconds() != 0) { + setAlarmDurationInSeconds(other.getAlarmDurationInSeconds()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + alarmDurationInSeconds_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int alarmDurationInSeconds_ ; + /** + *
+       * Specify how many seconds the alarm should be switched on
+       * 
+ * + * int32 alarm_duration_in_seconds = 1 [json_name = "alarmduration"]; + * @return The alarmDurationInSeconds. + */ + @java.lang.Override + public int getAlarmDurationInSeconds() { + return alarmDurationInSeconds_; + } + /** + *
+       * Specify how many seconds the alarm should be switched on
+       * 
+ * + * int32 alarm_duration_in_seconds = 1 [json_name = "alarmduration"]; + * @param value The alarmDurationInSeconds to set. + * @return This builder for chaining. + */ + public Builder setAlarmDurationInSeconds(int value) { + + alarmDurationInSeconds_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Specify how many seconds the alarm should be switched on
+       * 
+ * + * int32 alarm_duration_in_seconds = 1 [json_name = "alarmduration"]; + * @return This builder for chaining. + */ + public Builder clearAlarmDurationInSeconds() { + bitField0_ = (bitField0_ & ~0x00000001); + alarmDurationInSeconds_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmStart) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmStart) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmStart parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStart getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TheftalarmStopOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TheftalarmStop) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * Provide the functionality to deactivate an active/ongoing alarm
+   * 
+ * + * Protobuf type {@code proto.TheftalarmStop} + */ + public static final class TheftalarmStop extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TheftalarmStop) + TheftalarmStopOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TheftalarmStop.class.getName()); + } + // Use TheftalarmStop.newBuilder() to construct. + private TheftalarmStop(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TheftalarmStop() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop other = (com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Provide the functionality to deactivate an active/ongoing alarm
+     * 
+ * + * Protobuf type {@code proto.TheftalarmStop} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TheftalarmStop) + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStopOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStop_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStop_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.class, com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_TheftalarmStop_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop build() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop result = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TheftalarmStop) + } + + // @@protoc_insertion_point(class_scope:proto.TheftalarmStop) + private static final com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TheftalarmStop parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TheftalarmStop getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AutomaticValetParkingActivateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AutomaticValetParkingActivate) + com.google.protobuf.MessageOrBuilder { + + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @return The bookingId. + */ + java.lang.String getBookingId(); + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @return The bytes for bookingId. + */ + com.google.protobuf.ByteString + getBookingIdBytes(); + + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @return The enum numeric value on the wire for driveType. + */ + int getDriveTypeValue(); + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @return The driveType. + */ + com.daimler.mbcarkit.proto.VehicleCommands.DriveType getDriveType(); + } + /** + * Protobuf type {@code proto.AutomaticValetParkingActivate} + */ + public static final class AutomaticValetParkingActivate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AutomaticValetParkingActivate) + AutomaticValetParkingActivateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AutomaticValetParkingActivate.class.getName()); + } + // Use AutomaticValetParkingActivate.newBuilder() to construct. + private AutomaticValetParkingActivate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AutomaticValetParkingActivate() { + bookingId_ = ""; + driveType_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AutomaticValetParkingActivate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AutomaticValetParkingActivate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.class, com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.Builder.class); + } + + public static final int BOOKING_ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object bookingId_ = ""; + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @return The bookingId. + */ + @java.lang.Override + public java.lang.String getBookingId() { + java.lang.Object ref = bookingId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bookingId_ = s; + return s; + } + } + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @return The bytes for bookingId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBookingIdBytes() { + java.lang.Object ref = bookingId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + bookingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DRIVE_TYPE_FIELD_NUMBER = 2; + private int driveType_ = 0; + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @return The enum numeric value on the wire for driveType. + */ + @java.lang.Override public int getDriveTypeValue() { + return driveType_; + } + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @return The driveType. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleCommands.DriveType getDriveType() { + com.daimler.mbcarkit.proto.VehicleCommands.DriveType result = com.daimler.mbcarkit.proto.VehicleCommands.DriveType.forNumber(driveType_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.DriveType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(bookingId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, bookingId_); + } + if (driveType_ != com.daimler.mbcarkit.proto.VehicleCommands.DriveType.UNKNOWN_DRIVE_TYPE.getNumber()) { + output.writeEnum(2, driveType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(bookingId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, bookingId_); + } + if (driveType_ != com.daimler.mbcarkit.proto.VehicleCommands.DriveType.UNKNOWN_DRIVE_TYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(2, driveType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate other = (com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) obj; + + if (!getBookingId() + .equals(other.getBookingId())) return false; + if (driveType_ != other.driveType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + BOOKING_ID_FIELD_NUMBER; + hash = (53 * hash) + getBookingId().hashCode(); + hash = (37 * hash) + DRIVE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + driveType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AutomaticValetParkingActivate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AutomaticValetParkingActivate) + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AutomaticValetParkingActivate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AutomaticValetParkingActivate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.class, com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + bookingId_ = ""; + driveType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_AutomaticValetParkingActivate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate build() { + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate result = new com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.bookingId_ = bookingId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.driveType_ = driveType_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate.getDefaultInstance()) return this; + if (!other.getBookingId().isEmpty()) { + bookingId_ = other.bookingId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.driveType_ != 0) { + setDriveTypeValue(other.getDriveTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + bookingId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + driveType_ = input.readEnum(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object bookingId_ = ""; + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @return The bookingId. + */ + public java.lang.String getBookingId() { + java.lang.Object ref = bookingId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + bookingId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @return The bytes for bookingId. + */ + public com.google.protobuf.ByteString + getBookingIdBytes() { + java.lang.Object ref = bookingId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + bookingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @param value The bookingId to set. + * @return This builder for chaining. + */ + public Builder setBookingId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + bookingId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @return This builder for chaining. + */ + public Builder clearBookingId() { + bookingId_ = getDefaultInstance().getBookingId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string booking_id = 1 [json_name = "bookingId"]; + * @param value The bytes for bookingId to set. + * @return This builder for chaining. + */ + public Builder setBookingIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + bookingId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private int driveType_ = 0; + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @return The enum numeric value on the wire for driveType. + */ + @java.lang.Override public int getDriveTypeValue() { + return driveType_; + } + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @param value The enum numeric value on the wire for driveType to set. + * @return This builder for chaining. + */ + public Builder setDriveTypeValue(int value) { + driveType_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @return The driveType. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.DriveType getDriveType() { + com.daimler.mbcarkit.proto.VehicleCommands.DriveType result = com.daimler.mbcarkit.proto.VehicleCommands.DriveType.forNumber(driveType_); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.DriveType.UNRECOGNIZED : result; + } + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @param value The driveType to set. + * @return This builder for chaining. + */ + public Builder setDriveType(com.daimler.mbcarkit.proto.VehicleCommands.DriveType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000002; + driveType_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.DriveType drive_type = 2 [json_name = "driveType"]; + * @return This builder for chaining. + */ + public Builder clearDriveType() { + bitField0_ = (bitField0_ & ~0x00000002); + driveType_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AutomaticValetParkingActivate) + } + + // @@protoc_insertion_point(class_scope:proto.AutomaticValetParkingActivate) + private static final com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AutomaticValetParkingActivate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.AutomaticValetParkingActivate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeFlapUnlockOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeFlapUnlock) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.ChargeFlapUnlock} + */ + public static final class ChargeFlapUnlock extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeFlapUnlock) + ChargeFlapUnlockOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeFlapUnlock.class.getName()); + } + // Use ChargeFlapUnlock.newBuilder() to construct. + private ChargeFlapUnlock(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeFlapUnlock() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeFlapUnlock_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeFlapUnlock_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock other = (com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ChargeFlapUnlock} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeFlapUnlock) + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlockOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeFlapUnlock_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeFlapUnlock_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeFlapUnlock_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock build() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock result = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeFlapUnlock) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeFlapUnlock) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeFlapUnlock parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeFlapUnlock getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeCouplerUnlockOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeCouplerUnlock) + com.google.protobuf.MessageOrBuilder { + } + /** + * Protobuf type {@code proto.ChargeCouplerUnlock} + */ + public static final class ChargeCouplerUnlock extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeCouplerUnlock) + ChargeCouplerUnlockOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeCouplerUnlock.class.getName()); + } + // Use ChargeCouplerUnlock.newBuilder() to construct. + private ChargeCouplerUnlock(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeCouplerUnlock() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeCouplerUnlock_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeCouplerUnlock_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock other = (com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ChargeCouplerUnlock} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeCouplerUnlock) + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlockOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeCouplerUnlock_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeCouplerUnlock_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.class, com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.internal_static_proto_ChargeCouplerUnlock_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock build() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock buildPartial() { + com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock result = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock other) { + if (other == com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeCouplerUnlock) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeCouplerUnlock) + private static final com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock(); + } + + public static com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeCouplerUnlock parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.ChargeCouplerUnlock getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeCommandRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeCommandRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_CommandRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_CommandRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_DeactivateVehicleKeys_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_DeactivateVehicleKeys_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ActivateVehicleKeys_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ActivateVehicleKeys_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AuxheatStart_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AuxheatStart_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AuxheatStop_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AuxheatStop_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AuxheatConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AuxheatConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_DoorsLock_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_DoorsLock_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_DoorsUnlock_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_DoorsUnlock_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_EngineStart_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_EngineStart_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_EngineStop_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_EngineStop_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SunroofOpen_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SunroofOpen_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SunroofClose_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SunroofClose_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SunroofLift_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SunroofLift_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SunroofMove_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SunroofMove_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WindowsOpen_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WindowsOpen_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WindowsClose_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WindowsClose_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WindowsVentilate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WindowsVentilate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WindowsMove_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WindowsMove_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SpeedalertStart_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SpeedalertStart_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SpeedalertStop_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SpeedalertStop_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ZEVPreconditioningStart_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ZEVPreconditioningStart_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ZEVPreconditioningStop_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ZEVPreconditioningStop_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ZEVPreconditioningConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ZEVPreconditioningConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ZEVPreconditioningConfigureSeats_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ZEVPreconditioningConfigureSeats_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_BatteryChargeProgramConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_BatteryChargeProgramConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_BatteryMaxSocConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_BatteryMaxSocConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeProgramConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeProgramConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeControlConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeControlConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeOptConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeOptConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeOptConfigure_Tariff_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeOptConfigure_Tariff_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeOptStart_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeOptStart_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeOptStop_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeOptStop_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TemperatureConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TemperatureConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TemperatureConfigure_TemperaturePoint_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TemperatureConfigure_TemperaturePoint_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WeekProfileConfigure_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WeekProfileConfigure_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WeekProfileConfigure_WeeklySetHU_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WeekProfileConfigure_WeeklySetHU_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WeekProfileConfigureV2_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WeekProfileConfigureV2_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TimeProfile_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TimeProfile_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SigPosStart_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SigPosStart_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmConfirmDamagedetection_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmConfirmDamagedetection_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmDeselectDamagedetection_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmDeselectDamagedetection_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmDeselectInterior_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmDeselectInterior_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmDeselectTow_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmDeselectTow_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmSelectDamagedetection_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmSelectDamagedetection_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmSelectInterior_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmSelectInterior_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmSelectTow_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmSelectTow_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmStart_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmStart_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TheftalarmStop_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TheftalarmStop_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AutomaticValetParkingActivate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AutomaticValetParkingActivate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeFlapUnlock_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeFlapUnlock_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeCouplerUnlock_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeCouplerUnlock_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\026vehicle-commands.proto\022\005proto\032\ngogo.pr" + + "oto\032\036google/protobuf/wrappers.proto\"/\n\031A" + + "cknowledgeCommandRequest\022\022\n\nrequest_id\030\001" + + " \001(\t\"\230\026\n\016CommandRequest\022\013\n\003vin\030\001 \001(\t\022\022\n\n" + + "request_id\030\007 \001(\t\022.\n\007backend\030$ \001(\0162\035.prot" + + "o.CommandRequest.Backend\022,\n\rauxheat_star" + + "t\030\002 \001(\0132\023.proto.AuxheatStartH\000\022*\n\014auxhea" + + "t_stop\030\003 \001(\0132\022.proto.AuxheatStopH\000\0224\n\021au" + + "xheat_configure\030\004 \001(\0132\027.proto.AuxheatCon" + + "figureH\000\022&\n\ndoors_lock\030\005 \001(\0132\020.proto.Doo" + + "rsLockH\000\022*\n\014doors_unlock\030\006 \001(\0132\022.proto.D" + + "oorsUnlockH\000\022*\n\014sunroof_open\030\t \001(\0132\022.pro" + + "to.SunroofOpenH\000\022,\n\rsunroof_close\030\n \001(\0132" + + "\023.proto.SunroofCloseH\000\022*\n\014sunroof_lift\030\013" + + " \001(\0132\022.proto.SunroofLiftH\000\022*\n\014sunroof_mo" + + "ve\030/ \001(\0132\022.proto.SunroofMoveH\000\022*\n\014window" + + "s_open\030\014 \001(\0132\022.proto.WindowsOpenH\000\022,\n\rwi" + + "ndows_close\030\r \001(\0132\023.proto.WindowsCloseH\000" + + "\0224\n\021windows_ventilate\030+ \001(\0132\027.proto.Wind" + + "owsVentilateH\000\022*\n\014windows_move\030, \001(\0132\022.p" + + "roto.WindowsMoveH\000\022*\n\014engine_start\030\023 \001(\013" + + "2\022.proto.EngineStartH\000\022(\n\013engine_stop\030\024 " + + "\001(\0132\021.proto.EngineStopH\000\022C\n\031zev_precondi" + + "tioning_start\030\025 \001(\0132\036.proto.ZEVPrecondit" + + "ioningStartH\000\022A\n\030zev_preconditioning_sto" + + "p\030\026 \001(\0132\035.proto.ZEVPreconditioningStopH\000" + + "\022H\n\032zev_precondition_configure\030\031 \001(\0132\".p" + + "roto.ZEVPreconditioningConfigureH\000\022S\n ze" + + "v_precondition_configure_seats\030\032 \001(\0132\'.p" + + "roto.ZEVPreconditioningConfigureSeatsH\000\022" + + "2\n\020speedalert_start\030\027 \001(\0132\026.proto.Speeda" + + "lertStartH\000\0220\n\017speedalert_stop\030\030 \001(\0132\025.p" + + "roto.SpeedalertStopH\000\022F\n\026battery_charge_" + + "program\030\033 \001(\0132$.proto.BatteryChargeProgr" + + "amConfigureH\000\0228\n\017battery_max_soc\030\034 \001(\0132\035" + + ".proto.BatteryMaxSocConfigureH\000\022A\n\030charg" + + "e_program_configure\030\" \001(\0132\035.proto.Charge" + + "ProgramConfigureH\000\022A\n\030charge_control_con" + + "figure\030( \001(\0132\035.proto.ChargeControlConfig" + + "ureH\000\0229\n\024charge_opt_configure\030\035 \001(\0132\031.pr" + + "oto.ChargeOptConfigureH\000\0221\n\020charge_opt_s" + + "tart\030\036 \001(\0132\025.proto.ChargeOptStartH\000\022/\n\017c" + + "harge_opt_stop\030\037 \001(\0132\024.proto.ChargeOptSt" + + "opH\000\022<\n\025temperature_configure\030 \001(\0132\033.pr" + + "oto.TemperatureConfigureH\000\022=\n\026week_profi" + + "le_configure\030! \001(\0132\033.proto.WeekProfileCo" + + "nfigureH\000\022B\n\031week_profile_configure_v2\030)" + + " \001(\0132\035.proto.WeekProfileConfigureV2H\000\022*\n" + + "\014sigpos_start\030# \001(\0132\022.proto.SigPosStartH" + + "\000\022U\n\"theftalarm_confirm_damagedetection\030" + + "\010 \001(\0132\'.proto.TheftalarmConfirmDamagedet" + + "ectionH\000\022W\n#theftalarm_deselect_damagede" + + "tection\030\016 \001(\0132(.proto.TheftalarmDeselect" + + "DamagedetectionH\000\022I\n\034theftalarm_deselect" + + "_interior\030\017 \001(\0132!.proto.TheftalarmDesele" + + "ctInteriorH\000\022?\n\027theftalarm_deselect_tow\030" + + "\020 \001(\0132\034.proto.TheftalarmDeselectTowH\000\022S\n" + + "!theftalarm_select_damagedetection\030\021 \001(\013" + + "2&.proto.TheftalarmSelectDamagedetection" + + "H\000\022E\n\032theftalarm_select_interior\030\022 \001(\0132\037" + + ".proto.TheftalarmSelectInteriorH\000\022;\n\025the" + + "ftalarm_select_tow\030% \001(\0132\032.proto.Theftal" + + "armSelectTowH\000\0222\n\020theftalarm_start\030& \001(\013" + + "2\026.proto.TheftalarmStartH\000\0220\n\017theftalarm" + + "_stop\030\' \001(\0132\025.proto.TheftalarmStopH\000\022P\n " + + "automatic_valet_parking_activate\030* \001(\0132$" + + ".proto.AutomaticValetParkingActivateH\000\0225" + + "\n\022charge_flap_unlock\030- \001(\0132\027.proto.Charg" + + "eFlapUnlockH\000\022;\n\025charge_coupler_unlock\030." + + " \001(\0132\032.proto.ChargeCouplerUnlockH\000\022?\n\027de" + + "activate_vehicle_keys\0300 \001(\0132\034.proto.Deac" + + "tivateVehicleKeysH\000\022;\n\025activate_vehicle_" + + "keys\0301 \001(\0132\032.proto.ActivateVehicleKeysH\000" + + "\"\"\n\007Backend\022\007\n\003VVA\020\000\022\016\n\nVehicleAPI\020\001B\t\n\007" + + "command\"\245\001\n\025DeactivateVehicleKeys\022\013\n\003pin" + + "\030\001 \001(\t\022\027\n\017expiration_unix\030\002 \001(\003\022-\n\022expir" + + "ation_seconds\030\003 \001(\tR\021expirationSeconds\0227" + + "\n\027expiration_milliseconds\030\004 \001(\tR\026expirat" + + "ionMilliseconds\"\243\001\n\023ActivateVehicleKeys\022" + + "\013\n\003pin\030\001 \001(\t\022\027\n\017expiration_unix\030\002 \001(\003\022-\n" + + "\022expiration_seconds\030\003 \001(\tR\021expirationSec" + + "onds\0227\n\027expiration_milliseconds\030\004 \001(\tR\026e" + + "xpirationMilliseconds\"\016\n\014AuxheatStart\"\r\n" + + "\013AuxheatStop\"\200\002\n\020AuxheatConfigure\022O\n\016tim" + + "e_selection\030\001 \001(\0162!.proto.AuxheatConfigu" + + "re.SelectionR\024auxheattimeselection\022\034\n\006ti" + + "me_1\030\002 \001(\005R\014auxheattime1\022\034\n\006time_2\030\003 \001(\005" + + "R\014auxheattime2\022\034\n\006time_3\030\004 \001(\005R\014auxheatt" + + "ime3\"A\n\tSelection\022\020\n\014NO_SELECTION\020\000\022\n\n\006T" + + "IME_1\020\001\022\n\n\006TIME_2\020\002\022\n\n\006TIME_3\020\003\"\'\n\tDoors" + + "Lock\022\032\n\005doors\030\001 \003(\0162\013.proto.Door\"6\n\013Door" + + "sUnlock\022\013\n\003pin\030\001 \001(\t\022\032\n\005doors\030\002 \003(\0162\013.pr" + + "oto.Door\"\032\n\013EngineStart\022\013\n\003pin\030\001 \001(\t\"\014\n\n" + + "EngineStop\"\032\n\013SunroofOpen\022\013\n\003pin\030\001 \001(\t\"\016" + + "\n\014SunroofClose\"\032\n\013SunroofLift\022\013\n\003pin\030\001 \001" + + "(\t\"\351\001\n\013SunroofMove\022\013\n\003pin\030\001 \001(\t\0225\n\007sunro" + + "of\030\002 \001(\0132\033.google.protobuf.Int32ValueR\007s" + + "unroof\022K\n\023sunroof_blind_front\030\003 \001(\0132\033.go" + + "ogle.protobuf.Int32ValueR\021sunroofblindfr" + + "ont\022I\n\022sunroof_blind_rear\030\004 \001(\0132\033.google" + + ".protobuf.Int32ValueR\020sunroofblindrear\"\032" + + "\n\013WindowsOpen\022\013\n\003pin\030\001 \001(\t\"\016\n\014WindowsClo" + + "se\"\037\n\020WindowsVentilate\022\013\n\003pin\030\001 \001(\t\"\374\003\n\013" + + "WindowsMove\022\013\n\003pin\030\001 \001(\t\022@\n\nfront_left\030\002" + + " \001(\0132\033.google.protobuf.Int32ValueR\017windo" + + "wfrontleft\022B\n\013front_right\030\003 \001(\0132\033.google" + + ".protobuf.Int32ValueR\020windowfrontright\022@" + + "\n\nrear_blind\030\004 \001(\0132\033.google.protobuf.Int" + + "32ValueR\017windowrearblind\022>\n\trear_left\030\005 " + + "\001(\0132\033.google.protobuf.Int32ValueR\016window" + + "rearleft\022I\n\017rear_left_blind\030\006 \001(\0132\033.goog" + + "le.protobuf.Int32ValueR\023windowrearleftbl" + + "ind\022@\n\nrear_right\030\007 \001(\0132\033.google.protobu" + + "f.Int32ValueR\017windowrearright\022K\n\020rear_ri" + + "ght_blind\030\010 \001(\0132\033.google.protobuf.Int32V" + + "alueR\024windowrearrightblind\"d\n\017Speedalert" + + "Start\022&\n\tthreshold\030\001 \001(\005R\023speedAlertThre" + + "shold\022)\n\016alert_end_time\030\002 \001(\003R\021speedAler" + + "tEndTime\"\020\n\016SpeedalertStop\"s\n\027ZEVPrecond" + + "itioningStart\022%\n\016departure_time\030\001 \001(\005R\rd" + + "eparturetime\0221\n\004type\030\002 \001(\0162\035.proto.ZEVPr" + + "econditioningTypeR\004type\"K\n\026ZEVPreconditi" + + "oningStop\0221\n\004type\030\002 \001(\0162\035.proto.ZEVPreco" + + "nditioningTypeR\004type\"\371\001\n\033ZEVPrecondition" + + "ingConfigure\022d\n\023departure_time_mode\030\001 \001(" + + "\01624.proto.ZEVPreconditioningConfigure.De" + + "partureTimeModeR\021departureTimeMode\022%\n\016de" + + "parture_time\030\003 \001(\005R\rdeparturetime\"M\n\021Dep" + + "artureTimeMode\022\014\n\010DISABLED\020\000\022\024\n\020SINGLE_D" + + "EPARTURE\020\001\022\024\n\020WEEKLY_DEPARTURE\020\002\"\312\001\n ZEV" + + "PreconditioningConfigureSeats\022(\n\nfront_l" + + "eft\030\001 \001(\010R\024precondSeatFrontLeft\022*\n\013front" + + "_right\030\002 \001(\010R\025precondSeatFrontRight\022&\n\tr" + + "ear_left\030\003 \001(\010R\023precondSeatRearLeft\022(\n\nr" + + "ear_right\030\004 \001(\010R\024precondSeatRearRight\"\245\001" + + "\n\035BatteryChargeProgramConfigure\022Y\n\016charg" + + "e_program\030\001 \001(\01622.proto.BatteryChargePro" + + "gramConfigure.ChargeProgramR\rchargeprogr" + + "am\")\n\rChargeProgram\022\013\n\007DEFAULT\020\000\022\013\n\007INST" + + "ANT\020\001\"1\n\026BatteryMaxSocConfigure\022\027\n\007max_s" + + "oc\030\001 \001(\005R\006maxsoc\"\216\004\n\026ChargeProgramConfig" + + "ure\022R\n\016charge_program\030\001 \001(\0162+.proto.Char" + + "geProgramConfigure.ChargeProgramR\rcharge" + + "program\0224\n\007max_soc\030\002 \001(\0132\033.google.protob" + + "uf.Int32ValueR\006maxsoc\022;\n\013auto_unlock\030\003 \001" + + "(\0132\032.google.protobuf.BoolValueR\nautounlo" + + "ck\022R\n\027location_based_charging\030\004 \001(\0132\032.go" + + "ogle.protobuf.BoolValueR\025locationbasedch" + + "arging\022;\n\013clock_timer\030\006 \001(\0132\032.google.pro" + + "tobuf.BoolValueR\nclocktimer\022=\n\014eco_charg" + + "ing\030\007 \001(\0132\032.google.protobuf.BoolValueR\013e" + + "cocharging\"]\n\rChargeProgram\022\032\n\026DEFAULT_C" + + "HARGE_PROGRAM\020\000\022\027\n\023HOME_CHARGE_PROGRAM\020\002" + + "\022\027\n\023WORK_CHARGE_PROGRAM\020\003\"\340\001\n\026ChargeCont" + + "rolConfigure\022L\n\023bi_charging_enabled\030\001 \001(" + + "\0132\032.google.protobuf.BoolValueR\023bidicharg" + + "ingenabled\022B\n\016charging_power\030\002 \001(\0132\033.goo" + + "gle.protobuf.FloatValueR\rchargingpower\0224" + + "\n\007min_soc\030\003 \001(\0132\033.google.protobuf.Int32V" + + "alueR\006minsoc\"\314\002\n\022ChargeOptConfigure\022G\n\016w" + + "eekday_tariff\030\001 \003(\0132 .proto.ChargeOptCon" + + "figure.TariffR\rweekdaytariff\022G\n\016weekend_" + + "tariff\030\002 \003(\0132 .proto.ChargeOptConfigure." + + "TariffR\rweekendtariff\032\243\001\n\006Tariff\0229\n\004rate" + + "\030\001 \001(\0162%.proto.ChargeOptConfigure.Tariff" + + ".RateR\004rate\022\022\n\004time\030\002 \001(\005R\004time\"J\n\004Rate\022" + + "\021\n\rINVALID_PRICE\020\000\022\r\n\tLOW_PRICE\020!\022\020\n\014NOR" + + "MAL_PRICE\020,\022\016\n\nHIGH_PRICE\020B\"\020\n\016ChargeOpt" + + "Start\"\017\n\rChargeOptStop\"\315\004\n\024TemperatureCo" + + "nfigure\022[\n\022temperature_points\030\001 \003(\0132,.pr" + + "oto.TemperatureConfigure.TemperaturePoin" + + "tR\021temperaturePoints\032\327\003\n\020TemperaturePoin" + + "t\022E\n\004zone\030\001 \001(\01621.proto.TemperatureConfi" + + "gure.TemperaturePoint.ZoneR\004zone\022$\n\026temp" + + "erature_in_celsius\030\003 \001(\001R\004temp\"\317\002\n\004Zone\022" + + "\013\n\007unknown\020\000\022\r\n\tfrontLeft\020\001\022\016\n\nfrontRigh" + + "t\020\002\022\017\n\013frontCenter\020\003\022\014\n\010rearLeft\020\004\022\r\n\tre" + + "arRight\020\005\022\016\n\nrearCenter\020\006\022\r\n\trear2Left\020\007" + + "\022\016\n\nrear2Right\020\010\022\017\n\013rear2Center\020\t\022\020\n\014UNK" + + "NOWN_ZONE\020\000\022\016\n\nFRONT_LEFT\020\001\022\017\n\013FRONT_RIG" + + "HT\020\002\022\020\n\014FRONT_CENTER\020\003\022\r\n\tREAR_LEFT\020\004\022\016\n" + + "\nREAR_RIGHT\020\005\022\017\n\013REAR_CENTER\020\006\022\017\n\013REAR_2" + + "_LEFT\020\007\022\020\n\014REAR_2_RIGHT\020\010\022\021\n\rREAR_2_CENT" + + "ER\020\t\032\002\020\001J\004\010\002\020\003\"\251\002\n\024WeekProfileConfigure\022" + + "K\n\rweekly_set_hu\030\001 \003(\0132\'.proto.WeekProfi" + + "leConfigure.WeeklySetHUR\013weeklySetHU\032\303\001\n" + + "\013WeeklySetHU\022=\n\003day\030\001 \001(\0162+.proto.WeekPr" + + "ofileConfigure.WeeklySetHU.DayR\003day\022\022\n\004t" + + "ime\030\002 \001(\005R\004time\"a\n\003Day\022\n\n\006MONDAY\020\000\022\013\n\007TU" + + "ESDAY\020\001\022\r\n\tWEDNESDAY\020\002\022\014\n\010THURSDAY\020\003\022\n\n\006" + + "FRIDAY\020\004\022\014\n\010SATURDAY\020\005\022\n\n\006SUNDAY\020\006\"Q\n\026We" + + "ekProfileConfigureV2\0227\n\rtime_profiles\030\001 " + + "\003(\0132\022.proto.TimeProfileR\014timeprofiles\"\262\002" + + "\n\013TimeProfile\0223\n\nidentifier\030\001 \001(\0132\033.goog" + + "le.protobuf.Int32ValueR\002id\022/\n\004hour\030\002 \001(\013" + + "2\033.google.protobuf.Int32ValueR\004hour\0220\n\006m" + + "inute\030\003 \001(\0132\033.google.protobuf.Int32Value" + + "R\003min\022(\n\004days\030\004 \003(\0162\025.proto.TimeProfileD" + + "ayR\003day\0222\n\006active\030\005 \001(\0132\032.google.protobu" + + "f.BoolValueR\006active\022-\n\026application_ident" + + "ifier\030\006 \001(\005R\rapplicationId\"\353\003\n\013SigPosSta" + + "rt\022\037\n\013horn_repeat\030\001 \001(\005R\nhornRepeat\0228\n\th" + + "orn_type\030\002 \001(\0162\033.proto.SigPosStart.HornT" + + "ypeR\010hornType\022;\n\nlight_type\030\003 \001(\0162\034.prot" + + "o.SigPosStart.LightTypeR\tlightType\022\'\n\017si" + + "gpos_duration\030\004 \001(\005R\016sigposDuration\022>\n\013s" + + "igpos_type\030\005 \001(\0162\035.proto.SigPosStart.Sig" + + "posTypeR\nsigposType\"C\n\010HornType\022\014\n\010HORN_" + + "OFF\020\000\022\023\n\017HORN_LOW_VOLUME\020\001\022\024\n\020HORN_HIGH_" + + "VOLUME\020\002\"D\n\tLightType\022\r\n\tLIGHT_OFF\020\000\022\025\n\021" + + "DIPPED_HEAD_LIGHT\020\001\022\021\n\rWARNING_LIGHT\020\002\"P" + + "\n\nSigposType\022\016\n\nLIGHT_ONLY\020\000\022\r\n\tHORN_ONL" + + "Y\020\001\022\022\n\016LIGHT_AND_HORN\020\002\022\017\n\013PANIC_ALARM\020\003" + + "\"\"\n TheftalarmConfirmDamagedetection\"#\n!" + + "TheftalarmDeselectDamagedetection\"\034\n\032The" + + "ftalarmDeselectInterior\"\027\n\025TheftalarmDes" + + "electTow\"!\n\037TheftalarmSelectDamagedetect" + + "ion\"\032\n\030TheftalarmSelectInterior\"\025\n\023Theft" + + "alarmSelectTow\"C\n\017TheftalarmStart\0220\n\031ala" + + "rm_duration_in_seconds\030\001 \001(\005R\ralarmdurat" + + "ion\"\020\n\016TheftalarmStop\"o\n\035AutomaticValetP" + + "arkingActivate\022\035\n\nbooking_id\030\001 \001(\tR\tbook" + + "ingId\022/\n\ndrive_type\030\002 \001(\0162\020.proto.DriveT" + + "ypeR\tdriveType\"\022\n\020ChargeFlapUnlock\"\025\n\023Ch" + + "argeCouplerUnlock*\245\002\n\004Door\022\020\n\014unknown_do" + + "or\020\000\022\r\n\tfrontleft\020\001\022\016\n\nfrontright\020\002\022\014\n\010r" + + "earleft\020\003\022\r\n\trearright\020\004\022\t\n\005trunk\020\005\022\014\n\010f" + + "uelflap\020\006\022\016\n\nchargeflap\020\007\022\021\n\rchargecoupl" + + "er\020\010\022\020\n\014UNKNOWN_DOOR\020\000\022\016\n\nFRONT_LEFT\020\001\022\017" + + "\n\013FRONT_RIGHT\020\002\022\r\n\tREAR_LEFT\020\003\022\016\n\nREAR_R" + + "IGHT\020\004\022\t\n\005TRUNK\020\005\022\r\n\tFUEL_FLAP\020\006\022\017\n\013CHAR" + + "GE_FLAP\020\007\022\022\n\016CHARGE_COUPLER\020\010\032\002\020\001*\361\001\n\026ZE" + + "VPreconditioningType\022,\n(unknown_zev_prec" + + "onditioning_command_type\020\000\022\r\n\timmediate\020" + + "\001\022\r\n\tdeparture\020\002\022\007\n\003now\020\003\022\023\n\017departureWe" + + "ekly\020\004\022,\n(UNKNOWN_ZEV_PRECONDITIONING_CO" + + "MMAND_TYPE\020\000\022\r\n\tIMMEDIATE\020\001\022\r\n\tDEPARTURE" + + "\020\002\022\007\n\003NOW\020\003\022\024\n\020DEPARTURE_WEEKLY\020\004\032\002\020\001*\250\001" + + "\n\016TimeProfileDay\022\006\n\002Mo\020\000\022\006\n\002Tu\020\001\022\006\n\002We\020\002" + + "\022\006\n\002Th\020\003\022\006\n\002Fr\020\004\022\006\n\002Sa\020\005\022\006\n\002Su\020\006\022\n\n\006MOND" + + "AY\020\000\022\013\n\007TUESDAY\020\001\022\r\n\tWEDNESDAY\020\002\022\014\n\010THUR" + + "SDAY\020\003\022\n\n\006FRIDAY\020\004\022\014\n\010SATURDAY\020\005\022\n\n\006SUND" + + "AY\020\006\032\002\020\001*>\n\tDriveType\022\026\n\022UNKNOWN_DRIVE_T" + + "YPE\020\000\022\013\n\007PICK_UP\020\001\022\014\n\010DROP_OFF\020\002B \n\032com." + + "daimler.mbcarkit.proto\320\341\036\001b\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.protobuf.GoGoProtos.getDescriptor(), + com.google.protobuf.WrappersProto.getDescriptor(), + }); + internal_static_proto_AcknowledgeCommandRequest_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_AcknowledgeCommandRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeCommandRequest_descriptor, + new java.lang.String[] { "RequestId", }); + internal_static_proto_CommandRequest_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_proto_CommandRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_CommandRequest_descriptor, + new java.lang.String[] { "Vin", "RequestId", "Backend", "AuxheatStart", "AuxheatStop", "AuxheatConfigure", "DoorsLock", "DoorsUnlock", "SunroofOpen", "SunroofClose", "SunroofLift", "SunroofMove", "WindowsOpen", "WindowsClose", "WindowsVentilate", "WindowsMove", "EngineStart", "EngineStop", "ZevPreconditioningStart", "ZevPreconditioningStop", "ZevPreconditionConfigure", "ZevPreconditionConfigureSeats", "SpeedalertStart", "SpeedalertStop", "BatteryChargeProgram", "BatteryMaxSoc", "ChargeProgramConfigure", "ChargeControlConfigure", "ChargeOptConfigure", "ChargeOptStart", "ChargeOptStop", "TemperatureConfigure", "WeekProfileConfigure", "WeekProfileConfigureV2", "SigposStart", "TheftalarmConfirmDamagedetection", "TheftalarmDeselectDamagedetection", "TheftalarmDeselectInterior", "TheftalarmDeselectTow", "TheftalarmSelectDamagedetection", "TheftalarmSelectInterior", "TheftalarmSelectTow", "TheftalarmStart", "TheftalarmStop", "AutomaticValetParkingActivate", "ChargeFlapUnlock", "ChargeCouplerUnlock", "DeactivateVehicleKeys", "ActivateVehicleKeys", "Command", }); + internal_static_proto_DeactivateVehicleKeys_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_proto_DeactivateVehicleKeys_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_DeactivateVehicleKeys_descriptor, + new java.lang.String[] { "Pin", "ExpirationUnix", "ExpirationSeconds", "ExpirationMilliseconds", }); + internal_static_proto_ActivateVehicleKeys_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_proto_ActivateVehicleKeys_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ActivateVehicleKeys_descriptor, + new java.lang.String[] { "Pin", "ExpirationUnix", "ExpirationSeconds", "ExpirationMilliseconds", }); + internal_static_proto_AuxheatStart_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_proto_AuxheatStart_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AuxheatStart_descriptor, + new java.lang.String[] { }); + internal_static_proto_AuxheatStop_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_proto_AuxheatStop_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AuxheatStop_descriptor, + new java.lang.String[] { }); + internal_static_proto_AuxheatConfigure_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_proto_AuxheatConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AuxheatConfigure_descriptor, + new java.lang.String[] { "TimeSelection", "Time1", "Time2", "Time3", }); + internal_static_proto_DoorsLock_descriptor = + getDescriptor().getMessageTypes().get(7); + internal_static_proto_DoorsLock_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_DoorsLock_descriptor, + new java.lang.String[] { "Doors", }); + internal_static_proto_DoorsUnlock_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_proto_DoorsUnlock_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_DoorsUnlock_descriptor, + new java.lang.String[] { "Pin", "Doors", }); + internal_static_proto_EngineStart_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_proto_EngineStart_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_EngineStart_descriptor, + new java.lang.String[] { "Pin", }); + internal_static_proto_EngineStop_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_proto_EngineStop_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_EngineStop_descriptor, + new java.lang.String[] { }); + internal_static_proto_SunroofOpen_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_proto_SunroofOpen_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SunroofOpen_descriptor, + new java.lang.String[] { "Pin", }); + internal_static_proto_SunroofClose_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_proto_SunroofClose_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SunroofClose_descriptor, + new java.lang.String[] { }); + internal_static_proto_SunroofLift_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_proto_SunroofLift_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SunroofLift_descriptor, + new java.lang.String[] { "Pin", }); + internal_static_proto_SunroofMove_descriptor = + getDescriptor().getMessageTypes().get(14); + internal_static_proto_SunroofMove_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SunroofMove_descriptor, + new java.lang.String[] { "Pin", "Sunroof", "SunroofBlindFront", "SunroofBlindRear", }); + internal_static_proto_WindowsOpen_descriptor = + getDescriptor().getMessageTypes().get(15); + internal_static_proto_WindowsOpen_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WindowsOpen_descriptor, + new java.lang.String[] { "Pin", }); + internal_static_proto_WindowsClose_descriptor = + getDescriptor().getMessageTypes().get(16); + internal_static_proto_WindowsClose_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WindowsClose_descriptor, + new java.lang.String[] { }); + internal_static_proto_WindowsVentilate_descriptor = + getDescriptor().getMessageTypes().get(17); + internal_static_proto_WindowsVentilate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WindowsVentilate_descriptor, + new java.lang.String[] { "Pin", }); + internal_static_proto_WindowsMove_descriptor = + getDescriptor().getMessageTypes().get(18); + internal_static_proto_WindowsMove_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WindowsMove_descriptor, + new java.lang.String[] { "Pin", "FrontLeft", "FrontRight", "RearBlind", "RearLeft", "RearLeftBlind", "RearRight", "RearRightBlind", }); + internal_static_proto_SpeedalertStart_descriptor = + getDescriptor().getMessageTypes().get(19); + internal_static_proto_SpeedalertStart_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SpeedalertStart_descriptor, + new java.lang.String[] { "Threshold", "AlertEndTime", }); + internal_static_proto_SpeedalertStop_descriptor = + getDescriptor().getMessageTypes().get(20); + internal_static_proto_SpeedalertStop_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SpeedalertStop_descriptor, + new java.lang.String[] { }); + internal_static_proto_ZEVPreconditioningStart_descriptor = + getDescriptor().getMessageTypes().get(21); + internal_static_proto_ZEVPreconditioningStart_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ZEVPreconditioningStart_descriptor, + new java.lang.String[] { "DepartureTime", "Type", }); + internal_static_proto_ZEVPreconditioningStop_descriptor = + getDescriptor().getMessageTypes().get(22); + internal_static_proto_ZEVPreconditioningStop_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ZEVPreconditioningStop_descriptor, + new java.lang.String[] { "Type", }); + internal_static_proto_ZEVPreconditioningConfigure_descriptor = + getDescriptor().getMessageTypes().get(23); + internal_static_proto_ZEVPreconditioningConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ZEVPreconditioningConfigure_descriptor, + new java.lang.String[] { "DepartureTimeMode", "DepartureTime", }); + internal_static_proto_ZEVPreconditioningConfigureSeats_descriptor = + getDescriptor().getMessageTypes().get(24); + internal_static_proto_ZEVPreconditioningConfigureSeats_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ZEVPreconditioningConfigureSeats_descriptor, + new java.lang.String[] { "FrontLeft", "FrontRight", "RearLeft", "RearRight", }); + internal_static_proto_BatteryChargeProgramConfigure_descriptor = + getDescriptor().getMessageTypes().get(25); + internal_static_proto_BatteryChargeProgramConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_BatteryChargeProgramConfigure_descriptor, + new java.lang.String[] { "ChargeProgram", }); + internal_static_proto_BatteryMaxSocConfigure_descriptor = + getDescriptor().getMessageTypes().get(26); + internal_static_proto_BatteryMaxSocConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_BatteryMaxSocConfigure_descriptor, + new java.lang.String[] { "MaxSoc", }); + internal_static_proto_ChargeProgramConfigure_descriptor = + getDescriptor().getMessageTypes().get(27); + internal_static_proto_ChargeProgramConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeProgramConfigure_descriptor, + new java.lang.String[] { "ChargeProgram", "MaxSoc", "AutoUnlock", "LocationBasedCharging", "ClockTimer", "EcoCharging", }); + internal_static_proto_ChargeControlConfigure_descriptor = + getDescriptor().getMessageTypes().get(28); + internal_static_proto_ChargeControlConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeControlConfigure_descriptor, + new java.lang.String[] { "BiChargingEnabled", "ChargingPower", "MinSoc", }); + internal_static_proto_ChargeOptConfigure_descriptor = + getDescriptor().getMessageTypes().get(29); + internal_static_proto_ChargeOptConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeOptConfigure_descriptor, + new java.lang.String[] { "WeekdayTariff", "WeekendTariff", }); + internal_static_proto_ChargeOptConfigure_Tariff_descriptor = + internal_static_proto_ChargeOptConfigure_descriptor.getNestedTypes().get(0); + internal_static_proto_ChargeOptConfigure_Tariff_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeOptConfigure_Tariff_descriptor, + new java.lang.String[] { "Rate", "Time", }); + internal_static_proto_ChargeOptStart_descriptor = + getDescriptor().getMessageTypes().get(30); + internal_static_proto_ChargeOptStart_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeOptStart_descriptor, + new java.lang.String[] { }); + internal_static_proto_ChargeOptStop_descriptor = + getDescriptor().getMessageTypes().get(31); + internal_static_proto_ChargeOptStop_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeOptStop_descriptor, + new java.lang.String[] { }); + internal_static_proto_TemperatureConfigure_descriptor = + getDescriptor().getMessageTypes().get(32); + internal_static_proto_TemperatureConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TemperatureConfigure_descriptor, + new java.lang.String[] { "TemperaturePoints", }); + internal_static_proto_TemperatureConfigure_TemperaturePoint_descriptor = + internal_static_proto_TemperatureConfigure_descriptor.getNestedTypes().get(0); + internal_static_proto_TemperatureConfigure_TemperaturePoint_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TemperatureConfigure_TemperaturePoint_descriptor, + new java.lang.String[] { "Zone", "TemperatureInCelsius", }); + internal_static_proto_WeekProfileConfigure_descriptor = + getDescriptor().getMessageTypes().get(33); + internal_static_proto_WeekProfileConfigure_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WeekProfileConfigure_descriptor, + new java.lang.String[] { "WeeklySetHu", }); + internal_static_proto_WeekProfileConfigure_WeeklySetHU_descriptor = + internal_static_proto_WeekProfileConfigure_descriptor.getNestedTypes().get(0); + internal_static_proto_WeekProfileConfigure_WeeklySetHU_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WeekProfileConfigure_WeeklySetHU_descriptor, + new java.lang.String[] { "Day", "Time", }); + internal_static_proto_WeekProfileConfigureV2_descriptor = + getDescriptor().getMessageTypes().get(34); + internal_static_proto_WeekProfileConfigureV2_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WeekProfileConfigureV2_descriptor, + new java.lang.String[] { "TimeProfiles", }); + internal_static_proto_TimeProfile_descriptor = + getDescriptor().getMessageTypes().get(35); + internal_static_proto_TimeProfile_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TimeProfile_descriptor, + new java.lang.String[] { "Identifier", "Hour", "Minute", "Days", "Active", "ApplicationIdentifier", }); + internal_static_proto_SigPosStart_descriptor = + getDescriptor().getMessageTypes().get(36); + internal_static_proto_SigPosStart_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SigPosStart_descriptor, + new java.lang.String[] { "HornRepeat", "HornType", "LightType", "SigposDuration", "SigposType", }); + internal_static_proto_TheftalarmConfirmDamagedetection_descriptor = + getDescriptor().getMessageTypes().get(37); + internal_static_proto_TheftalarmConfirmDamagedetection_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmConfirmDamagedetection_descriptor, + new java.lang.String[] { }); + internal_static_proto_TheftalarmDeselectDamagedetection_descriptor = + getDescriptor().getMessageTypes().get(38); + internal_static_proto_TheftalarmDeselectDamagedetection_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmDeselectDamagedetection_descriptor, + new java.lang.String[] { }); + internal_static_proto_TheftalarmDeselectInterior_descriptor = + getDescriptor().getMessageTypes().get(39); + internal_static_proto_TheftalarmDeselectInterior_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmDeselectInterior_descriptor, + new java.lang.String[] { }); + internal_static_proto_TheftalarmDeselectTow_descriptor = + getDescriptor().getMessageTypes().get(40); + internal_static_proto_TheftalarmDeselectTow_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmDeselectTow_descriptor, + new java.lang.String[] { }); + internal_static_proto_TheftalarmSelectDamagedetection_descriptor = + getDescriptor().getMessageTypes().get(41); + internal_static_proto_TheftalarmSelectDamagedetection_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmSelectDamagedetection_descriptor, + new java.lang.String[] { }); + internal_static_proto_TheftalarmSelectInterior_descriptor = + getDescriptor().getMessageTypes().get(42); + internal_static_proto_TheftalarmSelectInterior_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmSelectInterior_descriptor, + new java.lang.String[] { }); + internal_static_proto_TheftalarmSelectTow_descriptor = + getDescriptor().getMessageTypes().get(43); + internal_static_proto_TheftalarmSelectTow_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmSelectTow_descriptor, + new java.lang.String[] { }); + internal_static_proto_TheftalarmStart_descriptor = + getDescriptor().getMessageTypes().get(44); + internal_static_proto_TheftalarmStart_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmStart_descriptor, + new java.lang.String[] { "AlarmDurationInSeconds", }); + internal_static_proto_TheftalarmStop_descriptor = + getDescriptor().getMessageTypes().get(45); + internal_static_proto_TheftalarmStop_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TheftalarmStop_descriptor, + new java.lang.String[] { }); + internal_static_proto_AutomaticValetParkingActivate_descriptor = + getDescriptor().getMessageTypes().get(46); + internal_static_proto_AutomaticValetParkingActivate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AutomaticValetParkingActivate_descriptor, + new java.lang.String[] { "BookingId", "DriveType", }); + internal_static_proto_ChargeFlapUnlock_descriptor = + getDescriptor().getMessageTypes().get(47); + internal_static_proto_ChargeFlapUnlock_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeFlapUnlock_descriptor, + new java.lang.String[] { }); + internal_static_proto_ChargeCouplerUnlock_descriptor = + getDescriptor().getMessageTypes().get(48); + internal_static_proto_ChargeCouplerUnlock_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeCouplerUnlock_descriptor, + new java.lang.String[] { }); + descriptor.resolveAllFeaturesImmutable(); + com.google.protobuf.GoGoProtos.getDescriptor(); + com.google.protobuf.WrappersProto.getDescriptor(); + com.google.protobuf.ExtensionRegistry registry = + com.google.protobuf.ExtensionRegistry.newInstance(); + registry.add(com.google.protobuf.GoGoProtos.goprotoEnumPrefixAll); + com.google.protobuf.Descriptors.FileDescriptor + .internalUpdateFileDescriptor(descriptor, registry); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VehicleEvents.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VehicleEvents.java new file mode 100644 index 00000000000..34d77ef431a --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VehicleEvents.java @@ -0,0 +1,34774 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vehicle-events.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class VehicleEvents { + private VehicleEvents() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleEvents.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + /** + * Protobuf enum {@code proto.ChargeProgram} + */ + public enum ChargeProgram + implements com.google.protobuf.ProtocolMessageEnum { + /** + * DEFAULT_CHARGE_PROGRAM = 0; + */ + DEFAULT_CHARGE_PROGRAM(0), + /** + * INSTANT_CHARGE_PROGRAM = 1; + */ + INSTANT_CHARGE_PROGRAM(1), + /** + * HOME_CHARGE_PROGRAM = 2; + */ + HOME_CHARGE_PROGRAM(2), + /** + * WORK_CHARGE_PROGRAM = 3; + */ + WORK_CHARGE_PROGRAM(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeProgram.class.getName()); + } + /** + * DEFAULT_CHARGE_PROGRAM = 0; + */ + public static final int DEFAULT_CHARGE_PROGRAM_VALUE = 0; + /** + * INSTANT_CHARGE_PROGRAM = 1; + */ + public static final int INSTANT_CHARGE_PROGRAM_VALUE = 1; + /** + * HOME_CHARGE_PROGRAM = 2; + */ + public static final int HOME_CHARGE_PROGRAM_VALUE = 2; + /** + * WORK_CHARGE_PROGRAM = 3; + */ + public static final int WORK_CHARGE_PROGRAM_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ChargeProgram valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ChargeProgram forNumber(int value) { + switch (value) { + case 0: return DEFAULT_CHARGE_PROGRAM; + case 1: return INSTANT_CHARGE_PROGRAM; + case 2: return HOME_CHARGE_PROGRAM; + case 3: return WORK_CHARGE_PROGRAM; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ChargeProgram> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ChargeProgram findValueByNumber(int number) { + return ChargeProgram.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(0); + } + + private static final ChargeProgram[] VALUES = values(); + + public static ChargeProgram valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ChargeProgram(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.ChargeProgram) + } + + /** + *
+   * Same as VehicleAPI.AttributeStatus but with slightly different names. The VehicleAPI.AttributeStatus enum values
+   * can't be changed because they are used to automatically parse the vehicleAPI responses. Adding type aliases would
+   * confuse the contributions developers, so we added another attribute status enum
+   * 
+ * + * Protobuf enum {@code proto.AttributeStatus} + */ + public enum AttributeStatus + implements com.google.protobuf.ProtocolMessageEnum { + /** + *
+     * Value is set and valid
+     * 
+ * + * VALUE_VALID = 0; + */ + VALUE_VALID(0), + /** + *
+     * Value has not yet been received from the vehicle (but sensor etc. should be available)
+     * 
+ * + * VALUE_NOT_RECEIVED = 1; + */ + VALUE_NOT_RECEIVED(1), + /** + *
+     * Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend)
+     * 
+ * + * VALUE_INVALID = 3; + */ + VALUE_INVALID(3), + /** + *
+     * Vehicle does not support this attribute (e.g. does not have the sensor etc.)
+     * 
+ * + * VALUE_NOT_AVAILABLE = 4; + */ + VALUE_NOT_AVAILABLE(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AttributeStatus.class.getName()); + } + /** + *
+     * Value is set and valid
+     * 
+ * + * VALUE_VALID = 0; + */ + public static final int VALUE_VALID_VALUE = 0; + /** + *
+     * Value has not yet been received from the vehicle (but sensor etc. should be available)
+     * 
+ * + * VALUE_NOT_RECEIVED = 1; + */ + public static final int VALUE_NOT_RECEIVED_VALUE = 1; + /** + *
+     * Value has been retrieved from vehicle but is invalid (marked as invalid by DaiVB backend)
+     * 
+ * + * VALUE_INVALID = 3; + */ + public static final int VALUE_INVALID_VALUE = 3; + /** + *
+     * Vehicle does not support this attribute (e.g. does not have the sensor etc.)
+     * 
+ * + * VALUE_NOT_AVAILABLE = 4; + */ + public static final int VALUE_NOT_AVAILABLE_VALUE = 4; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static AttributeStatus valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static AttributeStatus forNumber(int value) { + switch (value) { + case 0: return VALUE_VALID; + case 1: return VALUE_NOT_RECEIVED; + case 3: return VALUE_INVALID; + case 4: return VALUE_NOT_AVAILABLE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + AttributeStatus> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public AttributeStatus findValueByNumber(int number) { + return AttributeStatus.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.getDescriptor().getEnumTypes().get(1); + } + + private static final AttributeStatus[] VALUES = values(); + + public static AttributeStatus valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private AttributeStatus(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.AttributeStatus) + } + + public interface VEPUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VEPUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + * string vin = 2; + * @return The vin. + */ + java.lang.String getVin(); + /** + * string vin = 2; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + *
+     * indicates whether this is a full update of VEP-attributes.
+     * All attributes cached in the FE should be erased and completely
+     * replaced by this push.
+     * 
+ * + * bool full_update = 15; + * @return The fullUpdate. + */ + boolean getFullUpdate(); + + /** + *
+     * when was the event emitted? This is the time of the update (unix timestamp in seconds), (deprecated)
+     * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+     * 
+ * + * int64 emit_timestamp = 10; + * @return The emitTimestamp. + */ + long getEmitTimestamp(); + + /** + *
+     * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
+     * 
+ * + * int64 emit_timestamp_in_ms = 14; + * @return The emitTimestampInMs. + */ + long getEmitTimestampInMs(); + + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + int getAttributesCount(); + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + boolean containsAttributes( + java.lang.String key); + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getAttributes(); + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + java.util.Map + getAttributesMap(); + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue); + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow( + java.lang.String key); + } + /** + *
+   * Sending direction: App <- BFF <- AppTwin
+   * 
+ * + * Protobuf type {@code proto.VEPUpdate} + */ + public static final class VEPUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VEPUpdate) + VEPUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VEPUpdate.class.getName()); + } + // Use VEPUpdate.newBuilder() to construct. + private VEPUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VEPUpdate() { + vin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 11: + return internalGetAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.class, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int VIN_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + * string vin = 2; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + * string vin = 2; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FULL_UPDATE_FIELD_NUMBER = 15; + private boolean fullUpdate_ = false; + /** + *
+     * indicates whether this is a full update of VEP-attributes.
+     * All attributes cached in the FE should be erased and completely
+     * replaced by this push.
+     * 
+ * + * bool full_update = 15; + * @return The fullUpdate. + */ + @java.lang.Override + public boolean getFullUpdate() { + return fullUpdate_; + } + + public static final int EMIT_TIMESTAMP_FIELD_NUMBER = 10; + private long emitTimestamp_ = 0L; + /** + *
+     * when was the event emitted? This is the time of the update (unix timestamp in seconds), (deprecated)
+     * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+     * 
+ * + * int64 emit_timestamp = 10; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + + public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 14; + private long emitTimestampInMs_ = 0L; + /** + *
+     * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
+     * 
+ * + * int64 emit_timestamp_in_ms = 14; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 11; + private static final class AttributesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_AttributesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> attributes_; + private com.google.protobuf.MapField + internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField( + AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + @java.lang.Override + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetAttributes().getMap().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return internalGetAttributes().getMap(); + } + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * the attribute changes are a list of changed attributes
+     * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, vin_); + } + if (emitTimestamp_ != 0L) { + output.writeInt64(10, emitTimestamp_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetAttributes(), + AttributesDefaultEntryHolder.defaultEntry, + 11); + if (emitTimestampInMs_ != 0L) { + output.writeInt64(14, emitTimestampInMs_); + } + if (fullUpdate_ != false) { + output.writeBool(15, fullUpdate_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, vin_); + } + if (emitTimestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(10, emitTimestamp_); + } + for (java.util.Map.Entry entry + : internalGetAttributes().getMap().entrySet()) { + com.google.protobuf.MapEntry + attributes__ = AttributesDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, attributes__); + } + if (emitTimestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(14, emitTimestampInMs_); + } + if (fullUpdate_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(15, fullUpdate_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate other = (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getVin() + .equals(other.getVin())) return false; + if (getFullUpdate() + != other.getFullUpdate()) return false; + if (getEmitTimestamp() + != other.getEmitTimestamp()) return false; + if (getEmitTimestampInMs() + != other.getEmitTimestampInMs()) return false; + if (!internalGetAttributes().equals( + other.internalGetAttributes())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + hash = (37 * hash) + FULL_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getFullUpdate()); + hash = (37 * hash) + EMIT_TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestamp()); + hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestampInMs()); + if (!internalGetAttributes().getMap().isEmpty()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + internalGetAttributes().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sending direction: App <- BFF <- AppTwin
+     * 
+ * + * Protobuf type {@code proto.VEPUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VEPUpdate) + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 11: + return internalGetAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 11: + return internalGetMutableAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.class, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + vin_ = ""; + fullUpdate_ = false; + emitTimestamp_ = 0L; + emitTimestampInMs_ = 0L; + internalGetMutableAttributes().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate build() { + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate result = new com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.fullUpdate_ = fullUpdate_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.emitTimestamp_ = emitTimestamp_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.emitTimestampInMs_ = emitTimestampInMs_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.attributes_ = internalGetAttributes().build(AttributesDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getFullUpdate() != false) { + setFullUpdate(other.getFullUpdate()); + } + if (other.getEmitTimestamp() != 0L) { + setEmitTimestamp(other.getEmitTimestamp()); + } + if (other.getEmitTimestampInMs() != 0L) { + setEmitTimestampInMs(other.getEmitTimestampInMs()); + } + internalGetMutableAttributes().mergeFrom( + other.internalGetAttributes()); + bitField0_ |= 0x00000020; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 80: { + emitTimestamp_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 80 + case 90: { + com.google.protobuf.MapEntry + attributes__ = input.readMessage( + AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableAttributes().ensureBuilderMap().put( + attributes__.getKey(), attributes__.getValue()); + bitField0_ |= 0x00000020; + break; + } // case 90 + case 112: { + emitTimestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 112 + case 120: { + fullUpdate_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 120 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private java.lang.Object vin_ = ""; + /** + * string vin = 2; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string vin = 2; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string vin = 2; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string vin = 2; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string vin = 2; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private boolean fullUpdate_ ; + /** + *
+       * indicates whether this is a full update of VEP-attributes.
+       * All attributes cached in the FE should be erased and completely
+       * replaced by this push.
+       * 
+ * + * bool full_update = 15; + * @return The fullUpdate. + */ + @java.lang.Override + public boolean getFullUpdate() { + return fullUpdate_; + } + /** + *
+       * indicates whether this is a full update of VEP-attributes.
+       * All attributes cached in the FE should be erased and completely
+       * replaced by this push.
+       * 
+ * + * bool full_update = 15; + * @param value The fullUpdate to set. + * @return This builder for chaining. + */ + public Builder setFullUpdate(boolean value) { + + fullUpdate_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * indicates whether this is a full update of VEP-attributes.
+       * All attributes cached in the FE should be erased and completely
+       * replaced by this push.
+       * 
+ * + * bool full_update = 15; + * @return This builder for chaining. + */ + public Builder clearFullUpdate() { + bitField0_ = (bitField0_ & ~0x00000004); + fullUpdate_ = false; + onChanged(); + return this; + } + + private long emitTimestamp_ ; + /** + *
+       * when was the event emitted? This is the time of the update (unix timestamp in seconds), (deprecated)
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 10; + * @return The emitTimestamp. + */ + @java.lang.Override + public long getEmitTimestamp() { + return emitTimestamp_; + } + /** + *
+       * when was the event emitted? This is the time of the update (unix timestamp in seconds), (deprecated)
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 10; + * @param value The emitTimestamp to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestamp(long value) { + + emitTimestamp_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * when was the event emitted? This is the time of the update (unix timestamp in seconds), (deprecated)
+       * not when the attributes where changed. To compare attribute changes, you need to look into each attribute timestamp
+       * 
+ * + * int64 emit_timestamp = 10; + * @return This builder for chaining. + */ + public Builder clearEmitTimestamp() { + bitField0_ = (bitField0_ & ~0x00000008); + emitTimestamp_ = 0L; + onChanged(); + return this; + } + + private long emitTimestampInMs_ ; + /** + *
+       * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
+       * 
+ * + * int64 emit_timestamp_in_ms = 14; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + /** + *
+       * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
+       * 
+ * + * int64 emit_timestamp_in_ms = 14; + * @param value The emitTimestampInMs to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestampInMs(long value) { + + emitTimestampInMs_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * when was the event emitted? This is the time of the update (unix timestamp in milliseconds),
+       * 
+ * + * int64 emit_timestamp_in_ms = 14; + * @return This builder for chaining. + */ + public Builder clearEmitTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000010); + emitTimestampInMs_ = 0L; + onChanged(); + return this; + } + + private static final class AttributesConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus build(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) { return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) val; } + return ((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return AttributesDefaultEntryHolder.defaultEntry; + } + }; + private static final AttributesConverter attributesConverter = new AttributesConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder> attributes_; + private com.google.protobuf.MapFieldBuilder + internalGetAttributes() { + if (attributes_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(attributesConverter); + } + return attributes_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableAttributes() { + if (attributes_ == null) { + attributes_ = new com.google.protobuf.MapFieldBuilder<>(attributesConverter); + } + bitField0_ |= 0x00000020; + onChanged(); + return attributes_; + } + public int getAttributesCount() { + return internalGetAttributes().ensureBuilderMap().size(); + } + /** + *
+       * the attribute changes are a list of changed attributes
+       * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + @java.lang.Override + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetAttributes().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + *
+       * the attribute changes are a list of changed attributes
+       * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return internalGetAttributes().getImmutableMap(); + } + /** + *
+       * the attribute changes are a list of changed attributes
+       * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableAttributes().ensureBuilderMap(); + return map.containsKey(key) ? attributesConverter.build(map.get(key)) : defaultValue; + } + /** + *
+       * the attribute changes are a list of changed attributes
+       * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableAttributes().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return attributesConverter.build(map.get(key)); + } + public Builder clearAttributes() { + bitField0_ = (bitField0_ & ~0x00000020); + internalGetMutableAttributes().clear(); + return this; + } + /** + *
+       * the attribute changes are a list of changed attributes
+       * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + public Builder removeAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableAttributes().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableAttributes() { + bitField0_ |= 0x00000020; + return internalGetMutableAttributes().ensureMessageMap(); + } + /** + *
+       * the attribute changes are a list of changed attributes
+       * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + public Builder putAttributes( + java.lang.String key, + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableAttributes().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000020; + return this; + } + /** + *
+       * the attribute changes are a list of changed attributes
+       * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + public Builder putAllAttributes( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableAttributes().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000020; + return this; + } + /** + *
+       * the attribute changes are a list of changed attributes
+       * 
+ * + * map<string, .proto.VehicleAttributeStatus> attributes = 11; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder putAttributesBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableAttributes().ensureBuilderMap(); + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) { + entry = ((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.VEPUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.VEPUpdate) + private static final com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VEPUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleAttributeStatusOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleAttributeStatus) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
+     * 
+ * + * int64 timestamp = 1 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated. + * See vehicle-events.proto;l=38 + * @return The timestamp. + */ + @java.lang.Deprecated long getTimestamp(); + + /** + *
+     * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
+     * 
+ * + * int64 timestamp_in_ms = 10; + * @return The timestampInMs. + */ + long getTimestampInMs(); + + /** + * bool changed = 2; + * @return The changed. + */ + boolean getChanged(); + + /** + * int32 status = 3; + * @return The status. + */ + int getStatus(); + + /** + *
+     * A list of service ids for which this attribute was sent
+     * this field ist just used backend internally and will always
+     * be empty when sent out to the client.
+     * 
+ * + * repeated int32 service_ids = 30; + * @return A list containing the serviceIds. + */ + java.util.List getServiceIdsList(); + /** + *
+     * A list of service ids for which this attribute was sent
+     * this field ist just used backend internally and will always
+     * be empty when sent out to the client.
+     * 
+ * + * repeated int32 service_ids = 30; + * @return The count of serviceIds. + */ + int getServiceIdsCount(); + /** + *
+     * A list of service ids for which this attribute was sent
+     * this field ist just used backend internally and will always
+     * be empty when sent out to the client.
+     * 
+ * + * repeated int32 service_ids = 30; + * @param index The index of the element to return. + * @return The serviceIds at the given index. + */ + int getServiceIds(int index); + + /** + * string display_value = 11; + * @return The displayValue. + */ + java.lang.String getDisplayValue(); + /** + * string display_value = 11; + * @return The bytes for displayValue. + */ + com.google.protobuf.ByteString + getDisplayValueBytes(); + + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return Whether the combustionConsumptionUnit field is set. + */ + boolean hasCombustionConsumptionUnit(); + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return The enum numeric value on the wire for combustionConsumptionUnit. + */ + int getCombustionConsumptionUnitValue(); + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return The combustionConsumptionUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit getCombustionConsumptionUnit(); + + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return Whether the gasConsumptionUnit field is set. + */ + boolean hasGasConsumptionUnit(); + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return The enum numeric value on the wire for gasConsumptionUnit. + */ + int getGasConsumptionUnitValue(); + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return The gasConsumptionUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit getGasConsumptionUnit(); + + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return Whether the electricityConsumptionUnit field is set. + */ + boolean hasElectricityConsumptionUnit(); + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return The enum numeric value on the wire for electricityConsumptionUnit. + */ + int getElectricityConsumptionUnitValue(); + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return The electricityConsumptionUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit getElectricityConsumptionUnit(); + + /** + *
+     * use speed unit / length unit instead
+     * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return Whether the speedDistanceUnit field is set. + */ + @java.lang.Deprecated boolean hasSpeedDistanceUnit(); + /** + *
+     * use speed unit / length unit instead
+     * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return The enum numeric value on the wire for speedDistanceUnit. + */ + @java.lang.Deprecated int getSpeedDistanceUnitValue(); + /** + *
+     * use speed unit / length unit instead
+     * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return The speedDistanceUnit. + */ + @java.lang.Deprecated com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit getSpeedDistanceUnit(); + + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return Whether the speedUnit field is set. + */ + boolean hasSpeedUnit(); + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return The enum numeric value on the wire for speedUnit. + */ + int getSpeedUnitValue(); + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return The speedUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit getSpeedUnit(); + + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return Whether the distanceUnit field is set. + */ + boolean hasDistanceUnit(); + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return The enum numeric value on the wire for distanceUnit. + */ + int getDistanceUnitValue(); + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return The distanceUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit getDistanceUnit(); + + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return Whether the temperatureUnit field is set. + */ + boolean hasTemperatureUnit(); + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return The enum numeric value on the wire for temperatureUnit. + */ + int getTemperatureUnitValue(); + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return The temperatureUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit getTemperatureUnit(); + + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return Whether the pressureUnit field is set. + */ + boolean hasPressureUnit(); + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return The enum numeric value on the wire for pressureUnit. + */ + int getPressureUnitValue(); + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return The pressureUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit getPressureUnit(); + + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return Whether the ratioUnit field is set. + */ + boolean hasRatioUnit(); + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return The enum numeric value on the wire for ratioUnit. + */ + int getRatioUnitValue(); + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return The ratioUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit getRatioUnit(); + + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return Whether the clockHourUnit field is set. + */ + boolean hasClockHourUnit(); + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return The enum numeric value on the wire for clockHourUnit. + */ + int getClockHourUnitValue(); + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return The clockHourUnit. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit getClockHourUnit(); + + /** + * int64 int_value = 4; + * @return Whether the intValue field is set. + */ + boolean hasIntValue(); + /** + * int64 int_value = 4; + * @return The intValue. + */ + long getIntValue(); + + /** + * bool bool_value = 5; + * @return Whether the boolValue field is set. + */ + boolean hasBoolValue(); + /** + * bool bool_value = 5; + * @return The boolValue. + */ + boolean getBoolValue(); + + /** + * string string_value = 6; + * @return Whether the stringValue field is set. + */ + boolean hasStringValue(); + /** + * string string_value = 6; + * @return The stringValue. + */ + java.lang.String getStringValue(); + /** + * string string_value = 6; + * @return The bytes for stringValue. + */ + com.google.protobuf.ByteString + getStringValueBytes(); + + /** + * double double_value = 7; + * @return Whether the doubleValue field is set. + */ + boolean hasDoubleValue(); + /** + * double double_value = 7; + * @return The doubleValue. + */ + double getDoubleValue(); + + /** + * bool nil_value = 8; + * @return Whether the nilValue field is set. + */ + boolean hasNilValue(); + /** + * bool nil_value = 8; + * @return The nilValue. + */ + boolean getNilValue(); + + /** + * string unsupported_value = 9; + * @return Whether the unsupportedValue field is set. + */ + boolean hasUnsupportedValue(); + /** + * string unsupported_value = 9; + * @return The unsupportedValue. + */ + java.lang.String getUnsupportedValue(); + /** + * string unsupported_value = 9; + * @return The bytes for unsupportedValue. + */ + com.google.protobuf.ByteString + getUnsupportedValueBytes(); + + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + * @return Whether the temperaturePointsValue field is set. + */ + boolean hasTemperaturePointsValue(); + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + * @return The temperaturePointsValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getTemperaturePointsValue(); + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder getTemperaturePointsValueOrBuilder(); + + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + * @return Whether the weekdayTariffValue field is set. + */ + boolean hasWeekdayTariffValue(); + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + * @return The weekdayTariffValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getWeekdayTariffValue(); + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder getWeekdayTariffValueOrBuilder(); + + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + * @return Whether the weekendTariffValue field is set. + */ + boolean hasWeekendTariffValue(); + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + * @return The weekendTariffValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getWeekendTariffValue(); + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder getWeekendTariffValueOrBuilder(); + + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + * @return Whether the stateOfChargeProfileValue field is set. + */ + boolean hasStateOfChargeProfileValue(); + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + * @return The stateOfChargeProfileValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getStateOfChargeProfileValue(); + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder getStateOfChargeProfileValueOrBuilder(); + + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + * @return Whether the weeklySettingsHeadUnitValue field is set. + */ + boolean hasWeeklySettingsHeadUnitValue(); + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + * @return The weeklySettingsHeadUnitValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getWeeklySettingsHeadUnitValue(); + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder getWeeklySettingsHeadUnitValueOrBuilder(); + + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + * @return Whether the speedAlertConfigurationValue field is set. + */ + boolean hasSpeedAlertConfigurationValue(); + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + * @return The speedAlertConfigurationValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getSpeedAlertConfigurationValue(); + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder getSpeedAlertConfigurationValueOrBuilder(); + + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + * @return Whether the ecoHistogramValue field is set. + */ + boolean hasEcoHistogramValue(); + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + * @return The ecoHistogramValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getEcoHistogramValue(); + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder getEcoHistogramValueOrBuilder(); + + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + * @return Whether the weeklyProfileValue field is set. + */ + boolean hasWeeklyProfileValue(); + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + * @return The weeklyProfileValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getWeeklyProfileValue(); + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder getWeeklyProfileValueOrBuilder(); + + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + * @return Whether the chargeProgramsValue field is set. + */ + boolean hasChargeProgramsValue(); + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + * @return The chargeProgramsValue. + */ + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getChargeProgramsValue(); + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder getChargeProgramsValueOrBuilder(); + + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DisplayUnitCase getDisplayUnitCase(); + + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.AttributeTypeCase getAttributeTypeCase(); + } + /** + *
+   * Part of a VEPUpdate
+   * Sending direction: App <- BFF <- AppTwin
+   * 
+ * + * Protobuf type {@code proto.VehicleAttributeStatus} + */ + public static final class VehicleAttributeStatus extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleAttributeStatus) + VehicleAttributeStatusOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleAttributeStatus.class.getName()); + } + // Use VehicleAttributeStatus.newBuilder() to construct. + private VehicleAttributeStatus(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleAttributeStatus() { + serviceIds_ = emptyIntList(); + displayValue_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder.class); + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.CombustionConsumptionUnit} + */ + public enum CombustionConsumptionUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT = 0; + */ + UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT(0), + /** + *
+       * Liter per 100 km
+       * 
+ * + * LITER_PER_100KM = 1; + */ + LITER_PER_100KM(1), + /** + *
+       * Kilometers per liter
+       * 
+ * + * KM_PER_LITER = 2; + */ + KM_PER_LITER(2), + /** + *
+       * Miles Per imperial gallon
+       * 
+ * + * MPG_UK = 3; + */ + MPG_UK(3), + /** + *
+       * Miles Per US gallon
+       * 
+ * + * MPG_US = 4; + */ + MPG_US(4), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + CombustionConsumptionUnit.class.getName()); + } + /** + * UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT = 0; + */ + public static final int UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT_VALUE = 0; + /** + *
+       * Liter per 100 km
+       * 
+ * + * LITER_PER_100KM = 1; + */ + public static final int LITER_PER_100KM_VALUE = 1; + /** + *
+       * Kilometers per liter
+       * 
+ * + * KM_PER_LITER = 2; + */ + public static final int KM_PER_LITER_VALUE = 2; + /** + *
+       * Miles Per imperial gallon
+       * 
+ * + * MPG_UK = 3; + */ + public static final int MPG_UK_VALUE = 3; + /** + *
+       * Miles Per US gallon
+       * 
+ * + * MPG_US = 4; + */ + public static final int MPG_US_VALUE = 4; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static CombustionConsumptionUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static CombustionConsumptionUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT; + case 1: return LITER_PER_100KM; + case 2: return KM_PER_LITER; + case 3: return MPG_UK; + case 4: return MPG_US; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + CombustionConsumptionUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public CombustionConsumptionUnit findValueByNumber(int number) { + return CombustionConsumptionUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(0); + } + + private static final CombustionConsumptionUnit[] VALUES = values(); + + public static CombustionConsumptionUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private CombustionConsumptionUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.CombustionConsumptionUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.ElectricityConsumptionUnit} + */ + public enum ElectricityConsumptionUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT = 0; + */ + UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT(0), + /** + *
+       * kWh per 100 km
+       * 
+ * + * KWH_PER_100KM = 1; + */ + KWH_PER_100KM(1), + /** + *
+       * Kilometers per kWh
+       * 
+ * + * KM_PER_KWH = 2; + */ + KM_PER_KWH(2), + /** + *
+       * kWh per 100 miles
+       * 
+ * + * KWH_PER_100MI = 3; + */ + KWH_PER_100MI(3), + /** + *
+       * miles per kWh
+       * 
+ * + * M_PER_KWH = 4; + */ + M_PER_KWH(4), + /** + *
+       * Miles per gallon gasoline equivalent
+       * 
+ * + * MPGE = 5; + */ + MPGE(5), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ElectricityConsumptionUnit.class.getName()); + } + /** + * UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT = 0; + */ + public static final int UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT_VALUE = 0; + /** + *
+       * kWh per 100 km
+       * 
+ * + * KWH_PER_100KM = 1; + */ + public static final int KWH_PER_100KM_VALUE = 1; + /** + *
+       * Kilometers per kWh
+       * 
+ * + * KM_PER_KWH = 2; + */ + public static final int KM_PER_KWH_VALUE = 2; + /** + *
+       * kWh per 100 miles
+       * 
+ * + * KWH_PER_100MI = 3; + */ + public static final int KWH_PER_100MI_VALUE = 3; + /** + *
+       * miles per kWh
+       * 
+ * + * M_PER_KWH = 4; + */ + public static final int M_PER_KWH_VALUE = 4; + /** + *
+       * Miles per gallon gasoline equivalent
+       * 
+ * + * MPGE = 5; + */ + public static final int MPGE_VALUE = 5; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ElectricityConsumptionUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ElectricityConsumptionUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT; + case 1: return KWH_PER_100KM; + case 2: return KM_PER_KWH; + case 3: return KWH_PER_100MI; + case 4: return M_PER_KWH; + case 5: return MPGE; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ElectricityConsumptionUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ElectricityConsumptionUnit findValueByNumber(int number) { + return ElectricityConsumptionUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(1); + } + + private static final ElectricityConsumptionUnit[] VALUES = values(); + + public static ElectricityConsumptionUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ElectricityConsumptionUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.ElectricityConsumptionUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.GasConsumptionUnit} + */ + public enum GasConsumptionUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_GAS_CONSUMPTION_UNIT = 0; + */ + UNSPECIFIED_GAS_CONSUMPTION_UNIT(0), + /** + *
+       * kG per 100 km
+       * 
+ * + * KG_PER_100KM = 1; + */ + KG_PER_100KM(1), + /** + *
+       * km per kg
+       * 
+ * + * KM_PER_KG = 2; + */ + KM_PER_KG(2), + /** + *
+       * miles per kg
+       * 
+ * + * M_PER_KG = 3; + */ + M_PER_KG(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + GasConsumptionUnit.class.getName()); + } + /** + * UNSPECIFIED_GAS_CONSUMPTION_UNIT = 0; + */ + public static final int UNSPECIFIED_GAS_CONSUMPTION_UNIT_VALUE = 0; + /** + *
+       * kG per 100 km
+       * 
+ * + * KG_PER_100KM = 1; + */ + public static final int KG_PER_100KM_VALUE = 1; + /** + *
+       * km per kg
+       * 
+ * + * KM_PER_KG = 2; + */ + public static final int KM_PER_KG_VALUE = 2; + /** + *
+       * miles per kg
+       * 
+ * + * M_PER_KG = 3; + */ + public static final int M_PER_KG_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static GasConsumptionUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static GasConsumptionUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_GAS_CONSUMPTION_UNIT; + case 1: return KG_PER_100KM; + case 2: return KM_PER_KG; + case 3: return M_PER_KG; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + GasConsumptionUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public GasConsumptionUnit findValueByNumber(int number) { + return GasConsumptionUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(2); + } + + private static final GasConsumptionUnit[] VALUES = values(); + + public static GasConsumptionUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private GasConsumptionUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.GasConsumptionUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.SpeedDistanceUnit} + */ + @java.lang.Deprecated public enum SpeedDistanceUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_SPEED_DISTANCE_UNIT = 0; + */ + UNSPECIFIED_SPEED_DISTANCE_UNIT(0), + /** + *
+       * km/h, distance unit: km
+       * 
+ * + * KM_PER_H = 1; + */ + KM_PER_H(1), + /** + *
+       * mph, distance unit: miles
+       * 
+ * + * M_PER_H = 2; + */ + M_PER_H(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SpeedDistanceUnit.class.getName()); + } + /** + * UNSPECIFIED_SPEED_DISTANCE_UNIT = 0; + */ + public static final int UNSPECIFIED_SPEED_DISTANCE_UNIT_VALUE = 0; + /** + *
+       * km/h, distance unit: km
+       * 
+ * + * KM_PER_H = 1; + */ + public static final int KM_PER_H_VALUE = 1; + /** + *
+       * mph, distance unit: miles
+       * 
+ * + * M_PER_H = 2; + */ + public static final int M_PER_H_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static SpeedDistanceUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static SpeedDistanceUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_SPEED_DISTANCE_UNIT; + case 1: return KM_PER_H; + case 2: return M_PER_H; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + SpeedDistanceUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public SpeedDistanceUnit findValueByNumber(int number) { + return SpeedDistanceUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(3); + } + + private static final SpeedDistanceUnit[] VALUES = values(); + + public static SpeedDistanceUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private SpeedDistanceUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.SpeedDistanceUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.SpeedUnit} + */ + public enum SpeedUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_SPEED_UNIT = 0; + */ + UNSPECIFIED_SPEED_UNIT(0), + /** + *
+       * kilometers per hour
+       * 
+ * + * KM_PER_HOUR = 1; + */ + KM_PER_HOUR(1), + /** + *
+       * miles per hour
+       * 
+ * + * M_PER_HOUR = 2; + */ + M_PER_HOUR(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SpeedUnit.class.getName()); + } + /** + * UNSPECIFIED_SPEED_UNIT = 0; + */ + public static final int UNSPECIFIED_SPEED_UNIT_VALUE = 0; + /** + *
+       * kilometers per hour
+       * 
+ * + * KM_PER_HOUR = 1; + */ + public static final int KM_PER_HOUR_VALUE = 1; + /** + *
+       * miles per hour
+       * 
+ * + * M_PER_HOUR = 2; + */ + public static final int M_PER_HOUR_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static SpeedUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static SpeedUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_SPEED_UNIT; + case 1: return KM_PER_HOUR; + case 2: return M_PER_HOUR; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + SpeedUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public SpeedUnit findValueByNumber(int number) { + return SpeedUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(4); + } + + private static final SpeedUnit[] VALUES = values(); + + public static SpeedUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private SpeedUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.SpeedUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.DistanceUnit} + */ + public enum DistanceUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_DISTANCE_UNIT = 0; + */ + UNSPECIFIED_DISTANCE_UNIT(0), + /** + * KILOMETERS = 1; + */ + KILOMETERS(1), + /** + * MILES = 2; + */ + MILES(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + DistanceUnit.class.getName()); + } + /** + * UNSPECIFIED_DISTANCE_UNIT = 0; + */ + public static final int UNSPECIFIED_DISTANCE_UNIT_VALUE = 0; + /** + * KILOMETERS = 1; + */ + public static final int KILOMETERS_VALUE = 1; + /** + * MILES = 2; + */ + public static final int MILES_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DistanceUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static DistanceUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_DISTANCE_UNIT; + case 1: return KILOMETERS; + case 2: return MILES; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + DistanceUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public DistanceUnit findValueByNumber(int number) { + return DistanceUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(5); + } + + private static final DistanceUnit[] VALUES = values(); + + public static DistanceUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private DistanceUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.DistanceUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.TemperatureUnit} + */ + public enum TemperatureUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_TEMPERATURE_UNIT = 0; + */ + UNSPECIFIED_TEMPERATURE_UNIT(0), + /** + * CELSIUS = 1; + */ + CELSIUS(1), + /** + * FAHRENHEIT = 2; + */ + FAHRENHEIT(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TemperatureUnit.class.getName()); + } + /** + * UNSPECIFIED_TEMPERATURE_UNIT = 0; + */ + public static final int UNSPECIFIED_TEMPERATURE_UNIT_VALUE = 0; + /** + * CELSIUS = 1; + */ + public static final int CELSIUS_VALUE = 1; + /** + * FAHRENHEIT = 2; + */ + public static final int FAHRENHEIT_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static TemperatureUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static TemperatureUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_TEMPERATURE_UNIT; + case 1: return CELSIUS; + case 2: return FAHRENHEIT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + TemperatureUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public TemperatureUnit findValueByNumber(int number) { + return TemperatureUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(6); + } + + private static final TemperatureUnit[] VALUES = values(); + + public static TemperatureUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private TemperatureUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.TemperatureUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.PressureUnit} + */ + public enum PressureUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_PRESSURE_UNIT = 0; + */ + UNSPECIFIED_PRESSURE_UNIT(0), + /** + * KPA = 1; + */ + KPA(1), + /** + * BAR = 2; + */ + BAR(2), + /** + *
+       * Pounds per square inch
+       * 
+ * + * PSI = 3; + */ + PSI(3), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + PressureUnit.class.getName()); + } + /** + * UNSPECIFIED_PRESSURE_UNIT = 0; + */ + public static final int UNSPECIFIED_PRESSURE_UNIT_VALUE = 0; + /** + * KPA = 1; + */ + public static final int KPA_VALUE = 1; + /** + * BAR = 2; + */ + public static final int BAR_VALUE = 2; + /** + *
+       * Pounds per square inch
+       * 
+ * + * PSI = 3; + */ + public static final int PSI_VALUE = 3; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static PressureUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static PressureUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_PRESSURE_UNIT; + case 1: return KPA; + case 2: return BAR; + case 3: return PSI; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + PressureUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public PressureUnit findValueByNumber(int number) { + return PressureUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(7); + } + + private static final PressureUnit[] VALUES = values(); + + public static PressureUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private PressureUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.PressureUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.RatioUnit} + */ + public enum RatioUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_RATIO_UNIT = 0; + */ + UNSPECIFIED_RATIO_UNIT(0), + /** + * PERCENT = 1; + */ + PERCENT(1), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + RatioUnit.class.getName()); + } + /** + * UNSPECIFIED_RATIO_UNIT = 0; + */ + public static final int UNSPECIFIED_RATIO_UNIT_VALUE = 0; + /** + * PERCENT = 1; + */ + public static final int PERCENT_VALUE = 1; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static RatioUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static RatioUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_RATIO_UNIT; + case 1: return PERCENT; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + RatioUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public RatioUnit findValueByNumber(int number) { + return RatioUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(8); + } + + private static final RatioUnit[] VALUES = values(); + + public static RatioUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private RatioUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.RatioUnit) + } + + /** + * Protobuf enum {@code proto.VehicleAttributeStatus.ClockHourUnit} + */ + public enum ClockHourUnit + implements com.google.protobuf.ProtocolMessageEnum { + /** + * UNSPECIFIED_CLOCK_HOUR_UNIT = 0; + */ + UNSPECIFIED_CLOCK_HOUR_UNIT(0), + /** + *
+       * 12h (AM/PM)
+       * 
+ * + * T12H = 1; + */ + T12H(1), + /** + *
+       * 24h
+       * 
+ * + * T24H = 2; + */ + T24H(2), + UNRECOGNIZED(-1), + ; + + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ClockHourUnit.class.getName()); + } + /** + * UNSPECIFIED_CLOCK_HOUR_UNIT = 0; + */ + public static final int UNSPECIFIED_CLOCK_HOUR_UNIT_VALUE = 0; + /** + *
+       * 12h (AM/PM)
+       * 
+ * + * T12H = 1; + */ + public static final int T12H_VALUE = 1; + /** + *
+       * 24h
+       * 
+ * + * T24H = 2; + */ + public static final int T24H_VALUE = 2; + + + public final int getNumber() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalArgumentException( + "Can't get the number of an unknown enum value."); + } + return value; + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static ClockHourUnit valueOf(int value) { + return forNumber(value); + } + + /** + * @param value The numeric wire value of the corresponding enum entry. + * @return The enum associated with the given numeric wire value. + */ + public static ClockHourUnit forNumber(int value) { + switch (value) { + case 0: return UNSPECIFIED_CLOCK_HOUR_UNIT; + case 1: return T12H; + case 2: return T24H; + default: return null; + } + } + + public static com.google.protobuf.Internal.EnumLiteMap + internalGetValueMap() { + return internalValueMap; + } + private static final com.google.protobuf.Internal.EnumLiteMap< + ClockHourUnit> internalValueMap = + new com.google.protobuf.Internal.EnumLiteMap() { + public ClockHourUnit findValueByNumber(int number) { + return ClockHourUnit.forNumber(number); + } + }; + + public final com.google.protobuf.Descriptors.EnumValueDescriptor + getValueDescriptor() { + if (this == UNRECOGNIZED) { + throw new java.lang.IllegalStateException( + "Can't get the descriptor of an unrecognized enum value."); + } + return getDescriptor().getValues().get(ordinal()); + } + public final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptorForType() { + return getDescriptor(); + } + public static final com.google.protobuf.Descriptors.EnumDescriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDescriptor().getEnumTypes().get(9); + } + + private static final ClockHourUnit[] VALUES = values(); + + public static ClockHourUnit valueOf( + com.google.protobuf.Descriptors.EnumValueDescriptor desc) { + if (desc.getType() != getDescriptor()) { + throw new java.lang.IllegalArgumentException( + "EnumValueDescriptor is not for this type."); + } + if (desc.getIndex() == -1) { + return UNRECOGNIZED; + } + return VALUES[desc.getIndex()]; + } + + private final int value; + + private ClockHourUnit(int value) { + this.value = value; + } + + // @@protoc_insertion_point(enum_scope:proto.VehicleAttributeStatus.ClockHourUnit) + } + + private int displayUnitCase_ = 0; + @SuppressWarnings("serial") + private java.lang.Object displayUnit_; + public enum DisplayUnitCase + implements com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + COMBUSTION_CONSUMPTION_UNIT(12), + GAS_CONSUMPTION_UNIT(13), + ELECTRICITY_CONSUMPTION_UNIT(14), + @java.lang.Deprecated SPEED_DISTANCE_UNIT(15), + SPEED_UNIT(25), + DISTANCE_UNIT(26), + TEMPERATURE_UNIT(16), + PRESSURE_UNIT(17), + RATIO_UNIT(18), + CLOCK_HOUR_UNIT(19), + DISPLAYUNIT_NOT_SET(0); + private final int value; + private DisplayUnitCase(int value) { + this.value = value; + } + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static DisplayUnitCase valueOf(int value) { + return forNumber(value); + } + + public static DisplayUnitCase forNumber(int value) { + switch (value) { + case 12: return COMBUSTION_CONSUMPTION_UNIT; + case 13: return GAS_CONSUMPTION_UNIT; + case 14: return ELECTRICITY_CONSUMPTION_UNIT; + case 15: return SPEED_DISTANCE_UNIT; + case 25: return SPEED_UNIT; + case 26: return DISTANCE_UNIT; + case 16: return TEMPERATURE_UNIT; + case 17: return PRESSURE_UNIT; + case 18: return RATIO_UNIT; + case 19: return CLOCK_HOUR_UNIT; + case 0: return DISPLAYUNIT_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public DisplayUnitCase + getDisplayUnitCase() { + return DisplayUnitCase.forNumber( + displayUnitCase_); + } + + private int attributeTypeCase_ = 0; + @SuppressWarnings("serial") + private java.lang.Object attributeType_; + public enum AttributeTypeCase + implements com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + INT_VALUE(4), + BOOL_VALUE(5), + STRING_VALUE(6), + DOUBLE_VALUE(7), + NIL_VALUE(8), + UNSUPPORTED_VALUE(9), + TEMPERATURE_POINTS_VALUE(20), + WEEKDAY_TARIFF_VALUE(21), + WEEKEND_TARIFF_VALUE(22), + STATE_OF_CHARGE_PROFILE_VALUE(23), + WEEKLY_SETTINGS_HEAD_UNIT_VALUE(24), + SPEED_ALERT_CONFIGURATION_VALUE(27), + ECO_HISTOGRAM_VALUE(28), + WEEKLY_PROFILE_VALUE(29), + CHARGE_PROGRAMS_VALUE(31), + ATTRIBUTETYPE_NOT_SET(0); + private final int value; + private AttributeTypeCase(int value) { + this.value = value; + } + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static AttributeTypeCase valueOf(int value) { + return forNumber(value); + } + + public static AttributeTypeCase forNumber(int value) { + switch (value) { + case 4: return INT_VALUE; + case 5: return BOOL_VALUE; + case 6: return STRING_VALUE; + case 7: return DOUBLE_VALUE; + case 8: return NIL_VALUE; + case 9: return UNSUPPORTED_VALUE; + case 20: return TEMPERATURE_POINTS_VALUE; + case 21: return WEEKDAY_TARIFF_VALUE; + case 22: return WEEKEND_TARIFF_VALUE; + case 23: return STATE_OF_CHARGE_PROFILE_VALUE; + case 24: return WEEKLY_SETTINGS_HEAD_UNIT_VALUE; + case 27: return SPEED_ALERT_CONFIGURATION_VALUE; + case 28: return ECO_HISTOGRAM_VALUE; + case 29: return WEEKLY_PROFILE_VALUE; + case 31: return CHARGE_PROGRAMS_VALUE; + case 0: return ATTRIBUTETYPE_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public AttributeTypeCase + getAttributeTypeCase() { + return AttributeTypeCase.forNumber( + attributeTypeCase_); + } + + public static final int TIMESTAMP_FIELD_NUMBER = 1; + private long timestamp_ = 0L; + /** + *
+     * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
+     * 
+ * + * int64 timestamp = 1 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated. + * See vehicle-events.proto;l=38 + * @return The timestamp. + */ + @java.lang.Override + @java.lang.Deprecated public long getTimestamp() { + return timestamp_; + } + + public static final int TIMESTAMP_IN_MS_FIELD_NUMBER = 10; + private long timestampInMs_ = 0L; + /** + *
+     * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
+     * 
+ * + * int64 timestamp_in_ms = 10; + * @return The timestampInMs. + */ + @java.lang.Override + public long getTimestampInMs() { + return timestampInMs_; + } + + public static final int CHANGED_FIELD_NUMBER = 2; + private boolean changed_ = false; + /** + * bool changed = 2; + * @return The changed. + */ + @java.lang.Override + public boolean getChanged() { + return changed_; + } + + public static final int STATUS_FIELD_NUMBER = 3; + private int status_ = 0; + /** + * int32 status = 3; + * @return The status. + */ + @java.lang.Override + public int getStatus() { + return status_; + } + + public static final int SERVICE_IDS_FIELD_NUMBER = 30; + @SuppressWarnings("serial") + private com.google.protobuf.Internal.IntList serviceIds_ = + emptyIntList(); + /** + *
+     * A list of service ids for which this attribute was sent
+     * this field ist just used backend internally and will always
+     * be empty when sent out to the client.
+     * 
+ * + * repeated int32 service_ids = 30; + * @return A list containing the serviceIds. + */ + @java.lang.Override + public java.util.List + getServiceIdsList() { + return serviceIds_; + } + /** + *
+     * A list of service ids for which this attribute was sent
+     * this field ist just used backend internally and will always
+     * be empty when sent out to the client.
+     * 
+ * + * repeated int32 service_ids = 30; + * @return The count of serviceIds. + */ + public int getServiceIdsCount() { + return serviceIds_.size(); + } + /** + *
+     * A list of service ids for which this attribute was sent
+     * this field ist just used backend internally and will always
+     * be empty when sent out to the client.
+     * 
+ * + * repeated int32 service_ids = 30; + * @param index The index of the element to return. + * @return The serviceIds at the given index. + */ + public int getServiceIds(int index) { + return serviceIds_.getInt(index); + } + private int serviceIdsMemoizedSerializedSize = -1; + + public static final int DISPLAY_VALUE_FIELD_NUMBER = 11; + @SuppressWarnings("serial") + private volatile java.lang.Object displayValue_ = ""; + /** + * string display_value = 11; + * @return The displayValue. + */ + @java.lang.Override + public java.lang.String getDisplayValue() { + java.lang.Object ref = displayValue_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayValue_ = s; + return s; + } + } + /** + * string display_value = 11; + * @return The bytes for displayValue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDisplayValueBytes() { + java.lang.Object ref = displayValue_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int COMBUSTION_CONSUMPTION_UNIT_FIELD_NUMBER = 12; + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return Whether the combustionConsumptionUnit field is set. + */ + public boolean hasCombustionConsumptionUnit() { + return displayUnitCase_ == 12; + } + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return The enum numeric value on the wire for combustionConsumptionUnit. + */ + public int getCombustionConsumptionUnitValue() { + if (displayUnitCase_ == 12) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return The combustionConsumptionUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit getCombustionConsumptionUnit() { + if (displayUnitCase_ == 12) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT; + } + + public static final int GAS_CONSUMPTION_UNIT_FIELD_NUMBER = 13; + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return Whether the gasConsumptionUnit field is set. + */ + public boolean hasGasConsumptionUnit() { + return displayUnitCase_ == 13; + } + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return The enum numeric value on the wire for gasConsumptionUnit. + */ + public int getGasConsumptionUnitValue() { + if (displayUnitCase_ == 13) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return The gasConsumptionUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit getGasConsumptionUnit() { + if (displayUnitCase_ == 13) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.UNSPECIFIED_GAS_CONSUMPTION_UNIT; + } + + public static final int ELECTRICITY_CONSUMPTION_UNIT_FIELD_NUMBER = 14; + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return Whether the electricityConsumptionUnit field is set. + */ + public boolean hasElectricityConsumptionUnit() { + return displayUnitCase_ == 14; + } + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return The enum numeric value on the wire for electricityConsumptionUnit. + */ + public int getElectricityConsumptionUnitValue() { + if (displayUnitCase_ == 14) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return The electricityConsumptionUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit getElectricityConsumptionUnit() { + if (displayUnitCase_ == 14) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT; + } + + public static final int SPEED_DISTANCE_UNIT_FIELD_NUMBER = 15; + /** + *
+     * use speed unit / length unit instead
+     * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return Whether the speedDistanceUnit field is set. + */ + @java.lang.Deprecated public boolean hasSpeedDistanceUnit() { + return displayUnitCase_ == 15; + } + /** + *
+     * use speed unit / length unit instead
+     * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return The enum numeric value on the wire for speedDistanceUnit. + */ + @java.lang.Deprecated public int getSpeedDistanceUnitValue() { + if (displayUnitCase_ == 15) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + *
+     * use speed unit / length unit instead
+     * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return The speedDistanceUnit. + */ + @java.lang.Deprecated public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit getSpeedDistanceUnit() { + if (displayUnitCase_ == 15) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.UNSPECIFIED_SPEED_DISTANCE_UNIT; + } + + public static final int SPEED_UNIT_FIELD_NUMBER = 25; + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return Whether the speedUnit field is set. + */ + public boolean hasSpeedUnit() { + return displayUnitCase_ == 25; + } + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return The enum numeric value on the wire for speedUnit. + */ + public int getSpeedUnitValue() { + if (displayUnitCase_ == 25) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return The speedUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit getSpeedUnit() { + if (displayUnitCase_ == 25) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.UNSPECIFIED_SPEED_UNIT; + } + + public static final int DISTANCE_UNIT_FIELD_NUMBER = 26; + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return Whether the distanceUnit field is set. + */ + public boolean hasDistanceUnit() { + return displayUnitCase_ == 26; + } + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return The enum numeric value on the wire for distanceUnit. + */ + public int getDistanceUnitValue() { + if (displayUnitCase_ == 26) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return The distanceUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit getDistanceUnit() { + if (displayUnitCase_ == 26) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.UNSPECIFIED_DISTANCE_UNIT; + } + + public static final int TEMPERATURE_UNIT_FIELD_NUMBER = 16; + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return Whether the temperatureUnit field is set. + */ + public boolean hasTemperatureUnit() { + return displayUnitCase_ == 16; + } + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return The enum numeric value on the wire for temperatureUnit. + */ + public int getTemperatureUnitValue() { + if (displayUnitCase_ == 16) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return The temperatureUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit getTemperatureUnit() { + if (displayUnitCase_ == 16) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.UNSPECIFIED_TEMPERATURE_UNIT; + } + + public static final int PRESSURE_UNIT_FIELD_NUMBER = 17; + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return Whether the pressureUnit field is set. + */ + public boolean hasPressureUnit() { + return displayUnitCase_ == 17; + } + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return The enum numeric value on the wire for pressureUnit. + */ + public int getPressureUnitValue() { + if (displayUnitCase_ == 17) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return The pressureUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit getPressureUnit() { + if (displayUnitCase_ == 17) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.UNSPECIFIED_PRESSURE_UNIT; + } + + public static final int RATIO_UNIT_FIELD_NUMBER = 18; + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return Whether the ratioUnit field is set. + */ + public boolean hasRatioUnit() { + return displayUnitCase_ == 18; + } + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return The enum numeric value on the wire for ratioUnit. + */ + public int getRatioUnitValue() { + if (displayUnitCase_ == 18) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return The ratioUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit getRatioUnit() { + if (displayUnitCase_ == 18) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.UNSPECIFIED_RATIO_UNIT; + } + + public static final int CLOCK_HOUR_UNIT_FIELD_NUMBER = 19; + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return Whether the clockHourUnit field is set. + */ + public boolean hasClockHourUnit() { + return displayUnitCase_ == 19; + } + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return The enum numeric value on the wire for clockHourUnit. + */ + public int getClockHourUnitValue() { + if (displayUnitCase_ == 19) { + return (java.lang.Integer) displayUnit_; + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return The clockHourUnit. + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit getClockHourUnit() { + if (displayUnitCase_ == 19) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.UNSPECIFIED_CLOCK_HOUR_UNIT; + } + + public static final int INT_VALUE_FIELD_NUMBER = 4; + /** + * int64 int_value = 4; + * @return Whether the intValue field is set. + */ + @java.lang.Override + public boolean hasIntValue() { + return attributeTypeCase_ == 4; + } + /** + * int64 int_value = 4; + * @return The intValue. + */ + @java.lang.Override + public long getIntValue() { + if (attributeTypeCase_ == 4) { + return (java.lang.Long) attributeType_; + } + return 0L; + } + + public static final int BOOL_VALUE_FIELD_NUMBER = 5; + /** + * bool bool_value = 5; + * @return Whether the boolValue field is set. + */ + @java.lang.Override + public boolean hasBoolValue() { + return attributeTypeCase_ == 5; + } + /** + * bool bool_value = 5; + * @return The boolValue. + */ + @java.lang.Override + public boolean getBoolValue() { + if (attributeTypeCase_ == 5) { + return (java.lang.Boolean) attributeType_; + } + return false; + } + + public static final int STRING_VALUE_FIELD_NUMBER = 6; + /** + * string string_value = 6; + * @return Whether the stringValue field is set. + */ + public boolean hasStringValue() { + return attributeTypeCase_ == 6; + } + /** + * string string_value = 6; + * @return The stringValue. + */ + public java.lang.String getStringValue() { + java.lang.Object ref = ""; + if (attributeTypeCase_ == 6) { + ref = attributeType_; + } + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (attributeTypeCase_ == 6) { + attributeType_ = s; + } + return s; + } + } + /** + * string string_value = 6; + * @return The bytes for stringValue. + */ + public com.google.protobuf.ByteString + getStringValueBytes() { + java.lang.Object ref = ""; + if (attributeTypeCase_ == 6) { + ref = attributeType_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (attributeTypeCase_ == 6) { + attributeType_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int DOUBLE_VALUE_FIELD_NUMBER = 7; + /** + * double double_value = 7; + * @return Whether the doubleValue field is set. + */ + @java.lang.Override + public boolean hasDoubleValue() { + return attributeTypeCase_ == 7; + } + /** + * double double_value = 7; + * @return The doubleValue. + */ + @java.lang.Override + public double getDoubleValue() { + if (attributeTypeCase_ == 7) { + return (java.lang.Double) attributeType_; + } + return 0D; + } + + public static final int NIL_VALUE_FIELD_NUMBER = 8; + /** + * bool nil_value = 8; + * @return Whether the nilValue field is set. + */ + @java.lang.Override + public boolean hasNilValue() { + return attributeTypeCase_ == 8; + } + /** + * bool nil_value = 8; + * @return The nilValue. + */ + @java.lang.Override + public boolean getNilValue() { + if (attributeTypeCase_ == 8) { + return (java.lang.Boolean) attributeType_; + } + return false; + } + + public static final int UNSUPPORTED_VALUE_FIELD_NUMBER = 9; + /** + * string unsupported_value = 9; + * @return Whether the unsupportedValue field is set. + */ + public boolean hasUnsupportedValue() { + return attributeTypeCase_ == 9; + } + /** + * string unsupported_value = 9; + * @return The unsupportedValue. + */ + public java.lang.String getUnsupportedValue() { + java.lang.Object ref = ""; + if (attributeTypeCase_ == 9) { + ref = attributeType_; + } + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (attributeTypeCase_ == 9) { + attributeType_ = s; + } + return s; + } + } + /** + * string unsupported_value = 9; + * @return The bytes for unsupportedValue. + */ + public com.google.protobuf.ByteString + getUnsupportedValueBytes() { + java.lang.Object ref = ""; + if (attributeTypeCase_ == 9) { + ref = attributeType_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (attributeTypeCase_ == 9) { + attributeType_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TEMPERATURE_POINTS_VALUE_FIELD_NUMBER = 20; + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + * @return Whether the temperaturePointsValue field is set. + */ + @java.lang.Override + public boolean hasTemperaturePointsValue() { + return attributeTypeCase_ == 20; + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + * @return The temperaturePointsValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getTemperaturePointsValue() { + if (attributeTypeCase_ == 20) { + return (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance(); + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder getTemperaturePointsValueOrBuilder() { + if (attributeTypeCase_ == 20) { + return (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance(); + } + + public static final int WEEKDAY_TARIFF_VALUE_FIELD_NUMBER = 21; + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + * @return Whether the weekdayTariffValue field is set. + */ + @java.lang.Override + public boolean hasWeekdayTariffValue() { + return attributeTypeCase_ == 21; + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + * @return The weekdayTariffValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getWeekdayTariffValue() { + if (attributeTypeCase_ == 21) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance(); + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder getWeekdayTariffValueOrBuilder() { + if (attributeTypeCase_ == 21) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance(); + } + + public static final int WEEKEND_TARIFF_VALUE_FIELD_NUMBER = 22; + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + * @return Whether the weekendTariffValue field is set. + */ + @java.lang.Override + public boolean hasWeekendTariffValue() { + return attributeTypeCase_ == 22; + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + * @return The weekendTariffValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getWeekendTariffValue() { + if (attributeTypeCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance(); + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder getWeekendTariffValueOrBuilder() { + if (attributeTypeCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance(); + } + + public static final int STATE_OF_CHARGE_PROFILE_VALUE_FIELD_NUMBER = 23; + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + * @return Whether the stateOfChargeProfileValue field is set. + */ + @java.lang.Override + public boolean hasStateOfChargeProfileValue() { + return attributeTypeCase_ == 23; + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + * @return The stateOfChargeProfileValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getStateOfChargeProfileValue() { + if (attributeTypeCase_ == 23) { + return (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance(); + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder getStateOfChargeProfileValueOrBuilder() { + if (attributeTypeCase_ == 23) { + return (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance(); + } + + public static final int WEEKLY_SETTINGS_HEAD_UNIT_VALUE_FIELD_NUMBER = 24; + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + * @return Whether the weeklySettingsHeadUnitValue field is set. + */ + @java.lang.Override + public boolean hasWeeklySettingsHeadUnitValue() { + return attributeTypeCase_ == 24; + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + * @return The weeklySettingsHeadUnitValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getWeeklySettingsHeadUnitValue() { + if (attributeTypeCase_ == 24) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance(); + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder getWeeklySettingsHeadUnitValueOrBuilder() { + if (attributeTypeCase_ == 24) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance(); + } + + public static final int SPEED_ALERT_CONFIGURATION_VALUE_FIELD_NUMBER = 27; + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + * @return Whether the speedAlertConfigurationValue field is set. + */ + @java.lang.Override + public boolean hasSpeedAlertConfigurationValue() { + return attributeTypeCase_ == 27; + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + * @return The speedAlertConfigurationValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getSpeedAlertConfigurationValue() { + if (attributeTypeCase_ == 27) { + return (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance(); + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder getSpeedAlertConfigurationValueOrBuilder() { + if (attributeTypeCase_ == 27) { + return (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance(); + } + + public static final int ECO_HISTOGRAM_VALUE_FIELD_NUMBER = 28; + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + * @return Whether the ecoHistogramValue field is set. + */ + @java.lang.Override + public boolean hasEcoHistogramValue() { + return attributeTypeCase_ == 28; + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + * @return The ecoHistogramValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getEcoHistogramValue() { + if (attributeTypeCase_ == 28) { + return (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance(); + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder getEcoHistogramValueOrBuilder() { + if (attributeTypeCase_ == 28) { + return (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance(); + } + + public static final int WEEKLY_PROFILE_VALUE_FIELD_NUMBER = 29; + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + * @return Whether the weeklyProfileValue field is set. + */ + @java.lang.Override + public boolean hasWeeklyProfileValue() { + return attributeTypeCase_ == 29; + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + * @return The weeklyProfileValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getWeeklyProfileValue() { + if (attributeTypeCase_ == 29) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance(); + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder getWeeklyProfileValueOrBuilder() { + if (attributeTypeCase_ == 29) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance(); + } + + public static final int CHARGE_PROGRAMS_VALUE_FIELD_NUMBER = 31; + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + * @return Whether the chargeProgramsValue field is set. + */ + @java.lang.Override + public boolean hasChargeProgramsValue() { + return attributeTypeCase_ == 31; + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + * @return The chargeProgramsValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getChargeProgramsValue() { + if (attributeTypeCase_ == 31) { + return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance(); + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder getChargeProgramsValueOrBuilder() { + if (attributeTypeCase_ == 31) { + return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (timestamp_ != 0L) { + output.writeInt64(1, timestamp_); + } + if (changed_ != false) { + output.writeBool(2, changed_); + } + if (status_ != 0) { + output.writeInt32(3, status_); + } + if (attributeTypeCase_ == 4) { + output.writeInt64( + 4, (long)((java.lang.Long) attributeType_)); + } + if (attributeTypeCase_ == 5) { + output.writeBool( + 5, (boolean)((java.lang.Boolean) attributeType_)); + } + if (attributeTypeCase_ == 6) { + com.google.protobuf.GeneratedMessage.writeString(output, 6, attributeType_); + } + if (attributeTypeCase_ == 7) { + output.writeDouble( + 7, (double)((java.lang.Double) attributeType_)); + } + if (attributeTypeCase_ == 8) { + output.writeBool( + 8, (boolean)((java.lang.Boolean) attributeType_)); + } + if (attributeTypeCase_ == 9) { + com.google.protobuf.GeneratedMessage.writeString(output, 9, attributeType_); + } + if (timestampInMs_ != 0L) { + output.writeInt64(10, timestampInMs_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayValue_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 11, displayValue_); + } + if (displayUnitCase_ == 12) { + output.writeEnum(12, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 13) { + output.writeEnum(13, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 14) { + output.writeEnum(14, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 15) { + output.writeEnum(15, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 16) { + output.writeEnum(16, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 17) { + output.writeEnum(17, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 18) { + output.writeEnum(18, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 19) { + output.writeEnum(19, ((java.lang.Integer) displayUnit_)); + } + if (attributeTypeCase_ == 20) { + output.writeMessage(20, (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_); + } + if (attributeTypeCase_ == 21) { + output.writeMessage(21, (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_); + } + if (attributeTypeCase_ == 22) { + output.writeMessage(22, (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_); + } + if (attributeTypeCase_ == 23) { + output.writeMessage(23, (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_); + } + if (attributeTypeCase_ == 24) { + output.writeMessage(24, (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_); + } + if (displayUnitCase_ == 25) { + output.writeEnum(25, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 26) { + output.writeEnum(26, ((java.lang.Integer) displayUnit_)); + } + if (attributeTypeCase_ == 27) { + output.writeMessage(27, (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_); + } + if (attributeTypeCase_ == 28) { + output.writeMessage(28, (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_); + } + if (attributeTypeCase_ == 29) { + output.writeMessage(29, (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_); + } + if (getServiceIdsList().size() > 0) { + output.writeUInt32NoTag(242); + output.writeUInt32NoTag(serviceIdsMemoizedSerializedSize); + } + for (int i = 0; i < serviceIds_.size(); i++) { + output.writeInt32NoTag(serviceIds_.getInt(i)); + } + if (attributeTypeCase_ == 31) { + output.writeMessage(31, (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (timestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, timestamp_); + } + if (changed_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(2, changed_); + } + if (status_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, status_); + } + if (attributeTypeCase_ == 4) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size( + 4, (long)((java.lang.Long) attributeType_)); + } + if (attributeTypeCase_ == 5) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize( + 5, (boolean)((java.lang.Boolean) attributeType_)); + } + if (attributeTypeCase_ == 6) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(6, attributeType_); + } + if (attributeTypeCase_ == 7) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize( + 7, (double)((java.lang.Double) attributeType_)); + } + if (attributeTypeCase_ == 8) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize( + 8, (boolean)((java.lang.Boolean) attributeType_)); + } + if (attributeTypeCase_ == 9) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(9, attributeType_); + } + if (timestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(10, timestampInMs_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(displayValue_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(11, displayValue_); + } + if (displayUnitCase_ == 12) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(12, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 13) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(13, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 14) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(14, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 15) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(15, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 16) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(16, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 17) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(17, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 18) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(18, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 19) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(19, ((java.lang.Integer) displayUnit_)); + } + if (attributeTypeCase_ == 20) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(20, (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_); + } + if (attributeTypeCase_ == 21) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(21, (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_); + } + if (attributeTypeCase_ == 22) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(22, (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_); + } + if (attributeTypeCase_ == 23) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(23, (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_); + } + if (attributeTypeCase_ == 24) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(24, (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_); + } + if (displayUnitCase_ == 25) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(25, ((java.lang.Integer) displayUnit_)); + } + if (displayUnitCase_ == 26) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(26, ((java.lang.Integer) displayUnit_)); + } + if (attributeTypeCase_ == 27) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(27, (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_); + } + if (attributeTypeCase_ == 28) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(28, (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_); + } + if (attributeTypeCase_ == 29) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(29, (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_); + } + { + int dataSize = 0; + for (int i = 0; i < serviceIds_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(serviceIds_.getInt(i)); + } + size += dataSize; + if (!getServiceIdsList().isEmpty()) { + size += 2; + size += com.google.protobuf.CodedOutputStream + .computeInt32SizeNoTag(dataSize); + } + serviceIdsMemoizedSerializedSize = dataSize; + } + if (attributeTypeCase_ == 31) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(31, (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus other = (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) obj; + + if (getTimestamp() + != other.getTimestamp()) return false; + if (getTimestampInMs() + != other.getTimestampInMs()) return false; + if (getChanged() + != other.getChanged()) return false; + if (getStatus() + != other.getStatus()) return false; + if (!getServiceIdsList() + .equals(other.getServiceIdsList())) return false; + if (!getDisplayValue() + .equals(other.getDisplayValue())) return false; + if (!getDisplayUnitCase().equals(other.getDisplayUnitCase())) return false; + switch (displayUnitCase_) { + case 12: + if (getCombustionConsumptionUnitValue() + != other.getCombustionConsumptionUnitValue()) return false; + break; + case 13: + if (getGasConsumptionUnitValue() + != other.getGasConsumptionUnitValue()) return false; + break; + case 14: + if (getElectricityConsumptionUnitValue() + != other.getElectricityConsumptionUnitValue()) return false; + break; + case 15: + if (getSpeedDistanceUnitValue() + != other.getSpeedDistanceUnitValue()) return false; + break; + case 25: + if (getSpeedUnitValue() + != other.getSpeedUnitValue()) return false; + break; + case 26: + if (getDistanceUnitValue() + != other.getDistanceUnitValue()) return false; + break; + case 16: + if (getTemperatureUnitValue() + != other.getTemperatureUnitValue()) return false; + break; + case 17: + if (getPressureUnitValue() + != other.getPressureUnitValue()) return false; + break; + case 18: + if (getRatioUnitValue() + != other.getRatioUnitValue()) return false; + break; + case 19: + if (getClockHourUnitValue() + != other.getClockHourUnitValue()) return false; + break; + case 0: + default: + } + if (!getAttributeTypeCase().equals(other.getAttributeTypeCase())) return false; + switch (attributeTypeCase_) { + case 4: + if (getIntValue() + != other.getIntValue()) return false; + break; + case 5: + if (getBoolValue() + != other.getBoolValue()) return false; + break; + case 6: + if (!getStringValue() + .equals(other.getStringValue())) return false; + break; + case 7: + if (java.lang.Double.doubleToLongBits(getDoubleValue()) + != java.lang.Double.doubleToLongBits( + other.getDoubleValue())) return false; + break; + case 8: + if (getNilValue() + != other.getNilValue()) return false; + break; + case 9: + if (!getUnsupportedValue() + .equals(other.getUnsupportedValue())) return false; + break; + case 20: + if (!getTemperaturePointsValue() + .equals(other.getTemperaturePointsValue())) return false; + break; + case 21: + if (!getWeekdayTariffValue() + .equals(other.getWeekdayTariffValue())) return false; + break; + case 22: + if (!getWeekendTariffValue() + .equals(other.getWeekendTariffValue())) return false; + break; + case 23: + if (!getStateOfChargeProfileValue() + .equals(other.getStateOfChargeProfileValue())) return false; + break; + case 24: + if (!getWeeklySettingsHeadUnitValue() + .equals(other.getWeeklySettingsHeadUnitValue())) return false; + break; + case 27: + if (!getSpeedAlertConfigurationValue() + .equals(other.getSpeedAlertConfigurationValue())) return false; + break; + case 28: + if (!getEcoHistogramValue() + .equals(other.getEcoHistogramValue())) return false; + break; + case 29: + if (!getWeeklyProfileValue() + .equals(other.getWeeklyProfileValue())) return false; + break; + case 31: + if (!getChargeProgramsValue() + .equals(other.getChargeProgramsValue())) return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestamp()); + hash = (37 * hash) + TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestampInMs()); + hash = (37 * hash) + CHANGED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getChanged()); + hash = (37 * hash) + STATUS_FIELD_NUMBER; + hash = (53 * hash) + getStatus(); + if (getServiceIdsCount() > 0) { + hash = (37 * hash) + SERVICE_IDS_FIELD_NUMBER; + hash = (53 * hash) + getServiceIdsList().hashCode(); + } + hash = (37 * hash) + DISPLAY_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getDisplayValue().hashCode(); + switch (displayUnitCase_) { + case 12: + hash = (37 * hash) + COMBUSTION_CONSUMPTION_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getCombustionConsumptionUnitValue(); + break; + case 13: + hash = (37 * hash) + GAS_CONSUMPTION_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getGasConsumptionUnitValue(); + break; + case 14: + hash = (37 * hash) + ELECTRICITY_CONSUMPTION_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getElectricityConsumptionUnitValue(); + break; + case 15: + hash = (37 * hash) + SPEED_DISTANCE_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getSpeedDistanceUnitValue(); + break; + case 25: + hash = (37 * hash) + SPEED_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getSpeedUnitValue(); + break; + case 26: + hash = (37 * hash) + DISTANCE_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getDistanceUnitValue(); + break; + case 16: + hash = (37 * hash) + TEMPERATURE_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getTemperatureUnitValue(); + break; + case 17: + hash = (37 * hash) + PRESSURE_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getPressureUnitValue(); + break; + case 18: + hash = (37 * hash) + RATIO_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getRatioUnitValue(); + break; + case 19: + hash = (37 * hash) + CLOCK_HOUR_UNIT_FIELD_NUMBER; + hash = (53 * hash) + getClockHourUnitValue(); + break; + case 0: + default: + } + switch (attributeTypeCase_) { + case 4: + hash = (37 * hash) + INT_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getIntValue()); + break; + case 5: + hash = (37 * hash) + BOOL_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getBoolValue()); + break; + case 6: + hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getStringValue().hashCode(); + break; + case 7: + hash = (37 * hash) + DOUBLE_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getDoubleValue())); + break; + case 8: + hash = (37 * hash) + NIL_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getNilValue()); + break; + case 9: + hash = (37 * hash) + UNSUPPORTED_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getUnsupportedValue().hashCode(); + break; + case 20: + hash = (37 * hash) + TEMPERATURE_POINTS_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getTemperaturePointsValue().hashCode(); + break; + case 21: + hash = (37 * hash) + WEEKDAY_TARIFF_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getWeekdayTariffValue().hashCode(); + break; + case 22: + hash = (37 * hash) + WEEKEND_TARIFF_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getWeekendTariffValue().hashCode(); + break; + case 23: + hash = (37 * hash) + STATE_OF_CHARGE_PROFILE_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getStateOfChargeProfileValue().hashCode(); + break; + case 24: + hash = (37 * hash) + WEEKLY_SETTINGS_HEAD_UNIT_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getWeeklySettingsHeadUnitValue().hashCode(); + break; + case 27: + hash = (37 * hash) + SPEED_ALERT_CONFIGURATION_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getSpeedAlertConfigurationValue().hashCode(); + break; + case 28: + hash = (37 * hash) + ECO_HISTOGRAM_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getEcoHistogramValue().hashCode(); + break; + case 29: + hash = (37 * hash) + WEEKLY_PROFILE_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getWeeklyProfileValue().hashCode(); + break; + case 31: + hash = (37 * hash) + CHARGE_PROGRAMS_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getChargeProgramsValue().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Part of a VEPUpdate
+     * Sending direction: App <- BFF <- AppTwin
+     * 
+ * + * Protobuf type {@code proto.VehicleAttributeStatus} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleAttributeStatus) + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timestamp_ = 0L; + timestampInMs_ = 0L; + changed_ = false; + status_ = 0; + serviceIds_ = emptyIntList(); + displayValue_ = ""; + if (temperaturePointsValueBuilder_ != null) { + temperaturePointsValueBuilder_.clear(); + } + if (weekdayTariffValueBuilder_ != null) { + weekdayTariffValueBuilder_.clear(); + } + if (weekendTariffValueBuilder_ != null) { + weekendTariffValueBuilder_.clear(); + } + if (stateOfChargeProfileValueBuilder_ != null) { + stateOfChargeProfileValueBuilder_.clear(); + } + if (weeklySettingsHeadUnitValueBuilder_ != null) { + weeklySettingsHeadUnitValueBuilder_.clear(); + } + if (speedAlertConfigurationValueBuilder_ != null) { + speedAlertConfigurationValueBuilder_.clear(); + } + if (ecoHistogramValueBuilder_ != null) { + ecoHistogramValueBuilder_.clear(); + } + if (weeklyProfileValueBuilder_ != null) { + weeklyProfileValueBuilder_.clear(); + } + if (chargeProgramsValueBuilder_ != null) { + chargeProgramsValueBuilder_.clear(); + } + displayUnitCase_ = 0; + displayUnit_ = null; + attributeTypeCase_ = 0; + attributeType_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleAttributeStatus_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus build() { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus(this); + if (bitField0_ != 0) { buildPartial0(result); } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestamp_ = timestamp_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.timestampInMs_ = timestampInMs_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.changed_ = changed_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.status_ = status_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + serviceIds_.makeImmutable(); + result.serviceIds_ = serviceIds_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.displayValue_ = displayValue_; + } + } + + private void buildPartialOneofs(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus result) { + result.displayUnitCase_ = displayUnitCase_; + result.displayUnit_ = this.displayUnit_; + result.attributeTypeCase_ = attributeTypeCase_; + result.attributeType_ = this.attributeType_; + if (attributeTypeCase_ == 20 && + temperaturePointsValueBuilder_ != null) { + result.attributeType_ = temperaturePointsValueBuilder_.build(); + } + if (attributeTypeCase_ == 21 && + weekdayTariffValueBuilder_ != null) { + result.attributeType_ = weekdayTariffValueBuilder_.build(); + } + if (attributeTypeCase_ == 22 && + weekendTariffValueBuilder_ != null) { + result.attributeType_ = weekendTariffValueBuilder_.build(); + } + if (attributeTypeCase_ == 23 && + stateOfChargeProfileValueBuilder_ != null) { + result.attributeType_ = stateOfChargeProfileValueBuilder_.build(); + } + if (attributeTypeCase_ == 24 && + weeklySettingsHeadUnitValueBuilder_ != null) { + result.attributeType_ = weeklySettingsHeadUnitValueBuilder_.build(); + } + if (attributeTypeCase_ == 27 && + speedAlertConfigurationValueBuilder_ != null) { + result.attributeType_ = speedAlertConfigurationValueBuilder_.build(); + } + if (attributeTypeCase_ == 28 && + ecoHistogramValueBuilder_ != null) { + result.attributeType_ = ecoHistogramValueBuilder_.build(); + } + if (attributeTypeCase_ == 29 && + weeklyProfileValueBuilder_ != null) { + result.attributeType_ = weeklyProfileValueBuilder_.build(); + } + if (attributeTypeCase_ == 31 && + chargeProgramsValueBuilder_ != null) { + result.attributeType_ = chargeProgramsValueBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDefaultInstance()) return this; + if (other.getTimestamp() != 0L) { + setTimestamp(other.getTimestamp()); + } + if (other.getTimestampInMs() != 0L) { + setTimestampInMs(other.getTimestampInMs()); + } + if (other.getChanged() != false) { + setChanged(other.getChanged()); + } + if (other.getStatus() != 0) { + setStatus(other.getStatus()); + } + if (!other.serviceIds_.isEmpty()) { + if (serviceIds_.isEmpty()) { + serviceIds_ = other.serviceIds_; + serviceIds_.makeImmutable(); + bitField0_ |= 0x00000010; + } else { + ensureServiceIdsIsMutable(); + serviceIds_.addAll(other.serviceIds_); + } + onChanged(); + } + if (!other.getDisplayValue().isEmpty()) { + displayValue_ = other.displayValue_; + bitField0_ |= 0x00000020; + onChanged(); + } + switch (other.getDisplayUnitCase()) { + case COMBUSTION_CONSUMPTION_UNIT: { + setCombustionConsumptionUnitValue(other.getCombustionConsumptionUnitValue()); + break; + } + case GAS_CONSUMPTION_UNIT: { + setGasConsumptionUnitValue(other.getGasConsumptionUnitValue()); + break; + } + case ELECTRICITY_CONSUMPTION_UNIT: { + setElectricityConsumptionUnitValue(other.getElectricityConsumptionUnitValue()); + break; + } + case SPEED_DISTANCE_UNIT: { + setSpeedDistanceUnitValue(other.getSpeedDistanceUnitValue()); + break; + } + case SPEED_UNIT: { + setSpeedUnitValue(other.getSpeedUnitValue()); + break; + } + case DISTANCE_UNIT: { + setDistanceUnitValue(other.getDistanceUnitValue()); + break; + } + case TEMPERATURE_UNIT: { + setTemperatureUnitValue(other.getTemperatureUnitValue()); + break; + } + case PRESSURE_UNIT: { + setPressureUnitValue(other.getPressureUnitValue()); + break; + } + case RATIO_UNIT: { + setRatioUnitValue(other.getRatioUnitValue()); + break; + } + case CLOCK_HOUR_UNIT: { + setClockHourUnitValue(other.getClockHourUnitValue()); + break; + } + case DISPLAYUNIT_NOT_SET: { + break; + } + } + switch (other.getAttributeTypeCase()) { + case INT_VALUE: { + setIntValue(other.getIntValue()); + break; + } + case BOOL_VALUE: { + setBoolValue(other.getBoolValue()); + break; + } + case STRING_VALUE: { + attributeTypeCase_ = 6; + attributeType_ = other.attributeType_; + onChanged(); + break; + } + case DOUBLE_VALUE: { + setDoubleValue(other.getDoubleValue()); + break; + } + case NIL_VALUE: { + setNilValue(other.getNilValue()); + break; + } + case UNSUPPORTED_VALUE: { + attributeTypeCase_ = 9; + attributeType_ = other.attributeType_; + onChanged(); + break; + } + case TEMPERATURE_POINTS_VALUE: { + mergeTemperaturePointsValue(other.getTemperaturePointsValue()); + break; + } + case WEEKDAY_TARIFF_VALUE: { + mergeWeekdayTariffValue(other.getWeekdayTariffValue()); + break; + } + case WEEKEND_TARIFF_VALUE: { + mergeWeekendTariffValue(other.getWeekendTariffValue()); + break; + } + case STATE_OF_CHARGE_PROFILE_VALUE: { + mergeStateOfChargeProfileValue(other.getStateOfChargeProfileValue()); + break; + } + case WEEKLY_SETTINGS_HEAD_UNIT_VALUE: { + mergeWeeklySettingsHeadUnitValue(other.getWeeklySettingsHeadUnitValue()); + break; + } + case SPEED_ALERT_CONFIGURATION_VALUE: { + mergeSpeedAlertConfigurationValue(other.getSpeedAlertConfigurationValue()); + break; + } + case ECO_HISTOGRAM_VALUE: { + mergeEcoHistogramValue(other.getEcoHistogramValue()); + break; + } + case WEEKLY_PROFILE_VALUE: { + mergeWeeklyProfileValue(other.getWeeklyProfileValue()); + break; + } + case CHARGE_PROGRAMS_VALUE: { + mergeChargeProgramsValue(other.getChargeProgramsValue()); + break; + } + case ATTRIBUTETYPE_NOT_SET: { + break; + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + timestamp_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + changed_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 16 + case 24: { + status_ = input.readInt32(); + bitField0_ |= 0x00000008; + break; + } // case 24 + case 32: { + attributeType_ = input.readInt64(); + attributeTypeCase_ = 4; + break; + } // case 32 + case 40: { + attributeType_ = input.readBool(); + attributeTypeCase_ = 5; + break; + } // case 40 + case 50: { + java.lang.String s = input.readStringRequireUtf8(); + attributeTypeCase_ = 6; + attributeType_ = s; + break; + } // case 50 + case 57: { + attributeType_ = input.readDouble(); + attributeTypeCase_ = 7; + break; + } // case 57 + case 64: { + attributeType_ = input.readBool(); + attributeTypeCase_ = 8; + break; + } // case 64 + case 74: { + java.lang.String s = input.readStringRequireUtf8(); + attributeTypeCase_ = 9; + attributeType_ = s; + break; + } // case 74 + case 80: { + timestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 80 + case 90: { + displayValue_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000020; + break; + } // case 90 + case 96: { + int rawValue = input.readEnum(); + displayUnitCase_ = 12; + displayUnit_ = rawValue; + break; + } // case 96 + case 104: { + int rawValue = input.readEnum(); + displayUnitCase_ = 13; + displayUnit_ = rawValue; + break; + } // case 104 + case 112: { + int rawValue = input.readEnum(); + displayUnitCase_ = 14; + displayUnit_ = rawValue; + break; + } // case 112 + case 120: { + int rawValue = input.readEnum(); + displayUnitCase_ = 15; + displayUnit_ = rawValue; + break; + } // case 120 + case 128: { + int rawValue = input.readEnum(); + displayUnitCase_ = 16; + displayUnit_ = rawValue; + break; + } // case 128 + case 136: { + int rawValue = input.readEnum(); + displayUnitCase_ = 17; + displayUnit_ = rawValue; + break; + } // case 136 + case 144: { + int rawValue = input.readEnum(); + displayUnitCase_ = 18; + displayUnit_ = rawValue; + break; + } // case 144 + case 152: { + int rawValue = input.readEnum(); + displayUnitCase_ = 19; + displayUnit_ = rawValue; + break; + } // case 152 + case 162: { + input.readMessage( + getTemperaturePointsValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 20; + break; + } // case 162 + case 170: { + input.readMessage( + getWeekdayTariffValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 21; + break; + } // case 170 + case 178: { + input.readMessage( + getWeekendTariffValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 22; + break; + } // case 178 + case 186: { + input.readMessage( + getStateOfChargeProfileValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 23; + break; + } // case 186 + case 194: { + input.readMessage( + getWeeklySettingsHeadUnitValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 24; + break; + } // case 194 + case 200: { + int rawValue = input.readEnum(); + displayUnitCase_ = 25; + displayUnit_ = rawValue; + break; + } // case 200 + case 208: { + int rawValue = input.readEnum(); + displayUnitCase_ = 26; + displayUnit_ = rawValue; + break; + } // case 208 + case 218: { + input.readMessage( + getSpeedAlertConfigurationValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 27; + break; + } // case 218 + case 226: { + input.readMessage( + getEcoHistogramValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 28; + break; + } // case 226 + case 234: { + input.readMessage( + getWeeklyProfileValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 29; + break; + } // case 234 + case 240: { + int v = input.readInt32(); + ensureServiceIdsIsMutable(); + serviceIds_.addInt(v); + break; + } // case 240 + case 242: { + int length = input.readRawVarint32(); + int limit = input.pushLimit(length); + ensureServiceIdsIsMutable(); + while (input.getBytesUntilLimit() > 0) { + serviceIds_.addInt(input.readInt32()); + } + input.popLimit(limit); + break; + } // case 242 + case 250: { + input.readMessage( + getChargeProgramsValueFieldBuilder().getBuilder(), + extensionRegistry); + attributeTypeCase_ = 31; + break; + } // case 250 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int displayUnitCase_ = 0; + private java.lang.Object displayUnit_; + public DisplayUnitCase + getDisplayUnitCase() { + return DisplayUnitCase.forNumber( + displayUnitCase_); + } + + public Builder clearDisplayUnit() { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + return this; + } + + private int attributeTypeCase_ = 0; + private java.lang.Object attributeType_; + public AttributeTypeCase + getAttributeTypeCase() { + return AttributeTypeCase.forNumber( + attributeTypeCase_); + } + + public Builder clearAttributeType() { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private long timestamp_ ; + /** + *
+       * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
+       * 
+ * + * int64 timestamp = 1 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated. + * See vehicle-events.proto;l=38 + * @return The timestamp. + */ + @java.lang.Override + @java.lang.Deprecated public long getTimestamp() { + return timestamp_; + } + /** + *
+       * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
+       * 
+ * + * int64 timestamp = 1 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated. + * See vehicle-events.proto;l=38 + * @param value The timestamp to set. + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder setTimestamp(long value) { + + timestamp_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * time of the attribute change in the car as unix timestamp in seconds with UTC timezone (deprecated)
+       * 
+ * + * int64 timestamp = 1 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.timestamp is deprecated. + * See vehicle-events.proto;l=38 + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000001); + timestamp_ = 0L; + onChanged(); + return this; + } + + private long timestampInMs_ ; + /** + *
+       * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
+       * 
+ * + * int64 timestamp_in_ms = 10; + * @return The timestampInMs. + */ + @java.lang.Override + public long getTimestampInMs() { + return timestampInMs_; + } + /** + *
+       * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
+       * 
+ * + * int64 timestamp_in_ms = 10; + * @param value The timestampInMs to set. + * @return This builder for chaining. + */ + public Builder setTimestampInMs(long value) { + + timestampInMs_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * time of the attribute change in the car as unix timestamp in milliseconds with UTC timezone
+       * 
+ * + * int64 timestamp_in_ms = 10; + * @return This builder for chaining. + */ + public Builder clearTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000002); + timestampInMs_ = 0L; + onChanged(); + return this; + } + + private boolean changed_ ; + /** + * bool changed = 2; + * @return The changed. + */ + @java.lang.Override + public boolean getChanged() { + return changed_; + } + /** + * bool changed = 2; + * @param value The changed to set. + * @return This builder for chaining. + */ + public Builder setChanged(boolean value) { + + changed_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * bool changed = 2; + * @return This builder for chaining. + */ + public Builder clearChanged() { + bitField0_ = (bitField0_ & ~0x00000004); + changed_ = false; + onChanged(); + return this; + } + + private int status_ ; + /** + * int32 status = 3; + * @return The status. + */ + @java.lang.Override + public int getStatus() { + return status_; + } + /** + * int32 status = 3; + * @param value The status to set. + * @return This builder for chaining. + */ + public Builder setStatus(int value) { + + status_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * int32 status = 3; + * @return This builder for chaining. + */ + public Builder clearStatus() { + bitField0_ = (bitField0_ & ~0x00000008); + status_ = 0; + onChanged(); + return this; + } + + private com.google.protobuf.Internal.IntList serviceIds_ = emptyIntList(); + private void ensureServiceIdsIsMutable() { + if (!serviceIds_.isModifiable()) { + serviceIds_ = makeMutableCopy(serviceIds_); + } + bitField0_ |= 0x00000010; + } + /** + *
+       * A list of service ids for which this attribute was sent
+       * this field ist just used backend internally and will always
+       * be empty when sent out to the client.
+       * 
+ * + * repeated int32 service_ids = 30; + * @return A list containing the serviceIds. + */ + public java.util.List + getServiceIdsList() { + serviceIds_.makeImmutable(); + return serviceIds_; + } + /** + *
+       * A list of service ids for which this attribute was sent
+       * this field ist just used backend internally and will always
+       * be empty when sent out to the client.
+       * 
+ * + * repeated int32 service_ids = 30; + * @return The count of serviceIds. + */ + public int getServiceIdsCount() { + return serviceIds_.size(); + } + /** + *
+       * A list of service ids for which this attribute was sent
+       * this field ist just used backend internally and will always
+       * be empty when sent out to the client.
+       * 
+ * + * repeated int32 service_ids = 30; + * @param index The index of the element to return. + * @return The serviceIds at the given index. + */ + public int getServiceIds(int index) { + return serviceIds_.getInt(index); + } + /** + *
+       * A list of service ids for which this attribute was sent
+       * this field ist just used backend internally and will always
+       * be empty when sent out to the client.
+       * 
+ * + * repeated int32 service_ids = 30; + * @param index The index to set the value at. + * @param value The serviceIds to set. + * @return This builder for chaining. + */ + public Builder setServiceIds( + int index, int value) { + + ensureServiceIdsIsMutable(); + serviceIds_.setInt(index, value); + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * A list of service ids for which this attribute was sent
+       * this field ist just used backend internally and will always
+       * be empty when sent out to the client.
+       * 
+ * + * repeated int32 service_ids = 30; + * @param value The serviceIds to add. + * @return This builder for chaining. + */ + public Builder addServiceIds(int value) { + + ensureServiceIdsIsMutable(); + serviceIds_.addInt(value); + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * A list of service ids for which this attribute was sent
+       * this field ist just used backend internally and will always
+       * be empty when sent out to the client.
+       * 
+ * + * repeated int32 service_ids = 30; + * @param values The serviceIds to add. + * @return This builder for chaining. + */ + public Builder addAllServiceIds( + java.lang.Iterable values) { + ensureServiceIdsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, serviceIds_); + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * A list of service ids for which this attribute was sent
+       * this field ist just used backend internally and will always
+       * be empty when sent out to the client.
+       * 
+ * + * repeated int32 service_ids = 30; + * @return This builder for chaining. + */ + public Builder clearServiceIds() { + serviceIds_ = emptyIntList(); + bitField0_ = (bitField0_ & ~0x00000010); + onChanged(); + return this; + } + + private java.lang.Object displayValue_ = ""; + /** + * string display_value = 11; + * @return The displayValue. + */ + public java.lang.String getDisplayValue() { + java.lang.Object ref = displayValue_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + displayValue_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string display_value = 11; + * @return The bytes for displayValue. + */ + public com.google.protobuf.ByteString + getDisplayValueBytes() { + java.lang.Object ref = displayValue_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + displayValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string display_value = 11; + * @param value The displayValue to set. + * @return This builder for chaining. + */ + public Builder setDisplayValue( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + displayValue_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * string display_value = 11; + * @return This builder for chaining. + */ + public Builder clearDisplayValue() { + displayValue_ = getDefaultInstance().getDisplayValue(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + return this; + } + /** + * string display_value = 11; + * @param value The bytes for displayValue to set. + * @return This builder for chaining. + */ + public Builder setDisplayValueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + displayValue_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return Whether the combustionConsumptionUnit field is set. + */ + @java.lang.Override + public boolean hasCombustionConsumptionUnit() { + return displayUnitCase_ == 12; + } + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return The enum numeric value on the wire for combustionConsumptionUnit. + */ + @java.lang.Override + public int getCombustionConsumptionUnitValue() { + if (displayUnitCase_ == 12) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @param value The enum numeric value on the wire for combustionConsumptionUnit to set. + * @return This builder for chaining. + */ + public Builder setCombustionConsumptionUnitValue(int value) { + displayUnitCase_ = 12; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return The combustionConsumptionUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit getCombustionConsumptionUnit() { + if (displayUnitCase_ == 12) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit.UNSPECIFIED_COMBUSTION_CONSUMPTION_UNIT; + } + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @param value The combustionConsumptionUnit to set. + * @return This builder for chaining. + */ + public Builder setCombustionConsumptionUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 12; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.CombustionConsumptionUnit combustion_consumption_unit = 12; + * @return This builder for chaining. + */ + public Builder clearCombustionConsumptionUnit() { + if (displayUnitCase_ == 12) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return Whether the gasConsumptionUnit field is set. + */ + @java.lang.Override + public boolean hasGasConsumptionUnit() { + return displayUnitCase_ == 13; + } + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return The enum numeric value on the wire for gasConsumptionUnit. + */ + @java.lang.Override + public int getGasConsumptionUnitValue() { + if (displayUnitCase_ == 13) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @param value The enum numeric value on the wire for gasConsumptionUnit to set. + * @return This builder for chaining. + */ + public Builder setGasConsumptionUnitValue(int value) { + displayUnitCase_ = 13; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return The gasConsumptionUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit getGasConsumptionUnit() { + if (displayUnitCase_ == 13) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit.UNSPECIFIED_GAS_CONSUMPTION_UNIT; + } + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @param value The gasConsumptionUnit to set. + * @return This builder for chaining. + */ + public Builder setGasConsumptionUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 13; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.GasConsumptionUnit gas_consumption_unit = 13; + * @return This builder for chaining. + */ + public Builder clearGasConsumptionUnit() { + if (displayUnitCase_ == 13) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return Whether the electricityConsumptionUnit field is set. + */ + @java.lang.Override + public boolean hasElectricityConsumptionUnit() { + return displayUnitCase_ == 14; + } + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return The enum numeric value on the wire for electricityConsumptionUnit. + */ + @java.lang.Override + public int getElectricityConsumptionUnitValue() { + if (displayUnitCase_ == 14) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @param value The enum numeric value on the wire for electricityConsumptionUnit to set. + * @return This builder for chaining. + */ + public Builder setElectricityConsumptionUnitValue(int value) { + displayUnitCase_ = 14; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return The electricityConsumptionUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit getElectricityConsumptionUnit() { + if (displayUnitCase_ == 14) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit.UNSPECIFIED_ELECTRICITY_CONSUMPTION_UNIT; + } + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @param value The electricityConsumptionUnit to set. + * @return This builder for chaining. + */ + public Builder setElectricityConsumptionUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 14; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.ElectricityConsumptionUnit electricity_consumption_unit = 14; + * @return This builder for chaining. + */ + public Builder clearElectricityConsumptionUnit() { + if (displayUnitCase_ == 14) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + *
+       * use speed unit / length unit instead
+       * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return Whether the speedDistanceUnit field is set. + */ + @java.lang.Override + @java.lang.Deprecated public boolean hasSpeedDistanceUnit() { + return displayUnitCase_ == 15; + } + /** + *
+       * use speed unit / length unit instead
+       * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return The enum numeric value on the wire for speedDistanceUnit. + */ + @java.lang.Override + @java.lang.Deprecated public int getSpeedDistanceUnitValue() { + if (displayUnitCase_ == 15) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + *
+       * use speed unit / length unit instead
+       * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @param value The enum numeric value on the wire for speedDistanceUnit to set. + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder setSpeedDistanceUnitValue(int value) { + displayUnitCase_ = 15; + displayUnit_ = value; + onChanged(); + return this; + } + /** + *
+       * use speed unit / length unit instead
+       * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return The speedDistanceUnit. + */ + @java.lang.Override + @java.lang.Deprecated public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit getSpeedDistanceUnit() { + if (displayUnitCase_ == 15) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit.UNSPECIFIED_SPEED_DISTANCE_UNIT; + } + /** + *
+       * use speed unit / length unit instead
+       * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @param value The speedDistanceUnit to set. + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder setSpeedDistanceUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedDistanceUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 15; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * use speed unit / length unit instead
+       * 
+ * + * .proto.VehicleAttributeStatus.SpeedDistanceUnit speed_distance_unit = 15 [deprecated = true]; + * @deprecated proto.VehicleAttributeStatus.speed_distance_unit is deprecated. + * See vehicle-events.proto;l=141 + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder clearSpeedDistanceUnit() { + if (displayUnitCase_ == 15) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return Whether the speedUnit field is set. + */ + @java.lang.Override + public boolean hasSpeedUnit() { + return displayUnitCase_ == 25; + } + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return The enum numeric value on the wire for speedUnit. + */ + @java.lang.Override + public int getSpeedUnitValue() { + if (displayUnitCase_ == 25) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @param value The enum numeric value on the wire for speedUnit to set. + * @return This builder for chaining. + */ + public Builder setSpeedUnitValue(int value) { + displayUnitCase_ = 25; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return The speedUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit getSpeedUnit() { + if (displayUnitCase_ == 25) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit.UNSPECIFIED_SPEED_UNIT; + } + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @param value The speedUnit to set. + * @return This builder for chaining. + */ + public Builder setSpeedUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 25; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.SpeedUnit speed_unit = 25; + * @return This builder for chaining. + */ + public Builder clearSpeedUnit() { + if (displayUnitCase_ == 25) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return Whether the distanceUnit field is set. + */ + @java.lang.Override + public boolean hasDistanceUnit() { + return displayUnitCase_ == 26; + } + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return The enum numeric value on the wire for distanceUnit. + */ + @java.lang.Override + public int getDistanceUnitValue() { + if (displayUnitCase_ == 26) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @param value The enum numeric value on the wire for distanceUnit to set. + * @return This builder for chaining. + */ + public Builder setDistanceUnitValue(int value) { + displayUnitCase_ = 26; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return The distanceUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit getDistanceUnit() { + if (displayUnitCase_ == 26) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit.UNSPECIFIED_DISTANCE_UNIT; + } + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @param value The distanceUnit to set. + * @return This builder for chaining. + */ + public Builder setDistanceUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 26; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.DistanceUnit distance_unit = 26; + * @return This builder for chaining. + */ + public Builder clearDistanceUnit() { + if (displayUnitCase_ == 26) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return Whether the temperatureUnit field is set. + */ + @java.lang.Override + public boolean hasTemperatureUnit() { + return displayUnitCase_ == 16; + } + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return The enum numeric value on the wire for temperatureUnit. + */ + @java.lang.Override + public int getTemperatureUnitValue() { + if (displayUnitCase_ == 16) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @param value The enum numeric value on the wire for temperatureUnit to set. + * @return This builder for chaining. + */ + public Builder setTemperatureUnitValue(int value) { + displayUnitCase_ = 16; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return The temperatureUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit getTemperatureUnit() { + if (displayUnitCase_ == 16) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit.UNSPECIFIED_TEMPERATURE_UNIT; + } + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @param value The temperatureUnit to set. + * @return This builder for chaining. + */ + public Builder setTemperatureUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 16; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.TemperatureUnit temperature_unit = 16; + * @return This builder for chaining. + */ + public Builder clearTemperatureUnit() { + if (displayUnitCase_ == 16) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return Whether the pressureUnit field is set. + */ + @java.lang.Override + public boolean hasPressureUnit() { + return displayUnitCase_ == 17; + } + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return The enum numeric value on the wire for pressureUnit. + */ + @java.lang.Override + public int getPressureUnitValue() { + if (displayUnitCase_ == 17) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @param value The enum numeric value on the wire for pressureUnit to set. + * @return This builder for chaining. + */ + public Builder setPressureUnitValue(int value) { + displayUnitCase_ = 17; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return The pressureUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit getPressureUnit() { + if (displayUnitCase_ == 17) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit.UNSPECIFIED_PRESSURE_UNIT; + } + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @param value The pressureUnit to set. + * @return This builder for chaining. + */ + public Builder setPressureUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 17; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.PressureUnit pressure_unit = 17; + * @return This builder for chaining. + */ + public Builder clearPressureUnit() { + if (displayUnitCase_ == 17) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return Whether the ratioUnit field is set. + */ + @java.lang.Override + public boolean hasRatioUnit() { + return displayUnitCase_ == 18; + } + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return The enum numeric value on the wire for ratioUnit. + */ + @java.lang.Override + public int getRatioUnitValue() { + if (displayUnitCase_ == 18) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @param value The enum numeric value on the wire for ratioUnit to set. + * @return This builder for chaining. + */ + public Builder setRatioUnitValue(int value) { + displayUnitCase_ = 18; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return The ratioUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit getRatioUnit() { + if (displayUnitCase_ == 18) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit.UNSPECIFIED_RATIO_UNIT; + } + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @param value The ratioUnit to set. + * @return This builder for chaining. + */ + public Builder setRatioUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 18; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.RatioUnit ratio_unit = 18; + * @return This builder for chaining. + */ + public Builder clearRatioUnit() { + if (displayUnitCase_ == 18) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return Whether the clockHourUnit field is set. + */ + @java.lang.Override + public boolean hasClockHourUnit() { + return displayUnitCase_ == 19; + } + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return The enum numeric value on the wire for clockHourUnit. + */ + @java.lang.Override + public int getClockHourUnitValue() { + if (displayUnitCase_ == 19) { + return ((java.lang.Integer) displayUnit_).intValue(); + } + return 0; + } + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @param value The enum numeric value on the wire for clockHourUnit to set. + * @return This builder for chaining. + */ + public Builder setClockHourUnitValue(int value) { + displayUnitCase_ = 19; + displayUnit_ = value; + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return The clockHourUnit. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit getClockHourUnit() { + if (displayUnitCase_ == 19) { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit result = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.forNumber( + (java.lang.Integer) displayUnit_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.UNRECOGNIZED : result; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit.UNSPECIFIED_CLOCK_HOUR_UNIT; + } + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @param value The clockHourUnit to set. + * @return This builder for chaining. + */ + public Builder setClockHourUnit(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit value) { + if (value == null) { + throw new NullPointerException(); + } + displayUnitCase_ = 19; + displayUnit_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.VehicleAttributeStatus.ClockHourUnit clock_hour_unit = 19; + * @return This builder for chaining. + */ + public Builder clearClockHourUnit() { + if (displayUnitCase_ == 19) { + displayUnitCase_ = 0; + displayUnit_ = null; + onChanged(); + } + return this; + } + + /** + * int64 int_value = 4; + * @return Whether the intValue field is set. + */ + public boolean hasIntValue() { + return attributeTypeCase_ == 4; + } + /** + * int64 int_value = 4; + * @return The intValue. + */ + public long getIntValue() { + if (attributeTypeCase_ == 4) { + return (java.lang.Long) attributeType_; + } + return 0L; + } + /** + * int64 int_value = 4; + * @param value The intValue to set. + * @return This builder for chaining. + */ + public Builder setIntValue(long value) { + + attributeTypeCase_ = 4; + attributeType_ = value; + onChanged(); + return this; + } + /** + * int64 int_value = 4; + * @return This builder for chaining. + */ + public Builder clearIntValue() { + if (attributeTypeCase_ == 4) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + return this; + } + + /** + * bool bool_value = 5; + * @return Whether the boolValue field is set. + */ + public boolean hasBoolValue() { + return attributeTypeCase_ == 5; + } + /** + * bool bool_value = 5; + * @return The boolValue. + */ + public boolean getBoolValue() { + if (attributeTypeCase_ == 5) { + return (java.lang.Boolean) attributeType_; + } + return false; + } + /** + * bool bool_value = 5; + * @param value The boolValue to set. + * @return This builder for chaining. + */ + public Builder setBoolValue(boolean value) { + + attributeTypeCase_ = 5; + attributeType_ = value; + onChanged(); + return this; + } + /** + * bool bool_value = 5; + * @return This builder for chaining. + */ + public Builder clearBoolValue() { + if (attributeTypeCase_ == 5) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + return this; + } + + /** + * string string_value = 6; + * @return Whether the stringValue field is set. + */ + @java.lang.Override + public boolean hasStringValue() { + return attributeTypeCase_ == 6; + } + /** + * string string_value = 6; + * @return The stringValue. + */ + @java.lang.Override + public java.lang.String getStringValue() { + java.lang.Object ref = ""; + if (attributeTypeCase_ == 6) { + ref = attributeType_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (attributeTypeCase_ == 6) { + attributeType_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string string_value = 6; + * @return The bytes for stringValue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStringValueBytes() { + java.lang.Object ref = ""; + if (attributeTypeCase_ == 6) { + ref = attributeType_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (attributeTypeCase_ == 6) { + attributeType_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string string_value = 6; + * @param value The stringValue to set. + * @return This builder for chaining. + */ + public Builder setStringValue( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + attributeTypeCase_ = 6; + attributeType_ = value; + onChanged(); + return this; + } + /** + * string string_value = 6; + * @return This builder for chaining. + */ + public Builder clearStringValue() { + if (attributeTypeCase_ == 6) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + return this; + } + /** + * string string_value = 6; + * @param value The bytes for stringValue to set. + * @return This builder for chaining. + */ + public Builder setStringValueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + attributeTypeCase_ = 6; + attributeType_ = value; + onChanged(); + return this; + } + + /** + * double double_value = 7; + * @return Whether the doubleValue field is set. + */ + public boolean hasDoubleValue() { + return attributeTypeCase_ == 7; + } + /** + * double double_value = 7; + * @return The doubleValue. + */ + public double getDoubleValue() { + if (attributeTypeCase_ == 7) { + return (java.lang.Double) attributeType_; + } + return 0D; + } + /** + * double double_value = 7; + * @param value The doubleValue to set. + * @return This builder for chaining. + */ + public Builder setDoubleValue(double value) { + + attributeTypeCase_ = 7; + attributeType_ = value; + onChanged(); + return this; + } + /** + * double double_value = 7; + * @return This builder for chaining. + */ + public Builder clearDoubleValue() { + if (attributeTypeCase_ == 7) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + return this; + } + + /** + * bool nil_value = 8; + * @return Whether the nilValue field is set. + */ + public boolean hasNilValue() { + return attributeTypeCase_ == 8; + } + /** + * bool nil_value = 8; + * @return The nilValue. + */ + public boolean getNilValue() { + if (attributeTypeCase_ == 8) { + return (java.lang.Boolean) attributeType_; + } + return false; + } + /** + * bool nil_value = 8; + * @param value The nilValue to set. + * @return This builder for chaining. + */ + public Builder setNilValue(boolean value) { + + attributeTypeCase_ = 8; + attributeType_ = value; + onChanged(); + return this; + } + /** + * bool nil_value = 8; + * @return This builder for chaining. + */ + public Builder clearNilValue() { + if (attributeTypeCase_ == 8) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + return this; + } + + /** + * string unsupported_value = 9; + * @return Whether the unsupportedValue field is set. + */ + @java.lang.Override + public boolean hasUnsupportedValue() { + return attributeTypeCase_ == 9; + } + /** + * string unsupported_value = 9; + * @return The unsupportedValue. + */ + @java.lang.Override + public java.lang.String getUnsupportedValue() { + java.lang.Object ref = ""; + if (attributeTypeCase_ == 9) { + ref = attributeType_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (attributeTypeCase_ == 9) { + attributeType_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string unsupported_value = 9; + * @return The bytes for unsupportedValue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getUnsupportedValueBytes() { + java.lang.Object ref = ""; + if (attributeTypeCase_ == 9) { + ref = attributeType_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (attributeTypeCase_ == 9) { + attributeType_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string unsupported_value = 9; + * @param value The unsupportedValue to set. + * @return This builder for chaining. + */ + public Builder setUnsupportedValue( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + attributeTypeCase_ = 9; + attributeType_ = value; + onChanged(); + return this; + } + /** + * string unsupported_value = 9; + * @return This builder for chaining. + */ + public Builder clearUnsupportedValue() { + if (attributeTypeCase_ == 9) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + return this; + } + /** + * string unsupported_value = 9; + * @param value The bytes for unsupportedValue to set. + * @return This builder for chaining. + */ + public Builder setUnsupportedValueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + attributeTypeCase_ = 9; + attributeType_ = value; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder> temperaturePointsValueBuilder_; + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + * @return Whether the temperaturePointsValue field is set. + */ + @java.lang.Override + public boolean hasTemperaturePointsValue() { + return attributeTypeCase_ == 20; + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + * @return The temperaturePointsValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getTemperaturePointsValue() { + if (temperaturePointsValueBuilder_ == null) { + if (attributeTypeCase_ == 20) { + return (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 20) { + return temperaturePointsValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance(); + } + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + public Builder setTemperaturePointsValue(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue value) { + if (temperaturePointsValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + temperaturePointsValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 20; + return this; + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + public Builder setTemperaturePointsValue( + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder builderForValue) { + if (temperaturePointsValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + temperaturePointsValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 20; + return this; + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + public Builder mergeTemperaturePointsValue(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue value) { + if (temperaturePointsValueBuilder_ == null) { + if (attributeTypeCase_ == 20 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 20) { + temperaturePointsValueBuilder_.mergeFrom(value); + } else { + temperaturePointsValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 20; + return this; + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + public Builder clearTemperaturePointsValue() { + if (temperaturePointsValueBuilder_ == null) { + if (attributeTypeCase_ == 20) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 20) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + temperaturePointsValueBuilder_.clear(); + } + return this; + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder getTemperaturePointsValueBuilder() { + return getTemperaturePointsValueFieldBuilder().getBuilder(); + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder getTemperaturePointsValueOrBuilder() { + if ((attributeTypeCase_ == 20) && (temperaturePointsValueBuilder_ != null)) { + return temperaturePointsValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 20) { + return (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance(); + } + } + /** + * .proto.TemperaturePointsValue temperature_points_value = 20; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder> + getTemperaturePointsValueFieldBuilder() { + if (temperaturePointsValueBuilder_ == null) { + if (!(attributeTypeCase_ == 20)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance(); + } + temperaturePointsValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 20; + onChanged(); + return temperaturePointsValueBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder> weekdayTariffValueBuilder_; + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + * @return Whether the weekdayTariffValue field is set. + */ + @java.lang.Override + public boolean hasWeekdayTariffValue() { + return attributeTypeCase_ == 21; + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + * @return The weekdayTariffValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getWeekdayTariffValue() { + if (weekdayTariffValueBuilder_ == null) { + if (attributeTypeCase_ == 21) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 21) { + return weekdayTariffValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance(); + } + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + public Builder setWeekdayTariffValue(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue value) { + if (weekdayTariffValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + weekdayTariffValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 21; + return this; + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + public Builder setWeekdayTariffValue( + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder builderForValue) { + if (weekdayTariffValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + weekdayTariffValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 21; + return this; + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + public Builder mergeWeekdayTariffValue(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue value) { + if (weekdayTariffValueBuilder_ == null) { + if (attributeTypeCase_ == 21 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 21) { + weekdayTariffValueBuilder_.mergeFrom(value); + } else { + weekdayTariffValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 21; + return this; + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + public Builder clearWeekdayTariffValue() { + if (weekdayTariffValueBuilder_ == null) { + if (attributeTypeCase_ == 21) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 21) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + weekdayTariffValueBuilder_.clear(); + } + return this; + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder getWeekdayTariffValueBuilder() { + return getWeekdayTariffValueFieldBuilder().getBuilder(); + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder getWeekdayTariffValueOrBuilder() { + if ((attributeTypeCase_ == 21) && (weekdayTariffValueBuilder_ != null)) { + return weekdayTariffValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 21) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance(); + } + } + /** + * .proto.WeekdayTariffValue weekday_tariff_value = 21; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder> + getWeekdayTariffValueFieldBuilder() { + if (weekdayTariffValueBuilder_ == null) { + if (!(attributeTypeCase_ == 21)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance(); + } + weekdayTariffValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 21; + onChanged(); + return weekdayTariffValueBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder> weekendTariffValueBuilder_; + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + * @return Whether the weekendTariffValue field is set. + */ + @java.lang.Override + public boolean hasWeekendTariffValue() { + return attributeTypeCase_ == 22; + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + * @return The weekendTariffValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getWeekendTariffValue() { + if (weekendTariffValueBuilder_ == null) { + if (attributeTypeCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 22) { + return weekendTariffValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance(); + } + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + public Builder setWeekendTariffValue(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue value) { + if (weekendTariffValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + weekendTariffValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 22; + return this; + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + public Builder setWeekendTariffValue( + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder builderForValue) { + if (weekendTariffValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + weekendTariffValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 22; + return this; + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + public Builder mergeWeekendTariffValue(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue value) { + if (weekendTariffValueBuilder_ == null) { + if (attributeTypeCase_ == 22 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 22) { + weekendTariffValueBuilder_.mergeFrom(value); + } else { + weekendTariffValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 22; + return this; + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + public Builder clearWeekendTariffValue() { + if (weekendTariffValueBuilder_ == null) { + if (attributeTypeCase_ == 22) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 22) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + weekendTariffValueBuilder_.clear(); + } + return this; + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder getWeekendTariffValueBuilder() { + return getWeekendTariffValueFieldBuilder().getBuilder(); + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder getWeekendTariffValueOrBuilder() { + if ((attributeTypeCase_ == 22) && (weekendTariffValueBuilder_ != null)) { + return weekendTariffValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 22) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance(); + } + } + /** + * .proto.WeekendTariffValue weekend_tariff_value = 22; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder> + getWeekendTariffValueFieldBuilder() { + if (weekendTariffValueBuilder_ == null) { + if (!(attributeTypeCase_ == 22)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance(); + } + weekendTariffValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 22; + onChanged(); + return weekendTariffValueBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder> stateOfChargeProfileValueBuilder_; + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + * @return Whether the stateOfChargeProfileValue field is set. + */ + @java.lang.Override + public boolean hasStateOfChargeProfileValue() { + return attributeTypeCase_ == 23; + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + * @return The stateOfChargeProfileValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getStateOfChargeProfileValue() { + if (stateOfChargeProfileValueBuilder_ == null) { + if (attributeTypeCase_ == 23) { + return (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 23) { + return stateOfChargeProfileValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance(); + } + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + public Builder setStateOfChargeProfileValue(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue value) { + if (stateOfChargeProfileValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + stateOfChargeProfileValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 23; + return this; + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + public Builder setStateOfChargeProfileValue( + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder builderForValue) { + if (stateOfChargeProfileValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + stateOfChargeProfileValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 23; + return this; + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + public Builder mergeStateOfChargeProfileValue(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue value) { + if (stateOfChargeProfileValueBuilder_ == null) { + if (attributeTypeCase_ == 23 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 23) { + stateOfChargeProfileValueBuilder_.mergeFrom(value); + } else { + stateOfChargeProfileValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 23; + return this; + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + public Builder clearStateOfChargeProfileValue() { + if (stateOfChargeProfileValueBuilder_ == null) { + if (attributeTypeCase_ == 23) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 23) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + stateOfChargeProfileValueBuilder_.clear(); + } + return this; + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder getStateOfChargeProfileValueBuilder() { + return getStateOfChargeProfileValueFieldBuilder().getBuilder(); + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder getStateOfChargeProfileValueOrBuilder() { + if ((attributeTypeCase_ == 23) && (stateOfChargeProfileValueBuilder_ != null)) { + return stateOfChargeProfileValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 23) { + return (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance(); + } + } + /** + * .proto.StateOfChargeProfileValue state_of_charge_profile_value = 23; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder> + getStateOfChargeProfileValueFieldBuilder() { + if (stateOfChargeProfileValueBuilder_ == null) { + if (!(attributeTypeCase_ == 23)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance(); + } + stateOfChargeProfileValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 23; + onChanged(); + return stateOfChargeProfileValueBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder> weeklySettingsHeadUnitValueBuilder_; + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + * @return Whether the weeklySettingsHeadUnitValue field is set. + */ + @java.lang.Override + public boolean hasWeeklySettingsHeadUnitValue() { + return attributeTypeCase_ == 24; + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + * @return The weeklySettingsHeadUnitValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getWeeklySettingsHeadUnitValue() { + if (weeklySettingsHeadUnitValueBuilder_ == null) { + if (attributeTypeCase_ == 24) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 24) { + return weeklySettingsHeadUnitValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance(); + } + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + public Builder setWeeklySettingsHeadUnitValue(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue value) { + if (weeklySettingsHeadUnitValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + weeklySettingsHeadUnitValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 24; + return this; + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + public Builder setWeeklySettingsHeadUnitValue( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder builderForValue) { + if (weeklySettingsHeadUnitValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + weeklySettingsHeadUnitValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 24; + return this; + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + public Builder mergeWeeklySettingsHeadUnitValue(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue value) { + if (weeklySettingsHeadUnitValueBuilder_ == null) { + if (attributeTypeCase_ == 24 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 24) { + weeklySettingsHeadUnitValueBuilder_.mergeFrom(value); + } else { + weeklySettingsHeadUnitValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 24; + return this; + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + public Builder clearWeeklySettingsHeadUnitValue() { + if (weeklySettingsHeadUnitValueBuilder_ == null) { + if (attributeTypeCase_ == 24) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 24) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + weeklySettingsHeadUnitValueBuilder_.clear(); + } + return this; + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder getWeeklySettingsHeadUnitValueBuilder() { + return getWeeklySettingsHeadUnitValueFieldBuilder().getBuilder(); + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder getWeeklySettingsHeadUnitValueOrBuilder() { + if ((attributeTypeCase_ == 24) && (weeklySettingsHeadUnitValueBuilder_ != null)) { + return weeklySettingsHeadUnitValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 24) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance(); + } + } + /** + * .proto.WeeklySettingsHeadUnitValue weekly_settings_head_unit_value = 24; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder> + getWeeklySettingsHeadUnitValueFieldBuilder() { + if (weeklySettingsHeadUnitValueBuilder_ == null) { + if (!(attributeTypeCase_ == 24)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance(); + } + weeklySettingsHeadUnitValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 24; + onChanged(); + return weeklySettingsHeadUnitValueBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder> speedAlertConfigurationValueBuilder_; + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + * @return Whether the speedAlertConfigurationValue field is set. + */ + @java.lang.Override + public boolean hasSpeedAlertConfigurationValue() { + return attributeTypeCase_ == 27; + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + * @return The speedAlertConfigurationValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getSpeedAlertConfigurationValue() { + if (speedAlertConfigurationValueBuilder_ == null) { + if (attributeTypeCase_ == 27) { + return (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 27) { + return speedAlertConfigurationValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance(); + } + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + public Builder setSpeedAlertConfigurationValue(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue value) { + if (speedAlertConfigurationValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + speedAlertConfigurationValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 27; + return this; + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + public Builder setSpeedAlertConfigurationValue( + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder builderForValue) { + if (speedAlertConfigurationValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + speedAlertConfigurationValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 27; + return this; + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + public Builder mergeSpeedAlertConfigurationValue(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue value) { + if (speedAlertConfigurationValueBuilder_ == null) { + if (attributeTypeCase_ == 27 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 27) { + speedAlertConfigurationValueBuilder_.mergeFrom(value); + } else { + speedAlertConfigurationValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 27; + return this; + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + public Builder clearSpeedAlertConfigurationValue() { + if (speedAlertConfigurationValueBuilder_ == null) { + if (attributeTypeCase_ == 27) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 27) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + speedAlertConfigurationValueBuilder_.clear(); + } + return this; + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder getSpeedAlertConfigurationValueBuilder() { + return getSpeedAlertConfigurationValueFieldBuilder().getBuilder(); + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder getSpeedAlertConfigurationValueOrBuilder() { + if ((attributeTypeCase_ == 27) && (speedAlertConfigurationValueBuilder_ != null)) { + return speedAlertConfigurationValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 27) { + return (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance(); + } + } + /** + * .proto.SpeedAlertConfigurationValue speed_alert_configuration_value = 27; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder> + getSpeedAlertConfigurationValueFieldBuilder() { + if (speedAlertConfigurationValueBuilder_ == null) { + if (!(attributeTypeCase_ == 27)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance(); + } + speedAlertConfigurationValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 27; + onChanged(); + return speedAlertConfigurationValueBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder> ecoHistogramValueBuilder_; + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + * @return Whether the ecoHistogramValue field is set. + */ + @java.lang.Override + public boolean hasEcoHistogramValue() { + return attributeTypeCase_ == 28; + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + * @return The ecoHistogramValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getEcoHistogramValue() { + if (ecoHistogramValueBuilder_ == null) { + if (attributeTypeCase_ == 28) { + return (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 28) { + return ecoHistogramValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance(); + } + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + public Builder setEcoHistogramValue(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue value) { + if (ecoHistogramValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + ecoHistogramValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 28; + return this; + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + public Builder setEcoHistogramValue( + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder builderForValue) { + if (ecoHistogramValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + ecoHistogramValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 28; + return this; + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + public Builder mergeEcoHistogramValue(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue value) { + if (ecoHistogramValueBuilder_ == null) { + if (attributeTypeCase_ == 28 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 28) { + ecoHistogramValueBuilder_.mergeFrom(value); + } else { + ecoHistogramValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 28; + return this; + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + public Builder clearEcoHistogramValue() { + if (ecoHistogramValueBuilder_ == null) { + if (attributeTypeCase_ == 28) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 28) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + ecoHistogramValueBuilder_.clear(); + } + return this; + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder getEcoHistogramValueBuilder() { + return getEcoHistogramValueFieldBuilder().getBuilder(); + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder getEcoHistogramValueOrBuilder() { + if ((attributeTypeCase_ == 28) && (ecoHistogramValueBuilder_ != null)) { + return ecoHistogramValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 28) { + return (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance(); + } + } + /** + * .proto.EcoHistogramValue eco_histogram_value = 28; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder> + getEcoHistogramValueFieldBuilder() { + if (ecoHistogramValueBuilder_ == null) { + if (!(attributeTypeCase_ == 28)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance(); + } + ecoHistogramValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 28; + onChanged(); + return ecoHistogramValueBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder> weeklyProfileValueBuilder_; + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + * @return Whether the weeklyProfileValue field is set. + */ + @java.lang.Override + public boolean hasWeeklyProfileValue() { + return attributeTypeCase_ == 29; + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + * @return The weeklyProfileValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getWeeklyProfileValue() { + if (weeklyProfileValueBuilder_ == null) { + if (attributeTypeCase_ == 29) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 29) { + return weeklyProfileValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance(); + } + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + public Builder setWeeklyProfileValue(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue value) { + if (weeklyProfileValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + weeklyProfileValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 29; + return this; + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + public Builder setWeeklyProfileValue( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder builderForValue) { + if (weeklyProfileValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + weeklyProfileValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 29; + return this; + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + public Builder mergeWeeklyProfileValue(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue value) { + if (weeklyProfileValueBuilder_ == null) { + if (attributeTypeCase_ == 29 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 29) { + weeklyProfileValueBuilder_.mergeFrom(value); + } else { + weeklyProfileValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 29; + return this; + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + public Builder clearWeeklyProfileValue() { + if (weeklyProfileValueBuilder_ == null) { + if (attributeTypeCase_ == 29) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 29) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + weeklyProfileValueBuilder_.clear(); + } + return this; + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder getWeeklyProfileValueBuilder() { + return getWeeklyProfileValueFieldBuilder().getBuilder(); + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder getWeeklyProfileValueOrBuilder() { + if ((attributeTypeCase_ == 29) && (weeklyProfileValueBuilder_ != null)) { + return weeklyProfileValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 29) { + return (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance(); + } + } + /** + * .proto.WeeklyProfileValue weekly_profile_value = 29; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder> + getWeeklyProfileValueFieldBuilder() { + if (weeklyProfileValueBuilder_ == null) { + if (!(attributeTypeCase_ == 29)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance(); + } + weeklyProfileValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 29; + onChanged(); + return weeklyProfileValueBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder> chargeProgramsValueBuilder_; + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + * @return Whether the chargeProgramsValue field is set. + */ + @java.lang.Override + public boolean hasChargeProgramsValue() { + return attributeTypeCase_ == 31; + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + * @return The chargeProgramsValue. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getChargeProgramsValue() { + if (chargeProgramsValueBuilder_ == null) { + if (attributeTypeCase_ == 31) { + return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance(); + } else { + if (attributeTypeCase_ == 31) { + return chargeProgramsValueBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance(); + } + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + public Builder setChargeProgramsValue(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue value) { + if (chargeProgramsValueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + attributeType_ = value; + onChanged(); + } else { + chargeProgramsValueBuilder_.setMessage(value); + } + attributeTypeCase_ = 31; + return this; + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + public Builder setChargeProgramsValue( + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder builderForValue) { + if (chargeProgramsValueBuilder_ == null) { + attributeType_ = builderForValue.build(); + onChanged(); + } else { + chargeProgramsValueBuilder_.setMessage(builderForValue.build()); + } + attributeTypeCase_ = 31; + return this; + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + public Builder mergeChargeProgramsValue(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue value) { + if (chargeProgramsValueBuilder_ == null) { + if (attributeTypeCase_ == 31 && + attributeType_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance()) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_) + .mergeFrom(value).buildPartial(); + } else { + attributeType_ = value; + } + onChanged(); + } else { + if (attributeTypeCase_ == 31) { + chargeProgramsValueBuilder_.mergeFrom(value); + } else { + chargeProgramsValueBuilder_.setMessage(value); + } + } + attributeTypeCase_ = 31; + return this; + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + public Builder clearChargeProgramsValue() { + if (chargeProgramsValueBuilder_ == null) { + if (attributeTypeCase_ == 31) { + attributeTypeCase_ = 0; + attributeType_ = null; + onChanged(); + } + } else { + if (attributeTypeCase_ == 31) { + attributeTypeCase_ = 0; + attributeType_ = null; + } + chargeProgramsValueBuilder_.clear(); + } + return this; + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder getChargeProgramsValueBuilder() { + return getChargeProgramsValueFieldBuilder().getBuilder(); + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder getChargeProgramsValueOrBuilder() { + if ((attributeTypeCase_ == 31) && (chargeProgramsValueBuilder_ != null)) { + return chargeProgramsValueBuilder_.getMessageOrBuilder(); + } else { + if (attributeTypeCase_ == 31) { + return (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance(); + } + } + /** + * .proto.ChargeProgramsValue charge_programs_value = 31; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder> + getChargeProgramsValueFieldBuilder() { + if (chargeProgramsValueBuilder_ == null) { + if (!(attributeTypeCase_ == 31)) { + attributeType_ = com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance(); + } + chargeProgramsValueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) attributeType_, + getParentForChildren(), + isClean()); + attributeType_ = null; + } + attributeTypeCase_ = 31; + onChanged(); + return chargeProgramsValueBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleAttributeStatus) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleAttributeStatus) + private static final com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleAttributeStatus parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeProgramsValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeProgramsValue) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + java.util.List + getChargeProgramParametersList(); + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getChargeProgramParameters(int index); + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + int getChargeProgramParametersCount(); + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + java.util.List + getChargeProgramParametersOrBuilderList(); + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder getChargeProgramParametersOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.ChargeProgramsValue} + */ + public static final class ChargeProgramsValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeProgramsValue) + ChargeProgramsValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeProgramsValue.class.getName()); + } + // Use ChargeProgramsValue.newBuilder() to construct. + private ChargeProgramsValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeProgramsValue() { + chargeProgramParameters_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder.class); + } + + public static final int CHARGE_PROGRAM_PARAMETERS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List chargeProgramParameters_; + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + @java.lang.Override + public java.util.List getChargeProgramParametersList() { + return chargeProgramParameters_; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + @java.lang.Override + public java.util.List + getChargeProgramParametersOrBuilderList() { + return chargeProgramParameters_; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + @java.lang.Override + public int getChargeProgramParametersCount() { + return chargeProgramParameters_.size(); + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getChargeProgramParameters(int index) { + return chargeProgramParameters_.get(index); + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder getChargeProgramParametersOrBuilder( + int index) { + return chargeProgramParameters_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < chargeProgramParameters_.size(); i++) { + output.writeMessage(1, chargeProgramParameters_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < chargeProgramParameters_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, chargeProgramParameters_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) obj; + + if (!getChargeProgramParametersList() + .equals(other.getChargeProgramParametersList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getChargeProgramParametersCount() > 0) { + hash = (37 * hash) + CHARGE_PROGRAM_PARAMETERS_FIELD_NUMBER; + hash = (53 * hash) + getChargeProgramParametersList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ChargeProgramsValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeProgramsValue) + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (chargeProgramParametersBuilder_ == null) { + chargeProgramParameters_ = java.util.Collections.emptyList(); + } else { + chargeProgramParameters_ = null; + chargeProgramParametersBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramsValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue result) { + if (chargeProgramParametersBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + chargeProgramParameters_ = java.util.Collections.unmodifiableList(chargeProgramParameters_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.chargeProgramParameters_ = chargeProgramParameters_; + } else { + result.chargeProgramParameters_ = chargeProgramParametersBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue.getDefaultInstance()) return this; + if (chargeProgramParametersBuilder_ == null) { + if (!other.chargeProgramParameters_.isEmpty()) { + if (chargeProgramParameters_.isEmpty()) { + chargeProgramParameters_ = other.chargeProgramParameters_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.addAll(other.chargeProgramParameters_); + } + onChanged(); + } + } else { + if (!other.chargeProgramParameters_.isEmpty()) { + if (chargeProgramParametersBuilder_.isEmpty()) { + chargeProgramParametersBuilder_.dispose(); + chargeProgramParametersBuilder_ = null; + chargeProgramParameters_ = other.chargeProgramParameters_; + bitField0_ = (bitField0_ & ~0x00000001); + chargeProgramParametersBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getChargeProgramParametersFieldBuilder() : null; + } else { + chargeProgramParametersBuilder_.addAllMessages(other.chargeProgramParameters_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.parser(), + extensionRegistry); + if (chargeProgramParametersBuilder_ == null) { + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.add(m); + } else { + chargeProgramParametersBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List chargeProgramParameters_ = + java.util.Collections.emptyList(); + private void ensureChargeProgramParametersIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + chargeProgramParameters_ = new java.util.ArrayList(chargeProgramParameters_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder> chargeProgramParametersBuilder_; + + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public java.util.List getChargeProgramParametersList() { + if (chargeProgramParametersBuilder_ == null) { + return java.util.Collections.unmodifiableList(chargeProgramParameters_); + } else { + return chargeProgramParametersBuilder_.getMessageList(); + } + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public int getChargeProgramParametersCount() { + if (chargeProgramParametersBuilder_ == null) { + return chargeProgramParameters_.size(); + } else { + return chargeProgramParametersBuilder_.getCount(); + } + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getChargeProgramParameters(int index) { + if (chargeProgramParametersBuilder_ == null) { + return chargeProgramParameters_.get(index); + } else { + return chargeProgramParametersBuilder_.getMessage(index); + } + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder setChargeProgramParameters( + int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters value) { + if (chargeProgramParametersBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.set(index, value); + onChanged(); + } else { + chargeProgramParametersBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder setChargeProgramParameters( + int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder builderForValue) { + if (chargeProgramParametersBuilder_ == null) { + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.set(index, builderForValue.build()); + onChanged(); + } else { + chargeProgramParametersBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder addChargeProgramParameters(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters value) { + if (chargeProgramParametersBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.add(value); + onChanged(); + } else { + chargeProgramParametersBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder addChargeProgramParameters( + int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters value) { + if (chargeProgramParametersBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.add(index, value); + onChanged(); + } else { + chargeProgramParametersBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder addChargeProgramParameters( + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder builderForValue) { + if (chargeProgramParametersBuilder_ == null) { + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.add(builderForValue.build()); + onChanged(); + } else { + chargeProgramParametersBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder addChargeProgramParameters( + int index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder builderForValue) { + if (chargeProgramParametersBuilder_ == null) { + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.add(index, builderForValue.build()); + onChanged(); + } else { + chargeProgramParametersBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder addAllChargeProgramParameters( + java.lang.Iterable values) { + if (chargeProgramParametersBuilder_ == null) { + ensureChargeProgramParametersIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, chargeProgramParameters_); + onChanged(); + } else { + chargeProgramParametersBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder clearChargeProgramParameters() { + if (chargeProgramParametersBuilder_ == null) { + chargeProgramParameters_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + chargeProgramParametersBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public Builder removeChargeProgramParameters(int index) { + if (chargeProgramParametersBuilder_ == null) { + ensureChargeProgramParametersIsMutable(); + chargeProgramParameters_.remove(index); + onChanged(); + } else { + chargeProgramParametersBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder getChargeProgramParametersBuilder( + int index) { + return getChargeProgramParametersFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder getChargeProgramParametersOrBuilder( + int index) { + if (chargeProgramParametersBuilder_ == null) { + return chargeProgramParameters_.get(index); } else { + return chargeProgramParametersBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public java.util.List + getChargeProgramParametersOrBuilderList() { + if (chargeProgramParametersBuilder_ != null) { + return chargeProgramParametersBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(chargeProgramParameters_); + } + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder addChargeProgramParametersBuilder() { + return getChargeProgramParametersFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.getDefaultInstance()); + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder addChargeProgramParametersBuilder( + int index) { + return getChargeProgramParametersFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.getDefaultInstance()); + } + /** + * repeated .proto.ChargeProgramParameters charge_program_parameters = 1; + */ + public java.util.List + getChargeProgramParametersBuilderList() { + return getChargeProgramParametersFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder> + getChargeProgramParametersFieldBuilder() { + if (chargeProgramParametersBuilder_ == null) { + chargeProgramParametersBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder>( + chargeProgramParameters_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + chargeProgramParameters_ = null; + } + return chargeProgramParametersBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeProgramsValue) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeProgramsValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeProgramsValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ChargeProgramParametersOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ChargeProgramParameters) + com.google.protobuf.MessageOrBuilder { + + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + int getChargeProgramValue(); + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram getChargeProgram(); + + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * Maximum value for the state of charge of the HV battery [in %].
+     * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+     * 
+ * + * int32 max_soc = 2 [json_name = "maxSoc"]; + * @return The maxSoc. + */ + int getMaxSoc(); + + /** + *
+     * unlock the plug after charging is finished
+     * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+     * true - unlock automatically, false - do not unlock automatically
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * bool auto_unlock = 3 [json_name = "autounlock"]; + * @return The autoUnlock. + */ + boolean getAutoUnlock(); + + /** + *
+     * automatically switch between home and work program, based on the location of the car
+     * Denotes whether location based charging should be used.
+     * true - use location based charging, false - do not use location based charging
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * bool location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return The locationBasedCharging. + */ + boolean getLocationBasedCharging(); + + /** + * bool weekly_profile = 5 [json_name = "weeklyprofile"]; + * @return The weeklyProfile. + */ + boolean getWeeklyProfile(); + + /** + * bool clockTimer = 6 [json_name = "clockTimer"]; + * @return The clockTimer. + */ + boolean getClockTimer(); + + /** + * int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"]; + * @return The maxChargingCurrent. + */ + int getMaxChargingCurrent(); + + /** + * bool eco_charging = 8 [json_name = "EcoCharging"]; + * @return The ecoCharging. + */ + boolean getEcoCharging(); + } + /** + * Protobuf type {@code proto.ChargeProgramParameters} + */ + public static final class ChargeProgramParameters extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ChargeProgramParameters) + ChargeProgramParametersOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ChargeProgramParameters.class.getName()); + } + // Use ChargeProgramParameters.newBuilder() to construct. + private ChargeProgramParameters(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ChargeProgramParameters() { + chargeProgram_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder.class); + } + + public static final int CHARGE_PROGRAM_FIELD_NUMBER = 1; + private int chargeProgram_ = 0; + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + @java.lang.Override public int getChargeProgramValue() { + return chargeProgram_; + } + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram getChargeProgram() { + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.forNumber(chargeProgram_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.UNRECOGNIZED : result; + } + + public static final int MAX_SOC_FIELD_NUMBER = 2; + private int maxSoc_ = 0; + /** + *
+     * Values need to be between 50 and 100 and divisible by ten
+     * Maximum value for the state of charge of the HV battery [in %].
+     * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+     * 
+ * + * int32 max_soc = 2 [json_name = "maxSoc"]; + * @return The maxSoc. + */ + @java.lang.Override + public int getMaxSoc() { + return maxSoc_; + } + + public static final int AUTO_UNLOCK_FIELD_NUMBER = 3; + private boolean autoUnlock_ = false; + /** + *
+     * unlock the plug after charging is finished
+     * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+     * true - unlock automatically, false - do not unlock automatically
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * bool auto_unlock = 3 [json_name = "autounlock"]; + * @return The autoUnlock. + */ + @java.lang.Override + public boolean getAutoUnlock() { + return autoUnlock_; + } + + public static final int LOCATION_BASED_CHARGING_FIELD_NUMBER = 4; + private boolean locationBasedCharging_ = false; + /** + *
+     * automatically switch between home and work program, based on the location of the car
+     * Denotes whether location based charging should be used.
+     * true - use location based charging, false - do not use location based charging
+     * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+     * 
+ * + * bool location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return The locationBasedCharging. + */ + @java.lang.Override + public boolean getLocationBasedCharging() { + return locationBasedCharging_; + } + + public static final int WEEKLY_PROFILE_FIELD_NUMBER = 5; + private boolean weeklyProfile_ = false; + /** + * bool weekly_profile = 5 [json_name = "weeklyprofile"]; + * @return The weeklyProfile. + */ + @java.lang.Override + public boolean getWeeklyProfile() { + return weeklyProfile_; + } + + public static final int CLOCKTIMER_FIELD_NUMBER = 6; + private boolean clockTimer_ = false; + /** + * bool clockTimer = 6 [json_name = "clockTimer"]; + * @return The clockTimer. + */ + @java.lang.Override + public boolean getClockTimer() { + return clockTimer_; + } + + public static final int MAX_CHARGING_CURRENT_FIELD_NUMBER = 7; + private int maxChargingCurrent_ = 0; + /** + * int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"]; + * @return The maxChargingCurrent. + */ + @java.lang.Override + public int getMaxChargingCurrent() { + return maxChargingCurrent_; + } + + public static final int ECO_CHARGING_FIELD_NUMBER = 8; + private boolean ecoCharging_ = false; + /** + * bool eco_charging = 8 [json_name = "EcoCharging"]; + * @return The ecoCharging. + */ + @java.lang.Override + public boolean getEcoCharging() { + return ecoCharging_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (chargeProgram_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.DEFAULT_CHARGE_PROGRAM.getNumber()) { + output.writeEnum(1, chargeProgram_); + } + if (maxSoc_ != 0) { + output.writeInt32(2, maxSoc_); + } + if (autoUnlock_ != false) { + output.writeBool(3, autoUnlock_); + } + if (locationBasedCharging_ != false) { + output.writeBool(4, locationBasedCharging_); + } + if (weeklyProfile_ != false) { + output.writeBool(5, weeklyProfile_); + } + if (clockTimer_ != false) { + output.writeBool(6, clockTimer_); + } + if (maxChargingCurrent_ != 0) { + output.writeInt32(7, maxChargingCurrent_); + } + if (ecoCharging_ != false) { + output.writeBool(8, ecoCharging_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (chargeProgram_ != com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.DEFAULT_CHARGE_PROGRAM.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, chargeProgram_); + } + if (maxSoc_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, maxSoc_); + } + if (autoUnlock_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(3, autoUnlock_); + } + if (locationBasedCharging_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(4, locationBasedCharging_); + } + if (weeklyProfile_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(5, weeklyProfile_); + } + if (clockTimer_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(6, clockTimer_); + } + if (maxChargingCurrent_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(7, maxChargingCurrent_); + } + if (ecoCharging_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(8, ecoCharging_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters other = (com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters) obj; + + if (chargeProgram_ != other.chargeProgram_) return false; + if (getMaxSoc() + != other.getMaxSoc()) return false; + if (getAutoUnlock() + != other.getAutoUnlock()) return false; + if (getLocationBasedCharging() + != other.getLocationBasedCharging()) return false; + if (getWeeklyProfile() + != other.getWeeklyProfile()) return false; + if (getClockTimer() + != other.getClockTimer()) return false; + if (getMaxChargingCurrent() + != other.getMaxChargingCurrent()) return false; + if (getEcoCharging() + != other.getEcoCharging()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CHARGE_PROGRAM_FIELD_NUMBER; + hash = (53 * hash) + chargeProgram_; + hash = (37 * hash) + MAX_SOC_FIELD_NUMBER; + hash = (53 * hash) + getMaxSoc(); + hash = (37 * hash) + AUTO_UNLOCK_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getAutoUnlock()); + hash = (37 * hash) + LOCATION_BASED_CHARGING_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getLocationBasedCharging()); + hash = (37 * hash) + WEEKLY_PROFILE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getWeeklyProfile()); + hash = (37 * hash) + CLOCKTIMER_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getClockTimer()); + hash = (37 * hash) + MAX_CHARGING_CURRENT_FIELD_NUMBER; + hash = (53 * hash) + getMaxChargingCurrent(); + hash = (37 * hash) + ECO_CHARGING_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getEcoCharging()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.ChargeProgramParameters} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ChargeProgramParameters) + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParametersOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.class, com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + chargeProgram_ = 0; + maxSoc_ = 0; + autoUnlock_ = false; + locationBasedCharging_ = false; + weeklyProfile_ = false; + clockTimer_ = false; + maxChargingCurrent_ = 0; + ecoCharging_ = false; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ChargeProgramParameters_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters build() { + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters result = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.chargeProgram_ = chargeProgram_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.maxSoc_ = maxSoc_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.autoUnlock_ = autoUnlock_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.locationBasedCharging_ = locationBasedCharging_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.weeklyProfile_ = weeklyProfile_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.clockTimer_ = clockTimer_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.maxChargingCurrent_ = maxChargingCurrent_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.ecoCharging_ = ecoCharging_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.getDefaultInstance()) return this; + if (other.chargeProgram_ != 0) { + setChargeProgramValue(other.getChargeProgramValue()); + } + if (other.getMaxSoc() != 0) { + setMaxSoc(other.getMaxSoc()); + } + if (other.getAutoUnlock() != false) { + setAutoUnlock(other.getAutoUnlock()); + } + if (other.getLocationBasedCharging() != false) { + setLocationBasedCharging(other.getLocationBasedCharging()); + } + if (other.getWeeklyProfile() != false) { + setWeeklyProfile(other.getWeeklyProfile()); + } + if (other.getClockTimer() != false) { + setClockTimer(other.getClockTimer()); + } + if (other.getMaxChargingCurrent() != 0) { + setMaxChargingCurrent(other.getMaxChargingCurrent()); + } + if (other.getEcoCharging() != false) { + setEcoCharging(other.getEcoCharging()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + chargeProgram_ = input.readEnum(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + maxSoc_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + autoUnlock_ = input.readBool(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + locationBasedCharging_ = input.readBool(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + weeklyProfile_ = input.readBool(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + clockTimer_ = input.readBool(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: { + maxChargingCurrent_ = input.readInt32(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 64: { + ecoCharging_ = input.readBool(); + bitField0_ |= 0x00000080; + break; + } // case 64 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int chargeProgram_ = 0; + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The enum numeric value on the wire for chargeProgram. + */ + @java.lang.Override public int getChargeProgramValue() { + return chargeProgram_; + } + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @param value The enum numeric value on the wire for chargeProgram to set. + * @return This builder for chaining. + */ + public Builder setChargeProgramValue(int value) { + chargeProgram_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return The chargeProgram. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram getChargeProgram() { + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram result = com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.forNumber(chargeProgram_); + return result == null ? com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram.UNRECOGNIZED : result; + } + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @param value The chargeProgram to set. + * @return This builder for chaining. + */ + public Builder setChargeProgram(com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000001; + chargeProgram_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ChargeProgram charge_program = 1 [json_name = "chargeprogram"]; + * @return This builder for chaining. + */ + public Builder clearChargeProgram() { + bitField0_ = (bitField0_ & ~0x00000001); + chargeProgram_ = 0; + onChanged(); + return this; + } + + private int maxSoc_ ; + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * int32 max_soc = 2 [json_name = "maxSoc"]; + * @return The maxSoc. + */ + @java.lang.Override + public int getMaxSoc() { + return maxSoc_; + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * int32 max_soc = 2 [json_name = "maxSoc"]; + * @param value The maxSoc to set. + * @return This builder for chaining. + */ + public Builder setMaxSoc(int value) { + + maxSoc_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Values need to be between 50 and 100 and divisible by ten
+       * Maximum value for the state of charge of the HV battery [in %].
+       * Valid value range = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
+       * 
+ * + * int32 max_soc = 2 [json_name = "maxSoc"]; + * @return This builder for chaining. + */ + public Builder clearMaxSoc() { + bitField0_ = (bitField0_ & ~0x00000002); + maxSoc_ = 0; + onChanged(); + return this; + } + + private boolean autoUnlock_ ; + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * bool auto_unlock = 3 [json_name = "autounlock"]; + * @return The autoUnlock. + */ + @java.lang.Override + public boolean getAutoUnlock() { + return autoUnlock_; + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * bool auto_unlock = 3 [json_name = "autounlock"]; + * @param value The autoUnlock to set. + * @return This builder for chaining. + */ + public Builder setAutoUnlock(boolean value) { + + autoUnlock_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * unlock the plug after charging is finished
+       * Denotes whether the charge cable should be unlocked automatically if the HV battery is fully charged resp. charged til Max. SoC value.
+       * true - unlock automatically, false - do not unlock automatically
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * bool auto_unlock = 3 [json_name = "autounlock"]; + * @return This builder for chaining. + */ + public Builder clearAutoUnlock() { + bitField0_ = (bitField0_ & ~0x00000004); + autoUnlock_ = false; + onChanged(); + return this; + } + + private boolean locationBasedCharging_ ; + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * bool location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return The locationBasedCharging. + */ + @java.lang.Override + public boolean getLocationBasedCharging() { + return locationBasedCharging_; + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * bool location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @param value The locationBasedCharging to set. + * @return This builder for chaining. + */ + public Builder setLocationBasedCharging(boolean value) { + + locationBasedCharging_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * automatically switch between home and work program, based on the location of the car
+       * Denotes whether location based charging should be used.
+       * true - use location based charging, false - do not use location based charging
+       * can only be used if chargeprogram is set to home or work. Otherwise it will be ignored.
+       * 
+ * + * bool location_based_charging = 4 [json_name = "locationbasedcharging"]; + * @return This builder for chaining. + */ + public Builder clearLocationBasedCharging() { + bitField0_ = (bitField0_ & ~0x00000008); + locationBasedCharging_ = false; + onChanged(); + return this; + } + + private boolean weeklyProfile_ ; + /** + * bool weekly_profile = 5 [json_name = "weeklyprofile"]; + * @return The weeklyProfile. + */ + @java.lang.Override + public boolean getWeeklyProfile() { + return weeklyProfile_; + } + /** + * bool weekly_profile = 5 [json_name = "weeklyprofile"]; + * @param value The weeklyProfile to set. + * @return This builder for chaining. + */ + public Builder setWeeklyProfile(boolean value) { + + weeklyProfile_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * bool weekly_profile = 5 [json_name = "weeklyprofile"]; + * @return This builder for chaining. + */ + public Builder clearWeeklyProfile() { + bitField0_ = (bitField0_ & ~0x00000010); + weeklyProfile_ = false; + onChanged(); + return this; + } + + private boolean clockTimer_ ; + /** + * bool clockTimer = 6 [json_name = "clockTimer"]; + * @return The clockTimer. + */ + @java.lang.Override + public boolean getClockTimer() { + return clockTimer_; + } + /** + * bool clockTimer = 6 [json_name = "clockTimer"]; + * @param value The clockTimer to set. + * @return This builder for chaining. + */ + public Builder setClockTimer(boolean value) { + + clockTimer_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * bool clockTimer = 6 [json_name = "clockTimer"]; + * @return This builder for chaining. + */ + public Builder clearClockTimer() { + bitField0_ = (bitField0_ & ~0x00000020); + clockTimer_ = false; + onChanged(); + return this; + } + + private int maxChargingCurrent_ ; + /** + * int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"]; + * @return The maxChargingCurrent. + */ + @java.lang.Override + public int getMaxChargingCurrent() { + return maxChargingCurrent_; + } + /** + * int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"]; + * @param value The maxChargingCurrent to set. + * @return This builder for chaining. + */ + public Builder setMaxChargingCurrent(int value) { + + maxChargingCurrent_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * int32 max_charging_current = 7 [json_name = "MaxChargingCurrent"]; + * @return This builder for chaining. + */ + public Builder clearMaxChargingCurrent() { + bitField0_ = (bitField0_ & ~0x00000040); + maxChargingCurrent_ = 0; + onChanged(); + return this; + } + + private boolean ecoCharging_ ; + /** + * bool eco_charging = 8 [json_name = "EcoCharging"]; + * @return The ecoCharging. + */ + @java.lang.Override + public boolean getEcoCharging() { + return ecoCharging_; + } + /** + * bool eco_charging = 8 [json_name = "EcoCharging"]; + * @param value The ecoCharging to set. + * @return This builder for chaining. + */ + public Builder setEcoCharging(boolean value) { + + ecoCharging_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * bool eco_charging = 8 [json_name = "EcoCharging"]; + * @return This builder for chaining. + */ + public Builder clearEcoCharging() { + bitField0_ = (bitField0_ & ~0x00000080); + ecoCharging_ = false; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ChargeProgramParameters) + } + + // @@protoc_insertion_point(class_scope:proto.ChargeProgramParameters) + private static final com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ChargeProgramParameters parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WeeklyProfileValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WeeklyProfileValue) + com.google.protobuf.MessageOrBuilder { + + /** + * bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"]; + * @return The singleTimeProfileEntriesActivatable. + */ + boolean getSingleTimeProfileEntriesActivatable(); + + /** + * int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"]; + * @return The maxNumberOfWeeklyTimeProfileSlots. + */ + int getMaxNumberOfWeeklyTimeProfileSlots(); + + /** + * int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"]; + * @return The maxNumberOfTimeProfiles. + */ + int getMaxNumberOfTimeProfiles(); + + /** + * int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"]; + * @return The currentNumberOfTimeProfileSlots. + */ + int getCurrentNumberOfTimeProfileSlots(); + + /** + * int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"]; + * @return The currentNumberOfTimeProfiles. + */ + int getCurrentNumberOfTimeProfiles(); + + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + java.util.List + getTimeProfilesList(); + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getTimeProfiles(int index); + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + int getTimeProfilesCount(); + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + java.util.List + getTimeProfilesOrBuilderList(); + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder getTimeProfilesOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.WeeklyProfileValue} + */ + public static final class WeeklyProfileValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WeeklyProfileValue) + WeeklyProfileValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WeeklyProfileValue.class.getName()); + } + // Use WeeklyProfileValue.newBuilder() to construct. + private WeeklyProfileValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WeeklyProfileValue() { + timeProfiles_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder.class); + } + + public static final int SINGLE_TIME_PROFILE_ENTRIES_ACTIVATABLE_FIELD_NUMBER = 1; + private boolean singleTimeProfileEntriesActivatable_ = false; + /** + * bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"]; + * @return The singleTimeProfileEntriesActivatable. + */ + @java.lang.Override + public boolean getSingleTimeProfileEntriesActivatable() { + return singleTimeProfileEntriesActivatable_; + } + + public static final int MAX_NUMBER_OF_WEEKLY_TIME_PROFILE_SLOTS_FIELD_NUMBER = 2; + private int maxNumberOfWeeklyTimeProfileSlots_ = 0; + /** + * int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"]; + * @return The maxNumberOfWeeklyTimeProfileSlots. + */ + @java.lang.Override + public int getMaxNumberOfWeeklyTimeProfileSlots() { + return maxNumberOfWeeklyTimeProfileSlots_; + } + + public static final int MAX_NUMBER_OF_TIME_PROFILES_FIELD_NUMBER = 3; + private int maxNumberOfTimeProfiles_ = 0; + /** + * int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"]; + * @return The maxNumberOfTimeProfiles. + */ + @java.lang.Override + public int getMaxNumberOfTimeProfiles() { + return maxNumberOfTimeProfiles_; + } + + public static final int CURRENT_NUMBER_OF_TIME_PROFILE_SLOTS_FIELD_NUMBER = 4; + private int currentNumberOfTimeProfileSlots_ = 0; + /** + * int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"]; + * @return The currentNumberOfTimeProfileSlots. + */ + @java.lang.Override + public int getCurrentNumberOfTimeProfileSlots() { + return currentNumberOfTimeProfileSlots_; + } + + public static final int CURRENT_NUMBER_OF_TIME_PROFILES_FIELD_NUMBER = 5; + private int currentNumberOfTimeProfiles_ = 0; + /** + * int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"]; + * @return The currentNumberOfTimeProfiles. + */ + @java.lang.Override + public int getCurrentNumberOfTimeProfiles() { + return currentNumberOfTimeProfiles_; + } + + public static final int TIME_PROFILES_FIELD_NUMBER = 6; + @SuppressWarnings("serial") + private java.util.List timeProfiles_; + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + @java.lang.Override + public java.util.List getTimeProfilesList() { + return timeProfiles_; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + @java.lang.Override + public java.util.List + getTimeProfilesOrBuilderList() { + return timeProfiles_; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + @java.lang.Override + public int getTimeProfilesCount() { + return timeProfiles_.size(); + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getTimeProfiles(int index) { + return timeProfiles_.get(index); + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder getTimeProfilesOrBuilder( + int index) { + return timeProfiles_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (singleTimeProfileEntriesActivatable_ != false) { + output.writeBool(1, singleTimeProfileEntriesActivatable_); + } + if (maxNumberOfWeeklyTimeProfileSlots_ != 0) { + output.writeInt32(2, maxNumberOfWeeklyTimeProfileSlots_); + } + if (maxNumberOfTimeProfiles_ != 0) { + output.writeInt32(3, maxNumberOfTimeProfiles_); + } + if (currentNumberOfTimeProfileSlots_ != 0) { + output.writeInt32(4, currentNumberOfTimeProfileSlots_); + } + if (currentNumberOfTimeProfiles_ != 0) { + output.writeInt32(5, currentNumberOfTimeProfiles_); + } + for (int i = 0; i < timeProfiles_.size(); i++) { + output.writeMessage(6, timeProfiles_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (singleTimeProfileEntriesActivatable_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(1, singleTimeProfileEntriesActivatable_); + } + if (maxNumberOfWeeklyTimeProfileSlots_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, maxNumberOfWeeklyTimeProfileSlots_); + } + if (maxNumberOfTimeProfiles_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, maxNumberOfTimeProfiles_); + } + if (currentNumberOfTimeProfileSlots_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(4, currentNumberOfTimeProfileSlots_); + } + if (currentNumberOfTimeProfiles_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(5, currentNumberOfTimeProfiles_); + } + for (int i = 0; i < timeProfiles_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, timeProfiles_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue other = (com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) obj; + + if (getSingleTimeProfileEntriesActivatable() + != other.getSingleTimeProfileEntriesActivatable()) return false; + if (getMaxNumberOfWeeklyTimeProfileSlots() + != other.getMaxNumberOfWeeklyTimeProfileSlots()) return false; + if (getMaxNumberOfTimeProfiles() + != other.getMaxNumberOfTimeProfiles()) return false; + if (getCurrentNumberOfTimeProfileSlots() + != other.getCurrentNumberOfTimeProfileSlots()) return false; + if (getCurrentNumberOfTimeProfiles() + != other.getCurrentNumberOfTimeProfiles()) return false; + if (!getTimeProfilesList() + .equals(other.getTimeProfilesList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SINGLE_TIME_PROFILE_ENTRIES_ACTIVATABLE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getSingleTimeProfileEntriesActivatable()); + hash = (37 * hash) + MAX_NUMBER_OF_WEEKLY_TIME_PROFILE_SLOTS_FIELD_NUMBER; + hash = (53 * hash) + getMaxNumberOfWeeklyTimeProfileSlots(); + hash = (37 * hash) + MAX_NUMBER_OF_TIME_PROFILES_FIELD_NUMBER; + hash = (53 * hash) + getMaxNumberOfTimeProfiles(); + hash = (37 * hash) + CURRENT_NUMBER_OF_TIME_PROFILE_SLOTS_FIELD_NUMBER; + hash = (53 * hash) + getCurrentNumberOfTimeProfileSlots(); + hash = (37 * hash) + CURRENT_NUMBER_OF_TIME_PROFILES_FIELD_NUMBER; + hash = (53 * hash) + getCurrentNumberOfTimeProfiles(); + if (getTimeProfilesCount() > 0) { + hash = (37 * hash) + TIME_PROFILES_FIELD_NUMBER; + hash = (53 * hash) + getTimeProfilesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WeeklyProfileValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WeeklyProfileValue) + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + singleTimeProfileEntriesActivatable_ = false; + maxNumberOfWeeklyTimeProfileSlots_ = 0; + maxNumberOfTimeProfiles_ = 0; + currentNumberOfTimeProfileSlots_ = 0; + currentNumberOfTimeProfiles_ = 0; + if (timeProfilesBuilder_ == null) { + timeProfiles_ = java.util.Collections.emptyList(); + } else { + timeProfiles_ = null; + timeProfilesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000020); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklyProfileValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue result = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue result) { + if (timeProfilesBuilder_ == null) { + if (((bitField0_ & 0x00000020) != 0)) { + timeProfiles_ = java.util.Collections.unmodifiableList(timeProfiles_); + bitField0_ = (bitField0_ & ~0x00000020); + } + result.timeProfiles_ = timeProfiles_; + } else { + result.timeProfiles_ = timeProfilesBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.singleTimeProfileEntriesActivatable_ = singleTimeProfileEntriesActivatable_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.maxNumberOfWeeklyTimeProfileSlots_ = maxNumberOfWeeklyTimeProfileSlots_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.maxNumberOfTimeProfiles_ = maxNumberOfTimeProfiles_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.currentNumberOfTimeProfileSlots_ = currentNumberOfTimeProfileSlots_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.currentNumberOfTimeProfiles_ = currentNumberOfTimeProfiles_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue.getDefaultInstance()) return this; + if (other.getSingleTimeProfileEntriesActivatable() != false) { + setSingleTimeProfileEntriesActivatable(other.getSingleTimeProfileEntriesActivatable()); + } + if (other.getMaxNumberOfWeeklyTimeProfileSlots() != 0) { + setMaxNumberOfWeeklyTimeProfileSlots(other.getMaxNumberOfWeeklyTimeProfileSlots()); + } + if (other.getMaxNumberOfTimeProfiles() != 0) { + setMaxNumberOfTimeProfiles(other.getMaxNumberOfTimeProfiles()); + } + if (other.getCurrentNumberOfTimeProfileSlots() != 0) { + setCurrentNumberOfTimeProfileSlots(other.getCurrentNumberOfTimeProfileSlots()); + } + if (other.getCurrentNumberOfTimeProfiles() != 0) { + setCurrentNumberOfTimeProfiles(other.getCurrentNumberOfTimeProfiles()); + } + if (timeProfilesBuilder_ == null) { + if (!other.timeProfiles_.isEmpty()) { + if (timeProfiles_.isEmpty()) { + timeProfiles_ = other.timeProfiles_; + bitField0_ = (bitField0_ & ~0x00000020); + } else { + ensureTimeProfilesIsMutable(); + timeProfiles_.addAll(other.timeProfiles_); + } + onChanged(); + } + } else { + if (!other.timeProfiles_.isEmpty()) { + if (timeProfilesBuilder_.isEmpty()) { + timeProfilesBuilder_.dispose(); + timeProfilesBuilder_ = null; + timeProfiles_ = other.timeProfiles_; + bitField0_ = (bitField0_ & ~0x00000020); + timeProfilesBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getTimeProfilesFieldBuilder() : null; + } else { + timeProfilesBuilder_.addAllMessages(other.timeProfiles_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + singleTimeProfileEntriesActivatable_ = input.readBool(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + maxNumberOfWeeklyTimeProfileSlots_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + maxNumberOfTimeProfiles_ = input.readInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + currentNumberOfTimeProfileSlots_ = input.readInt32(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 40: { + currentNumberOfTimeProfiles_ = input.readInt32(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 50: { + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.parser(), + extensionRegistry); + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.add(m); + } else { + timeProfilesBuilder_.addMessage(m); + } + break; + } // case 50 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private boolean singleTimeProfileEntriesActivatable_ ; + /** + * bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"]; + * @return The singleTimeProfileEntriesActivatable. + */ + @java.lang.Override + public boolean getSingleTimeProfileEntriesActivatable() { + return singleTimeProfileEntriesActivatable_; + } + /** + * bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"]; + * @param value The singleTimeProfileEntriesActivatable to set. + * @return This builder for chaining. + */ + public Builder setSingleTimeProfileEntriesActivatable(boolean value) { + + singleTimeProfileEntriesActivatable_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bool single_time_profile_entries_activatable = 1 [json_name = "singleTimeProfileEntriesActivatable"]; + * @return This builder for chaining. + */ + public Builder clearSingleTimeProfileEntriesActivatable() { + bitField0_ = (bitField0_ & ~0x00000001); + singleTimeProfileEntriesActivatable_ = false; + onChanged(); + return this; + } + + private int maxNumberOfWeeklyTimeProfileSlots_ ; + /** + * int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"]; + * @return The maxNumberOfWeeklyTimeProfileSlots. + */ + @java.lang.Override + public int getMaxNumberOfWeeklyTimeProfileSlots() { + return maxNumberOfWeeklyTimeProfileSlots_; + } + /** + * int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"]; + * @param value The maxNumberOfWeeklyTimeProfileSlots to set. + * @return This builder for chaining. + */ + public Builder setMaxNumberOfWeeklyTimeProfileSlots(int value) { + + maxNumberOfWeeklyTimeProfileSlots_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int32 max_number_of_weekly_time_profile_slots = 2 [json_name = "maxNumberOfWeeklyTimeProfileSlots"]; + * @return This builder for chaining. + */ + public Builder clearMaxNumberOfWeeklyTimeProfileSlots() { + bitField0_ = (bitField0_ & ~0x00000002); + maxNumberOfWeeklyTimeProfileSlots_ = 0; + onChanged(); + return this; + } + + private int maxNumberOfTimeProfiles_ ; + /** + * int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"]; + * @return The maxNumberOfTimeProfiles. + */ + @java.lang.Override + public int getMaxNumberOfTimeProfiles() { + return maxNumberOfTimeProfiles_; + } + /** + * int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"]; + * @param value The maxNumberOfTimeProfiles to set. + * @return This builder for chaining. + */ + public Builder setMaxNumberOfTimeProfiles(int value) { + + maxNumberOfTimeProfiles_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * int32 max_number_of_time_profiles = 3 [json_name = "maxNumberOfTimeProfiles"]; + * @return This builder for chaining. + */ + public Builder clearMaxNumberOfTimeProfiles() { + bitField0_ = (bitField0_ & ~0x00000004); + maxNumberOfTimeProfiles_ = 0; + onChanged(); + return this; + } + + private int currentNumberOfTimeProfileSlots_ ; + /** + * int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"]; + * @return The currentNumberOfTimeProfileSlots. + */ + @java.lang.Override + public int getCurrentNumberOfTimeProfileSlots() { + return currentNumberOfTimeProfileSlots_; + } + /** + * int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"]; + * @param value The currentNumberOfTimeProfileSlots to set. + * @return This builder for chaining. + */ + public Builder setCurrentNumberOfTimeProfileSlots(int value) { + + currentNumberOfTimeProfileSlots_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * int32 current_number_of_time_profile_slots = 4 [json_name = "currentNumberOfTimeProfileSlots"]; + * @return This builder for chaining. + */ + public Builder clearCurrentNumberOfTimeProfileSlots() { + bitField0_ = (bitField0_ & ~0x00000008); + currentNumberOfTimeProfileSlots_ = 0; + onChanged(); + return this; + } + + private int currentNumberOfTimeProfiles_ ; + /** + * int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"]; + * @return The currentNumberOfTimeProfiles. + */ + @java.lang.Override + public int getCurrentNumberOfTimeProfiles() { + return currentNumberOfTimeProfiles_; + } + /** + * int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"]; + * @param value The currentNumberOfTimeProfiles to set. + * @return This builder for chaining. + */ + public Builder setCurrentNumberOfTimeProfiles(int value) { + + currentNumberOfTimeProfiles_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + * int32 current_number_of_time_profiles = 5 [json_name = "currentNumberOfTimeProfiles"]; + * @return This builder for chaining. + */ + public Builder clearCurrentNumberOfTimeProfiles() { + bitField0_ = (bitField0_ & ~0x00000010); + currentNumberOfTimeProfiles_ = 0; + onChanged(); + return this; + } + + private java.util.List timeProfiles_ = + java.util.Collections.emptyList(); + private void ensureTimeProfilesIsMutable() { + if (!((bitField0_ & 0x00000020) != 0)) { + timeProfiles_ = new java.util.ArrayList(timeProfiles_); + bitField0_ |= 0x00000020; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder> timeProfilesBuilder_; + + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public java.util.List getTimeProfilesList() { + if (timeProfilesBuilder_ == null) { + return java.util.Collections.unmodifiableList(timeProfiles_); + } else { + return timeProfilesBuilder_.getMessageList(); + } + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public int getTimeProfilesCount() { + if (timeProfilesBuilder_ == null) { + return timeProfiles_.size(); + } else { + return timeProfilesBuilder_.getCount(); + } + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getTimeProfiles(int index) { + if (timeProfilesBuilder_ == null) { + return timeProfiles_.get(index); + } else { + return timeProfilesBuilder_.getMessage(index); + } + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder setTimeProfiles( + int index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile value) { + if (timeProfilesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTimeProfilesIsMutable(); + timeProfiles_.set(index, value); + onChanged(); + } else { + timeProfilesBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder setTimeProfiles( + int index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder builderForValue) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.set(index, builderForValue.build()); + onChanged(); + } else { + timeProfilesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder addTimeProfiles(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile value) { + if (timeProfilesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTimeProfilesIsMutable(); + timeProfiles_.add(value); + onChanged(); + } else { + timeProfilesBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder addTimeProfiles( + int index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile value) { + if (timeProfilesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTimeProfilesIsMutable(); + timeProfiles_.add(index, value); + onChanged(); + } else { + timeProfilesBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder addTimeProfiles( + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder builderForValue) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.add(builderForValue.build()); + onChanged(); + } else { + timeProfilesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder addTimeProfiles( + int index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder builderForValue) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.add(index, builderForValue.build()); + onChanged(); + } else { + timeProfilesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder addAllTimeProfiles( + java.lang.Iterable values) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, timeProfiles_); + onChanged(); + } else { + timeProfilesBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder clearTimeProfiles() { + if (timeProfilesBuilder_ == null) { + timeProfiles_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000020); + onChanged(); + } else { + timeProfilesBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public Builder removeTimeProfiles(int index) { + if (timeProfilesBuilder_ == null) { + ensureTimeProfilesIsMutable(); + timeProfiles_.remove(index); + onChanged(); + } else { + timeProfilesBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder getTimeProfilesBuilder( + int index) { + return getTimeProfilesFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder getTimeProfilesOrBuilder( + int index) { + if (timeProfilesBuilder_ == null) { + return timeProfiles_.get(index); } else { + return timeProfilesBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public java.util.List + getTimeProfilesOrBuilderList() { + if (timeProfilesBuilder_ != null) { + return timeProfilesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(timeProfiles_); + } + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder addTimeProfilesBuilder() { + return getTimeProfilesFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.getDefaultInstance()); + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder addTimeProfilesBuilder( + int index) { + return getTimeProfilesFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.getDefaultInstance()); + } + /** + * repeated .proto.VVRTimeProfile time_profiles = 6 [json_name = "timeProfiles"]; + */ + public java.util.List + getTimeProfilesBuilderList() { + return getTimeProfilesFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder> + getTimeProfilesFieldBuilder() { + if (timeProfilesBuilder_ == null) { + timeProfilesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder>( + timeProfiles_, + ((bitField0_ & 0x00000020) != 0), + getParentForChildren(), + isClean()); + timeProfiles_ = null; + } + return timeProfilesBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.WeeklyProfileValue) + } + + // @@protoc_insertion_point(class_scope:proto.WeeklyProfileValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WeeklyProfileValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VVRTimeProfileOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VVRTimeProfile) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * unique id of this time profile entry
+     * 
+ * + * int32 identifier = 1 [json_name = "id"]; + * @return The identifier. + */ + int getIdentifier(); + + /** + *
+     * Hour after midnight range [0, 23]
+     * 
+ * + * int32 hour = 2 [json_name = "hour"]; + * @return The hour. + */ + int getHour(); + + /** + *
+     * Minute after full hour range [0, 59]
+     * 
+ * + * int32 minute = 3 [json_name = "min"]; + * @return The minute. + */ + int getMinute(); + + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the days. + */ + java.util.List getDaysList(); + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return The count of days. + */ + int getDaysCount(); + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the element to return. + * @return The days at the given index. + */ + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index); + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the enum numeric values on the wire for days. + */ + java.util.List + getDaysValueList(); + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of days at the given index. + */ + int getDaysValue(int index); + + /** + *
+     * Whether this profile entry is active or not
+     * 
+ * + * bool active = 5 [json_name = "active"]; + * @return The active. + */ + boolean getActive(); + + /** + *
+     * If a timeProfile is changed or added the respective applicationId must be provided by SDK
+     * 11 = Internal Apps
+     * 12 = External Apps
+     * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @return The applicationIdentifier. + */ + int getApplicationIdentifier(); + } + /** + *
+   * VVRTimeProfile is almost identical to the "TimeProfile" message with the exception that the identifier is not optional.
+   * 
+ * + * Protobuf type {@code proto.VVRTimeProfile} + */ + public static final class VVRTimeProfile extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VVRTimeProfile) + VVRTimeProfileOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VVRTimeProfile.class.getName()); + } + // Use VVRTimeProfile.newBuilder() to construct. + private VVRTimeProfile(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VVRTimeProfile() { + days_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.class, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder.class); + } + + public static final int IDENTIFIER_FIELD_NUMBER = 1; + private int identifier_ = 0; + /** + *
+     * unique id of this time profile entry
+     * 
+ * + * int32 identifier = 1 [json_name = "id"]; + * @return The identifier. + */ + @java.lang.Override + public int getIdentifier() { + return identifier_; + } + + public static final int HOUR_FIELD_NUMBER = 2; + private int hour_ = 0; + /** + *
+     * Hour after midnight range [0, 23]
+     * 
+ * + * int32 hour = 2 [json_name = "hour"]; + * @return The hour. + */ + @java.lang.Override + public int getHour() { + return hour_; + } + + public static final int MINUTE_FIELD_NUMBER = 3; + private int minute_ = 0; + /** + *
+     * Minute after full hour range [0, 59]
+     * 
+ * + * int32 minute = 3 [json_name = "min"]; + * @return The minute. + */ + @java.lang.Override + public int getMinute() { + return minute_; + } + + public static final int DAYS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private java.util.List days_; + private static final com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay> days_converter_ = + new com.google.protobuf.Internal.ListAdapter.Converter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>() { + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay convert(java.lang.Integer from) { + com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay result = com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay.forNumber(from); + return result == null ? com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay.UNRECOGNIZED : result; + } + }; + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the days. + */ + @java.lang.Override + public java.util.List getDaysList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>(days_, days_converter_); + } + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return The count of days. + */ + @java.lang.Override + public int getDaysCount() { + return days_.size(); + } + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the element to return. + * @return The days at the given index. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index) { + return days_converter_.convert(days_.get(index)); + } + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the enum numeric values on the wire for days. + */ + @java.lang.Override + public java.util.List + getDaysValueList() { + return days_; + } + /** + *
+     * Days for which the above time should be applied
+     * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of days at the given index. + */ + @java.lang.Override + public int getDaysValue(int index) { + return days_.get(index); + } + private int daysMemoizedSerializedSize; + + public static final int ACTIVE_FIELD_NUMBER = 5; + private boolean active_ = false; + /** + *
+     * Whether this profile entry is active or not
+     * 
+ * + * bool active = 5 [json_name = "active"]; + * @return The active. + */ + @java.lang.Override + public boolean getActive() { + return active_; + } + + public static final int APPLICATION_IDENTIFIER_FIELD_NUMBER = 6; + private int applicationIdentifier_ = 0; + /** + *
+     * If a timeProfile is changed or added the respective applicationId must be provided by SDK
+     * 11 = Internal Apps
+     * 12 = External Apps
+     * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @return The applicationIdentifier. + */ + @java.lang.Override + public int getApplicationIdentifier() { + return applicationIdentifier_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getSerializedSize(); + if (identifier_ != 0) { + output.writeInt32(1, identifier_); + } + if (hour_ != 0) { + output.writeInt32(2, hour_); + } + if (minute_ != 0) { + output.writeInt32(3, minute_); + } + if (getDaysList().size() > 0) { + output.writeUInt32NoTag(34); + output.writeUInt32NoTag(daysMemoizedSerializedSize); + } + for (int i = 0; i < days_.size(); i++) { + output.writeEnumNoTag(days_.get(i)); + } + if (active_ != false) { + output.writeBool(5, active_); + } + if (applicationIdentifier_ != 0) { + output.writeInt32(6, applicationIdentifier_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (identifier_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, identifier_); + } + if (hour_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, hour_); + } + if (minute_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(3, minute_); + } + { + int dataSize = 0; + for (int i = 0; i < days_.size(); i++) { + dataSize += com.google.protobuf.CodedOutputStream + .computeEnumSizeNoTag(days_.get(i)); + } + size += dataSize; + if (!getDaysList().isEmpty()) { size += 1; + size += com.google.protobuf.CodedOutputStream + .computeUInt32SizeNoTag(dataSize); + }daysMemoizedSerializedSize = dataSize; + } + if (active_ != false) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize(5, active_); + } + if (applicationIdentifier_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(6, applicationIdentifier_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile other = (com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile) obj; + + if (getIdentifier() + != other.getIdentifier()) return false; + if (getHour() + != other.getHour()) return false; + if (getMinute() + != other.getMinute()) return false; + if (!days_.equals(other.days_)) return false; + if (getActive() + != other.getActive()) return false; + if (getApplicationIdentifier() + != other.getApplicationIdentifier()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + IDENTIFIER_FIELD_NUMBER; + hash = (53 * hash) + getIdentifier(); + hash = (37 * hash) + HOUR_FIELD_NUMBER; + hash = (53 * hash) + getHour(); + hash = (37 * hash) + MINUTE_FIELD_NUMBER; + hash = (53 * hash) + getMinute(); + if (getDaysCount() > 0) { + hash = (37 * hash) + DAYS_FIELD_NUMBER; + hash = (53 * hash) + days_.hashCode(); + } + hash = (37 * hash) + ACTIVE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getActive()); + hash = (37 * hash) + APPLICATION_IDENTIFIER_FIELD_NUMBER; + hash = (53 * hash) + getApplicationIdentifier(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * VVRTimeProfile is almost identical to the "TimeProfile" message with the exception that the identifier is not optional.
+     * 
+ * + * Protobuf type {@code proto.VVRTimeProfile} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VVRTimeProfile) + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfileOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.class, com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + identifier_ = 0; + hour_ = 0; + minute_ = 0; + days_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + active_ = false; + applicationIdentifier_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VVRTimeProfile_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile build() { + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile result = new com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile result) { + if (((bitField0_ & 0x00000008) != 0)) { + days_ = java.util.Collections.unmodifiableList(days_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.days_ = days_; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.identifier_ = identifier_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.hour_ = hour_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.minute_ = minute_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.active_ = active_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.applicationIdentifier_ = applicationIdentifier_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile.getDefaultInstance()) return this; + if (other.getIdentifier() != 0) { + setIdentifier(other.getIdentifier()); + } + if (other.getHour() != 0) { + setHour(other.getHour()); + } + if (other.getMinute() != 0) { + setMinute(other.getMinute()); + } + if (!other.days_.isEmpty()) { + if (days_.isEmpty()) { + days_ = other.days_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureDaysIsMutable(); + days_.addAll(other.days_); + } + onChanged(); + } + if (other.getActive() != false) { + setActive(other.getActive()); + } + if (other.getApplicationIdentifier() != 0) { + setApplicationIdentifier(other.getApplicationIdentifier()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + identifier_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + hour_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + minute_ = input.readInt32(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 32: { + int tmpRaw = input.readEnum(); + ensureDaysIsMutable(); + days_.add(tmpRaw); + break; + } // case 32 + case 34: { + int length = input.readRawVarint32(); + int oldLimit = input.pushLimit(length); + while(input.getBytesUntilLimit() > 0) { + int tmpRaw = input.readEnum(); + ensureDaysIsMutable(); + days_.add(tmpRaw); + } + input.popLimit(oldLimit); + break; + } // case 34 + case 40: { + active_ = input.readBool(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + applicationIdentifier_ = input.readInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int identifier_ ; + /** + *
+       * unique id of this time profile entry
+       * 
+ * + * int32 identifier = 1 [json_name = "id"]; + * @return The identifier. + */ + @java.lang.Override + public int getIdentifier() { + return identifier_; + } + /** + *
+       * unique id of this time profile entry
+       * 
+ * + * int32 identifier = 1 [json_name = "id"]; + * @param value The identifier to set. + * @return This builder for chaining. + */ + public Builder setIdentifier(int value) { + + identifier_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * unique id of this time profile entry
+       * 
+ * + * int32 identifier = 1 [json_name = "id"]; + * @return This builder for chaining. + */ + public Builder clearIdentifier() { + bitField0_ = (bitField0_ & ~0x00000001); + identifier_ = 0; + onChanged(); + return this; + } + + private int hour_ ; + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * int32 hour = 2 [json_name = "hour"]; + * @return The hour. + */ + @java.lang.Override + public int getHour() { + return hour_; + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * int32 hour = 2 [json_name = "hour"]; + * @param value The hour to set. + * @return This builder for chaining. + */ + public Builder setHour(int value) { + + hour_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Hour after midnight range [0, 23]
+       * 
+ * + * int32 hour = 2 [json_name = "hour"]; + * @return This builder for chaining. + */ + public Builder clearHour() { + bitField0_ = (bitField0_ & ~0x00000002); + hour_ = 0; + onChanged(); + return this; + } + + private int minute_ ; + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * int32 minute = 3 [json_name = "min"]; + * @return The minute. + */ + @java.lang.Override + public int getMinute() { + return minute_; + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * int32 minute = 3 [json_name = "min"]; + * @param value The minute to set. + * @return This builder for chaining. + */ + public Builder setMinute(int value) { + + minute_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Minute after full hour range [0, 59]
+       * 
+ * + * int32 minute = 3 [json_name = "min"]; + * @return This builder for chaining. + */ + public Builder clearMinute() { + bitField0_ = (bitField0_ & ~0x00000004); + minute_ = 0; + onChanged(); + return this; + } + + private java.util.List days_ = + java.util.Collections.emptyList(); + private void ensureDaysIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + days_ = new java.util.ArrayList(days_); + bitField0_ |= 0x00000008; + } + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the days. + */ + public java.util.List getDaysList() { + return new com.google.protobuf.Internal.ListAdapter< + java.lang.Integer, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay>(days_, days_converter_); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return The count of days. + */ + public int getDaysCount() { + return days_.size(); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the element to return. + * @return The days at the given index. + */ + public com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay getDays(int index) { + return days_converter_.convert(days_.get(index)); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index to set the value at. + * @param value The days to set. + * @return This builder for chaining. + */ + public Builder setDays( + int index, com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDaysIsMutable(); + days_.set(index, value.getNumber()); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param value The days to add. + * @return This builder for chaining. + */ + public Builder addDays(com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value) { + if (value == null) { + throw new NullPointerException(); + } + ensureDaysIsMutable(); + days_.add(value.getNumber()); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param values The days to add. + * @return This builder for chaining. + */ + public Builder addAllDays( + java.lang.Iterable values) { + ensureDaysIsMutable(); + for (com.daimler.mbcarkit.proto.VehicleCommands.TimeProfileDay value : values) { + days_.add(value.getNumber()); + } + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return This builder for chaining. + */ + public Builder clearDays() { + days_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @return A list containing the enum numeric values on the wire for days. + */ + public java.util.List + getDaysValueList() { + return java.util.Collections.unmodifiableList(days_); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index of the value to return. + * @return The enum numeric value on the wire of days at the given index. + */ + public int getDaysValue(int index) { + return days_.get(index); + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param index The index to set the value at. + * @param value The enum numeric value on the wire for days to set. + * @return This builder for chaining. + */ + public Builder setDaysValue( + int index, int value) { + ensureDaysIsMutable(); + days_.set(index, value); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param value The enum numeric value on the wire for days to add. + * @return This builder for chaining. + */ + public Builder addDaysValue(int value) { + ensureDaysIsMutable(); + days_.add(value); + onChanged(); + return this; + } + /** + *
+       * Days for which the above time should be applied
+       * 
+ * + * repeated .proto.TimeProfileDay days = 4 [json_name = "day"]; + * @param values The enum numeric values on the wire for days to add. + * @return This builder for chaining. + */ + public Builder addAllDaysValue( + java.lang.Iterable values) { + ensureDaysIsMutable(); + for (int value : values) { + days_.add(value); + } + onChanged(); + return this; + } + + private boolean active_ ; + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * bool active = 5 [json_name = "active"]; + * @return The active. + */ + @java.lang.Override + public boolean getActive() { + return active_; + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * bool active = 5 [json_name = "active"]; + * @param value The active to set. + * @return This builder for chaining. + */ + public Builder setActive(boolean value) { + + active_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * Whether this profile entry is active or not
+       * 
+ * + * bool active = 5 [json_name = "active"]; + * @return This builder for chaining. + */ + public Builder clearActive() { + bitField0_ = (bitField0_ & ~0x00000010); + active_ = false; + onChanged(); + return this; + } + + private int applicationIdentifier_ ; + /** + *
+       * If a timeProfile is changed or added the respective applicationId must be provided by SDK
+       * 11 = Internal Apps
+       * 12 = External Apps
+       * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @return The applicationIdentifier. + */ + @java.lang.Override + public int getApplicationIdentifier() { + return applicationIdentifier_; + } + /** + *
+       * If a timeProfile is changed or added the respective applicationId must be provided by SDK
+       * 11 = Internal Apps
+       * 12 = External Apps
+       * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @param value The applicationIdentifier to set. + * @return This builder for chaining. + */ + public Builder setApplicationIdentifier(int value) { + + applicationIdentifier_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * If a timeProfile is changed or added the respective applicationId must be provided by SDK
+       * 11 = Internal Apps
+       * 12 = External Apps
+       * 
+ * + * int32 application_identifier = 6 [json_name = "applicationId"]; + * @return This builder for chaining. + */ + public Builder clearApplicationIdentifier() { + bitField0_ = (bitField0_ & ~0x00000020); + applicationIdentifier_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VVRTimeProfile) + } + + // @@protoc_insertion_point(class_scope:proto.VVRTimeProfile) + private static final com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VVRTimeProfile parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface EcoHistogramValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.EcoHistogramValue) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + java.util.List + getEcoHistogramBinsList(); + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getEcoHistogramBins(int index); + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + int getEcoHistogramBinsCount(); + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + java.util.List + getEcoHistogramBinsOrBuilderList(); + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder getEcoHistogramBinsOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.EcoHistogramValue} + */ + public static final class EcoHistogramValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.EcoHistogramValue) + EcoHistogramValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + EcoHistogramValue.class.getName()); + } + // Use EcoHistogramValue.newBuilder() to construct. + private EcoHistogramValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private EcoHistogramValue() { + ecoHistogramBins_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.class, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder.class); + } + + public static final int ECO_HISTOGRAM_BINS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List ecoHistogramBins_; + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + @java.lang.Override + public java.util.List getEcoHistogramBinsList() { + return ecoHistogramBins_; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + @java.lang.Override + public java.util.List + getEcoHistogramBinsOrBuilderList() { + return ecoHistogramBins_; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + @java.lang.Override + public int getEcoHistogramBinsCount() { + return ecoHistogramBins_.size(); + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getEcoHistogramBins(int index) { + return ecoHistogramBins_.get(index); + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder getEcoHistogramBinsOrBuilder( + int index) { + return ecoHistogramBins_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < ecoHistogramBins_.size(); i++) { + output.writeMessage(1, ecoHistogramBins_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < ecoHistogramBins_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, ecoHistogramBins_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue other = (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) obj; + + if (!getEcoHistogramBinsList() + .equals(other.getEcoHistogramBinsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getEcoHistogramBinsCount() > 0) { + hash = (37 * hash) + ECO_HISTOGRAM_BINS_FIELD_NUMBER; + hash = (53 * hash) + getEcoHistogramBinsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.EcoHistogramValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.EcoHistogramValue) + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.class, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (ecoHistogramBinsBuilder_ == null) { + ecoHistogramBins_ = java.util.Collections.emptyList(); + } else { + ecoHistogramBins_ = null; + ecoHistogramBinsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue result = new com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue result) { + if (ecoHistogramBinsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + ecoHistogramBins_ = java.util.Collections.unmodifiableList(ecoHistogramBins_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.ecoHistogramBins_ = ecoHistogramBins_; + } else { + result.ecoHistogramBins_ = ecoHistogramBinsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue.getDefaultInstance()) return this; + if (ecoHistogramBinsBuilder_ == null) { + if (!other.ecoHistogramBins_.isEmpty()) { + if (ecoHistogramBins_.isEmpty()) { + ecoHistogramBins_ = other.ecoHistogramBins_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.addAll(other.ecoHistogramBins_); + } + onChanged(); + } + } else { + if (!other.ecoHistogramBins_.isEmpty()) { + if (ecoHistogramBinsBuilder_.isEmpty()) { + ecoHistogramBinsBuilder_.dispose(); + ecoHistogramBinsBuilder_ = null; + ecoHistogramBins_ = other.ecoHistogramBins_; + bitField0_ = (bitField0_ & ~0x00000001); + ecoHistogramBinsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getEcoHistogramBinsFieldBuilder() : null; + } else { + ecoHistogramBinsBuilder_.addAllMessages(other.ecoHistogramBins_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.parser(), + extensionRegistry); + if (ecoHistogramBinsBuilder_ == null) { + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.add(m); + } else { + ecoHistogramBinsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List ecoHistogramBins_ = + java.util.Collections.emptyList(); + private void ensureEcoHistogramBinsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + ecoHistogramBins_ = new java.util.ArrayList(ecoHistogramBins_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder> ecoHistogramBinsBuilder_; + + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public java.util.List getEcoHistogramBinsList() { + if (ecoHistogramBinsBuilder_ == null) { + return java.util.Collections.unmodifiableList(ecoHistogramBins_); + } else { + return ecoHistogramBinsBuilder_.getMessageList(); + } + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public int getEcoHistogramBinsCount() { + if (ecoHistogramBinsBuilder_ == null) { + return ecoHistogramBins_.size(); + } else { + return ecoHistogramBinsBuilder_.getCount(); + } + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getEcoHistogramBins(int index) { + if (ecoHistogramBinsBuilder_ == null) { + return ecoHistogramBins_.get(index); + } else { + return ecoHistogramBinsBuilder_.getMessage(index); + } + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder setEcoHistogramBins( + int index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin value) { + if (ecoHistogramBinsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.set(index, value); + onChanged(); + } else { + ecoHistogramBinsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder setEcoHistogramBins( + int index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder builderForValue) { + if (ecoHistogramBinsBuilder_ == null) { + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.set(index, builderForValue.build()); + onChanged(); + } else { + ecoHistogramBinsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder addEcoHistogramBins(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin value) { + if (ecoHistogramBinsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.add(value); + onChanged(); + } else { + ecoHistogramBinsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder addEcoHistogramBins( + int index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin value) { + if (ecoHistogramBinsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.add(index, value); + onChanged(); + } else { + ecoHistogramBinsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder addEcoHistogramBins( + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder builderForValue) { + if (ecoHistogramBinsBuilder_ == null) { + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.add(builderForValue.build()); + onChanged(); + } else { + ecoHistogramBinsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder addEcoHistogramBins( + int index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder builderForValue) { + if (ecoHistogramBinsBuilder_ == null) { + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.add(index, builderForValue.build()); + onChanged(); + } else { + ecoHistogramBinsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder addAllEcoHistogramBins( + java.lang.Iterable values) { + if (ecoHistogramBinsBuilder_ == null) { + ensureEcoHistogramBinsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, ecoHistogramBins_); + onChanged(); + } else { + ecoHistogramBinsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder clearEcoHistogramBins() { + if (ecoHistogramBinsBuilder_ == null) { + ecoHistogramBins_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + ecoHistogramBinsBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public Builder removeEcoHistogramBins(int index) { + if (ecoHistogramBinsBuilder_ == null) { + ensureEcoHistogramBinsIsMutable(); + ecoHistogramBins_.remove(index); + onChanged(); + } else { + ecoHistogramBinsBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder getEcoHistogramBinsBuilder( + int index) { + return getEcoHistogramBinsFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder getEcoHistogramBinsOrBuilder( + int index) { + if (ecoHistogramBinsBuilder_ == null) { + return ecoHistogramBins_.get(index); } else { + return ecoHistogramBinsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public java.util.List + getEcoHistogramBinsOrBuilderList() { + if (ecoHistogramBinsBuilder_ != null) { + return ecoHistogramBinsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(ecoHistogramBins_); + } + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder addEcoHistogramBinsBuilder() { + return getEcoHistogramBinsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.getDefaultInstance()); + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder addEcoHistogramBinsBuilder( + int index) { + return getEcoHistogramBinsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.getDefaultInstance()); + } + /** + * repeated .proto.EcoHistogramBin eco_histogram_bins = 1; + */ + public java.util.List + getEcoHistogramBinsBuilderList() { + return getEcoHistogramBinsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder> + getEcoHistogramBinsFieldBuilder() { + if (ecoHistogramBinsBuilder_ == null) { + ecoHistogramBinsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder>( + ecoHistogramBins_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + ecoHistogramBins_ = null; + } + return ecoHistogramBinsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.EcoHistogramValue) + } + + // @@protoc_insertion_point(class_scope:proto.EcoHistogramValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EcoHistogramValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface EcoHistogramBinOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.EcoHistogramBin) + com.google.protobuf.MessageOrBuilder { + + /** + * double interval = 1; + * @return The interval. + */ + double getInterval(); + + /** + * double value = 2; + * @return The value. + */ + double getValue(); + } + /** + * Protobuf type {@code proto.EcoHistogramBin} + */ + public static final class EcoHistogramBin extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.EcoHistogramBin) + EcoHistogramBinOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + EcoHistogramBin.class.getName()); + } + // Use EcoHistogramBin.newBuilder() to construct. + private EcoHistogramBin(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private EcoHistogramBin() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.class, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder.class); + } + + public static final int INTERVAL_FIELD_NUMBER = 1; + private double interval_ = 0D; + /** + * double interval = 1; + * @return The interval. + */ + @java.lang.Override + public double getInterval() { + return interval_; + } + + public static final int VALUE_FIELD_NUMBER = 2; + private double value_ = 0D; + /** + * double value = 2; + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (java.lang.Double.doubleToRawLongBits(interval_) != 0) { + output.writeDouble(1, interval_); + } + if (java.lang.Double.doubleToRawLongBits(value_) != 0) { + output.writeDouble(2, value_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (java.lang.Double.doubleToRawLongBits(interval_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(1, interval_); + } + if (java.lang.Double.doubleToRawLongBits(value_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(2, value_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin other = (com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin) obj; + + if (java.lang.Double.doubleToLongBits(getInterval()) + != java.lang.Double.doubleToLongBits( + other.getInterval())) return false; + if (java.lang.Double.doubleToLongBits(getValue()) + != java.lang.Double.doubleToLongBits( + other.getValue())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + INTERVAL_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getInterval())); + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getValue())); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.EcoHistogramBin} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.EcoHistogramBin) + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBinOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.class, com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + interval_ = 0D; + value_ = 0D; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_EcoHistogramBin_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin build() { + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin result = new com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.interval_ = interval_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.value_ = value_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin.getDefaultInstance()) return this; + if (other.getInterval() != 0D) { + setInterval(other.getInterval()); + } + if (other.getValue() != 0D) { + setValue(other.getValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 9: { + interval_ = input.readDouble(); + bitField0_ |= 0x00000001; + break; + } // case 9 + case 17: { + value_ = input.readDouble(); + bitField0_ |= 0x00000002; + break; + } // case 17 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private double interval_ ; + /** + * double interval = 1; + * @return The interval. + */ + @java.lang.Override + public double getInterval() { + return interval_; + } + /** + * double interval = 1; + * @param value The interval to set. + * @return This builder for chaining. + */ + public Builder setInterval(double value) { + + interval_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * double interval = 1; + * @return This builder for chaining. + */ + public Builder clearInterval() { + bitField0_ = (bitField0_ & ~0x00000001); + interval_ = 0D; + onChanged(); + return this; + } + + private double value_ ; + /** + * double value = 2; + * @return The value. + */ + @java.lang.Override + public double getValue() { + return value_; + } + /** + * double value = 2; + * @param value The value to set. + * @return This builder for chaining. + */ + public Builder setValue(double value) { + + value_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * double value = 2; + * @return This builder for chaining. + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000002); + value_ = 0D; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.EcoHistogramBin) + } + + // @@protoc_insertion_point(class_scope:proto.EcoHistogramBin) + private static final com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public EcoHistogramBin parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.EcoHistogramBin getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SpeedAlertConfigurationValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SpeedAlertConfigurationValue) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + java.util.List + getSpeedAlertConfigurationsList(); + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getSpeedAlertConfigurations(int index); + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + int getSpeedAlertConfigurationsCount(); + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + java.util.List + getSpeedAlertConfigurationsOrBuilderList(); + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder getSpeedAlertConfigurationsOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.SpeedAlertConfigurationValue} + */ + public static final class SpeedAlertConfigurationValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SpeedAlertConfigurationValue) + SpeedAlertConfigurationValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SpeedAlertConfigurationValue.class.getName()); + } + // Use SpeedAlertConfigurationValue.newBuilder() to construct. + private SpeedAlertConfigurationValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SpeedAlertConfigurationValue() { + speedAlertConfigurations_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.class, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder.class); + } + + public static final int SPEED_ALERT_CONFIGURATIONS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List speedAlertConfigurations_; + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + @java.lang.Override + public java.util.List getSpeedAlertConfigurationsList() { + return speedAlertConfigurations_; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + @java.lang.Override + public java.util.List + getSpeedAlertConfigurationsOrBuilderList() { + return speedAlertConfigurations_; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + @java.lang.Override + public int getSpeedAlertConfigurationsCount() { + return speedAlertConfigurations_.size(); + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getSpeedAlertConfigurations(int index) { + return speedAlertConfigurations_.get(index); + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder getSpeedAlertConfigurationsOrBuilder( + int index) { + return speedAlertConfigurations_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < speedAlertConfigurations_.size(); i++) { + output.writeMessage(1, speedAlertConfigurations_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < speedAlertConfigurations_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, speedAlertConfigurations_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue other = (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) obj; + + if (!getSpeedAlertConfigurationsList() + .equals(other.getSpeedAlertConfigurationsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getSpeedAlertConfigurationsCount() > 0) { + hash = (37 * hash) + SPEED_ALERT_CONFIGURATIONS_FIELD_NUMBER; + hash = (53 * hash) + getSpeedAlertConfigurationsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SpeedAlertConfigurationValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SpeedAlertConfigurationValue) + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.class, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (speedAlertConfigurationsBuilder_ == null) { + speedAlertConfigurations_ = java.util.Collections.emptyList(); + } else { + speedAlertConfigurations_ = null; + speedAlertConfigurationsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfigurationValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue result = new com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue result) { + if (speedAlertConfigurationsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + speedAlertConfigurations_ = java.util.Collections.unmodifiableList(speedAlertConfigurations_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.speedAlertConfigurations_ = speedAlertConfigurations_; + } else { + result.speedAlertConfigurations_ = speedAlertConfigurationsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue.getDefaultInstance()) return this; + if (speedAlertConfigurationsBuilder_ == null) { + if (!other.speedAlertConfigurations_.isEmpty()) { + if (speedAlertConfigurations_.isEmpty()) { + speedAlertConfigurations_ = other.speedAlertConfigurations_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.addAll(other.speedAlertConfigurations_); + } + onChanged(); + } + } else { + if (!other.speedAlertConfigurations_.isEmpty()) { + if (speedAlertConfigurationsBuilder_.isEmpty()) { + speedAlertConfigurationsBuilder_.dispose(); + speedAlertConfigurationsBuilder_ = null; + speedAlertConfigurations_ = other.speedAlertConfigurations_; + bitField0_ = (bitField0_ & ~0x00000001); + speedAlertConfigurationsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getSpeedAlertConfigurationsFieldBuilder() : null; + } else { + speedAlertConfigurationsBuilder_.addAllMessages(other.speedAlertConfigurations_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.parser(), + extensionRegistry); + if (speedAlertConfigurationsBuilder_ == null) { + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.add(m); + } else { + speedAlertConfigurationsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List speedAlertConfigurations_ = + java.util.Collections.emptyList(); + private void ensureSpeedAlertConfigurationsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + speedAlertConfigurations_ = new java.util.ArrayList(speedAlertConfigurations_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder> speedAlertConfigurationsBuilder_; + + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public java.util.List getSpeedAlertConfigurationsList() { + if (speedAlertConfigurationsBuilder_ == null) { + return java.util.Collections.unmodifiableList(speedAlertConfigurations_); + } else { + return speedAlertConfigurationsBuilder_.getMessageList(); + } + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public int getSpeedAlertConfigurationsCount() { + if (speedAlertConfigurationsBuilder_ == null) { + return speedAlertConfigurations_.size(); + } else { + return speedAlertConfigurationsBuilder_.getCount(); + } + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getSpeedAlertConfigurations(int index) { + if (speedAlertConfigurationsBuilder_ == null) { + return speedAlertConfigurations_.get(index); + } else { + return speedAlertConfigurationsBuilder_.getMessage(index); + } + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder setSpeedAlertConfigurations( + int index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration value) { + if (speedAlertConfigurationsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.set(index, value); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder setSpeedAlertConfigurations( + int index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder builderForValue) { + if (speedAlertConfigurationsBuilder_ == null) { + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.set(index, builderForValue.build()); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder addSpeedAlertConfigurations(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration value) { + if (speedAlertConfigurationsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.add(value); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder addSpeedAlertConfigurations( + int index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration value) { + if (speedAlertConfigurationsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.add(index, value); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder addSpeedAlertConfigurations( + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder builderForValue) { + if (speedAlertConfigurationsBuilder_ == null) { + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.add(builderForValue.build()); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder addSpeedAlertConfigurations( + int index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder builderForValue) { + if (speedAlertConfigurationsBuilder_ == null) { + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.add(index, builderForValue.build()); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder addAllSpeedAlertConfigurations( + java.lang.Iterable values) { + if (speedAlertConfigurationsBuilder_ == null) { + ensureSpeedAlertConfigurationsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, speedAlertConfigurations_); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder clearSpeedAlertConfigurations() { + if (speedAlertConfigurationsBuilder_ == null) { + speedAlertConfigurations_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public Builder removeSpeedAlertConfigurations(int index) { + if (speedAlertConfigurationsBuilder_ == null) { + ensureSpeedAlertConfigurationsIsMutable(); + speedAlertConfigurations_.remove(index); + onChanged(); + } else { + speedAlertConfigurationsBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder getSpeedAlertConfigurationsBuilder( + int index) { + return getSpeedAlertConfigurationsFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder getSpeedAlertConfigurationsOrBuilder( + int index) { + if (speedAlertConfigurationsBuilder_ == null) { + return speedAlertConfigurations_.get(index); } else { + return speedAlertConfigurationsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public java.util.List + getSpeedAlertConfigurationsOrBuilderList() { + if (speedAlertConfigurationsBuilder_ != null) { + return speedAlertConfigurationsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(speedAlertConfigurations_); + } + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder addSpeedAlertConfigurationsBuilder() { + return getSpeedAlertConfigurationsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.getDefaultInstance()); + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder addSpeedAlertConfigurationsBuilder( + int index) { + return getSpeedAlertConfigurationsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.getDefaultInstance()); + } + /** + * repeated .proto.SpeedAlertConfiguration speed_alert_configurations = 1; + */ + public java.util.List + getSpeedAlertConfigurationsBuilderList() { + return getSpeedAlertConfigurationsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder> + getSpeedAlertConfigurationsFieldBuilder() { + if (speedAlertConfigurationsBuilder_ == null) { + speedAlertConfigurationsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder>( + speedAlertConfigurations_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + speedAlertConfigurations_ = null; + } + return speedAlertConfigurationsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.SpeedAlertConfigurationValue) + } + + // @@protoc_insertion_point(class_scope:proto.SpeedAlertConfigurationValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SpeedAlertConfigurationValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface SpeedAlertConfigurationOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.SpeedAlertConfiguration) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Unix timestamp in seconds
+     * 
+ * + * int64 end_timestamp_in_s = 1; + * @return The endTimestampInS. + */ + long getEndTimestampInS(); + + /** + *
+     * Speed in kilometers per hour
+     * 
+ * + * int32 threshold_in_kph = 2; + * @return The thresholdInKph. + */ + int getThresholdInKph(); + + /** + *
+     * threshold value in the users preferred unit
+     * 
+ * + * string threshold_display_value = 3; + * @return The thresholdDisplayValue. + */ + java.lang.String getThresholdDisplayValue(); + /** + *
+     * threshold value in the users preferred unit
+     * 
+ * + * string threshold_display_value = 3; + * @return The bytes for thresholdDisplayValue. + */ + com.google.protobuf.ByteString + getThresholdDisplayValueBytes(); + } + /** + * Protobuf type {@code proto.SpeedAlertConfiguration} + */ + public static final class SpeedAlertConfiguration extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.SpeedAlertConfiguration) + SpeedAlertConfigurationOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + SpeedAlertConfiguration.class.getName()); + } + // Use SpeedAlertConfiguration.newBuilder() to construct. + private SpeedAlertConfiguration(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private SpeedAlertConfiguration() { + thresholdDisplayValue_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.class, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder.class); + } + + public static final int END_TIMESTAMP_IN_S_FIELD_NUMBER = 1; + private long endTimestampInS_ = 0L; + /** + *
+     * Unix timestamp in seconds
+     * 
+ * + * int64 end_timestamp_in_s = 1; + * @return The endTimestampInS. + */ + @java.lang.Override + public long getEndTimestampInS() { + return endTimestampInS_; + } + + public static final int THRESHOLD_IN_KPH_FIELD_NUMBER = 2; + private int thresholdInKph_ = 0; + /** + *
+     * Speed in kilometers per hour
+     * 
+ * + * int32 threshold_in_kph = 2; + * @return The thresholdInKph. + */ + @java.lang.Override + public int getThresholdInKph() { + return thresholdInKph_; + } + + public static final int THRESHOLD_DISPLAY_VALUE_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object thresholdDisplayValue_ = ""; + /** + *
+     * threshold value in the users preferred unit
+     * 
+ * + * string threshold_display_value = 3; + * @return The thresholdDisplayValue. + */ + @java.lang.Override + public java.lang.String getThresholdDisplayValue() { + java.lang.Object ref = thresholdDisplayValue_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + thresholdDisplayValue_ = s; + return s; + } + } + /** + *
+     * threshold value in the users preferred unit
+     * 
+ * + * string threshold_display_value = 3; + * @return The bytes for thresholdDisplayValue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getThresholdDisplayValueBytes() { + java.lang.Object ref = thresholdDisplayValue_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + thresholdDisplayValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (endTimestampInS_ != 0L) { + output.writeInt64(1, endTimestampInS_); + } + if (thresholdInKph_ != 0) { + output.writeInt32(2, thresholdInKph_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(thresholdDisplayValue_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, thresholdDisplayValue_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (endTimestampInS_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, endTimestampInS_); + } + if (thresholdInKph_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, thresholdInKph_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(thresholdDisplayValue_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, thresholdDisplayValue_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration other = (com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration) obj; + + if (getEndTimestampInS() + != other.getEndTimestampInS()) return false; + if (getThresholdInKph() + != other.getThresholdInKph()) return false; + if (!getThresholdDisplayValue() + .equals(other.getThresholdDisplayValue())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + END_TIMESTAMP_IN_S_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEndTimestampInS()); + hash = (37 * hash) + THRESHOLD_IN_KPH_FIELD_NUMBER; + hash = (53 * hash) + getThresholdInKph(); + hash = (37 * hash) + THRESHOLD_DISPLAY_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getThresholdDisplayValue().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.SpeedAlertConfiguration} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.SpeedAlertConfiguration) + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfigurationOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.class, com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + endTimestampInS_ = 0L; + thresholdInKph_ = 0; + thresholdDisplayValue_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_SpeedAlertConfiguration_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration build() { + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration result = new com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.endTimestampInS_ = endTimestampInS_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.thresholdInKph_ = thresholdInKph_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.thresholdDisplayValue_ = thresholdDisplayValue_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration.getDefaultInstance()) return this; + if (other.getEndTimestampInS() != 0L) { + setEndTimestampInS(other.getEndTimestampInS()); + } + if (other.getThresholdInKph() != 0) { + setThresholdInKph(other.getThresholdInKph()); + } + if (!other.getThresholdDisplayValue().isEmpty()) { + thresholdDisplayValue_ = other.thresholdDisplayValue_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + endTimestampInS_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + thresholdInKph_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + thresholdDisplayValue_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long endTimestampInS_ ; + /** + *
+       * Unix timestamp in seconds
+       * 
+ * + * int64 end_timestamp_in_s = 1; + * @return The endTimestampInS. + */ + @java.lang.Override + public long getEndTimestampInS() { + return endTimestampInS_; + } + /** + *
+       * Unix timestamp in seconds
+       * 
+ * + * int64 end_timestamp_in_s = 1; + * @param value The endTimestampInS to set. + * @return This builder for chaining. + */ + public Builder setEndTimestampInS(long value) { + + endTimestampInS_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Unix timestamp in seconds
+       * 
+ * + * int64 end_timestamp_in_s = 1; + * @return This builder for chaining. + */ + public Builder clearEndTimestampInS() { + bitField0_ = (bitField0_ & ~0x00000001); + endTimestampInS_ = 0L; + onChanged(); + return this; + } + + private int thresholdInKph_ ; + /** + *
+       * Speed in kilometers per hour
+       * 
+ * + * int32 threshold_in_kph = 2; + * @return The thresholdInKph. + */ + @java.lang.Override + public int getThresholdInKph() { + return thresholdInKph_; + } + /** + *
+       * Speed in kilometers per hour
+       * 
+ * + * int32 threshold_in_kph = 2; + * @param value The thresholdInKph to set. + * @return This builder for chaining. + */ + public Builder setThresholdInKph(int value) { + + thresholdInKph_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Speed in kilometers per hour
+       * 
+ * + * int32 threshold_in_kph = 2; + * @return This builder for chaining. + */ + public Builder clearThresholdInKph() { + bitField0_ = (bitField0_ & ~0x00000002); + thresholdInKph_ = 0; + onChanged(); + return this; + } + + private java.lang.Object thresholdDisplayValue_ = ""; + /** + *
+       * threshold value in the users preferred unit
+       * 
+ * + * string threshold_display_value = 3; + * @return The thresholdDisplayValue. + */ + public java.lang.String getThresholdDisplayValue() { + java.lang.Object ref = thresholdDisplayValue_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + thresholdDisplayValue_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * threshold value in the users preferred unit
+       * 
+ * + * string threshold_display_value = 3; + * @return The bytes for thresholdDisplayValue. + */ + public com.google.protobuf.ByteString + getThresholdDisplayValueBytes() { + java.lang.Object ref = thresholdDisplayValue_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + thresholdDisplayValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * threshold value in the users preferred unit
+       * 
+ * + * string threshold_display_value = 3; + * @param value The thresholdDisplayValue to set. + * @return This builder for chaining. + */ + public Builder setThresholdDisplayValue( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + thresholdDisplayValue_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * threshold value in the users preferred unit
+       * 
+ * + * string threshold_display_value = 3; + * @return This builder for chaining. + */ + public Builder clearThresholdDisplayValue() { + thresholdDisplayValue_ = getDefaultInstance().getThresholdDisplayValue(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+       * threshold value in the users preferred unit
+       * 
+ * + * string threshold_display_value = 3; + * @param value The bytes for thresholdDisplayValue to set. + * @return This builder for chaining. + */ + public Builder setThresholdDisplayValueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + thresholdDisplayValue_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.SpeedAlertConfiguration) + } + + // @@protoc_insertion_point(class_scope:proto.SpeedAlertConfiguration) + private static final com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public SpeedAlertConfiguration parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.SpeedAlertConfiguration getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WeeklySettingsHeadUnitValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WeeklySettingsHeadUnitValue) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + java.util.List + getWeeklySettingsList(); + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getWeeklySettings(int index); + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + int getWeeklySettingsCount(); + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + java.util.List + getWeeklySettingsOrBuilderList(); + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder getWeeklySettingsOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.WeeklySettingsHeadUnitValue} + */ + public static final class WeeklySettingsHeadUnitValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WeeklySettingsHeadUnitValue) + WeeklySettingsHeadUnitValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WeeklySettingsHeadUnitValue.class.getName()); + } + // Use WeeklySettingsHeadUnitValue.newBuilder() to construct. + private WeeklySettingsHeadUnitValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WeeklySettingsHeadUnitValue() { + weeklySettings_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder.class); + } + + public static final int WEEKLY_SETTINGS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List weeklySettings_; + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + @java.lang.Override + public java.util.List getWeeklySettingsList() { + return weeklySettings_; + } + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + @java.lang.Override + public java.util.List + getWeeklySettingsOrBuilderList() { + return weeklySettings_; + } + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + @java.lang.Override + public int getWeeklySettingsCount() { + return weeklySettings_.size(); + } + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getWeeklySettings(int index) { + return weeklySettings_.get(index); + } + /** + *
+     * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+     * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder getWeeklySettingsOrBuilder( + int index) { + return weeklySettings_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < weeklySettings_.size(); i++) { + output.writeMessage(1, weeklySettings_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < weeklySettings_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, weeklySettings_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue other = (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) obj; + + if (!getWeeklySettingsList() + .equals(other.getWeeklySettingsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getWeeklySettingsCount() > 0) { + hash = (37 * hash) + WEEKLY_SETTINGS_FIELD_NUMBER; + hash = (53 * hash) + getWeeklySettingsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WeeklySettingsHeadUnitValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WeeklySettingsHeadUnitValue) + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (weeklySettingsBuilder_ == null) { + weeklySettings_ = java.util.Collections.emptyList(); + } else { + weeklySettings_ = null; + weeklySettingsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySettingsHeadUnitValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue result = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue result) { + if (weeklySettingsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + weeklySettings_ = java.util.Collections.unmodifiableList(weeklySettings_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.weeklySettings_ = weeklySettings_; + } else { + result.weeklySettings_ = weeklySettingsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue.getDefaultInstance()) return this; + if (weeklySettingsBuilder_ == null) { + if (!other.weeklySettings_.isEmpty()) { + if (weeklySettings_.isEmpty()) { + weeklySettings_ = other.weeklySettings_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureWeeklySettingsIsMutable(); + weeklySettings_.addAll(other.weeklySettings_); + } + onChanged(); + } + } else { + if (!other.weeklySettings_.isEmpty()) { + if (weeklySettingsBuilder_.isEmpty()) { + weeklySettingsBuilder_.dispose(); + weeklySettingsBuilder_ = null; + weeklySettings_ = other.weeklySettings_; + bitField0_ = (bitField0_ & ~0x00000001); + weeklySettingsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getWeeklySettingsFieldBuilder() : null; + } else { + weeklySettingsBuilder_.addAllMessages(other.weeklySettings_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.parser(), + extensionRegistry); + if (weeklySettingsBuilder_ == null) { + ensureWeeklySettingsIsMutable(); + weeklySettings_.add(m); + } else { + weeklySettingsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List weeklySettings_ = + java.util.Collections.emptyList(); + private void ensureWeeklySettingsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + weeklySettings_ = new java.util.ArrayList(weeklySettings_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder> weeklySettingsBuilder_; + + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public java.util.List getWeeklySettingsList() { + if (weeklySettingsBuilder_ == null) { + return java.util.Collections.unmodifiableList(weeklySettings_); + } else { + return weeklySettingsBuilder_.getMessageList(); + } + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public int getWeeklySettingsCount() { + if (weeklySettingsBuilder_ == null) { + return weeklySettings_.size(); + } else { + return weeklySettingsBuilder_.getCount(); + } + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getWeeklySettings(int index) { + if (weeklySettingsBuilder_ == null) { + return weeklySettings_.get(index); + } else { + return weeklySettingsBuilder_.getMessage(index); + } + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder setWeeklySettings( + int index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting value) { + if (weeklySettingsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeeklySettingsIsMutable(); + weeklySettings_.set(index, value); + onChanged(); + } else { + weeklySettingsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder setWeeklySettings( + int index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder builderForValue) { + if (weeklySettingsBuilder_ == null) { + ensureWeeklySettingsIsMutable(); + weeklySettings_.set(index, builderForValue.build()); + onChanged(); + } else { + weeklySettingsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder addWeeklySettings(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting value) { + if (weeklySettingsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeeklySettingsIsMutable(); + weeklySettings_.add(value); + onChanged(); + } else { + weeklySettingsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder addWeeklySettings( + int index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting value) { + if (weeklySettingsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureWeeklySettingsIsMutable(); + weeklySettings_.add(index, value); + onChanged(); + } else { + weeklySettingsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder addWeeklySettings( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder builderForValue) { + if (weeklySettingsBuilder_ == null) { + ensureWeeklySettingsIsMutable(); + weeklySettings_.add(builderForValue.build()); + onChanged(); + } else { + weeklySettingsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder addWeeklySettings( + int index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder builderForValue) { + if (weeklySettingsBuilder_ == null) { + ensureWeeklySettingsIsMutable(); + weeklySettings_.add(index, builderForValue.build()); + onChanged(); + } else { + weeklySettingsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder addAllWeeklySettings( + java.lang.Iterable values) { + if (weeklySettingsBuilder_ == null) { + ensureWeeklySettingsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, weeklySettings_); + onChanged(); + } else { + weeklySettingsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder clearWeeklySettings() { + if (weeklySettingsBuilder_ == null) { + weeklySettings_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + weeklySettingsBuilder_.clear(); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public Builder removeWeeklySettings(int index) { + if (weeklySettingsBuilder_ == null) { + ensureWeeklySettingsIsMutable(); + weeklySettings_.remove(index); + onChanged(); + } else { + weeklySettingsBuilder_.remove(index); + } + return this; + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder getWeeklySettingsBuilder( + int index) { + return getWeeklySettingsFieldBuilder().getBuilder(index); + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder getWeeklySettingsOrBuilder( + int index) { + if (weeklySettingsBuilder_ == null) { + return weeklySettings_.get(index); } else { + return weeklySettingsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public java.util.List + getWeeklySettingsOrBuilderList() { + if (weeklySettingsBuilder_ != null) { + return weeklySettingsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(weeklySettings_); + } + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder addWeeklySettingsBuilder() { + return getWeeklySettingsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.getDefaultInstance()); + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder addWeeklySettingsBuilder( + int index) { + return getWeeklySettingsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.getDefaultInstance()); + } + /** + *
+       * Array with 0 to 21 tupels of day (0..6, 0 = Monday, 1= Tuesday, ..) and departure time in min since midnight (0..1439)
+       * 
+ * + * repeated .proto.WeeklySetting weekly_settings = 1; + */ + public java.util.List + getWeeklySettingsBuilderList() { + return getWeeklySettingsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder> + getWeeklySettingsFieldBuilder() { + if (weeklySettingsBuilder_ == null) { + weeklySettingsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder>( + weeklySettings_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + weeklySettings_ = null; + } + return weeklySettingsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.WeeklySettingsHeadUnitValue) + } + + // @@protoc_insertion_point(class_scope:proto.WeeklySettingsHeadUnitValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WeeklySettingsHeadUnitValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WeeklySettingOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WeeklySetting) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 day = 1; + * @return The day. + */ + int getDay(); + + /** + * int32 minutes_since_midnight = 2; + * @return The minutesSinceMidnight. + */ + int getMinutesSinceMidnight(); + } + /** + * Protobuf type {@code proto.WeeklySetting} + */ + public static final class WeeklySetting extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WeeklySetting) + WeeklySettingOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WeeklySetting.class.getName()); + } + // Use WeeklySetting.newBuilder() to construct. + private WeeklySetting(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WeeklySetting() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder.class); + } + + public static final int DAY_FIELD_NUMBER = 1; + private int day_ = 0; + /** + * int32 day = 1; + * @return The day. + */ + @java.lang.Override + public int getDay() { + return day_; + } + + public static final int MINUTES_SINCE_MIDNIGHT_FIELD_NUMBER = 2; + private int minutesSinceMidnight_ = 0; + /** + * int32 minutes_since_midnight = 2; + * @return The minutesSinceMidnight. + */ + @java.lang.Override + public int getMinutesSinceMidnight() { + return minutesSinceMidnight_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (day_ != 0) { + output.writeInt32(1, day_); + } + if (minutesSinceMidnight_ != 0) { + output.writeInt32(2, minutesSinceMidnight_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (day_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, day_); + } + if (minutesSinceMidnight_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, minutesSinceMidnight_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting other = (com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting) obj; + + if (getDay() + != other.getDay()) return false; + if (getMinutesSinceMidnight() + != other.getMinutesSinceMidnight()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + DAY_FIELD_NUMBER; + hash = (53 * hash) + getDay(); + hash = (37 * hash) + MINUTES_SINCE_MIDNIGHT_FIELD_NUMBER; + hash = (53 * hash) + getMinutesSinceMidnight(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WeeklySetting} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WeeklySetting) + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.class, com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + day_ = 0; + minutesSinceMidnight_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeeklySetting_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting build() { + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting result = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.day_ = day_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.minutesSinceMidnight_ = minutesSinceMidnight_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting.getDefaultInstance()) return this; + if (other.getDay() != 0) { + setDay(other.getDay()); + } + if (other.getMinutesSinceMidnight() != 0) { + setMinutesSinceMidnight(other.getMinutesSinceMidnight()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + day_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + minutesSinceMidnight_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int day_ ; + /** + * int32 day = 1; + * @return The day. + */ + @java.lang.Override + public int getDay() { + return day_; + } + /** + * int32 day = 1; + * @param value The day to set. + * @return This builder for chaining. + */ + public Builder setDay(int value) { + + day_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 day = 1; + * @return This builder for chaining. + */ + public Builder clearDay() { + bitField0_ = (bitField0_ & ~0x00000001); + day_ = 0; + onChanged(); + return this; + } + + private int minutesSinceMidnight_ ; + /** + * int32 minutes_since_midnight = 2; + * @return The minutesSinceMidnight. + */ + @java.lang.Override + public int getMinutesSinceMidnight() { + return minutesSinceMidnight_; + } + /** + * int32 minutes_since_midnight = 2; + * @param value The minutesSinceMidnight to set. + * @return This builder for chaining. + */ + public Builder setMinutesSinceMidnight(int value) { + + minutesSinceMidnight_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int32 minutes_since_midnight = 2; + * @return This builder for chaining. + */ + public Builder clearMinutesSinceMidnight() { + bitField0_ = (bitField0_ & ~0x00000002); + minutesSinceMidnight_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.WeeklySetting) + } + + // @@protoc_insertion_point(class_scope:proto.WeeklySetting) + private static final com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WeeklySetting parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TemperaturePointsValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TemperaturePointsValue) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + java.util.List + getTemperaturePointsList(); + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getTemperaturePoints(int index); + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + int getTemperaturePointsCount(); + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + java.util.List + getTemperaturePointsOrBuilderList(); + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder getTemperaturePointsOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.TemperaturePointsValue} + */ + public static final class TemperaturePointsValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TemperaturePointsValue) + TemperaturePointsValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TemperaturePointsValue.class.getName()); + } + // Use TemperaturePointsValue.newBuilder() to construct. + private TemperaturePointsValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TemperaturePointsValue() { + temperaturePoints_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.class, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder.class); + } + + public static final int TEMPERATURE_POINTS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List temperaturePoints_; + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + @java.lang.Override + public java.util.List getTemperaturePointsList() { + return temperaturePoints_; + } + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + @java.lang.Override + public java.util.List + getTemperaturePointsOrBuilderList() { + return temperaturePoints_; + } + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + @java.lang.Override + public int getTemperaturePointsCount() { + return temperaturePoints_.size(); + } + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getTemperaturePoints(int index) { + return temperaturePoints_.get(index); + } + /** + *
+     * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+     * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+     * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder getTemperaturePointsOrBuilder( + int index) { + return temperaturePoints_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < temperaturePoints_.size(); i++) { + output.writeMessage(1, temperaturePoints_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < temperaturePoints_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, temperaturePoints_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue other = (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) obj; + + if (!getTemperaturePointsList() + .equals(other.getTemperaturePointsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTemperaturePointsCount() > 0) { + hash = (37 * hash) + TEMPERATURE_POINTS_FIELD_NUMBER; + hash = (53 * hash) + getTemperaturePointsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.TemperaturePointsValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TemperaturePointsValue) + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.class, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (temperaturePointsBuilder_ == null) { + temperaturePoints_ = java.util.Collections.emptyList(); + } else { + temperaturePoints_ = null; + temperaturePointsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePointsValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue result = new com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue result) { + if (temperaturePointsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + temperaturePoints_ = java.util.Collections.unmodifiableList(temperaturePoints_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.temperaturePoints_ = temperaturePoints_; + } else { + result.temperaturePoints_ = temperaturePointsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue.getDefaultInstance()) return this; + if (temperaturePointsBuilder_ == null) { + if (!other.temperaturePoints_.isEmpty()) { + if (temperaturePoints_.isEmpty()) { + temperaturePoints_ = other.temperaturePoints_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.addAll(other.temperaturePoints_); + } + onChanged(); + } + } else { + if (!other.temperaturePoints_.isEmpty()) { + if (temperaturePointsBuilder_.isEmpty()) { + temperaturePointsBuilder_.dispose(); + temperaturePointsBuilder_ = null; + temperaturePoints_ = other.temperaturePoints_; + bitField0_ = (bitField0_ & ~0x00000001); + temperaturePointsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getTemperaturePointsFieldBuilder() : null; + } else { + temperaturePointsBuilder_.addAllMessages(other.temperaturePoints_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.parser(), + extensionRegistry); + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(m); + } else { + temperaturePointsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List temperaturePoints_ = + java.util.Collections.emptyList(); + private void ensureTemperaturePointsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + temperaturePoints_ = new java.util.ArrayList(temperaturePoints_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder> temperaturePointsBuilder_; + + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public java.util.List getTemperaturePointsList() { + if (temperaturePointsBuilder_ == null) { + return java.util.Collections.unmodifiableList(temperaturePoints_); + } else { + return temperaturePointsBuilder_.getMessageList(); + } + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public int getTemperaturePointsCount() { + if (temperaturePointsBuilder_ == null) { + return temperaturePoints_.size(); + } else { + return temperaturePointsBuilder_.getCount(); + } + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getTemperaturePoints(int index) { + if (temperaturePointsBuilder_ == null) { + return temperaturePoints_.get(index); + } else { + return temperaturePointsBuilder_.getMessage(index); + } + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder setTemperaturePoints( + int index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint value) { + if (temperaturePointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTemperaturePointsIsMutable(); + temperaturePoints_.set(index, value); + onChanged(); + } else { + temperaturePointsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder setTemperaturePoints( + int index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder builderForValue) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.set(index, builderForValue.build()); + onChanged(); + } else { + temperaturePointsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder addTemperaturePoints(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint value) { + if (temperaturePointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(value); + onChanged(); + } else { + temperaturePointsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder addTemperaturePoints( + int index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint value) { + if (temperaturePointsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(index, value); + onChanged(); + } else { + temperaturePointsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder addTemperaturePoints( + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder builderForValue) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(builderForValue.build()); + onChanged(); + } else { + temperaturePointsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder addTemperaturePoints( + int index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder builderForValue) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.add(index, builderForValue.build()); + onChanged(); + } else { + temperaturePointsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder addAllTemperaturePoints( + java.lang.Iterable values) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, temperaturePoints_); + onChanged(); + } else { + temperaturePointsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder clearTemperaturePoints() { + if (temperaturePointsBuilder_ == null) { + temperaturePoints_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + temperaturePointsBuilder_.clear(); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public Builder removeTemperaturePoints(int index) { + if (temperaturePointsBuilder_ == null) { + ensureTemperaturePointsIsMutable(); + temperaturePoints_.remove(index); + onChanged(); + } else { + temperaturePointsBuilder_.remove(index); + } + return this; + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder getTemperaturePointsBuilder( + int index) { + return getTemperaturePointsFieldBuilder().getBuilder(index); + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder getTemperaturePointsOrBuilder( + int index) { + if (temperaturePointsBuilder_ == null) { + return temperaturePoints_.get(index); } else { + return temperaturePointsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public java.util.List + getTemperaturePointsOrBuilderList() { + if (temperaturePointsBuilder_ != null) { + return temperaturePointsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(temperaturePoints_); + } + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder addTemperaturePointsBuilder() { + return getTemperaturePointsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.getDefaultInstance()); + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder addTemperaturePointsBuilder( + int index) { + return getTemperaturePointsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.getDefaultInstance()); + } + /** + *
+       * Array with 1 to 5 tupels of zone (frontLeft, frontRight, frontCenter, rearRight, rearLeft, rearCenter, rear2center)
+       * and temperature in °C where 0 means maximum cooling (LOW) and 30 means maximum heating (HIGH)
+       * 
+ * + * repeated .proto.TemperaturePoint temperature_points = 1; + */ + public java.util.List + getTemperaturePointsBuilderList() { + return getTemperaturePointsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder> + getTemperaturePointsFieldBuilder() { + if (temperaturePointsBuilder_ == null) { + temperaturePointsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder>( + temperaturePoints_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + temperaturePoints_ = null; + } + return temperaturePointsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.TemperaturePointsValue) + } + + // @@protoc_insertion_point(class_scope:proto.TemperaturePointsValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TemperaturePointsValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TemperaturePointOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TemperaturePoint) + com.google.protobuf.MessageOrBuilder { + + /** + * string zone = 1; + * @return The zone. + */ + java.lang.String getZone(); + /** + * string zone = 1; + * @return The bytes for zone. + */ + com.google.protobuf.ByteString + getZoneBytes(); + + /** + * double temperature = 2; + * @return The temperature. + */ + double getTemperature(); + + /** + * string temperature_display_value = 3; + * @return The temperatureDisplayValue. + */ + java.lang.String getTemperatureDisplayValue(); + /** + * string temperature_display_value = 3; + * @return The bytes for temperatureDisplayValue. + */ + com.google.protobuf.ByteString + getTemperatureDisplayValueBytes(); + } + /** + * Protobuf type {@code proto.TemperaturePoint} + */ + public static final class TemperaturePoint extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TemperaturePoint) + TemperaturePointOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TemperaturePoint.class.getName()); + } + // Use TemperaturePoint.newBuilder() to construct. + private TemperaturePoint(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TemperaturePoint() { + zone_ = ""; + temperatureDisplayValue_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.class, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder.class); + } + + public static final int ZONE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object zone_ = ""; + /** + * string zone = 1; + * @return The zone. + */ + @java.lang.Override + public java.lang.String getZone() { + java.lang.Object ref = zone_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + zone_ = s; + return s; + } + } + /** + * string zone = 1; + * @return The bytes for zone. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getZoneBytes() { + java.lang.Object ref = zone_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + zone_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TEMPERATURE_FIELD_NUMBER = 2; + private double temperature_ = 0D; + /** + * double temperature = 2; + * @return The temperature. + */ + @java.lang.Override + public double getTemperature() { + return temperature_; + } + + public static final int TEMPERATURE_DISPLAY_VALUE_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object temperatureDisplayValue_ = ""; + /** + * string temperature_display_value = 3; + * @return The temperatureDisplayValue. + */ + @java.lang.Override + public java.lang.String getTemperatureDisplayValue() { + java.lang.Object ref = temperatureDisplayValue_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + temperatureDisplayValue_ = s; + return s; + } + } + /** + * string temperature_display_value = 3; + * @return The bytes for temperatureDisplayValue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTemperatureDisplayValueBytes() { + java.lang.Object ref = temperatureDisplayValue_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + temperatureDisplayValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(zone_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, zone_); + } + if (java.lang.Double.doubleToRawLongBits(temperature_) != 0) { + output.writeDouble(2, temperature_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(temperatureDisplayValue_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, temperatureDisplayValue_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(zone_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, zone_); + } + if (java.lang.Double.doubleToRawLongBits(temperature_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize(2, temperature_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(temperatureDisplayValue_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, temperatureDisplayValue_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint other = (com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint) obj; + + if (!getZone() + .equals(other.getZone())) return false; + if (java.lang.Double.doubleToLongBits(getTemperature()) + != java.lang.Double.doubleToLongBits( + other.getTemperature())) return false; + if (!getTemperatureDisplayValue() + .equals(other.getTemperatureDisplayValue())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + ZONE_FIELD_NUMBER; + hash = (53 * hash) + getZone().hashCode(); + hash = (37 * hash) + TEMPERATURE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getTemperature())); + hash = (37 * hash) + TEMPERATURE_DISPLAY_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getTemperatureDisplayValue().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.TemperaturePoint} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TemperaturePoint) + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.class, com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + zone_ = ""; + temperature_ = 0D; + temperatureDisplayValue_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TemperaturePoint_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint build() { + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint result = new com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.zone_ = zone_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.temperature_ = temperature_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.temperatureDisplayValue_ = temperatureDisplayValue_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.getDefaultInstance()) return this; + if (!other.getZone().isEmpty()) { + zone_ = other.zone_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getTemperature() != 0D) { + setTemperature(other.getTemperature()); + } + if (!other.getTemperatureDisplayValue().isEmpty()) { + temperatureDisplayValue_ = other.temperatureDisplayValue_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + zone_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 17: { + temperature_ = input.readDouble(); + bitField0_ |= 0x00000002; + break; + } // case 17 + case 26: { + temperatureDisplayValue_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object zone_ = ""; + /** + * string zone = 1; + * @return The zone. + */ + public java.lang.String getZone() { + java.lang.Object ref = zone_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + zone_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string zone = 1; + * @return The bytes for zone. + */ + public com.google.protobuf.ByteString + getZoneBytes() { + java.lang.Object ref = zone_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + zone_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string zone = 1; + * @param value The zone to set. + * @return This builder for chaining. + */ + public Builder setZone( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + zone_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string zone = 1; + * @return This builder for chaining. + */ + public Builder clearZone() { + zone_ = getDefaultInstance().getZone(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string zone = 1; + * @param value The bytes for zone to set. + * @return This builder for chaining. + */ + public Builder setZoneBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + zone_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private double temperature_ ; + /** + * double temperature = 2; + * @return The temperature. + */ + @java.lang.Override + public double getTemperature() { + return temperature_; + } + /** + * double temperature = 2; + * @param value The temperature to set. + * @return This builder for chaining. + */ + public Builder setTemperature(double value) { + + temperature_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * double temperature = 2; + * @return This builder for chaining. + */ + public Builder clearTemperature() { + bitField0_ = (bitField0_ & ~0x00000002); + temperature_ = 0D; + onChanged(); + return this; + } + + private java.lang.Object temperatureDisplayValue_ = ""; + /** + * string temperature_display_value = 3; + * @return The temperatureDisplayValue. + */ + public java.lang.String getTemperatureDisplayValue() { + java.lang.Object ref = temperatureDisplayValue_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + temperatureDisplayValue_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string temperature_display_value = 3; + * @return The bytes for temperatureDisplayValue. + */ + public com.google.protobuf.ByteString + getTemperatureDisplayValueBytes() { + java.lang.Object ref = temperatureDisplayValue_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + temperatureDisplayValue_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string temperature_display_value = 3; + * @param value The temperatureDisplayValue to set. + * @return This builder for chaining. + */ + public Builder setTemperatureDisplayValue( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + temperatureDisplayValue_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string temperature_display_value = 3; + * @return This builder for chaining. + */ + public Builder clearTemperatureDisplayValue() { + temperatureDisplayValue_ = getDefaultInstance().getTemperatureDisplayValue(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string temperature_display_value = 3; + * @param value The bytes for temperatureDisplayValue to set. + * @return This builder for chaining. + */ + public Builder setTemperatureDisplayValueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + temperatureDisplayValue_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.TemperaturePoint) + } + + // @@protoc_insertion_point(class_scope:proto.TemperaturePoint) + private static final com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TemperaturePoint parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WeekdayTariffValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WeekdayTariffValue) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + java.util.List + getTariffsList(); + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index); + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + int getTariffsCount(); + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + java.util.List + getTariffsOrBuilderList(); + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.WeekdayTariffValue} + */ + public static final class WeekdayTariffValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WeekdayTariffValue) + WeekdayTariffValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WeekdayTariffValue.class.getName()); + } + // Use WeekdayTariffValue.newBuilder() to construct. + private WeekdayTariffValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WeekdayTariffValue() { + tariffs_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder.class); + } + + public static final int TARIFFS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List tariffs_; + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public java.util.List getTariffsList() { + return tariffs_; + } + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public java.util.List + getTariffsOrBuilderList() { + return tariffs_; + } + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public int getTariffsCount() { + return tariffs_.size(); + } + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index) { + return tariffs_.get(index); + } + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder( + int index) { + return tariffs_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < tariffs_.size(); i++) { + output.writeMessage(1, tariffs_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < tariffs_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, tariffs_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue other = (com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) obj; + + if (!getTariffsList() + .equals(other.getTariffsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTariffsCount() > 0) { + hash = (37 * hash) + TARIFFS_FIELD_NUMBER; + hash = (53 * hash) + getTariffsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WeekdayTariffValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WeekdayTariffValue) + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (tariffsBuilder_ == null) { + tariffs_ = java.util.Collections.emptyList(); + } else { + tariffs_ = null; + tariffsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekdayTariffValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue result = new com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue result) { + if (tariffsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + tariffs_ = java.util.Collections.unmodifiableList(tariffs_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.tariffs_ = tariffs_; + } else { + result.tariffs_ = tariffsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue.getDefaultInstance()) return this; + if (tariffsBuilder_ == null) { + if (!other.tariffs_.isEmpty()) { + if (tariffs_.isEmpty()) { + tariffs_ = other.tariffs_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureTariffsIsMutable(); + tariffs_.addAll(other.tariffs_); + } + onChanged(); + } + } else { + if (!other.tariffs_.isEmpty()) { + if (tariffsBuilder_.isEmpty()) { + tariffsBuilder_.dispose(); + tariffsBuilder_ = null; + tariffs_ = other.tariffs_; + bitField0_ = (bitField0_ & ~0x00000001); + tariffsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getTariffsFieldBuilder() : null; + } else { + tariffsBuilder_.addAllMessages(other.tariffs_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleEvents.Tariff m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.Tariff.parser(), + extensionRegistry); + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.add(m); + } else { + tariffsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List tariffs_ = + java.util.Collections.emptyList(); + private void ensureTariffsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + tariffs_ = new java.util.ArrayList(tariffs_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> tariffsBuilder_; + + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public java.util.List getTariffsList() { + if (tariffsBuilder_ == null) { + return java.util.Collections.unmodifiableList(tariffs_); + } else { + return tariffsBuilder_.getMessageList(); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public int getTariffsCount() { + if (tariffsBuilder_ == null) { + return tariffs_.size(); + } else { + return tariffsBuilder_.getCount(); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index) { + if (tariffsBuilder_ == null) { + return tariffs_.get(index); + } else { + return tariffsBuilder_.getMessage(index); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder setTariffs( + int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) { + if (tariffsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTariffsIsMutable(); + tariffs_.set(index, value); + onChanged(); + } else { + tariffsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder setTariffs( + int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.set(index, builderForValue.build()); + onChanged(); + } else { + tariffsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addTariffs(com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) { + if (tariffsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTariffsIsMutable(); + tariffs_.add(value); + onChanged(); + } else { + tariffsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addTariffs( + int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) { + if (tariffsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTariffsIsMutable(); + tariffs_.add(index, value); + onChanged(); + } else { + tariffsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addTariffs( + com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.add(builderForValue.build()); + onChanged(); + } else { + tariffsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addTariffs( + int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.add(index, builderForValue.build()); + onChanged(); + } else { + tariffsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addAllTariffs( + java.lang.Iterable values) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, tariffs_); + onChanged(); + } else { + tariffsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder clearTariffs() { + if (tariffsBuilder_ == null) { + tariffs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + tariffsBuilder_.clear(); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder removeTariffs(int index) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.remove(index); + onChanged(); + } else { + tariffsBuilder_.remove(index); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder getTariffsBuilder( + int index) { + return getTariffsFieldBuilder().getBuilder(index); + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder( + int index) { + if (tariffsBuilder_ == null) { + return tariffs_.get(index); } else { + return tariffsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public java.util.List + getTariffsOrBuilderList() { + if (tariffsBuilder_ != null) { + return tariffsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(tariffs_); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder addTariffsBuilder() { + return getTariffsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance()); + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder addTariffsBuilder( + int index) { + return getTariffsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance()); + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public java.util.List + getTariffsBuilderList() { + return getTariffsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> + getTariffsFieldBuilder() { + if (tariffsBuilder_ == null) { + tariffsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder>( + tariffs_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + tariffs_ = null; + } + return tariffsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.WeekdayTariffValue) + } + + // @@protoc_insertion_point(class_scope:proto.WeekdayTariffValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WeekdayTariffValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekdayTariffValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface WeekendTariffValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.WeekendTariffValue) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + java.util.List + getTariffsList(); + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index); + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + int getTariffsCount(); + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + java.util.List + getTariffsOrBuilderList(); + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.WeekendTariffValue} + */ + public static final class WeekendTariffValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.WeekendTariffValue) + WeekendTariffValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + WeekendTariffValue.class.getName()); + } + // Use WeekendTariffValue.newBuilder() to construct. + private WeekendTariffValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private WeekendTariffValue() { + tariffs_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder.class); + } + + public static final int TARIFFS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List tariffs_; + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public java.util.List getTariffsList() { + return tariffs_; + } + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public java.util.List + getTariffsOrBuilderList() { + return tariffs_; + } + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public int getTariffsCount() { + return tariffs_.size(); + } + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index) { + return tariffs_.get(index); + } + /** + *
+     * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+     * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder( + int index) { + return tariffs_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < tariffs_.size(); i++) { + output.writeMessage(1, tariffs_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < tariffs_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, tariffs_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue other = (com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) obj; + + if (!getTariffsList() + .equals(other.getTariffsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getTariffsCount() > 0) { + hash = (37 * hash) + TARIFFS_FIELD_NUMBER; + hash = (53 * hash) + getTariffsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.WeekendTariffValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.WeekendTariffValue) + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.class, com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (tariffsBuilder_ == null) { + tariffs_ = java.util.Collections.emptyList(); + } else { + tariffs_ = null; + tariffsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_WeekendTariffValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue result = new com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue result) { + if (tariffsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + tariffs_ = java.util.Collections.unmodifiableList(tariffs_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.tariffs_ = tariffs_; + } else { + result.tariffs_ = tariffsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue.getDefaultInstance()) return this; + if (tariffsBuilder_ == null) { + if (!other.tariffs_.isEmpty()) { + if (tariffs_.isEmpty()) { + tariffs_ = other.tariffs_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureTariffsIsMutable(); + tariffs_.addAll(other.tariffs_); + } + onChanged(); + } + } else { + if (!other.tariffs_.isEmpty()) { + if (tariffsBuilder_.isEmpty()) { + tariffsBuilder_.dispose(); + tariffsBuilder_ = null; + tariffs_ = other.tariffs_; + bitField0_ = (bitField0_ & ~0x00000001); + tariffsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getTariffsFieldBuilder() : null; + } else { + tariffsBuilder_.addAllMessages(other.tariffs_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleEvents.Tariff m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.Tariff.parser(), + extensionRegistry); + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.add(m); + } else { + tariffsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List tariffs_ = + java.util.Collections.emptyList(); + private void ensureTariffsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + tariffs_ = new java.util.ArrayList(tariffs_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> tariffsBuilder_; + + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public java.util.List getTariffsList() { + if (tariffsBuilder_ == null) { + return java.util.Collections.unmodifiableList(tariffs_); + } else { + return tariffsBuilder_.getMessageList(); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public int getTariffsCount() { + if (tariffsBuilder_ == null) { + return tariffs_.size(); + } else { + return tariffsBuilder_.getCount(); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getTariffs(int index) { + if (tariffsBuilder_ == null) { + return tariffs_.get(index); + } else { + return tariffsBuilder_.getMessage(index); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder setTariffs( + int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) { + if (tariffsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTariffsIsMutable(); + tariffs_.set(index, value); + onChanged(); + } else { + tariffsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder setTariffs( + int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.set(index, builderForValue.build()); + onChanged(); + } else { + tariffsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addTariffs(com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) { + if (tariffsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTariffsIsMutable(); + tariffs_.add(value); + onChanged(); + } else { + tariffsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addTariffs( + int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff value) { + if (tariffsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureTariffsIsMutable(); + tariffs_.add(index, value); + onChanged(); + } else { + tariffsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addTariffs( + com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.add(builderForValue.build()); + onChanged(); + } else { + tariffsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addTariffs( + int index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder builderForValue) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.add(index, builderForValue.build()); + onChanged(); + } else { + tariffsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder addAllTariffs( + java.lang.Iterable values) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, tariffs_); + onChanged(); + } else { + tariffsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder clearTariffs() { + if (tariffsBuilder_ == null) { + tariffs_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + tariffsBuilder_.clear(); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public Builder removeTariffs(int index) { + if (tariffsBuilder_ == null) { + ensureTariffsIsMutable(); + tariffs_.remove(index); + onChanged(); + } else { + tariffsBuilder_.remove(index); + } + return this; + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder getTariffsBuilder( + int index) { + return getTariffsFieldBuilder().getBuilder(index); + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder getTariffsOrBuilder( + int index) { + if (tariffsBuilder_ == null) { + return tariffs_.get(index); } else { + return tariffsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public java.util.List + getTariffsOrBuilderList() { + if (tariffsBuilder_ != null) { + return tariffsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(tariffs_); + } + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder addTariffsBuilder() { + return getTariffsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance()); + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder addTariffsBuilder( + int index) { + return getTariffsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance()); + } + /** + *
+       * List of sampling points. Hint: Array will be empty in initial state. I. e.: rate and time will not be existent in initial state.
+       * 
+ * + * repeated .proto.Tariff tariffs = 1; + */ + public java.util.List + getTariffsBuilderList() { + return getTariffsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder> + getTariffsFieldBuilder() { + if (tariffsBuilder_ == null) { + tariffsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.Tariff, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder, com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder>( + tariffs_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + tariffs_ = null; + } + return tariffsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.WeekendTariffValue) + } + + // @@protoc_insertion_point(class_scope:proto.WeekendTariffValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public WeekendTariffValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.WeekendTariffValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TariffOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.Tariff) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * 33 - off-peak, 44 - mid-peak, 66 - on-peak
+     * 
+ * + * int32 rate = 1; + * @return The rate. + */ + int getRate(); + + /** + *
+     * Seconds from midnight
+     * 
+ * + * int32 time = 2; + * @return The time. + */ + int getTime(); + } + /** + * Protobuf type {@code proto.Tariff} + */ + public static final class Tariff extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.Tariff) + TariffOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Tariff.class.getName()); + } + // Use Tariff.newBuilder() to construct. + private Tariff(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private Tariff() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.Tariff.class, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder.class); + } + + public static final int RATE_FIELD_NUMBER = 1; + private int rate_ = 0; + /** + *
+     * 33 - off-peak, 44 - mid-peak, 66 - on-peak
+     * 
+ * + * int32 rate = 1; + * @return The rate. + */ + @java.lang.Override + public int getRate() { + return rate_; + } + + public static final int TIME_FIELD_NUMBER = 2; + private int time_ = 0; + /** + *
+     * Seconds from midnight
+     * 
+ * + * int32 time = 2; + * @return The time. + */ + @java.lang.Override + public int getTime() { + return time_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (rate_ != 0) { + output.writeInt32(1, rate_); + } + if (time_ != 0) { + output.writeInt32(2, time_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (rate_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, rate_); + } + if (time_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, time_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.Tariff)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.Tariff other = (com.daimler.mbcarkit.proto.VehicleEvents.Tariff) obj; + + if (getRate() + != other.getRate()) return false; + if (getTime() + != other.getTime()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + RATE_FIELD_NUMBER; + hash = (53 * hash) + getRate(); + hash = (37 * hash) + TIME_FIELD_NUMBER; + hash = (53 * hash) + getTime(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.Tariff prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.Tariff} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.Tariff) + com.daimler.mbcarkit.proto.VehicleEvents.TariffOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.Tariff.class, com.daimler.mbcarkit.proto.VehicleEvents.Tariff.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.Tariff.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + rate_ = 0; + time_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_Tariff_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff build() { + com.daimler.mbcarkit.proto.VehicleEvents.Tariff result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.Tariff result = new com.daimler.mbcarkit.proto.VehicleEvents.Tariff(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.Tariff result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.rate_ = rate_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.time_ = time_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.Tariff) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.Tariff)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.Tariff other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.Tariff.getDefaultInstance()) return this; + if (other.getRate() != 0) { + setRate(other.getRate()); + } + if (other.getTime() != 0) { + setTime(other.getTime()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + rate_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + time_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int rate_ ; + /** + *
+       * 33 - off-peak, 44 - mid-peak, 66 - on-peak
+       * 
+ * + * int32 rate = 1; + * @return The rate. + */ + @java.lang.Override + public int getRate() { + return rate_; + } + /** + *
+       * 33 - off-peak, 44 - mid-peak, 66 - on-peak
+       * 
+ * + * int32 rate = 1; + * @param value The rate to set. + * @return This builder for chaining. + */ + public Builder setRate(int value) { + + rate_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * 33 - off-peak, 44 - mid-peak, 66 - on-peak
+       * 
+ * + * int32 rate = 1; + * @return This builder for chaining. + */ + public Builder clearRate() { + bitField0_ = (bitField0_ & ~0x00000001); + rate_ = 0; + onChanged(); + return this; + } + + private int time_ ; + /** + *
+       * Seconds from midnight
+       * 
+ * + * int32 time = 2; + * @return The time. + */ + @java.lang.Override + public int getTime() { + return time_; + } + /** + *
+       * Seconds from midnight
+       * 
+ * + * int32 time = 2; + * @param value The time to set. + * @return This builder for chaining. + */ + public Builder setTime(int value) { + + time_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Seconds from midnight
+       * 
+ * + * int32 time = 2; + * @return This builder for chaining. + */ + public Builder clearTime() { + bitField0_ = (bitField0_ & ~0x00000002); + time_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.Tariff) + } + + // @@protoc_insertion_point(class_scope:proto.Tariff) + private static final com.daimler.mbcarkit.proto.VehicleEvents.Tariff DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.Tariff(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.Tariff getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Tariff parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.Tariff getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface StateOfChargeProfileValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.StateOfChargeProfileValue) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + java.util.List + getStatesOfChargeList(); + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getStatesOfCharge(int index); + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + int getStatesOfChargeCount(); + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + java.util.List + getStatesOfChargeOrBuilderList(); + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder getStatesOfChargeOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.StateOfChargeProfileValue} + */ + public static final class StateOfChargeProfileValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.StateOfChargeProfileValue) + StateOfChargeProfileValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + StateOfChargeProfileValue.class.getName()); + } + // Use StateOfChargeProfileValue.newBuilder() to construct. + private StateOfChargeProfileValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private StateOfChargeProfileValue() { + statesOfCharge_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.class, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder.class); + } + + public static final int STATES_OF_CHARGE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List statesOfCharge_; + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + @java.lang.Override + public java.util.List getStatesOfChargeList() { + return statesOfCharge_; + } + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + @java.lang.Override + public java.util.List + getStatesOfChargeOrBuilderList() { + return statesOfCharge_; + } + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + @java.lang.Override + public int getStatesOfChargeCount() { + return statesOfCharge_.size(); + } + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getStatesOfCharge(int index) { + return statesOfCharge_.get(index); + } + /** + *
+     * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+     * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+     * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder getStatesOfChargeOrBuilder( + int index) { + return statesOfCharge_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < statesOfCharge_.size(); i++) { + output.writeMessage(1, statesOfCharge_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < statesOfCharge_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, statesOfCharge_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue other = (com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) obj; + + if (!getStatesOfChargeList() + .equals(other.getStatesOfChargeList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getStatesOfChargeCount() > 0) { + hash = (37 * hash) + STATES_OF_CHARGE_FIELD_NUMBER; + hash = (53 * hash) + getStatesOfChargeList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.StateOfChargeProfileValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.StateOfChargeProfileValue) + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.class, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (statesOfChargeBuilder_ == null) { + statesOfCharge_ = java.util.Collections.emptyList(); + } else { + statesOfCharge_ = null; + statesOfChargeBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfChargeProfileValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue result = new com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue result) { + if (statesOfChargeBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + statesOfCharge_ = java.util.Collections.unmodifiableList(statesOfCharge_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.statesOfCharge_ = statesOfCharge_; + } else { + result.statesOfCharge_ = statesOfChargeBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue.getDefaultInstance()) return this; + if (statesOfChargeBuilder_ == null) { + if (!other.statesOfCharge_.isEmpty()) { + if (statesOfCharge_.isEmpty()) { + statesOfCharge_ = other.statesOfCharge_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureStatesOfChargeIsMutable(); + statesOfCharge_.addAll(other.statesOfCharge_); + } + onChanged(); + } + } else { + if (!other.statesOfCharge_.isEmpty()) { + if (statesOfChargeBuilder_.isEmpty()) { + statesOfChargeBuilder_.dispose(); + statesOfChargeBuilder_ = null; + statesOfCharge_ = other.statesOfCharge_; + bitField0_ = (bitField0_ & ~0x00000001); + statesOfChargeBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getStatesOfChargeFieldBuilder() : null; + } else { + statesOfChargeBuilder_.addAllMessages(other.statesOfCharge_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge m = + input.readMessage( + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.parser(), + extensionRegistry); + if (statesOfChargeBuilder_ == null) { + ensureStatesOfChargeIsMutable(); + statesOfCharge_.add(m); + } else { + statesOfChargeBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List statesOfCharge_ = + java.util.Collections.emptyList(); + private void ensureStatesOfChargeIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + statesOfCharge_ = new java.util.ArrayList(statesOfCharge_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder> statesOfChargeBuilder_; + + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public java.util.List getStatesOfChargeList() { + if (statesOfChargeBuilder_ == null) { + return java.util.Collections.unmodifiableList(statesOfCharge_); + } else { + return statesOfChargeBuilder_.getMessageList(); + } + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public int getStatesOfChargeCount() { + if (statesOfChargeBuilder_ == null) { + return statesOfCharge_.size(); + } else { + return statesOfChargeBuilder_.getCount(); + } + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getStatesOfCharge(int index) { + if (statesOfChargeBuilder_ == null) { + return statesOfCharge_.get(index); + } else { + return statesOfChargeBuilder_.getMessage(index); + } + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder setStatesOfCharge( + int index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge value) { + if (statesOfChargeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureStatesOfChargeIsMutable(); + statesOfCharge_.set(index, value); + onChanged(); + } else { + statesOfChargeBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder setStatesOfCharge( + int index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder builderForValue) { + if (statesOfChargeBuilder_ == null) { + ensureStatesOfChargeIsMutable(); + statesOfCharge_.set(index, builderForValue.build()); + onChanged(); + } else { + statesOfChargeBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder addStatesOfCharge(com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge value) { + if (statesOfChargeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureStatesOfChargeIsMutable(); + statesOfCharge_.add(value); + onChanged(); + } else { + statesOfChargeBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder addStatesOfCharge( + int index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge value) { + if (statesOfChargeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureStatesOfChargeIsMutable(); + statesOfCharge_.add(index, value); + onChanged(); + } else { + statesOfChargeBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder addStatesOfCharge( + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder builderForValue) { + if (statesOfChargeBuilder_ == null) { + ensureStatesOfChargeIsMutable(); + statesOfCharge_.add(builderForValue.build()); + onChanged(); + } else { + statesOfChargeBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder addStatesOfCharge( + int index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder builderForValue) { + if (statesOfChargeBuilder_ == null) { + ensureStatesOfChargeIsMutable(); + statesOfCharge_.add(index, builderForValue.build()); + onChanged(); + } else { + statesOfChargeBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder addAllStatesOfCharge( + java.lang.Iterable values) { + if (statesOfChargeBuilder_ == null) { + ensureStatesOfChargeIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, statesOfCharge_); + onChanged(); + } else { + statesOfChargeBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder clearStatesOfCharge() { + if (statesOfChargeBuilder_ == null) { + statesOfCharge_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + statesOfChargeBuilder_.clear(); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public Builder removeStatesOfCharge(int index) { + if (statesOfChargeBuilder_ == null) { + ensureStatesOfChargeIsMutable(); + statesOfCharge_.remove(index); + onChanged(); + } else { + statesOfChargeBuilder_.remove(index); + } + return this; + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder getStatesOfChargeBuilder( + int index) { + return getStatesOfChargeFieldBuilder().getBuilder(index); + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder getStatesOfChargeOrBuilder( + int index) { + if (statesOfChargeBuilder_ == null) { + return statesOfCharge_.get(index); } else { + return statesOfChargeBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public java.util.List + getStatesOfChargeOrBuilderList() { + if (statesOfChargeBuilder_ != null) { + return statesOfChargeBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(statesOfCharge_); + } + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder addStatesOfChargeBuilder() { + return getStatesOfChargeFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.getDefaultInstance()); + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder addStatesOfChargeBuilder( + int index) { + return getStatesOfChargeFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.getDefaultInstance()); + } + /** + *
+       * Array with tupels of state of charge and time offset related to the timestamp of the attribute,
+       * e.g. [{t, soc}, {t, soc}, .., {t, soc}] (every soc with value range 0..100, every timestamp in seconds, UTC)
+       * 
+ * + * repeated .proto.StateOfCharge states_of_charge = 1; + */ + public java.util.List + getStatesOfChargeBuilderList() { + return getStatesOfChargeFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder> + getStatesOfChargeFieldBuilder() { + if (statesOfChargeBuilder_ == null) { + statesOfChargeBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder, com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder>( + statesOfCharge_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + statesOfCharge_ = null; + } + return statesOfChargeBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.StateOfChargeProfileValue) + } + + // @@protoc_insertion_point(class_scope:proto.StateOfChargeProfileValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public StateOfChargeProfileValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeProfileValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface StateOfChargeOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.StateOfCharge) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * timestamp in seconds, UTC
+     * 
+ * + * int64 timestamp_in_s = 1; + * @return The timestampInS. + */ + long getTimestampInS(); + + /** + *
+     * soc with value range 0..100
+     * 
+ * + * int32 state_of_charge = 2; + * @return The stateOfCharge. + */ + int getStateOfCharge(); + } + /** + * Protobuf type {@code proto.StateOfCharge} + */ + public static final class StateOfCharge extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.StateOfCharge) + StateOfChargeOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + StateOfCharge.class.getName()); + } + // Use StateOfCharge.newBuilder() to construct. + private StateOfCharge(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private StateOfCharge() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.class, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder.class); + } + + public static final int TIMESTAMP_IN_S_FIELD_NUMBER = 1; + private long timestampInS_ = 0L; + /** + *
+     * timestamp in seconds, UTC
+     * 
+ * + * int64 timestamp_in_s = 1; + * @return The timestampInS. + */ + @java.lang.Override + public long getTimestampInS() { + return timestampInS_; + } + + public static final int STATE_OF_CHARGE_FIELD_NUMBER = 2; + private int stateOfCharge_ = 0; + /** + *
+     * soc with value range 0..100
+     * 
+ * + * int32 state_of_charge = 2; + * @return The stateOfCharge. + */ + @java.lang.Override + public int getStateOfCharge() { + return stateOfCharge_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (timestampInS_ != 0L) { + output.writeInt64(1, timestampInS_); + } + if (stateOfCharge_ != 0) { + output.writeInt32(2, stateOfCharge_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (timestampInS_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, timestampInS_); + } + if (stateOfCharge_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, stateOfCharge_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge other = (com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge) obj; + + if (getTimestampInS() + != other.getTimestampInS()) return false; + if (getStateOfCharge() + != other.getStateOfCharge()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TIMESTAMP_IN_S_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestampInS()); + hash = (37 * hash) + STATE_OF_CHARGE_FIELD_NUMBER; + hash = (53 * hash) + getStateOfCharge(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.StateOfCharge} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.StateOfCharge) + com.daimler.mbcarkit.proto.VehicleEvents.StateOfChargeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.class, com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + timestampInS_ = 0L; + stateOfCharge_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_StateOfCharge_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge build() { + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge result = new com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.timestampInS_ = timestampInS_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.stateOfCharge_ = stateOfCharge_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge.getDefaultInstance()) return this; + if (other.getTimestampInS() != 0L) { + setTimestampInS(other.getTimestampInS()); + } + if (other.getStateOfCharge() != 0) { + setStateOfCharge(other.getStateOfCharge()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + timestampInS_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 16: { + stateOfCharge_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long timestampInS_ ; + /** + *
+       * timestamp in seconds, UTC
+       * 
+ * + * int64 timestamp_in_s = 1; + * @return The timestampInS. + */ + @java.lang.Override + public long getTimestampInS() { + return timestampInS_; + } + /** + *
+       * timestamp in seconds, UTC
+       * 
+ * + * int64 timestamp_in_s = 1; + * @param value The timestampInS to set. + * @return This builder for chaining. + */ + public Builder setTimestampInS(long value) { + + timestampInS_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * timestamp in seconds, UTC
+       * 
+ * + * int64 timestamp_in_s = 1; + * @return This builder for chaining. + */ + public Builder clearTimestampInS() { + bitField0_ = (bitField0_ & ~0x00000001); + timestampInS_ = 0L; + onChanged(); + return this; + } + + private int stateOfCharge_ ; + /** + *
+       * soc with value range 0..100
+       * 
+ * + * int32 state_of_charge = 2; + * @return The stateOfCharge. + */ + @java.lang.Override + public int getStateOfCharge() { + return stateOfCharge_; + } + /** + *
+       * soc with value range 0..100
+       * 
+ * + * int32 state_of_charge = 2; + * @param value The stateOfCharge to set. + * @return This builder for chaining. + */ + public Builder setStateOfCharge(int value) { + + stateOfCharge_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * soc with value range 0..100
+       * 
+ * + * int32 state_of_charge = 2; + * @return This builder for chaining. + */ + public Builder clearStateOfCharge() { + bitField0_ = (bitField0_ & ~0x00000002); + stateOfCharge_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.StateOfCharge) + } + + // @@protoc_insertion_point(class_scope:proto.StateOfCharge) + private static final com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public StateOfCharge parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.StateOfCharge getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VEPUpdatesByVINOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VEPUpdatesByVIN) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 2; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + int getUpdatesCount(); + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + boolean containsUpdates( + java.lang.String key); + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getUpdates(); + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + java.util.Map + getUpdatesMap(); + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate defaultValue); + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrThrow( + java.lang.String key); + } + /** + *
+   * Sending direction: App <- BFF <- AppTwin
+   * 
+ * + * Protobuf type {@code proto.VEPUpdatesByVIN} + */ + public static final class VEPUpdatesByVIN extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VEPUpdatesByVIN) + VEPUpdatesByVINOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VEPUpdatesByVIN.class.getName()); + } + // Use VEPUpdatesByVIN.newBuilder() to construct. + private VEPUpdatesByVIN(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VEPUpdatesByVIN() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.class, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 2; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 2; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int UPDATES_FIELD_NUMBER = 1; + private static final class UpdatesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate> updates_; + private com.google.protobuf.MapField + internalGetUpdates() { + if (updates_ == null) { + return com.google.protobuf.MapField.emptyMapField( + UpdatesDefaultEntryHolder.defaultEntry); + } + return updates_; + } + public int getUpdatesCount() { + return internalGetUpdates().getMap().size(); + } + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + @java.lang.Override + public boolean containsUpdates( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetUpdates().getMap().containsKey(key); + } + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getUpdates() { + return getUpdatesMap(); + } + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + @java.lang.Override + public java.util.Map getUpdatesMap() { + return internalGetUpdates().getMap(); + } + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetUpdates().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetUpdates().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetUpdates(), + UpdatesDefaultEntryHolder.defaultEntry, + 1); + if (sequenceNumber_ != 0) { + output.writeInt32(2, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (java.util.Map.Entry entry + : internalGetUpdates().getMap().entrySet()) { + com.google.protobuf.MapEntry + updates__ = UpdatesDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, updates__); + } + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN other = (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!internalGetUpdates().equals( + other.internalGetUpdates())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + if (!internalGetUpdates().getMap().isEmpty()) { + hash = (37 * hash) + UPDATES_FIELD_NUMBER; + hash = (53 * hash) + internalGetUpdates().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sending direction: App <- BFF <- AppTwin
+     * 
+ * + * Protobuf type {@code proto.VEPUpdatesByVIN} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VEPUpdatesByVIN) + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetMutableUpdates(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.class, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + internalGetMutableUpdates().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VEPUpdatesByVIN_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN build() { + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN result = new com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.updates_ = internalGetUpdates().build(UpdatesDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + internalGetMutableUpdates().mergeFrom( + other.internalGetUpdates()); + bitField0_ |= 0x00000002; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.MapEntry + updates__ = input.readMessage( + UpdatesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableUpdates().ensureBuilderMap().put( + updates__.getKey(), updates__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 10 + case 16: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 16 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 2; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 2; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 2; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private static final class UpdatesConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate build(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) { return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) val; } + return ((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return UpdatesDefaultEntryHolder.defaultEntry; + } + }; + private static final UpdatesConverter updatesConverter = new UpdatesConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder> updates_; + private com.google.protobuf.MapFieldBuilder + internalGetUpdates() { + if (updates_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(updatesConverter); + } + return updates_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableUpdates() { + if (updates_ == null) { + updates_ = new com.google.protobuf.MapFieldBuilder<>(updatesConverter); + } + bitField0_ |= 0x00000002; + onChanged(); + return updates_; + } + public int getUpdatesCount() { + return internalGetUpdates().ensureBuilderMap().size(); + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + @java.lang.Override + public boolean containsUpdates( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetUpdates().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getUpdatesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getUpdates() { + return getUpdatesMap(); + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + @java.lang.Override + public java.util.Map getUpdatesMap() { + return internalGetUpdates().getImmutableMap(); + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableUpdates().ensureBuilderMap(); + return map.containsKey(key) ? updatesConverter.build(map.get(key)) : defaultValue; + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getUpdatesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableUpdates().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return updatesConverter.build(map.get(key)); + } + public Builder clearUpdates() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutableUpdates().clear(); + return this; + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + public Builder removeUpdates( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableUpdates().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableUpdates() { + bitField0_ |= 0x00000002; + return internalGetMutableUpdates().ensureMessageMap(); + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + public Builder putUpdates( + java.lang.String key, + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableUpdates().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + public Builder putAllUpdates( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableUpdates().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.VEPUpdate> updates = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder putUpdatesBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableUpdates().ensureBuilderMap(); + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) { + entry = ((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.VEPUpdatesByVIN) + } + + // @@protoc_insertion_point(class_scope:proto.VEPUpdatesByVIN) + private static final com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VEPUpdatesByVIN parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface DebugMessageOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.DebugMessage) + com.google.protobuf.MessageOrBuilder { + + /** + * string message = 1; + * @return The message. + */ + java.lang.String getMessage(); + /** + * string message = 1; + * @return The bytes for message. + */ + com.google.protobuf.ByteString + getMessageBytes(); + } + /** + *
+   * Sending direction: App <- BFF
+   * 
+ * + * Protobuf type {@code proto.DebugMessage} + */ + public static final class DebugMessage extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.DebugMessage) + DebugMessageOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + DebugMessage.class.getName()); + } + // Use DebugMessage.newBuilder() to construct. + private DebugMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private DebugMessage() { + message_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.class, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder.class); + } + + public static final int MESSAGE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object message_ = ""; + /** + * string message = 1; + * @return The message. + */ + @java.lang.Override + public java.lang.String getMessage() { + java.lang.Object ref = message_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + message_ = s; + return s; + } + } + /** + * string message = 1; + * @return The bytes for message. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, message_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, message_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage other = (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) obj; + + if (!getMessage() + .equals(other.getMessage())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + MESSAGE_FIELD_NUMBER; + hash = (53 * hash) + getMessage().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sending direction: App <- BFF
+     * 
+ * + * Protobuf type {@code proto.DebugMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.DebugMessage) + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.class, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + message_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_DebugMessage_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage build() { + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage result = new com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.message_ = message_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance()) return this; + if (!other.getMessage().isEmpty()) { + message_ = other.message_; + bitField0_ |= 0x00000001; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + message_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object message_ = ""; + /** + * string message = 1; + * @return The message. + */ + public java.lang.String getMessage() { + java.lang.Object ref = message_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + message_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string message = 1; + * @return The bytes for message. + */ + public com.google.protobuf.ByteString + getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string message = 1; + * @param value The message to set. + * @return This builder for chaining. + */ + public Builder setMessage( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + message_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string message = 1; + * @return This builder for chaining. + */ + public Builder clearMessage() { + message_ = getDefaultInstance().getMessage(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string message = 1; + * @param value The bytes for message to set. + * @return This builder for chaining. + */ + public Builder setMessageBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + message_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.DebugMessage) + } + + // @@protoc_insertion_point(class_scope:proto.DebugMessage) + private static final com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public DebugMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleStatusOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleStatus) + com.google.protobuf.MessageOrBuilder { + + /** + * string vin = 1; + * @return The vin. + */ + java.lang.String getVin(); + /** + * string vin = 1; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + int getAttributesCount(); + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + boolean containsAttributes( + java.lang.String key); + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getAttributes(); + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + java.util.Map + getAttributesMap(); + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue); + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow( + java.lang.String key); + } + /** + *
+   * Represents a status response from the
+   * VVA backend for a given VIN and CIAM ID.
+   * 
+ * + * Protobuf type {@code proto.VehicleStatus} + */ + public static final class VehicleStatus extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleStatus) + VehicleStatusOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleStatus.class.getName()); + } + // Use VehicleStatus.newBuilder() to construct. + private VehicleStatus(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleStatus() { + vin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.Builder.class); + } + + public static final int VIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + * string vin = 1; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + * string vin = 1; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 2; + private static final class AttributesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_AttributesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus> attributes_; + private com.google.protobuf.MapField + internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField( + AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + @java.lang.Override + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetAttributes().getMap().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return internalGetAttributes().getMap(); + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, vin_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetAttributes(), + AttributesDefaultEntryHolder.defaultEntry, + 2); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, vin_); + } + for (java.util.Map.Entry entry + : internalGetAttributes().getMap().entrySet()) { + com.google.protobuf.MapEntry + attributes__ = AttributesDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, attributes__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus other = (com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus) obj; + + if (!getVin() + .equals(other.getVin())) return false; + if (!internalGetAttributes().equals( + other.internalGetAttributes())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + if (!internalGetAttributes().getMap().isEmpty()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + internalGetAttributes().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Represents a status response from the
+     * VVA backend for a given VIN and CIAM ID.
+     * 
+ * + * Protobuf type {@code proto.VehicleStatus} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleStatus) + com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatusOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetMutableAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + vin_ = ""; + internalGetMutableAttributes().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleStatus_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus build() { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus result = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.attributes_ = internalGetAttributes().build(AttributesDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus.getDefaultInstance()) return this; + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000001; + onChanged(); + } + internalGetMutableAttributes().mergeFrom( + other.internalGetAttributes()); + bitField0_ |= 0x00000002; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + com.google.protobuf.MapEntry + attributes__ = input.readMessage( + AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableAttributes().ensureBuilderMap().put( + attributes__.getKey(), attributes__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object vin_ = ""; + /** + * string vin = 1; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string vin = 1; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string vin = 1; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string vin = 1; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string vin = 1; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private static final class AttributesConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus build(com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) { return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) val; } + return ((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return AttributesDefaultEntryHolder.defaultEntry; + } + }; + private static final AttributesConverter attributesConverter = new AttributesConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus, com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder> attributes_; + private com.google.protobuf.MapFieldBuilder + internalGetAttributes() { + if (attributes_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(attributesConverter); + } + return attributes_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableAttributes() { + if (attributes_ == null) { + attributes_ = new com.google.protobuf.MapFieldBuilder<>(attributesConverter); + } + bitField0_ |= 0x00000002; + onChanged(); + return attributes_; + } + public int getAttributesCount() { + return internalGetAttributes().ensureBuilderMap().size(); + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + @java.lang.Override + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetAttributes().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return internalGetAttributes().getImmutableMap(); + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableAttributes().ensureBuilderMap(); + return map.containsKey(key) ? attributesConverter.build(map.get(key)) : defaultValue; + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableAttributes().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return attributesConverter.build(map.get(key)); + } + public Builder clearAttributes() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutableAttributes().clear(); + return this; + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + public Builder removeAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableAttributes().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableAttributes() { + bitField0_ |= 0x00000002; + return internalGetMutableAttributes().ensureMessageMap(); + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + public Builder putAttributes( + java.lang.String key, + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableAttributes().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + public Builder putAllAttributes( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableAttributes().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + /** + * map<string, .proto.VehicleAttributeStatus> attributes = 2; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder putAttributesBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableAttributes().ensureBuilderMap(); + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatusOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) { + entry = ((com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleStatus) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleStatus) + private static final com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleStatus parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PushMessageOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.PushMessage) + com.google.protobuf.MessageOrBuilder { + + /** + * string tracking_id = 5; + * @return The trackingId. + */ + java.lang.String getTrackingId(); + /** + * string tracking_id = 5; + * @return The bytes for trackingId. + */ + com.google.protobuf.ByteString + getTrackingIdBytes(); + + /** + * .proto.VEPUpdate vepUpdate = 1; + * @return Whether the vepUpdate field is set. + */ + boolean hasVepUpdate(); + /** + * .proto.VEPUpdate vepUpdate = 1; + * @return The vepUpdate. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getVepUpdate(); + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder getVepUpdateOrBuilder(); + + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + * @return Whether the vepUpdates field is set. + */ + boolean hasVepUpdates(); + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + * @return The vepUpdates. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getVepUpdates(); + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder getVepUpdatesOrBuilder(); + + /** + * .proto.DebugMessage debugMessage = 3; + * @return Whether the debugMessage field is set. + */ + boolean hasDebugMessage(); + /** + * .proto.DebugMessage debugMessage = 3; + * @return The debugMessage. + */ + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDebugMessage(); + /** + * .proto.DebugMessage debugMessage = 3; + */ + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder getDebugMessageOrBuilder(); + + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + * @return Whether the serviceStatusUpdates field is set. + */ + boolean hasServiceStatusUpdates(); + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + * @return The serviceStatusUpdates. + */ + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getServiceStatusUpdates(); + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder getServiceStatusUpdatesOrBuilder(); + + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + * @return Whether the serviceStatusUpdate field is set. + */ + boolean hasServiceStatusUpdate(); + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + * @return The serviceStatusUpdate. + */ + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getServiceStatusUpdate(); + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder getServiceStatusUpdateOrBuilder(); + + /** + * .proto.UserDataUpdate user_data_update = 10; + * @return Whether the userDataUpdate field is set. + */ + boolean hasUserDataUpdate(); + /** + * .proto.UserDataUpdate user_data_update = 10; + * @return The userDataUpdate. + */ + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getUserDataUpdate(); + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder getUserDataUpdateOrBuilder(); + + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + * @return Whether the userVehicleAuthChangedUpdate field is set. + */ + boolean hasUserVehicleAuthChangedUpdate(); + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + * @return The userVehicleAuthChangedUpdate. + */ + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getUserVehicleAuthChangedUpdate(); + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder getUserVehicleAuthChangedUpdateOrBuilder(); + + /** + * .proto.UserPictureUpdate user_picture_update = 11; + * @return Whether the userPictureUpdate field is set. + */ + boolean hasUserPictureUpdate(); + /** + * .proto.UserPictureUpdate user_picture_update = 11; + * @return The userPictureUpdate. + */ + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getUserPictureUpdate(); + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder getUserPictureUpdateOrBuilder(); + + /** + * .proto.UserPINUpdate user_pin_update = 12; + * @return Whether the userPinUpdate field is set. + */ + boolean hasUserPinUpdate(); + /** + * .proto.UserPINUpdate user_pin_update = 12; + * @return The userPinUpdate. + */ + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getUserPinUpdate(); + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder getUserPinUpdateOrBuilder(); + + /** + * .proto.VehicleUpdated vehicle_updated = 15; + * @return Whether the vehicleUpdated field is set. + */ + boolean hasVehicleUpdated(); + /** + * .proto.VehicleUpdated vehicle_updated = 15; + * @return The vehicleUpdated. + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getVehicleUpdated(); + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder getVehicleUpdatedOrBuilder(); + + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + * @return Whether the preferredDealerChange field is set. + */ + boolean hasPreferredDealerChange(); + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + * @return The preferredDealerChange. + */ + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getPreferredDealerChange(); + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder getPreferredDealerChangeOrBuilder(); + + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + * @return Whether the apptwinCommandStatusUpdatesByVin field is set. + */ + boolean hasApptwinCommandStatusUpdatesByVin(); + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + * @return The apptwinCommandStatusUpdatesByVin. + */ + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getApptwinCommandStatusUpdatesByVin(); + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder getApptwinCommandStatusUpdatesByVinOrBuilder(); + + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + * @return Whether the apptwinPendingCommandRequest field is set. + */ + boolean hasApptwinPendingCommandRequest(); + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + * @return The apptwinPendingCommandRequest. + */ + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getApptwinPendingCommandRequest(); + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder getApptwinPendingCommandRequestOrBuilder(); + + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + * @return Whether the assignedVehicles field is set. + */ + boolean hasAssignedVehicles(); + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + * @return The assignedVehicles. + */ + com.daimler.mbcarkit.proto.Protos.AssignedVehicles getAssignedVehicles(); + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder getAssignedVehiclesOrBuilder(); + + com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.MsgCase getMsgCase(); + } + /** + *
+   * message that is pushed from the vep status service
+   * Sending direction: App <- BFF
+   * 
+ * + * Protobuf type {@code proto.PushMessage} + */ + public static final class PushMessage extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.PushMessage) + PushMessageOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + PushMessage.class.getName()); + } + // Use PushMessage.newBuilder() to construct. + private PushMessage(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private PushMessage() { + trackingId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.class, com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.Builder.class); + } + + private int msgCase_ = 0; + @SuppressWarnings("serial") + private java.lang.Object msg_; + public enum MsgCase + implements com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + VEPUPDATE(1), + VEPUPDATES(2), + DEBUGMESSAGE(3), + SERVICE_STATUS_UPDATES(9), + SERVICE_STATUS_UPDATE(13), + USER_DATA_UPDATE(10), + USER_VEHICLE_AUTH_CHANGED_UPDATE(14), + USER_PICTURE_UPDATE(11), + USER_PIN_UPDATE(12), + VEHICLE_UPDATED(15), + PREFERRED_DEALER_CHANGE(16), + APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN(17), + APPTWIN_PENDING_COMMAND_REQUEST(18), + ASSIGNED_VEHICLES(19), + MSG_NOT_SET(0); + private final int value; + private MsgCase(int value) { + this.value = value; + } + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static MsgCase valueOf(int value) { + return forNumber(value); + } + + public static MsgCase forNumber(int value) { + switch (value) { + case 1: return VEPUPDATE; + case 2: return VEPUPDATES; + case 3: return DEBUGMESSAGE; + case 9: return SERVICE_STATUS_UPDATES; + case 13: return SERVICE_STATUS_UPDATE; + case 10: return USER_DATA_UPDATE; + case 14: return USER_VEHICLE_AUTH_CHANGED_UPDATE; + case 11: return USER_PICTURE_UPDATE; + case 12: return USER_PIN_UPDATE; + case 15: return VEHICLE_UPDATED; + case 16: return PREFERRED_DEALER_CHANGE; + case 17: return APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN; + case 18: return APPTWIN_PENDING_COMMAND_REQUEST; + case 19: return ASSIGNED_VEHICLES; + case 0: return MSG_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public MsgCase + getMsgCase() { + return MsgCase.forNumber( + msgCase_); + } + + public static final int TRACKING_ID_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private volatile java.lang.Object trackingId_ = ""; + /** + * string tracking_id = 5; + * @return The trackingId. + */ + @java.lang.Override + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } + } + /** + * string tracking_id = 5; + * @return The bytes for trackingId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VEPUPDATE_FIELD_NUMBER = 1; + /** + * .proto.VEPUpdate vepUpdate = 1; + * @return Whether the vepUpdate field is set. + */ + @java.lang.Override + public boolean hasVepUpdate() { + return msgCase_ == 1; + } + /** + * .proto.VEPUpdate vepUpdate = 1; + * @return The vepUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getVepUpdate() { + if (msgCase_ == 1) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance(); + } + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder getVepUpdateOrBuilder() { + if (msgCase_ == 1) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance(); + } + + public static final int VEPUPDATES_FIELD_NUMBER = 2; + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + * @return Whether the vepUpdates field is set. + */ + @java.lang.Override + public boolean hasVepUpdates() { + return msgCase_ == 2; + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + * @return The vepUpdates. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getVepUpdates() { + if (msgCase_ == 2) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance(); + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder getVepUpdatesOrBuilder() { + if (msgCase_ == 2) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance(); + } + + public static final int DEBUGMESSAGE_FIELD_NUMBER = 3; + /** + * .proto.DebugMessage debugMessage = 3; + * @return Whether the debugMessage field is set. + */ + @java.lang.Override + public boolean hasDebugMessage() { + return msgCase_ == 3; + } + /** + * .proto.DebugMessage debugMessage = 3; + * @return The debugMessage. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDebugMessage() { + if (msgCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance(); + } + /** + * .proto.DebugMessage debugMessage = 3; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder getDebugMessageOrBuilder() { + if (msgCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance(); + } + + public static final int SERVICE_STATUS_UPDATES_FIELD_NUMBER = 9; + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + * @return Whether the serviceStatusUpdates field is set. + */ + @java.lang.Override + public boolean hasServiceStatusUpdates() { + return msgCase_ == 9; + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + * @return The serviceStatusUpdates. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getServiceStatusUpdates() { + if (msgCase_ == 9) { + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance(); + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder getServiceStatusUpdatesOrBuilder() { + if (msgCase_ == 9) { + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance(); + } + + public static final int SERVICE_STATUS_UPDATE_FIELD_NUMBER = 13; + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + * @return Whether the serviceStatusUpdate field is set. + */ + @java.lang.Override + public boolean hasServiceStatusUpdate() { + return msgCase_ == 13; + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + * @return The serviceStatusUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getServiceStatusUpdate() { + if (msgCase_ == 13) { + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance(); + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder getServiceStatusUpdateOrBuilder() { + if (msgCase_ == 13) { + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance(); + } + + public static final int USER_DATA_UPDATE_FIELD_NUMBER = 10; + /** + * .proto.UserDataUpdate user_data_update = 10; + * @return Whether the userDataUpdate field is set. + */ + @java.lang.Override + public boolean hasUserDataUpdate() { + return msgCase_ == 10; + } + /** + * .proto.UserDataUpdate user_data_update = 10; + * @return The userDataUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getUserDataUpdate() { + if (msgCase_ == 10) { + return (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance(); + } + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder getUserDataUpdateOrBuilder() { + if (msgCase_ == 10) { + return (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance(); + } + + public static final int USER_VEHICLE_AUTH_CHANGED_UPDATE_FIELD_NUMBER = 14; + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + * @return Whether the userVehicleAuthChangedUpdate field is set. + */ + @java.lang.Override + public boolean hasUserVehicleAuthChangedUpdate() { + return msgCase_ == 14; + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + * @return The userVehicleAuthChangedUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getUserVehicleAuthChangedUpdate() { + if (msgCase_ == 14) { + return (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance(); + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder getUserVehicleAuthChangedUpdateOrBuilder() { + if (msgCase_ == 14) { + return (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance(); + } + + public static final int USER_PICTURE_UPDATE_FIELD_NUMBER = 11; + /** + * .proto.UserPictureUpdate user_picture_update = 11; + * @return Whether the userPictureUpdate field is set. + */ + @java.lang.Override + public boolean hasUserPictureUpdate() { + return msgCase_ == 11; + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + * @return The userPictureUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getUserPictureUpdate() { + if (msgCase_ == 11) { + return (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance(); + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder getUserPictureUpdateOrBuilder() { + if (msgCase_ == 11) { + return (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance(); + } + + public static final int USER_PIN_UPDATE_FIELD_NUMBER = 12; + /** + * .proto.UserPINUpdate user_pin_update = 12; + * @return Whether the userPinUpdate field is set. + */ + @java.lang.Override + public boolean hasUserPinUpdate() { + return msgCase_ == 12; + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + * @return The userPinUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getUserPinUpdate() { + if (msgCase_ == 12) { + return (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance(); + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder getUserPinUpdateOrBuilder() { + if (msgCase_ == 12) { + return (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance(); + } + + public static final int VEHICLE_UPDATED_FIELD_NUMBER = 15; + /** + * .proto.VehicleUpdated vehicle_updated = 15; + * @return Whether the vehicleUpdated field is set. + */ + @java.lang.Override + public boolean hasVehicleUpdated() { + return msgCase_ == 15; + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + * @return The vehicleUpdated. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getVehicleUpdated() { + if (msgCase_ == 15) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance(); + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder getVehicleUpdatedOrBuilder() { + if (msgCase_ == 15) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance(); + } + + public static final int PREFERRED_DEALER_CHANGE_FIELD_NUMBER = 16; + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + * @return Whether the preferredDealerChange field is set. + */ + @java.lang.Override + public boolean hasPreferredDealerChange() { + return msgCase_ == 16; + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + * @return The preferredDealerChange. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getPreferredDealerChange() { + if (msgCase_ == 16) { + return (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance(); + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder getPreferredDealerChangeOrBuilder() { + if (msgCase_ == 16) { + return (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance(); + } + + public static final int APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN_FIELD_NUMBER = 17; + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + * @return Whether the apptwinCommandStatusUpdatesByVin field is set. + */ + @java.lang.Override + public boolean hasApptwinCommandStatusUpdatesByVin() { + return msgCase_ == 17; + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + * @return The apptwinCommandStatusUpdatesByVin. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getApptwinCommandStatusUpdatesByVin() { + if (msgCase_ == 17) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder getApptwinCommandStatusUpdatesByVinOrBuilder() { + if (msgCase_ == 17) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + + public static final int APPTWIN_PENDING_COMMAND_REQUEST_FIELD_NUMBER = 18; + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + * @return Whether the apptwinPendingCommandRequest field is set. + */ + @java.lang.Override + public boolean hasApptwinPendingCommandRequest() { + return msgCase_ == 18; + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + * @return The apptwinPendingCommandRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getApptwinPendingCommandRequest() { + if (msgCase_ == 18) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance(); + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder getApptwinPendingCommandRequestOrBuilder() { + if (msgCase_ == 18) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance(); + } + + public static final int ASSIGNED_VEHICLES_FIELD_NUMBER = 19; + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + * @return Whether the assignedVehicles field is set. + */ + @java.lang.Override + public boolean hasAssignedVehicles() { + return msgCase_ == 19; + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + * @return The assignedVehicles. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AssignedVehicles getAssignedVehicles() { + if (msgCase_ == 19) { + return (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_; + } + return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance(); + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder getAssignedVehiclesOrBuilder() { + if (msgCase_ == 19) { + return (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_; + } + return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance(); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (msgCase_ == 1) { + output.writeMessage(1, (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_); + } + if (msgCase_ == 2) { + output.writeMessage(2, (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_); + } + if (msgCase_ == 3) { + output.writeMessage(3, (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 5, trackingId_); + } + if (msgCase_ == 9) { + output.writeMessage(9, (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_); + } + if (msgCase_ == 10) { + output.writeMessage(10, (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_); + } + if (msgCase_ == 11) { + output.writeMessage(11, (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_); + } + if (msgCase_ == 12) { + output.writeMessage(12, (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_); + } + if (msgCase_ == 13) { + output.writeMessage(13, (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_); + } + if (msgCase_ == 14) { + output.writeMessage(14, (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_); + } + if (msgCase_ == 15) { + output.writeMessage(15, (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_); + } + if (msgCase_ == 16) { + output.writeMessage(16, (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_); + } + if (msgCase_ == 17) { + output.writeMessage(17, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_); + } + if (msgCase_ == 18) { + output.writeMessage(18, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_); + } + if (msgCase_ == 19) { + output.writeMessage(19, (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (msgCase_ == 1) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_); + } + if (msgCase_ == 2) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_); + } + if (msgCase_ == 3) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(5, trackingId_); + } + if (msgCase_ == 9) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(9, (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_); + } + if (msgCase_ == 10) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(10, (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_); + } + if (msgCase_ == 11) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(11, (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_); + } + if (msgCase_ == 12) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(12, (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_); + } + if (msgCase_ == 13) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(13, (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_); + } + if (msgCase_ == 14) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(14, (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_); + } + if (msgCase_ == 15) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(15, (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_); + } + if (msgCase_ == 16) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(16, (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_); + } + if (msgCase_ == 17) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(17, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_); + } + if (msgCase_ == 18) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(18, (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_); + } + if (msgCase_ == 19) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(19, (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.PushMessage)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.PushMessage other = (com.daimler.mbcarkit.proto.VehicleEvents.PushMessage) obj; + + if (!getTrackingId() + .equals(other.getTrackingId())) return false; + if (!getMsgCase().equals(other.getMsgCase())) return false; + switch (msgCase_) { + case 1: + if (!getVepUpdate() + .equals(other.getVepUpdate())) return false; + break; + case 2: + if (!getVepUpdates() + .equals(other.getVepUpdates())) return false; + break; + case 3: + if (!getDebugMessage() + .equals(other.getDebugMessage())) return false; + break; + case 9: + if (!getServiceStatusUpdates() + .equals(other.getServiceStatusUpdates())) return false; + break; + case 13: + if (!getServiceStatusUpdate() + .equals(other.getServiceStatusUpdate())) return false; + break; + case 10: + if (!getUserDataUpdate() + .equals(other.getUserDataUpdate())) return false; + break; + case 14: + if (!getUserVehicleAuthChangedUpdate() + .equals(other.getUserVehicleAuthChangedUpdate())) return false; + break; + case 11: + if (!getUserPictureUpdate() + .equals(other.getUserPictureUpdate())) return false; + break; + case 12: + if (!getUserPinUpdate() + .equals(other.getUserPinUpdate())) return false; + break; + case 15: + if (!getVehicleUpdated() + .equals(other.getVehicleUpdated())) return false; + break; + case 16: + if (!getPreferredDealerChange() + .equals(other.getPreferredDealerChange())) return false; + break; + case 17: + if (!getApptwinCommandStatusUpdatesByVin() + .equals(other.getApptwinCommandStatusUpdatesByVin())) return false; + break; + case 18: + if (!getApptwinPendingCommandRequest() + .equals(other.getApptwinPendingCommandRequest())) return false; + break; + case 19: + if (!getAssignedVehicles() + .equals(other.getAssignedVehicles())) return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TRACKING_ID_FIELD_NUMBER; + hash = (53 * hash) + getTrackingId().hashCode(); + switch (msgCase_) { + case 1: + hash = (37 * hash) + VEPUPDATE_FIELD_NUMBER; + hash = (53 * hash) + getVepUpdate().hashCode(); + break; + case 2: + hash = (37 * hash) + VEPUPDATES_FIELD_NUMBER; + hash = (53 * hash) + getVepUpdates().hashCode(); + break; + case 3: + hash = (37 * hash) + DEBUGMESSAGE_FIELD_NUMBER; + hash = (53 * hash) + getDebugMessage().hashCode(); + break; + case 9: + hash = (37 * hash) + SERVICE_STATUS_UPDATES_FIELD_NUMBER; + hash = (53 * hash) + getServiceStatusUpdates().hashCode(); + break; + case 13: + hash = (37 * hash) + SERVICE_STATUS_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getServiceStatusUpdate().hashCode(); + break; + case 10: + hash = (37 * hash) + USER_DATA_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getUserDataUpdate().hashCode(); + break; + case 14: + hash = (37 * hash) + USER_VEHICLE_AUTH_CHANGED_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getUserVehicleAuthChangedUpdate().hashCode(); + break; + case 11: + hash = (37 * hash) + USER_PICTURE_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getUserPictureUpdate().hashCode(); + break; + case 12: + hash = (37 * hash) + USER_PIN_UPDATE_FIELD_NUMBER; + hash = (53 * hash) + getUserPinUpdate().hashCode(); + break; + case 15: + hash = (37 * hash) + VEHICLE_UPDATED_FIELD_NUMBER; + hash = (53 * hash) + getVehicleUpdated().hashCode(); + break; + case 16: + hash = (37 * hash) + PREFERRED_DEALER_CHANGE_FIELD_NUMBER; + hash = (53 * hash) + getPreferredDealerChange().hashCode(); + break; + case 17: + hash = (37 * hash) + APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN_FIELD_NUMBER; + hash = (53 * hash) + getApptwinCommandStatusUpdatesByVin().hashCode(); + break; + case 18: + hash = (37 * hash) + APPTWIN_PENDING_COMMAND_REQUEST_FIELD_NUMBER; + hash = (53 * hash) + getApptwinPendingCommandRequest().hashCode(); + break; + case 19: + hash = (37 * hash) + ASSIGNED_VEHICLES_FIELD_NUMBER; + hash = (53 * hash) + getAssignedVehicles().hashCode(); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.PushMessage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * message that is pushed from the vep status service
+     * Sending direction: App <- BFF
+     * 
+ * + * Protobuf type {@code proto.PushMessage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.PushMessage) + com.daimler.mbcarkit.proto.VehicleEvents.PushMessageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.class, com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + trackingId_ = ""; + if (vepUpdateBuilder_ != null) { + vepUpdateBuilder_.clear(); + } + if (vepUpdatesBuilder_ != null) { + vepUpdatesBuilder_.clear(); + } + if (debugMessageBuilder_ != null) { + debugMessageBuilder_.clear(); + } + if (serviceStatusUpdatesBuilder_ != null) { + serviceStatusUpdatesBuilder_.clear(); + } + if (serviceStatusUpdateBuilder_ != null) { + serviceStatusUpdateBuilder_.clear(); + } + if (userDataUpdateBuilder_ != null) { + userDataUpdateBuilder_.clear(); + } + if (userVehicleAuthChangedUpdateBuilder_ != null) { + userVehicleAuthChangedUpdateBuilder_.clear(); + } + if (userPictureUpdateBuilder_ != null) { + userPictureUpdateBuilder_.clear(); + } + if (userPinUpdateBuilder_ != null) { + userPinUpdateBuilder_.clear(); + } + if (vehicleUpdatedBuilder_ != null) { + vehicleUpdatedBuilder_.clear(); + } + if (preferredDealerChangeBuilder_ != null) { + preferredDealerChangeBuilder_.clear(); + } + if (apptwinCommandStatusUpdatesByVinBuilder_ != null) { + apptwinCommandStatusUpdatesByVinBuilder_.clear(); + } + if (apptwinPendingCommandRequestBuilder_ != null) { + apptwinPendingCommandRequestBuilder_.clear(); + } + if (assignedVehiclesBuilder_ != null) { + assignedVehiclesBuilder_.clear(); + } + msgCase_ = 0; + msg_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PushMessage_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PushMessage getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PushMessage build() { + com.daimler.mbcarkit.proto.VehicleEvents.PushMessage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PushMessage buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.PushMessage result = new com.daimler.mbcarkit.proto.VehicleEvents.PushMessage(this); + if (bitField0_ != 0) { buildPartial0(result); } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.PushMessage result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.trackingId_ = trackingId_; + } + } + + private void buildPartialOneofs(com.daimler.mbcarkit.proto.VehicleEvents.PushMessage result) { + result.msgCase_ = msgCase_; + result.msg_ = this.msg_; + if (msgCase_ == 1 && + vepUpdateBuilder_ != null) { + result.msg_ = vepUpdateBuilder_.build(); + } + if (msgCase_ == 2 && + vepUpdatesBuilder_ != null) { + result.msg_ = vepUpdatesBuilder_.build(); + } + if (msgCase_ == 3 && + debugMessageBuilder_ != null) { + result.msg_ = debugMessageBuilder_.build(); + } + if (msgCase_ == 9 && + serviceStatusUpdatesBuilder_ != null) { + result.msg_ = serviceStatusUpdatesBuilder_.build(); + } + if (msgCase_ == 13 && + serviceStatusUpdateBuilder_ != null) { + result.msg_ = serviceStatusUpdateBuilder_.build(); + } + if (msgCase_ == 10 && + userDataUpdateBuilder_ != null) { + result.msg_ = userDataUpdateBuilder_.build(); + } + if (msgCase_ == 14 && + userVehicleAuthChangedUpdateBuilder_ != null) { + result.msg_ = userVehicleAuthChangedUpdateBuilder_.build(); + } + if (msgCase_ == 11 && + userPictureUpdateBuilder_ != null) { + result.msg_ = userPictureUpdateBuilder_.build(); + } + if (msgCase_ == 12 && + userPinUpdateBuilder_ != null) { + result.msg_ = userPinUpdateBuilder_.build(); + } + if (msgCase_ == 15 && + vehicleUpdatedBuilder_ != null) { + result.msg_ = vehicleUpdatedBuilder_.build(); + } + if (msgCase_ == 16 && + preferredDealerChangeBuilder_ != null) { + result.msg_ = preferredDealerChangeBuilder_.build(); + } + if (msgCase_ == 17 && + apptwinCommandStatusUpdatesByVinBuilder_ != null) { + result.msg_ = apptwinCommandStatusUpdatesByVinBuilder_.build(); + } + if (msgCase_ == 18 && + apptwinPendingCommandRequestBuilder_ != null) { + result.msg_ = apptwinPendingCommandRequestBuilder_.build(); + } + if (msgCase_ == 19 && + assignedVehiclesBuilder_ != null) { + result.msg_ = assignedVehiclesBuilder_.build(); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.PushMessage) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.PushMessage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.PushMessage other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.PushMessage.getDefaultInstance()) return this; + if (!other.getTrackingId().isEmpty()) { + trackingId_ = other.trackingId_; + bitField0_ |= 0x00000001; + onChanged(); + } + switch (other.getMsgCase()) { + case VEPUPDATE: { + mergeVepUpdate(other.getVepUpdate()); + break; + } + case VEPUPDATES: { + mergeVepUpdates(other.getVepUpdates()); + break; + } + case DEBUGMESSAGE: { + mergeDebugMessage(other.getDebugMessage()); + break; + } + case SERVICE_STATUS_UPDATES: { + mergeServiceStatusUpdates(other.getServiceStatusUpdates()); + break; + } + case SERVICE_STATUS_UPDATE: { + mergeServiceStatusUpdate(other.getServiceStatusUpdate()); + break; + } + case USER_DATA_UPDATE: { + mergeUserDataUpdate(other.getUserDataUpdate()); + break; + } + case USER_VEHICLE_AUTH_CHANGED_UPDATE: { + mergeUserVehicleAuthChangedUpdate(other.getUserVehicleAuthChangedUpdate()); + break; + } + case USER_PICTURE_UPDATE: { + mergeUserPictureUpdate(other.getUserPictureUpdate()); + break; + } + case USER_PIN_UPDATE: { + mergeUserPinUpdate(other.getUserPinUpdate()); + break; + } + case VEHICLE_UPDATED: { + mergeVehicleUpdated(other.getVehicleUpdated()); + break; + } + case PREFERRED_DEALER_CHANGE: { + mergePreferredDealerChange(other.getPreferredDealerChange()); + break; + } + case APPTWIN_COMMAND_STATUS_UPDATES_BY_VIN: { + mergeApptwinCommandStatusUpdatesByVin(other.getApptwinCommandStatusUpdatesByVin()); + break; + } + case APPTWIN_PENDING_COMMAND_REQUEST: { + mergeApptwinPendingCommandRequest(other.getApptwinPendingCommandRequest()); + break; + } + case ASSIGNED_VEHICLES: { + mergeAssignedVehicles(other.getAssignedVehicles()); + break; + } + case MSG_NOT_SET: { + break; + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getVepUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 1; + break; + } // case 10 + case 18: { + input.readMessage( + getVepUpdatesFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 2; + break; + } // case 18 + case 26: { + input.readMessage( + getDebugMessageFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 3; + break; + } // case 26 + case 42: { + trackingId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 42 + case 74: { + input.readMessage( + getServiceStatusUpdatesFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 9; + break; + } // case 74 + case 82: { + input.readMessage( + getUserDataUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 10; + break; + } // case 82 + case 90: { + input.readMessage( + getUserPictureUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 11; + break; + } // case 90 + case 98: { + input.readMessage( + getUserPinUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 12; + break; + } // case 98 + case 106: { + input.readMessage( + getServiceStatusUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 13; + break; + } // case 106 + case 114: { + input.readMessage( + getUserVehicleAuthChangedUpdateFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 14; + break; + } // case 114 + case 122: { + input.readMessage( + getVehicleUpdatedFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 15; + break; + } // case 122 + case 130: { + input.readMessage( + getPreferredDealerChangeFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 16; + break; + } // case 130 + case 138: { + input.readMessage( + getApptwinCommandStatusUpdatesByVinFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 17; + break; + } // case 138 + case 146: { + input.readMessage( + getApptwinPendingCommandRequestFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 18; + break; + } // case 146 + case 154: { + input.readMessage( + getAssignedVehiclesFieldBuilder().getBuilder(), + extensionRegistry); + msgCase_ = 19; + break; + } // case 154 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int msgCase_ = 0; + private java.lang.Object msg_; + public MsgCase + getMsgCase() { + return MsgCase.forNumber( + msgCase_); + } + + public Builder clearMsg() { + msgCase_ = 0; + msg_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + private java.lang.Object trackingId_ = ""; + /** + * string tracking_id = 5; + * @return The trackingId. + */ + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string tracking_id = 5; + * @return The bytes for trackingId. + */ + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string tracking_id = 5; + * @param value The trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + trackingId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string tracking_id = 5; + * @return This builder for chaining. + */ + public Builder clearTrackingId() { + trackingId_ = getDefaultInstance().getTrackingId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string tracking_id = 5; + * @param value The bytes for trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + trackingId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder> vepUpdateBuilder_; + /** + * .proto.VEPUpdate vepUpdate = 1; + * @return Whether the vepUpdate field is set. + */ + @java.lang.Override + public boolean hasVepUpdate() { + return msgCase_ == 1; + } + /** + * .proto.VEPUpdate vepUpdate = 1; + * @return The vepUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate getVepUpdate() { + if (vepUpdateBuilder_ == null) { + if (msgCase_ == 1) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 1) { + return vepUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance(); + } + } + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + public Builder setVepUpdate(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate value) { + if (vepUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + vepUpdateBuilder_.setMessage(value); + } + msgCase_ = 1; + return this; + } + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + public Builder setVepUpdate( + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder builderForValue) { + if (vepUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + vepUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 1; + return this; + } + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + public Builder mergeVepUpdate(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate value) { + if (vepUpdateBuilder_ == null) { + if (msgCase_ == 1 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 1) { + vepUpdateBuilder_.mergeFrom(value); + } else { + vepUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 1; + return this; + } + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + public Builder clearVepUpdate() { + if (vepUpdateBuilder_ == null) { + if (msgCase_ == 1) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 1) { + msgCase_ = 0; + msg_ = null; + } + vepUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder getVepUpdateBuilder() { + return getVepUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder getVepUpdateOrBuilder() { + if ((msgCase_ == 1) && (vepUpdateBuilder_ != null)) { + return vepUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 1) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance(); + } + } + /** + * .proto.VEPUpdate vepUpdate = 1; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder> + getVepUpdateFieldBuilder() { + if (vepUpdateBuilder_ == null) { + if (!(msgCase_ == 1)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.getDefaultInstance(); + } + vepUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 1; + onChanged(); + return vepUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder> vepUpdatesBuilder_; + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + * @return Whether the vepUpdates field is set. + */ + @java.lang.Override + public boolean hasVepUpdates() { + return msgCase_ == 2; + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + * @return The vepUpdates. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN getVepUpdates() { + if (vepUpdatesBuilder_ == null) { + if (msgCase_ == 2) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance(); + } else { + if (msgCase_ == 2) { + return vepUpdatesBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + public Builder setVepUpdates(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN value) { + if (vepUpdatesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + vepUpdatesBuilder_.setMessage(value); + } + msgCase_ = 2; + return this; + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + public Builder setVepUpdates( + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder builderForValue) { + if (vepUpdatesBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + vepUpdatesBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 2; + return this; + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + public Builder mergeVepUpdates(com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN value) { + if (vepUpdatesBuilder_ == null) { + if (msgCase_ == 2 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 2) { + vepUpdatesBuilder_.mergeFrom(value); + } else { + vepUpdatesBuilder_.setMessage(value); + } + } + msgCase_ = 2; + return this; + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + public Builder clearVepUpdates() { + if (vepUpdatesBuilder_ == null) { + if (msgCase_ == 2) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 2) { + msgCase_ = 0; + msg_ = null; + } + vepUpdatesBuilder_.clear(); + } + return this; + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder getVepUpdatesBuilder() { + return getVepUpdatesFieldBuilder().getBuilder(); + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder getVepUpdatesOrBuilder() { + if ((msgCase_ == 2) && (vepUpdatesBuilder_ != null)) { + return vepUpdatesBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 2) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.VEPUpdatesByVIN vepUpdates = 2; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder> + getVepUpdatesFieldBuilder() { + if (vepUpdatesBuilder_ == null) { + if (!(msgCase_ == 2)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.getDefaultInstance(); + } + vepUpdatesBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVINOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 2; + onChanged(); + return vepUpdatesBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder> debugMessageBuilder_; + /** + * .proto.DebugMessage debugMessage = 3; + * @return Whether the debugMessage field is set. + */ + @java.lang.Override + public boolean hasDebugMessage() { + return msgCase_ == 3; + } + /** + * .proto.DebugMessage debugMessage = 3; + * @return The debugMessage. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage getDebugMessage() { + if (debugMessageBuilder_ == null) { + if (msgCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance(); + } else { + if (msgCase_ == 3) { + return debugMessageBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance(); + } + } + /** + * .proto.DebugMessage debugMessage = 3; + */ + public Builder setDebugMessage(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage value) { + if (debugMessageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + debugMessageBuilder_.setMessage(value); + } + msgCase_ = 3; + return this; + } + /** + * .proto.DebugMessage debugMessage = 3; + */ + public Builder setDebugMessage( + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder builderForValue) { + if (debugMessageBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + debugMessageBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 3; + return this; + } + /** + * .proto.DebugMessage debugMessage = 3; + */ + public Builder mergeDebugMessage(com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage value) { + if (debugMessageBuilder_ == null) { + if (msgCase_ == 3 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 3) { + debugMessageBuilder_.mergeFrom(value); + } else { + debugMessageBuilder_.setMessage(value); + } + } + msgCase_ = 3; + return this; + } + /** + * .proto.DebugMessage debugMessage = 3; + */ + public Builder clearDebugMessage() { + if (debugMessageBuilder_ == null) { + if (msgCase_ == 3) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 3) { + msgCase_ = 0; + msg_ = null; + } + debugMessageBuilder_.clear(); + } + return this; + } + /** + * .proto.DebugMessage debugMessage = 3; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder getDebugMessageBuilder() { + return getDebugMessageFieldBuilder().getBuilder(); + } + /** + * .proto.DebugMessage debugMessage = 3; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder getDebugMessageOrBuilder() { + if ((msgCase_ == 3) && (debugMessageBuilder_ != null)) { + return debugMessageBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 3) { + return (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance(); + } + } + /** + * .proto.DebugMessage debugMessage = 3; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder> + getDebugMessageFieldBuilder() { + if (debugMessageBuilder_ == null) { + if (!(msgCase_ == 3)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.getDefaultInstance(); + } + debugMessageBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage.Builder, com.daimler.mbcarkit.proto.VehicleEvents.DebugMessageOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.DebugMessage) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 3; + onChanged(); + return debugMessageBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder> serviceStatusUpdatesBuilder_; + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + * @return Whether the serviceStatusUpdates field is set. + */ + @java.lang.Override + public boolean hasServiceStatusUpdates() { + return msgCase_ == 9; + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + * @return The serviceStatusUpdates. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN getServiceStatusUpdates() { + if (serviceStatusUpdatesBuilder_ == null) { + if (msgCase_ == 9) { + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance(); + } else { + if (msgCase_ == 9) { + return serviceStatusUpdatesBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + public Builder setServiceStatusUpdates(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN value) { + if (serviceStatusUpdatesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + serviceStatusUpdatesBuilder_.setMessage(value); + } + msgCase_ = 9; + return this; + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + public Builder setServiceStatusUpdates( + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder builderForValue) { + if (serviceStatusUpdatesBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + serviceStatusUpdatesBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 9; + return this; + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + public Builder mergeServiceStatusUpdates(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN value) { + if (serviceStatusUpdatesBuilder_ == null) { + if (msgCase_ == 9 && + msg_ != com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 9) { + serviceStatusUpdatesBuilder_.mergeFrom(value); + } else { + serviceStatusUpdatesBuilder_.setMessage(value); + } + } + msgCase_ = 9; + return this; + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + public Builder clearServiceStatusUpdates() { + if (serviceStatusUpdatesBuilder_ == null) { + if (msgCase_ == 9) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 9) { + msgCase_ = 0; + msg_ = null; + } + serviceStatusUpdatesBuilder_.clear(); + } + return this; + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder getServiceStatusUpdatesBuilder() { + return getServiceStatusUpdatesFieldBuilder().getBuilder(); + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder getServiceStatusUpdatesOrBuilder() { + if ((msgCase_ == 9) && (serviceStatusUpdatesBuilder_ != null)) { + return serviceStatusUpdatesBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 9) { + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.ServiceStatusUpdatesByVIN service_status_updates = 9; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder> + getServiceStatusUpdatesFieldBuilder() { + if (serviceStatusUpdatesBuilder_ == null) { + if (!(msgCase_ == 9)) { + msg_ = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.getDefaultInstance(); + } + serviceStatusUpdatesBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVINOrBuilder>( + (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdatesByVIN) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 9; + onChanged(); + return serviceStatusUpdatesBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder> serviceStatusUpdateBuilder_; + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + * @return Whether the serviceStatusUpdate field is set. + */ + @java.lang.Override + public boolean hasServiceStatusUpdate() { + return msgCase_ == 13; + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + * @return The serviceStatusUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate getServiceStatusUpdate() { + if (serviceStatusUpdateBuilder_ == null) { + if (msgCase_ == 13) { + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 13) { + return serviceStatusUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance(); + } + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + public Builder setServiceStatusUpdate(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate value) { + if (serviceStatusUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + serviceStatusUpdateBuilder_.setMessage(value); + } + msgCase_ = 13; + return this; + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + public Builder setServiceStatusUpdate( + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder builderForValue) { + if (serviceStatusUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + serviceStatusUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 13; + return this; + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + public Builder mergeServiceStatusUpdate(com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate value) { + if (serviceStatusUpdateBuilder_ == null) { + if (msgCase_ == 13 && + msg_ != com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.newBuilder((com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 13) { + serviceStatusUpdateBuilder_.mergeFrom(value); + } else { + serviceStatusUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 13; + return this; + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + public Builder clearServiceStatusUpdate() { + if (serviceStatusUpdateBuilder_ == null) { + if (msgCase_ == 13) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 13) { + msgCase_ = 0; + msg_ = null; + } + serviceStatusUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder getServiceStatusUpdateBuilder() { + return getServiceStatusUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder getServiceStatusUpdateOrBuilder() { + if ((msgCase_ == 13) && (serviceStatusUpdateBuilder_ != null)) { + return serviceStatusUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 13) { + return (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_; + } + return com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance(); + } + } + /** + * .proto.ServiceStatusUpdate service_status_update = 13; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder> + getServiceStatusUpdateFieldBuilder() { + if (serviceStatusUpdateBuilder_ == null) { + if (!(msgCase_ == 13)) { + msg_ = com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.getDefaultInstance(); + } + serviceStatusUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate.Builder, com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.ServiceActivation.ServiceStatusUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 13; + onChanged(); + return serviceStatusUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder> userDataUpdateBuilder_; + /** + * .proto.UserDataUpdate user_data_update = 10; + * @return Whether the userDataUpdate field is set. + */ + @java.lang.Override + public boolean hasUserDataUpdate() { + return msgCase_ == 10; + } + /** + * .proto.UserDataUpdate user_data_update = 10; + * @return The userDataUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate getUserDataUpdate() { + if (userDataUpdateBuilder_ == null) { + if (msgCase_ == 10) { + return (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 10) { + return userDataUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance(); + } + } + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + public Builder setUserDataUpdate(com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate value) { + if (userDataUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + userDataUpdateBuilder_.setMessage(value); + } + msgCase_ = 10; + return this; + } + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + public Builder setUserDataUpdate( + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder builderForValue) { + if (userDataUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + userDataUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 10; + return this; + } + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + public Builder mergeUserDataUpdate(com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate value) { + if (userDataUpdateBuilder_ == null) { + if (msgCase_ == 10 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 10) { + userDataUpdateBuilder_.mergeFrom(value); + } else { + userDataUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 10; + return this; + } + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + public Builder clearUserDataUpdate() { + if (userDataUpdateBuilder_ == null) { + if (msgCase_ == 10) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 10) { + msgCase_ = 0; + msg_ = null; + } + userDataUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder getUserDataUpdateBuilder() { + return getUserDataUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder getUserDataUpdateOrBuilder() { + if ((msgCase_ == 10) && (userDataUpdateBuilder_ != null)) { + return userDataUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 10) { + return (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance(); + } + } + /** + * .proto.UserDataUpdate user_data_update = 10; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder> + getUserDataUpdateFieldBuilder() { + if (userDataUpdateBuilder_ == null) { + if (!(msgCase_ == 10)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.getDefaultInstance(); + } + userDataUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserDataUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.UserDataUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 10; + onChanged(); + return userDataUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder> userVehicleAuthChangedUpdateBuilder_; + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + * @return Whether the userVehicleAuthChangedUpdate field is set. + */ + @java.lang.Override + public boolean hasUserVehicleAuthChangedUpdate() { + return msgCase_ == 14; + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + * @return The userVehicleAuthChangedUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate getUserVehicleAuthChangedUpdate() { + if (userVehicleAuthChangedUpdateBuilder_ == null) { + if (msgCase_ == 14) { + return (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 14) { + return userVehicleAuthChangedUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance(); + } + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + public Builder setUserVehicleAuthChangedUpdate(com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate value) { + if (userVehicleAuthChangedUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + userVehicleAuthChangedUpdateBuilder_.setMessage(value); + } + msgCase_ = 14; + return this; + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + public Builder setUserVehicleAuthChangedUpdate( + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder builderForValue) { + if (userVehicleAuthChangedUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + userVehicleAuthChangedUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 14; + return this; + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + public Builder mergeUserVehicleAuthChangedUpdate(com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate value) { + if (userVehicleAuthChangedUpdateBuilder_ == null) { + if (msgCase_ == 14 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 14) { + userVehicleAuthChangedUpdateBuilder_.mergeFrom(value); + } else { + userVehicleAuthChangedUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 14; + return this; + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + public Builder clearUserVehicleAuthChangedUpdate() { + if (userVehicleAuthChangedUpdateBuilder_ == null) { + if (msgCase_ == 14) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 14) { + msgCase_ = 0; + msg_ = null; + } + userVehicleAuthChangedUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder getUserVehicleAuthChangedUpdateBuilder() { + return getUserVehicleAuthChangedUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder getUserVehicleAuthChangedUpdateOrBuilder() { + if ((msgCase_ == 14) && (userVehicleAuthChangedUpdateBuilder_ != null)) { + return userVehicleAuthChangedUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 14) { + return (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance(); + } + } + /** + * .proto.UserVehicleAuthChangedUpdate user_vehicle_auth_changed_update = 14; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder> + getUserVehicleAuthChangedUpdateFieldBuilder() { + if (userVehicleAuthChangedUpdateBuilder_ == null) { + if (!(msgCase_ == 14)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.getDefaultInstance(); + } + userVehicleAuthChangedUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.UserVehicleAuthChangedUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 14; + onChanged(); + return userVehicleAuthChangedUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder> userPictureUpdateBuilder_; + /** + * .proto.UserPictureUpdate user_picture_update = 11; + * @return Whether the userPictureUpdate field is set. + */ + @java.lang.Override + public boolean hasUserPictureUpdate() { + return msgCase_ == 11; + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + * @return The userPictureUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate getUserPictureUpdate() { + if (userPictureUpdateBuilder_ == null) { + if (msgCase_ == 11) { + return (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 11) { + return userPictureUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance(); + } + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + public Builder setUserPictureUpdate(com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate value) { + if (userPictureUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + userPictureUpdateBuilder_.setMessage(value); + } + msgCase_ = 11; + return this; + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + public Builder setUserPictureUpdate( + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder builderForValue) { + if (userPictureUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + userPictureUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 11; + return this; + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + public Builder mergeUserPictureUpdate(com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate value) { + if (userPictureUpdateBuilder_ == null) { + if (msgCase_ == 11 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 11) { + userPictureUpdateBuilder_.mergeFrom(value); + } else { + userPictureUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 11; + return this; + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + public Builder clearUserPictureUpdate() { + if (userPictureUpdateBuilder_ == null) { + if (msgCase_ == 11) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 11) { + msgCase_ = 0; + msg_ = null; + } + userPictureUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder getUserPictureUpdateBuilder() { + return getUserPictureUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder getUserPictureUpdateOrBuilder() { + if ((msgCase_ == 11) && (userPictureUpdateBuilder_ != null)) { + return userPictureUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 11) { + return (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance(); + } + } + /** + * .proto.UserPictureUpdate user_picture_update = 11; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder> + getUserPictureUpdateFieldBuilder() { + if (userPictureUpdateBuilder_ == null) { + if (!(msgCase_ == 11)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.getDefaultInstance(); + } + userPictureUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.UserPictureUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 11; + onChanged(); + return userPictureUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder> userPinUpdateBuilder_; + /** + * .proto.UserPINUpdate user_pin_update = 12; + * @return Whether the userPinUpdate field is set. + */ + @java.lang.Override + public boolean hasUserPinUpdate() { + return msgCase_ == 12; + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + * @return The userPinUpdate. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate getUserPinUpdate() { + if (userPinUpdateBuilder_ == null) { + if (msgCase_ == 12) { + return (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance(); + } else { + if (msgCase_ == 12) { + return userPinUpdateBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance(); + } + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + public Builder setUserPinUpdate(com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate value) { + if (userPinUpdateBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + userPinUpdateBuilder_.setMessage(value); + } + msgCase_ = 12; + return this; + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + public Builder setUserPinUpdate( + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder builderForValue) { + if (userPinUpdateBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + userPinUpdateBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 12; + return this; + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + public Builder mergeUserPinUpdate(com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate value) { + if (userPinUpdateBuilder_ == null) { + if (msgCase_ == 12 && + msg_ != com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.newBuilder((com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 12) { + userPinUpdateBuilder_.mergeFrom(value); + } else { + userPinUpdateBuilder_.setMessage(value); + } + } + msgCase_ = 12; + return this; + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + public Builder clearUserPinUpdate() { + if (userPinUpdateBuilder_ == null) { + if (msgCase_ == 12) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 12) { + msgCase_ = 0; + msg_ = null; + } + userPinUpdateBuilder_.clear(); + } + return this; + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder getUserPinUpdateBuilder() { + return getUserPinUpdateFieldBuilder().getBuilder(); + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder getUserPinUpdateOrBuilder() { + if ((msgCase_ == 12) && (userPinUpdateBuilder_ != null)) { + return userPinUpdateBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 12) { + return (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_; + } + return com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance(); + } + } + /** + * .proto.UserPINUpdate user_pin_update = 12; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder> + getUserPinUpdateFieldBuilder() { + if (userPinUpdateBuilder_ == null) { + if (!(msgCase_ == 12)) { + msg_ = com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.getDefaultInstance(); + } + userPinUpdateBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate.Builder, com.daimler.mbcarkit.proto.UserEvents.UserPINUpdateOrBuilder>( + (com.daimler.mbcarkit.proto.UserEvents.UserPINUpdate) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 12; + onChanged(); + return userPinUpdateBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder> vehicleUpdatedBuilder_; + /** + * .proto.VehicleUpdated vehicle_updated = 15; + * @return Whether the vehicleUpdated field is set. + */ + @java.lang.Override + public boolean hasVehicleUpdated() { + return msgCase_ == 15; + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + * @return The vehicleUpdated. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getVehicleUpdated() { + if (vehicleUpdatedBuilder_ == null) { + if (msgCase_ == 15) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance(); + } else { + if (msgCase_ == 15) { + return vehicleUpdatedBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance(); + } + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + public Builder setVehicleUpdated(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated value) { + if (vehicleUpdatedBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + vehicleUpdatedBuilder_.setMessage(value); + } + msgCase_ = 15; + return this; + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + public Builder setVehicleUpdated( + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder builderForValue) { + if (vehicleUpdatedBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + vehicleUpdatedBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 15; + return this; + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + public Builder mergeVehicleUpdated(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated value) { + if (vehicleUpdatedBuilder_ == null) { + if (msgCase_ == 15 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 15) { + vehicleUpdatedBuilder_.mergeFrom(value); + } else { + vehicleUpdatedBuilder_.setMessage(value); + } + } + msgCase_ = 15; + return this; + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + public Builder clearVehicleUpdated() { + if (vehicleUpdatedBuilder_ == null) { + if (msgCase_ == 15) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 15) { + msgCase_ = 0; + msg_ = null; + } + vehicleUpdatedBuilder_.clear(); + } + return this; + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder getVehicleUpdatedBuilder() { + return getVehicleUpdatedFieldBuilder().getBuilder(); + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder getVehicleUpdatedOrBuilder() { + if ((msgCase_ == 15) && (vehicleUpdatedBuilder_ != null)) { + return vehicleUpdatedBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 15) { + return (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance(); + } + } + /** + * .proto.VehicleUpdated vehicle_updated = 15; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder> + getVehicleUpdatedFieldBuilder() { + if (vehicleUpdatedBuilder_ == null) { + if (!(msgCase_ == 15)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance(); + } + vehicleUpdatedBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 15; + onChanged(); + return vehicleUpdatedBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder> preferredDealerChangeBuilder_; + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + * @return Whether the preferredDealerChange field is set. + */ + @java.lang.Override + public boolean hasPreferredDealerChange() { + return msgCase_ == 16; + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + * @return The preferredDealerChange. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getPreferredDealerChange() { + if (preferredDealerChangeBuilder_ == null) { + if (msgCase_ == 16) { + return (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance(); + } else { + if (msgCase_ == 16) { + return preferredDealerChangeBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance(); + } + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + public Builder setPreferredDealerChange(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange value) { + if (preferredDealerChangeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + preferredDealerChangeBuilder_.setMessage(value); + } + msgCase_ = 16; + return this; + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + public Builder setPreferredDealerChange( + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder builderForValue) { + if (preferredDealerChangeBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + preferredDealerChangeBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 16; + return this; + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + public Builder mergePreferredDealerChange(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange value) { + if (preferredDealerChangeBuilder_ == null) { + if (msgCase_ == 16 && + msg_ != com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.newBuilder((com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 16) { + preferredDealerChangeBuilder_.mergeFrom(value); + } else { + preferredDealerChangeBuilder_.setMessage(value); + } + } + msgCase_ = 16; + return this; + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + public Builder clearPreferredDealerChange() { + if (preferredDealerChangeBuilder_ == null) { + if (msgCase_ == 16) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 16) { + msgCase_ = 0; + msg_ = null; + } + preferredDealerChangeBuilder_.clear(); + } + return this; + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder getPreferredDealerChangeBuilder() { + return getPreferredDealerChangeFieldBuilder().getBuilder(); + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder getPreferredDealerChangeOrBuilder() { + if ((msgCase_ == 16) && (preferredDealerChangeBuilder_ != null)) { + return preferredDealerChangeBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 16) { + return (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_; + } + return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance(); + } + } + /** + * .proto.PreferredDealerChange preferred_dealer_change = 16; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder> + getPreferredDealerChangeFieldBuilder() { + if (preferredDealerChangeBuilder_ == null) { + if (!(msgCase_ == 16)) { + msg_ = com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance(); + } + preferredDealerChangeBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder>( + (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 16; + onChanged(); + return preferredDealerChangeBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder> apptwinCommandStatusUpdatesByVinBuilder_; + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + * @return Whether the apptwinCommandStatusUpdatesByVin field is set. + */ + @java.lang.Override + public boolean hasApptwinCommandStatusUpdatesByVin() { + return msgCase_ == 17; + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + * @return The apptwinCommandStatusUpdatesByVin. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getApptwinCommandStatusUpdatesByVin() { + if (apptwinCommandStatusUpdatesByVinBuilder_ == null) { + if (msgCase_ == 17) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } else { + if (msgCase_ == 17) { + return apptwinCommandStatusUpdatesByVinBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + public Builder setApptwinCommandStatusUpdatesByVin(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN value) { + if (apptwinCommandStatusUpdatesByVinBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + apptwinCommandStatusUpdatesByVinBuilder_.setMessage(value); + } + msgCase_ = 17; + return this; + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + public Builder setApptwinCommandStatusUpdatesByVin( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder builderForValue) { + if (apptwinCommandStatusUpdatesByVinBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + apptwinCommandStatusUpdatesByVinBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 17; + return this; + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + public Builder mergeApptwinCommandStatusUpdatesByVin(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN value) { + if (apptwinCommandStatusUpdatesByVinBuilder_ == null) { + if (msgCase_ == 17 && + msg_ != com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.newBuilder((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 17) { + apptwinCommandStatusUpdatesByVinBuilder_.mergeFrom(value); + } else { + apptwinCommandStatusUpdatesByVinBuilder_.setMessage(value); + } + } + msgCase_ = 17; + return this; + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + public Builder clearApptwinCommandStatusUpdatesByVin() { + if (apptwinCommandStatusUpdatesByVinBuilder_ == null) { + if (msgCase_ == 17) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 17) { + msgCase_ = 0; + msg_ = null; + } + apptwinCommandStatusUpdatesByVinBuilder_.clear(); + } + return this; + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder getApptwinCommandStatusUpdatesByVinBuilder() { + return getApptwinCommandStatusUpdatesByVinFieldBuilder().getBuilder(); + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder getApptwinCommandStatusUpdatesByVinOrBuilder() { + if ((msgCase_ == 17) && (apptwinCommandStatusUpdatesByVinBuilder_ != null)) { + return apptwinCommandStatusUpdatesByVinBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 17) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + } + /** + * .proto.AppTwinCommandStatusUpdatesByVIN apptwin_command_status_updates_by_vin = 17; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder> + getApptwinCommandStatusUpdatesByVinFieldBuilder() { + if (apptwinCommandStatusUpdatesByVinBuilder_ == null) { + if (!(msgCase_ == 17)) { + msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + apptwinCommandStatusUpdatesByVinBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder>( + (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 17; + onChanged(); + return apptwinCommandStatusUpdatesByVinBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder> apptwinPendingCommandRequestBuilder_; + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + * @return Whether the apptwinPendingCommandRequest field is set. + */ + @java.lang.Override + public boolean hasApptwinPendingCommandRequest() { + return msgCase_ == 18; + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + * @return The apptwinPendingCommandRequest. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getApptwinPendingCommandRequest() { + if (apptwinPendingCommandRequestBuilder_ == null) { + if (msgCase_ == 18) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance(); + } else { + if (msgCase_ == 18) { + return apptwinPendingCommandRequestBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance(); + } + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + public Builder setApptwinPendingCommandRequest(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest value) { + if (apptwinPendingCommandRequestBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + apptwinPendingCommandRequestBuilder_.setMessage(value); + } + msgCase_ = 18; + return this; + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + public Builder setApptwinPendingCommandRequest( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder builderForValue) { + if (apptwinPendingCommandRequestBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + apptwinPendingCommandRequestBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 18; + return this; + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + public Builder mergeApptwinPendingCommandRequest(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest value) { + if (apptwinPendingCommandRequestBuilder_ == null) { + if (msgCase_ == 18 && + msg_ != com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.newBuilder((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 18) { + apptwinPendingCommandRequestBuilder_.mergeFrom(value); + } else { + apptwinPendingCommandRequestBuilder_.setMessage(value); + } + } + msgCase_ = 18; + return this; + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + public Builder clearApptwinPendingCommandRequest() { + if (apptwinPendingCommandRequestBuilder_ == null) { + if (msgCase_ == 18) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 18) { + msgCase_ = 0; + msg_ = null; + } + apptwinPendingCommandRequestBuilder_.clear(); + } + return this; + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder getApptwinPendingCommandRequestBuilder() { + return getApptwinPendingCommandRequestFieldBuilder().getBuilder(); + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder getApptwinPendingCommandRequestOrBuilder() { + if ((msgCase_ == 18) && (apptwinPendingCommandRequestBuilder_ != null)) { + return apptwinPendingCommandRequestBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 18) { + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_; + } + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance(); + } + } + /** + * .proto.AppTwinPendingCommandsRequest apptwin_pending_command_request = 18; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder> + getApptwinPendingCommandRequestFieldBuilder() { + if (apptwinPendingCommandRequestBuilder_ == null) { + if (!(msgCase_ == 18)) { + msg_ = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance(); + } + apptwinPendingCommandRequestBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder>( + (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 18; + onChanged(); + return apptwinPendingCommandRequestBuilder_; + } + + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.AssignedVehicles, com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder> assignedVehiclesBuilder_; + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + * @return Whether the assignedVehicles field is set. + */ + @java.lang.Override + public boolean hasAssignedVehicles() { + return msgCase_ == 19; + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + * @return The assignedVehicles. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AssignedVehicles getAssignedVehicles() { + if (assignedVehiclesBuilder_ == null) { + if (msgCase_ == 19) { + return (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_; + } + return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance(); + } else { + if (msgCase_ == 19) { + return assignedVehiclesBuilder_.getMessage(); + } + return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance(); + } + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + public Builder setAssignedVehicles(com.daimler.mbcarkit.proto.Protos.AssignedVehicles value) { + if (assignedVehiclesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + msg_ = value; + onChanged(); + } else { + assignedVehiclesBuilder_.setMessage(value); + } + msgCase_ = 19; + return this; + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + public Builder setAssignedVehicles( + com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder builderForValue) { + if (assignedVehiclesBuilder_ == null) { + msg_ = builderForValue.build(); + onChanged(); + } else { + assignedVehiclesBuilder_.setMessage(builderForValue.build()); + } + msgCase_ = 19; + return this; + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + public Builder mergeAssignedVehicles(com.daimler.mbcarkit.proto.Protos.AssignedVehicles value) { + if (assignedVehiclesBuilder_ == null) { + if (msgCase_ == 19 && + msg_ != com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance()) { + msg_ = com.daimler.mbcarkit.proto.Protos.AssignedVehicles.newBuilder((com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_) + .mergeFrom(value).buildPartial(); + } else { + msg_ = value; + } + onChanged(); + } else { + if (msgCase_ == 19) { + assignedVehiclesBuilder_.mergeFrom(value); + } else { + assignedVehiclesBuilder_.setMessage(value); + } + } + msgCase_ = 19; + return this; + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + public Builder clearAssignedVehicles() { + if (assignedVehiclesBuilder_ == null) { + if (msgCase_ == 19) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + } else { + if (msgCase_ == 19) { + msgCase_ = 0; + msg_ = null; + } + assignedVehiclesBuilder_.clear(); + } + return this; + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + public com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder getAssignedVehiclesBuilder() { + return getAssignedVehiclesFieldBuilder().getBuilder(); + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder getAssignedVehiclesOrBuilder() { + if ((msgCase_ == 19) && (assignedVehiclesBuilder_ != null)) { + return assignedVehiclesBuilder_.getMessageOrBuilder(); + } else { + if (msgCase_ == 19) { + return (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_; + } + return com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance(); + } + } + /** + * .proto.AssignedVehicles assigned_vehicles = 19; + */ + private com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.AssignedVehicles, com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder> + getAssignedVehiclesFieldBuilder() { + if (assignedVehiclesBuilder_ == null) { + if (!(msgCase_ == 19)) { + msg_ = com.daimler.mbcarkit.proto.Protos.AssignedVehicles.getDefaultInstance(); + } + assignedVehiclesBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.daimler.mbcarkit.proto.Protos.AssignedVehicles, com.daimler.mbcarkit.proto.Protos.AssignedVehicles.Builder, com.daimler.mbcarkit.proto.Protos.AssignedVehiclesOrBuilder>( + (com.daimler.mbcarkit.proto.Protos.AssignedVehicles) msg_, + getParentForChildren(), + isClean()); + msg_ = null; + } + msgCase_ = 19; + onChanged(); + return assignedVehiclesBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.PushMessage) + } + + // @@protoc_insertion_point(class_scope:proto.PushMessage) + private static final com.daimler.mbcarkit.proto.VehicleEvents.PushMessage DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.PushMessage(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PushMessage getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PushMessage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PushMessage getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TrackingEventOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.TrackingEvent) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * a unique id associated with this event
+     * 
+ * + * string tracking_id = 1; + * @return The trackingId. + */ + java.lang.String getTrackingId(); + /** + *
+     * a unique id associated with this event
+     * 
+ * + * string tracking_id = 1; + * @return The bytes for trackingId. + */ + com.google.protobuf.ByteString + getTrackingIdBytes(); + + /** + *
+     * the unix epoch time in nanoseconds when the event occurred
+     * 
+ * + * int64 timestamp = 2; + * @return The timestamp. + */ + long getTimestamp(); + + /** + *
+     * a unique identifier describing a single interaction or event
+     * 
+ * + * string event_type = 3; + * @return The eventType. + */ + java.lang.String getEventType(); + /** + *
+     * a unique identifier describing a single interaction or event
+     * 
+ * + * string event_type = 3; + * @return The bytes for eventType. + */ + com.google.protobuf.ByteString + getEventTypeBytes(); + + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + int getPayloadCount(); + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + boolean containsPayload( + java.lang.String key); + /** + * Use {@link #getPayloadMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getPayload(); + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + java.util.Map + getPayloadMap(); + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue defaultValue); + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrThrow( + java.lang.String key); + } + /** + *
+   * message type to track an event, e.g. a user interaction with content
+   * Sending direction: App -> BFF
+   * 
+ * + * Protobuf type {@code proto.TrackingEvent} + */ + public static final class TrackingEvent extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.TrackingEvent) + TrackingEventOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + TrackingEvent.class.getName()); + } + // Use TrackingEvent.newBuilder() to construct. + private TrackingEvent(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private TrackingEvent() { + trackingId_ = ""; + eventType_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 4: + return internalGetPayload(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.class, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder.class); + } + + public static final int TRACKING_ID_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object trackingId_ = ""; + /** + *
+     * a unique id associated with this event
+     * 
+ * + * string tracking_id = 1; + * @return The trackingId. + */ + @java.lang.Override + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } + } + /** + *
+     * a unique id associated with this event
+     * 
+ * + * string tracking_id = 1; + * @return The bytes for trackingId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TIMESTAMP_FIELD_NUMBER = 2; + private long timestamp_ = 0L; + /** + *
+     * the unix epoch time in nanoseconds when the event occurred
+     * 
+ * + * int64 timestamp = 2; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + + public static final int EVENT_TYPE_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object eventType_ = ""; + /** + *
+     * a unique identifier describing a single interaction or event
+     * 
+ * + * string event_type = 3; + * @return The eventType. + */ + @java.lang.Override + public java.lang.String getEventType() { + java.lang.Object ref = eventType_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + eventType_ = s; + return s; + } + } + /** + *
+     * a unique identifier describing a single interaction or event
+     * 
+ * + * string event_type = 3; + * @return The bytes for eventType. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getEventTypeBytes() { + java.lang.Object ref = eventType_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + eventType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PAYLOAD_FIELD_NUMBER = 4; + private static final class PayloadDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_PayloadEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue> payload_; + private com.google.protobuf.MapField + internalGetPayload() { + if (payload_ == null) { + return com.google.protobuf.MapField.emptyMapField( + PayloadDefaultEntryHolder.defaultEntry); + } + return payload_; + } + public int getPayloadCount() { + return internalGetPayload().getMap().size(); + } + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + @java.lang.Override + public boolean containsPayload( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetPayload().getMap().containsKey(key); + } + /** + * Use {@link #getPayloadMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getPayload() { + return getPayloadMap(); + } + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + @java.lang.Override + public java.util.Map getPayloadMap() { + return internalGetPayload().getMap(); + } + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetPayload().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * additional meta data describing the event
+     * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetPayload().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, trackingId_); + } + if (timestamp_ != 0L) { + output.writeInt64(2, timestamp_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(eventType_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, eventType_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetPayload(), + PayloadDefaultEntryHolder.defaultEntry, + 4); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, trackingId_); + } + if (timestamp_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, timestamp_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(eventType_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, eventType_); + } + for (java.util.Map.Entry entry + : internalGetPayload().getMap().entrySet()) { + com.google.protobuf.MapEntry + payload__ = PayloadDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, payload__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent other = (com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) obj; + + if (!getTrackingId() + .equals(other.getTrackingId())) return false; + if (getTimestamp() + != other.getTimestamp()) return false; + if (!getEventType() + .equals(other.getEventType())) return false; + if (!internalGetPayload().equals( + other.internalGetPayload())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + TRACKING_ID_FIELD_NUMBER; + hash = (53 * hash) + getTrackingId().hashCode(); + hash = (37 * hash) + TIMESTAMP_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestamp()); + hash = (37 * hash) + EVENT_TYPE_FIELD_NUMBER; + hash = (53 * hash) + getEventType().hashCode(); + if (!internalGetPayload().getMap().isEmpty()) { + hash = (37 * hash) + PAYLOAD_FIELD_NUMBER; + hash = (53 * hash) + internalGetPayload().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * message type to track an event, e.g. a user interaction with content
+     * Sending direction: App -> BFF
+     * 
+ * + * Protobuf type {@code proto.TrackingEvent} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.TrackingEvent) + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEventOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 4: + return internalGetPayload(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 4: + return internalGetMutablePayload(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.class, com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + trackingId_ = ""; + timestamp_ = 0L; + eventType_ = ""; + internalGetMutablePayload().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_TrackingEvent_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent build() { + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent result = new com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.trackingId_ = trackingId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.timestamp_ = timestamp_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.eventType_ = eventType_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.payload_ = internalGetPayload().build(PayloadDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent.getDefaultInstance()) return this; + if (!other.getTrackingId().isEmpty()) { + trackingId_ = other.trackingId_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getTimestamp() != 0L) { + setTimestamp(other.getTimestamp()); + } + if (!other.getEventType().isEmpty()) { + eventType_ = other.eventType_; + bitField0_ |= 0x00000004; + onChanged(); + } + internalGetMutablePayload().mergeFrom( + other.internalGetPayload()); + bitField0_ |= 0x00000008; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + trackingId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + timestamp_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + eventType_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + com.google.protobuf.MapEntry + payload__ = input.readMessage( + PayloadDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutablePayload().ensureBuilderMap().put( + payload__.getKey(), payload__.getValue()); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object trackingId_ = ""; + /** + *
+       * a unique id associated with this event
+       * 
+ * + * string tracking_id = 1; + * @return The trackingId. + */ + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * a unique id associated with this event
+       * 
+ * + * string tracking_id = 1; + * @return The bytes for trackingId. + */ + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * a unique id associated with this event
+       * 
+ * + * string tracking_id = 1; + * @param value The trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + trackingId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * a unique id associated with this event
+       * 
+ * + * string tracking_id = 1; + * @return This builder for chaining. + */ + public Builder clearTrackingId() { + trackingId_ = getDefaultInstance().getTrackingId(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * a unique id associated with this event
+       * 
+ * + * string tracking_id = 1; + * @param value The bytes for trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + trackingId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private long timestamp_ ; + /** + *
+       * the unix epoch time in nanoseconds when the event occurred
+       * 
+ * + * int64 timestamp = 2; + * @return The timestamp. + */ + @java.lang.Override + public long getTimestamp() { + return timestamp_; + } + /** + *
+       * the unix epoch time in nanoseconds when the event occurred
+       * 
+ * + * int64 timestamp = 2; + * @param value The timestamp to set. + * @return This builder for chaining. + */ + public Builder setTimestamp(long value) { + + timestamp_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the unix epoch time in nanoseconds when the event occurred
+       * 
+ * + * int64 timestamp = 2; + * @return This builder for chaining. + */ + public Builder clearTimestamp() { + bitField0_ = (bitField0_ & ~0x00000002); + timestamp_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object eventType_ = ""; + /** + *
+       * a unique identifier describing a single interaction or event
+       * 
+ * + * string event_type = 3; + * @return The eventType. + */ + public java.lang.String getEventType() { + java.lang.Object ref = eventType_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + eventType_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * a unique identifier describing a single interaction or event
+       * 
+ * + * string event_type = 3; + * @return The bytes for eventType. + */ + public com.google.protobuf.ByteString + getEventTypeBytes() { + java.lang.Object ref = eventType_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + eventType_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * a unique identifier describing a single interaction or event
+       * 
+ * + * string event_type = 3; + * @param value The eventType to set. + * @return This builder for chaining. + */ + public Builder setEventType( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + eventType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * a unique identifier describing a single interaction or event
+       * 
+ * + * string event_type = 3; + * @return This builder for chaining. + */ + public Builder clearEventType() { + eventType_ = getDefaultInstance().getEventType(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+       * a unique identifier describing a single interaction or event
+       * 
+ * + * string event_type = 3; + * @param value The bytes for eventType to set. + * @return This builder for chaining. + */ + public Builder setEventTypeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + eventType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private static final class PayloadConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue build(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) { return (com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) val; } + return ((com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return PayloadDefaultEntryHolder.defaultEntry; + } + }; + private static final PayloadConverter payloadConverter = new PayloadConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder> payload_; + private com.google.protobuf.MapFieldBuilder + internalGetPayload() { + if (payload_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(payloadConverter); + } + return payload_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutablePayload() { + if (payload_ == null) { + payload_ = new com.google.protobuf.MapFieldBuilder<>(payloadConverter); + } + bitField0_ |= 0x00000008; + onChanged(); + return payload_; + } + public int getPayloadCount() { + return internalGetPayload().ensureBuilderMap().size(); + } + /** + *
+       * additional meta data describing the event
+       * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + @java.lang.Override + public boolean containsPayload( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetPayload().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getPayloadMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getPayload() { + return getPayloadMap(); + } + /** + *
+       * additional meta data describing the event
+       * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + @java.lang.Override + public java.util.Map getPayloadMap() { + return internalGetPayload().getImmutableMap(); + } + /** + *
+       * additional meta data describing the event
+       * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutablePayload().ensureBuilderMap(); + return map.containsKey(key) ? payloadConverter.build(map.get(key)) : defaultValue; + } + /** + *
+       * additional meta data describing the event
+       * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getPayloadOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutablePayload().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return payloadConverter.build(map.get(key)); + } + public Builder clearPayload() { + bitField0_ = (bitField0_ & ~0x00000008); + internalGetMutablePayload().clear(); + return this; + } + /** + *
+       * additional meta data describing the event
+       * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + public Builder removePayload( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutablePayload().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutablePayload() { + bitField0_ |= 0x00000008; + return internalGetMutablePayload().ensureMessageMap(); + } + /** + *
+       * additional meta data describing the event
+       * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + public Builder putPayload( + java.lang.String key, + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutablePayload().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000008; + return this; + } + /** + *
+       * additional meta data describing the event
+       * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + public Builder putAllPayload( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutablePayload().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000008; + return this; + } + /** + *
+       * additional meta data describing the event
+       * 
+ * + * map<string, .proto.PayloadValue> payload = 4; + */ + public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder putPayloadBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutablePayload().ensureBuilderMap(); + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) { + entry = ((com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.TrackingEvent) + } + + // @@protoc_insertion_point(class_scope:proto.TrackingEvent) + private static final com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TrackingEvent parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.TrackingEvent getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PayloadValueOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.PayloadValue) + com.google.protobuf.MessageOrBuilder { + + /** + * string string_value = 1; + * @return Whether the stringValue field is set. + */ + boolean hasStringValue(); + /** + * string string_value = 1; + * @return The stringValue. + */ + java.lang.String getStringValue(); + /** + * string string_value = 1; + * @return The bytes for stringValue. + */ + com.google.protobuf.ByteString + getStringValueBytes(); + + /** + * int32 int_value = 2; + * @return Whether the intValue field is set. + */ + boolean hasIntValue(); + /** + * int32 int_value = 2; + * @return The intValue. + */ + int getIntValue(); + + /** + * bool bool_value = 3; + * @return Whether the boolValue field is set. + */ + boolean hasBoolValue(); + /** + * bool bool_value = 3; + * @return The boolValue. + */ + boolean getBoolValue(); + + /** + * double double_value = 4; + * @return Whether the doubleValue field is set. + */ + boolean hasDoubleValue(); + /** + * double double_value = 4; + * @return The doubleValue. + */ + double getDoubleValue(); + + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.MsgCase getMsgCase(); + } + /** + * Protobuf type {@code proto.PayloadValue} + */ + public static final class PayloadValue extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.PayloadValue) + PayloadValueOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + PayloadValue.class.getName()); + } + // Use PayloadValue.newBuilder() to construct. + private PayloadValue(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private PayloadValue() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.class, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder.class); + } + + private int msgCase_ = 0; + @SuppressWarnings("serial") + private java.lang.Object msg_; + public enum MsgCase + implements com.google.protobuf.Internal.EnumLite, + com.google.protobuf.AbstractMessage.InternalOneOfEnum { + STRING_VALUE(1), + INT_VALUE(2), + BOOL_VALUE(3), + DOUBLE_VALUE(4), + MSG_NOT_SET(0); + private final int value; + private MsgCase(int value) { + this.value = value; + } + /** + * @param value The number of the enum to look for. + * @return The enum associated with the given number. + * @deprecated Use {@link #forNumber(int)} instead. + */ + @java.lang.Deprecated + public static MsgCase valueOf(int value) { + return forNumber(value); + } + + public static MsgCase forNumber(int value) { + switch (value) { + case 1: return STRING_VALUE; + case 2: return INT_VALUE; + case 3: return BOOL_VALUE; + case 4: return DOUBLE_VALUE; + case 0: return MSG_NOT_SET; + default: return null; + } + } + public int getNumber() { + return this.value; + } + }; + + public MsgCase + getMsgCase() { + return MsgCase.forNumber( + msgCase_); + } + + public static final int STRING_VALUE_FIELD_NUMBER = 1; + /** + * string string_value = 1; + * @return Whether the stringValue field is set. + */ + public boolean hasStringValue() { + return msgCase_ == 1; + } + /** + * string string_value = 1; + * @return The stringValue. + */ + public java.lang.String getStringValue() { + java.lang.Object ref = ""; + if (msgCase_ == 1) { + ref = msg_; + } + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (msgCase_ == 1) { + msg_ = s; + } + return s; + } + } + /** + * string string_value = 1; + * @return The bytes for stringValue. + */ + public com.google.protobuf.ByteString + getStringValueBytes() { + java.lang.Object ref = ""; + if (msgCase_ == 1) { + ref = msg_; + } + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (msgCase_ == 1) { + msg_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int INT_VALUE_FIELD_NUMBER = 2; + /** + * int32 int_value = 2; + * @return Whether the intValue field is set. + */ + @java.lang.Override + public boolean hasIntValue() { + return msgCase_ == 2; + } + /** + * int32 int_value = 2; + * @return The intValue. + */ + @java.lang.Override + public int getIntValue() { + if (msgCase_ == 2) { + return (java.lang.Integer) msg_; + } + return 0; + } + + public static final int BOOL_VALUE_FIELD_NUMBER = 3; + /** + * bool bool_value = 3; + * @return Whether the boolValue field is set. + */ + @java.lang.Override + public boolean hasBoolValue() { + return msgCase_ == 3; + } + /** + * bool bool_value = 3; + * @return The boolValue. + */ + @java.lang.Override + public boolean getBoolValue() { + if (msgCase_ == 3) { + return (java.lang.Boolean) msg_; + } + return false; + } + + public static final int DOUBLE_VALUE_FIELD_NUMBER = 4; + /** + * double double_value = 4; + * @return Whether the doubleValue field is set. + */ + @java.lang.Override + public boolean hasDoubleValue() { + return msgCase_ == 4; + } + /** + * double double_value = 4; + * @return The doubleValue. + */ + @java.lang.Override + public double getDoubleValue() { + if (msgCase_ == 4) { + return (java.lang.Double) msg_; + } + return 0D; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (msgCase_ == 1) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, msg_); + } + if (msgCase_ == 2) { + output.writeInt32( + 2, (int)((java.lang.Integer) msg_)); + } + if (msgCase_ == 3) { + output.writeBool( + 3, (boolean)((java.lang.Boolean) msg_)); + } + if (msgCase_ == 4) { + output.writeDouble( + 4, (double)((java.lang.Double) msg_)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (msgCase_ == 1) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, msg_); + } + if (msgCase_ == 2) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size( + 2, (int)((java.lang.Integer) msg_)); + } + if (msgCase_ == 3) { + size += com.google.protobuf.CodedOutputStream + .computeBoolSize( + 3, (boolean)((java.lang.Boolean) msg_)); + } + if (msgCase_ == 4) { + size += com.google.protobuf.CodedOutputStream + .computeDoubleSize( + 4, (double)((java.lang.Double) msg_)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue other = (com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) obj; + + if (!getMsgCase().equals(other.getMsgCase())) return false; + switch (msgCase_) { + case 1: + if (!getStringValue() + .equals(other.getStringValue())) return false; + break; + case 2: + if (getIntValue() + != other.getIntValue()) return false; + break; + case 3: + if (getBoolValue() + != other.getBoolValue()) return false; + break; + case 4: + if (java.lang.Double.doubleToLongBits(getDoubleValue()) + != java.lang.Double.doubleToLongBits( + other.getDoubleValue())) return false; + break; + case 0: + default: + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + switch (msgCase_) { + case 1: + hash = (37 * hash) + STRING_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getStringValue().hashCode(); + break; + case 2: + hash = (37 * hash) + INT_VALUE_FIELD_NUMBER; + hash = (53 * hash) + getIntValue(); + break; + case 3: + hash = (37 * hash) + BOOL_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean( + getBoolValue()); + break; + case 4: + hash = (37 * hash) + DOUBLE_VALUE_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + java.lang.Double.doubleToLongBits(getDoubleValue())); + break; + case 0: + default: + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.PayloadValue} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.PayloadValue) + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValueOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.class, com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + msgCase_ = 0; + msg_ = null; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PayloadValue_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue build() { + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue result = new com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue(this); + if (bitField0_ != 0) { buildPartial0(result); } + buildPartialOneofs(result); + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue result) { + int from_bitField0_ = bitField0_; + } + + private void buildPartialOneofs(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue result) { + result.msgCase_ = msgCase_; + result.msg_ = this.msg_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue.getDefaultInstance()) return this; + switch (other.getMsgCase()) { + case STRING_VALUE: { + msgCase_ = 1; + msg_ = other.msg_; + onChanged(); + break; + } + case INT_VALUE: { + setIntValue(other.getIntValue()); + break; + } + case BOOL_VALUE: { + setBoolValue(other.getBoolValue()); + break; + } + case DOUBLE_VALUE: { + setDoubleValue(other.getDoubleValue()); + break; + } + case MSG_NOT_SET: { + break; + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + msgCase_ = 1; + msg_ = s; + break; + } // case 10 + case 16: { + msg_ = input.readInt32(); + msgCase_ = 2; + break; + } // case 16 + case 24: { + msg_ = input.readBool(); + msgCase_ = 3; + break; + } // case 24 + case 33: { + msg_ = input.readDouble(); + msgCase_ = 4; + break; + } // case 33 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int msgCase_ = 0; + private java.lang.Object msg_; + public MsgCase + getMsgCase() { + return MsgCase.forNumber( + msgCase_); + } + + public Builder clearMsg() { + msgCase_ = 0; + msg_ = null; + onChanged(); + return this; + } + + private int bitField0_; + + /** + * string string_value = 1; + * @return Whether the stringValue field is set. + */ + @java.lang.Override + public boolean hasStringValue() { + return msgCase_ == 1; + } + /** + * string string_value = 1; + * @return The stringValue. + */ + @java.lang.Override + public java.lang.String getStringValue() { + java.lang.Object ref = ""; + if (msgCase_ == 1) { + ref = msg_; + } + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + if (msgCase_ == 1) { + msg_ = s; + } + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string string_value = 1; + * @return The bytes for stringValue. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getStringValueBytes() { + java.lang.Object ref = ""; + if (msgCase_ == 1) { + ref = msg_; + } + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + if (msgCase_ == 1) { + msg_ = b; + } + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string string_value = 1; + * @param value The stringValue to set. + * @return This builder for chaining. + */ + public Builder setStringValue( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + msgCase_ = 1; + msg_ = value; + onChanged(); + return this; + } + /** + * string string_value = 1; + * @return This builder for chaining. + */ + public Builder clearStringValue() { + if (msgCase_ == 1) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + return this; + } + /** + * string string_value = 1; + * @param value The bytes for stringValue to set. + * @return This builder for chaining. + */ + public Builder setStringValueBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + msgCase_ = 1; + msg_ = value; + onChanged(); + return this; + } + + /** + * int32 int_value = 2; + * @return Whether the intValue field is set. + */ + public boolean hasIntValue() { + return msgCase_ == 2; + } + /** + * int32 int_value = 2; + * @return The intValue. + */ + public int getIntValue() { + if (msgCase_ == 2) { + return (java.lang.Integer) msg_; + } + return 0; + } + /** + * int32 int_value = 2; + * @param value The intValue to set. + * @return This builder for chaining. + */ + public Builder setIntValue(int value) { + + msgCase_ = 2; + msg_ = value; + onChanged(); + return this; + } + /** + * int32 int_value = 2; + * @return This builder for chaining. + */ + public Builder clearIntValue() { + if (msgCase_ == 2) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + return this; + } + + /** + * bool bool_value = 3; + * @return Whether the boolValue field is set. + */ + public boolean hasBoolValue() { + return msgCase_ == 3; + } + /** + * bool bool_value = 3; + * @return The boolValue. + */ + public boolean getBoolValue() { + if (msgCase_ == 3) { + return (java.lang.Boolean) msg_; + } + return false; + } + /** + * bool bool_value = 3; + * @param value The boolValue to set. + * @return This builder for chaining. + */ + public Builder setBoolValue(boolean value) { + + msgCase_ = 3; + msg_ = value; + onChanged(); + return this; + } + /** + * bool bool_value = 3; + * @return This builder for chaining. + */ + public Builder clearBoolValue() { + if (msgCase_ == 3) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + return this; + } + + /** + * double double_value = 4; + * @return Whether the doubleValue field is set. + */ + public boolean hasDoubleValue() { + return msgCase_ == 4; + } + /** + * double double_value = 4; + * @return The doubleValue. + */ + public double getDoubleValue() { + if (msgCase_ == 4) { + return (java.lang.Double) msg_; + } + return 0D; + } + /** + * double double_value = 4; + * @param value The doubleValue to set. + * @return This builder for chaining. + */ + public Builder setDoubleValue(double value) { + + msgCase_ = 4; + msg_ = value; + onChanged(); + return this; + } + /** + * double double_value = 4; + * @return This builder for chaining. + */ + public Builder clearDoubleValue() { + if (msgCase_ == 4) { + msgCase_ = 0; + msg_ = null; + onChanged(); + } + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.PayloadValue) + } + + // @@protoc_insertion_point(class_scope:proto.PayloadValue) + private static final com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PayloadValue parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PayloadValue getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + @java.lang.Deprecated public interface AcknowledgeVEPRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeVEPRequest) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + *
+   * acknowledge that the VEP updates of up to `sequenceNumber` have been received
+   * Sending direction: App -> BFF -> AppTwin
+   * 
+ * + * Protobuf type {@code proto.AcknowledgeVEPRequest} + */ + @java.lang.Deprecated public static final class AcknowledgeVEPRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeVEPRequest) + AcknowledgeVEPRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeVEPRequest.class.getName()); + } + // Use AcknowledgeVEPRequest.newBuilder() to construct. + private AcknowledgeVEPRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeVEPRequest() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * acknowledge that the VEP updates of up to `sequenceNumber` have been received
+     * Sending direction: App -> BFF -> AppTwin
+     * 
+ * + * Protobuf type {@code proto.AcknowledgeVEPRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeVEPRequest) + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest build() { + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeVEPRequest) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeVEPRequest) + private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeVEPRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeVEPUpdatesByVINOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeVEPUpdatesByVIN) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + *
+   * acknowledge that the VEP updates by vin of up to `sequenceNumber` have been received
+   * Sending direction: App -> BFF -> AppTwin
+   * This message should replace the AcknowledgeVEPRequest
+   * 
+ * + * Protobuf type {@code proto.AcknowledgeVEPUpdatesByVIN} + */ + public static final class AcknowledgeVEPUpdatesByVIN extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeVEPUpdatesByVIN) + AcknowledgeVEPUpdatesByVINOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeVEPUpdatesByVIN.class.getName()); + } + // Use AcknowledgeVEPUpdatesByVIN.newBuilder() to construct. + private AcknowledgeVEPUpdatesByVIN(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeVEPUpdatesByVIN() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * acknowledge that the VEP updates by vin of up to `sequenceNumber` have been received
+     * Sending direction: App -> BFF -> AppTwin
+     * This message should replace the AcknowledgeVEPRequest
+     * 
+ * + * Protobuf type {@code proto.AcknowledgeVEPUpdatesByVIN} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeVEPUpdatesByVIN) + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVINOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN build() { + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeVEPUpdatesByVIN) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeVEPUpdatesByVIN) + private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeVEPUpdatesByVIN parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface ConfigurePingIntervalOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.ConfigurePingInterval) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 ping_time_millis = 1; + * @return The pingTimeMillis. + */ + int getPingTimeMillis(); + } + /** + *
+   * the client can optionally send this message to reconfigure the ping interval
+   * Sending direction: App -> BFF
+   * 
+ * + * Protobuf type {@code proto.ConfigurePingInterval} + */ + public static final class ConfigurePingInterval extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.ConfigurePingInterval) + ConfigurePingIntervalOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + ConfigurePingInterval.class.getName()); + } + // Use ConfigurePingInterval.newBuilder() to construct. + private ConfigurePingInterval(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private ConfigurePingInterval() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.class, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder.class); + } + + public static final int PING_TIME_MILLIS_FIELD_NUMBER = 1; + private int pingTimeMillis_ = 0; + /** + * int32 ping_time_millis = 1; + * @return The pingTimeMillis. + */ + @java.lang.Override + public int getPingTimeMillis() { + return pingTimeMillis_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (pingTimeMillis_ != 0) { + output.writeInt32(1, pingTimeMillis_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (pingTimeMillis_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, pingTimeMillis_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval other = (com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) obj; + + if (getPingTimeMillis() + != other.getPingTimeMillis()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PING_TIME_MILLIS_FIELD_NUMBER; + hash = (53 * hash) + getPingTimeMillis(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * the client can optionally send this message to reconfigure the ping interval
+     * Sending direction: App -> BFF
+     * 
+ * + * Protobuf type {@code proto.ConfigurePingInterval} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.ConfigurePingInterval) + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingIntervalOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.class, com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pingTimeMillis_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_ConfigurePingInterval_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval build() { + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval result = new com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pingTimeMillis_ = pingTimeMillis_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval.getDefaultInstance()) return this; + if (other.getPingTimeMillis() != 0) { + setPingTimeMillis(other.getPingTimeMillis()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + pingTimeMillis_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int pingTimeMillis_ ; + /** + * int32 ping_time_millis = 1; + * @return The pingTimeMillis. + */ + @java.lang.Override + public int getPingTimeMillis() { + return pingTimeMillis_; + } + /** + * int32 ping_time_millis = 1; + * @param value The pingTimeMillis to set. + * @return This builder for chaining. + */ + public Builder setPingTimeMillis(int value) { + + pingTimeMillis_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 ping_time_millis = 1; + * @return This builder for chaining. + */ + public Builder clearPingTimeMillis() { + bitField0_ = (bitField0_ & ~0x00000001); + pingTimeMillis_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.ConfigurePingInterval) + } + + // @@protoc_insertion_point(class_scope:proto.ConfigurePingInterval) + private static final com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public ConfigurePingInterval parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.ConfigurePingInterval getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgeVehicleUpdatedOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeVehicleUpdated) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgeVehicleUpdated} + */ + public static final class AcknowledgeVehicleUpdated extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeVehicleUpdated) + AcknowledgeVehicleUpdatedOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeVehicleUpdated.class.getName()); + } + // Use AcknowledgeVehicleUpdated.newBuilder() to construct. + private AcknowledgeVehicleUpdated(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeVehicleUpdated() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgeVehicleUpdated} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeVehicleUpdated) + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdatedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgeVehicleUpdated_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated build() { + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeVehicleUpdated) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeVehicleUpdated) + private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeVehicleUpdated parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVehicleUpdated getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AcknowledgePreferredDealerChangeOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgePreferredDealerChange) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + * Protobuf type {@code proto.AcknowledgePreferredDealerChange} + */ + public static final class AcknowledgePreferredDealerChange extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgePreferredDealerChange) + AcknowledgePreferredDealerChangeOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgePreferredDealerChange.class.getName()); + } + // Use AcknowledgePreferredDealerChange.newBuilder() to construct. + private AcknowledgePreferredDealerChange(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgePreferredDealerChange() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange other = (com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.AcknowledgePreferredDealerChange} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgePreferredDealerChange) + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChangeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.class, com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_AcknowledgePreferredDealerChange_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange build() { + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange result = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgePreferredDealerChange) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgePreferredDealerChange) + private static final com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgePreferredDealerChange parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgePreferredDealerChange getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleUpdatedOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleUpdated) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + * string ciam_id = 2; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + * string vin = 3; + * @return The vin. + */ + java.lang.String getVin(); + /** + * string vin = 3; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @return The emitTimestampInMs. + */ + long getEmitTimestampInMs(); + } + /** + * Protobuf type {@code proto.VehicleUpdated} + */ + public static final class VehicleUpdated extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleUpdated) + VehicleUpdatedOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleUpdated.class.getName()); + } + // Use VehicleUpdated.newBuilder() to construct. + private VehicleUpdated(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleUpdated() { + ciamId_ = ""; + vin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int CIAM_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VIN_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + * string vin = 3; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + * string vin = 3; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 10; + private long emitTimestampInMs_ = 0L; + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, vin_); + } + if (emitTimestampInMs_ != 0L) { + output.writeInt64(10, emitTimestampInMs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, vin_); + } + if (emitTimestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(10, emitTimestampInMs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated other = (com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (!getVin() + .equals(other.getVin())) return false; + if (getEmitTimestampInMs() + != other.getEmitTimestampInMs()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestampInMs()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VehicleUpdated} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleUpdated) + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdatedOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.class, com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + ciamId_ = ""; + vin_ = ""; + emitTimestampInMs_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_VehicleUpdated_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated build() { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated result = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.emitTimestampInMs_ = emitTimestampInMs_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.getEmitTimestampInMs() != 0L) { + setEmitTimestampInMs(other.getEmitTimestampInMs()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 80: { + emitTimestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 80 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ciam_id = 2; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object vin_ = ""; + /** + * string vin = 3; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string vin = 3; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string vin = 3; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string vin = 3; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string vin = 3; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private long emitTimestampInMs_ ; + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @param value The emitTimestampInMs to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestampInMs(long value) { + + emitTimestampInMs_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @return This builder for chaining. + */ + public Builder clearEmitTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000008); + emitTimestampInMs_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleUpdated) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleUpdated) + private static final com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleUpdated parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.VehicleUpdated getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PreferredDealerChangeOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.PreferredDealerChange) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + * string ciam_id = 2; + * @return The ciamId. + */ + java.lang.String getCiamId(); + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + com.google.protobuf.ByteString + getCiamIdBytes(); + + /** + * string vin = 3; + * @return The vin. + */ + java.lang.String getVin(); + /** + * string vin = 3; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @return The emitTimestampInMs. + */ + long getEmitTimestampInMs(); + } + /** + * Protobuf type {@code proto.PreferredDealerChange} + */ + public static final class PreferredDealerChange extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.PreferredDealerChange) + PreferredDealerChangeOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + PreferredDealerChange.class.getName()); + } + // Use PreferredDealerChange.newBuilder() to construct. + private PreferredDealerChange(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private PreferredDealerChange() { + ciamId_ = ""; + vin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.class, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int CIAM_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + @java.lang.Override + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int VIN_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + * string vin = 3; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + * string vin = 3; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER = 10; + private long emitTimestampInMs_ = 0L; + /** + *
+     * When was the event emitted (milliseconds in Unix time)
+     * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, ciamId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, vin_); + } + if (emitTimestampInMs_ != 0L) { + output.writeInt64(10, emitTimestampInMs_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(ciamId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ciamId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, vin_); + } + if (emitTimestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(10, emitTimestampInMs_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange other = (com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getCiamId() + .equals(other.getCiamId())) return false; + if (!getVin() + .equals(other.getVin())) return false; + if (getEmitTimestampInMs() + != other.getEmitTimestampInMs()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (37 * hash) + CIAM_ID_FIELD_NUMBER; + hash = (53 * hash) + getCiamId().hashCode(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + hash = (37 * hash) + EMIT_TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getEmitTimestampInMs()); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.PreferredDealerChange} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.PreferredDealerChange) + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChangeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.class, com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + ciamId_ = ""; + vin_ = ""; + emitTimestampInMs_ = 0L; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.internal_static_proto_PreferredDealerChange_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange build() { + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange buildPartial() { + com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange result = new com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.ciamId_ = ciamId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.emitTimestampInMs_ = emitTimestampInMs_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange) { + return mergeFrom((com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange other) { + if (other == com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + if (!other.getCiamId().isEmpty()) { + ciamId_ = other.ciamId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.getEmitTimestampInMs() != 0L) { + setEmitTimestampInMs(other.getEmitTimestampInMs()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + ciamId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 80: { + emitTimestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 80 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private java.lang.Object ciamId_ = ""; + /** + * string ciam_id = 2; + * @return The ciamId. + */ + public java.lang.String getCiamId() { + java.lang.Object ref = ciamId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + ciamId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string ciam_id = 2; + * @return The bytes for ciamId. + */ + public com.google.protobuf.ByteString + getCiamIdBytes() { + java.lang.Object ref = ciamId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + ciamId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string ciam_id = 2; + * @param value The ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @return This builder for chaining. + */ + public Builder clearCiamId() { + ciamId_ = getDefaultInstance().getCiamId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string ciam_id = 2; + * @param value The bytes for ciamId to set. + * @return This builder for chaining. + */ + public Builder setCiamIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ciamId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object vin_ = ""; + /** + * string vin = 3; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string vin = 3; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string vin = 3; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string vin = 3; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string vin = 3; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private long emitTimestampInMs_ ; + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @return The emitTimestampInMs. + */ + @java.lang.Override + public long getEmitTimestampInMs() { + return emitTimestampInMs_; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @param value The emitTimestampInMs to set. + * @return This builder for chaining. + */ + public Builder setEmitTimestampInMs(long value) { + + emitTimestampInMs_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * When was the event emitted (milliseconds in Unix time)
+       * 
+ * + * int64 emit_timestamp_in_ms = 10; + * @return This builder for chaining. + */ + public Builder clearEmitTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000008); + emitTimestampInMs_ = 0L; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.PreferredDealerChange) + } + + // @@protoc_insertion_point(class_scope:proto.PreferredDealerChange) + private static final com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange(); + } + + public static com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PreferredDealerChange parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VehicleEvents.PreferredDealerChange getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VEPUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VEPUpdate_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VEPUpdate_AttributesEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VEPUpdate_AttributesEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAttributeStatus_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAttributeStatus_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeProgramsValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeProgramsValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ChargeProgramParameters_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ChargeProgramParameters_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WeeklyProfileValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WeeklyProfileValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VVRTimeProfile_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VVRTimeProfile_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_EcoHistogramValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_EcoHistogramValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_EcoHistogramBin_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_EcoHistogramBin_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SpeedAlertConfigurationValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SpeedAlertConfigurationValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_SpeedAlertConfiguration_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_SpeedAlertConfiguration_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WeeklySettingsHeadUnitValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WeeklySettingsHeadUnitValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WeeklySetting_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WeeklySetting_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TemperaturePointsValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TemperaturePointsValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TemperaturePoint_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TemperaturePoint_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WeekdayTariffValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WeekdayTariffValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_WeekendTariffValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_WeekendTariffValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_Tariff_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_Tariff_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_StateOfChargeProfileValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_StateOfChargeProfileValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_StateOfCharge_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_StateOfCharge_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VEPUpdatesByVIN_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VEPUpdatesByVIN_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_DebugMessage_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_DebugMessage_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleStatus_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleStatus_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleStatus_AttributesEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleStatus_AttributesEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_PushMessage_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_PushMessage_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TrackingEvent_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TrackingEvent_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_TrackingEvent_PayloadEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_TrackingEvent_PayloadEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_PayloadValue_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_PayloadValue_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeVEPRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeVEPRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeVEPUpdatesByVIN_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_ConfigurePingInterval_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_ConfigurePingInterval_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeVehicleUpdated_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeVehicleUpdated_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgePreferredDealerChange_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgePreferredDealerChange_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleUpdated_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleUpdated_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_PreferredDealerChange_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_PreferredDealerChange_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\024vehicle-events.proto\022\005proto\032\030service-a" + + "ctivation.proto\032\021user-events.proto\032\026vehi" + + "cle-commands.proto\032\014protos.proto\032\020vehicl" + + "eapi.proto\"\204\002\n\tVEPUpdate\022\027\n\017sequence_num" + + "ber\030\001 \001(\005\022\013\n\003vin\030\002 \001(\t\022\023\n\013full_update\030\017 " + + "\001(\010\022\026\n\016emit_timestamp\030\n \001(\003\022\034\n\024emit_time" + + "stamp_in_ms\030\016 \001(\003\0224\n\nattributes\030\013 \003(\0132 ." + + "proto.VEPUpdate.AttributesEntry\032P\n\017Attri" + + "butesEntry\022\013\n\003key\030\001 \001(\t\022,\n\005value\030\002 \001(\0132\035" + + ".proto.VehicleAttributeStatus:\0028\001\"\261\024\n\026Ve" + + "hicleAttributeStatus\022\025\n\ttimestamp\030\001 \001(\003B" + + "\002\030\001\022\027\n\017timestamp_in_ms\030\n \001(\003\022\017\n\007changed\030" + + "\002 \001(\010\022\016\n\006status\030\003 \001(\005\022\023\n\013service_ids\030\036 \003" + + "(\005\022\025\n\rdisplay_value\030\013 \001(\t\022^\n\033combustion_" + + "consumption_unit\030\014 \001(\01627.proto.VehicleAt" + + "tributeStatus.CombustionConsumptionUnitH" + + "\000\022P\n\024gas_consumption_unit\030\r \001(\01620.proto." + + "VehicleAttributeStatus.GasConsumptionUni" + + "tH\000\022`\n\034electricity_consumption_unit\030\016 \001(" + + "\01628.proto.VehicleAttributeStatus.Electri" + + "cityConsumptionUnitH\000\022R\n\023speed_distance_" + + "unit\030\017 \001(\0162/.proto.VehicleAttributeStatu" + + "s.SpeedDistanceUnitB\002\030\001H\000\022=\n\nspeed_unit\030" + + "\031 \001(\0162\'.proto.VehicleAttributeStatus.Spe" + + "edUnitH\000\022C\n\rdistance_unit\030\032 \001(\0162*.proto." + + "VehicleAttributeStatus.DistanceUnitH\000\022I\n" + + "\020temperature_unit\030\020 \001(\0162-.proto.VehicleA" + + "ttributeStatus.TemperatureUnitH\000\022C\n\rpres" + + "sure_unit\030\021 \001(\0162*.proto.VehicleAttribute" + + "Status.PressureUnitH\000\022=\n\nratio_unit\030\022 \001(" + + "\0162\'.proto.VehicleAttributeStatus.RatioUn" + + "itH\000\022F\n\017clock_hour_unit\030\023 \001(\0162+.proto.Ve" + + "hicleAttributeStatus.ClockHourUnitH\000\022\023\n\t" + + "int_value\030\004 \001(\003H\001\022\024\n\nbool_value\030\005 \001(\010H\001\022" + + "\026\n\014string_value\030\006 \001(\tH\001\022\026\n\014double_value\030" + + "\007 \001(\001H\001\022\023\n\tnil_value\030\010 \001(\010H\001\022\033\n\021unsuppor" + + "ted_value\030\t \001(\tH\001\022A\n\030temperature_points_" + + "value\030\024 \001(\0132\035.proto.TemperaturePointsVal" + + "ueH\001\0229\n\024weekday_tariff_value\030\025 \001(\0132\031.pro" + + "to.WeekdayTariffValueH\001\0229\n\024weekend_tarif" + + "f_value\030\026 \001(\0132\031.proto.WeekendTariffValue" + + "H\001\022I\n\035state_of_charge_profile_value\030\027 \001(" + + "\0132 .proto.StateOfChargeProfileValueH\001\022M\n" + + "\037weekly_settings_head_unit_value\030\030 \001(\0132\"" + + ".proto.WeeklySettingsHeadUnitValueH\001\022N\n\037" + + "speed_alert_configuration_value\030\033 \001(\0132#." + + "proto.SpeedAlertConfigurationValueH\001\0227\n\023" + + "eco_histogram_value\030\034 \001(\0132\030.proto.EcoHis" + + "togramValueH\001\0229\n\024weekly_profile_value\030\035 " + + "\001(\0132\031.proto.WeeklyProfileValueH\001\022;\n\025char" + + "ge_programs_value\030\037 \001(\0132\032.proto.ChargePr" + + "ogramsValueH\001\"\207\001\n\031CombustionConsumptionU" + + "nit\022+\n\'UNSPECIFIED_COMBUSTION_CONSUMPTIO" + + "N_UNIT\020\000\022\023\n\017LITER_PER_100KM\020\001\022\020\n\014KM_PER_" + + "LITER\020\002\022\n\n\006MPG_UK\020\003\022\n\n\006MPG_US\020\004\"\231\001\n\032Elec" + + "tricityConsumptionUnit\022,\n(UNSPECIFIED_EL" + + "ECTRICITY_CONSUMPTION_UNIT\020\000\022\021\n\rKWH_PER_" + + "100KM\020\001\022\016\n\nKM_PER_KWH\020\002\022\021\n\rKWH_PER_100MI" + + "\020\003\022\r\n\tM_PER_KWH\020\004\022\010\n\004MPGE\020\005\"i\n\022GasConsum" + + "ptionUnit\022$\n UNSPECIFIED_GAS_CONSUMPTION" + + "_UNIT\020\000\022\020\n\014KG_PER_100KM\020\001\022\r\n\tKM_PER_KG\020\002" + + "\022\014\n\010M_PER_KG\020\003\"W\n\021SpeedDistanceUnit\022#\n\037U" + + "NSPECIFIED_SPEED_DISTANCE_UNIT\020\000\022\014\n\010KM_P" + + "ER_H\020\001\022\013\n\007M_PER_H\020\002\032\002\030\001\"H\n\tSpeedUnit\022\032\n\026" + + "UNSPECIFIED_SPEED_UNIT\020\000\022\017\n\013KM_PER_HOUR\020" + + "\001\022\016\n\nM_PER_HOUR\020\002\"H\n\014DistanceUnit\022\035\n\031UNS" + + "PECIFIED_DISTANCE_UNIT\020\000\022\016\n\nKILOMETERS\020\001" + + "\022\t\n\005MILES\020\002\"P\n\017TemperatureUnit\022 \n\034UNSPEC" + + "IFIED_TEMPERATURE_UNIT\020\000\022\013\n\007CELSIUS\020\001\022\016\n" + + "\nFAHRENHEIT\020\002\"H\n\014PressureUnit\022\035\n\031UNSPECI" + + "FIED_PRESSURE_UNIT\020\000\022\007\n\003KPA\020\001\022\007\n\003BAR\020\002\022\007" + + "\n\003PSI\020\003\"4\n\tRatioUnit\022\032\n\026UNSPECIFIED_RATI" + + "O_UNIT\020\000\022\013\n\007PERCENT\020\001\"D\n\rClockHourUnit\022\037" + + "\n\033UNSPECIFIED_CLOCK_HOUR_UNIT\020\000\022\010\n\004T12H\020" + + "\001\022\010\n\004T24H\020\002B\016\n\014display_unitB\020\n\016attribute" + + "_type\"X\n\023ChargeProgramsValue\022A\n\031charge_p" + + "rogram_parameters\030\001 \003(\0132\036.proto.ChargePr" + + "ogramParameters\"\344\002\n\027ChargeProgramParamet" + + "ers\022;\n\016charge_program\030\001 \001(\0162\024.proto.Char" + + "geProgramR\rchargeprogram\022\027\n\007max_soc\030\002 \001(" + + "\005R\006maxSoc\022\037\n\013auto_unlock\030\003 \001(\010R\nautounlo" + + "ck\0226\n\027location_based_charging\030\004 \001(\010R\025loc" + + "ationbasedcharging\022%\n\016weekly_profile\030\005 \001" + + "(\010R\rweeklyprofile\022\036\n\nclockTimer\030\006 \001(\010R\nc" + + "lockTimer\0220\n\024max_charging_current\030\007 \001(\005R" + + "\022MaxChargingCurrent\022!\n\014eco_charging\030\010 \001(" + + "\010R\013EcoCharging\"\315\003\n\022WeeklyProfileValue\022T\n" + + "\'single_time_profile_entries_activatable" + + "\030\001 \001(\010R#singleTimeProfileEntriesActivata" + + "ble\022R\n\'max_number_of_weekly_time_profile" + + "_slots\030\002 \001(\005R!maxNumberOfWeeklyTimeProfi" + + "leSlots\022<\n\033max_number_of_time_profiles\030\003" + + " \001(\005R\027maxNumberOfTimeProfiles\022M\n$current" + + "_number_of_time_profile_slots\030\004 \001(\005R\037cur" + + "rentNumberOfTimeProfileSlots\022D\n\037current_" + + "number_of_time_profiles\030\005 \001(\005R\033currentNu" + + "mberOfTimeProfiles\022:\n\rtime_profiles\030\006 \003(" + + "\0132\025.proto.VVRTimeProfileR\014timeProfiles\"\302" + + "\001\n\016VVRTimeProfile\022\026\n\nidentifier\030\001 \001(\005R\002i" + + "d\022\022\n\004hour\030\002 \001(\005R\004hour\022\023\n\006minute\030\003 \001(\005R\003m" + + "in\022(\n\004days\030\004 \003(\0162\025.proto.TimeProfileDayR" + + "\003day\022\026\n\006active\030\005 \001(\010R\006active\022-\n\026applicat" + + "ion_identifier\030\006 \001(\005R\rapplicationId\"G\n\021E" + + "coHistogramValue\0222\n\022eco_histogram_bins\030\001" + + " \003(\0132\026.proto.EcoHistogramBin\"2\n\017EcoHisto" + + "gramBin\022\020\n\010interval\030\001 \001(\001\022\r\n\005value\030\002 \001(\001" + + "\"b\n\034SpeedAlertConfigurationValue\022B\n\032spee" + + "d_alert_configurations\030\001 \003(\0132\036.proto.Spe" + + "edAlertConfiguration\"p\n\027SpeedAlertConfig" + + "uration\022\032\n\022end_timestamp_in_s\030\001 \001(\003\022\030\n\020t" + + "hreshold_in_kph\030\002 \001(\005\022\037\n\027threshold_displ" + + "ay_value\030\003 \001(\t\"L\n\033WeeklySettingsHeadUnit" + + "Value\022-\n\017weekly_settings\030\001 \003(\0132\024.proto.W" + + "eeklySetting\"<\n\rWeeklySetting\022\013\n\003day\030\001 \001" + + "(\005\022\036\n\026minutes_since_midnight\030\002 \001(\005\"M\n\026Te" + + "mperaturePointsValue\0223\n\022temperature_poin" + + "ts\030\001 \003(\0132\027.proto.TemperaturePoint\"X\n\020Tem" + + "peraturePoint\022\014\n\004zone\030\001 \001(\t\022\023\n\013temperatu" + + "re\030\002 \001(\001\022!\n\031temperature_display_value\030\003 " + + "\001(\t\"4\n\022WeekdayTariffValue\022\036\n\007tariffs\030\001 \003" + + "(\0132\r.proto.Tariff\"4\n\022WeekendTariffValue\022" + + "\036\n\007tariffs\030\001 \003(\0132\r.proto.Tariff\"$\n\006Tarif" + + "f\022\014\n\004rate\030\001 \001(\005\022\014\n\004time\030\002 \001(\005\"K\n\031StateOf" + + "ChargeProfileValue\022.\n\020states_of_charge\030\001" + + " \003(\0132\024.proto.StateOfCharge\"@\n\rStateOfCha" + + "rge\022\026\n\016timestamp_in_s\030\001 \001(\003\022\027\n\017state_of_" + + "charge\030\002 \001(\005\"\242\001\n\017VEPUpdatesByVIN\022\027\n\017sequ" + + "ence_number\030\002 \001(\005\0224\n\007updates\030\001 \003(\0132#.pro" + + "to.VEPUpdatesByVIN.UpdatesEntry\032@\n\014Updat" + + "esEntry\022\013\n\003key\030\001 \001(\t\022\037\n\005value\030\002 \001(\0132\020.pr" + + "oto.VEPUpdate:\0028\001\"\037\n\014DebugMessage\022\017\n\007mes" + + "sage\030\001 \001(\t\"\250\001\n\rVehicleStatus\022\013\n\003vin\030\001 \001(" + + "\t\0228\n\nattributes\030\002 \003(\0132$.proto.VehicleSta" + + "tus.AttributesEntry\032P\n\017AttributesEntry\022\013" + + "\n\003key\030\001 \001(\t\022,\n\005value\030\002 \001(\0132\035.proto.Vehic" + + "leAttributeStatus:\0028\001\"\372\006\n\013PushMessage\022\023\n" + + "\013tracking_id\030\005 \001(\t\022%\n\tvepUpdate\030\001 \001(\0132\020." + + "proto.VEPUpdateH\000\022,\n\nvepUpdates\030\002 \001(\0132\026." + + "proto.VEPUpdatesByVINH\000\022+\n\014debugMessage\030" + + "\003 \001(\0132\023.proto.DebugMessageH\000\022B\n\026service_" + + "status_updates\030\t \001(\0132 .proto.ServiceStat" + + "usUpdatesByVINH\000\022;\n\025service_status_updat" + + "e\030\r \001(\0132\032.proto.ServiceStatusUpdateH\000\0221\n" + + "\020user_data_update\030\n \001(\0132\025.proto.UserData" + + "UpdateH\000\022O\n user_vehicle_auth_changed_up" + + "date\030\016 \001(\0132#.proto.UserVehicleAuthChange" + + "dUpdateH\000\0227\n\023user_picture_update\030\013 \001(\0132\030" + + ".proto.UserPictureUpdateH\000\022/\n\017user_pin_u" + + "pdate\030\014 \001(\0132\024.proto.UserPINUpdateH\000\0220\n\017v" + + "ehicle_updated\030\017 \001(\0132\025.proto.VehicleUpda" + + "tedH\000\022?\n\027preferred_dealer_change\030\020 \001(\0132\034" + + ".proto.PreferredDealerChangeH\000\022X\n%apptwi" + + "n_command_status_updates_by_vin\030\021 \001(\0132\'." + + "proto.AppTwinCommandStatusUpdatesByVINH\000" + + "\022O\n\037apptwin_pending_command_request\030\022 \001(" + + "\0132$.proto.AppTwinPendingCommandsRequestH" + + "\000\0224\n\021assigned_vehicles\030\023 \001(\0132\027.proto.Ass" + + "ignedVehiclesH\000B\005\n\003msgJ\004\010\007\020\010J\004\010\010\020\t\"\304\001\n\rT" + + "rackingEvent\022\023\n\013tracking_id\030\001 \001(\t\022\021\n\ttim" + + "estamp\030\002 \001(\003\022\022\n\nevent_type\030\003 \001(\t\0222\n\007payl" + + "oad\030\004 \003(\0132!.proto.TrackingEvent.PayloadE" + + "ntry\032C\n\014PayloadEntry\022\013\n\003key\030\001 \001(\t\022\"\n\005val" + + "ue\030\002 \001(\0132\023.proto.PayloadValue:\0028\001\"p\n\014Pay" + + "loadValue\022\026\n\014string_value\030\001 \001(\tH\000\022\023\n\tint" + + "_value\030\002 \001(\005H\000\022\024\n\nbool_value\030\003 \001(\010H\000\022\026\n\014" + + "double_value\030\004 \001(\001H\000B\005\n\003msg\"4\n\025Acknowled" + + "geVEPRequest\022\027\n\017sequence_number\030\001 \001(\005:\002\030" + + "\001\"5\n\032AcknowledgeVEPUpdatesByVIN\022\027\n\017seque" + + "nce_number\030\001 \001(\005\"1\n\025ConfigurePingInterva" + + "l\022\030\n\020ping_time_millis\030\001 \001(\005\"4\n\031Acknowled" + + "geVehicleUpdated\022\027\n\017sequence_number\030\001 \001(" + + "\005\";\n AcknowledgePreferredDealerChange\022\027\n" + + "\017sequence_number\030\001 \001(\005\"e\n\016VehicleUpdated" + + "\022\027\n\017sequence_number\030\001 \001(\005\022\017\n\007ciam_id\030\002 \001" + + "(\t\022\013\n\003vin\030\003 \001(\t\022\034\n\024emit_timestamp_in_ms\030" + + "\n \001(\003\"l\n\025PreferredDealerChange\022\027\n\017sequen" + + "ce_number\030\001 \001(\005\022\017\n\007ciam_id\030\002 \001(\t\022\013\n\003vin\030" + + "\003 \001(\t\022\034\n\024emit_timestamp_in_ms\030\n \001(\003*y\n\rC" + + "hargeProgram\022\032\n\026DEFAULT_CHARGE_PROGRAM\020\000" + + "\022\032\n\026INSTANT_CHARGE_PROGRAM\020\001\022\027\n\023HOME_CHA" + + "RGE_PROGRAM\020\002\022\027\n\023WORK_CHARGE_PROGRAM\020\003*f" + + "\n\017AttributeStatus\022\017\n\013VALUE_VALID\020\000\022\026\n\022VA" + + "LUE_NOT_RECEIVED\020\001\022\021\n\rVALUE_INVALID\020\003\022\027\n" + + "\023VALUE_NOT_AVAILABLE\020\004B\034\n\032com.daimler.mb" + + "carkit.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.daimler.mbcarkit.proto.ServiceActivation.getDescriptor(), + com.daimler.mbcarkit.proto.UserEvents.getDescriptor(), + com.daimler.mbcarkit.proto.VehicleCommands.getDescriptor(), + com.daimler.mbcarkit.proto.Protos.getDescriptor(), + com.daimler.mbcarkit.proto.Vehicleapi.getDescriptor(), + }); + internal_static_proto_VEPUpdate_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_VEPUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VEPUpdate_descriptor, + new java.lang.String[] { "SequenceNumber", "Vin", "FullUpdate", "EmitTimestamp", "EmitTimestampInMs", "Attributes", }); + internal_static_proto_VEPUpdate_AttributesEntry_descriptor = + internal_static_proto_VEPUpdate_descriptor.getNestedTypes().get(0); + internal_static_proto_VEPUpdate_AttributesEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VEPUpdate_AttributesEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_VehicleAttributeStatus_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_proto_VehicleAttributeStatus_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAttributeStatus_descriptor, + new java.lang.String[] { "Timestamp", "TimestampInMs", "Changed", "Status", "ServiceIds", "DisplayValue", "CombustionConsumptionUnit", "GasConsumptionUnit", "ElectricityConsumptionUnit", "SpeedDistanceUnit", "SpeedUnit", "DistanceUnit", "TemperatureUnit", "PressureUnit", "RatioUnit", "ClockHourUnit", "IntValue", "BoolValue", "StringValue", "DoubleValue", "NilValue", "UnsupportedValue", "TemperaturePointsValue", "WeekdayTariffValue", "WeekendTariffValue", "StateOfChargeProfileValue", "WeeklySettingsHeadUnitValue", "SpeedAlertConfigurationValue", "EcoHistogramValue", "WeeklyProfileValue", "ChargeProgramsValue", "DisplayUnit", "AttributeType", }); + internal_static_proto_ChargeProgramsValue_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_proto_ChargeProgramsValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeProgramsValue_descriptor, + new java.lang.String[] { "ChargeProgramParameters", }); + internal_static_proto_ChargeProgramParameters_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_proto_ChargeProgramParameters_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ChargeProgramParameters_descriptor, + new java.lang.String[] { "ChargeProgram", "MaxSoc", "AutoUnlock", "LocationBasedCharging", "WeeklyProfile", "ClockTimer", "MaxChargingCurrent", "EcoCharging", }); + internal_static_proto_WeeklyProfileValue_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_proto_WeeklyProfileValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WeeklyProfileValue_descriptor, + new java.lang.String[] { "SingleTimeProfileEntriesActivatable", "MaxNumberOfWeeklyTimeProfileSlots", "MaxNumberOfTimeProfiles", "CurrentNumberOfTimeProfileSlots", "CurrentNumberOfTimeProfiles", "TimeProfiles", }); + internal_static_proto_VVRTimeProfile_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_proto_VVRTimeProfile_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VVRTimeProfile_descriptor, + new java.lang.String[] { "Identifier", "Hour", "Minute", "Days", "Active", "ApplicationIdentifier", }); + internal_static_proto_EcoHistogramValue_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_proto_EcoHistogramValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_EcoHistogramValue_descriptor, + new java.lang.String[] { "EcoHistogramBins", }); + internal_static_proto_EcoHistogramBin_descriptor = + getDescriptor().getMessageTypes().get(7); + internal_static_proto_EcoHistogramBin_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_EcoHistogramBin_descriptor, + new java.lang.String[] { "Interval", "Value", }); + internal_static_proto_SpeedAlertConfigurationValue_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_proto_SpeedAlertConfigurationValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SpeedAlertConfigurationValue_descriptor, + new java.lang.String[] { "SpeedAlertConfigurations", }); + internal_static_proto_SpeedAlertConfiguration_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_proto_SpeedAlertConfiguration_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_SpeedAlertConfiguration_descriptor, + new java.lang.String[] { "EndTimestampInS", "ThresholdInKph", "ThresholdDisplayValue", }); + internal_static_proto_WeeklySettingsHeadUnitValue_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_proto_WeeklySettingsHeadUnitValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WeeklySettingsHeadUnitValue_descriptor, + new java.lang.String[] { "WeeklySettings", }); + internal_static_proto_WeeklySetting_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_proto_WeeklySetting_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WeeklySetting_descriptor, + new java.lang.String[] { "Day", "MinutesSinceMidnight", }); + internal_static_proto_TemperaturePointsValue_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_proto_TemperaturePointsValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TemperaturePointsValue_descriptor, + new java.lang.String[] { "TemperaturePoints", }); + internal_static_proto_TemperaturePoint_descriptor = + getDescriptor().getMessageTypes().get(13); + internal_static_proto_TemperaturePoint_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TemperaturePoint_descriptor, + new java.lang.String[] { "Zone", "Temperature", "TemperatureDisplayValue", }); + internal_static_proto_WeekdayTariffValue_descriptor = + getDescriptor().getMessageTypes().get(14); + internal_static_proto_WeekdayTariffValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WeekdayTariffValue_descriptor, + new java.lang.String[] { "Tariffs", }); + internal_static_proto_WeekendTariffValue_descriptor = + getDescriptor().getMessageTypes().get(15); + internal_static_proto_WeekendTariffValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_WeekendTariffValue_descriptor, + new java.lang.String[] { "Tariffs", }); + internal_static_proto_Tariff_descriptor = + getDescriptor().getMessageTypes().get(16); + internal_static_proto_Tariff_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_Tariff_descriptor, + new java.lang.String[] { "Rate", "Time", }); + internal_static_proto_StateOfChargeProfileValue_descriptor = + getDescriptor().getMessageTypes().get(17); + internal_static_proto_StateOfChargeProfileValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_StateOfChargeProfileValue_descriptor, + new java.lang.String[] { "StatesOfCharge", }); + internal_static_proto_StateOfCharge_descriptor = + getDescriptor().getMessageTypes().get(18); + internal_static_proto_StateOfCharge_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_StateOfCharge_descriptor, + new java.lang.String[] { "TimestampInS", "StateOfCharge", }); + internal_static_proto_VEPUpdatesByVIN_descriptor = + getDescriptor().getMessageTypes().get(19); + internal_static_proto_VEPUpdatesByVIN_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VEPUpdatesByVIN_descriptor, + new java.lang.String[] { "SequenceNumber", "Updates", }); + internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_descriptor = + internal_static_proto_VEPUpdatesByVIN_descriptor.getNestedTypes().get(0); + internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VEPUpdatesByVIN_UpdatesEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_DebugMessage_descriptor = + getDescriptor().getMessageTypes().get(20); + internal_static_proto_DebugMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_DebugMessage_descriptor, + new java.lang.String[] { "Message", }); + internal_static_proto_VehicleStatus_descriptor = + getDescriptor().getMessageTypes().get(21); + internal_static_proto_VehicleStatus_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleStatus_descriptor, + new java.lang.String[] { "Vin", "Attributes", }); + internal_static_proto_VehicleStatus_AttributesEntry_descriptor = + internal_static_proto_VehicleStatus_descriptor.getNestedTypes().get(0); + internal_static_proto_VehicleStatus_AttributesEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleStatus_AttributesEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_PushMessage_descriptor = + getDescriptor().getMessageTypes().get(22); + internal_static_proto_PushMessage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_PushMessage_descriptor, + new java.lang.String[] { "TrackingId", "VepUpdate", "VepUpdates", "DebugMessage", "ServiceStatusUpdates", "ServiceStatusUpdate", "UserDataUpdate", "UserVehicleAuthChangedUpdate", "UserPictureUpdate", "UserPinUpdate", "VehicleUpdated", "PreferredDealerChange", "ApptwinCommandStatusUpdatesByVin", "ApptwinPendingCommandRequest", "AssignedVehicles", "Msg", }); + internal_static_proto_TrackingEvent_descriptor = + getDescriptor().getMessageTypes().get(23); + internal_static_proto_TrackingEvent_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TrackingEvent_descriptor, + new java.lang.String[] { "TrackingId", "Timestamp", "EventType", "Payload", }); + internal_static_proto_TrackingEvent_PayloadEntry_descriptor = + internal_static_proto_TrackingEvent_descriptor.getNestedTypes().get(0); + internal_static_proto_TrackingEvent_PayloadEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_TrackingEvent_PayloadEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_PayloadValue_descriptor = + getDescriptor().getMessageTypes().get(24); + internal_static_proto_PayloadValue_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_PayloadValue_descriptor, + new java.lang.String[] { "StringValue", "IntValue", "BoolValue", "DoubleValue", "Msg", }); + internal_static_proto_AcknowledgeVEPRequest_descriptor = + getDescriptor().getMessageTypes().get(25); + internal_static_proto_AcknowledgeVEPRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeVEPRequest_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor = + getDescriptor().getMessageTypes().get(26); + internal_static_proto_AcknowledgeVEPUpdatesByVIN_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeVEPUpdatesByVIN_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_ConfigurePingInterval_descriptor = + getDescriptor().getMessageTypes().get(27); + internal_static_proto_ConfigurePingInterval_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_ConfigurePingInterval_descriptor, + new java.lang.String[] { "PingTimeMillis", }); + internal_static_proto_AcknowledgeVehicleUpdated_descriptor = + getDescriptor().getMessageTypes().get(28); + internal_static_proto_AcknowledgeVehicleUpdated_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeVehicleUpdated_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_AcknowledgePreferredDealerChange_descriptor = + getDescriptor().getMessageTypes().get(29); + internal_static_proto_AcknowledgePreferredDealerChange_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgePreferredDealerChange_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_VehicleUpdated_descriptor = + getDescriptor().getMessageTypes().get(30); + internal_static_proto_VehicleUpdated_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleUpdated_descriptor, + new java.lang.String[] { "SequenceNumber", "CiamId", "Vin", "EmitTimestampInMs", }); + internal_static_proto_PreferredDealerChange_descriptor = + getDescriptor().getMessageTypes().get(31); + internal_static_proto_PreferredDealerChange_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_PreferredDealerChange_descriptor, + new java.lang.String[] { "SequenceNumber", "CiamId", "Vin", "EmitTimestampInMs", }); + descriptor.resolveAllFeaturesImmutable(); + com.daimler.mbcarkit.proto.ServiceActivation.getDescriptor(); + com.daimler.mbcarkit.proto.UserEvents.getDescriptor(); + com.daimler.mbcarkit.proto.VehicleCommands.getDescriptor(); + com.daimler.mbcarkit.proto.Protos.getDescriptor(); + com.daimler.mbcarkit.proto.Vehicleapi.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Vehicleapi.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Vehicleapi.java new file mode 100644 index 00000000000..ccc1adcd2f6 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/Vehicleapi.java @@ -0,0 +1,13223 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vehicleapi.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class Vehicleapi { + private Vehicleapi() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + Vehicleapi.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + } + /** + *
+   * Sending direction: App -> BFF -> AppTwin
+   * 
+ * + * Protobuf type {@code proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN} + */ + public static final class AcknowledgeAppTwinCommandStatusUpdatesByVIN extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN) + AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AcknowledgeAppTwinCommandStatusUpdatesByVIN.class.getName()); + } + // Use AcknowledgeAppTwinCommandStatusUpdatesByVIN.newBuilder() to construct. + private AcknowledgeAppTwinCommandStatusUpdatesByVIN(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AcknowledgeAppTwinCommandStatusUpdatesByVIN() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.class, com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN other = (com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sending direction: App -> BFF -> AppTwin
+     * 
+ * + * Protobuf type {@code proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN) + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVINOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.class, com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN build() { + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN result = new com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN) + } + + // @@protoc_insertion_point(class_scope:proto.AcknowledgeAppTwinCommandStatusUpdatesByVIN) + private static final com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AcknowledgeAppTwinCommandStatusUpdatesByVIN parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AppTwinCommandStatusUpdatesByVINOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AppTwinCommandStatusUpdatesByVIN) + com.google.protobuf.MessageOrBuilder { + + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + int getSequenceNumber(); + + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + int getUpdatesByVinCount(); + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + boolean containsUpdatesByVin( + java.lang.String key); + /** + * Use {@link #getUpdatesByVinMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getUpdatesByVin(); + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + java.util.Map + getUpdatesByVinMap(); + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getUpdatesByVinOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID defaultValue); + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getUpdatesByVinOrThrow( + java.lang.String key); + } + /** + *
+   * Sending direction: App <- BFF <- AppTwin
+   * 
+ * + * Protobuf type {@code proto.AppTwinCommandStatusUpdatesByVIN} + */ + public static final class AppTwinCommandStatusUpdatesByVIN extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AppTwinCommandStatusUpdatesByVIN) + AppTwinCommandStatusUpdatesByVINOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AppTwinCommandStatusUpdatesByVIN.class.getName()); + } + // Use AppTwinCommandStatusUpdatesByVIN.newBuilder() to construct. + private AppTwinCommandStatusUpdatesByVIN(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AppTwinCommandStatusUpdatesByVIN() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByVIN_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetUpdatesByVin(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder.class); + } + + public static final int SEQUENCE_NUMBER_FIELD_NUMBER = 1; + private int sequenceNumber_ = 0; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + + public static final int UPDATES_BY_VIN_FIELD_NUMBER = 2; + private static final class UpdatesByVinDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByVIN_UpdatesByVinEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID> updatesByVin_; + private com.google.protobuf.MapField + internalGetUpdatesByVin() { + if (updatesByVin_ == null) { + return com.google.protobuf.MapField.emptyMapField( + UpdatesByVinDefaultEntryHolder.defaultEntry); + } + return updatesByVin_; + } + public int getUpdatesByVinCount() { + return internalGetUpdatesByVin().getMap().size(); + } + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + @java.lang.Override + public boolean containsUpdatesByVin( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetUpdatesByVin().getMap().containsKey(key); + } + /** + * Use {@link #getUpdatesByVinMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getUpdatesByVin() { + return getUpdatesByVinMap(); + } + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + @java.lang.Override + public java.util.Map getUpdatesByVinMap() { + return internalGetUpdatesByVin().getMap(); + } + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getUpdatesByVinOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetUpdatesByVin().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * VIN -> Update
+     * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getUpdatesByVinOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetUpdatesByVin().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (sequenceNumber_ != 0) { + output.writeInt32(1, sequenceNumber_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetUpdatesByVin(), + UpdatesByVinDefaultEntryHolder.defaultEntry, + 2); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (sequenceNumber_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(1, sequenceNumber_); + } + for (java.util.Map.Entry entry + : internalGetUpdatesByVin().getMap().entrySet()) { + com.google.protobuf.MapEntry + updatesByVin__ = UpdatesByVinDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, updatesByVin__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN other = (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) obj; + + if (getSequenceNumber() + != other.getSequenceNumber()) return false; + if (!internalGetUpdatesByVin().equals( + other.internalGetUpdatesByVin())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + SEQUENCE_NUMBER_FIELD_NUMBER; + hash = (53 * hash) + getSequenceNumber(); + if (!internalGetUpdatesByVin().getMap().isEmpty()) { + hash = (37 * hash) + UPDATES_BY_VIN_FIELD_NUMBER; + hash = (53 * hash) + internalGetUpdatesByVin().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sending direction: App <- BFF <- AppTwin
+     * 
+ * + * Protobuf type {@code proto.AppTwinCommandStatusUpdatesByVIN} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AppTwinCommandStatusUpdatesByVIN) + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVINOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByVIN_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetUpdatesByVin(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetMutableUpdatesByVin(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByVIN_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + sequenceNumber_ = 0; + internalGetMutableUpdatesByVin().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByVIN_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN build() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN result = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.sequenceNumber_ = sequenceNumber_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.updatesByVin_ = internalGetUpdatesByVin().build(UpdatesByVinDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN.getDefaultInstance()) return this; + if (other.getSequenceNumber() != 0) { + setSequenceNumber(other.getSequenceNumber()); + } + internalGetMutableUpdatesByVin().mergeFrom( + other.internalGetUpdatesByVin()); + bitField0_ |= 0x00000002; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + sequenceNumber_ = input.readInt32(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + com.google.protobuf.MapEntry + updatesByVin__ = input.readMessage( + UpdatesByVinDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableUpdatesByVin().ensureBuilderMap().put( + updatesByVin__.getKey(), updatesByVin__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private int sequenceNumber_ ; + /** + * int32 sequence_number = 1; + * @return The sequenceNumber. + */ + @java.lang.Override + public int getSequenceNumber() { + return sequenceNumber_; + } + /** + * int32 sequence_number = 1; + * @param value The sequenceNumber to set. + * @return This builder for chaining. + */ + public Builder setSequenceNumber(int value) { + + sequenceNumber_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * int32 sequence_number = 1; + * @return This builder for chaining. + */ + public Builder clearSequenceNumber() { + bitField0_ = (bitField0_ & ~0x00000001); + sequenceNumber_ = 0; + onChanged(); + return this; + } + + private static final class UpdatesByVinConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID build(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPIDOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID) { return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID) val; } + return ((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return UpdatesByVinDefaultEntryHolder.defaultEntry; + } + }; + private static final UpdatesByVinConverter updatesByVinConverter = new UpdatesByVinConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPIDOrBuilder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.Builder> updatesByVin_; + private com.google.protobuf.MapFieldBuilder + internalGetUpdatesByVin() { + if (updatesByVin_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(updatesByVinConverter); + } + return updatesByVin_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableUpdatesByVin() { + if (updatesByVin_ == null) { + updatesByVin_ = new com.google.protobuf.MapFieldBuilder<>(updatesByVinConverter); + } + bitField0_ |= 0x00000002; + onChanged(); + return updatesByVin_; + } + public int getUpdatesByVinCount() { + return internalGetUpdatesByVin().ensureBuilderMap().size(); + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + @java.lang.Override + public boolean containsUpdatesByVin( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetUpdatesByVin().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getUpdatesByVinMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getUpdatesByVin() { + return getUpdatesByVinMap(); + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + @java.lang.Override + public java.util.Map getUpdatesByVinMap() { + return internalGetUpdatesByVin().getImmutableMap(); + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getUpdatesByVinOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableUpdatesByVin().ensureBuilderMap(); + return map.containsKey(key) ? updatesByVinConverter.build(map.get(key)) : defaultValue; + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getUpdatesByVinOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableUpdatesByVin().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return updatesByVinConverter.build(map.get(key)); + } + public Builder clearUpdatesByVin() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutableUpdatesByVin().clear(); + return this; + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + public Builder removeUpdatesByVin( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableUpdatesByVin().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableUpdatesByVin() { + bitField0_ |= 0x00000002; + return internalGetMutableUpdatesByVin().ensureMessageMap(); + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + public Builder putUpdatesByVin( + java.lang.String key, + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableUpdatesByVin().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + public Builder putAllUpdatesByVin( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableUpdatesByVin().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + /** + *
+       * VIN -> Update
+       * 
+ * + * map<string, .proto.AppTwinCommandStatusUpdatesByPID> updates_by_vin = 2; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.Builder putUpdatesByVinBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableUpdatesByVin().ensureBuilderMap(); + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPIDOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID) { + entry = ((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.AppTwinCommandStatusUpdatesByVIN) + } + + // @@protoc_insertion_point(class_scope:proto.AppTwinCommandStatusUpdatesByVIN) + private static final com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AppTwinCommandStatusUpdatesByVIN parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AppTwinCommandStatusUpdatesByPIDOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AppTwinCommandStatusUpdatesByPID) + com.google.protobuf.MessageOrBuilder { + + /** + * string vin = 1; + * @return The vin. + */ + java.lang.String getVin(); + /** + * string vin = 1; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + int getUpdatesByPidCount(); + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + boolean containsUpdatesByPid( + long key); + /** + * Use {@link #getUpdatesByPidMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getUpdatesByPid(); + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + java.util.Map + getUpdatesByPidMap(); + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getUpdatesByPidOrDefault( + long key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus defaultValue); + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getUpdatesByPidOrThrow( + long key); + } + /** + *
+   * Sending direction: App <- BFF <- AppTwin as part of an AppTwinCommandStatusUpdatesByVIN
+   * 
+ * + * Protobuf type {@code proto.AppTwinCommandStatusUpdatesByPID} + */ + public static final class AppTwinCommandStatusUpdatesByPID extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AppTwinCommandStatusUpdatesByPID) + AppTwinCommandStatusUpdatesByPIDOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AppTwinCommandStatusUpdatesByPID.class.getName()); + } + // Use AppTwinCommandStatusUpdatesByPID.newBuilder() to construct. + private AppTwinCommandStatusUpdatesByPID(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AppTwinCommandStatusUpdatesByPID() { + vin_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByPID_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetUpdatesByPid(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByPID_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.Builder.class); + } + + public static final int VIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + * string vin = 1; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + * string vin = 1; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int UPDATES_BY_PID_FIELD_NUMBER = 2; + private static final class UpdatesByPidDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.Long, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByPID_UpdatesByPidEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.INT64, + 0L, + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.Long, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus> updatesByPid_; + private com.google.protobuf.MapField + internalGetUpdatesByPid() { + if (updatesByPid_ == null) { + return com.google.protobuf.MapField.emptyMapField( + UpdatesByPidDefaultEntryHolder.defaultEntry); + } + return updatesByPid_; + } + public int getUpdatesByPidCount() { + return internalGetUpdatesByPid().getMap().size(); + } + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + @java.lang.Override + public boolean containsUpdatesByPid( + long key) { + + return internalGetUpdatesByPid().getMap().containsKey(key); + } + /** + * Use {@link #getUpdatesByPidMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getUpdatesByPid() { + return getUpdatesByPidMap(); + } + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + @java.lang.Override + public java.util.Map getUpdatesByPidMap() { + return internalGetUpdatesByPid().getMap(); + } + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getUpdatesByPidOrDefault( + long key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus defaultValue) { + + java.util.Map map = + internalGetUpdatesByPid().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + *
+     * Process ID -> Status
+     * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getUpdatesByPidOrThrow( + long key) { + + java.util.Map map = + internalGetUpdatesByPid().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, vin_); + } + com.google.protobuf.GeneratedMessage + .serializeLongMapTo( + output, + internalGetUpdatesByPid(), + UpdatesByPidDefaultEntryHolder.defaultEntry, + 2); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, vin_); + } + for (java.util.Map.Entry entry + : internalGetUpdatesByPid().getMap().entrySet()) { + com.google.protobuf.MapEntry + updatesByPid__ = UpdatesByPidDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, updatesByPid__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID other = (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID) obj; + + if (!getVin() + .equals(other.getVin())) return false; + if (!internalGetUpdatesByPid().equals( + other.internalGetUpdatesByPid())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + if (!internalGetUpdatesByPid().getMap().isEmpty()) { + hash = (37 * hash) + UPDATES_BY_PID_FIELD_NUMBER; + hash = (53 * hash) + internalGetUpdatesByPid().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sending direction: App <- BFF <- AppTwin as part of an AppTwinCommandStatusUpdatesByVIN
+     * 
+ * + * Protobuf type {@code proto.AppTwinCommandStatusUpdatesByPID} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AppTwinCommandStatusUpdatesByPID) + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPIDOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByPID_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetUpdatesByPid(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 2: + return internalGetMutableUpdatesByPid(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByPID_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + vin_ = ""; + internalGetMutableUpdatesByPid().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatusUpdatesByPID_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID build() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID result = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.updatesByPid_ = internalGetUpdatesByPid().build(UpdatesByPidDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID.getDefaultInstance()) return this; + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000001; + onChanged(); + } + internalGetMutableUpdatesByPid().mergeFrom( + other.internalGetUpdatesByPid()); + bitField0_ |= 0x00000002; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + com.google.protobuf.MapEntry + updatesByPid__ = input.readMessage( + UpdatesByPidDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableUpdatesByPid().ensureBuilderMap().put( + updatesByPid__.getKey(), updatesByPid__.getValue()); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object vin_ = ""; + /** + * string vin = 1; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string vin = 1; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string vin = 1; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string vin = 1; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string vin = 1; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private static final class UpdatesByPidConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus build(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus) { return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus) val; } + return ((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return UpdatesByPidDefaultEntryHolder.defaultEntry; + } + }; + private static final UpdatesByPidConverter updatesByPidConverter = new UpdatesByPidConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.Long, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusOrBuilder, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.Builder> updatesByPid_; + private com.google.protobuf.MapFieldBuilder + internalGetUpdatesByPid() { + if (updatesByPid_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(updatesByPidConverter); + } + return updatesByPid_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableUpdatesByPid() { + if (updatesByPid_ == null) { + updatesByPid_ = new com.google.protobuf.MapFieldBuilder<>(updatesByPidConverter); + } + bitField0_ |= 0x00000002; + onChanged(); + return updatesByPid_; + } + public int getUpdatesByPidCount() { + return internalGetUpdatesByPid().ensureBuilderMap().size(); + } + /** + *
+       * Process ID -> Status
+       * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + @java.lang.Override + public boolean containsUpdatesByPid( + long key) { + + return internalGetUpdatesByPid().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getUpdatesByPidMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getUpdatesByPid() { + return getUpdatesByPidMap(); + } + /** + *
+       * Process ID -> Status
+       * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + @java.lang.Override + public java.util.Map getUpdatesByPidMap() { + return internalGetUpdatesByPid().getImmutableMap(); + } + /** + *
+       * Process ID -> Status
+       * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getUpdatesByPidOrDefault( + long key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus defaultValue) { + + java.util.Map map = internalGetMutableUpdatesByPid().ensureBuilderMap(); + return map.containsKey(key) ? updatesByPidConverter.build(map.get(key)) : defaultValue; + } + /** + *
+       * Process ID -> Status
+       * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getUpdatesByPidOrThrow( + long key) { + + java.util.Map map = internalGetMutableUpdatesByPid().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return updatesByPidConverter.build(map.get(key)); + } + public Builder clearUpdatesByPid() { + bitField0_ = (bitField0_ & ~0x00000002); + internalGetMutableUpdatesByPid().clear(); + return this; + } + /** + *
+       * Process ID -> Status
+       * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + public Builder removeUpdatesByPid( + long key) { + + internalGetMutableUpdatesByPid().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableUpdatesByPid() { + bitField0_ |= 0x00000002; + return internalGetMutableUpdatesByPid().ensureMessageMap(); + } + /** + *
+       * Process ID -> Status
+       * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + public Builder putUpdatesByPid( + long key, + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus value) { + + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableUpdatesByPid().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000002; + return this; + } + /** + *
+       * Process ID -> Status
+       * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + public Builder putAllUpdatesByPid( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableUpdatesByPid().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000002; + return this; + } + /** + *
+       * Process ID -> Status
+       * 
+ * + * map<int64, .proto.AppTwinCommandStatus> updates_by_pid = 2; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.Builder putUpdatesByPidBuilderIfAbsent( + long key) { + java.util.Map builderMap = internalGetMutableUpdatesByPid().ensureBuilderMap(); + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus) { + entry = ((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.AppTwinCommandStatusUpdatesByPID) + } + + // @@protoc_insertion_point(class_scope:proto.AppTwinCommandStatusUpdatesByPID) + private static final com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AppTwinCommandStatusUpdatesByPID parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AppTwinCommandStatusOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AppTwinCommandStatus) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * The remote vehicleAPI process id of the command.
+     * 
+ * + * int64 process_id = 1; + * @return The processId. + */ + long getProcessId(); + + /** + *
+     * The id of the command with which the app created it. Only guaranteed to be
+     * set on the first transmission to the app.
+     * 
+ * + * string request_id = 2; + * @return The requestId. + */ + java.lang.String getRequestId(); + /** + *
+     * The id of the command with which the app created it. Only guaranteed to be
+     * set on the first transmission to the app.
+     * 
+ * + * string request_id = 2; + * @return The bytes for requestId. + */ + com.google.protobuf.ByteString + getRequestIdBytes(); + + /** + *
+     * The initial CommandStatus from the response of the vehicleAPI has a timestamp of
+     * -1
+     * 
+ * + * int64 timestamp_in_ms = 3; + * @return The timestampInMs. + */ + long getTimestampInMs(); + + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + java.util.List + getErrorsList(); + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index); + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + int getErrorsCount(); + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + java.util.List + getErrorsOrBuilderList(); + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index); + + /** + *
+     * Potential timestamp until user cannot send login requests. Data in seconds
+     * since Unix epoch
+     * 
+ * + * int64 blocking_time_seconds = 5 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.blocking_time_seconds is deprecated. + * See vehicleapi.proto;l=53 + * @return The blockingTimeSeconds. + */ + @java.lang.Deprecated long getBlockingTimeSeconds(); + + /** + *
+     * Potential amount of failed pin attempts.
+     * 
+ * + * int32 pin_attempts = 6 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.pin_attempts is deprecated. + * See vehicleapi.proto;l=56 + * @return The pinAttempts. + */ + @java.lang.Deprecated int getPinAttempts(); + + /** + *
+     * The type of command the AppTwinCommandStatus belongs to
+     * 
+ * + * .proto.ACP.CommandType type = 7; + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + /** + *
+     * The type of command the AppTwinCommandStatus belongs to
+     * 
+ * + * .proto.ACP.CommandType type = 7; + * @return The type. + */ + com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType(); + + /** + *
+     * The command state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + /** + *
+     * The command state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @return The state. + */ + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState(); + } + /** + *
+   * Sending direction: App <- BFF <- AppTwin as part of an AppTwinCommandStatusUpdatesByPID
+   * 
+ * + * Protobuf type {@code proto.AppTwinCommandStatus} + */ + public static final class AppTwinCommandStatus extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AppTwinCommandStatus) + AppTwinCommandStatusOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AppTwinCommandStatus.class.getName()); + } + // Use AppTwinCommandStatus.newBuilder() to construct. + private AppTwinCommandStatus(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AppTwinCommandStatus() { + requestId_ = ""; + errors_ = java.util.Collections.emptyList(); + type_ = 0; + state_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.Builder.class); + } + + public static final int PROCESS_ID_FIELD_NUMBER = 1; + private long processId_ = 0L; + /** + *
+     * The remote vehicleAPI process id of the command.
+     * 
+ * + * int64 process_id = 1; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + + public static final int REQUEST_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object requestId_ = ""; + /** + *
+     * The id of the command with which the app created it. Only guaranteed to be
+     * set on the first transmission to the app.
+     * 
+ * + * string request_id = 2; + * @return The requestId. + */ + @java.lang.Override + public java.lang.String getRequestId() { + java.lang.Object ref = requestId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + requestId_ = s; + return s; + } + } + /** + *
+     * The id of the command with which the app created it. Only guaranteed to be
+     * set on the first transmission to the app.
+     * 
+ * + * string request_id = 2; + * @return The bytes for requestId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRequestIdBytes() { + java.lang.Object ref = requestId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + requestId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TIMESTAMP_IN_MS_FIELD_NUMBER = 3; + private long timestampInMs_ = 0L; + /** + *
+     * The initial CommandStatus from the response of the vehicleAPI has a timestamp of
+     * -1
+     * 
+ * + * int64 timestamp_in_ms = 3; + * @return The timestampInMs. + */ + @java.lang.Override + public long getTimestampInMs() { + return timestampInMs_; + } + + public static final int ERRORS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private java.util.List errors_; + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + @java.lang.Override + public java.util.List getErrorsList() { + return errors_; + } + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + @java.lang.Override + public java.util.List + getErrorsOrBuilderList() { + return errors_; + } + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + @java.lang.Override + public int getErrorsCount() { + return errors_.size(); + } + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index) { + return errors_.get(index); + } + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index) { + return errors_.get(index); + } + + public static final int BLOCKING_TIME_SECONDS_FIELD_NUMBER = 5; + private long blockingTimeSeconds_ = 0L; + /** + *
+     * Potential timestamp until user cannot send login requests. Data in seconds
+     * since Unix epoch
+     * 
+ * + * int64 blocking_time_seconds = 5 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.blocking_time_seconds is deprecated. + * See vehicleapi.proto;l=53 + * @return The blockingTimeSeconds. + */ + @java.lang.Override + @java.lang.Deprecated public long getBlockingTimeSeconds() { + return blockingTimeSeconds_; + } + + public static final int PIN_ATTEMPTS_FIELD_NUMBER = 6; + private int pinAttempts_ = 0; + /** + *
+     * Potential amount of failed pin attempts.
+     * 
+ * + * int32 pin_attempts = 6 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.pin_attempts is deprecated. + * See vehicleapi.proto;l=56 + * @return The pinAttempts. + */ + @java.lang.Override + @java.lang.Deprecated public int getPinAttempts() { + return pinAttempts_; + } + + public static final int TYPE_FIELD_NUMBER = 7; + private int type_ = 0; + /** + *
+     * The type of command the AppTwinCommandStatus belongs to
+     * 
+ * + * .proto.ACP.CommandType type = 7; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + *
+     * The type of command the AppTwinCommandStatus belongs to
+     * 
+ * + * .proto.ACP.CommandType type = 7; + * @return The type. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType() { + com.daimler.mbcarkit.proto.Acp.ACP.CommandType result = com.daimler.mbcarkit.proto.Acp.ACP.CommandType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNRECOGNIZED : result; + } + + public static final int STATE_FIELD_NUMBER = 8; + private int state_ = 0; + /** + *
+     * The command state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override public int getStateValue() { + return state_; + } + /** + *
+     * The command state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @return The state. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.forNumber(state_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (processId_ != 0L) { + output.writeInt64(1, processId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, requestId_); + } + if (timestampInMs_ != 0L) { + output.writeInt64(3, timestampInMs_); + } + for (int i = 0; i < errors_.size(); i++) { + output.writeMessage(4, errors_.get(i)); + } + if (blockingTimeSeconds_ != 0L) { + output.writeInt64(5, blockingTimeSeconds_); + } + if (pinAttempts_ != 0) { + output.writeInt32(6, pinAttempts_); + } + if (type_ != com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNKNOWNCOMMANDTYPE.getNumber()) { + output.writeEnum(7, type_); + } + if (state_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNKNOWN_COMMAND_STATE.getNumber()) { + output.writeEnum(8, state_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (processId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, processId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, requestId_); + } + if (timestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(3, timestampInMs_); + } + for (int i = 0; i < errors_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, errors_.get(i)); + } + if (blockingTimeSeconds_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(5, blockingTimeSeconds_); + } + if (pinAttempts_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(6, pinAttempts_); + } + if (type_ != com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNKNOWNCOMMANDTYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(7, type_); + } + if (state_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNKNOWN_COMMAND_STATE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(8, state_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus other = (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus) obj; + + if (getProcessId() + != other.getProcessId()) return false; + if (!getRequestId() + .equals(other.getRequestId())) return false; + if (getTimestampInMs() + != other.getTimestampInMs()) return false; + if (!getErrorsList() + .equals(other.getErrorsList())) return false; + if (getBlockingTimeSeconds() + != other.getBlockingTimeSeconds()) return false; + if (getPinAttempts() + != other.getPinAttempts()) return false; + if (type_ != other.type_) return false; + if (state_ != other.state_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PROCESS_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getProcessId()); + hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER; + hash = (53 * hash) + getRequestId().hashCode(); + hash = (37 * hash) + TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestampInMs()); + if (getErrorsCount() > 0) { + hash = (37 * hash) + ERRORS_FIELD_NUMBER; + hash = (53 * hash) + getErrorsList().hashCode(); + } + hash = (37 * hash) + BLOCKING_TIME_SECONDS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getBlockingTimeSeconds()); + hash = (37 * hash) + PIN_ATTEMPTS_FIELD_NUMBER; + hash = (53 * hash) + getPinAttempts(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * Sending direction: App <- BFF <- AppTwin as part of an AppTwinCommandStatusUpdatesByPID
+     * 
+ * + * Protobuf type {@code proto.AppTwinCommandStatus} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AppTwinCommandStatus) + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + processId_ = 0L; + requestId_ = ""; + timestampInMs_ = 0L; + if (errorsBuilder_ == null) { + errors_ = java.util.Collections.emptyList(); + } else { + errors_ = null; + errorsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + blockingTimeSeconds_ = 0L; + pinAttempts_ = 0; + type_ = 0; + state_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinCommandStatus_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus build() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus result = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus result) { + if (errorsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + errors_ = java.util.Collections.unmodifiableList(errors_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.errors_ = errors_; + } else { + result.errors_ = errorsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.processId_ = processId_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.requestId_ = requestId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.timestampInMs_ = timestampInMs_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + result.blockingTimeSeconds_ = blockingTimeSeconds_; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.pinAttempts_ = pinAttempts_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.type_ = type_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.state_ = state_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus.getDefaultInstance()) return this; + if (other.getProcessId() != 0L) { + setProcessId(other.getProcessId()); + } + if (!other.getRequestId().isEmpty()) { + requestId_ = other.requestId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.getTimestampInMs() != 0L) { + setTimestampInMs(other.getTimestampInMs()); + } + if (errorsBuilder_ == null) { + if (!other.errors_.isEmpty()) { + if (errors_.isEmpty()) { + errors_ = other.errors_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureErrorsIsMutable(); + errors_.addAll(other.errors_); + } + onChanged(); + } + } else { + if (!other.errors_.isEmpty()) { + if (errorsBuilder_.isEmpty()) { + errorsBuilder_.dispose(); + errorsBuilder_ = null; + errors_ = other.errors_; + bitField0_ = (bitField0_ & ~0x00000008); + errorsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getErrorsFieldBuilder() : null; + } else { + errorsBuilder_.addAllMessages(other.errors_); + } + } + } + if (other.getBlockingTimeSeconds() != 0L) { + setBlockingTimeSeconds(other.getBlockingTimeSeconds()); + } + if (other.getPinAttempts() != 0) { + setPinAttempts(other.getPinAttempts()); + } + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + processId_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + requestId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 24: { + timestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000004; + break; + } // case 24 + case 34: { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError m = + input.readMessage( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.parser(), + extensionRegistry); + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(m); + } else { + errorsBuilder_.addMessage(m); + } + break; + } // case 34 + case 40: { + blockingTimeSeconds_ = input.readInt64(); + bitField0_ |= 0x00000010; + break; + } // case 40 + case 48: { + pinAttempts_ = input.readInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 56: { + type_ = input.readEnum(); + bitField0_ |= 0x00000040; + break; + } // case 56 + case 64: { + state_ = input.readEnum(); + bitField0_ |= 0x00000080; + break; + } // case 64 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long processId_ ; + /** + *
+       * The remote vehicleAPI process id of the command.
+       * 
+ * + * int64 process_id = 1; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + /** + *
+       * The remote vehicleAPI process id of the command.
+       * 
+ * + * int64 process_id = 1; + * @param value The processId to set. + * @return This builder for chaining. + */ + public Builder setProcessId(long value) { + + processId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * The remote vehicleAPI process id of the command.
+       * 
+ * + * int64 process_id = 1; + * @return This builder for chaining. + */ + public Builder clearProcessId() { + bitField0_ = (bitField0_ & ~0x00000001); + processId_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object requestId_ = ""; + /** + *
+       * The id of the command with which the app created it. Only guaranteed to be
+       * set on the first transmission to the app.
+       * 
+ * + * string request_id = 2; + * @return The requestId. + */ + public java.lang.String getRequestId() { + java.lang.Object ref = requestId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + requestId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * The id of the command with which the app created it. Only guaranteed to be
+       * set on the first transmission to the app.
+       * 
+ * + * string request_id = 2; + * @return The bytes for requestId. + */ + public com.google.protobuf.ByteString + getRequestIdBytes() { + java.lang.Object ref = requestId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + requestId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * The id of the command with which the app created it. Only guaranteed to be
+       * set on the first transmission to the app.
+       * 
+ * + * string request_id = 2; + * @param value The requestId to set. + * @return This builder for chaining. + */ + public Builder setRequestId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + requestId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * The id of the command with which the app created it. Only guaranteed to be
+       * set on the first transmission to the app.
+       * 
+ * + * string request_id = 2; + * @return This builder for chaining. + */ + public Builder clearRequestId() { + requestId_ = getDefaultInstance().getRequestId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * The id of the command with which the app created it. Only guaranteed to be
+       * set on the first transmission to the app.
+       * 
+ * + * string request_id = 2; + * @param value The bytes for requestId to set. + * @return This builder for chaining. + */ + public Builder setRequestIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + requestId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private long timestampInMs_ ; + /** + *
+       * The initial CommandStatus from the response of the vehicleAPI has a timestamp of
+       * -1
+       * 
+ * + * int64 timestamp_in_ms = 3; + * @return The timestampInMs. + */ + @java.lang.Override + public long getTimestampInMs() { + return timestampInMs_; + } + /** + *
+       * The initial CommandStatus from the response of the vehicleAPI has a timestamp of
+       * -1
+       * 
+ * + * int64 timestamp_in_ms = 3; + * @param value The timestampInMs to set. + * @return This builder for chaining. + */ + public Builder setTimestampInMs(long value) { + + timestampInMs_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * The initial CommandStatus from the response of the vehicleAPI has a timestamp of
+       * -1
+       * 
+ * + * int64 timestamp_in_ms = 3; + * @return This builder for chaining. + */ + public Builder clearTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000004); + timestampInMs_ = 0L; + onChanged(); + return this; + } + + private java.util.List errors_ = + java.util.Collections.emptyList(); + private void ensureErrorsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + errors_ = new java.util.ArrayList(errors_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder> errorsBuilder_; + + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public java.util.List getErrorsList() { + if (errorsBuilder_ == null) { + return java.util.Collections.unmodifiableList(errors_); + } else { + return errorsBuilder_.getMessageList(); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public int getErrorsCount() { + if (errorsBuilder_ == null) { + return errors_.size(); + } else { + return errorsBuilder_.getCount(); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index) { + if (errorsBuilder_ == null) { + return errors_.get(index); + } else { + return errorsBuilder_.getMessage(index); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder setErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.set(index, value); + onChanged(); + } else { + errorsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder setErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.set(index, builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder addErrors(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.add(value); + onChanged(); + } else { + errorsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder addErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.add(index, value); + onChanged(); + } else { + errorsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder addErrors( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder addErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(index, builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder addAllErrors( + java.lang.Iterable values) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, errors_); + onChanged(); + } else { + errorsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder clearErrors() { + if (errorsBuilder_ == null) { + errors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + errorsBuilder_.clear(); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public Builder removeErrors(int index) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.remove(index); + onChanged(); + } else { + errorsBuilder_.remove(index); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder getErrorsBuilder( + int index) { + return getErrorsFieldBuilder().getBuilder(index); + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index) { + if (errorsBuilder_ == null) { + return errors_.get(index); } else { + return errorsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public java.util.List + getErrorsOrBuilderList() { + if (errorsBuilder_ != null) { + return errorsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(errors_); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder addErrorsBuilder() { + return getErrorsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()); + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder addErrorsBuilder( + int index) { + return getErrorsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()); + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 4; + */ + public java.util.List + getErrorsBuilderList() { + return getErrorsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder> + getErrorsFieldBuilder() { + if (errorsBuilder_ == null) { + errorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder>( + errors_, + ((bitField0_ & 0x00000008) != 0), + getParentForChildren(), + isClean()); + errors_ = null; + } + return errorsBuilder_; + } + + private long blockingTimeSeconds_ ; + /** + *
+       * Potential timestamp until user cannot send login requests. Data in seconds
+       * since Unix epoch
+       * 
+ * + * int64 blocking_time_seconds = 5 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.blocking_time_seconds is deprecated. + * See vehicleapi.proto;l=53 + * @return The blockingTimeSeconds. + */ + @java.lang.Override + @java.lang.Deprecated public long getBlockingTimeSeconds() { + return blockingTimeSeconds_; + } + /** + *
+       * Potential timestamp until user cannot send login requests. Data in seconds
+       * since Unix epoch
+       * 
+ * + * int64 blocking_time_seconds = 5 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.blocking_time_seconds is deprecated. + * See vehicleapi.proto;l=53 + * @param value The blockingTimeSeconds to set. + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder setBlockingTimeSeconds(long value) { + + blockingTimeSeconds_ = value; + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * Potential timestamp until user cannot send login requests. Data in seconds
+       * since Unix epoch
+       * 
+ * + * int64 blocking_time_seconds = 5 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.blocking_time_seconds is deprecated. + * See vehicleapi.proto;l=53 + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder clearBlockingTimeSeconds() { + bitField0_ = (bitField0_ & ~0x00000010); + blockingTimeSeconds_ = 0L; + onChanged(); + return this; + } + + private int pinAttempts_ ; + /** + *
+       * Potential amount of failed pin attempts.
+       * 
+ * + * int32 pin_attempts = 6 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.pin_attempts is deprecated. + * See vehicleapi.proto;l=56 + * @return The pinAttempts. + */ + @java.lang.Override + @java.lang.Deprecated public int getPinAttempts() { + return pinAttempts_; + } + /** + *
+       * Potential amount of failed pin attempts.
+       * 
+ * + * int32 pin_attempts = 6 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.pin_attempts is deprecated. + * See vehicleapi.proto;l=56 + * @param value The pinAttempts to set. + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder setPinAttempts(int value) { + + pinAttempts_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * Potential amount of failed pin attempts.
+       * 
+ * + * int32 pin_attempts = 6 [deprecated = true]; + * @deprecated proto.AppTwinCommandStatus.pin_attempts is deprecated. + * See vehicleapi.proto;l=56 + * @return This builder for chaining. + */ + @java.lang.Deprecated public Builder clearPinAttempts() { + bitField0_ = (bitField0_ & ~0x00000020); + pinAttempts_ = 0; + onChanged(); + return this; + } + + private int type_ = 0; + /** + *
+       * The type of command the AppTwinCommandStatus belongs to
+       * 
+ * + * .proto.ACP.CommandType type = 7; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + *
+       * The type of command the AppTwinCommandStatus belongs to
+       * 
+ * + * .proto.ACP.CommandType type = 7; + * @param value The enum numeric value on the wire for type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + type_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + *
+       * The type of command the AppTwinCommandStatus belongs to
+       * 
+ * + * .proto.ACP.CommandType type = 7; + * @return The type. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType() { + com.daimler.mbcarkit.proto.Acp.ACP.CommandType result = com.daimler.mbcarkit.proto.Acp.ACP.CommandType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNRECOGNIZED : result; + } + /** + *
+       * The type of command the AppTwinCommandStatus belongs to
+       * 
+ * + * .proto.ACP.CommandType type = 7; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(com.daimler.mbcarkit.proto.Acp.ACP.CommandType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000040; + type_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * The type of command the AppTwinCommandStatus belongs to
+       * 
+ * + * .proto.ACP.CommandType type = 7; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000040); + type_ = 0; + onChanged(); + return this; + } + + private int state_ = 0; + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override public int getStateValue() { + return state_; + } + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @return The state. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.forNumber(state_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNRECOGNIZED : result; + } + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState(com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000080; + state_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 8; + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000080); + state_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AppTwinCommandStatus) + } + + // @@protoc_insertion_point(class_scope:proto.AppTwinCommandStatus) + private static final com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AppTwinCommandStatus parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleAPICommandPostResultOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleAPICommandPostResult) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * The remote VVA process id of the command.
+     * 
+ * + * int64 process_id = 1 [json_name = "processid"]; + * @return The processId. + */ + long getProcessId(); + + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + java.util.List + getErrorsList(); + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index); + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + int getErrorsCount(); + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + java.util.List + getErrorsOrBuilderList(); + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index); + + /** + *
+     * The command state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + /** + *
+     * The command state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @return The state. + */ + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState(); + } + /** + *
+   * VehicleAPICommandPostResult is a message type that can be unmarshaled from a POST request against the vehicle API
+   * for issuing commands.
+   * 
+ * + * Protobuf type {@code proto.VehicleAPICommandPostResult} + */ + public static final class VehicleAPICommandPostResult extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleAPICommandPostResult) + VehicleAPICommandPostResultOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleAPICommandPostResult.class.getName()); + } + // Use VehicleAPICommandPostResult.newBuilder() to construct. + private VehicleAPICommandPostResult(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleAPICommandPostResult() { + errors_ = java.util.Collections.emptyList(); + state_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandPostResult_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandPostResult_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult.Builder.class); + } + + public static final int PROCESS_ID_FIELD_NUMBER = 1; + private long processId_ = 0L; + /** + *
+     * The remote VVA process id of the command.
+     * 
+ * + * int64 process_id = 1 [json_name = "processid"]; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + + public static final int ERRORS_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private java.util.List errors_; + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + @java.lang.Override + public java.util.List getErrorsList() { + return errors_; + } + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + @java.lang.Override + public java.util.List + getErrorsOrBuilderList() { + return errors_; + } + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + @java.lang.Override + public int getErrorsCount() { + return errors_.size(); + } + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index) { + return errors_.get(index); + } + /** + *
+     * Potential ACP error if the command request could not be fulfilled
+     * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index) { + return errors_.get(index); + } + + public static final int STATE_FIELD_NUMBER = 3; + private int state_ = 0; + /** + *
+     * The command state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override public int getStateValue() { + return state_; + } + /** + *
+     * The command state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @return The state. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.forNumber(state_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (processId_ != 0L) { + output.writeInt64(1, processId_); + } + for (int i = 0; i < errors_.size(); i++) { + output.writeMessage(2, errors_.get(i)); + } + if (state_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNKNOWN_COMMAND_STATE.getNumber()) { + output.writeEnum(3, state_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (processId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(1, processId_); + } + for (int i = 0; i < errors_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, errors_.get(i)); + } + if (state_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNKNOWN_COMMAND_STATE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, state_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult other = (com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult) obj; + + if (getProcessId() + != other.getProcessId()) return false; + if (!getErrorsList() + .equals(other.getErrorsList())) return false; + if (state_ != other.state_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + PROCESS_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getProcessId()); + if (getErrorsCount() > 0) { + hash = (37 * hash) + ERRORS_FIELD_NUMBER; + hash = (53 * hash) + getErrorsList().hashCode(); + } + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * VehicleAPICommandPostResult is a message type that can be unmarshaled from a POST request against the vehicle API
+     * for issuing commands.
+     * 
+ * + * Protobuf type {@code proto.VehicleAPICommandPostResult} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleAPICommandPostResult) + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResultOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandPostResult_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandPostResult_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + processId_ = 0L; + if (errorsBuilder_ == null) { + errors_ = java.util.Collections.emptyList(); + } else { + errors_ = null; + errorsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000002); + state_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandPostResult_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult build() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult result = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult result) { + if (errorsBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0)) { + errors_ = java.util.Collections.unmodifiableList(errors_); + bitField0_ = (bitField0_ & ~0x00000002); + } + result.errors_ = errors_; + } else { + result.errors_ = errorsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.processId_ = processId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.state_ = state_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult.getDefaultInstance()) return this; + if (other.getProcessId() != 0L) { + setProcessId(other.getProcessId()); + } + if (errorsBuilder_ == null) { + if (!other.errors_.isEmpty()) { + if (errors_.isEmpty()) { + errors_ = other.errors_; + bitField0_ = (bitField0_ & ~0x00000002); + } else { + ensureErrorsIsMutable(); + errors_.addAll(other.errors_); + } + onChanged(); + } + } else { + if (!other.errors_.isEmpty()) { + if (errorsBuilder_.isEmpty()) { + errorsBuilder_.dispose(); + errorsBuilder_ = null; + errors_ = other.errors_; + bitField0_ = (bitField0_ & ~0x00000002); + errorsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getErrorsFieldBuilder() : null; + } else { + errorsBuilder_.addAllMessages(other.errors_); + } + } + } + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + processId_ = input.readInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError m = + input.readMessage( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.parser(), + extensionRegistry); + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(m); + } else { + errorsBuilder_.addMessage(m); + } + break; + } // case 18 + case 24: { + state_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long processId_ ; + /** + *
+       * The remote VVA process id of the command.
+       * 
+ * + * int64 process_id = 1 [json_name = "processid"]; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + /** + *
+       * The remote VVA process id of the command.
+       * 
+ * + * int64 process_id = 1 [json_name = "processid"]; + * @param value The processId to set. + * @return This builder for chaining. + */ + public Builder setProcessId(long value) { + + processId_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * The remote VVA process id of the command.
+       * 
+ * + * int64 process_id = 1 [json_name = "processid"]; + * @return This builder for chaining. + */ + public Builder clearProcessId() { + bitField0_ = (bitField0_ & ~0x00000001); + processId_ = 0L; + onChanged(); + return this; + } + + private java.util.List errors_ = + java.util.Collections.emptyList(); + private void ensureErrorsIsMutable() { + if (!((bitField0_ & 0x00000002) != 0)) { + errors_ = new java.util.ArrayList(errors_); + bitField0_ |= 0x00000002; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder> errorsBuilder_; + + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public java.util.List getErrorsList() { + if (errorsBuilder_ == null) { + return java.util.Collections.unmodifiableList(errors_); + } else { + return errorsBuilder_.getMessageList(); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public int getErrorsCount() { + if (errorsBuilder_ == null) { + return errors_.size(); + } else { + return errorsBuilder_.getCount(); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index) { + if (errorsBuilder_ == null) { + return errors_.get(index); + } else { + return errorsBuilder_.getMessage(index); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder setErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.set(index, value); + onChanged(); + } else { + errorsBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder setErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.set(index, builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder addErrors(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.add(value); + onChanged(); + } else { + errorsBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder addErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.add(index, value); + onChanged(); + } else { + errorsBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder addErrors( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder addErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(index, builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder addAllErrors( + java.lang.Iterable values) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, errors_); + onChanged(); + } else { + errorsBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder clearErrors() { + if (errorsBuilder_ == null) { + errors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + } else { + errorsBuilder_.clear(); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public Builder removeErrors(int index) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.remove(index); + onChanged(); + } else { + errorsBuilder_.remove(index); + } + return this; + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder getErrorsBuilder( + int index) { + return getErrorsFieldBuilder().getBuilder(index); + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index) { + if (errorsBuilder_ == null) { + return errors_.get(index); } else { + return errorsBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public java.util.List + getErrorsOrBuilderList() { + if (errorsBuilder_ != null) { + return errorsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(errors_); + } + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder addErrorsBuilder() { + return getErrorsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()); + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder addErrorsBuilder( + int index) { + return getErrorsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()); + } + /** + *
+       * Potential ACP error if the command request could not be fulfilled
+       * 
+ * + * repeated .proto.VehicleAPIError errors = 2 [json_name = "errors"]; + */ + public java.util.List + getErrorsBuilderList() { + return getErrorsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder> + getErrorsFieldBuilder() { + if (errorsBuilder_ == null) { + errorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder>( + errors_, + ((bitField0_ & 0x00000002) != 0), + getParentForChildren(), + isClean()); + errors_ = null; + } + return errorsBuilder_; + } + + private int state_ = 0; + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override public int getStateValue() { + return state_; + } + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @return The state. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.forNumber(state_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNRECOGNIZED : result; + } + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState(com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + state_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * The command state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 3 [json_name = "state"]; + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000004); + state_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleAPICommandPostResult) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleAPICommandPostResult) + private static final com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleAPICommandPostResult parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandPostResult getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleAPICommandGetResultOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleAPICommandGetResult) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + java.util.List + getProcessList(); + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus getProcess(int index); + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + int getProcessCount(); + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + java.util.List + getProcessOrBuilderList(); + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatusOrBuilder getProcessOrBuilder( + int index); + + /** + *
+     * Number of enqueued commands in related command queue
+     * 
+ * + * int32 queue_count = 2 [json_name = "queuecount"]; + * @return The queueCount. + */ + int getQueueCount(); + + /** + *
+     * Name of related command queue type
+     * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @return The enum numeric value on the wire for queueType. + */ + int getQueueTypeValue(); + /** + *
+     * Name of related command queue type
+     * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @return The queueType. + */ + com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType getQueueType(); + } + /** + * Protobuf type {@code proto.VehicleAPICommandGetResult} + */ + public static final class VehicleAPICommandGetResult extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleAPICommandGetResult) + VehicleAPICommandGetResultOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleAPICommandGetResult.class.getName()); + } + // Use VehicleAPICommandGetResult.newBuilder() to construct. + private VehicleAPICommandGetResult(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleAPICommandGetResult() { + process_ = java.util.Collections.emptyList(); + queueType_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandGetResult_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandGetResult_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult.Builder.class); + } + + public static final int PROCESS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List process_; + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + @java.lang.Override + public java.util.List getProcessList() { + return process_; + } + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + @java.lang.Override + public java.util.List + getProcessOrBuilderList() { + return process_; + } + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + @java.lang.Override + public int getProcessCount() { + return process_.size(); + } + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus getProcess(int index) { + return process_.get(index); + } + /** + *
+     * List of processes
+     * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatusOrBuilder getProcessOrBuilder( + int index) { + return process_.get(index); + } + + public static final int QUEUE_COUNT_FIELD_NUMBER = 2; + private int queueCount_ = 0; + /** + *
+     * Number of enqueued commands in related command queue
+     * 
+ * + * int32 queue_count = 2 [json_name = "queuecount"]; + * @return The queueCount. + */ + @java.lang.Override + public int getQueueCount() { + return queueCount_; + } + + public static final int QUEUE_TYPE_FIELD_NUMBER = 3; + private int queueType_ = 0; + /** + *
+     * Name of related command queue type
+     * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @return The enum numeric value on the wire for queueType. + */ + @java.lang.Override public int getQueueTypeValue() { + return queueType_; + } + /** + *
+     * Name of related command queue type
+     * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @return The queueType. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType getQueueType() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType.forNumber(queueType_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < process_.size(); i++) { + output.writeMessage(1, process_.get(i)); + } + if (queueCount_ != 0) { + output.writeInt32(2, queueCount_); + } + if (queueType_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType.UNKNOWNCOMMANDQUEUETYPE.getNumber()) { + output.writeEnum(3, queueType_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < process_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, process_.get(i)); + } + if (queueCount_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(2, queueCount_); + } + if (queueType_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType.UNKNOWNCOMMANDQUEUETYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(3, queueType_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult other = (com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult) obj; + + if (!getProcessList() + .equals(other.getProcessList())) return false; + if (getQueueCount() + != other.getQueueCount()) return false; + if (queueType_ != other.queueType_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getProcessCount() > 0) { + hash = (37 * hash) + PROCESS_FIELD_NUMBER; + hash = (53 * hash) + getProcessList().hashCode(); + } + hash = (37 * hash) + QUEUE_COUNT_FIELD_NUMBER; + hash = (53 * hash) + getQueueCount(); + hash = (37 * hash) + QUEUE_TYPE_FIELD_NUMBER; + hash = (53 * hash) + queueType_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VehicleAPICommandGetResult} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleAPICommandGetResult) + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResultOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandGetResult_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandGetResult_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (processBuilder_ == null) { + process_ = java.util.Collections.emptyList(); + } else { + process_ = null; + processBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + queueCount_ = 0; + queueType_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandGetResult_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult build() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult result = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult result) { + if (processBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + process_ = java.util.Collections.unmodifiableList(process_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.process_ = process_; + } else { + result.process_ = processBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.queueCount_ = queueCount_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.queueType_ = queueType_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult.getDefaultInstance()) return this; + if (processBuilder_ == null) { + if (!other.process_.isEmpty()) { + if (process_.isEmpty()) { + process_ = other.process_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureProcessIsMutable(); + process_.addAll(other.process_); + } + onChanged(); + } + } else { + if (!other.process_.isEmpty()) { + if (processBuilder_.isEmpty()) { + processBuilder_.dispose(); + processBuilder_ = null; + process_ = other.process_; + bitField0_ = (bitField0_ & ~0x00000001); + processBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getProcessFieldBuilder() : null; + } else { + processBuilder_.addAllMessages(other.process_); + } + } + } + if (other.getQueueCount() != 0) { + setQueueCount(other.getQueueCount()); + } + if (other.queueType_ != 0) { + setQueueTypeValue(other.getQueueTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus m = + input.readMessage( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.parser(), + extensionRegistry); + if (processBuilder_ == null) { + ensureProcessIsMutable(); + process_.add(m); + } else { + processBuilder_.addMessage(m); + } + break; + } // case 10 + case 16: { + queueCount_ = input.readInt32(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 24: { + queueType_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 24 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List process_ = + java.util.Collections.emptyList(); + private void ensureProcessIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + process_ = new java.util.ArrayList(process_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatusOrBuilder> processBuilder_; + + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public java.util.List getProcessList() { + if (processBuilder_ == null) { + return java.util.Collections.unmodifiableList(process_); + } else { + return processBuilder_.getMessageList(); + } + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public int getProcessCount() { + if (processBuilder_ == null) { + return process_.size(); + } else { + return processBuilder_.getCount(); + } + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus getProcess(int index) { + if (processBuilder_ == null) { + return process_.get(index); + } else { + return processBuilder_.getMessage(index); + } + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder setProcess( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus value) { + if (processBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProcessIsMutable(); + process_.set(index, value); + onChanged(); + } else { + processBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder setProcess( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder builderForValue) { + if (processBuilder_ == null) { + ensureProcessIsMutable(); + process_.set(index, builderForValue.build()); + onChanged(); + } else { + processBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder addProcess(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus value) { + if (processBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProcessIsMutable(); + process_.add(value); + onChanged(); + } else { + processBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder addProcess( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus value) { + if (processBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureProcessIsMutable(); + process_.add(index, value); + onChanged(); + } else { + processBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder addProcess( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder builderForValue) { + if (processBuilder_ == null) { + ensureProcessIsMutable(); + process_.add(builderForValue.build()); + onChanged(); + } else { + processBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder addProcess( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder builderForValue) { + if (processBuilder_ == null) { + ensureProcessIsMutable(); + process_.add(index, builderForValue.build()); + onChanged(); + } else { + processBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder addAllProcess( + java.lang.Iterable values) { + if (processBuilder_ == null) { + ensureProcessIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, process_); + onChanged(); + } else { + processBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder clearProcess() { + if (processBuilder_ == null) { + process_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + processBuilder_.clear(); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public Builder removeProcess(int index) { + if (processBuilder_ == null) { + ensureProcessIsMutable(); + process_.remove(index); + onChanged(); + } else { + processBuilder_.remove(index); + } + return this; + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder getProcessBuilder( + int index) { + return getProcessFieldBuilder().getBuilder(index); + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatusOrBuilder getProcessOrBuilder( + int index) { + if (processBuilder_ == null) { + return process_.get(index); } else { + return processBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public java.util.List + getProcessOrBuilderList() { + if (processBuilder_ != null) { + return processBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(process_); + } + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder addProcessBuilder() { + return getProcessFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.getDefaultInstance()); + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder addProcessBuilder( + int index) { + return getProcessFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.getDefaultInstance()); + } + /** + *
+       * List of processes
+       * 
+ * + * repeated .proto.VehicleAPICommandProcessStatus process = 1 [json_name = "process"]; + */ + public java.util.List + getProcessBuilderList() { + return getProcessFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatusOrBuilder> + getProcessFieldBuilder() { + if (processBuilder_ == null) { + processBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatusOrBuilder>( + process_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + process_ = null; + } + return processBuilder_; + } + + private int queueCount_ ; + /** + *
+       * Number of enqueued commands in related command queue
+       * 
+ * + * int32 queue_count = 2 [json_name = "queuecount"]; + * @return The queueCount. + */ + @java.lang.Override + public int getQueueCount() { + return queueCount_; + } + /** + *
+       * Number of enqueued commands in related command queue
+       * 
+ * + * int32 queue_count = 2 [json_name = "queuecount"]; + * @param value The queueCount to set. + * @return This builder for chaining. + */ + public Builder setQueueCount(int value) { + + queueCount_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * Number of enqueued commands in related command queue
+       * 
+ * + * int32 queue_count = 2 [json_name = "queuecount"]; + * @return This builder for chaining. + */ + public Builder clearQueueCount() { + bitField0_ = (bitField0_ & ~0x00000002); + queueCount_ = 0; + onChanged(); + return this; + } + + private int queueType_ = 0; + /** + *
+       * Name of related command queue type
+       * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @return The enum numeric value on the wire for queueType. + */ + @java.lang.Override public int getQueueTypeValue() { + return queueType_; + } + /** + *
+       * Name of related command queue type
+       * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @param value The enum numeric value on the wire for queueType to set. + * @return This builder for chaining. + */ + public Builder setQueueTypeValue(int value) { + queueType_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Name of related command queue type
+       * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @return The queueType. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType getQueueType() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType.forNumber(queueType_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType.UNRECOGNIZED : result; + } + /** + *
+       * Name of related command queue type
+       * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @param value The queueType to set. + * @return This builder for chaining. + */ + public Builder setQueueType(com.daimler.mbcarkit.proto.Acp.VehicleAPI.QueueType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + queueType_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Name of related command queue type
+       * 
+ * + * .proto.VehicleAPI.QueueType queue_type = 3 [json_name = "queuetype"]; + * @return This builder for chaining. + */ + public Builder clearQueueType() { + bitField0_ = (bitField0_ & ~0x00000004); + queueType_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleAPICommandGetResult) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleAPICommandGetResult) + private static final com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleAPICommandGetResult parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandGetResult getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleAPIDataGetResultOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleAPIDataGetResult) + com.google.protobuf.MessageOrBuilder { + + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + int getDataCount(); + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + boolean containsData( + java.lang.String key); + /** + * Use {@link #getDataMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getData(); + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + java.util.Map + getDataMap(); + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDataOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus defaultValue); + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDataOrThrow( + java.lang.String key); + } + /** + * Protobuf type {@code proto.VehicleAPIDataGetResult} + */ + public static final class VehicleAPIDataGetResult extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleAPIDataGetResult) + VehicleAPIDataGetResultOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleAPIDataGetResult.class.getName()); + } + // Use VehicleAPIDataGetResult.newBuilder() to construct. + private VehicleAPIDataGetResult(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleAPIDataGetResult() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIDataGetResult_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetData(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIDataGetResult_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult.Builder.class); + } + + public static final int DATA_FIELD_NUMBER = 1; + private static final class DataDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIDataGetResult_DataEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus> data_; + private com.google.protobuf.MapField + internalGetData() { + if (data_ == null) { + return com.google.protobuf.MapField.emptyMapField( + DataDefaultEntryHolder.defaultEntry); + } + return data_; + } + public int getDataCount() { + return internalGetData().getMap().size(); + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + @java.lang.Override + public boolean containsData( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetData().getMap().containsKey(key); + } + /** + * Use {@link #getDataMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getData() { + return getDataMap(); + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + @java.lang.Override + public java.util.Map getDataMap() { + return internalGetData().getMap(); + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDataOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetData().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDataOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetData().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetData(), + DataDefaultEntryHolder.defaultEntry, + 1); + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (java.util.Map.Entry entry + : internalGetData().getMap().entrySet()) { + com.google.protobuf.MapEntry + data__ = DataDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, data__); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult other = (com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult) obj; + + if (!internalGetData().equals( + other.internalGetData())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (!internalGetData().getMap().isEmpty()) { + hash = (37 * hash) + DATA_FIELD_NUMBER; + hash = (53 * hash) + internalGetData().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VehicleAPIDataGetResult} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleAPIDataGetResult) + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResultOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIDataGetResult_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetData(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 1: + return internalGetMutableData(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIDataGetResult_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + internalGetMutableData().clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIDataGetResult_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult build() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult result = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.data_ = internalGetData().build(DataDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult.getDefaultInstance()) return this; + internalGetMutableData().mergeFrom( + other.internalGetData()); + bitField0_ |= 0x00000001; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.MapEntry + data__ = input.readMessage( + DataDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableData().ensureBuilderMap().put( + data__.getKey(), data__.getValue()); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private static final class DataConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus build(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatusOrBuilder val) { + if (val instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus) { return (com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus) val; } + return ((com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return DataDefaultEntryHolder.defaultEntry; + } + }; + private static final DataConverter dataConverter = new DataConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatusOrBuilder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.Builder> data_; + private com.google.protobuf.MapFieldBuilder + internalGetData() { + if (data_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(dataConverter); + } + return data_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableData() { + if (data_ == null) { + data_ = new com.google.protobuf.MapFieldBuilder<>(dataConverter); + } + bitField0_ |= 0x00000001; + onChanged(); + return data_; + } + public int getDataCount() { + return internalGetData().ensureBuilderMap().size(); + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + @java.lang.Override + public boolean containsData( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetData().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getDataMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getData() { + return getDataMap(); + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + @java.lang.Override + public java.util.Map getDataMap() { + return internalGetData().getImmutableMap(); + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + @java.lang.Override + public /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDataOrDefault( + java.lang.String key, + /* nullable */ +com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableData().ensureBuilderMap(); + return map.containsKey(key) ? dataConverter.build(map.get(key)) : defaultValue; + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDataOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableData().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return dataConverter.build(map.get(key)); + } + public Builder clearData() { + bitField0_ = (bitField0_ & ~0x00000001); + internalGetMutableData().clear(); + return this; + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + public Builder removeData( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableData().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableData() { + bitField0_ |= 0x00000001; + return internalGetMutableData().ensureMessageMap(); + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + public Builder putData( + java.lang.String key, + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableData().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000001; + return this; + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + public Builder putAllData( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableData().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000001; + return this; + } + /** + * map<string, .proto.VehicleAPIAttributeStatus> data = 1; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.Builder putDataBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableData().ensureBuilderMap(); + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatusOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus) { + entry = ((com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.Builder) entry; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleAPIDataGetResult) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleAPIDataGetResult) + private static final com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleAPIDataGetResult parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIDataGetResult getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleAPIAttributeStatusOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleAPIAttributeStatus) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * Value of the attribute (can be anything)
+     * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + * @return Whether the value field is set. + */ + boolean hasValue(); + /** + *
+     * Value of the attribute (can be anything)
+     * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + * @return The value. + */ + com.google.protobuf.Value getValue(); + /** + *
+     * Value of the attribute (can be anything)
+     * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + com.google.protobuf.ValueOrBuilder getValueOrBuilder(); + + /** + *
+     * UTC timestamp in milliseconds
+     * 
+ * + * int64 timestamp_in_ms = 2 [json_name = "ts"]; + * @return The timestampInMs. + */ + long getTimestampInMs(); + + /** + *
+     * Status of the attribute
+     * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @return The enum numeric value on the wire for status. + */ + int getStatusValue(); + /** + *
+     * Status of the attribute
+     * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @return The status. + */ + com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus getStatus(); + } + /** + * Protobuf type {@code proto.VehicleAPIAttributeStatus} + */ + public static final class VehicleAPIAttributeStatus extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleAPIAttributeStatus) + VehicleAPIAttributeStatusOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleAPIAttributeStatus.class.getName()); + } + // Use VehicleAPIAttributeStatus.newBuilder() to construct. + private VehicleAPIAttributeStatus(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleAPIAttributeStatus() { + status_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIAttributeStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIAttributeStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.Builder.class); + } + + private int bitField0_; + public static final int VALUE_FIELD_NUMBER = 3; + private com.google.protobuf.Value value_; + /** + *
+     * Value of the attribute (can be anything)
+     * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + * @return Whether the value field is set. + */ + @java.lang.Override + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * Value of the attribute (can be anything)
+     * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + * @return The value. + */ + @java.lang.Override + public com.google.protobuf.Value getValue() { + return value_ == null ? com.google.protobuf.Value.getDefaultInstance() : value_; + } + /** + *
+     * Value of the attribute (can be anything)
+     * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + @java.lang.Override + public com.google.protobuf.ValueOrBuilder getValueOrBuilder() { + return value_ == null ? com.google.protobuf.Value.getDefaultInstance() : value_; + } + + public static final int TIMESTAMP_IN_MS_FIELD_NUMBER = 2; + private long timestampInMs_ = 0L; + /** + *
+     * UTC timestamp in milliseconds
+     * 
+ * + * int64 timestamp_in_ms = 2 [json_name = "ts"]; + * @return The timestampInMs. + */ + @java.lang.Override + public long getTimestampInMs() { + return timestampInMs_; + } + + public static final int STATUS_FIELD_NUMBER = 1; + private int status_ = 0; + /** + *
+     * Status of the attribute
+     * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @return The enum numeric value on the wire for status. + */ + @java.lang.Override public int getStatusValue() { + return status_; + } + /** + *
+     * Status of the attribute
+     * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @return The status. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus getStatus() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus.forNumber(status_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (status_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus.VALUE_SET.getNumber()) { + output.writeEnum(1, status_); + } + if (timestampInMs_ != 0L) { + output.writeInt64(2, timestampInMs_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(3, getValue()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (status_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus.VALUE_SET.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(1, status_); + } + if (timestampInMs_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, timestampInMs_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getValue()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus other = (com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus) obj; + + if (hasValue() != other.hasValue()) return false; + if (hasValue()) { + if (!getValue() + .equals(other.getValue())) return false; + } + if (getTimestampInMs() + != other.getTimestampInMs()) return false; + if (status_ != other.status_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasValue()) { + hash = (37 * hash) + VALUE_FIELD_NUMBER; + hash = (53 * hash) + getValue().hashCode(); + } + hash = (37 * hash) + TIMESTAMP_IN_MS_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestampInMs()); + hash = (37 * hash) + STATUS_FIELD_NUMBER; + hash = (53 * hash) + status_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VehicleAPIAttributeStatus} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleAPIAttributeStatus) + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatusOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIAttributeStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIAttributeStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getValueFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + value_ = null; + if (valueBuilder_ != null) { + valueBuilder_.dispose(); + valueBuilder_ = null; + } + timestampInMs_ = 0L; + status_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIAttributeStatus_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus build() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus result = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus result) { + int from_bitField0_ = bitField0_; + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.value_ = valueBuilder_ == null + ? value_ + : valueBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.timestampInMs_ = timestampInMs_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.status_ = status_; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus.getDefaultInstance()) return this; + if (other.hasValue()) { + mergeValue(other.getValue()); + } + if (other.getTimestampInMs() != 0L) { + setTimestampInMs(other.getTimestampInMs()); + } + if (other.status_ != 0) { + setStatusValue(other.getStatusValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + status_ = input.readEnum(); + bitField0_ |= 0x00000004; + break; + } // case 8 + case 16: { + timestampInMs_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + input.readMessage( + getValueFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.Value value_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Value, com.google.protobuf.Value.Builder, com.google.protobuf.ValueOrBuilder> valueBuilder_; + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + * @return Whether the value field is set. + */ + public boolean hasValue() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + * @return The value. + */ + public com.google.protobuf.Value getValue() { + if (valueBuilder_ == null) { + return value_ == null ? com.google.protobuf.Value.getDefaultInstance() : value_; + } else { + return valueBuilder_.getMessage(); + } + } + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + public Builder setValue(com.google.protobuf.Value value) { + if (valueBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + value_ = value; + } else { + valueBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + public Builder setValue( + com.google.protobuf.Value.Builder builderForValue) { + if (valueBuilder_ == null) { + value_ = builderForValue.build(); + } else { + valueBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + public Builder mergeValue(com.google.protobuf.Value value) { + if (valueBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + value_ != null && + value_ != com.google.protobuf.Value.getDefaultInstance()) { + getValueBuilder().mergeFrom(value); + } else { + value_ = value; + } + } else { + valueBuilder_.mergeFrom(value); + } + if (value_ != null) { + bitField0_ |= 0x00000001; + onChanged(); + } + return this; + } + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + public Builder clearValue() { + bitField0_ = (bitField0_ & ~0x00000001); + value_ = null; + if (valueBuilder_ != null) { + valueBuilder_.dispose(); + valueBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + public com.google.protobuf.Value.Builder getValueBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getValueFieldBuilder().getBuilder(); + } + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + public com.google.protobuf.ValueOrBuilder getValueOrBuilder() { + if (valueBuilder_ != null) { + return valueBuilder_.getMessageOrBuilder(); + } else { + return value_ == null ? + com.google.protobuf.Value.getDefaultInstance() : value_; + } + } + /** + *
+       * Value of the attribute (can be anything)
+       * 
+ * + * .google.protobuf.Value value = 3 [json_name = "value"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Value, com.google.protobuf.Value.Builder, com.google.protobuf.ValueOrBuilder> + getValueFieldBuilder() { + if (valueBuilder_ == null) { + valueBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Value, com.google.protobuf.Value.Builder, com.google.protobuf.ValueOrBuilder>( + getValue(), + getParentForChildren(), + isClean()); + value_ = null; + } + return valueBuilder_; + } + + private long timestampInMs_ ; + /** + *
+       * UTC timestamp in milliseconds
+       * 
+ * + * int64 timestamp_in_ms = 2 [json_name = "ts"]; + * @return The timestampInMs. + */ + @java.lang.Override + public long getTimestampInMs() { + return timestampInMs_; + } + /** + *
+       * UTC timestamp in milliseconds
+       * 
+ * + * int64 timestamp_in_ms = 2 [json_name = "ts"]; + * @param value The timestampInMs to set. + * @return This builder for chaining. + */ + public Builder setTimestampInMs(long value) { + + timestampInMs_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * UTC timestamp in milliseconds
+       * 
+ * + * int64 timestamp_in_ms = 2 [json_name = "ts"]; + * @return This builder for chaining. + */ + public Builder clearTimestampInMs() { + bitField0_ = (bitField0_ & ~0x00000002); + timestampInMs_ = 0L; + onChanged(); + return this; + } + + private int status_ = 0; + /** + *
+       * Status of the attribute
+       * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @return The enum numeric value on the wire for status. + */ + @java.lang.Override public int getStatusValue() { + return status_; + } + /** + *
+       * Status of the attribute
+       * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @param value The enum numeric value on the wire for status to set. + * @return This builder for chaining. + */ + public Builder setStatusValue(int value) { + status_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Status of the attribute
+       * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @return The status. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus getStatus() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus.forNumber(status_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus.UNRECOGNIZED : result; + } + /** + *
+       * Status of the attribute
+       * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @param value The status to set. + * @return This builder for chaining. + */ + public Builder setStatus(com.daimler.mbcarkit.proto.Acp.VehicleAPI.AttributeStatus value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000004; + status_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Status of the attribute
+       * 
+ * + * .proto.VehicleAPI.AttributeStatus Status = 1 [json_name = "status"]; + * @return This builder for chaining. + */ + public Builder clearStatus() { + bitField0_ = (bitField0_ & ~0x00000004); + status_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleAPIAttributeStatus) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleAPIAttributeStatus) + private static final com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleAPIAttributeStatus parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIAttributeStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleAPICommandProcessStatusOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleAPICommandProcessStatus) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + java.util.List + getErrorsList(); + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index); + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + int getErrorsCount(); + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + java.util.List + getErrorsOrBuilderList(); + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index); + + /** + *
+     * GUID (RFC 4122)
+     * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @return The instanceId. + */ + java.lang.String getInstanceId(); + /** + *
+     * GUID (RFC 4122)
+     * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @return The bytes for instanceId. + */ + com.google.protobuf.ByteString + getInstanceIdBytes(); + + /** + *
+     * Name of the command
+     * 
+ * + * string name = 3 [json_name = "name"]; + * @return The name. + */ + java.lang.String getName(); + /** + *
+     * Name of the command
+     * 
+ * + * string name = 3 [json_name = "name"]; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + *
+     * Process ID
+     * 
+ * + * int64 process_id = 4 [json_name = "processid"]; + * @return The processId. + */ + long getProcessId(); + + /** + *
+     * Response parameters as defined by the command
+     * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + * @return Whether the responseParameters field is set. + */ + boolean hasResponseParameters(); + /** + *
+     * Response parameters as defined by the command
+     * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + * @return The responseParameters. + */ + com.google.protobuf.Value getResponseParameters(); + /** + *
+     * Response parameters as defined by the command
+     * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + com.google.protobuf.ValueOrBuilder getResponseParametersOrBuilder(); + + /** + *
+     * Current processing state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + int getStateValue(); + /** + *
+     * Current processing state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @return The state. + */ + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState(); + + /** + *
+     * UTC timestamp in seconds (ISO 9945)
+     * 
+ * + * int64 timestamp_in_s = 8 [json_name = "timestamp"]; + * @return The timestampInS. + */ + long getTimestampInS(); + + /** + *
+     * Tracking ID. SHOULD be a GUID (RFC 4122)
+     * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @return The trackingId. + */ + java.lang.String getTrackingId(); + /** + *
+     * Tracking ID. SHOULD be a GUID (RFC 4122)
+     * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @return The bytes for trackingId. + */ + com.google.protobuf.ByteString + getTrackingIdBytes(); + } + /** + * Protobuf type {@code proto.VehicleAPICommandProcessStatus} + */ + public static final class VehicleAPICommandProcessStatus extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleAPICommandProcessStatus) + VehicleAPICommandProcessStatusOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleAPICommandProcessStatus.class.getName()); + } + // Use VehicleAPICommandProcessStatus.newBuilder() to construct. + private VehicleAPICommandProcessStatus(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleAPICommandProcessStatus() { + errors_ = java.util.Collections.emptyList(); + instanceId_ = ""; + name_ = ""; + state_ = 0; + trackingId_ = ""; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandProcessStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandProcessStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder.class); + } + + private int bitField0_; + public static final int ERRORS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List errors_; + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + @java.lang.Override + public java.util.List getErrorsList() { + return errors_; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + @java.lang.Override + public java.util.List + getErrorsOrBuilderList() { + return errors_; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + @java.lang.Override + public int getErrorsCount() { + return errors_.size(); + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index) { + return errors_.get(index); + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index) { + return errors_.get(index); + } + + public static final int INSTANCE_ID_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object instanceId_ = ""; + /** + *
+     * GUID (RFC 4122)
+     * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @return The instanceId. + */ + @java.lang.Override + public java.lang.String getInstanceId() { + java.lang.Object ref = instanceId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + instanceId_ = s; + return s; + } + } + /** + *
+     * GUID (RFC 4122)
+     * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @return The bytes for instanceId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getInstanceIdBytes() { + java.lang.Object ref = instanceId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + instanceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int NAME_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + *
+     * Name of the command
+     * 
+ * + * string name = 3 [json_name = "name"]; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + *
+     * Name of the command
+     * 
+ * + * string name = 3 [json_name = "name"]; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PROCESS_ID_FIELD_NUMBER = 4; + private long processId_ = 0L; + /** + *
+     * Process ID
+     * 
+ * + * int64 process_id = 4 [json_name = "processid"]; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + + public static final int RESPONSE_PARAMETERS_FIELD_NUMBER = 6; + private com.google.protobuf.Value responseParameters_; + /** + *
+     * Response parameters as defined by the command
+     * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + * @return Whether the responseParameters field is set. + */ + @java.lang.Override + public boolean hasResponseParameters() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+     * Response parameters as defined by the command
+     * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + * @return The responseParameters. + */ + @java.lang.Override + public com.google.protobuf.Value getResponseParameters() { + return responseParameters_ == null ? com.google.protobuf.Value.getDefaultInstance() : responseParameters_; + } + /** + *
+     * Response parameters as defined by the command
+     * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + @java.lang.Override + public com.google.protobuf.ValueOrBuilder getResponseParametersOrBuilder() { + return responseParameters_ == null ? com.google.protobuf.Value.getDefaultInstance() : responseParameters_; + } + + public static final int STATE_FIELD_NUMBER = 7; + private int state_ = 0; + /** + *
+     * Current processing state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override public int getStateValue() { + return state_; + } + /** + *
+     * Current processing state
+     * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @return The state. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.forNumber(state_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNRECOGNIZED : result; + } + + public static final int TIMESTAMP_IN_S_FIELD_NUMBER = 8; + private long timestampInS_ = 0L; + /** + *
+     * UTC timestamp in seconds (ISO 9945)
+     * 
+ * + * int64 timestamp_in_s = 8 [json_name = "timestamp"]; + * @return The timestampInS. + */ + @java.lang.Override + public long getTimestampInS() { + return timestampInS_; + } + + public static final int TRACKING_ID_FIELD_NUMBER = 9; + @SuppressWarnings("serial") + private volatile java.lang.Object trackingId_ = ""; + /** + *
+     * Tracking ID. SHOULD be a GUID (RFC 4122)
+     * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @return The trackingId. + */ + @java.lang.Override + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } + } + /** + *
+     * Tracking ID. SHOULD be a GUID (RFC 4122)
+     * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @return The bytes for trackingId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < errors_.size(); i++) { + output.writeMessage(1, errors_.get(i)); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(instanceId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, instanceId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, name_); + } + if (processId_ != 0L) { + output.writeInt64(4, processId_); + } + if (((bitField0_ & 0x00000001) != 0)) { + output.writeMessage(6, getResponseParameters()); + } + if (state_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNKNOWN_COMMAND_STATE.getNumber()) { + output.writeEnum(7, state_); + } + if (timestampInS_ != 0L) { + output.writeInt64(8, timestampInS_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 9, trackingId_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < errors_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, errors_.get(i)); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(instanceId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, instanceId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, name_); + } + if (processId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(4, processId_); + } + if (((bitField0_ & 0x00000001) != 0)) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(6, getResponseParameters()); + } + if (state_ != com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNKNOWN_COMMAND_STATE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(7, state_); + } + if (timestampInS_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(8, timestampInS_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(trackingId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(9, trackingId_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus other = (com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus) obj; + + if (!getErrorsList() + .equals(other.getErrorsList())) return false; + if (!getInstanceId() + .equals(other.getInstanceId())) return false; + if (!getName() + .equals(other.getName())) return false; + if (getProcessId() + != other.getProcessId()) return false; + if (hasResponseParameters() != other.hasResponseParameters()) return false; + if (hasResponseParameters()) { + if (!getResponseParameters() + .equals(other.getResponseParameters())) return false; + } + if (state_ != other.state_) return false; + if (getTimestampInS() + != other.getTimestampInS()) return false; + if (!getTrackingId() + .equals(other.getTrackingId())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getErrorsCount() > 0) { + hash = (37 * hash) + ERRORS_FIELD_NUMBER; + hash = (53 * hash) + getErrorsList().hashCode(); + } + hash = (37 * hash) + INSTANCE_ID_FIELD_NUMBER; + hash = (53 * hash) + getInstanceId().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + PROCESS_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getProcessId()); + if (hasResponseParameters()) { + hash = (37 * hash) + RESPONSE_PARAMETERS_FIELD_NUMBER; + hash = (53 * hash) + getResponseParameters().hashCode(); + } + hash = (37 * hash) + STATE_FIELD_NUMBER; + hash = (53 * hash) + state_; + hash = (37 * hash) + TIMESTAMP_IN_S_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getTimestampInS()); + hash = (37 * hash) + TRACKING_ID_FIELD_NUMBER; + hash = (53 * hash) + getTrackingId().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VehicleAPICommandProcessStatus} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleAPICommandProcessStatus) + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatusOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandProcessStatus_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandProcessStatus_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.newBuilder() + private Builder() { + maybeForceBuilderInitialization(); + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + maybeForceBuilderInitialization(); + } + private void maybeForceBuilderInitialization() { + if (com.google.protobuf.GeneratedMessage + .alwaysUseFieldBuilders) { + getErrorsFieldBuilder(); + getResponseParametersFieldBuilder(); + } + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (errorsBuilder_ == null) { + errors_ = java.util.Collections.emptyList(); + } else { + errors_ = null; + errorsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + instanceId_ = ""; + name_ = ""; + processId_ = 0L; + responseParameters_ = null; + if (responseParametersBuilder_ != null) { + responseParametersBuilder_.dispose(); + responseParametersBuilder_ = null; + } + state_ = 0; + timestampInS_ = 0L; + trackingId_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPICommandProcessStatus_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus build() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus result = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus result) { + if (errorsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + errors_ = java.util.Collections.unmodifiableList(errors_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.errors_ = errors_; + } else { + result.errors_ = errorsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.instanceId_ = instanceId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.processId_ = processId_; + } + int to_bitField0_ = 0; + if (((from_bitField0_ & 0x00000010) != 0)) { + result.responseParameters_ = responseParametersBuilder_ == null + ? responseParameters_ + : responseParametersBuilder_.build(); + to_bitField0_ |= 0x00000001; + } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.state_ = state_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.timestampInS_ = timestampInS_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.trackingId_ = trackingId_; + } + result.bitField0_ |= to_bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus.getDefaultInstance()) return this; + if (errorsBuilder_ == null) { + if (!other.errors_.isEmpty()) { + if (errors_.isEmpty()) { + errors_ = other.errors_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureErrorsIsMutable(); + errors_.addAll(other.errors_); + } + onChanged(); + } + } else { + if (!other.errors_.isEmpty()) { + if (errorsBuilder_.isEmpty()) { + errorsBuilder_.dispose(); + errorsBuilder_ = null; + errors_ = other.errors_; + bitField0_ = (bitField0_ & ~0x00000001); + errorsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getErrorsFieldBuilder() : null; + } else { + errorsBuilder_.addAllMessages(other.errors_); + } + } + } + if (!other.getInstanceId().isEmpty()) { + instanceId_ = other.instanceId_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.getProcessId() != 0L) { + setProcessId(other.getProcessId()); + } + if (other.hasResponseParameters()) { + mergeResponseParameters(other.getResponseParameters()); + } + if (other.state_ != 0) { + setStateValue(other.getStateValue()); + } + if (other.getTimestampInS() != 0L) { + setTimestampInS(other.getTimestampInS()); + } + if (!other.getTrackingId().isEmpty()) { + trackingId_ = other.trackingId_; + bitField0_ |= 0x00000080; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError m = + input.readMessage( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.parser(), + extensionRegistry); + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(m); + } else { + errorsBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: { + instanceId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: { + processId_ = input.readInt64(); + bitField0_ |= 0x00000008; + break; + } // case 32 + case 50: { + input.readMessage( + getResponseParametersFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000010; + break; + } // case 50 + case 56: { + state_ = input.readEnum(); + bitField0_ |= 0x00000020; + break; + } // case 56 + case 64: { + timestampInS_ = input.readInt64(); + bitField0_ |= 0x00000040; + break; + } // case 64 + case 74: { + trackingId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000080; + break; + } // case 74 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List errors_ = + java.util.Collections.emptyList(); + private void ensureErrorsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + errors_ = new java.util.ArrayList(errors_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder> errorsBuilder_; + + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public java.util.List getErrorsList() { + if (errorsBuilder_ == null) { + return java.util.Collections.unmodifiableList(errors_); + } else { + return errorsBuilder_.getMessageList(); + } + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public int getErrorsCount() { + if (errorsBuilder_ == null) { + return errors_.size(); + } else { + return errorsBuilder_.getCount(); + } + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getErrors(int index) { + if (errorsBuilder_ == null) { + return errors_.get(index); + } else { + return errorsBuilder_.getMessage(index); + } + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder setErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.set(index, value); + onChanged(); + } else { + errorsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder setErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.set(index, builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder addErrors(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.add(value); + onChanged(); + } else { + errorsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder addErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (errorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureErrorsIsMutable(); + errors_.add(index, value); + onChanged(); + } else { + errorsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder addErrors( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder addErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.add(index, builderForValue.build()); + onChanged(); + } else { + errorsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder addAllErrors( + java.lang.Iterable values) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, errors_); + onChanged(); + } else { + errorsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder clearErrors() { + if (errorsBuilder_ == null) { + errors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + errorsBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public Builder removeErrors(int index) { + if (errorsBuilder_ == null) { + ensureErrorsIsMutable(); + errors_.remove(index); + onChanged(); + } else { + errorsBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder getErrorsBuilder( + int index) { + return getErrorsFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getErrorsOrBuilder( + int index) { + if (errorsBuilder_ == null) { + return errors_.get(index); } else { + return errorsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public java.util.List + getErrorsOrBuilderList() { + if (errorsBuilder_ != null) { + return errorsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(errors_); + } + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder addErrorsBuilder() { + return getErrorsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()); + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder addErrorsBuilder( + int index) { + return getErrorsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()); + } + /** + * repeated .proto.VehicleAPIError errors = 1 [json_name = "errors"]; + */ + public java.util.List + getErrorsBuilderList() { + return getErrorsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder> + getErrorsFieldBuilder() { + if (errorsBuilder_ == null) { + errorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder>( + errors_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + errors_ = null; + } + return errorsBuilder_; + } + + private java.lang.Object instanceId_ = ""; + /** + *
+       * GUID (RFC 4122)
+       * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @return The instanceId. + */ + public java.lang.String getInstanceId() { + java.lang.Object ref = instanceId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + instanceId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * GUID (RFC 4122)
+       * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @return The bytes for instanceId. + */ + public com.google.protobuf.ByteString + getInstanceIdBytes() { + java.lang.Object ref = instanceId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + instanceId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * GUID (RFC 4122)
+       * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @param value The instanceId to set. + * @return This builder for chaining. + */ + public Builder setInstanceId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + instanceId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * GUID (RFC 4122)
+       * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @return This builder for chaining. + */ + public Builder clearInstanceId() { + instanceId_ = getDefaultInstance().getInstanceId(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * GUID (RFC 4122)
+       * 
+ * + * string instance_id = 2 [json_name = "instanceid"]; + * @param value The bytes for instanceId to set. + * @return This builder for chaining. + */ + public Builder setInstanceIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + instanceId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object name_ = ""; + /** + *
+       * Name of the command
+       * 
+ * + * string name = 3 [json_name = "name"]; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Name of the command
+       * 
+ * + * string name = 3 [json_name = "name"]; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Name of the command
+       * 
+ * + * string name = 3 [json_name = "name"]; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * Name of the command
+       * 
+ * + * string name = 3 [json_name = "name"]; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+       * Name of the command
+       * 
+ * + * string name = 3 [json_name = "name"]; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private long processId_ ; + /** + *
+       * Process ID
+       * 
+ * + * int64 process_id = 4 [json_name = "processid"]; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + /** + *
+       * Process ID
+       * 
+ * + * int64 process_id = 4 [json_name = "processid"]; + * @param value The processId to set. + * @return This builder for chaining. + */ + public Builder setProcessId(long value) { + + processId_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * Process ID
+       * 
+ * + * int64 process_id = 4 [json_name = "processid"]; + * @return This builder for chaining. + */ + public Builder clearProcessId() { + bitField0_ = (bitField0_ & ~0x00000008); + processId_ = 0L; + onChanged(); + return this; + } + + private com.google.protobuf.Value responseParameters_; + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Value, com.google.protobuf.Value.Builder, com.google.protobuf.ValueOrBuilder> responseParametersBuilder_; + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + * @return Whether the responseParameters field is set. + */ + public boolean hasResponseParameters() { + return ((bitField0_ & 0x00000010) != 0); + } + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + * @return The responseParameters. + */ + public com.google.protobuf.Value getResponseParameters() { + if (responseParametersBuilder_ == null) { + return responseParameters_ == null ? com.google.protobuf.Value.getDefaultInstance() : responseParameters_; + } else { + return responseParametersBuilder_.getMessage(); + } + } + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + public Builder setResponseParameters(com.google.protobuf.Value value) { + if (responseParametersBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + responseParameters_ = value; + } else { + responseParametersBuilder_.setMessage(value); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + public Builder setResponseParameters( + com.google.protobuf.Value.Builder builderForValue) { + if (responseParametersBuilder_ == null) { + responseParameters_ = builderForValue.build(); + } else { + responseParametersBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + public Builder mergeResponseParameters(com.google.protobuf.Value value) { + if (responseParametersBuilder_ == null) { + if (((bitField0_ & 0x00000010) != 0) && + responseParameters_ != null && + responseParameters_ != com.google.protobuf.Value.getDefaultInstance()) { + getResponseParametersBuilder().mergeFrom(value); + } else { + responseParameters_ = value; + } + } else { + responseParametersBuilder_.mergeFrom(value); + } + if (responseParameters_ != null) { + bitField0_ |= 0x00000010; + onChanged(); + } + return this; + } + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + public Builder clearResponseParameters() { + bitField0_ = (bitField0_ & ~0x00000010); + responseParameters_ = null; + if (responseParametersBuilder_ != null) { + responseParametersBuilder_.dispose(); + responseParametersBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + public com.google.protobuf.Value.Builder getResponseParametersBuilder() { + bitField0_ |= 0x00000010; + onChanged(); + return getResponseParametersFieldBuilder().getBuilder(); + } + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + public com.google.protobuf.ValueOrBuilder getResponseParametersOrBuilder() { + if (responseParametersBuilder_ != null) { + return responseParametersBuilder_.getMessageOrBuilder(); + } else { + return responseParameters_ == null ? + com.google.protobuf.Value.getDefaultInstance() : responseParameters_; + } + } + /** + *
+       * Response parameters as defined by the command
+       * 
+ * + * .google.protobuf.Value response_parameters = 6 [json_name = "responseparameters"]; + */ + private com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Value, com.google.protobuf.Value.Builder, com.google.protobuf.ValueOrBuilder> + getResponseParametersFieldBuilder() { + if (responseParametersBuilder_ == null) { + responseParametersBuilder_ = new com.google.protobuf.SingleFieldBuilder< + com.google.protobuf.Value, com.google.protobuf.Value.Builder, com.google.protobuf.ValueOrBuilder>( + getResponseParameters(), + getParentForChildren(), + isClean()); + responseParameters_ = null; + } + return responseParametersBuilder_; + } + + private int state_ = 0; + /** + *
+       * Current processing state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @return The enum numeric value on the wire for state. + */ + @java.lang.Override public int getStateValue() { + return state_; + } + /** + *
+       * Current processing state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @param value The enum numeric value on the wire for state to set. + * @return This builder for chaining. + */ + public Builder setStateValue(int value) { + state_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + *
+       * Current processing state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @return The state. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState getState() { + com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState result = com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.forNumber(state_); + return result == null ? com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState.UNRECOGNIZED : result; + } + /** + *
+       * Current processing state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @param value The state to set. + * @return This builder for chaining. + */ + public Builder setState(com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000020; + state_ = value.getNumber(); + onChanged(); + return this; + } + /** + *
+       * Current processing state
+       * 
+ * + * .proto.VehicleAPI.CommandState state = 7 [json_name = "state"]; + * @return This builder for chaining. + */ + public Builder clearState() { + bitField0_ = (bitField0_ & ~0x00000020); + state_ = 0; + onChanged(); + return this; + } + + private long timestampInS_ ; + /** + *
+       * UTC timestamp in seconds (ISO 9945)
+       * 
+ * + * int64 timestamp_in_s = 8 [json_name = "timestamp"]; + * @return The timestampInS. + */ + @java.lang.Override + public long getTimestampInS() { + return timestampInS_; + } + /** + *
+       * UTC timestamp in seconds (ISO 9945)
+       * 
+ * + * int64 timestamp_in_s = 8 [json_name = "timestamp"]; + * @param value The timestampInS to set. + * @return This builder for chaining. + */ + public Builder setTimestampInS(long value) { + + timestampInS_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + *
+       * UTC timestamp in seconds (ISO 9945)
+       * 
+ * + * int64 timestamp_in_s = 8 [json_name = "timestamp"]; + * @return This builder for chaining. + */ + public Builder clearTimestampInS() { + bitField0_ = (bitField0_ & ~0x00000040); + timestampInS_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object trackingId_ = ""; + /** + *
+       * Tracking ID. SHOULD be a GUID (RFC 4122)
+       * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @return The trackingId. + */ + public java.lang.String getTrackingId() { + java.lang.Object ref = trackingId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + trackingId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * Tracking ID. SHOULD be a GUID (RFC 4122)
+       * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @return The bytes for trackingId. + */ + public com.google.protobuf.ByteString + getTrackingIdBytes() { + java.lang.Object ref = trackingId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + trackingId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * Tracking ID. SHOULD be a GUID (RFC 4122)
+       * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @param value The trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + trackingId_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + *
+       * Tracking ID. SHOULD be a GUID (RFC 4122)
+       * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @return This builder for chaining. + */ + public Builder clearTrackingId() { + trackingId_ = getDefaultInstance().getTrackingId(); + bitField0_ = (bitField0_ & ~0x00000080); + onChanged(); + return this; + } + /** + *
+       * Tracking ID. SHOULD be a GUID (RFC 4122)
+       * 
+ * + * string tracking_id = 9 [json_name = "trackingid"]; + * @param value The bytes for trackingId to set. + * @return This builder for chaining. + */ + public Builder setTrackingIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + trackingId_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleAPICommandProcessStatus) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleAPICommandProcessStatus) + private static final com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleAPICommandProcessStatus parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPICommandProcessStatus getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface VehicleAPIErrorOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VehicleAPIError) + com.google.protobuf.MessageOrBuilder { + + /** + * string code = 1 [json_name = "error-code"]; + * @return The code. + */ + java.lang.String getCode(); + /** + * string code = 1 [json_name = "error-code"]; + * @return The bytes for code. + */ + com.google.protobuf.ByteString + getCodeBytes(); + + /** + * string message = 2 [json_name = "error-message"]; + * @return The message. + */ + java.lang.String getMessage(); + /** + * string message = 2 [json_name = "error-message"]; + * @return The bytes for message. + */ + com.google.protobuf.ByteString + getMessageBytes(); + + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + int getAttributesCount(); + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + boolean containsAttributes( + java.lang.String key); + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Deprecated + java.util.Map + getAttributes(); + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + java.util.Map + getAttributesMap(); + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + /* nullable */ +com.google.protobuf.Value getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.google.protobuf.Value defaultValue); + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + com.google.protobuf.Value getAttributesOrThrow( + java.lang.String key); + + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + java.util.List + getSubErrorsList(); + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getSubErrors(int index); + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + int getSubErrorsCount(); + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + java.util.List + getSubErrorsOrBuilderList(); + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getSubErrorsOrBuilder( + int index); + } + /** + * Protobuf type {@code proto.VehicleAPIError} + */ + public static final class VehicleAPIError extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VehicleAPIError) + VehicleAPIErrorOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VehicleAPIError.class.getName()); + } + // Use VehicleAPIError.newBuilder() to construct. + private VehicleAPIError(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VehicleAPIError() { + code_ = ""; + message_ = ""; + subErrors_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIError_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + @java.lang.Override + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 3: + return internalGetAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder.class); + } + + public static final int CODE_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object code_ = ""; + /** + * string code = 1 [json_name = "error-code"]; + * @return The code. + */ + @java.lang.Override + public java.lang.String getCode() { + java.lang.Object ref = code_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + code_ = s; + return s; + } + } + /** + * string code = 1 [json_name = "error-code"]; + * @return The bytes for code. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCodeBytes() { + java.lang.Object ref = code_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + code_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int MESSAGE_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object message_ = ""; + /** + * string message = 2 [json_name = "error-message"]; + * @return The message. + */ + @java.lang.Override + public java.lang.String getMessage() { + java.lang.Object ref = message_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + message_ = s; + return s; + } + } + /** + * string message = 2 [json_name = "error-message"]; + * @return The bytes for message. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ATTRIBUTES_FIELD_NUMBER = 3; + private static final class AttributesDefaultEntryHolder { + static final com.google.protobuf.MapEntry< + java.lang.String, com.google.protobuf.Value> defaultEntry = + com.google.protobuf.MapEntry + .newDefaultInstance( + com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIError_AttributesEntry_descriptor, + com.google.protobuf.WireFormat.FieldType.STRING, + "", + com.google.protobuf.WireFormat.FieldType.MESSAGE, + com.google.protobuf.Value.getDefaultInstance()); + } + @SuppressWarnings("serial") + private com.google.protobuf.MapField< + java.lang.String, com.google.protobuf.Value> attributes_; + private com.google.protobuf.MapField + internalGetAttributes() { + if (attributes_ == null) { + return com.google.protobuf.MapField.emptyMapField( + AttributesDefaultEntryHolder.defaultEntry); + } + return attributes_; + } + public int getAttributesCount() { + return internalGetAttributes().getMap().size(); + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + @java.lang.Override + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetAttributes().getMap().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return internalGetAttributes().getMap(); + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + @java.lang.Override + public /* nullable */ +com.google.protobuf.Value getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.google.protobuf.Value defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + return map.containsKey(key) ? map.get(key) : defaultValue; + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + @java.lang.Override + public com.google.protobuf.Value getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = + internalGetAttributes().getMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return map.get(key); + } + + public static final int SUB_ERRORS_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private java.util.List subErrors_; + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + @java.lang.Override + public java.util.List getSubErrorsList() { + return subErrors_; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + @java.lang.Override + public java.util.List + getSubErrorsOrBuilderList() { + return subErrors_; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + @java.lang.Override + public int getSubErrorsCount() { + return subErrors_.size(); + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getSubErrors(int index) { + return subErrors_.get(index); + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getSubErrorsOrBuilder( + int index) { + return subErrors_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(code_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, code_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, message_); + } + com.google.protobuf.GeneratedMessage + .serializeStringMapTo( + output, + internalGetAttributes(), + AttributesDefaultEntryHolder.defaultEntry, + 3); + for (int i = 0; i < subErrors_.size(); i++) { + output.writeMessage(4, subErrors_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(code_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, code_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(message_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(2, message_); + } + for (java.util.Map.Entry entry + : internalGetAttributes().getMap().entrySet()) { + com.google.protobuf.MapEntry + attributes__ = AttributesDefaultEntryHolder.defaultEntry.newBuilderForType() + .setKey(entry.getKey()) + .setValue(entry.getValue()) + .build(); + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, attributes__); + } + for (int i = 0; i < subErrors_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(4, subErrors_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError other = (com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError) obj; + + if (!getCode() + .equals(other.getCode())) return false; + if (!getMessage() + .equals(other.getMessage())) return false; + if (!internalGetAttributes().equals( + other.internalGetAttributes())) return false; + if (!getSubErrorsList() + .equals(other.getSubErrorsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CODE_FIELD_NUMBER; + hash = (53 * hash) + getCode().hashCode(); + hash = (37 * hash) + MESSAGE_FIELD_NUMBER; + hash = (53 * hash) + getMessage().hashCode(); + if (!internalGetAttributes().getMap().isEmpty()) { + hash = (37 * hash) + ATTRIBUTES_FIELD_NUMBER; + hash = (53 * hash) + internalGetAttributes().hashCode(); + } + if (getSubErrorsCount() > 0) { + hash = (37 * hash) + SUB_ERRORS_FIELD_NUMBER; + hash = (53 * hash) + getSubErrorsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VehicleAPIError} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VehicleAPIError) + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIError_descriptor; + } + + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection( + int number) { + switch (number) { + case 3: + return internalGetAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @SuppressWarnings({"rawtypes"}) + protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection( + int number) { + switch (number) { + case 3: + return internalGetMutableAttributes(); + default: + throw new RuntimeException( + "Invalid map field number: " + number); + } + } + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIError_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.class, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + code_ = ""; + message_ = ""; + internalGetMutableAttributes().clear(); + if (subErrorsBuilder_ == null) { + subErrors_ = java.util.Collections.emptyList(); + } else { + subErrors_ = null; + subErrorsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000008); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_VehicleAPIError_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError build() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError result = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError result) { + if (subErrorsBuilder_ == null) { + if (((bitField0_ & 0x00000008) != 0)) { + subErrors_ = java.util.Collections.unmodifiableList(subErrors_); + bitField0_ = (bitField0_ & ~0x00000008); + } + result.subErrors_ = subErrors_; + } else { + result.subErrors_ = subErrorsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.code_ = code_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.message_ = message_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.attributes_ = internalGetAttributes().build(AttributesDefaultEntryHolder.defaultEntry); + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()) return this; + if (!other.getCode().isEmpty()) { + code_ = other.code_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getMessage().isEmpty()) { + message_ = other.message_; + bitField0_ |= 0x00000002; + onChanged(); + } + internalGetMutableAttributes().mergeFrom( + other.internalGetAttributes()); + bitField0_ |= 0x00000004; + if (subErrorsBuilder_ == null) { + if (!other.subErrors_.isEmpty()) { + if (subErrors_.isEmpty()) { + subErrors_ = other.subErrors_; + bitField0_ = (bitField0_ & ~0x00000008); + } else { + ensureSubErrorsIsMutable(); + subErrors_.addAll(other.subErrors_); + } + onChanged(); + } + } else { + if (!other.subErrors_.isEmpty()) { + if (subErrorsBuilder_.isEmpty()) { + subErrorsBuilder_.dispose(); + subErrorsBuilder_ = null; + subErrors_ = other.subErrors_; + bitField0_ = (bitField0_ & ~0x00000008); + subErrorsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getSubErrorsFieldBuilder() : null; + } else { + subErrorsBuilder_.addAllMessages(other.subErrors_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + code_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + message_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + com.google.protobuf.MapEntry + attributes__ = input.readMessage( + AttributesDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry); + internalGetMutableAttributes().ensureBuilderMap().put( + attributes__.getKey(), attributes__.getValue()); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError m = + input.readMessage( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.parser(), + extensionRegistry); + if (subErrorsBuilder_ == null) { + ensureSubErrorsIsMutable(); + subErrors_.add(m); + } else { + subErrorsBuilder_.addMessage(m); + } + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object code_ = ""; + /** + * string code = 1 [json_name = "error-code"]; + * @return The code. + */ + public java.lang.String getCode() { + java.lang.Object ref = code_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + code_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string code = 1 [json_name = "error-code"]; + * @return The bytes for code. + */ + public com.google.protobuf.ByteString + getCodeBytes() { + java.lang.Object ref = code_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + code_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string code = 1 [json_name = "error-code"]; + * @param value The code to set. + * @return This builder for chaining. + */ + public Builder setCode( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string code = 1 [json_name = "error-code"]; + * @return This builder for chaining. + */ + public Builder clearCode() { + code_ = getDefaultInstance().getCode(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string code = 1 [json_name = "error-code"]; + * @param value The bytes for code to set. + * @return This builder for chaining. + */ + public Builder setCodeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + code_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object message_ = ""; + /** + * string message = 2 [json_name = "error-message"]; + * @return The message. + */ + public java.lang.String getMessage() { + java.lang.Object ref = message_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + message_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string message = 2 [json_name = "error-message"]; + * @return The bytes for message. + */ + public com.google.protobuf.ByteString + getMessageBytes() { + java.lang.Object ref = message_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + message_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string message = 2 [json_name = "error-message"]; + * @param value The message to set. + * @return This builder for chaining. + */ + public Builder setMessage( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + message_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * string message = 2 [json_name = "error-message"]; + * @return This builder for chaining. + */ + public Builder clearMessage() { + message_ = getDefaultInstance().getMessage(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + * string message = 2 [json_name = "error-message"]; + * @param value The bytes for message to set. + * @return This builder for chaining. + */ + public Builder setMessageBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + message_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private static final class AttributesConverter implements com.google.protobuf.MapFieldBuilder.Converter { + @java.lang.Override + public com.google.protobuf.Value build(com.google.protobuf.ValueOrBuilder val) { + if (val instanceof com.google.protobuf.Value) { return (com.google.protobuf.Value) val; } + return ((com.google.protobuf.Value.Builder) val).build(); + } + + @java.lang.Override + public com.google.protobuf.MapEntry defaultEntry() { + return AttributesDefaultEntryHolder.defaultEntry; + } + }; + private static final AttributesConverter attributesConverter = new AttributesConverter(); + + private com.google.protobuf.MapFieldBuilder< + java.lang.String, com.google.protobuf.ValueOrBuilder, com.google.protobuf.Value, com.google.protobuf.Value.Builder> attributes_; + private com.google.protobuf.MapFieldBuilder + internalGetAttributes() { + if (attributes_ == null) { + return new com.google.protobuf.MapFieldBuilder<>(attributesConverter); + } + return attributes_; + } + private com.google.protobuf.MapFieldBuilder + internalGetMutableAttributes() { + if (attributes_ == null) { + attributes_ = new com.google.protobuf.MapFieldBuilder<>(attributesConverter); + } + bitField0_ |= 0x00000004; + onChanged(); + return attributes_; + } + public int getAttributesCount() { + return internalGetAttributes().ensureBuilderMap().size(); + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + @java.lang.Override + public boolean containsAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + return internalGetAttributes().ensureBuilderMap().containsKey(key); + } + /** + * Use {@link #getAttributesMap()} instead. + */ + @java.lang.Override + @java.lang.Deprecated + public java.util.Map getAttributes() { + return getAttributesMap(); + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + @java.lang.Override + public java.util.Map getAttributesMap() { + return internalGetAttributes().getImmutableMap(); + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + @java.lang.Override + public /* nullable */ +com.google.protobuf.Value getAttributesOrDefault( + java.lang.String key, + /* nullable */ +com.google.protobuf.Value defaultValue) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableAttributes().ensureBuilderMap(); + return map.containsKey(key) ? attributesConverter.build(map.get(key)) : defaultValue; + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + @java.lang.Override + public com.google.protobuf.Value getAttributesOrThrow( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + java.util.Map map = internalGetMutableAttributes().ensureBuilderMap(); + if (!map.containsKey(key)) { + throw new java.lang.IllegalArgumentException(); + } + return attributesConverter.build(map.get(key)); + } + public Builder clearAttributes() { + bitField0_ = (bitField0_ & ~0x00000004); + internalGetMutableAttributes().clear(); + return this; + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + public Builder removeAttributes( + java.lang.String key) { + if (key == null) { throw new NullPointerException("map key"); } + internalGetMutableAttributes().ensureBuilderMap() + .remove(key); + return this; + } + /** + * Use alternate mutation accessors instead. + */ + @java.lang.Deprecated + public java.util.Map + getMutableAttributes() { + bitField0_ |= 0x00000004; + return internalGetMutableAttributes().ensureMessageMap(); + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + public Builder putAttributes( + java.lang.String key, + com.google.protobuf.Value value) { + if (key == null) { throw new NullPointerException("map key"); } + if (value == null) { throw new NullPointerException("map value"); } + internalGetMutableAttributes().ensureBuilderMap() + .put(key, value); + bitField0_ |= 0x00000004; + return this; + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + public Builder putAllAttributes( + java.util.Map values) { + for (java.util.Map.Entry e : values.entrySet()) { + if (e.getKey() == null || e.getValue() == null) { + throw new NullPointerException(); + } + } + internalGetMutableAttributes().ensureBuilderMap() + .putAll(values); + bitField0_ |= 0x00000004; + return this; + } + /** + * map<string, .google.protobuf.Value> attributes = 3 [json_name = "attributes"]; + */ + public com.google.protobuf.Value.Builder putAttributesBuilderIfAbsent( + java.lang.String key) { + java.util.Map builderMap = internalGetMutableAttributes().ensureBuilderMap(); + com.google.protobuf.ValueOrBuilder entry = builderMap.get(key); + if (entry == null) { + entry = com.google.protobuf.Value.newBuilder(); + builderMap.put(key, entry); + } + if (entry instanceof com.google.protobuf.Value) { + entry = ((com.google.protobuf.Value) entry).toBuilder(); + builderMap.put(key, entry); + } + return (com.google.protobuf.Value.Builder) entry; + } + + private java.util.List subErrors_ = + java.util.Collections.emptyList(); + private void ensureSubErrorsIsMutable() { + if (!((bitField0_ & 0x00000008) != 0)) { + subErrors_ = new java.util.ArrayList(subErrors_); + bitField0_ |= 0x00000008; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder> subErrorsBuilder_; + + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public java.util.List getSubErrorsList() { + if (subErrorsBuilder_ == null) { + return java.util.Collections.unmodifiableList(subErrors_); + } else { + return subErrorsBuilder_.getMessageList(); + } + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public int getSubErrorsCount() { + if (subErrorsBuilder_ == null) { + return subErrors_.size(); + } else { + return subErrorsBuilder_.getCount(); + } + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getSubErrors(int index) { + if (subErrorsBuilder_ == null) { + return subErrors_.get(index); + } else { + return subErrorsBuilder_.getMessage(index); + } + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder setSubErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (subErrorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSubErrorsIsMutable(); + subErrors_.set(index, value); + onChanged(); + } else { + subErrorsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder setSubErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (subErrorsBuilder_ == null) { + ensureSubErrorsIsMutable(); + subErrors_.set(index, builderForValue.build()); + onChanged(); + } else { + subErrorsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder addSubErrors(com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (subErrorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSubErrorsIsMutable(); + subErrors_.add(value); + onChanged(); + } else { + subErrorsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder addSubErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError value) { + if (subErrorsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSubErrorsIsMutable(); + subErrors_.add(index, value); + onChanged(); + } else { + subErrorsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder addSubErrors( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (subErrorsBuilder_ == null) { + ensureSubErrorsIsMutable(); + subErrors_.add(builderForValue.build()); + onChanged(); + } else { + subErrorsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder addSubErrors( + int index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder builderForValue) { + if (subErrorsBuilder_ == null) { + ensureSubErrorsIsMutable(); + subErrors_.add(index, builderForValue.build()); + onChanged(); + } else { + subErrorsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder addAllSubErrors( + java.lang.Iterable values) { + if (subErrorsBuilder_ == null) { + ensureSubErrorsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, subErrors_); + onChanged(); + } else { + subErrorsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder clearSubErrors() { + if (subErrorsBuilder_ == null) { + subErrors_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + } else { + subErrorsBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public Builder removeSubErrors(int index) { + if (subErrorsBuilder_ == null) { + ensureSubErrorsIsMutable(); + subErrors_.remove(index); + onChanged(); + } else { + subErrorsBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder getSubErrorsBuilder( + int index) { + return getSubErrorsFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder getSubErrorsOrBuilder( + int index) { + if (subErrorsBuilder_ == null) { + return subErrors_.get(index); } else { + return subErrorsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public java.util.List + getSubErrorsOrBuilderList() { + if (subErrorsBuilder_ != null) { + return subErrorsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(subErrors_); + } + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder addSubErrorsBuilder() { + return getSubErrorsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()); + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder addSubErrorsBuilder( + int index) { + return getSubErrorsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.getDefaultInstance()); + } + /** + * repeated .proto.VehicleAPIError sub_errors = 4 [json_name = "sub-errors"]; + */ + public java.util.List + getSubErrorsBuilderList() { + return getSubErrorsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder> + getSubErrorsFieldBuilder() { + if (subErrorsBuilder_ == null) { + subErrorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError.Builder, com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIErrorOrBuilder>( + subErrors_, + ((bitField0_ & 0x00000008) != 0), + getParentForChildren(), + isClean()); + subErrors_ = null; + } + return subErrorsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.VehicleAPIError) + } + + // @@protoc_insertion_point(class_scope:proto.VehicleAPIError) + private static final com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VehicleAPIError parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.VehicleAPIError getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AppTwinPendingCommandsRequestOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AppTwinPendingCommandsRequest) + com.google.protobuf.MessageOrBuilder { + } + /** + *
+   * AppTwinPendingCommandsRequest is sent from the AppTwin to the app to ask for commands that the app has not yet
+   * received a finished state for. This request MUST eventually be answered with AppTwinPendingCommandsResponse.
+   * 
+ * + * Protobuf type {@code proto.AppTwinPendingCommandsRequest} + */ + public static final class AppTwinPendingCommandsRequest extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AppTwinPendingCommandsRequest) + AppTwinPendingCommandsRequestOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AppTwinPendingCommandsRequest.class.getName()); + } + // Use AppTwinPendingCommandsRequest.newBuilder() to construct. + private AppTwinPendingCommandsRequest(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AppTwinPendingCommandsRequest() { + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder.class); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest other = (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) obj; + + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * AppTwinPendingCommandsRequest is sent from the AppTwin to the app to ask for commands that the app has not yet
+     * received a finished state for. This request MUST eventually be answered with AppTwinPendingCommandsResponse.
+     * 
+ * + * Protobuf type {@code proto.AppTwinPendingCommandsRequest} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AppTwinPendingCommandsRequest) + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequestOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsRequest_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsRequest_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsRequest_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest build() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest result = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest(this); + onBuilt(); + return result; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest.getDefaultInstance()) return this; + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.AppTwinPendingCommandsRequest) + } + + // @@protoc_insertion_point(class_scope:proto.AppTwinPendingCommandsRequest) + private static final com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AppTwinPendingCommandsRequest parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsRequest getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface AppTwinPendingCommandsResponseOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.AppTwinPendingCommandsResponse) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + java.util.List + getPendingCommandsList(); + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand getPendingCommands(int index); + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + int getPendingCommandsCount(); + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + java.util.List + getPendingCommandsOrBuilderList(); + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommandOrBuilder getPendingCommandsOrBuilder( + int index); + } + /** + *
+   * AppTwinPendingCommandsResponse is sent from the app to the AppTwin to tell it the commands that haven't been
+   * "resolved yet" (are not in a finished state). The delivery of this message to the AppTwin will trigger a command
+   * actor that polls the state for the specified command type and PID.
+   * 
+ * + * Protobuf type {@code proto.AppTwinPendingCommandsResponse} + */ + public static final class AppTwinPendingCommandsResponse extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.AppTwinPendingCommandsResponse) + AppTwinPendingCommandsResponseOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + AppTwinPendingCommandsResponse.class.getName()); + } + // Use AppTwinPendingCommandsResponse.newBuilder() to construct. + private AppTwinPendingCommandsResponse(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private AppTwinPendingCommandsResponse() { + pendingCommands_ = java.util.Collections.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.Builder.class); + } + + public static final int PENDING_COMMANDS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List pendingCommands_; + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + @java.lang.Override + public java.util.List getPendingCommandsList() { + return pendingCommands_; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + @java.lang.Override + public java.util.List + getPendingCommandsOrBuilderList() { + return pendingCommands_; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + @java.lang.Override + public int getPendingCommandsCount() { + return pendingCommands_.size(); + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand getPendingCommands(int index) { + return pendingCommands_.get(index); + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommandOrBuilder getPendingCommandsOrBuilder( + int index) { + return pendingCommands_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < pendingCommands_.size(); i++) { + output.writeMessage(1, pendingCommands_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < pendingCommands_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, pendingCommands_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse other = (com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) obj; + + if (!getPendingCommandsList() + .equals(other.getPendingCommandsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getPendingCommandsCount() > 0) { + hash = (37 * hash) + PENDING_COMMANDS_FIELD_NUMBER; + hash = (53 * hash) + getPendingCommandsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * AppTwinPendingCommandsResponse is sent from the app to the AppTwin to tell it the commands that haven't been
+     * "resolved yet" (are not in a finished state). The delivery of this message to the AppTwin will trigger a command
+     * actor that polls the state for the specified command type and PID.
+     * 
+ * + * Protobuf type {@code proto.AppTwinPendingCommandsResponse} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.AppTwinPendingCommandsResponse) + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponseOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsResponse_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsResponse_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.class, com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (pendingCommandsBuilder_ == null) { + pendingCommands_ = java.util.Collections.emptyList(); + } else { + pendingCommands_ = null; + pendingCommandsBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_AppTwinPendingCommandsResponse_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse build() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse result = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse result) { + if (pendingCommandsBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + pendingCommands_ = java.util.Collections.unmodifiableList(pendingCommands_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.pendingCommands_ = pendingCommands_; + } else { + result.pendingCommands_ = pendingCommandsBuilder_.build(); + } + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse result) { + int from_bitField0_ = bitField0_; + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse.getDefaultInstance()) return this; + if (pendingCommandsBuilder_ == null) { + if (!other.pendingCommands_.isEmpty()) { + if (pendingCommands_.isEmpty()) { + pendingCommands_ = other.pendingCommands_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensurePendingCommandsIsMutable(); + pendingCommands_.addAll(other.pendingCommands_); + } + onChanged(); + } + } else { + if (!other.pendingCommands_.isEmpty()) { + if (pendingCommandsBuilder_.isEmpty()) { + pendingCommandsBuilder_.dispose(); + pendingCommandsBuilder_ = null; + pendingCommands_ = other.pendingCommands_; + bitField0_ = (bitField0_ & ~0x00000001); + pendingCommandsBuilder_ = + com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? + getPendingCommandsFieldBuilder() : null; + } else { + pendingCommandsBuilder_.addAllMessages(other.pendingCommands_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand m = + input.readMessage( + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.parser(), + extensionRegistry); + if (pendingCommandsBuilder_ == null) { + ensurePendingCommandsIsMutable(); + pendingCommands_.add(m); + } else { + pendingCommandsBuilder_.addMessage(m); + } + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List pendingCommands_ = + java.util.Collections.emptyList(); + private void ensurePendingCommandsIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + pendingCommands_ = new java.util.ArrayList(pendingCommands_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommandOrBuilder> pendingCommandsBuilder_; + + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public java.util.List getPendingCommandsList() { + if (pendingCommandsBuilder_ == null) { + return java.util.Collections.unmodifiableList(pendingCommands_); + } else { + return pendingCommandsBuilder_.getMessageList(); + } + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public int getPendingCommandsCount() { + if (pendingCommandsBuilder_ == null) { + return pendingCommands_.size(); + } else { + return pendingCommandsBuilder_.getCount(); + } + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand getPendingCommands(int index) { + if (pendingCommandsBuilder_ == null) { + return pendingCommands_.get(index); + } else { + return pendingCommandsBuilder_.getMessage(index); + } + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder setPendingCommands( + int index, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand value) { + if (pendingCommandsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePendingCommandsIsMutable(); + pendingCommands_.set(index, value); + onChanged(); + } else { + pendingCommandsBuilder_.setMessage(index, value); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder setPendingCommands( + int index, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder builderForValue) { + if (pendingCommandsBuilder_ == null) { + ensurePendingCommandsIsMutable(); + pendingCommands_.set(index, builderForValue.build()); + onChanged(); + } else { + pendingCommandsBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder addPendingCommands(com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand value) { + if (pendingCommandsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePendingCommandsIsMutable(); + pendingCommands_.add(value); + onChanged(); + } else { + pendingCommandsBuilder_.addMessage(value); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder addPendingCommands( + int index, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand value) { + if (pendingCommandsBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensurePendingCommandsIsMutable(); + pendingCommands_.add(index, value); + onChanged(); + } else { + pendingCommandsBuilder_.addMessage(index, value); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder addPendingCommands( + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder builderForValue) { + if (pendingCommandsBuilder_ == null) { + ensurePendingCommandsIsMutable(); + pendingCommands_.add(builderForValue.build()); + onChanged(); + } else { + pendingCommandsBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder addPendingCommands( + int index, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder builderForValue) { + if (pendingCommandsBuilder_ == null) { + ensurePendingCommandsIsMutable(); + pendingCommands_.add(index, builderForValue.build()); + onChanged(); + } else { + pendingCommandsBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder addAllPendingCommands( + java.lang.Iterable values) { + if (pendingCommandsBuilder_ == null) { + ensurePendingCommandsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, pendingCommands_); + onChanged(); + } else { + pendingCommandsBuilder_.addAllMessages(values); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder clearPendingCommands() { + if (pendingCommandsBuilder_ == null) { + pendingCommands_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + pendingCommandsBuilder_.clear(); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public Builder removePendingCommands(int index) { + if (pendingCommandsBuilder_ == null) { + ensurePendingCommandsIsMutable(); + pendingCommands_.remove(index); + onChanged(); + } else { + pendingCommandsBuilder_.remove(index); + } + return this; + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder getPendingCommandsBuilder( + int index) { + return getPendingCommandsFieldBuilder().getBuilder(index); + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommandOrBuilder getPendingCommandsOrBuilder( + int index) { + if (pendingCommandsBuilder_ == null) { + return pendingCommands_.get(index); } else { + return pendingCommandsBuilder_.getMessageOrBuilder(index); + } + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public java.util.List + getPendingCommandsOrBuilderList() { + if (pendingCommandsBuilder_ != null) { + return pendingCommandsBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(pendingCommands_); + } + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder addPendingCommandsBuilder() { + return getPendingCommandsFieldBuilder().addBuilder( + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.getDefaultInstance()); + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder addPendingCommandsBuilder( + int index) { + return getPendingCommandsFieldBuilder().addBuilder( + index, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.getDefaultInstance()); + } + /** + * repeated .proto.PendingCommand pending_commands = 1; + */ + public java.util.List + getPendingCommandsBuilderList() { + return getPendingCommandsFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommandOrBuilder> + getPendingCommandsFieldBuilder() { + if (pendingCommandsBuilder_ == null) { + pendingCommandsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder< + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommandOrBuilder>( + pendingCommands_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + pendingCommands_ = null; + } + return pendingCommandsBuilder_; + } + + // @@protoc_insertion_point(builder_scope:proto.AppTwinPendingCommandsResponse) + } + + // @@protoc_insertion_point(class_scope:proto.AppTwinPendingCommandsResponse) + private static final com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public AppTwinPendingCommandsResponse parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.AppTwinPendingCommandsResponse getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PendingCommandOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.PendingCommand) + com.google.protobuf.MessageOrBuilder { + + /** + * string vin = 1; + * @return The vin. + */ + java.lang.String getVin(); + /** + * string vin = 1; + * @return The bytes for vin. + */ + com.google.protobuf.ByteString + getVinBytes(); + + /** + * int64 process_id = 2; + * @return The processId. + */ + long getProcessId(); + + /** + * string request_id = 3; + * @return The requestId. + */ + java.lang.String getRequestId(); + /** + * string request_id = 3; + * @return The bytes for requestId. + */ + com.google.protobuf.ByteString + getRequestIdBytes(); + + /** + * .proto.ACP.CommandType type = 4; + * @return The enum numeric value on the wire for type. + */ + int getTypeValue(); + /** + * .proto.ACP.CommandType type = 4; + * @return The type. + */ + com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType(); + } + /** + * Protobuf type {@code proto.PendingCommand} + */ + public static final class PendingCommand extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.PendingCommand) + PendingCommandOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + PendingCommand.class.getName()); + } + // Use PendingCommand.newBuilder() to construct. + private PendingCommand(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private PendingCommand() { + vin_ = ""; + requestId_ = ""; + type_ = 0; + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_PendingCommand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_PendingCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.class, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder.class); + } + + public static final int VIN_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object vin_ = ""; + /** + * string vin = 1; + * @return The vin. + */ + @java.lang.Override + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } + } + /** + * string vin = 1; + * @return The bytes for vin. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PROCESS_ID_FIELD_NUMBER = 2; + private long processId_ = 0L; + /** + * int64 process_id = 2; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + + public static final int REQUEST_ID_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object requestId_ = ""; + /** + * string request_id = 3; + * @return The requestId. + */ + @java.lang.Override + public java.lang.String getRequestId() { + java.lang.Object ref = requestId_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + requestId_ = s; + return s; + } + } + /** + * string request_id = 3; + * @return The bytes for requestId. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getRequestIdBytes() { + java.lang.Object ref = requestId_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + requestId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TYPE_FIELD_NUMBER = 4; + private int type_ = 0; + /** + * .proto.ACP.CommandType type = 4; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .proto.ACP.CommandType type = 4; + * @return The type. + */ + @java.lang.Override public com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType() { + com.daimler.mbcarkit.proto.Acp.ACP.CommandType result = com.daimler.mbcarkit.proto.Acp.ACP.CommandType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNRECOGNIZED : result; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, vin_); + } + if (processId_ != 0L) { + output.writeInt64(2, processId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) { + com.google.protobuf.GeneratedMessage.writeString(output, 3, requestId_); + } + if (type_ != com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNKNOWNCOMMANDTYPE.getNumber()) { + output.writeEnum(4, type_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(vin_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(1, vin_); + } + if (processId_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeInt64Size(2, processId_); + } + if (!com.google.protobuf.GeneratedMessage.isStringEmpty(requestId_)) { + size += com.google.protobuf.GeneratedMessage.computeStringSize(3, requestId_); + } + if (type_ != com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNKNOWNCOMMANDTYPE.getNumber()) { + size += com.google.protobuf.CodedOutputStream + .computeEnumSize(4, type_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand other = (com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand) obj; + + if (!getVin() + .equals(other.getVin())) return false; + if (getProcessId() + != other.getProcessId()) return false; + if (!getRequestId() + .equals(other.getRequestId())) return false; + if (type_ != other.type_) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + VIN_FIELD_NUMBER; + hash = (53 * hash) + getVin().hashCode(); + hash = (37 * hash) + PROCESS_ID_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getProcessId()); + hash = (37 * hash) + REQUEST_ID_FIELD_NUMBER; + hash = (53 * hash) + getRequestId().hashCode(); + hash = (37 * hash) + TYPE_FIELD_NUMBER; + hash = (53 * hash) + type_; + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.PendingCommand} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.PendingCommand) + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommandOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_PendingCommand_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_PendingCommand_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.class, com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + vin_ = ""; + processId_ = 0L; + requestId_ = ""; + type_ = 0; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.internal_static_proto_PendingCommand_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand build() { + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand buildPartial() { + com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand result = new com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.vin_ = vin_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.processId_ = processId_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.requestId_ = requestId_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.type_ = type_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand) { + return mergeFrom((com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand other) { + if (other == com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand.getDefaultInstance()) return this; + if (!other.getVin().isEmpty()) { + vin_ = other.vin_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.getProcessId() != 0L) { + setProcessId(other.getProcessId()); + } + if (!other.getRequestId().isEmpty()) { + requestId_ = other.requestId_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (other.type_ != 0) { + setTypeValue(other.getTypeValue()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + vin_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 16: { + processId_ = input.readInt64(); + bitField0_ |= 0x00000002; + break; + } // case 16 + case 26: { + requestId_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 32: { + type_ = input.readEnum(); + bitField0_ |= 0x00000008; + break; + } // case 32 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object vin_ = ""; + /** + * string vin = 1; + * @return The vin. + */ + public java.lang.String getVin() { + java.lang.Object ref = vin_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + vin_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string vin = 1; + * @return The bytes for vin. + */ + public com.google.protobuf.ByteString + getVinBytes() { + java.lang.Object ref = vin_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + vin_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string vin = 1; + * @param value The vin to set. + * @return This builder for chaining. + */ + public Builder setVin( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * string vin = 1; + * @return This builder for chaining. + */ + public Builder clearVin() { + vin_ = getDefaultInstance().getVin(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + * string vin = 1; + * @param value The bytes for vin to set. + * @return This builder for chaining. + */ + public Builder setVinBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + vin_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private long processId_ ; + /** + * int64 process_id = 2; + * @return The processId. + */ + @java.lang.Override + public long getProcessId() { + return processId_; + } + /** + * int64 process_id = 2; + * @param value The processId to set. + * @return This builder for chaining. + */ + public Builder setProcessId(long value) { + + processId_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * int64 process_id = 2; + * @return This builder for chaining. + */ + public Builder clearProcessId() { + bitField0_ = (bitField0_ & ~0x00000002); + processId_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object requestId_ = ""; + /** + * string request_id = 3; + * @return The requestId. + */ + public java.lang.String getRequestId() { + java.lang.Object ref = requestId_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + requestId_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + * string request_id = 3; + * @return The bytes for requestId. + */ + public com.google.protobuf.ByteString + getRequestIdBytes() { + java.lang.Object ref = requestId_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + requestId_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + * string request_id = 3; + * @param value The requestId to set. + * @return This builder for chaining. + */ + public Builder setRequestId( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + requestId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + * string request_id = 3; + * @return This builder for chaining. + */ + public Builder clearRequestId() { + requestId_ = getDefaultInstance().getRequestId(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + * string request_id = 3; + * @param value The bytes for requestId to set. + * @return This builder for chaining. + */ + public Builder setRequestIdBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + requestId_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private int type_ = 0; + /** + * .proto.ACP.CommandType type = 4; + * @return The enum numeric value on the wire for type. + */ + @java.lang.Override public int getTypeValue() { + return type_; + } + /** + * .proto.ACP.CommandType type = 4; + * @param value The enum numeric value on the wire for type to set. + * @return This builder for chaining. + */ + public Builder setTypeValue(int value) { + type_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + * .proto.ACP.CommandType type = 4; + * @return The type. + */ + @java.lang.Override + public com.daimler.mbcarkit.proto.Acp.ACP.CommandType getType() { + com.daimler.mbcarkit.proto.Acp.ACP.CommandType result = com.daimler.mbcarkit.proto.Acp.ACP.CommandType.forNumber(type_); + return result == null ? com.daimler.mbcarkit.proto.Acp.ACP.CommandType.UNRECOGNIZED : result; + } + /** + * .proto.ACP.CommandType type = 4; + * @param value The type to set. + * @return This builder for chaining. + */ + public Builder setType(com.daimler.mbcarkit.proto.Acp.ACP.CommandType value) { + if (value == null) { + throw new NullPointerException(); + } + bitField0_ |= 0x00000008; + type_ = value.getNumber(); + onChanged(); + return this; + } + /** + * .proto.ACP.CommandType type = 4; + * @return This builder for chaining. + */ + public Builder clearType() { + bitField0_ = (bitField0_ & ~0x00000008); + type_ = 0; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.PendingCommand) + } + + // @@protoc_insertion_point(class_scope:proto.PendingCommand) + private static final com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand(); + } + + public static com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PendingCommand parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.Vehicleapi.PendingCommand getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_UpdatesByVinEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_UpdatesByVinEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AppTwinCommandStatusUpdatesByPID_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AppTwinCommandStatusUpdatesByPID_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AppTwinCommandStatusUpdatesByPID_UpdatesByPidEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AppTwinCommandStatusUpdatesByPID_UpdatesByPidEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AppTwinCommandStatus_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AppTwinCommandStatus_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPICommandPostResult_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPICommandPostResult_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPICommandGetResult_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPICommandGetResult_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPIDataGetResult_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPIDataGetResult_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPIDataGetResult_DataEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPIDataGetResult_DataEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPIAttributeStatus_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPIAttributeStatus_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPICommandProcessStatus_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPICommandProcessStatus_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPIError_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPIError_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VehicleAPIError_AttributesEntry_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VehicleAPIError_AttributesEntry_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AppTwinPendingCommandsRequest_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AppTwinPendingCommandsRequest_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_AppTwinPendingCommandsResponse_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_AppTwinPendingCommandsResponse_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_PendingCommand_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_PendingCommand_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020vehicleapi.proto\022\005proto\032\tacp.proto\032\034go" + + "ogle/protobuf/struct.proto\032\ngogo.proto\"F" + + "\n+AcknowledgeAppTwinCommandStatusUpdates" + + "ByVIN\022\027\n\017sequence_number\030\001 \001(\005\"\354\001\n AppTw" + + "inCommandStatusUpdatesByVIN\022\027\n\017sequence_" + + "number\030\001 \001(\005\022Q\n\016updates_by_vin\030\002 \003(\01329.p" + + "roto.AppTwinCommandStatusUpdatesByVIN.Up" + + "datesByVinEntry\032\\\n\021UpdatesByVinEntry\022\013\n\003" + + "key\030\001 \001(\t\0226\n\005value\030\002 \001(\0132\'.proto.AppTwin" + + "CommandStatusUpdatesByPID:\0028\001\"\324\001\n AppTwi" + + "nCommandStatusUpdatesByPID\022\013\n\003vin\030\001 \001(\t\022" + + "Q\n\016updates_by_pid\030\002 \003(\01329.proto.AppTwinC" + + "ommandStatusUpdatesByPID.UpdatesByPidEnt" + + "ry\032P\n\021UpdatesByPidEntry\022\013\n\003key\030\001 \001(\003\022*\n\005" + + "value\030\002 \001(\0132\033.proto.AppTwinCommandStatus" + + ":\0028\001\"\221\002\n\024AppTwinCommandStatus\022\022\n\nprocess" + + "_id\030\001 \001(\003\022\022\n\nrequest_id\030\002 \001(\t\022\027\n\017timesta" + + "mp_in_ms\030\003 \001(\003\022&\n\006errors\030\004 \003(\0132\026.proto.V" + + "ehicleAPIError\022!\n\025blocking_time_seconds\030" + + "\005 \001(\003B\002\030\001\022\030\n\014pin_attempts\030\006 \001(\005B\002\030\001\022$\n\004t" + + "ype\030\007 \001(\0162\026.proto.ACP.CommandType\022-\n\005sta" + + "te\030\010 \001(\0162\036.proto.VehicleAPI.CommandState" + + "\"\242\001\n\033VehicleAPICommandPostResult\022\035\n\nproc" + + "ess_id\030\001 \001(\003R\tprocessid\022.\n\006errors\030\002 \003(\0132" + + "\026.proto.VehicleAPIErrorR\006errors\0224\n\005state" + + "\030\003 \001(\0162\036.proto.VehicleAPI.CommandStateR\005" + + "state\"\272\001\n\032VehicleAPICommandGetResult\022?\n\007" + + "process\030\001 \003(\0132%.proto.VehicleAPICommandP" + + "rocessStatusR\007process\022\037\n\013queue_count\030\002 \001" + + "(\005R\nqueuecount\022:\n\nqueue_type\030\003 \001(\0162\033.pro" + + "to.VehicleAPI.QueueTypeR\tqueuetype\"\240\001\n\027V" + + "ehicleAPIDataGetResult\0226\n\004data\030\001 \003(\0132(.p" + + "roto.VehicleAPIDataGetResult.DataEntry\032M" + + "\n\tDataEntry\022\013\n\003key\030\001 \001(\t\022/\n\005value\030\002 \001(\0132" + + " .proto.VehicleAPIAttributeStatus:\0028\001\"\241\001" + + "\n\031VehicleAPIAttributeStatus\022,\n\005value\030\003 \001" + + "(\0132\026.google.protobuf.ValueR\005value\022\033\n\017tim" + + "estamp_in_ms\030\002 \001(\003R\002ts\0229\n\006Status\030\001 \001(\0162!" + + ".proto.VehicleAPI.AttributeStatusR\006statu" + + "s\"\347\002\n\036VehicleAPICommandProcessStatus\022.\n\006" + + "errors\030\001 \003(\0132\026.proto.VehicleAPIErrorR\006er" + + "rors\022\037\n\013instance_id\030\002 \001(\tR\ninstanceid\022\022\n" + + "\004name\030\003 \001(\tR\004name\022\035\n\nprocess_id\030\004 \001(\003R\tp" + + "rocessid\022G\n\023response_parameters\030\006 \001(\0132\026." + + "google.protobuf.ValueR\022responseparameter" + + "s\0224\n\005state\030\007 \001(\0162\036.proto.VehicleAPI.Comm" + + "andStateR\005state\022!\n\016timestamp_in_s\030\010 \001(\003R" + + "\ttimestamp\022\037\n\013tracking_id\030\t \001(\tR\ntrackin" + + "gid\"\226\002\n\017VehicleAPIError\022\030\n\004code\030\001 \001(\tR\ne" + + "rror-code\022\036\n\007message\030\002 \001(\tR\rerror-messag" + + "e\022F\n\nattributes\030\003 \003(\0132&.proto.VehicleAPI" + + "Error.AttributesEntryR\nattributes\0226\n\nsub" + + "_errors\030\004 \003(\0132\026.proto.VehicleAPIErrorR\ns" + + "ub-errors\032I\n\017AttributesEntry\022\013\n\003key\030\001 \001(" + + "\t\022%\n\005value\030\002 \001(\0132\026.google.protobuf.Value" + + ":\0028\001\"\037\n\035AppTwinPendingCommandsRequest\"Q\n" + + "\036AppTwinPendingCommandsResponse\022/\n\020pendi" + + "ng_commands\030\001 \003(\0132\025.proto.PendingCommand" + + "\"k\n\016PendingCommand\022\013\n\003vin\030\001 \001(\t\022\022\n\nproce" + + "ss_id\030\002 \001(\003\022\022\n\nrequest_id\030\003 \001(\t\022$\n\004type\030" + + "\004 \001(\0162\026.proto.ACP.CommandTypeB \n\032com.dai" + + "mler.mbcarkit.proto\320\341\036\001b\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.daimler.mbcarkit.proto.Acp.getDescriptor(), + com.google.protobuf.StructProto.getDescriptor(), + com.google.protobuf.GoGoProtos.getDescriptor(), + }); + internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AcknowledgeAppTwinCommandStatusUpdatesByVIN_descriptor, + new java.lang.String[] { "SequenceNumber", }); + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_descriptor, + new java.lang.String[] { "SequenceNumber", "UpdatesByVin", }); + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_UpdatesByVinEntry_descriptor = + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_descriptor.getNestedTypes().get(0); + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_UpdatesByVinEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AppTwinCommandStatusUpdatesByVIN_UpdatesByVinEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_AppTwinCommandStatusUpdatesByPID_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_proto_AppTwinCommandStatusUpdatesByPID_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AppTwinCommandStatusUpdatesByPID_descriptor, + new java.lang.String[] { "Vin", "UpdatesByPid", }); + internal_static_proto_AppTwinCommandStatusUpdatesByPID_UpdatesByPidEntry_descriptor = + internal_static_proto_AppTwinCommandStatusUpdatesByPID_descriptor.getNestedTypes().get(0); + internal_static_proto_AppTwinCommandStatusUpdatesByPID_UpdatesByPidEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AppTwinCommandStatusUpdatesByPID_UpdatesByPidEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_AppTwinCommandStatus_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_proto_AppTwinCommandStatus_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AppTwinCommandStatus_descriptor, + new java.lang.String[] { "ProcessId", "RequestId", "TimestampInMs", "Errors", "BlockingTimeSeconds", "PinAttempts", "Type", "State", }); + internal_static_proto_VehicleAPICommandPostResult_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_proto_VehicleAPICommandPostResult_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPICommandPostResult_descriptor, + new java.lang.String[] { "ProcessId", "Errors", "State", }); + internal_static_proto_VehicleAPICommandGetResult_descriptor = + getDescriptor().getMessageTypes().get(5); + internal_static_proto_VehicleAPICommandGetResult_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPICommandGetResult_descriptor, + new java.lang.String[] { "Process", "QueueCount", "QueueType", }); + internal_static_proto_VehicleAPIDataGetResult_descriptor = + getDescriptor().getMessageTypes().get(6); + internal_static_proto_VehicleAPIDataGetResult_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPIDataGetResult_descriptor, + new java.lang.String[] { "Data", }); + internal_static_proto_VehicleAPIDataGetResult_DataEntry_descriptor = + internal_static_proto_VehicleAPIDataGetResult_descriptor.getNestedTypes().get(0); + internal_static_proto_VehicleAPIDataGetResult_DataEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPIDataGetResult_DataEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_VehicleAPIAttributeStatus_descriptor = + getDescriptor().getMessageTypes().get(7); + internal_static_proto_VehicleAPIAttributeStatus_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPIAttributeStatus_descriptor, + new java.lang.String[] { "Value", "TimestampInMs", "Status", }); + internal_static_proto_VehicleAPICommandProcessStatus_descriptor = + getDescriptor().getMessageTypes().get(8); + internal_static_proto_VehicleAPICommandProcessStatus_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPICommandProcessStatus_descriptor, + new java.lang.String[] { "Errors", "InstanceId", "Name", "ProcessId", "ResponseParameters", "State", "TimestampInS", "TrackingId", }); + internal_static_proto_VehicleAPIError_descriptor = + getDescriptor().getMessageTypes().get(9); + internal_static_proto_VehicleAPIError_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPIError_descriptor, + new java.lang.String[] { "Code", "Message", "Attributes", "SubErrors", }); + internal_static_proto_VehicleAPIError_AttributesEntry_descriptor = + internal_static_proto_VehicleAPIError_descriptor.getNestedTypes().get(0); + internal_static_proto_VehicleAPIError_AttributesEntry_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VehicleAPIError_AttributesEntry_descriptor, + new java.lang.String[] { "Key", "Value", }); + internal_static_proto_AppTwinPendingCommandsRequest_descriptor = + getDescriptor().getMessageTypes().get(10); + internal_static_proto_AppTwinPendingCommandsRequest_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AppTwinPendingCommandsRequest_descriptor, + new java.lang.String[] { }); + internal_static_proto_AppTwinPendingCommandsResponse_descriptor = + getDescriptor().getMessageTypes().get(11); + internal_static_proto_AppTwinPendingCommandsResponse_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_AppTwinPendingCommandsResponse_descriptor, + new java.lang.String[] { "PendingCommands", }); + internal_static_proto_PendingCommand_descriptor = + getDescriptor().getMessageTypes().get(12); + internal_static_proto_PendingCommand_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_PendingCommand_descriptor, + new java.lang.String[] { "Vin", "ProcessId", "RequestId", "Type", }); + descriptor.resolveAllFeaturesImmutable(); + com.daimler.mbcarkit.proto.Acp.getDescriptor(); + com.google.protobuf.StructProto.getDescriptor(); + com.google.protobuf.GoGoProtos.getDescriptor(); + com.google.protobuf.ExtensionRegistry registry = + com.google.protobuf.ExtensionRegistry.newInstance(); + registry.add(com.google.protobuf.GoGoProtos.goprotoEnumPrefixAll); + com.google.protobuf.Descriptors.FileDescriptor + .internalUpdateFileDescriptor(descriptor, registry); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VinEvents.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VinEvents.java new file mode 100644 index 00000000000..c7109f0bc35 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/daimler/mbcarkit/proto/VinEvents.java @@ -0,0 +1,849 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: vin-events.proto +// Protobuf Java Version: 4.26.1 + +package com.daimler.mbcarkit.proto; + +public final class VinEvents { + private VinEvents() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VinEvents.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface VINUpdateOrBuilder extends + // @@protoc_insertion_point(interface_extends:proto.VINUpdate) + com.google.protobuf.MessageOrBuilder { + + /** + * repeated string addedVINs = 1; + * @return A list containing the addedVINs. + */ + java.util.List + getAddedVINsList(); + /** + * repeated string addedVINs = 1; + * @return The count of addedVINs. + */ + int getAddedVINsCount(); + /** + * repeated string addedVINs = 1; + * @param index The index of the element to return. + * @return The addedVINs at the given index. + */ + java.lang.String getAddedVINs(int index); + /** + * repeated string addedVINs = 1; + * @param index The index of the value to return. + * @return The bytes of the addedVINs at the given index. + */ + com.google.protobuf.ByteString + getAddedVINsBytes(int index); + + /** + * repeated string deletedVINs = 2; + * @return A list containing the deletedVINs. + */ + java.util.List + getDeletedVINsList(); + /** + * repeated string deletedVINs = 2; + * @return The count of deletedVINs. + */ + int getDeletedVINsCount(); + /** + * repeated string deletedVINs = 2; + * @param index The index of the element to return. + * @return The deletedVINs at the given index. + */ + java.lang.String getDeletedVINs(int index); + /** + * repeated string deletedVINs = 2; + * @param index The index of the value to return. + * @return The bytes of the deletedVINs at the given index. + */ + com.google.protobuf.ByteString + getDeletedVINsBytes(int index); + } + /** + * Protobuf type {@code proto.VINUpdate} + */ + public static final class VINUpdate extends + com.google.protobuf.GeneratedMessage implements + // @@protoc_insertion_point(message_implements:proto.VINUpdate) + VINUpdateOrBuilder { + private static final long serialVersionUID = 0L; + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + VINUpdate.class.getName()); + } + // Use VINUpdate.newBuilder() to construct. + private VINUpdate(com.google.protobuf.GeneratedMessage.Builder builder) { + super(builder); + } + private VINUpdate() { + addedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + deletedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VinEvents.internal_static_proto_VINUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VinEvents.internal_static_proto_VINUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VinEvents.VINUpdate.class, com.daimler.mbcarkit.proto.VinEvents.VINUpdate.Builder.class); + } + + public static final int ADDEDVINS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList addedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * repeated string addedVINs = 1; + * @return A list containing the addedVINs. + */ + public com.google.protobuf.ProtocolStringList + getAddedVINsList() { + return addedVINs_; + } + /** + * repeated string addedVINs = 1; + * @return The count of addedVINs. + */ + public int getAddedVINsCount() { + return addedVINs_.size(); + } + /** + * repeated string addedVINs = 1; + * @param index The index of the element to return. + * @return The addedVINs at the given index. + */ + public java.lang.String getAddedVINs(int index) { + return addedVINs_.get(index); + } + /** + * repeated string addedVINs = 1; + * @param index The index of the value to return. + * @return The bytes of the addedVINs at the given index. + */ + public com.google.protobuf.ByteString + getAddedVINsBytes(int index) { + return addedVINs_.getByteString(index); + } + + public static final int DELETEDVINS_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList deletedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + * repeated string deletedVINs = 2; + * @return A list containing the deletedVINs. + */ + public com.google.protobuf.ProtocolStringList + getDeletedVINsList() { + return deletedVINs_; + } + /** + * repeated string deletedVINs = 2; + * @return The count of deletedVINs. + */ + public int getDeletedVINsCount() { + return deletedVINs_.size(); + } + /** + * repeated string deletedVINs = 2; + * @param index The index of the element to return. + * @return The deletedVINs at the given index. + */ + public java.lang.String getDeletedVINs(int index) { + return deletedVINs_.get(index); + } + /** + * repeated string deletedVINs = 2; + * @param index The index of the value to return. + * @return The bytes of the deletedVINs at the given index. + */ + public com.google.protobuf.ByteString + getDeletedVINsBytes(int index) { + return deletedVINs_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < addedVINs_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 1, addedVINs_.getRaw(i)); + } + for (int i = 0; i < deletedVINs_.size(); i++) { + com.google.protobuf.GeneratedMessage.writeString(output, 2, deletedVINs_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + { + int dataSize = 0; + for (int i = 0; i < addedVINs_.size(); i++) { + dataSize += computeStringSizeNoTag(addedVINs_.getRaw(i)); + } + size += dataSize; + size += 1 * getAddedVINsList().size(); + } + { + int dataSize = 0; + for (int i = 0; i < deletedVINs_.size(); i++) { + dataSize += computeStringSizeNoTag(deletedVINs_.getRaw(i)); + } + size += dataSize; + size += 1 * getDeletedVINsList().size(); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.daimler.mbcarkit.proto.VinEvents.VINUpdate)) { + return super.equals(obj); + } + com.daimler.mbcarkit.proto.VinEvents.VINUpdate other = (com.daimler.mbcarkit.proto.VinEvents.VINUpdate) obj; + + if (!getAddedVINsList() + .equals(other.getAddedVINsList())) return false; + if (!getDeletedVINsList() + .equals(other.getDeletedVINsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getAddedVINsCount() > 0) { + hash = (37 * hash) + ADDEDVINS_FIELD_NUMBER; + hash = (53 * hash) + getAddedVINsList().hashCode(); + } + if (getDeletedVINsCount() > 0) { + hash = (37 * hash) + DELETEDVINS_FIELD_NUMBER; + hash = (53 * hash) + getDeletedVINsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input); + } + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessage + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.daimler.mbcarkit.proto.VinEvents.VINUpdate prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code proto.VINUpdate} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessage.Builder implements + // @@protoc_insertion_point(builder_implements:proto.VINUpdate) + com.daimler.mbcarkit.proto.VinEvents.VINUpdateOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.daimler.mbcarkit.proto.VinEvents.internal_static_proto_VINUpdate_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessage.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.daimler.mbcarkit.proto.VinEvents.internal_static_proto_VINUpdate_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.daimler.mbcarkit.proto.VinEvents.VINUpdate.class, com.daimler.mbcarkit.proto.VinEvents.VINUpdate.Builder.class); + } + + // Construct using com.daimler.mbcarkit.proto.VinEvents.VINUpdate.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessage.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + addedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + deletedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.daimler.mbcarkit.proto.VinEvents.internal_static_proto_VINUpdate_descriptor; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VinEvents.VINUpdate getDefaultInstanceForType() { + return com.daimler.mbcarkit.proto.VinEvents.VINUpdate.getDefaultInstance(); + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VinEvents.VINUpdate build() { + com.daimler.mbcarkit.proto.VinEvents.VINUpdate result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VinEvents.VINUpdate buildPartial() { + com.daimler.mbcarkit.proto.VinEvents.VINUpdate result = new com.daimler.mbcarkit.proto.VinEvents.VINUpdate(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.daimler.mbcarkit.proto.VinEvents.VINUpdate result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + addedVINs_.makeImmutable(); + result.addedVINs_ = addedVINs_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + deletedVINs_.makeImmutable(); + result.deletedVINs_ = deletedVINs_; + } + } + + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.daimler.mbcarkit.proto.VinEvents.VINUpdate) { + return mergeFrom((com.daimler.mbcarkit.proto.VinEvents.VINUpdate)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.daimler.mbcarkit.proto.VinEvents.VINUpdate other) { + if (other == com.daimler.mbcarkit.proto.VinEvents.VINUpdate.getDefaultInstance()) return this; + if (!other.addedVINs_.isEmpty()) { + if (addedVINs_.isEmpty()) { + addedVINs_ = other.addedVINs_; + bitField0_ |= 0x00000001; + } else { + ensureAddedVINsIsMutable(); + addedVINs_.addAll(other.addedVINs_); + } + onChanged(); + } + if (!other.deletedVINs_.isEmpty()) { + if (deletedVINs_.isEmpty()) { + deletedVINs_ = other.deletedVINs_; + bitField0_ |= 0x00000002; + } else { + ensureDeletedVINsIsMutable(); + deletedVINs_.addAll(other.deletedVINs_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + java.lang.String s = input.readStringRequireUtf8(); + ensureAddedVINsIsMutable(); + addedVINs_.add(s); + break; + } // case 10 + case 18: { + java.lang.String s = input.readStringRequireUtf8(); + ensureDeletedVINsIsMutable(); + deletedVINs_.add(s); + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.LazyStringArrayList addedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureAddedVINsIsMutable() { + if (!addedVINs_.isModifiable()) { + addedVINs_ = new com.google.protobuf.LazyStringArrayList(addedVINs_); + } + bitField0_ |= 0x00000001; + } + /** + * repeated string addedVINs = 1; + * @return A list containing the addedVINs. + */ + public com.google.protobuf.ProtocolStringList + getAddedVINsList() { + addedVINs_.makeImmutable(); + return addedVINs_; + } + /** + * repeated string addedVINs = 1; + * @return The count of addedVINs. + */ + public int getAddedVINsCount() { + return addedVINs_.size(); + } + /** + * repeated string addedVINs = 1; + * @param index The index of the element to return. + * @return The addedVINs at the given index. + */ + public java.lang.String getAddedVINs(int index) { + return addedVINs_.get(index); + } + /** + * repeated string addedVINs = 1; + * @param index The index of the value to return. + * @return The bytes of the addedVINs at the given index. + */ + public com.google.protobuf.ByteString + getAddedVINsBytes(int index) { + return addedVINs_.getByteString(index); + } + /** + * repeated string addedVINs = 1; + * @param index The index to set the value at. + * @param value The addedVINs to set. + * @return This builder for chaining. + */ + public Builder setAddedVINs( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureAddedVINsIsMutable(); + addedVINs_.set(index, value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string addedVINs = 1; + * @param value The addedVINs to add. + * @return This builder for chaining. + */ + public Builder addAddedVINs( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureAddedVINsIsMutable(); + addedVINs_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string addedVINs = 1; + * @param values The addedVINs to add. + * @return This builder for chaining. + */ + public Builder addAllAddedVINs( + java.lang.Iterable values) { + ensureAddedVINsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, addedVINs_); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * repeated string addedVINs = 1; + * @return This builder for chaining. + */ + public Builder clearAddedVINs() { + addedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001);; + onChanged(); + return this; + } + /** + * repeated string addedVINs = 1; + * @param value The bytes of the addedVINs to add. + * @return This builder for chaining. + */ + public Builder addAddedVINsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureAddedVINsIsMutable(); + addedVINs_.add(value); + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList deletedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureDeletedVINsIsMutable() { + if (!deletedVINs_.isModifiable()) { + deletedVINs_ = new com.google.protobuf.LazyStringArrayList(deletedVINs_); + } + bitField0_ |= 0x00000002; + } + /** + * repeated string deletedVINs = 2; + * @return A list containing the deletedVINs. + */ + public com.google.protobuf.ProtocolStringList + getDeletedVINsList() { + deletedVINs_.makeImmutable(); + return deletedVINs_; + } + /** + * repeated string deletedVINs = 2; + * @return The count of deletedVINs. + */ + public int getDeletedVINsCount() { + return deletedVINs_.size(); + } + /** + * repeated string deletedVINs = 2; + * @param index The index of the element to return. + * @return The deletedVINs at the given index. + */ + public java.lang.String getDeletedVINs(int index) { + return deletedVINs_.get(index); + } + /** + * repeated string deletedVINs = 2; + * @param index The index of the value to return. + * @return The bytes of the deletedVINs at the given index. + */ + public com.google.protobuf.ByteString + getDeletedVINsBytes(int index) { + return deletedVINs_.getByteString(index); + } + /** + * repeated string deletedVINs = 2; + * @param index The index to set the value at. + * @param value The deletedVINs to set. + * @return This builder for chaining. + */ + public Builder setDeletedVINs( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureDeletedVINsIsMutable(); + deletedVINs_.set(index, value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * repeated string deletedVINs = 2; + * @param value The deletedVINs to add. + * @return This builder for chaining. + */ + public Builder addDeletedVINs( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureDeletedVINsIsMutable(); + deletedVINs_.add(value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * repeated string deletedVINs = 2; + * @param values The deletedVINs to add. + * @return This builder for chaining. + */ + public Builder addAllDeletedVINs( + java.lang.Iterable values) { + ensureDeletedVINsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, deletedVINs_); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + * repeated string deletedVINs = 2; + * @return This builder for chaining. + */ + public Builder clearDeletedVINs() { + deletedVINs_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000002);; + onChanged(); + return this; + } + /** + * repeated string deletedVINs = 2; + * @param value The bytes of the deletedVINs to add. + * @return This builder for chaining. + */ + public Builder addDeletedVINsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureDeletedVINsIsMutable(); + deletedVINs_.add(value); + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + // @@protoc_insertion_point(builder_scope:proto.VINUpdate) + } + + // @@protoc_insertion_point(class_scope:proto.VINUpdate) + private static final com.daimler.mbcarkit.proto.VinEvents.VINUpdate DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.daimler.mbcarkit.proto.VinEvents.VINUpdate(); + } + + public static com.daimler.mbcarkit.proto.VinEvents.VINUpdate getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public VINUpdate parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.daimler.mbcarkit.proto.VinEvents.VINUpdate getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_proto_VINUpdate_descriptor; + private static final + com.google.protobuf.GeneratedMessage.FieldAccessorTable + internal_static_proto_VINUpdate_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\020vin-events.proto\022\005proto\"3\n\tVINUpdate\022\021" + + "\n\taddedVINs\030\001 \003(\t\022\023\n\013deletedVINs\030\002 \003(\tB\034" + + "\n\032com.daimler.mbcarkit.protob\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_proto_VINUpdate_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_proto_VINUpdate_fieldAccessorTable = new + com.google.protobuf.GeneratedMessage.FieldAccessorTable( + internal_static_proto_VINUpdate_descriptor, + new java.lang.String[] { "AddedVINs", "DeletedVINs", }); + descriptor.resolveAllFeaturesImmutable(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/google/protobuf/GoGoProtos.java b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/google/protobuf/GoGoProtos.java new file mode 100644 index 00000000000..238d9395154 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/3rdparty/java/com/google/protobuf/GoGoProtos.java @@ -0,0 +1,1146 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: gogo.proto +// Protobuf Java Version: 4.26.1 + +package com.google.protobuf; + +public final class GoGoProtos { + private GoGoProtos() {} + static { + com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion( + com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC, + /* major= */ 4, + /* minor= */ 26, + /* patch= */ 1, + /* suffix= */ "", + GoGoProtos.class.getName()); + } + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + registry.add(com.google.protobuf.GoGoProtos.goprotoEnumPrefix); + registry.add(com.google.protobuf.GoGoProtos.goprotoEnumStringer); + registry.add(com.google.protobuf.GoGoProtos.enumStringer); + registry.add(com.google.protobuf.GoGoProtos.enumCustomname); + registry.add(com.google.protobuf.GoGoProtos.enumdecl); + registry.add(com.google.protobuf.GoGoProtos.enumvalueCustomname); + registry.add(com.google.protobuf.GoGoProtos.goprotoGettersAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoEnumPrefixAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoStringerAll); + registry.add(com.google.protobuf.GoGoProtos.verboseEqualAll); + registry.add(com.google.protobuf.GoGoProtos.faceAll); + registry.add(com.google.protobuf.GoGoProtos.gostringAll); + registry.add(com.google.protobuf.GoGoProtos.populateAll); + registry.add(com.google.protobuf.GoGoProtos.stringerAll); + registry.add(com.google.protobuf.GoGoProtos.onlyoneAll); + registry.add(com.google.protobuf.GoGoProtos.equalAll); + registry.add(com.google.protobuf.GoGoProtos.descriptionAll); + registry.add(com.google.protobuf.GoGoProtos.testgenAll); + registry.add(com.google.protobuf.GoGoProtos.benchgenAll); + registry.add(com.google.protobuf.GoGoProtos.marshalerAll); + registry.add(com.google.protobuf.GoGoProtos.unmarshalerAll); + registry.add(com.google.protobuf.GoGoProtos.stableMarshalerAll); + registry.add(com.google.protobuf.GoGoProtos.sizerAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoEnumStringerAll); + registry.add(com.google.protobuf.GoGoProtos.enumStringerAll); + registry.add(com.google.protobuf.GoGoProtos.unsafeMarshalerAll); + registry.add(com.google.protobuf.GoGoProtos.unsafeUnmarshalerAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoExtensionsMapAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoUnrecognizedAll); + registry.add(com.google.protobuf.GoGoProtos.gogoprotoImport); + registry.add(com.google.protobuf.GoGoProtos.protosizerAll); + registry.add(com.google.protobuf.GoGoProtos.compareAll); + registry.add(com.google.protobuf.GoGoProtos.typedeclAll); + registry.add(com.google.protobuf.GoGoProtos.enumdeclAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoRegistration); + registry.add(com.google.protobuf.GoGoProtos.messagenameAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoSizecacheAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoUnkeyedAll); + registry.add(com.google.protobuf.GoGoProtos.goprotoGetters); + registry.add(com.google.protobuf.GoGoProtos.goprotoStringer); + registry.add(com.google.protobuf.GoGoProtos.verboseEqual); + registry.add(com.google.protobuf.GoGoProtos.face); + registry.add(com.google.protobuf.GoGoProtos.gostring); + registry.add(com.google.protobuf.GoGoProtos.populate); + registry.add(com.google.protobuf.GoGoProtos.stringer); + registry.add(com.google.protobuf.GoGoProtos.onlyone); + registry.add(com.google.protobuf.GoGoProtos.equal); + registry.add(com.google.protobuf.GoGoProtos.description); + registry.add(com.google.protobuf.GoGoProtos.testgen); + registry.add(com.google.protobuf.GoGoProtos.benchgen); + registry.add(com.google.protobuf.GoGoProtos.marshaler); + registry.add(com.google.protobuf.GoGoProtos.unmarshaler); + registry.add(com.google.protobuf.GoGoProtos.stableMarshaler); + registry.add(com.google.protobuf.GoGoProtos.sizer); + registry.add(com.google.protobuf.GoGoProtos.unsafeMarshaler); + registry.add(com.google.protobuf.GoGoProtos.unsafeUnmarshaler); + registry.add(com.google.protobuf.GoGoProtos.goprotoExtensionsMap); + registry.add(com.google.protobuf.GoGoProtos.goprotoUnrecognized); + registry.add(com.google.protobuf.GoGoProtos.protosizer); + registry.add(com.google.protobuf.GoGoProtos.compare); + registry.add(com.google.protobuf.GoGoProtos.typedecl); + registry.add(com.google.protobuf.GoGoProtos.messagename); + registry.add(com.google.protobuf.GoGoProtos.goprotoSizecache); + registry.add(com.google.protobuf.GoGoProtos.goprotoUnkeyed); + registry.add(com.google.protobuf.GoGoProtos.nullable); + registry.add(com.google.protobuf.GoGoProtos.embed); + registry.add(com.google.protobuf.GoGoProtos.customtype); + registry.add(com.google.protobuf.GoGoProtos.customname); + registry.add(com.google.protobuf.GoGoProtos.jsontag); + registry.add(com.google.protobuf.GoGoProtos.moretags); + registry.add(com.google.protobuf.GoGoProtos.casttype); + registry.add(com.google.protobuf.GoGoProtos.castkey); + registry.add(com.google.protobuf.GoGoProtos.castvalue); + registry.add(com.google.protobuf.GoGoProtos.stdtime); + registry.add(com.google.protobuf.GoGoProtos.stdduration); + registry.add(com.google.protobuf.GoGoProtos.wktpointer); + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public static final int GOPROTO_ENUM_PREFIX_FIELD_NUMBER = 62001; + /** + * extend .google.protobuf.EnumOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.EnumOptions, + java.lang.Boolean> goprotoEnumPrefix = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_ENUM_STRINGER_FIELD_NUMBER = 62021; + /** + * extend .google.protobuf.EnumOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.EnumOptions, + java.lang.Boolean> goprotoEnumStringer = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int ENUM_STRINGER_FIELD_NUMBER = 62022; + /** + * extend .google.protobuf.EnumOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.EnumOptions, + java.lang.Boolean> enumStringer = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int ENUM_CUSTOMNAME_FIELD_NUMBER = 62023; + /** + * extend .google.protobuf.EnumOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.EnumOptions, + java.lang.String> enumCustomname = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int ENUMDECL_FIELD_NUMBER = 62024; + /** + * extend .google.protobuf.EnumOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.EnumOptions, + java.lang.Boolean> enumdecl = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int ENUMVALUE_CUSTOMNAME_FIELD_NUMBER = 66001; + /** + * extend .google.protobuf.EnumValueOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.EnumValueOptions, + java.lang.String> enumvalueCustomname = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int GOPROTO_GETTERS_ALL_FIELD_NUMBER = 63001; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoGettersAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_ENUM_PREFIX_ALL_FIELD_NUMBER = 63002; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoEnumPrefixAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_STRINGER_ALL_FIELD_NUMBER = 63003; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoStringerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int VERBOSE_EQUAL_ALL_FIELD_NUMBER = 63004; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> verboseEqualAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int FACE_ALL_FIELD_NUMBER = 63005; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> faceAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOSTRING_ALL_FIELD_NUMBER = 63006; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> gostringAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int POPULATE_ALL_FIELD_NUMBER = 63007; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> populateAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int STRINGER_ALL_FIELD_NUMBER = 63008; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> stringerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int ONLYONE_ALL_FIELD_NUMBER = 63009; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> onlyoneAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int EQUAL_ALL_FIELD_NUMBER = 63013; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> equalAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int DESCRIPTION_ALL_FIELD_NUMBER = 63014; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> descriptionAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int TESTGEN_ALL_FIELD_NUMBER = 63015; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> testgenAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int BENCHGEN_ALL_FIELD_NUMBER = 63016; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> benchgenAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int MARSHALER_ALL_FIELD_NUMBER = 63017; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> marshalerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int UNMARSHALER_ALL_FIELD_NUMBER = 63018; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> unmarshalerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int STABLE_MARSHALER_ALL_FIELD_NUMBER = 63019; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> stableMarshalerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int SIZER_ALL_FIELD_NUMBER = 63020; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> sizerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_ENUM_STRINGER_ALL_FIELD_NUMBER = 63021; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoEnumStringerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int ENUM_STRINGER_ALL_FIELD_NUMBER = 63022; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> enumStringerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int UNSAFE_MARSHALER_ALL_FIELD_NUMBER = 63023; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> unsafeMarshalerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int UNSAFE_UNMARSHALER_ALL_FIELD_NUMBER = 63024; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> unsafeUnmarshalerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_EXTENSIONS_MAP_ALL_FIELD_NUMBER = 63025; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoExtensionsMapAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_UNRECOGNIZED_ALL_FIELD_NUMBER = 63026; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoUnrecognizedAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOGOPROTO_IMPORT_FIELD_NUMBER = 63027; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> gogoprotoImport = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int PROTOSIZER_ALL_FIELD_NUMBER = 63028; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> protosizerAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int COMPARE_ALL_FIELD_NUMBER = 63029; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> compareAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int TYPEDECL_ALL_FIELD_NUMBER = 63030; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> typedeclAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int ENUMDECL_ALL_FIELD_NUMBER = 63031; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> enumdeclAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_REGISTRATION_FIELD_NUMBER = 63032; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoRegistration = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int MESSAGENAME_ALL_FIELD_NUMBER = 63033; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> messagenameAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_SIZECACHE_ALL_FIELD_NUMBER = 63034; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoSizecacheAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_UNKEYED_ALL_FIELD_NUMBER = 63035; + /** + * extend .google.protobuf.FileOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FileOptions, + java.lang.Boolean> goprotoUnkeyedAll = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_GETTERS_FIELD_NUMBER = 64001; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> goprotoGetters = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_STRINGER_FIELD_NUMBER = 64003; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> goprotoStringer = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int VERBOSE_EQUAL_FIELD_NUMBER = 64004; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> verboseEqual = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int FACE_FIELD_NUMBER = 64005; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> face = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOSTRING_FIELD_NUMBER = 64006; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> gostring = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int POPULATE_FIELD_NUMBER = 64007; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> populate = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int STRINGER_FIELD_NUMBER = 67008; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> stringer = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int ONLYONE_FIELD_NUMBER = 64009; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> onlyone = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int EQUAL_FIELD_NUMBER = 64013; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> equal = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int DESCRIPTION_FIELD_NUMBER = 64014; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> description = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int TESTGEN_FIELD_NUMBER = 64015; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> testgen = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int BENCHGEN_FIELD_NUMBER = 64016; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> benchgen = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int MARSHALER_FIELD_NUMBER = 64017; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> marshaler = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int UNMARSHALER_FIELD_NUMBER = 64018; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> unmarshaler = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int STABLE_MARSHALER_FIELD_NUMBER = 64019; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> stableMarshaler = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int SIZER_FIELD_NUMBER = 64020; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> sizer = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int UNSAFE_MARSHALER_FIELD_NUMBER = 64023; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> unsafeMarshaler = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int UNSAFE_UNMARSHALER_FIELD_NUMBER = 64024; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> unsafeUnmarshaler = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_EXTENSIONS_MAP_FIELD_NUMBER = 64025; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> goprotoExtensionsMap = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_UNRECOGNIZED_FIELD_NUMBER = 64026; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> goprotoUnrecognized = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int PROTOSIZER_FIELD_NUMBER = 64028; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> protosizer = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int COMPARE_FIELD_NUMBER = 64029; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> compare = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int TYPEDECL_FIELD_NUMBER = 64030; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> typedecl = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int MESSAGENAME_FIELD_NUMBER = 64033; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> messagename = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_SIZECACHE_FIELD_NUMBER = 64034; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> goprotoSizecache = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int GOPROTO_UNKEYED_FIELD_NUMBER = 64035; + /** + * extend .google.protobuf.MessageOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.MessageOptions, + java.lang.Boolean> goprotoUnkeyed = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int NULLABLE_FIELD_NUMBER = 65001; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.Boolean> nullable = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int EMBED_FIELD_NUMBER = 65002; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.Boolean> embed = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int CUSTOMTYPE_FIELD_NUMBER = 65003; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.String> customtype = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int CUSTOMNAME_FIELD_NUMBER = 65004; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.String> customname = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int JSONTAG_FIELD_NUMBER = 65005; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.String> jsontag = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int MORETAGS_FIELD_NUMBER = 65006; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.String> moretags = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int CASTTYPE_FIELD_NUMBER = 65007; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.String> casttype = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int CASTKEY_FIELD_NUMBER = 65008; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.String> castkey = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int CASTVALUE_FIELD_NUMBER = 65009; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.String> castvalue = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.String.class, + null); + public static final int STDTIME_FIELD_NUMBER = 65010; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.Boolean> stdtime = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int STDDURATION_FIELD_NUMBER = 65011; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.Boolean> stdduration = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int WKTPOINTER_FIELD_NUMBER = 65012; + /** + * extend .google.protobuf.FieldOptions { ... } + */ + public static final + com.google.protobuf.GeneratedMessage.GeneratedExtension< + com.google.protobuf.DescriptorProtos.FieldOptions, + java.lang.Boolean> wktpointer = com.google.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\ngogo.proto\022\tgogoproto\032 google/protobuf" + + "/descriptor.proto:;\n\023goproto_enum_prefix" + + "\022\034.google.protobuf.EnumOptions\030\261\344\003 \001(\010:=" + + "\n\025goproto_enum_stringer\022\034.google.protobu" + + "f.EnumOptions\030\305\344\003 \001(\010:5\n\renum_stringer\022\034" + + ".google.protobuf.EnumOptions\030\306\344\003 \001(\010:7\n\017" + + "enum_customname\022\034.google.protobuf.EnumOp" + + "tions\030\307\344\003 \001(\t:0\n\010enumdecl\022\034.google.proto" + + "buf.EnumOptions\030\310\344\003 \001(\010:A\n\024enumvalue_cus" + + "tomname\022!.google.protobuf.EnumValueOptio" + + "ns\030\321\203\004 \001(\t:;\n\023goproto_getters_all\022\034.goog" + + "le.protobuf.FileOptions\030\231\354\003 \001(\010:?\n\027gopro" + + "to_enum_prefix_all\022\034.google.protobuf.Fil" + + "eOptions\030\232\354\003 \001(\010:<\n\024goproto_stringer_all" + + "\022\034.google.protobuf.FileOptions\030\233\354\003 \001(\010:9" + + "\n\021verbose_equal_all\022\034.google.protobuf.Fi" + + "leOptions\030\234\354\003 \001(\010:0\n\010face_all\022\034.google.p" + + "rotobuf.FileOptions\030\235\354\003 \001(\010:4\n\014gostring_" + + "all\022\034.google.protobuf.FileOptions\030\236\354\003 \001(" + + "\010:4\n\014populate_all\022\034.google.protobuf.File" + + "Options\030\237\354\003 \001(\010:4\n\014stringer_all\022\034.google" + + ".protobuf.FileOptions\030\240\354\003 \001(\010:3\n\013onlyone" + + "_all\022\034.google.protobuf.FileOptions\030\241\354\003 \001" + + "(\010:1\n\tequal_all\022\034.google.protobuf.FileOp" + + "tions\030\245\354\003 \001(\010:7\n\017description_all\022\034.googl" + + "e.protobuf.FileOptions\030\246\354\003 \001(\010:3\n\013testge" + + "n_all\022\034.google.protobuf.FileOptions\030\247\354\003 " + + "\001(\010:4\n\014benchgen_all\022\034.google.protobuf.Fi" + + "leOptions\030\250\354\003 \001(\010:5\n\rmarshaler_all\022\034.goo" + + "gle.protobuf.FileOptions\030\251\354\003 \001(\010:7\n\017unma" + + "rshaler_all\022\034.google.protobuf.FileOption" + + "s\030\252\354\003 \001(\010:<\n\024stable_marshaler_all\022\034.goog" + + "le.protobuf.FileOptions\030\253\354\003 \001(\010:1\n\tsizer" + + "_all\022\034.google.protobuf.FileOptions\030\254\354\003 \001" + + "(\010:A\n\031goproto_enum_stringer_all\022\034.google" + + ".protobuf.FileOptions\030\255\354\003 \001(\010:9\n\021enum_st" + + "ringer_all\022\034.google.protobuf.FileOptions" + + "\030\256\354\003 \001(\010:<\n\024unsafe_marshaler_all\022\034.googl" + + "e.protobuf.FileOptions\030\257\354\003 \001(\010:>\n\026unsafe" + + "_unmarshaler_all\022\034.google.protobuf.FileO" + + "ptions\030\260\354\003 \001(\010:B\n\032goproto_extensions_map" + + "_all\022\034.google.protobuf.FileOptions\030\261\354\003 \001" + + "(\010:@\n\030goproto_unrecognized_all\022\034.google." + + "protobuf.FileOptions\030\262\354\003 \001(\010:8\n\020gogoprot" + + "o_import\022\034.google.protobuf.FileOptions\030\263" + + "\354\003 \001(\010:6\n\016protosizer_all\022\034.google.protob" + + "uf.FileOptions\030\264\354\003 \001(\010:3\n\013compare_all\022\034." + + "google.protobuf.FileOptions\030\265\354\003 \001(\010:4\n\014t" + + "ypedecl_all\022\034.google.protobuf.FileOption" + + "s\030\266\354\003 \001(\010:4\n\014enumdecl_all\022\034.google.proto" + + "buf.FileOptions\030\267\354\003 \001(\010:<\n\024goproto_regis" + + "tration\022\034.google.protobuf.FileOptions\030\270\354" + + "\003 \001(\010:7\n\017messagename_all\022\034.google.protob" + + "uf.FileOptions\030\271\354\003 \001(\010:=\n\025goproto_sizeca" + + "che_all\022\034.google.protobuf.FileOptions\030\272\354" + + "\003 \001(\010:;\n\023goproto_unkeyed_all\022\034.google.pr" + + "otobuf.FileOptions\030\273\354\003 \001(\010::\n\017goproto_ge" + + "tters\022\037.google.protobuf.MessageOptions\030\201" + + "\364\003 \001(\010:;\n\020goproto_stringer\022\037.google.prot" + + "obuf.MessageOptions\030\203\364\003 \001(\010:8\n\rverbose_e" + + "qual\022\037.google.protobuf.MessageOptions\030\204\364" + + "\003 \001(\010:/\n\004face\022\037.google.protobuf.MessageO" + + "ptions\030\205\364\003 \001(\010:3\n\010gostring\022\037.google.prot" + + "obuf.MessageOptions\030\206\364\003 \001(\010:3\n\010populate\022" + + "\037.google.protobuf.MessageOptions\030\207\364\003 \001(\010" + + ":3\n\010stringer\022\037.google.protobuf.MessageOp" + + "tions\030\300\213\004 \001(\010:2\n\007onlyone\022\037.google.protob" + + "uf.MessageOptions\030\211\364\003 \001(\010:0\n\005equal\022\037.goo" + + "gle.protobuf.MessageOptions\030\215\364\003 \001(\010:6\n\013d" + + "escription\022\037.google.protobuf.MessageOpti" + + "ons\030\216\364\003 \001(\010:2\n\007testgen\022\037.google.protobuf" + + ".MessageOptions\030\217\364\003 \001(\010:3\n\010benchgen\022\037.go" + + "ogle.protobuf.MessageOptions\030\220\364\003 \001(\010:4\n\t" + + "marshaler\022\037.google.protobuf.MessageOptio" + + "ns\030\221\364\003 \001(\010:6\n\013unmarshaler\022\037.google.proto" + + "buf.MessageOptions\030\222\364\003 \001(\010:;\n\020stable_mar" + + "shaler\022\037.google.protobuf.MessageOptions\030" + + "\223\364\003 \001(\010:0\n\005sizer\022\037.google.protobuf.Messa" + + "geOptions\030\224\364\003 \001(\010:;\n\020unsafe_marshaler\022\037." + + "google.protobuf.MessageOptions\030\227\364\003 \001(\010:=" + + "\n\022unsafe_unmarshaler\022\037.google.protobuf.M" + + "essageOptions\030\230\364\003 \001(\010:A\n\026goproto_extensi" + + "ons_map\022\037.google.protobuf.MessageOptions" + + "\030\231\364\003 \001(\010:?\n\024goproto_unrecognized\022\037.googl" + + "e.protobuf.MessageOptions\030\232\364\003 \001(\010:5\n\npro" + + "tosizer\022\037.google.protobuf.MessageOptions" + + "\030\234\364\003 \001(\010:2\n\007compare\022\037.google.protobuf.Me" + + "ssageOptions\030\235\364\003 \001(\010:3\n\010typedecl\022\037.googl" + + "e.protobuf.MessageOptions\030\236\364\003 \001(\010:6\n\013mes" + + "sagename\022\037.google.protobuf.MessageOption" + + "s\030\241\364\003 \001(\010:<\n\021goproto_sizecache\022\037.google." + + "protobuf.MessageOptions\030\242\364\003 \001(\010::\n\017gopro" + + "to_unkeyed\022\037.google.protobuf.MessageOpti" + + "ons\030\243\364\003 \001(\010:1\n\010nullable\022\035.google.protobu" + + "f.FieldOptions\030\351\373\003 \001(\010:.\n\005embed\022\035.google" + + ".protobuf.FieldOptions\030\352\373\003 \001(\010:3\n\ncustom" + + "type\022\035.google.protobuf.FieldOptions\030\353\373\003 " + + "\001(\t:3\n\ncustomname\022\035.google.protobuf.Fiel" + + "dOptions\030\354\373\003 \001(\t:0\n\007jsontag\022\035.google.pro" + + "tobuf.FieldOptions\030\355\373\003 \001(\t:1\n\010moretags\022\035" + + ".google.protobuf.FieldOptions\030\356\373\003 \001(\t:1\n" + + "\010casttype\022\035.google.protobuf.FieldOptions" + + "\030\357\373\003 \001(\t:0\n\007castkey\022\035.google.protobuf.Fi" + + "eldOptions\030\360\373\003 \001(\t:2\n\tcastvalue\022\035.google" + + ".protobuf.FieldOptions\030\361\373\003 \001(\t:0\n\007stdtim" + + "e\022\035.google.protobuf.FieldOptions\030\362\373\003 \001(\010" + + ":4\n\013stdduration\022\035.google.protobuf.FieldO" + + "ptions\030\363\373\003 \001(\010:3\n\nwktpointer\022\035.google.pr" + + "otobuf.FieldOptions\030\364\373\003 \001(\010BE\n\023com.googl" + + "e.protobufB\nGoGoProtosZ\"github.com/gogo/" + + "protobuf/gogoproto" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.protobuf.DescriptorProtos.getDescriptor(), + }); + goprotoEnumPrefix.internalInit(descriptor.getExtensions().get(0)); + goprotoEnumStringer.internalInit(descriptor.getExtensions().get(1)); + enumStringer.internalInit(descriptor.getExtensions().get(2)); + enumCustomname.internalInit(descriptor.getExtensions().get(3)); + enumdecl.internalInit(descriptor.getExtensions().get(4)); + enumvalueCustomname.internalInit(descriptor.getExtensions().get(5)); + goprotoGettersAll.internalInit(descriptor.getExtensions().get(6)); + goprotoEnumPrefixAll.internalInit(descriptor.getExtensions().get(7)); + goprotoStringerAll.internalInit(descriptor.getExtensions().get(8)); + verboseEqualAll.internalInit(descriptor.getExtensions().get(9)); + faceAll.internalInit(descriptor.getExtensions().get(10)); + gostringAll.internalInit(descriptor.getExtensions().get(11)); + populateAll.internalInit(descriptor.getExtensions().get(12)); + stringerAll.internalInit(descriptor.getExtensions().get(13)); + onlyoneAll.internalInit(descriptor.getExtensions().get(14)); + equalAll.internalInit(descriptor.getExtensions().get(15)); + descriptionAll.internalInit(descriptor.getExtensions().get(16)); + testgenAll.internalInit(descriptor.getExtensions().get(17)); + benchgenAll.internalInit(descriptor.getExtensions().get(18)); + marshalerAll.internalInit(descriptor.getExtensions().get(19)); + unmarshalerAll.internalInit(descriptor.getExtensions().get(20)); + stableMarshalerAll.internalInit(descriptor.getExtensions().get(21)); + sizerAll.internalInit(descriptor.getExtensions().get(22)); + goprotoEnumStringerAll.internalInit(descriptor.getExtensions().get(23)); + enumStringerAll.internalInit(descriptor.getExtensions().get(24)); + unsafeMarshalerAll.internalInit(descriptor.getExtensions().get(25)); + unsafeUnmarshalerAll.internalInit(descriptor.getExtensions().get(26)); + goprotoExtensionsMapAll.internalInit(descriptor.getExtensions().get(27)); + goprotoUnrecognizedAll.internalInit(descriptor.getExtensions().get(28)); + gogoprotoImport.internalInit(descriptor.getExtensions().get(29)); + protosizerAll.internalInit(descriptor.getExtensions().get(30)); + compareAll.internalInit(descriptor.getExtensions().get(31)); + typedeclAll.internalInit(descriptor.getExtensions().get(32)); + enumdeclAll.internalInit(descriptor.getExtensions().get(33)); + goprotoRegistration.internalInit(descriptor.getExtensions().get(34)); + messagenameAll.internalInit(descriptor.getExtensions().get(35)); + goprotoSizecacheAll.internalInit(descriptor.getExtensions().get(36)); + goprotoUnkeyedAll.internalInit(descriptor.getExtensions().get(37)); + goprotoGetters.internalInit(descriptor.getExtensions().get(38)); + goprotoStringer.internalInit(descriptor.getExtensions().get(39)); + verboseEqual.internalInit(descriptor.getExtensions().get(40)); + face.internalInit(descriptor.getExtensions().get(41)); + gostring.internalInit(descriptor.getExtensions().get(42)); + populate.internalInit(descriptor.getExtensions().get(43)); + stringer.internalInit(descriptor.getExtensions().get(44)); + onlyone.internalInit(descriptor.getExtensions().get(45)); + equal.internalInit(descriptor.getExtensions().get(46)); + description.internalInit(descriptor.getExtensions().get(47)); + testgen.internalInit(descriptor.getExtensions().get(48)); + benchgen.internalInit(descriptor.getExtensions().get(49)); + marshaler.internalInit(descriptor.getExtensions().get(50)); + unmarshaler.internalInit(descriptor.getExtensions().get(51)); + stableMarshaler.internalInit(descriptor.getExtensions().get(52)); + sizer.internalInit(descriptor.getExtensions().get(53)); + unsafeMarshaler.internalInit(descriptor.getExtensions().get(54)); + unsafeUnmarshaler.internalInit(descriptor.getExtensions().get(55)); + goprotoExtensionsMap.internalInit(descriptor.getExtensions().get(56)); + goprotoUnrecognized.internalInit(descriptor.getExtensions().get(57)); + protosizer.internalInit(descriptor.getExtensions().get(58)); + compare.internalInit(descriptor.getExtensions().get(59)); + typedecl.internalInit(descriptor.getExtensions().get(60)); + messagename.internalInit(descriptor.getExtensions().get(61)); + goprotoSizecache.internalInit(descriptor.getExtensions().get(62)); + goprotoUnkeyed.internalInit(descriptor.getExtensions().get(63)); + nullable.internalInit(descriptor.getExtensions().get(64)); + embed.internalInit(descriptor.getExtensions().get(65)); + customtype.internalInit(descriptor.getExtensions().get(66)); + customname.internalInit(descriptor.getExtensions().get(67)); + jsontag.internalInit(descriptor.getExtensions().get(68)); + moretags.internalInit(descriptor.getExtensions().get(69)); + casttype.internalInit(descriptor.getExtensions().get(70)); + castkey.internalInit(descriptor.getExtensions().get(71)); + castvalue.internalInit(descriptor.getExtensions().get(72)); + stdtime.internalInit(descriptor.getExtensions().get(73)); + stdduration.internalInit(descriptor.getExtensions().get(74)); + wktpointer.internalInit(descriptor.getExtensions().get(75)); + descriptor.resolveAllFeaturesImmutable(); + com.google.protobuf.DescriptorProtos.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java index b600261962c..ac2f9152b1d 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/Constants.java @@ -12,22 +12,32 @@ */ package org.openhab.binding.mercedesme.internal; +import java.util.Collections; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + import javax.measure.Unit; +import javax.measure.quantity.Energy; import javax.measure.quantity.Length; +import javax.measure.quantity.Power; +import javax.measure.quantity.Pressure; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.core.library.unit.MetricPrefix; import org.openhab.core.library.unit.SIUnits; +import org.openhab.core.library.unit.Units; import org.openhab.core.thing.ThingTypeUID; /** - * The {@link Constants} class defines common constants, which are + * {@link Constants} defines common constants, which are * used across the whole binding. * * @author Bernd Weymann - Initial contribution */ @NonNullByDefault public class Constants { + public static final String BINDING_VERSION = "oh-release"; public static final String BINDING_ID = "mercedesme"; public static final String COMBUSTION = "combustion"; @@ -40,60 +50,282 @@ public class Constants { public static final ThingTypeUID THING_TYPE_HYBRID = new ThingTypeUID(BINDING_ID, HYBRID); public static final ThingTypeUID THING_TYPE_BEV = new ThingTypeUID(BINDING_ID, BEV); - public static final String GROUP_RANGE = "range"; + public static final int REQUEST_TIMEOUT_MS = 10_000; + + public static final Set DISCOVERABLE_DEVICE_TYPE_UIDS = Collections + .unmodifiableSet(Stream.of(THING_TYPE_COMB, THING_TYPE_HYBRID, THING_TYPE_BEV).collect(Collectors.toSet())); + + public static final String MB_KEY_TIRE_SENSOR_AVAILABLE = "tireSensorAvailable"; + public static final String MB_KEY_CHARGE_COUPLER_DC_LOCK_STATUS = "chargeCouplerDCLockStatus"; + public static final String MB_KEY_CHARGE_COUPLER_DC_STATUS = "chargeCouplerDCStatus"; + public static final String MB_KEY_CHARGE_COUPLER_AC_STATUS = "chargeCouplerACStatus"; + public static final String MB_KEY_CHARGE_FLAP_DC_STATUS = "chargeFlapDCStatus"; + public static final String MB_KEY_SERVICEINTERVALDAYS = "serviceintervaldays"; + public static final String MB_KEY_TIREWARNINGSRDK = "tirewarningsrdk"; + public static final String MB_KEY_STARTER_BATTERY_STATE = "starterBatteryState"; + public static final String MB_KEY_FLIP_WINDOW_STATUS = "flipWindowStatus"; + public static final String MB_KEY_WINDOW_STATUS_REAR_BLIND = "windowStatusRearBlind"; + public static final String MB_KEY_WINDOW_STATUS_REAR_LEFT_BLIND = "windowStatusRearLeftBlind"; + public static final String MB_KEY_WINDOW_STATUS_REAR_RIGHT_BLIND = "windowStatusRearRightBlind"; + public static final String MB_KEY_WINDOWSTATUSREARRIGHT = "windowstatusrearright"; + public static final String MB_KEY_WINDOWSTATUSREARLEFT = "windowstatusrearleft"; + public static final String MB_KEY_WINDOWSTATUSFRONTRIGHT = "windowstatusfrontright"; + public static final String MB_KEY_WINDOWSTATUSFRONTLEFT = "windowstatusfrontleft"; + public static final String MB_KEY_ROOFTOPSTATUS = "rooftopstatus"; + public static final String MB_KEY_SUNROOF_STATUS_REAR_BLIND = "sunroofStatusRearBlind"; + public static final String MB_KEY_SUNROOF_STATUS_FRONT_BLIND = "sunroofStatusFrontBlind"; + public static final String MB_KEY_SUNROOFSTATUS = "sunroofstatus"; + public static final String MB_KEY_IGNITIONSTATE = "ignitionstate"; + public static final String MB_KEY_DOOR_STATUS_OVERALL = "doorStatusOverall"; + public static final String MB_KEY_WINDOW_STATUS_OVERALL = "windowStatusOverall"; + public static final String MB_KEY_DOOR_LOCK_STATUS_OVERALL = "doorLockStatusOverall"; + public static final String MB_KEY_TIRE_MARKER_FRONT_RIGHT = "tireMarkerFrontRight"; + public static final String MB_KEY_TIRE_MARKER_FRONT_LEFT = "tireMarkerFrontLeft"; + public static final String MB_KEY_TIRE_MARKER_REAR_RIGHT = "tireMarkerRearRight"; + public static final String MB_KEY_TIRE_MARKER_REAR_LEFT = "tireMarkerRearLeft"; + public static final String MB_KEY_PARKBRAKESTATUS = "parkbrakestatus"; + public static final String MB_KEY_PRECOND_NOW = "precondNow"; + public static final String MB_KEY_PRECOND_SEAT_FRONT_RIGHT = "precondSeatFrontRight"; + public static final String MB_KEY_PRECOND_SEAT_FRONT_LEFT = "precondSeatFrontLeft"; + public static final String MB_KEY_PRECOND_SEAT_REAR_RIGHT = "precondSeatRearRight"; + public static final String MB_KEY_PRECOND_SEAT_REAR_LEFT = "precondSeatRearLeft"; + public static final String MB_KEY_WARNINGBRAKEFLUID = "warningbrakefluid"; + public static final String MB_KEY_WARNINGBRAKELININGWEAR = "warningbrakeliningwear"; + public static final String MB_KEY_WARNINGWASHWATER = "warningwashwater"; + public static final String MB_KEY_WARNINGCOOLANTLEVELLOW = "warningcoolantlevellow"; + public static final String MB_KEY_WARNINGENGINELIGHT = "warningenginelight"; + public static final String MB_KEY_CHARGINGACTIVE = "chargingactive"; + public static final String MB_KEY_DOORLOCKSTATUSFRONTRIGHT = "doorlockstatusfrontright"; + public static final String MB_KEY_DOORLOCKSTATUSFRONTLEFT = "doorlockstatusfrontleft"; + public static final String MB_KEY_DOORLOCKSTATUSREARRIGHT = "doorlockstatusrearright"; + public static final String MB_KEY_DOORLOCKSTATUSREARLEFT = "doorlockstatusrearleft"; + public static final String MB_KEY_DOORLOCKSTATUSDECKLID = "doorlockstatusdecklid"; + public static final String MB_KEY_DOORLOCKSTATUSGAS = "doorlockstatusgas"; + public static final String MB_KEY_TIREPRESSURE_FRONT_LEFT = "tirepressureFrontLeft"; + public static final String MB_KEY_TIREPRESSURE_FRONT_RIGHT = "tirepressureFrontRight"; + public static final String MB_KEY_TIREPRESSURE_REAR_LEFT = "tirepressureRearLeft"; + public static final String MB_KEY_POSITION_HEADING = "positionHeading"; + public static final String MB_KEY_TIREPRESSURE_REAR_RIGHT = "tirepressureRearRight"; + public static final String MB_KEY_ENGINE_HOOD_STATUS = "engineHoodStatus"; + public static final String MB_KEY_DECKLIDSTATUS = "decklidstatus"; + public static final String MB_KEY_DOORSTATUSREARLEFT = "doorstatusrearleft"; + public static final String MB_KEY_DOORSTATUSREARRIGHT = "doorstatusrearright"; + public static final String MB_KEY_DOORSTATUSFRONTLEFT = "doorstatusfrontleft"; + public static final String MB_KEY_DOORSTATUSFRONTRIGHT = "doorstatusfrontright"; + public static final String MB_KEY_TANKLEVELPERCENT = "tanklevelpercent"; + public static final String MB_KEY_SOC = "soc"; + public static final String MB_KEY_TIRE_PRESS_MEAS_TIMESTAMP = "tirePressMeasTimestamp"; + public static final String MB_KEY_ENDOFCHARGETIME = "endofchargetime"; + public static final String MB_KEY_LIQUIDCONSUMPTIONRESET = "liquidconsumptionreset"; + public static final String MB_KEY_LIQUIDCONSUMPTIONSTART = "liquidconsumptionstart"; + public static final String MB_KEY_ELECTRICCONSUMPTIONRESET = "electricconsumptionreset"; + public static final String MB_KEY_ELECTRICCONSUMPTIONSTART = "electricconsumptionstart"; + public static final String MB_KEY_AVERAGE_SPEED_RESET = "averageSpeedReset"; + public static final String MB_KEY_AVERAGE_SPEED_START = "averageSpeedStart"; + public static final String MB_KEY_CHARGING_POWER = "chargingPower"; + public static final String MB_KEY_DRIVEN_TIME_RESET = "drivenTimeReset"; + public static final String MB_KEY_DRIVEN_TIME_START = "drivenTimeStart"; + public static final String MB_KEY_DISTANCE_RESET = "distanceReset"; + public static final String MB_KEY_DISTANCE_START = "distanceStart"; + public static final String MB_KEY_RANGELIQUID = "rangeliquid"; + public static final String MB_KEY_OVERALL_RANGE = "overallRange"; + public static final String MB_KEY_RANGEELECTRIC = "rangeelectric"; + public static final String MB_KEY_ODO = "odo"; + public static final String MB_KEY_POSITION_LONG = "positionLong"; + public static final String MB_KEY_POSITION_LAT = "positionLat"; + public static final String MB_KEY_TEMPERATURE_POINTS = "temperaturePoints"; + public static final String MB_KEY_SELECTED_CHARGE_PROGRAM = "selectedChargeProgram"; + public static final String MB_KEY_CHARGE_PROGRAMS = "chargePrograms"; + public static final String MB_KEY_COMMAND_CAPABILITIES = "command-capabilities"; + public static final String MB_KEY_FEATURE_CAPABILITIES = "feature-capabilities"; + public static final String MB_KEY_COMMAND_ZEV_PRECONDITION_CONFIGURE_SEATS = "commandZevPreconditionConfigureSeats"; + public static final String MB_KEY_COMMAND_SUNROOF_OPEN = "commandSunroofOpen"; + public static final String MB_KEY_COMMAND_CHARGE_PROGRAM_CONFIGURE = "commandChargeProgramConfigure"; + public static final String MB_KEY_COMMAND_SIGPOS_START = "commandSigposStart"; + public static final String MB_KEY_FEATURE_AUX_HEAT = "featureAuxHeat"; + public static final String MB_KEY_COMMAND_ZEV_PRECONDITIONING_START = "commandZevPreconditioningStart"; + public static final String MB_KEY_COMMAND_ZEV_PRECONDITION_CONFIGURE = "commandZevPreconditionConfigure"; + public static final String MB_KEY_COMMAND_DOORS_LOCK = "commandDoorsLock"; + public static final String MB_KEY_COMMAND_WINDOWS_OPEN = "commandWindowsOpen"; + public static final String MB_KEY_COMMAND_ENGINE_START = "commandEngineStart"; + + public static final String GROUP_VEHICLE = "vehicle"; public static final String GROUP_DOORS = "doors"; - public static final String GROUP_WINDOWS = "windows"; public static final String GROUP_LOCK = "lock"; - public static final String GROUP_LIGHTS = "lights"; - public static final String GROUP_LOCATION = "location"; - public static final String GROUP_IMAGE = "image"; + public static final String GROUP_WINDOWS = "windows"; + public static final String GROUP_HVAC = "hvac"; + public static final String GROUP_SERVICE = "service"; + public static final String GROUP_RANGE = "range"; + public static final String GROUP_CHARGE = "charge"; + public static final String GROUP_TRIP = "trip"; + public static final String GROUP_POSITION = "position"; + public static final String GROUP_TIRES = "tires"; + public static final String GROUP_COMMAND = "command"; - public static final String MB_AUTH_URL = "https://ssoalpha.dvb.corpinter.net/v1/auth"; - public static final String MB_TOKEN_URL = "https://ssoalpha.dvb.corpinter.net/v1/token"; - public static final String CALLBACK_ENDPOINT = "/mb-callback"; - public static final String OAUTH_CLIENT_NAME = "#byocar"; - - // https://developer.mercedes-benz.com/products/electric_vehicle_status/docs - public static final String SCOPE_EV = "mb:vehicle:mbdata:evstatus"; - // https://developer.mercedes-benz.com/products/fuel_status/docs - public static final String SCOPE_FUEL = "mb:vehicle:mbdata:fuelstatus"; - // https://developer.mercedes-benz.com/products/pay_as_you_drive_insurance/docs - public static final String SCOPE_ODO = "mb:vehicle:mbdata:payasyoudrive"; - // https://developer.mercedes-benz.com/products/vehicle_lock_status/docs - public static final String SCOPE_LOCK = "mb:vehicle:mbdata:vehiclelock"; - // https://developer.mercedes-benz.com/products/vehicle_status/docs - public static final String SCOPE_STATUS = "mb:vehicle:mbdata:vehiclestatus"; - public static final String SCOPE_OFFLINE = "offline_access"; - public static final String SCOPE_OPENID = "openid"; - - public static final String BASE_URL = "https://api.mercedes-benz.com/vehicledata/v2"; - public static final String ODO_URL = BASE_URL + "/vehicles/%s/containers/payasyoudrive"; - public static final String STATUS_URL = BASE_URL + "/vehicles/%s/containers/vehiclestatus"; - public static final String LOCK_URL = BASE_URL + "/vehicles/%s/containers/vehiclelockstatus"; - public static final String FUEL_URL = BASE_URL + "/vehicles/%s/containers/fuelstatus"; - public static final String EV_URL = BASE_URL + "/vehicles/%s/containers/electricvehicle"; + public static final String OH_CHANNEL_LAST_UPDATE = "last-update"; + public static final String OH_CHANNEL_SENSOR_AVAILABLE = "sensor-available"; + public static final String OH_CHANNEL_MARKER_FRONT_LEFT = "marker-front-left"; + public static final String OH_CHANNEL_MARKER_REAR_LEFT = "marker-rear-left"; + public static final String OH_CHANNEL_MARKER_FRONT_RIGHT = "marker-front-right"; + public static final String OH_CHANNEL_MARKER_REAR_RIGHT = "marker-rear-right"; + public static final String OH_CHANNEL_PRESSURE_FRONT_LEFT = "pressure-front-left"; + public static final String OH_CHANNEL_PRESSURE_REAR_LEFT = "pressure-rear-left"; + public static final String OH_CHANNEL_PRESSURE_FRONT_RIGHT = "pressure-front-right"; + public static final String OH_CHANNEL_PRESSURE_REAR_RIGHT = "pressure-rear-right"; + public static final String OH_CHANNEL_CONS_CONV_RESET = "cons-conv-reset"; + public static final String OH_CHANNEL_CONS_EV_RESET = "cons-ev-reset"; + public static final String OH_CHANNEL_AVG_SPEED_RESET = "avg-speed-reset"; + public static final String OH_CHANNEL_TIME_RESET = "time-reset"; + public static final String OH_CHANNEL_DISTANCE_RESET = "distance-reset"; + public static final String OH_CHANNEL_CONS_CONV = "cons-conv"; + public static final String OH_CHANNEL_CONS_EV = "cons-ev"; + public static final String OH_CHANNEL_AVG_SPEED = "avg-speed"; + public static final String OH_CHANNEL_TIME = "time"; + public static final String OH_CHANNEL_DISTANCE = "distance"; + public static final String OH_CHANNEL_HEADING = "heading"; + public static final String OH_CHANNEL_END_TIME = "end-time"; + public static final String OH_CHANNEL_POWER = "power"; + public static final String OH_CHANNEL_COUPLER_LOCK = "coupler-lock"; + public static final String OH_CHANNEL_COUPLER_DC = "coupler-dc"; + public static final String OH_CHANNEL_COUPLER_AC = "coupler-ac"; + public static final String OH_CHANNEL_CHARGE_FLAP = "charge-flap"; + public static final String OH_CHANNEL_FUEL_LEVEL = "fuel-level"; + public static final String OH_CHANNEL_RANGE_HYBRID = "range-hybrid"; + public static final String OH_CHANNEL_RANGE_FUEL = "range-fuel"; + public static final String OH_CHANNEL_RANGE_ELECTRIC = "range-electric"; + public static final String OH_CHANNEL_RADIUS_HYBRID = "radius-hybrid"; + public static final String OH_CHANNEL_RADIUS_FUEL = "radius-fuel"; + public static final String OH_CHANNEL_RADIUS_ELECTRIC = "radius-electric"; + public static final String OH_CHANNEL_SERVICE_DAYS = "service-days"; + public static final String OH_CHANNEL_TIRES_RDK = "tires-rdk"; + public static final String OH_CHANNEL_ENGINE = "engine"; + public static final String OH_CHANNEL_COOLANT_FLUID = "coolant-fluid"; + public static final String OH_CHANNEL_BRAKE_LINING_WEAR = "brake-lining-wear"; + public static final String OH_CHANNEL_WASH_WATER = "wash-water"; + public static final String OH_CHANNEL_BRAKE_FLUID = "brake-fluid"; + public static final String OH_CHANNEL_STARTER_BATTERY = "starter-battery"; + public static final String OH_CHANNEL_ACTIVE = "active"; + public static final String OH_CHANNEL_FLIP_WINDOW = "flip-window"; + public static final String OH_CHANNEL_REAR_BLIND = "rear-blind"; + public static final String OH_CHANNEL_REAR_LEFT_BLIND = "rear-left-blind"; + public static final String OH_CHANNEL_REAR_RIGHT_BLIND = "rear-right-blind"; + public static final String OH_CHANNEL_GAS_FLAP = "gas-flap"; + public static final String OH_CHANNEL_ROOFTOP = "rooftop"; + public static final String OH_CHANNEL_SUNROOF_REAR_BLIND = "sunroof-rear-blind"; + public static final String OH_CHANNEL_SUNROOF_FRONT_BLIND = "sunroof-front-blind"; + public static final String OH_CHANNEL_SUNROOF = "sunroof"; + public static final String OH_CHANNEL_ENGINE_HOOD = "engine-hood"; + public static final String OH_CHANNEL_DECK_LID = "deck-lid"; + public static final String OH_CHANNEL_REAR_LEFT = "rear-left"; + public static final String OH_CHANNEL_REAR_RIGHT = "rear-right"; + public static final String OH_CHANNEL_FRONT_LEFT = "front-left"; + public static final String OH_CHANNEL_FRONT_RIGHT = "front-right"; + public static final String OH_CHANNEL_PARK_BRAKE = "park-brake"; + public static final String OH_CHANNEL_IGNITION = "ignition"; + public static final String OH_CHANNEL_DOOR_STATUS = "door-status"; + public static final String OH_CHANNEL_WINDOWS = "windows"; + public static final String OH_CHANNEL_LOCK = "lock"; + public static final String OH_CHANNEL_MILEAGE = "mileage"; + public static final String OH_CHANNEL_TEMPERATURE = "temperature"; + public static final String OH_CHANNEL_AUX_HEAT = "aux-heat"; + public static final String OH_CHANNEL_ZONE = "zone"; + public static final String OH_CHANNEL_SIGNAL = "signal"; + public static final String OH_CHANNEL_AUTO_UNLOCK = "auto-unlock"; + public static final String OH_CHANNEL_MAX_SOC = "max-soc"; + public static final String OH_CHANNEL_PROGRAM = "program"; + public static final String OH_CHANNEL_CMD_LAST_UPDATE = "cmd-last-update"; + public static final String OH_CHANNEL_CMD_STATE = "cmd-state"; + public static final String OH_CHANNEL_CMD_NAME = "cmd-name"; + public static final String OH_CHANNEL_PROTO_UPDATE = "proto-update"; + public static final String OH_CHANNEL_SOC = "soc"; + public static final String OH_CHANNEL_UNCHARGED = "uncharged"; + public static final String OH_CHANNEL_CHARGED = "charged"; + public static final String OH_CHANNEL_TANK_OPEN = "tank-open"; + public static final String OH_CHANNEL_TANK_REMAIN = "tank-remain"; + public static final String OH_CHANNEL_HOME_DISTANCE = "home-distance"; + public static final String OH_CHANNEL_GPS = "gps"; + public static final String OH_CHANNEL_CONS_CONV_UNIT = "cons-conv-unit"; + public static final String OH_CHANNEL_CONS_EV_UNIT = "cons-ev-unit"; + public static final String CALLBACK_ENDPOINT = "/mb-auth"; // https://developer.mercedes-benz.com/content-page/api_migration_guide public static final String IMAGE_BASE_URL = "https://api.mercedes-benz.com/vehicle_images/v2"; public static final String IMAGE_EXTERIOR_RESOURCE_URL = IMAGE_BASE_URL + "/vehicles/%s"; public static final String STATUS_TEXT_PREFIX = "@text/mercedesme."; public static final String STATUS_AUTH_NEEDED = ".status.authorization-needed"; + public static final String STATUS_EMAIL_MISSING = ".status.email-missing"; + public static final String STATUS_REGION_MISSING = ".status.region-missing"; + public static final String STATUS_REFRESH_INVALID = ".status.refresh-invalid"; public static final String STATUS_IP_MISSING = ".status.ip-missing"; public static final String STATUS_PORT_MISSING = ".status.port-missing"; - public static final String STATUS_CLIENT_ID_MISSING = ".status.client-id-missing"; - public static final String STATUS_CLIENT_SECRET_MISSING = ".status.client-secret-missing"; public static final String STATUS_SERVER_RESTART = ".status.server-restart"; public static final String STATUS_BRIDGE_MISSING = ".status.bridge-missing"; - public static final String STATUS_BRIDGE_ATHORIZATION = ".status.bridge-authoriziation"; public static final String SPACE = " "; public static final String EMPTY = ""; public static final String COLON = ":"; public static final String NOT_SET = "not set"; + public static final String UNRECOGNIZED = "UNRECOGNIZED"; public static final String CODE = "code"; + public static final String GUID = "guid"; + public static final String PIN = "pin"; public static final String MIME_PREFIX = "image/"; public static final Unit KILOMETRE_UNIT = MetricPrefix.KILO(SIUnits.METRE); + public static final Unit KILOWATT_UNIT = MetricPrefix.KILO(Units.WATT); + public static final Unit KILOWATT_HOUR_UNIT = MetricPrefix.KILO(Units.WATT_HOUR); + public static final Unit KPA_UNIT = MetricPrefix.KILO(SIUnits.PASCAL); + + public static final String LOGIN_APP_ID = "01398c1c-dc45-4b42-882b-9f5ba9f175f1"; + public static final String LOGIN_APP_ID_EU = "01398c1c-dc45-4b42-882b-9f5ba9f175f1"; + public static final String LOGIN_APP_ID_CN = "3f36efb1-f84b-4402-b5a2-68a118fec33e"; + public static final String LOGIN_BASE_URI = "https://id.mercedes-benz.com"; + public static final String LOGIN_BASE_URI_CN = "https://ciam-1.mercedes-benz.com.cn"; + public static final String LOGIN_BASE_URI_NA = "https://id.mercedes-benz.com"; + public static final String LOGIN_BASE_URI_PA = "https://id.mercedes-benz.com"; + public static final String PSAG_BASE_URI = "https://psag.query.api.dvb.corpinter.net"; + public static final String PSAG_BASE_URI_CN = "https://psag.query.api.dvb.corpinter.net.cn"; + public static final String RCP_BASE_URI = "https://rcp-rs.query.api.dvb.corpinter.net"; + public static final String RCP_BASE_URI_CN = "https://rcp-rs.query.api.dvb.corpinter.net.cn"; + public static final String REST_API_BASE = "https://bff.emea-prod.mobilesdk.mercedes-benz.com"; + public static final String REST_API_BASE_CN = "https://bff.cn-prod.mobilesdk.mercedes-benz.com"; + public static final String REST_API_BASE_NA = "https://bff.amap-prod.mobilesdk.mercedes-benz.com"; + public static final String REST_API_BASE_PA = "https://bff.amap-prod.mobilesdk.mercedes-benz.com"; + public static final String WEBSOCKET_API_BASE = "wss://websocket.emea-prod.mobilesdk.mercedes-benz.com/ws"; + public static final String WEBSOCKET_API_BASE_NA = "wss://websocket.amap-prod.mobilesdk.mercedes-benz.com/ws"; + public static final String WEBSOCKET_API_BASE_PA = "wss://websocket.amap-prod.mobilesdk.mercedes-benz.com/ws"; + public static final String WEBSOCKET_API_BASE_CN = "wss://websocket.cn-prod.mobilesdk.mercedes-benz.com/ws"; + public static final String WEBSOCKET_USER_AGENT = "MyCar/1.30.1 (com.daimler.ris.mercedesme.ece.ios; build:1819; iOS 16.5.0) Alamofire/5.4.0"; + public static final String WEBSOCKET_USER_AGENT_CN = "MyStarCN/1.27.0 (com.daimler.ris.mercedesme.cn.ios; build:1758; iOS 16.3.1) Alamofire/5.4.0"; + public static final String WEBSOCKET_USER_AGENT_PA = "mycar-store-ap v1.27.0, android 8.0.0, SDK 2.84.3"; + + public static final String RIS_APPLICATION_VERSION_NA = "3.40.0"; + public static final String RIS_APPLICATION_VERSION_CN = "1.39.0"; + public static final String RIS_APPLICATION_VERSION_PA = "1.40.0"; + public static final String RIS_APPLICATION_VERSION = "1.42.0 (2168)"; + public static final String RIS_SDK_VERSION = "2.114.0"; + public static final String RIS_SDK_VERSION_CN = "2.109.2"; + public static final String RIS_OS_VERSION = "17.4.1"; + public static final String RIS_OS_NAME = "ios"; + public static final String X_APPLICATIONNAME = "mycar-store-ece"; + public static final String X_APPLICATIONNAME_ECE = "mycar-store-ece"; + public static final String X_APPLICATIONNAME_CN = "mycar-store-cn"; + public static final String X_APPLICATIONNAME_US = "mycar-store-us"; + public static final String X_APPLICATIONNAME_AP = "mycar-store-ap"; + + public static final String REGION_EUROPE = "EU"; + public static final String REGION_NORAM = "NA"; + public static final String REGION_APAC = "AP"; + public static final String REGION_CHINA = "CN"; + + public static final String SCOPE = "openid email phone profile offline_access ciam-uid"; + + public static final String MAX_SOC_KEY = "maxsoc"; + public static final String AUTO_UNLOCK_KEY = "autolock"; + + public static final String JUNIT_SERVER_ADDR = "http://999.999.999.999:99999/mb-auth"; + public static final String JUNIT_TOKEN = "junitTestToken"; + public static final String JUNIT_REFRESH_TOKEN = "junitRefreshToken"; } diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/MercedesMeHandlerFactory.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/MercedesMeHandlerFactory.java index a8e5679b4e0..357a66325ee 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/MercedesMeHandlerFactory.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/MercedesMeHandlerFactory.java @@ -19,12 +19,19 @@ import java.util.Set; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.WWWAuthenticationProtocolHandler; +import org.openhab.binding.mercedesme.internal.discovery.MercedesMeDiscoveryService; import org.openhab.binding.mercedesme.internal.handler.AccountHandler; import org.openhab.binding.mercedesme.internal.handler.VehicleHandler; -import org.openhab.core.auth.client.oauth2.OAuthFactory; +import org.openhab.binding.mercedesme.internal.utils.Mapper; +import org.openhab.binding.mercedesme.internal.utils.Utils; +import org.openhab.core.config.discovery.DiscoveryService; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.i18n.LocationProvider; import org.openhab.core.i18n.TimeZoneProvider; +import org.openhab.core.i18n.UnitProvider; import org.openhab.core.io.net.http.HttpClientFactory; +import org.openhab.core.items.MetadataRegistry; +import org.openhab.core.net.NetworkAddressService; import org.openhab.core.storage.StorageService; import org.openhab.core.thing.Bridge; import org.openhab.core.thing.Thing; @@ -32,16 +39,16 @@ import org.openhab.core.thing.ThingTypeUID; import org.openhab.core.thing.binding.BaseThingHandlerFactory; import org.openhab.core.thing.binding.ThingHandler; import org.openhab.core.thing.binding.ThingHandlerFactory; +import org.openhab.core.thing.link.ItemChannelLinkRegistry; +import org.osgi.framework.Bundle; +import org.osgi.framework.ServiceRegistration; import org.osgi.service.component.ComponentContext; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** - * The {@link MercedesMeHandlerFactory} is responsible for creating things and thing - * handlers. + * The {@link MercedesMeHandlerFactory} is responsible for creating thing handlers. * * @author Bernd Weymann - Initial contribution */ @@ -51,31 +58,38 @@ public class MercedesMeHandlerFactory extends BaseThingHandlerFactory { private static final Set SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_BEV, THING_TYPE_COMB, THING_TYPE_HYBRID, THING_TYPE_ACCOUNT); - private final Logger logger = LoggerFactory.getLogger(MercedesMeHandlerFactory.class); - private final OAuthFactory oAuthFactory; private final HttpClient httpClient; + private final LocaleProvider localeProvider; + private final LocationProvider locationProvider; + private final StorageService storageService; + private final MercedesMeDiscoveryService discoveryService; private final MercedesMeCommandOptionProvider mmcop; private final MercedesMeStateOptionProvider mmsop; - private final StorageService storageService; - private final TimeZoneProvider timeZoneProvider; + private final NetworkAddressService networkService; + private @Nullable ServiceRegistration discoveryServiceReg; + private @Nullable MercedesMeMetadataAdjuster mdAdjuster; + + public static String ohVersion = "unknown"; @Activate - public MercedesMeHandlerFactory(@Reference OAuthFactory oAuthFactory, @Reference HttpClientFactory hcf, - @Reference StorageService storageService, final @Reference MercedesMeCommandOptionProvider cop, - final @Reference MercedesMeStateOptionProvider sop, final @Reference TimeZoneProvider tzp) { - this.oAuthFactory = oAuthFactory; + public MercedesMeHandlerFactory(@Reference HttpClientFactory hcf, @Reference StorageService storageService, + final @Reference LocaleProvider lp, final @Reference LocationProvider locationP, + final @Reference TimeZoneProvider tzp, final @Reference MercedesMeCommandOptionProvider cop, + final @Reference MercedesMeStateOptionProvider sop, final @Reference UnitProvider up, + final @Reference MetadataRegistry mdr, final @Reference ItemChannelLinkRegistry iclr, + final @Reference NetworkAddressService nas) { this.storageService = storageService; + networkService = nas; + localeProvider = lp; + locationProvider = locationP; mmcop = cop; mmsop = sop; - timeZoneProvider = tzp; - httpClient = hcf.createHttpClient(Constants.BINDING_ID); - // https://github.com/jetty-project/jetty-reactive-httpclient/issues/33 - httpClient.getProtocolHandlers().remove(WWWAuthenticationProtocolHandler.NAME); - try { - httpClient.start(); - } catch (Exception e) { - logger.warn("HTTP client not started: {} - no web access possible!", e.getLocalizedMessage()); - } + + Utils.initialize(tzp, lp); + Mapper.initialize(up); + mdAdjuster = new MercedesMeMetadataAdjuster(mdr, iclr, up); + httpClient = hcf.getCommonHttpClient(); + discoveryService = new MercedesMeDiscoveryService(); } @Override @@ -85,21 +99,41 @@ public class MercedesMeHandlerFactory extends BaseThingHandlerFactory { @Override protected @Nullable ThingHandler createHandler(Thing thing) { + Bundle[] bundleList = this.getBundleContext().getBundles(); + for (int i = 0; i < bundleList.length; i++) { + if ("org.openhab.binding.mercedesme".equals(bundleList[i].getSymbolicName())) { + ohVersion = bundleList[i].getVersion().toString(); + } + } + ThingTypeUID thingTypeUID = thing.getThingTypeUID(); if (THING_TYPE_ACCOUNT.equals(thingTypeUID)) { - return new AccountHandler((Bridge) thing, httpClient, oAuthFactory); + if (discoveryServiceReg == null) { + discoveryServiceReg = bundleContext.registerService(DiscoveryService.class.getName(), discoveryService, + null); + } + return new AccountHandler((Bridge) thing, discoveryService, httpClient, localeProvider, storageService, + networkService); + } else if (THING_TYPE_BEV.equals(thingTypeUID) || THING_TYPE_COMB.equals(thingTypeUID) + || THING_TYPE_HYBRID.equals(thingTypeUID)) { + return new VehicleHandler(thing, locationProvider, mmcop, mmsop); } - return new VehicleHandler(thing, httpClient, thingTypeUID.getId(), storageService, mmcop, mmsop, - timeZoneProvider); + return null; } @Override protected void deactivate(ComponentContext componentContext) { super.deactivate(componentContext); - try { - httpClient.stop(); - } catch (Exception e) { - logger.debug("HTTP client not stopped: {}", e.getLocalizedMessage()); + if (discoveryServiceReg != null) { + discoveryServiceReg.unregister(); + discoveryServiceReg = null; + } + if (mdAdjuster != null) { + mdAdjuster = null; } } + + public static String getVersion() { + return ohVersion; + } } diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/MercedesMeMetadataAdjuster.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/MercedesMeMetadataAdjuster.java new file mode 100644 index 00000000000..902d605b4a7 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/MercedesMeMetadataAdjuster.java @@ -0,0 +1,110 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal; + +import javax.measure.Unit; +import javax.measure.quantity.Length; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.core.common.registry.RegistryChangeListener; +import org.openhab.core.i18n.UnitProvider; +import org.openhab.core.items.Metadata; +import org.openhab.core.items.MetadataKey; +import org.openhab.core.items.MetadataRegistry; +import org.openhab.core.library.unit.ImperialUnits; +import org.openhab.core.library.unit.SIUnits; +import org.openhab.core.library.unit.Units; +import org.openhab.core.thing.ChannelUID; +import org.openhab.core.thing.link.ItemChannelLink; +import org.openhab.core.thing.link.ItemChannelLinkRegistry; + +/** + * {@link MercedesMeMetadataAdjuster} changes Metadata for channels not providing the system default unit + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class MercedesMeMetadataAdjuster implements RegistryChangeListener { + private final MetadataRegistry metadataRegistry; + private final ItemChannelLinkRegistry channelLinkRegistry; + private final UnitProvider unitProvider; + + public MercedesMeMetadataAdjuster(MetadataRegistry mdr, ItemChannelLinkRegistry iclr, UnitProvider up) { + metadataRegistry = mdr; + channelLinkRegistry = iclr; + unitProvider = up; + channelLinkRegistry.addRegistryChangeListener(this); + } + + /** + * Adjust Units to binding defaults + */ + @Override + public void added(ItemChannelLink element) { + ChannelUID cuid = element.getLinkedUID(); + String itemName = element.getItemName(); + if (Constants.BINDING_ID.equals(cuid.getBindingId())) { + MetadataKey key = new MetadataKey("unit", itemName); + switch (cuid.getId()) { + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "mileage": + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "range-electric": + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "radius-electric": + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "range-fuel": + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "radius-fuel": + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "range-hybrid": + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "radius-hybrid": + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "home-distance": + case Constants.GROUP_TRIP + ChannelUID.CHANNEL_GROUP_SEPARATOR + "distance": + case Constants.GROUP_TRIP + ChannelUID.CHANNEL_GROUP_SEPARATOR + "distance-reset": + if (metadataRegistry.get(key) == null) { + Unit lengthUnit = unitProvider.getUnit(Length.class); + if (ImperialUnits.FOOT.equals(lengthUnit)) { + metadataRegistry.add(new Metadata(key, ImperialUnits.MILE.getSymbol(), null)); + } else if (SIUnits.METRE.equals(lengthUnit)) { + metadataRegistry.add(new Metadata(key, Constants.KILOMETRE_UNIT.toString(), null)); + } + } + break; + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "soc": + case Constants.GROUP_CHARGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "max-soc": + case Constants.GROUP_RANGE + ChannelUID.CHANNEL_GROUP_SEPARATOR + "fuel-level": + if (metadataRegistry.get(key) == null) { + metadataRegistry.add(new Metadata(key, Units.PERCENT.getSymbol(), null)); + } + break; + case Constants.GROUP_TIRES + ChannelUID.CHANNEL_GROUP_SEPARATOR + "pressure-front-left": + case Constants.GROUP_TIRES + ChannelUID.CHANNEL_GROUP_SEPARATOR + "pressure-front-right": + case Constants.GROUP_TIRES + ChannelUID.CHANNEL_GROUP_SEPARATOR + "pressure-rear-left": + case Constants.GROUP_TIRES + ChannelUID.CHANNEL_GROUP_SEPARATOR + "pressure-rear-right": + if (metadataRegistry.get(key) == null) { + Unit lengthUnit = unitProvider.getUnit(Length.class); + if (ImperialUnits.FOOT.equals(lengthUnit)) { + metadataRegistry + .add(new Metadata(key, ImperialUnits.POUND_FORCE_SQUARE_INCH.getSymbol(), null)); + } else if (SIUnits.METRE.equals(lengthUnit)) { + metadataRegistry.add(new Metadata(key, Units.BAR.getSymbol(), null)); + } + } + break; + } + } + } + + @Override + public void removed(ItemChannelLink element) { + } + + @Override + public void updated(ItemChannelLink oldElement, ItemChannelLink element) { + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/actions/VehicleActions.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/actions/VehicleActions.java new file mode 100644 index 00000000000..92a76f9a839 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/actions/VehicleActions.java @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.actions; + +import java.util.Optional; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.json.JSONArray; +import org.json.JSONObject; +import org.openhab.binding.mercedesme.internal.handler.VehicleHandler; +import org.openhab.core.automation.annotation.ActionInput; +import org.openhab.core.automation.annotation.RuleAction; +import org.openhab.core.thing.binding.ThingActions; +import org.openhab.core.thing.binding.ThingActionsScope; +import org.openhab.core.thing.binding.ThingHandler; + +/** + * {@link VehicleActions} which can be sent to a vehicle + * + * @author Bernd Weymann - Initial contribution + */ +@ThingActionsScope(name = "mercedesme") +@NonNullByDefault +public class VehicleActions implements ThingActions { + private Optional thingHandler = Optional.empty(); + private String[] argumentKey = new String[] { "city", "street", "postcode" }; + + @RuleAction(label = "@text/actionPoiLabel", description = "@text/actionPoiDescription") + /** + * Send Point of Interest (POI) to your vehicle. + * This POI is shown in your vehicle messages and can be instantly used to start a navigation route to this point. + * A "catchy" title plus latitude / longitude are mandatory. + * Parameters args is optional. If you use it respect the following order + * 1) City + * 2) Street + * 3) Postal Code + * If you miss any of them provide an empty String + * + * @param title - the title will be shown in your vehicle message inbox + * @param latitude - latitude of POI location + * @param longitude - longitude of POI location + * @param args - optional but respect order city, street, postal code + */ + public void sendPoi( + @ActionInput(name = "title", label = "@text/poiTitle", description = "@text/poiTitleDescription") String title, + @ActionInput(name = "latitude", label = "@text/latitudeLabel", description = "@text/latitudeDescription") double latitude, + @ActionInput(name = "longitude", label = "@text/longitudeLabel", description = "@text/longitudeDescription") double longitude, + String... args) { + if (thingHandler.isPresent()) { + JSONObject poi = new JSONObject(); + poi.put("routeTitle", title); + poi.put("routeType", "singlePOI"); + JSONArray waypoints = new JSONArray(); + JSONObject waypoint = new JSONObject(); + waypoint.put("title", title); + waypoint.put("latitude", latitude); + waypoint.put("longitude", longitude); + for (int i = 0; i < args.length; i++) { + waypoint.put(argumentKey[i], args[i]); + } + waypoints.put(waypoint); + poi.put("waypoints", waypoints); + thingHandler.get().sendPoi(poi); + } + } + + public static void sendPoi(ThingActions actions, String title, double lat, double lon, String... args) { + ((VehicleActions) actions).sendPoi(title, lat, lon, args); + } + + @Override + public void setThingHandler(ThingHandler handler) { + thingHandler = Optional.of((VehicleHandler) handler); + } + + @Override + public @Nullable ThingHandler getThingHandler() { + if (thingHandler.isPresent()) { + return thingHandler.get(); + } + return null; + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java index 497b7ae3074..5eec75ea3f9 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/AccountConfiguration.java @@ -12,56 +12,23 @@ */ package org.openhab.binding.mercedesme.internal.config; -import static org.openhab.binding.mercedesme.internal.Constants.*; +import static org.openhab.binding.mercedesme.internal.Constants.NOT_SET; import org.eclipse.jdt.annotation.NonNullByDefault; /** - * The {@link AccountConfiguration} class contains fields mapping thing configuration parameters. + * {@link AccountConfiguration} for Account Bridge * * @author Bernd Weymann - Initial contribution */ @NonNullByDefault public class AccountConfiguration { - public String clientId = NOT_SET; - public String clientSecret = NOT_SET; - public String imageApiKey = NOT_SET; + public String email = NOT_SET; + public String region = NOT_SET; + public String pin = NOT_SET; + public int refreshInterval = 15; - // Advanced Parameters public String callbackIP = NOT_SET; public int callbackPort = -1; - public boolean odoScope = true; - public boolean vehicleScope = true; - public boolean lockScope = true; - public boolean fuelScope = true; - public boolean evScope = true; - - // https://developer.mercedes-benz.com/products/electric_vehicle_status/docs#_required_scopes - public String getScope() { - StringBuffer sb = new StringBuffer(); - sb.append(SCOPE_OPENID).append(SPACE).append(SCOPE_OFFLINE); - if (odoScope) { - sb.append(SPACE).append(SCOPE_ODO); - } - if (vehicleScope) { - sb.append(SPACE).append(SCOPE_STATUS); - } - if (lockScope) { - sb.append(SPACE).append(SCOPE_LOCK); - } - if (fuelScope) { - sb.append(SPACE).append(SCOPE_FUEL); - } - if (evScope) { - sb.append(SPACE).append(SCOPE_EV); - } - return sb.toString(); - } - - @Override - public String toString() { - return "ID " + clientId + ", Secret " + clientSecret + ", IP " + callbackIP + ", Port " + callbackPort - + ", scope " + getScope(); - } } diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/VehicleConfiguration.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/VehicleConfiguration.java index b9c6a8712a2..2152c2d7882 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/VehicleConfiguration.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/config/VehicleConfiguration.java @@ -16,7 +16,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.mercedesme.internal.Constants; /** - * The {@link VehicleConfiguration} class contains fields mapping thing configuration parameters. + * {@link VehicleConfiguration} to configure vehicle * * @author Bernd Weymann - Initial contribution */ @@ -24,14 +24,6 @@ import org.openhab.binding.mercedesme.internal.Constants; public class VehicleConfiguration { public String vin = Constants.NOT_SET; - public int refreshInterval = 5; public float batteryCapacity = -1; public float fuelCapacity = -1; - - // Advanced - public boolean background = false; - public boolean night = false; - public boolean cropped = false; - public boolean roofOpen = false; - public String format = "webp"; } diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/discovery/MercedesMeDiscoveryService.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/discovery/MercedesMeDiscoveryService.java new file mode 100644 index 00000000000..3042c500133 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/discovery/MercedesMeDiscoveryService.java @@ -0,0 +1,89 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.discovery; + +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.handler.AccountHandler; +import org.openhab.core.config.discovery.AbstractDiscoveryService; +import org.openhab.core.config.discovery.DiscoveryResultBuilder; +import org.openhab.core.config.discovery.DiscoveryService; +import org.openhab.core.thing.ThingTypeUID; +import org.openhab.core.thing.ThingUID; +import org.osgi.service.component.annotations.Component; + +/** + * {@link MercedesMeDiscoveryService} will be notified from Bridge {@link AccountHandler} regarding + * associated vehicles and provides DiscoveryResults + * + * @author Bernd Weymann - Initial Contribution + */ +@NonNullByDefault +@Component(service = DiscoveryService.class, configurationPid = "discovery.mercedesme") +public class MercedesMeDiscoveryService extends AbstractDiscoveryService { + + public MercedesMeDiscoveryService() { + super(Constants.DISCOVERABLE_DEVICE_TYPE_UIDS, 0, false); + } + + public void vehicleDiscovered(AccountHandler ac, String vin, Map properties) { + Object vehicleTypeObj = properties.get("vehicle"); + String vehicleType = ((vehicleTypeObj == null) ? "unknown" : vehicleTypeObj.toString()); + ThingTypeUID ttuid = null; + switch (vehicleType) { + case Constants.BEV: + ttuid = Constants.THING_TYPE_BEV; + break; + case Constants.COMBUSTION: + ttuid = Constants.THING_TYPE_COMB; + break; + case Constants.HYBRID: + ttuid = Constants.THING_TYPE_HYBRID; + break; + default: + break; + } + if (ttuid != null) { + thingDiscovered(DiscoveryResultBuilder.create(new ThingUID(ttuid, ac.getThing().getUID(), vin)) + .withBridge(ac.getThing().getUID()).withProperties(properties) + .withLabel("Mercedes Benz " + ttuid.getId().toUpperCase()).build()); + } + } + + public void vehicleRemove(AccountHandler ac, String vin, String vehicleType) { + ThingTypeUID ttuid = null; + switch (vehicleType) { + case Constants.BEV: + ttuid = Constants.THING_TYPE_BEV; + break; + case Constants.COMBUSTION: + ttuid = Constants.THING_TYPE_COMB; + break; + case Constants.HYBRID: + ttuid = Constants.THING_TYPE_HYBRID; + break; + default: + break; + } + if (ttuid != null) { + thingRemoved(new ThingUID(ttuid, ac.getThing().getUID(), vin)); + } + } + + @Override + protected void startScan() { + // not supported + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/dto/PINRequest.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/dto/PINRequest.java new file mode 100644 index 00000000000..43e123d9b50 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/dto/PINRequest.java @@ -0,0 +1,35 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.dto; + +import java.util.UUID; + +import org.eclipse.jdt.annotation.NonNullByDefault; + +/** + * The {@link PINRequest} dto contains JSon body for PIN request + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class PINRequest { + public String emailOrPhoneNumber; + public String countryCode; + public String nonce; + + public PINRequest(String mail, String country) { + emailOrPhoneNumber = mail; + countryCode = country; + nonce = UUID.randomUUID().toString(); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/dto/TokenResponse.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/dto/TokenResponse.java new file mode 100644 index 00000000000..edbfac5d1b1 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/dto/TokenResponse.java @@ -0,0 +1,38 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.dto; + +import java.time.Instant; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.binding.mercedesme.internal.Constants; + +import com.google.gson.annotations.SerializedName; + +/** + * The {@link TokenResponse} dto contains JSon body of token response + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class TokenResponse { + @SerializedName("access_token") + public String accessToken = Constants.NOT_SET; + @SerializedName("refresh_token") + public String refreshToken = Constants.NOT_SET; + @SerializedName("token_type") + public String tokenType = Constants.NOT_SET; + @SerializedName("expires_in") + public int expiresIn; + public String createdOn = Instant.now().toString(); +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/AccountHandler.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/AccountHandler.java index 34855c561c7..7b75b079ad6 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/AccountHandler.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/AccountHandler.java @@ -12,19 +12,41 @@ */ package org.openhab.binding.mercedesme.internal.handler; -import java.net.SocketException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Optional; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ScheduledFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.client.api.ContentResponse; +import org.eclipse.jetty.client.api.Request; +import org.eclipse.jetty.client.util.StringContentProvider; +import org.eclipse.jetty.http.HttpHeader; +import org.eclipse.jetty.websocket.client.ClientUpgradeRequest; +import org.json.JSONArray; +import org.json.JSONObject; import org.openhab.binding.mercedesme.internal.Constants; import org.openhab.binding.mercedesme.internal.config.AccountConfiguration; -import org.openhab.binding.mercedesme.internal.server.CallbackServer; -import org.openhab.binding.mercedesme.internal.server.Utils; +import org.openhab.binding.mercedesme.internal.discovery.MercedesMeDiscoveryService; +import org.openhab.binding.mercedesme.internal.server.AuthServer; +import org.openhab.binding.mercedesme.internal.server.AuthService; +import org.openhab.binding.mercedesme.internal.server.MBWebsocket; +import org.openhab.binding.mercedesme.internal.utils.Utils; import org.openhab.core.auth.client.oauth2.AccessTokenRefreshListener; import org.openhab.core.auth.client.oauth2.AccessTokenResponse; -import org.openhab.core.auth.client.oauth2.OAuthFactory; import org.openhab.core.config.core.Configuration; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.net.NetworkAddressService; +import org.openhab.core.storage.Storage; +import org.openhab.core.storage.StorageService; import org.openhab.core.thing.Bridge; import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.ThingStatus; @@ -34,33 +56,61 @@ import org.openhab.core.types.Command; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.daimler.mbcarkit.proto.Client.ClientMessage; +import com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate; +import com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID; + /** - * The {@link AccountHandler} takes care of the valid authorization for the user account + * The {@link AccountHandler} acts as Bridge between MercedesMe Account and the associated vehicles * * @author Bernd Weymann - Initial contribution */ @NonNullByDefault public class AccountHandler extends BaseBridgeHandler implements AccessTokenRefreshListener { + private static final String FEATURE_APPENDIX = "-features"; + private static final String COMMAND_APPENDIX = "-commands"; + private final Logger logger = LoggerFactory.getLogger(AccountHandler.class); - private final OAuthFactory oAuthFactory; + private final NetworkAddressService networkService; + private final MercedesMeDiscoveryService discoveryService; private final HttpClient httpClient; - private Optional server = Optional.empty(); + private final LocaleProvider localeProvider; + private final Storage storage; + private final Map activeVehicleHandlerMap = new HashMap<>(); + private final Map vepUpdateMap = new HashMap<>(); + private final Map> capabilitiesMap = new HashMap<>(); + private Optional server = Optional.empty(); + private Optional authService = Optional.empty(); + private Optional> scheduledFuture = Optional.empty(); + + private String capabilitiesEndpoint = "/v1/vehicle/%s/capabilities"; + private String commandCapabilitiesEndpoint = "/v1/vehicle/%s/capabilities/commands"; + private String poiEndpoint = "/v1/vehicle/%s/route"; + + final MBWebsocket ws; Optional config = Optional.empty(); + @Nullable + ClientMessage message; - public AccountHandler(Bridge bridge, HttpClient hc, OAuthFactory oaf) { + public AccountHandler(Bridge bridge, MercedesMeDiscoveryService mmds, HttpClient hc, LocaleProvider lp, + StorageService store, NetworkAddressService nas) { super(bridge); + discoveryService = mmds; + networkService = nas; + ws = new MBWebsocket(this); httpClient = hc; - oAuthFactory = oaf; + localeProvider = lp; + storage = store.getStorage(Constants.BINDING_ID); } @Override public void handleCommand(ChannelUID channelUID, Command command) { - // no commands available } @Override public void initialize() { + updateStatus(ThingStatus.UNKNOWN); config = Optional.of(getConfigAs(AccountConfiguration.class)); autodetectCallback(); String configValidReason = configValid(); @@ -69,18 +119,40 @@ public class AccountHandler extends BaseBridgeHandler implements AccessTokenRefr } else { String callbackUrl = Utils.getCallbackAddress(config.get().callbackIP, config.get().callbackPort); thing.setProperty("callbackUrl", callbackUrl); - server = Optional.of(new CallbackServer(this, httpClient, oAuthFactory, config.get(), callbackUrl)); + server = Optional.of(new AuthServer(httpClient, config.get(), callbackUrl)); + authService = Optional + .of(new AuthService(this, httpClient, config.get(), localeProvider.getLocale(), storage)); if (!server.get().start()) { String textKey = Constants.STATUS_TEXT_PREFIX + thing.getThingTypeUID().getId() + Constants.STATUS_SERVER_RESTART; - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, textKey); + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, + textKey + " [\"" + thing.getProperties().get("callbackUrl") + "\"]"); } else { - // get fresh token - this.getToken(); + scheduledFuture = Optional.of(scheduler.scheduleWithFixedDelay(this::update, 0, + config.get().refreshInterval, TimeUnit.MINUTES)); } } } + public void update() { + if (server.isPresent()) { + if (!Constants.NOT_SET.equals(authService.get().getToken())) { + ws.run(); + } else { + // all failed - start manual authorization + String textKey = Constants.STATUS_TEXT_PREFIX + thing.getThingTypeUID().getId() + + Constants.STATUS_AUTH_NEEDED; + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, + textKey + " [\"" + thing.getProperties().get("callbackUrl") + "\"]"); + } + } else { + // server not running - fix first + String textKey = Constants.STATUS_TEXT_PREFIX + thing.getThingTypeUID().getId() + + Constants.STATUS_SERVER_RESTART; + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.HANDLER_INITIALIZING_ERROR, textKey); + } + } + private void autodetectCallback() { // if Callback IP and Callback Port are not set => autodetect these values config = Optional.of(getConfigAs(AccountConfiguration.class)); @@ -91,12 +163,12 @@ public class AccountHandler extends BaseBridgeHandler implements AccessTokenRefr Utils.addPort(config.get().callbackPort); } if (!updateConfig.containsKey("callbackIP")) { - String ip; - try { - ip = Utils.getCallbackIP(); + String ip = networkService.getPrimaryIpv4HostAddress(); + if (ip != null) { updateConfig.put("callbackIP", ip); - } catch (SocketException e) { - logger.info("Cannot detect IP address {}", e.getMessage()); + } else { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.NONE, + "@text/mercedesme.account.status.ip-autodetect-failure"); } } super.updateConfiguration(updateConfig); @@ -107,14 +179,16 @@ public class AccountHandler extends BaseBridgeHandler implements AccessTokenRefr private String configValid() { config = Optional.of(getConfigAs(AccountConfiguration.class)); String textKey = Constants.STATUS_TEXT_PREFIX + thing.getThingTypeUID().getId(); - if (config.get().callbackIP.equals(Constants.NOT_SET)) { + if (Constants.NOT_SET.equals(config.get().callbackIP)) { return textKey + Constants.STATUS_IP_MISSING; } else if (config.get().callbackPort == -1) { return textKey + Constants.STATUS_PORT_MISSING; - } else if (config.get().clientId.equals(Constants.NOT_SET)) { - return textKey + Constants.STATUS_CLIENT_ID_MISSING; - } else if (config.get().clientSecret.equals(Constants.NOT_SET)) { - return textKey + Constants.STATUS_CLIENT_SECRET_MISSING; + } else if (Constants.NOT_SET.equals(config.get().email)) { + return textKey + Constants.STATUS_EMAIL_MISSING; + } else if (Constants.NOT_SET.equals(config.get().region)) { + return textKey + Constants.STATUS_REGION_MISSING; + } else if (config.get().refreshInterval <= 01) { + return textKey + Constants.STATUS_REFRESH_INVALID; } else { return Constants.EMPTY; } @@ -123,18 +197,18 @@ public class AccountHandler extends BaseBridgeHandler implements AccessTokenRefr @Override public void dispose() { if (server.isPresent()) { - CallbackServer serv = server.get(); - serv.stop(); - serv.dispose(); + AuthServer authServer = server.get(); + authServer.stop(); + authServer.dispose(); server = Optional.empty(); Utils.removePort(config.get().callbackPort); } - } - - @Override - public void handleRemoval() { - server.ifPresent(s -> s.deleteOAuthServiceAndAccessToken()); - super.handleRemoval(); + ws.interrupt(); + scheduledFuture.ifPresent(schedule -> { + if (!schedule.isCancelled()) { + schedule.cancel(true); + } + }); } /** @@ -142,9 +216,8 @@ public class AccountHandler extends BaseBridgeHandler implements AccessTokenRefr */ @Override public void onAccessTokenResponse(AccessTokenResponse tokenResponse) { - if (!tokenResponse.getAccessToken().isEmpty()) { - // token not empty - fine - updateStatus(ThingStatus.ONLINE); + if (!Constants.NOT_SET.equals(tokenResponse.getAccessToken())) { + scheduler.schedule(this::update, 2, TimeUnit.SECONDS); } else if (server.isEmpty()) { // server not running - fix first String textKey = Constants.STATUS_TEXT_PREFIX + thing.getThingTypeUID().getId() @@ -159,16 +232,240 @@ public class AccountHandler extends BaseBridgeHandler implements AccessTokenRefr } } - public String getToken() { - return server.get().getToken(); - } - - public String getImageApiKey() { - return config.get().imageApiKey; - } - @Override public String toString() { return Integer.toString(config.get().callbackPort); } + + public String getWSUri() { + return Utils.getWebsocketServer(config.get().region); + } + + public ClientUpgradeRequest getClientUpgradeRequest() { + ClientUpgradeRequest request = new ClientUpgradeRequest(); + request.setHeader("Authorization", authService.get().getToken()); + request.setHeader("X-SessionId", UUID.randomUUID().toString()); + request.setHeader("X-TrackingId", UUID.randomUUID().toString()); + request.setHeader("Ris-Os-Name", Constants.RIS_OS_NAME); + request.setHeader("Ris-Os-Version", Constants.RIS_OS_VERSION); + request.setHeader("Ris-Sdk-Version", Utils.getRisSDKVersion(config.get().region)); + request.setHeader("X-Locale", + localeProvider.getLocale().getLanguage() + "-" + localeProvider.getLocale().getCountry()); // de-DE + request.setHeader("User-Agent", Utils.getApplication(config.get().region)); + request.setHeader("X-Applicationname", Utils.getUserAgent(config.get().region)); + request.setHeader("Ris-Application-Version", Utils.getRisApplicationVersion(config.get().region)); + return request; + } + + public void registerVin(String vin, VehicleHandler handler) { + discoveryService.vehicleRemove(this, vin, handler.getThing().getThingTypeUID().getId()); + activeVehicleHandlerMap.put(vin, handler); + VEPUpdate updateForVin = vepUpdateMap.get(vin); + if (updateForVin != null) { + handler.distributeContent(updateForVin); + } + } + + public void unregisterVin(String vin) { + activeVehicleHandlerMap.remove(vin); + } + + @SuppressWarnings("null") + public void getVehicleCapabilities(String vin) { + if (storage.containsKey(vin + FEATURE_APPENDIX)) { + if (activeVehicleHandlerMap.containsKey(vin)) { + activeVehicleHandlerMap.get(vin).setFeatureCapabilities(storage.get(vin + FEATURE_APPENDIX)); + } + } + if (storage.containsKey(vin + COMMAND_APPENDIX)) { + if (activeVehicleHandlerMap.containsKey(vin)) { + activeVehicleHandlerMap.get(vin).setCommandCapabilities(storage.get(vin + COMMAND_APPENDIX)); + } + } + } + + public boolean distributeVepUpdates(Map map) { + List notFoundList = new ArrayList<>(); + map.forEach((key, value) -> { + VehicleHandler h = activeVehicleHandlerMap.get(key); + if (h != null) { + h.distributeContent(value); + } else { + if (value.getFullUpdate()) { + vepUpdateMap.put(key, value); + } + notFoundList.add(key); + } + }); + notFoundList.forEach(vin -> { + logger.trace("No VehicleHandler available for VIN {}", vin); + }); + return notFoundList.isEmpty(); + } + + public void commandStatusUpdate(Map updatesByVinMap) { + updatesByVinMap.forEach((key, value) -> { + VehicleHandler h = activeVehicleHandlerMap.get(key); + if (h != null) { + h.distributeCommandStatus(value); + } else { + logger.trace("No VehicleHandler available for VIN {}", key); + } + }); + } + + @SuppressWarnings("null") + public void discovery(String vin) { + if (activeVehicleHandlerMap.containsKey(vin)) { + VehicleHandler vh = activeVehicleHandlerMap.get(vin); + if (vh.getThing().getProperties().isEmpty()) { + vh.getThing().setProperties(getStringCapabilities(vin)); + } + } else { + if (!capabilitiesMap.containsKey(vin)) { + // only report new discovery if capabilities aren't discovered yet + discoveryService.vehicleDiscovered(this, vin, getCapabilities(vin)); + } + } + } + + private Map getStringCapabilities(String vin) { + Map props = getCapabilities(vin); + Map stringProps = new HashMap<>(); + props.forEach((key, value) -> { + stringProps.put(key, value.toString()); + }); + return stringProps; + } + + private Map getCapabilities(String vin) { + // check cache before hammering API + Map m = capabilitiesMap.get(vin); + if (m != null) { + return m; + } + Map featureMap = new HashMap<>(); + try { + // add vehicle capabilities + String capabilitiesUrl = Utils.getRestAPIServer(config.get().region) + + String.format(capabilitiesEndpoint, vin); + Request capabilitiesRequest = httpClient.newRequest(capabilitiesUrl); + authService.get().addBasicHeaders(capabilitiesRequest); + capabilitiesRequest.header("X-SessionId", UUID.randomUUID().toString()); + capabilitiesRequest.header("X-TrackingId", UUID.randomUUID().toString()); + capabilitiesRequest.header("Authorization", authService.get().getToken()); + + ContentResponse capabilitiesResponse = capabilitiesRequest + .timeout(Constants.REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS).send(); + + String featureCapabilitiesJsonString = capabilitiesResponse.getContentAsString(); + if (!storage.containsKey(vin + FEATURE_APPENDIX)) { + storage.put(vin + FEATURE_APPENDIX, featureCapabilitiesJsonString); + } + + JSONObject jsonResponse = new JSONObject(featureCapabilitiesJsonString); + JSONObject features = jsonResponse.getJSONObject("features"); + features.keySet().forEach(key -> { + String value = features.get(key).toString(); + String newKey = Character.toUpperCase(key.charAt(0)) + key.substring(1); + newKey = "feature" + newKey; + featureMap.put(newKey, value); + }); + + // get vehicle type + JSONObject vehicle = jsonResponse.getJSONObject("vehicle"); + JSONArray fuelTypes = vehicle.getJSONArray("fuelTypes"); + if (fuelTypes.length() > 1) { + featureMap.put("vehicle", Constants.HYBRID); + } else if ("ELECTRIC".equals(fuelTypes.get(0))) { + featureMap.put("vehicle", Constants.BEV); + } else { + featureMap.put("vehicle", Constants.COMBUSTION); + } + + // add command capabilities + String commandCapabilitiesUrl = Utils.getRestAPIServer(config.get().region) + + String.format(commandCapabilitiesEndpoint, vin); + Request commandCapabilitiesRequest = httpClient.newRequest(commandCapabilitiesUrl); + authService.get().addBasicHeaders(commandCapabilitiesRequest); + commandCapabilitiesRequest.header("X-SessionId", UUID.randomUUID().toString()); + commandCapabilitiesRequest.header("X-TrackingId", UUID.randomUUID().toString()); + commandCapabilitiesRequest.header("Authorization", authService.get().getToken()); + ContentResponse commandCapabilitiesResponse = commandCapabilitiesRequest + .timeout(Constants.REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS).send(); + + String commandCapabilitiesJsonString = commandCapabilitiesResponse.getContentAsString(); + if (!storage.containsKey(vin + COMMAND_APPENDIX)) { + storage.put(vin + COMMAND_APPENDIX, commandCapabilitiesJsonString); + } + JSONObject commands = new JSONObject(commandCapabilitiesJsonString); + JSONArray commandArray = commands.getJSONArray("commands"); + commandArray.forEach(object -> { + String commandName = ((JSONObject) object).get("commandName").toString(); + String[] words = commandName.split("[\\W_]+"); + StringBuilder builder = new StringBuilder(); + builder.append("command"); + for (int i = 0; i < words.length; i++) { + String word = words[i]; + word = word.isEmpty() ? word + : Character.toUpperCase(word.charAt(0)) + word.substring(1).toLowerCase(); + builder.append(word); + } + String value = ((JSONObject) object).get("isAvailable").toString(); + featureMap.put(builder.toString(), value); + }); + // store in cache + capabilitiesMap.put(vin, featureMap); + return featureMap; + } catch (InterruptedException | TimeoutException | ExecutionException e) { + logger.trace("Error retrieving capabilities: {}", e.getMessage()); + featureMap.clear(); + } + return featureMap; + } + + public void sendCommand(@Nullable ClientMessage cm) { + if (cm != null) { + ws.setCommand(cm); + } + scheduler.schedule(this::update, 2, TimeUnit.SECONDS); + } + + public void keepAlive(boolean b) { + ws.keepAlive(b); + } + + @Override + public void updateStatus(ThingStatus ts) { + super.updateStatus(ts); + } + + @Override + public void updateStatus(ThingStatus ts, ThingStatusDetail tsd, @Nullable String tsdt) { + super.updateStatus(ts, tsd, tsdt); + } + + /** + * Vehicle Actions + * + * @param poi + */ + + public void sendPoi(String vin, JSONObject poi) { + String poiUrl = Utils.getRestAPIServer(config.get().region) + String.format(poiEndpoint, vin); + Request poiRequest = httpClient.POST(poiUrl); + authService.get().addBasicHeaders(poiRequest); + poiRequest.header("X-SessionId", UUID.randomUUID().toString()); + poiRequest.header("X-TrackingId", UUID.randomUUID().toString()); + poiRequest.header("Authorization", authService.get().getToken()); + poiRequest.header(HttpHeader.CONTENT_TYPE, "application/json"); + poiRequest.content(new StringContentProvider(poi.toString(), "utf-8")); + + try { + ContentResponse cr = poiRequest.timeout(Constants.REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS).send(); + logger.trace("Send POI Response {} : {}", cr.getStatus(), cr.getContentAsString()); + } catch (InterruptedException | TimeoutException | ExecutionException e) { + logger.trace("Error Sending POI {}", e.getMessage()); + } + } } diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandler.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandler.java index a689fe1ec4e..fa515b95a46 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandler.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandler.java @@ -14,52 +14,43 @@ package org.openhab.binding.mercedesme.internal.handler; import static org.openhab.binding.mercedesme.internal.Constants.*; -import java.io.IOException; -import java.net.URI; -import java.net.http.HttpRequest; -import java.net.http.HttpResponse; -import java.nio.charset.StandardCharsets; -import java.time.Duration; -import java.time.Instant; import java.util.ArrayList; -import java.util.Base64; +import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Optional; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; +import java.util.UUID; +import javax.measure.Unit; import javax.measure.quantity.Length; +import javax.measure.quantity.Temperature; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.api.ContentResponse; -import org.eclipse.jetty.client.api.Request; -import org.eclipse.jetty.http.HttpHeader; -import org.eclipse.jetty.util.MultiMap; -import org.eclipse.jetty.util.UrlEncoded; -import org.json.JSONArray; import org.json.JSONObject; import org.openhab.binding.mercedesme.internal.Constants; import org.openhab.binding.mercedesme.internal.MercedesMeCommandOptionProvider; import org.openhab.binding.mercedesme.internal.MercedesMeStateOptionProvider; +import org.openhab.binding.mercedesme.internal.actions.VehicleActions; import org.openhab.binding.mercedesme.internal.config.VehicleConfiguration; import org.openhab.binding.mercedesme.internal.utils.ChannelStateMap; import org.openhab.binding.mercedesme.internal.utils.Mapper; -import org.openhab.core.i18n.TimeZoneProvider; +import org.openhab.binding.mercedesme.internal.utils.UOMObserver; +import org.openhab.binding.mercedesme.internal.utils.Utils; +import org.openhab.core.i18n.LocationProvider; import org.openhab.core.library.types.DateTimeType; +import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; +import org.openhab.core.library.types.PointType; import org.openhab.core.library.types.QuantityType; -import org.openhab.core.library.types.RawType; +import org.openhab.core.library.types.StringType; +import org.openhab.core.library.unit.ImperialUnits; +import org.openhab.core.library.unit.SIUnits; import org.openhab.core.library.unit.Units; -import org.openhab.core.storage.Storage; -import org.openhab.core.storage.StorageService; import org.openhab.core.thing.Bridge; import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.Thing; @@ -67,108 +58,91 @@ import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatusDetail; import org.openhab.core.thing.binding.BaseThingHandler; import org.openhab.core.thing.binding.BridgeHandler; +import org.openhab.core.thing.binding.ThingHandlerService; import org.openhab.core.types.Command; import org.openhab.core.types.CommandOption; import org.openhab.core.types.RefreshType; import org.openhab.core.types.State; import org.openhab.core.types.StateOption; +import org.openhab.core.types.UnDefType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.daimler.mbcarkit.proto.Acp.ACP.CommandType; +import com.daimler.mbcarkit.proto.Acp.VehicleAPI.CommandState; +import com.daimler.mbcarkit.proto.Client.ClientMessage; +import com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStart; +import com.daimler.mbcarkit.proto.VehicleCommands.AuxheatStop; +import com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure; +import com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest; +import com.daimler.mbcarkit.proto.VehicleCommands.DoorsLock; +import com.daimler.mbcarkit.proto.VehicleCommands.DoorsUnlock; +import com.daimler.mbcarkit.proto.VehicleCommands.EngineStart; +import com.daimler.mbcarkit.proto.VehicleCommands.EngineStop; +import com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart; +import com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.HornType; +import com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.LightType; +import com.daimler.mbcarkit.proto.VehicleCommands.SigPosStart.SigposType; +import com.daimler.mbcarkit.proto.VehicleCommands.SunroofClose; +import com.daimler.mbcarkit.proto.VehicleCommands.SunroofLift; +import com.daimler.mbcarkit.proto.VehicleCommands.SunroofOpen; +import com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure; +import com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint; +import com.daimler.mbcarkit.proto.VehicleCommands.WindowsClose; +import com.daimler.mbcarkit.proto.VehicleCommands.WindowsOpen; +import com.daimler.mbcarkit.proto.VehicleCommands.WindowsVentilate; +import com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats; +import com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStart; +import com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningStop; +import com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningType; +import com.daimler.mbcarkit.proto.VehicleEvents; +import com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters; +import com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue; +import com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue; +import com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus; +import com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatus; +import com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByPID; +import com.google.protobuf.BoolValue; +import com.google.protobuf.Int32Value; + /** - * The {@link VehicleHandler} is responsible for handling commands, which are - * sent to one of the channels. + * {@link VehicleHandler} transform data into state updates and handling of vehicle commands * * @author Bernd Weymann - Initial contribution */ @NonNullByDefault public class VehicleHandler extends BaseThingHandler { - private static final int REQUEST_TIMEOUT_MS = 10_000; - private static final String EXT_IMG_RES = "ExtImageResources_"; - private static final String INITIALIZE_COMMAND = "Initialze"; + private static final List HVAC_SEAT_LIST = Arrays + .asList(new String[] { GROUP_HVAC + "#" + OH_CHANNEL_FRONT_LEFT, GROUP_HVAC + "#" + OH_CHANNEL_FRONT_RIGHT, + GROUP_HVAC + "#" + OH_CHANNEL_REAR_LEFT, GROUP_HVAC + "#" + OH_CHANNEL_REAR_RIGHT }); private final Logger logger = LoggerFactory.getLogger(VehicleHandler.class); - private final Map timeHash = new HashMap<>(); + private final LocationProvider locationProvider; private final MercedesMeCommandOptionProvider mmcop; private final MercedesMeStateOptionProvider mmsop; - private final TimeZoneProvider timeZoneProvider; - private final StorageService storageService; - private final HttpClient httpClient; - private final String uid; - private Optional> refreshJob = Optional.empty(); - private Optional accountHandler = Optional.empty(); - private Optional> rangeElectric = Optional.empty(); - private Optional> imageStorage = Optional.empty(); - private Optional config = Optional.empty(); - private Optional> rangeFuel = Optional.empty(); - private Instant nextRefresh; - private boolean online = false; + private Map unitStorage = new HashMap<>(); + private int ignitionState = -1; + private boolean chargingState = false; + private int selectedChargeProgram = -1; + private int activeTemperaturePoint = -1; + private Map> temperaturePointsStorage = new HashMap<>(); + private JSONObject chargeGroupValueStorage = new JSONObject(); + private Map hvacGroupValueStorage = new HashMap<>(); + private String vehicleType = NOT_SET; - public VehicleHandler(Thing thing, HttpClient hc, String uid, StorageService storageService, - MercedesMeCommandOptionProvider mmcop, MercedesMeStateOptionProvider mmsop, TimeZoneProvider tzp) { + Map eventStorage = new HashMap<>(); + Optional accountHandler = Optional.empty(); + Optional config = Optional.empty(); + + public VehicleHandler(Thing thing, LocationProvider lp, MercedesMeCommandOptionProvider cop, + MercedesMeStateOptionProvider sop) { super(thing); - httpClient = hc; - this.uid = uid; - this.mmcop = mmcop; - this.mmsop = mmsop; - timeZoneProvider = tzp; - this.storageService = storageService; - nextRefresh = Instant.now(); - } - - @Override - public void handleCommand(ChannelUID channelUID, Command command) { - logger.trace("Received {} {} {}", channelUID.getAsString(), command.toFullString(), channelUID.getId()); - if (command instanceof RefreshType) { - /** - * Refresh requested e.g. after adding new item - * Adding several items will frequently raise RefreshType command. Calling API each time shall be avoided - * API update is performed after 5 seconds for all items which should be sufficient for a frequent update - */ - if (Instant.now().isAfter(nextRefresh)) { - nextRefresh = Instant.now().plus(Duration.ofSeconds(5)); - logger.trace("Refresh granted - next at {}", nextRefresh); - scheduler.schedule(this::getData, 5, TimeUnit.SECONDS); - } - } else if ("image-view".equals(channelUID.getIdWithoutGroup())) { - if (imageStorage.isPresent()) { - if (INITIALIZE_COMMAND.equals(command.toFullString())) { - getImageResources(); - } - String key = command.toFullString() + "_" + config.get().vin; - String encodedImage = EMPTY; - if (imageStorage.get().containsKey(key)) { - encodedImage = imageStorage.get().get(key); - logger.trace("Image {} found in storage", key); - } else { - logger.trace("Request Image {} ", key); - encodedImage = getImage(command.toFullString()); - if (!encodedImage.isEmpty()) { - imageStorage.get().put(key, encodedImage); - } - } - if (encodedImage != null && !encodedImage.isEmpty()) { - RawType image = new RawType(Base64.getDecoder().decode(encodedImage), - MIME_PREFIX + config.get().format); - updateState(new ChannelUID(thing.getUID(), GROUP_IMAGE, "image-data"), image); - } else { - logger.debug("Image {} is empty", key); - } - } - } else if ("clear-cache".equals(channelUID.getIdWithoutGroup()) && command.equals(OnOffType.ON)) { - List removals = new ArrayList<>(); - imageStorage.get().getKeys().forEach(entry -> { - if (entry.contains("_" + config.get().vin)) { - removals.add(entry); - } - }); - removals.forEach(entry -> { - imageStorage.get().remove(entry); - }); - updateState(new ChannelUID(thing.getUID(), GROUP_IMAGE, "clear-cache"), OnOffType.OFF); - getImageResources(); - } + vehicleType = thing.getThingTypeUID().getId(); + locationProvider = lp; + mmcop = cop; + mmsop = sop; } @Override @@ -179,16 +153,9 @@ public class VehicleHandler extends BaseThingHandler { updateStatus(ThingStatus.UNKNOWN); BridgeHandler handler = bridge.getHandler(); if (handler != null) { + setCommandStateOptions(); accountHandler = Optional.of((AccountHandler) handler); - startSchedule(config.get().refreshInterval); - if (!config.get().vin.equals(NOT_SET)) { - imageStorage = Optional.of(storageService.getStorage(BINDING_ID + "_" + config.get().vin)); - if (!imageStorage.get().containsKey(EXT_IMG_RES + config.get().vin)) { - getImageResources(); - } - setImageOtions(); - } - updateState(new ChannelUID(thing.getUID(), GROUP_IMAGE, "clear-cache"), OnOffType.OFF); + accountHandler.get().registerVin(config.get().vin, this); } else { throw new IllegalStateException("BridgeHandler is null"); } @@ -198,338 +165,737 @@ public class VehicleHandler extends BaseThingHandler { } } - private void startSchedule(int interval) { - refreshJob.ifPresentOrElse(job -> { - if (job.isCancelled()) { - refreshJob = Optional - .of(scheduler.scheduleWithFixedDelay(this::getData, 0, interval, TimeUnit.MINUTES)); - } // else - scheduler is already running! - }, () -> { - refreshJob = Optional.of(scheduler.scheduleWithFixedDelay(this::getData, 0, interval, TimeUnit.MINUTES)); - }); + @Override + public void dispose() { + accountHandler.get().unregisterVin(config.get().vin); + super.dispose(); } @Override - public void dispose() { - refreshJob.ifPresent(job -> job.cancel(true)); - } - - public void getData() { - if (accountHandler.isEmpty()) { - logger.warn("AccountHandler not set"); - return; - } - String token = accountHandler.get().getToken(); - if (token.isEmpty()) { - String textKey = Constants.STATUS_TEXT_PREFIX + "vehicle" + Constants.STATUS_BRIDGE_ATHORIZATION; - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, textKey); - return; - } else if (!online) { // only update if thing isn't already ONLINE - updateStatus(ThingStatus.ONLINE); - } - - // Mileage for all cars - String odoUrl = String.format(ODO_URL, config.get().vin); - if (accountConfigAvailable()) { - if (accountHandler.get().config.get().odoScope) { - call(odoUrl); + public void handleCommand(ChannelUID channelUID, Command command) { + /** + * Commands shall be not that frequent so trace level for identifying problems should be feasible + */ + logger.trace("Received command {} {} for {}", command.getClass(), command, channelUID); + if (command instanceof RefreshType) { + if (MB_KEY_FEATURE_CAPABILITIES.equals(channelUID.getIdWithoutGroup()) + || MB_KEY_COMMAND_CAPABILITIES.equals(channelUID.getIdWithoutGroup())) { + accountHandler.ifPresent(ah -> { + ah.getVehicleCapabilities(config.get().vin); + }); } else { - logger.trace("{} Odo scope not activated", this.getThing().getLabel()); - } - } else { - logger.trace("{} Account not properly configured", this.getThing().getLabel()); - } - - // Electric status for hybrid and electric - if (uid.equals(BEV) || uid.equals(HYBRID)) { - String evUrl = String.format(EV_URL, config.get().vin); - if (accountConfigAvailable()) { - if (accountHandler.get().config.get().evScope) { - call(evUrl); - } else { - logger.trace("{} Electric Status scope not activated", this.getThing().getLabel()); - } - } else { - logger.trace("{} Account not properly configured", this.getThing().getLabel()); - } - } - - // Fuel for hybrid and combustion - if (uid.equals(COMBUSTION) || uid.equals(HYBRID)) { - String fuelUrl = String.format(FUEL_URL, config.get().vin); - if (accountConfigAvailable()) { - if (accountHandler.get().config.get().fuelScope) { - call(fuelUrl); - } else { - logger.trace("{} Fuel scope not activated", this.getThing().getLabel()); - } - } else { - logger.trace("{} Account not properly configured", this.getThing().getLabel()); - } - } - - // Status and Lock for all - String statusUrl = String.format(STATUS_URL, config.get().vin); - if (accountConfigAvailable()) { - if (accountHandler.get().config.get().vehicleScope) { - call(statusUrl); - } else { - logger.trace("{} Vehicle Status scope not activated", this.getThing().getLabel()); - } - } else { - logger.trace("{} Account not properly configured", this.getThing().getLabel()); - } - String lockUrl = String.format(LOCK_URL, config.get().vin); - if (accountConfigAvailable()) { - if (accountHandler.get().config.get().lockScope) { - call(lockUrl); - } else { - logger.trace("{} Lock scope not activated", this.getThing().getLabel()); - } - } else { - logger.trace("{} Account not properly configured", this.getThing().getLabel()); - } - - // Range radius for all types - updateRadius(); - } - - private boolean accountConfigAvailable() { - if (accountHandler.isPresent()) { - if (accountHandler.get().config.isPresent()) { - return true; - } - } - return false; - } - - private void getImageResources() { - if (accountHandler.get().getImageApiKey().equals(NOT_SET)) { - logger.debug("Image API key not set"); - return; - } - // add config parameters - MultiMap parameterMap = new MultiMap<>(); - parameterMap.add("background", Boolean.toString(config.get().background)); - parameterMap.add("night", Boolean.toString(config.get().night)); - parameterMap.add("cropped", Boolean.toString(config.get().cropped)); - parameterMap.add("roofOpen", Boolean.toString(config.get().roofOpen)); - parameterMap.add("fileFormat", config.get().format); - String params = UrlEncoded.encode(parameterMap, StandardCharsets.UTF_8, false); - String url = String.format(IMAGE_EXTERIOR_RESOURCE_URL, config.get().vin) + "?" + params; - logger.debug("Get Image resources {} {} ", accountHandler.get().getImageApiKey(), url); - Request req = httpClient.newRequest(url).timeout(REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS); - req.header("x-api-key", accountHandler.get().getImageApiKey()); - req.header(HttpHeader.ACCEPT, "application/json"); - try { - ContentResponse cr = req.send(); - if (cr.getStatus() == 200) { - imageStorage.get().put(EXT_IMG_RES + config.get().vin, cr.getContentAsString()); - setImageOtions(); - } else { - logger.debug("Failed to get image resources {} {}", cr.getStatus(), cr.getContentAsString()); - } - } catch (InterruptedException | TimeoutException | ExecutionException e) { - logger.debug("Error getting image resources {}", e.getMessage()); - } - } - - private void setImageOtions() { - List entries = new ArrayList<>(); - if (imageStorage.get().containsKey(EXT_IMG_RES + config.get().vin)) { - String resources = imageStorage.get().get(EXT_IMG_RES + config.get().vin); - JSONObject jo = new JSONObject(resources); - jo.keySet().forEach(entry -> { - entries.add(entry); - }); - } - Collections.sort(entries); - List commandOptions = new ArrayList<>(); - List stateOptions = new ArrayList<>(); - entries.forEach(entry -> { - CommandOption co = new CommandOption(entry, null); - commandOptions.add(co); - StateOption so = new StateOption(entry, null); - stateOptions.add(so); - }); - if (commandOptions.isEmpty()) { - commandOptions.add(new CommandOption("Initilaze", null)); - stateOptions.add(new StateOption("Initilaze", null)); - } - ChannelUID cuid = new ChannelUID(thing.getUID(), GROUP_IMAGE, "image-view"); - mmcop.setCommandOptions(cuid, commandOptions); - mmsop.setStateOptions(cuid, stateOptions); - } - - private String getImage(String key) { - if (accountHandler.get().getImageApiKey().equals(NOT_SET)) { - logger.debug("Image API key not set"); - return EMPTY; - } - String imageId = EMPTY; - if (imageStorage.get().containsKey(EXT_IMG_RES + config.get().vin)) { - String resources = imageStorage.get().get(EXT_IMG_RES + config.get().vin); - JSONObject jo = new JSONObject(resources); - if (jo.has(key)) { - imageId = jo.getString(key); - } - } else { - getImageResources(); - return EMPTY; - } - - String url = IMAGE_BASE_URL + "/images/" + imageId; - Request req = httpClient.newRequest(url).timeout(REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS); - req.header("x-api-key", accountHandler.get().getImageApiKey()); - req.header(HttpHeader.ACCEPT, "*/*"); - ContentResponse cr; - try { - cr = req.send(); - byte[] response = cr.getContent(); - return Base64.getEncoder().encodeToString(response); - } catch (InterruptedException | TimeoutException | ExecutionException e) { - logger.warn("Get Image {} error {}", url, e.getMessage()); - } - return EMPTY; - } - - private void call(String url) { - String requestUrl = String.format(url, config.get().vin); - // Calculate endpoint for debugging - String[] endpoint = requestUrl.split("/"); - String finalEndpoint = endpoint[endpoint.length - 1]; - // debug prefix contains Thing label and call endpoint for propper debugging - String debugPrefix = this.getThing().getLabel() + Constants.COLON + finalEndpoint; - - Request req = httpClient.newRequest(requestUrl).timeout(REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS); - req.header(HttpHeader.AUTHORIZATION, "Bearer " + accountHandler.get().getToken()); - try { - ContentResponse cr = req.send(); - logger.trace("{} Response {} {}", debugPrefix, cr.getStatus(), cr.getContentAsString()); - if (cr.getStatus() == 200) { - distributeContent(cr.getContentAsString().trim()); - } - } catch (InterruptedException | TimeoutException | ExecutionException e) { - logger.info("{} Error getting data {}", debugPrefix, e.getMessage()); - fallbackCall(requestUrl); - } - } - - /** - * Fallback solution with Java11 classes - * Performs try with Java11 HttpClient - https://zetcode.com/java/getpostrequest/ to identify Community problem - * https://community.openhab.org/t/mercedes-me-binding/136852/21 - * - * @param requestUrl - */ - private void fallbackCall(String requestUrl) { - // Calculate endpoint for debugging - String[] endpoint = requestUrl.split("/"); - String finalEndpoint = endpoint[endpoint.length - 1]; - // debug prefix contains Thing label and call endpoint for propper debugging - String debugPrefix = this.getThing().getLabel() + Constants.COLON + finalEndpoint; - - java.net.http.HttpClient client = java.net.http.HttpClient.newHttpClient(); - HttpRequest request = HttpRequest.newBuilder().uri(URI.create(requestUrl)) - .header(HttpHeader.AUTHORIZATION.toString(), "Bearer " + accountHandler.get().getToken()).GET().build(); - try { - HttpResponse response = client.send(request, HttpResponse.BodyHandlers.ofString()); - logger.debug("{} Fallback Response {} {}", debugPrefix, response.statusCode(), response.body()); - if (response.statusCode() == 200) { - distributeContent(response.body().trim()); - } - } catch (IOException | InterruptedException e) { - logger.warn("{} Error getting data via fallback {}", debugPrefix, e.getMessage()); - } - } - - private void distributeContent(String json) { - if (json.startsWith("[") && json.endsWith("]")) { - JSONArray ja = new JSONArray(json); - for (Iterator iterator = ja.iterator(); iterator.hasNext();) { - JSONObject jo = (JSONObject) iterator.next(); - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - if (csm.isValid()) { + // deliver from event storage + ChannelStateMap csm = eventStorage.get(channelUID.getId()); + if (csm != null) { updateChannel(csm); - - /** - * handle some specific channels - */ - // store ChannelMap for range radius calculation - String channel = csm.getChannel(); - if ("range-electric".equals(channel)) { - rangeElectric = Optional.of((QuantityType) csm.getState()); - } else if ("range-fuel".equals(channel)) { - rangeFuel = Optional.of((QuantityType) csm.getState()); - } else if ("soc".equals(channel)) { - if (config.get().batteryCapacity > 0) { - float socValue = ((QuantityType) csm.getState()).floatValue(); - float batteryCapacity = config.get().batteryCapacity; - float chargedValue = Math.round(socValue * 1000 * batteryCapacity / 1000) / (float) 100; - ChannelStateMap charged = new ChannelStateMap("charged", GROUP_RANGE, - QuantityType.valueOf(chargedValue, Units.KILOWATT_HOUR), csm.getTimestamp()); - updateChannel(charged); - float unchargedValue = Math.round((100 - socValue) * 1000 * batteryCapacity / 1000) - / (float) 100; - ChannelStateMap uncharged = new ChannelStateMap("uncharged", GROUP_RANGE, - QuantityType.valueOf(unchargedValue, Units.KILOWATT_HOUR), csm.getTimestamp()); - updateChannel(uncharged); + } + } + // ensure unit update + unitStorage.remove(channelUID.getIdWithoutGroup()); + } else if (Constants.GROUP_VEHICLE.equals(channelUID.getGroupId())) { + /** + * Commands for Vehicle + */ + if (OH_CHANNEL_IGNITION.equals(channelUID.getIdWithoutGroup())) { + String supported = thing.getProperties().get(MB_KEY_COMMAND_ENGINE_START); + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Engine Start/Stop not supported"); + } else { + int commandValue = ((DecimalType) command).intValue(); + if (commandValue == 4) { + String pin = accountHandler.get().config.get().pin; + if (Constants.NOT_SET.equals(pin)) { + logger.trace("Security PIN missing in Account bridge"); } else { - logger.debug("No battery capacity given"); - } - } else if ("fuel-level".equals(channel)) { - if (config.get().fuelCapacity > 0) { - float fuelLevelValue = ((QuantityType) csm.getState()).floatValue(); - float fuelCapacity = config.get().fuelCapacity; - float litersInTank = Math.round(fuelLevelValue * 1000 * fuelCapacity / 1000) / (float) 100; - ChannelStateMap tankFilled = new ChannelStateMap("tank-remain", GROUP_RANGE, - QuantityType.valueOf(litersInTank, Units.LITRE), csm.getTimestamp()); - updateChannel(tankFilled); - float litersFree = Math.round((100 - fuelLevelValue) * 1000 * fuelCapacity / 1000) - / (float) 100; - ChannelStateMap tankOpen = new ChannelStateMap("tank-open", GROUP_RANGE, - QuantityType.valueOf(litersFree, Units.LITRE), csm.getTimestamp()); - updateChannel(tankOpen); - } else { - logger.debug("No fuel capacity given"); + EngineStart eStart = EngineStart.newBuilder().setPin(pin).build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setEngineStart(eStart).build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); } + } else if (commandValue == 0) { + EngineStop eStop = EngineStop.newBuilder().build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setEngineStop(eStop).build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + } + } else if (OH_CHANNEL_WINDOWS.equals(channelUID.getIdWithoutGroup())) { + String supported = thing.getProperties().get(MB_KEY_COMMAND_WINDOWS_OPEN); + String pin = accountHandler.get().config.get().pin; + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Windows control not supported"); + } else { + CommandRequest cr; + ClientMessage cm; + switch (((DecimalType) command).intValue()) { + case 0: + if (Constants.NOT_SET.equals(pin)) { + logger.trace("Security PIN missing in Account bridge"); + } else { + WindowsVentilate wv = WindowsVentilate.newBuilder().setPin(pin).build(); + cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setWindowsVentilate(wv).build(); + cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + break; + case 1: + WindowsClose wc = WindowsClose.newBuilder().build(); + cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setWindowsClose(wc).build(); + cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + break; + case 2: + if (Constants.NOT_SET.equals(pin)) { + logger.trace("Security PIN missing in Account bridge"); + } else { + WindowsOpen wo = WindowsOpen.newBuilder().setPin(pin).build(); + cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setWindowsOpen(wo).build(); + cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + break; + default: + logger.trace("No Windows movement known for {}", command); + break; + } + } + } else if (OH_CHANNEL_LOCK.equals(channelUID.getIdWithoutGroup())) { + String pin = accountHandler.get().config.get().pin; + String supported = thing.getProperties().get(MB_KEY_COMMAND_DOORS_LOCK); + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Door Lock not supported"); + } else { + switch (((DecimalType) command).intValue()) { + case 0: + DoorsLock dl = DoorsLock.newBuilder().build(); + CommandRequest lockCr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setDoorsLock(dl).build(); + ClientMessage lockCm = ClientMessage.newBuilder().setCommandRequest(lockCr).build(); + accountHandler.get().sendCommand(lockCm); + break; + case 1: + if (Constants.NOT_SET.equals(pin)) { + logger.trace("Security PIN missing in Account bridge"); + } else { + DoorsUnlock du = DoorsUnlock.newBuilder().setPin(pin).build(); + CommandRequest unlockCr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setDoorsUnlock(du).build(); + ClientMessage unlockCm = ClientMessage.newBuilder().setCommandRequest(unlockCr).build(); + accountHandler.get().sendCommand(unlockCm); + } + break; + default: + logger.trace("No lock command mapped to {}", command); + break; + } + } + } + } else if (Constants.GROUP_HVAC.equals(channelUID.getGroupId())) { + /** + * Commands for HVAC + */ + if (OH_CHANNEL_TEMPERATURE.equals(channelUID.getIdWithoutGroup())) { + String supported = thing.getProperties().get(MB_KEY_COMMAND_ZEV_PRECONDITION_CONFIGURE); + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Air Conditioning Temperature Setting not supported"); + } else { + QuantityType targetTemp = (QuantityType) command; + QuantityType targetTempCelsius = targetTemp.toInvertibleUnit(SIUnits.CELSIUS); + if (targetTempCelsius != null) { + TemperatureConfigure tc = TemperatureConfigure.newBuilder() + .addTemperaturePoints(TemperaturePoint.newBuilder().setZoneValue(activeTemperaturePoint) + .setTemperatureInCelsius(targetTempCelsius.intValue()).build()) + .build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setTemperatureConfigure(tc).build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + } + } else if (OH_CHANNEL_ACTIVE.equals(channelUID.getIdWithoutGroup())) { + String supported = thing.getProperties().get(MB_KEY_COMMAND_ZEV_PRECONDITIONING_START); + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Air Conditioning not supported"); + } else { + if (OnOffType.ON.equals(command)) { + ZEVPreconditioningStart precondStart = ZEVPreconditioningStart.newBuilder() + .setType(ZEVPreconditioningType.NOW).build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setZevPreconditioningStart(precondStart) + .build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } else { + ZEVPreconditioningStop precondStop = ZEVPreconditioningStop.newBuilder() + .setType(ZEVPreconditioningType.NOW).build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setZevPreconditioningStop(precondStop) + .build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + } + } else if (OH_CHANNEL_FRONT_LEFT.equals(channelUID.getIdWithoutGroup())) { + configureSeats(channelUID, (State) command); + } else if (OH_CHANNEL_FRONT_RIGHT.equals(channelUID.getIdWithoutGroup())) { + configureSeats(channelUID, (State) command); + } else if (OH_CHANNEL_REAR_LEFT.equals(channelUID.getIdWithoutGroup())) { + configureSeats(channelUID, (State) command); + } else if (OH_CHANNEL_REAR_RIGHT.equals(channelUID.getIdWithoutGroup())) { + configureSeats(channelUID, (State) command); + } else if (OH_CHANNEL_AUX_HEAT.equals(channelUID.getIdWithoutGroup())) { + String supported = thing.getProperties().get(MB_KEY_FEATURE_AUX_HEAT); + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Auxiliary Heating not supported"); + } else { + if (OnOffType.ON.equals(command)) { + AuxheatStart auxHeatStart = AuxheatStart.newBuilder().build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setAuxheatStart(auxHeatStart).build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } else { + AuxheatStop auxHeatStop = AuxheatStop.newBuilder().build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setAuxheatStop(auxHeatStop).build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + } + } else if (OH_CHANNEL_ZONE.equals(channelUID.getIdWithoutGroup())) { + int zone = ((DecimalType) command).intValue(); + if (temperaturePointsStorage.containsKey(zone)) { + ChannelStateMap zoneMap = new ChannelStateMap(OH_CHANNEL_ZONE, GROUP_HVAC, (DecimalType) command); + updateChannel(zoneMap); + QuantityType selectedTemp = temperaturePointsStorage.get(zone); + if (selectedTemp != null) { + ChannelStateMap tempCSM = new ChannelStateMap(OH_CHANNEL_TEMPERATURE, GROUP_HVAC, selectedTemp); + updateChannel(tempCSM); } } else { - logger.warn("Unable to deliver state for {}", jo); + logger.trace("No Temperature Zone found for {}", command); + } + } + } else if (Constants.GROUP_POSITION.equals(channelUID.getGroupId())) { + /** + * Commands for Positioning + */ + if (OH_CHANNEL_SIGNAL.equals(channelUID.getIdWithoutGroup())) { + String supported = thing.getProperties().get(MB_KEY_COMMAND_SIGPOS_START); + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Signal Position not supported"); + } else { + SigPosStart sps; + CommandRequest cr; + ClientMessage cm; + switch (((DecimalType) command).intValue()) { + case 0: // light + sps = SigPosStart.newBuilder().setSigposType(SigposType.LIGHT_ONLY) + .setLightType(LightType.DIPPED_HEAD_LIGHT).setSigposDuration(10).build(); + cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setSigposStart(sps).build(); + cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + break; + case 1: // horn + sps = SigPosStart.newBuilder().setSigposType(SigposType.HORN_ONLY).setHornRepeat(3) + .setHornType(HornType.HORN_LOW_VOLUME).build(); + cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setSigposStart(sps).build(); + cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + break; + default: + logger.trace("No Positioning known for {}", command); + } + } + } + } else if (Constants.GROUP_CHARGE.equals(channelUID.getGroupId())) { + /** + * Commands for Charging + */ + synchronized (chargeGroupValueStorage) { + int maxSocToSelect = 80; + boolean autoUnlockToSelect = false; + String supported = thing.getProperties().get(MB_KEY_COMMAND_CHARGE_PROGRAM_CONFIGURE); + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Charge Program Configure not supported"); + } else { + boolean sendCommand = false; + if (OH_CHANNEL_PROGRAM.equals(channelUID.getIdWithoutGroup())) { + selectedChargeProgram = ((DecimalType) command).intValue(); + if (chargeGroupValueStorage.has(Integer.toString(selectedChargeProgram))) { + maxSocToSelect = chargeGroupValueStorage + .getJSONObject(Integer.toString(selectedChargeProgram)) + .getInt(Constants.MAX_SOC_KEY); + autoUnlockToSelect = chargeGroupValueStorage + .getJSONObject(Integer.toString(selectedChargeProgram)) + .getBoolean(Constants.AUTO_UNLOCK_KEY); + updateChannel(new ChannelStateMap(OH_CHANNEL_MAX_SOC, GROUP_CHARGE, + QuantityType.valueOf(maxSocToSelect, Units.PERCENT))); + updateChannel(new ChannelStateMap(OH_CHANNEL_AUTO_UNLOCK, GROUP_CHARGE, + OnOffType.from(autoUnlockToSelect))); + sendCommand = true; + } else { + logger.trace("No charge program found for {}", selectedChargeProgram); + } + } + if (OH_CHANNEL_AUTO_UNLOCK.equals(channelUID.getIdWithoutGroup())) { + autoUnlockToSelect = ((OnOffType) command).equals(OnOffType.ON); + sendCommand = true; + } else if (OH_CHANNEL_MAX_SOC.equals(channelUID.getIdWithoutGroup())) { + maxSocToSelect = ((QuantityType) command).intValue(); + sendCommand = true; + } // else - nothing to be sent + if (sendCommand) { + Int32Value maxSocValue = Int32Value.newBuilder().setValue(maxSocToSelect).build(); + BoolValue autoUnlockValue = BoolValue.newBuilder().setValue(autoUnlockToSelect).build(); + ChargeProgramConfigure cpc = ChargeProgramConfigure.newBuilder() + .setChargeProgramValue(selectedChargeProgram).setMaxSoc(maxSocValue) + .setAutoUnlock(autoUnlockValue).build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setChargeProgramConfigure(cpc).build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + } + } + } else if (Constants.GROUP_DOORS.equals(channelUID.getGroupId())) { + /** + * Commands for Doors + */ + if (OH_CHANNEL_SUNROOF.equals(channelUID.getIdWithoutGroup())) { + String supported = thing.getProperties().get(MB_KEY_COMMAND_SUNROOF_OPEN); + String pin = accountHandler.get().config.get().pin; + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Sunroof control not supported"); + } else { + CommandRequest cr; + ClientMessage cm; + switch (((DecimalType) command).intValue()) { + case 0: + SunroofClose sc = SunroofClose.newBuilder().build(); + cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setSunroofClose(sc).build(); + cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + break; + case 1: + if (Constants.NOT_SET.equals(pin)) { + logger.trace("Security PIN missing in Account bridge"); + } else { + SunroofOpen so = SunroofOpen.newBuilder().setPin(pin).build(); + cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setSunroofOpen(so).build(); + cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + break; + case 2: + if (Constants.NOT_SET.equals(pin)) { + logger.trace("Security PIN missing in Account bridge"); + } else { + SunroofLift sl = SunroofLift.newBuilder().setPin(pin).build(); + cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setSunroofLift(sl).build(); + cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); + } + break; + default: + logger.trace("No Sunroof movement known for {}", command); + } } } } else { - logger.debug("JSON Array expected but received {}", json); + logger.trace("No command {} found for {}", command, channelUID.getAsString()); } } - private void updateRadius() { - if (rangeElectric.isPresent()) { - // update electric radius - ChannelStateMap radiusElectric = new ChannelStateMap("radius-electric", GROUP_RANGE, - guessRangeRadius(rangeElectric.get()), 0); - updateChannel(radiusElectric); - if (rangeFuel.isPresent()) { - // update fuel & hybrid radius - ChannelStateMap radiusFuel = new ChannelStateMap("radius-fuel", GROUP_RANGE, - guessRangeRadius(rangeFuel.get()), 0); - updateChannel(radiusFuel); - int hybridKm = rangeElectric.get().intValue() + rangeFuel.get().intValue(); - QuantityType hybridRangeState = QuantityType.valueOf(hybridKm, KILOMETRE_UNIT); - ChannelStateMap rangeHybrid = new ChannelStateMap("range-hybrid", GROUP_RANGE, hybridRangeState, 0); - updateChannel(rangeHybrid); - ChannelStateMap radiusHybrid = new ChannelStateMap("radius-hybrid", GROUP_RANGE, - guessRangeRadius(hybridRangeState), 0); - updateChannel(radiusHybrid); - } - } else if (rangeFuel.isPresent()) { - // update fuel & hybrid radius - ChannelStateMap radiusFuel = new ChannelStateMap("radius-fuel", GROUP_RANGE, - guessRangeRadius(rangeFuel.get()), 0); - updateChannel(radiusFuel); + private void configureSeats(ChannelUID channelUID, State command) { + String supported = thing.getProperties().get(MB_KEY_COMMAND_ZEV_PRECONDITION_CONFIGURE_SEATS); + if (Boolean.FALSE.toString().equals(supported)) { + logger.trace("Seat Conditioning not supported"); + } else { + com.daimler.mbcarkit.proto.VehicleCommands.ZEVPreconditioningConfigureSeats.Builder builder = ZEVPreconditioningConfigureSeats + .newBuilder(); + + HVAC_SEAT_LIST.forEach(seat -> { + ChannelStateMap csm = eventStorage.get(seat); + if (csm != null) { + if (csm.getState() != UnDefType.UNDEF && !seat.equals(channelUID.getId())) { + OnOffType oot = (OnOffType) csm.getState(); + switch (seat) { + case GROUP_HVAC + "#" + OH_CHANNEL_FRONT_LEFT: + builder.setFrontLeft(OnOffType.ON.equals(oot)); + break; + case GROUP_HVAC + "#" + OH_CHANNEL_FRONT_RIGHT: + builder.setFrontRight(OnOffType.ON.equals(oot)); + break; + case GROUP_HVAC + "#" + OH_CHANNEL_REAR_LEFT: + builder.setRearLeft(OnOffType.ON.equals(oot)); + break; + case GROUP_HVAC + "#" + OH_CHANNEL_REAR_RIGHT: + builder.setRearRight(OnOffType.ON.equals(oot)); + break; + } + } + } + }); + ZEVPreconditioningConfigureSeats seats = builder.build(); + CommandRequest cr = CommandRequest.newBuilder().setVin(config.get().vin) + .setRequestId(UUID.randomUUID().toString()).setZevPreconditionConfigureSeats(seats).build(); + ClientMessage cm = ClientMessage.newBuilder().setCommandRequest(cr).build(); + accountHandler.get().sendCommand(cm); } } + public void distributeCommandStatus(AppTwinCommandStatusUpdatesByPID cmdUpdates) { + Map updates = cmdUpdates.getUpdatesByPidMap(); + updates.forEach((key, value) -> { + // Command name + ChannelStateMap csmCommand = new ChannelStateMap(OH_CHANNEL_CMD_NAME, GROUP_COMMAND, + new DecimalType(value.getType().getNumber())); + updateChannel(csmCommand); + // Command State + ChannelStateMap csmState = new ChannelStateMap(OH_CHANNEL_CMD_STATE, GROUP_COMMAND, + new DecimalType(value.getState().getNumber())); + updateChannel(csmState); + // Command Time + DateTimeType dtt = Utils.getDateTimeType(value.getTimestampInMs()); + UOMObserver observer = null; + if (Locale.US.getCountry().equals(Utils.getCountry())) { + observer = new UOMObserver(UOMObserver.TIME_US); + } else { + observer = new UOMObserver(UOMObserver.TIME_ROW); + } + ChannelStateMap csmUpdated = new ChannelStateMap(OH_CHANNEL_CMD_LAST_UPDATE, GROUP_COMMAND, dtt, observer); + updateChannel(csmUpdated); + }); + } + + public void distributeContent(VEPUpdate data) { + updateStatus(ThingStatus.ONLINE); + boolean fullUpdate = data.getFullUpdate(); + /** + * Deliver proto update + */ + String newProto = Utils.proto2Json(data, thing.getThingTypeUID()); + String combinedProto = newProto; + ChannelUID protoUpdateChannelUID = new ChannelUID(thing.getUID(), GROUP_VEHICLE, OH_CHANNEL_PROTO_UPDATE); + ChannelStateMap oldProtoMap = eventStorage.get(protoUpdateChannelUID.getId()); + if (oldProtoMap != null) { + String oldProto = ((StringType) oldProtoMap.getState()).toFullString(); + Map combinedMap = Utils.combineMaps(new JSONObject(oldProto).toMap(), + new JSONObject(newProto).toMap()); + combinedProto = (new JSONObject(combinedMap)).toString(); + } + // proto updates causing large printouts in openhab.log + // update channel in case of user connected this channel with an item + ChannelStateMap dataUpdateMap = new ChannelStateMap(OH_CHANNEL_PROTO_UPDATE, GROUP_VEHICLE, + StringType.valueOf(combinedProto)); + updateChannel(dataUpdateMap); + + Map atts = data.getAttributesMap(); + /** + * handle "simple" values + */ + atts.forEach((key, value) -> { + ChannelStateMap csm = Mapper.getChannelStateMap(key, value); + if (csm.isValid()) { + /** + * Store some values and UOM Observer + */ + if (GROUP_HVAC.equals(csm.getGroup())) { + hvacGroupValueStorage.put(csm.getChannel(), csm.getState()); + } + + /** + * handle some specific channels + */ + String channel = csm.getChannel(); + // handle range channels very specific regarding to vehicle type + boolean block = false; + switch (channel) { + case OH_CHANNEL_RANGE_ELECTRIC: + if (!Constants.COMBUSTION.equals(vehicleType)) { + ChannelStateMap radiusElectric = new ChannelStateMap(OH_CHANNEL_RADIUS_ELECTRIC, + GROUP_RANGE, guessRangeRadius(csm.getState()), csm.getUomObserver()); + updateChannel(radiusElectric); + } else { + block = true; + } + break; + case OH_CHANNEL_RANGE_FUEL: + if (!Constants.BEV.equals(vehicleType)) { + ChannelStateMap radiusFuel = new ChannelStateMap(OH_CHANNEL_RADIUS_FUEL, GROUP_RANGE, + guessRangeRadius(csm.getState()), csm.getUomObserver()); + updateChannel(radiusFuel); + } else { + block = true; + } + break; + case OH_CHANNEL_RANGE_HYBRID: + if (Constants.HYBRID.equals(vehicleType)) { + ChannelStateMap radiusHybrid = new ChannelStateMap(OH_CHANNEL_RADIUS_HYBRID, GROUP_RANGE, + guessRangeRadius(csm.getState()), csm.getUomObserver()); + updateChannel(radiusHybrid); + } else { + block = true; + } + break; + case OH_CHANNEL_SOC: + if (!Constants.COMBUSTION.equals(vehicleType)) { + if (config.get().batteryCapacity > 0) { + float socValue = ((QuantityType) csm.getState()).floatValue(); + float batteryCapacity = config.get().batteryCapacity; + float chargedValue = Math.round(socValue * 1000 * batteryCapacity / 1000) / (float) 100; + ChannelStateMap charged = new ChannelStateMap(OH_CHANNEL_CHARGED, GROUP_RANGE, + QuantityType.valueOf(chargedValue, Units.KILOWATT_HOUR)); + updateChannel(charged); + float unchargedValue = Math.round((100 - socValue) * 1000 * batteryCapacity / 1000) + / (float) 100; + ChannelStateMap uncharged = new ChannelStateMap(OH_CHANNEL_UNCHARGED, GROUP_RANGE, + QuantityType.valueOf(unchargedValue, Units.KILOWATT_HOUR)); + updateChannel(uncharged); + } else { + ChannelStateMap charged = new ChannelStateMap(OH_CHANNEL_CHARGED, GROUP_RANGE, + QuantityType.valueOf(0, Units.KILOWATT_HOUR)); + updateChannel(charged); + ChannelStateMap uncharged = new ChannelStateMap(OH_CHANNEL_UNCHARGED, GROUP_RANGE, + QuantityType.valueOf(0, Units.KILOWATT_HOUR)); + updateChannel(uncharged); + } + } else { + block = true; + } + break; + case OH_CHANNEL_FUEL_LEVEL: + if (!Constants.BEV.equals(vehicleType)) { + if (config.get().fuelCapacity > 0) { + float fuelLevelValue = ((QuantityType) csm.getState()).floatValue(); + float fuelCapacity = config.get().fuelCapacity; + float litersInTank = Math.round(fuelLevelValue * 1000 * fuelCapacity / 1000) + / (float) 100; + ChannelStateMap tankFilled = new ChannelStateMap(OH_CHANNEL_TANK_REMAIN, GROUP_RANGE, + QuantityType.valueOf(litersInTank, Mapper.defaultVolumeUnit)); + updateChannel(tankFilled); + float litersFree = Math.round((100 - fuelLevelValue) * 1000 * fuelCapacity / 1000) + / (float) 100; + ChannelStateMap tankOpen = new ChannelStateMap(OH_CHANNEL_TANK_OPEN, GROUP_RANGE, + QuantityType.valueOf(litersFree, Mapper.defaultVolumeUnit)); + updateChannel(tankOpen); + } else { + ChannelStateMap tankFilled = new ChannelStateMap(OH_CHANNEL_TANK_REMAIN, GROUP_RANGE, + QuantityType.valueOf(0, Mapper.defaultVolumeUnit)); + updateChannel(tankFilled); + ChannelStateMap tankOpen = new ChannelStateMap(OH_CHANNEL_TANK_OPEN, GROUP_RANGE, + QuantityType.valueOf(0, Mapper.defaultVolumeUnit)); + updateChannel(tankOpen); + } + } else { + block = true; + } + break; + case OH_CHANNEL_COOLANT_FLUID: + case OH_CHANNEL_ENGINE: + case OH_CHANNEL_GAS_FLAP: + if (Constants.BEV.equals(vehicleType)) { + block = true; + } + break; + } + if (!block) { + updateChannel(csm); + } + } + }); + /** + * handle GPS + */ + if (atts.containsKey(MB_KEY_POSITION_LAT) && atts.containsKey(MB_KEY_POSITION_LONG)) { + double lat = Utils.getDouble(atts.get(MB_KEY_POSITION_LAT)); + double lon = Utils.getDouble(atts.get(MB_KEY_POSITION_LONG)); + if (lat != -1 && lon != -1) { + PointType pt = new PointType(lat + "," + lon); + updateChannel(new ChannelStateMap(OH_CHANNEL_GPS, Constants.GROUP_POSITION, pt)); + + // calculate distance to home + PointType homePoint = locationProvider.getLocation(); + Unit lengthUnit = KILOMETRE_UNIT; + if (homePoint != null) { + double distance = Utils.distance(homePoint.getLatitude().doubleValue(), lat, + homePoint.getLongitude().doubleValue(), lon, 0.0, 0.0); + UOMObserver observer = new UOMObserver(UOMObserver.LENGTH_KM_UNIT); + if (Locale.US.getCountry().equals(Utils.getCountry())) { + observer = new UOMObserver(UOMObserver.LENGTH_MILES_UNIT); + lengthUnit = ImperialUnits.MILE; + } + updateChannel(new ChannelStateMap(OH_CHANNEL_HOME_DISTANCE, Constants.GROUP_RANGE, + QuantityType.valueOf(distance / 1000, lengthUnit), observer)); + } else { + logger.trace("No home location found"); + } + + } else { + if (fullUpdate) { + logger.trace("Either Latitude {} or Longitude {} attribute nil", lat, lon); + updateChannel(new ChannelStateMap(OH_CHANNEL_GPS, Constants.GROUP_POSITION, UnDefType.UNDEF)); + } + } + } + + /** + * handle temperature point + */ + if (atts.containsKey(MB_KEY_TEMPERATURE_POINTS)) { + VehicleAttributeStatus hvacTemperaturePointAttribute = atts.get(MB_KEY_TEMPERATURE_POINTS); + if (hvacTemperaturePointAttribute != null) { + if (hvacTemperaturePointAttribute.hasTemperaturePointsValue()) { + TemperaturePointsValue tpValue = hvacTemperaturePointAttribute.getTemperaturePointsValue(); + if (tpValue.getTemperaturePointsCount() > 0) { + List tPointList = tpValue.getTemperaturePointsList(); + List commandOptions = new ArrayList<>(); + List stateOptions = new ArrayList<>(); + tPointList.forEach(point -> { + String zoneName = point.getZone(); + int zoneNumber = Utils.getZoneNumber(zoneName); + Unit temperatureUnit = Mapper.defaultTemperatureUnit; + UOMObserver observer = null; + if (hvacTemperaturePointAttribute.hasTemperatureUnit()) { + observer = new UOMObserver( + hvacTemperaturePointAttribute.getTemperatureUnit().toString()); + Unit observerUnit = observer.getUnit(); + if (observerUnit != null) { + temperatureUnit = observerUnit.asType(Temperature.class); + } + } + ChannelUID cuid = new ChannelUID(thing.getUID(), GROUP_HVAC, OH_CHANNEL_TEMPERATURE); + mmcop.setCommandOptions(cuid, Utils.getTemperatureOptions(temperatureUnit)); + if (zoneNumber > 0) { + if (activeTemperaturePoint == -1) { + activeTemperaturePoint = zoneNumber; + } + double temperature = point.getTemperature(); + if (point.getTemperatureDisplayValue() != null) { + if (point.getTemperatureDisplayValue().strip().length() > 0) { + try { + temperature = Double.valueOf(point.getTemperatureDisplayValue()); + } catch (NumberFormatException nfe) { + logger.trace("Cannot transform Temperature Display Value {} into Double", + point.getTemperatureDisplayValue()); + } + } + } + QuantityType temperatureState = QuantityType.valueOf(temperature, + temperatureUnit); + temperaturePointsStorage.put(zoneNumber, temperatureState); + if (activeTemperaturePoint == zoneNumber) { + ChannelStateMap zoneCSM = new ChannelStateMap(OH_CHANNEL_ZONE, Constants.GROUP_HVAC, + new DecimalType(activeTemperaturePoint)); + updateChannel(zoneCSM); + ChannelStateMap tempCSM = new ChannelStateMap(OH_CHANNEL_TEMPERATURE, + Constants.GROUP_HVAC, temperatureState, observer); + updateChannel(tempCSM); + } + } else { + logger.trace("No Integer mapping found for Temperature Zone {}", zoneName); + } + commandOptions.add(new CommandOption(Integer.toString(zoneNumber), zoneName)); + stateOptions.add(new StateOption(Integer.toString(zoneNumber), zoneName)); + }); + ChannelUID cuid = new ChannelUID(thing.getUID(), GROUP_HVAC, OH_CHANNEL_ZONE); + mmcop.setCommandOptions(cuid, commandOptions); + mmsop.setStateOptions(cuid, stateOptions); + } else { + // don't set to undef - maybe partial update + logger.trace("No TemperaturePoints found - list empty"); + } + } else { + // don't set to undef - maybe partial update + logger.trace("No TemperaturePointsValue found"); + } + } else { + // don't set to undef - maybe partial update + logger.trace("No TemperaturePoints found"); + } + } else { + // full update acknowledged - set to undef + if (fullUpdate) { + ChannelStateMap zoneMap = new ChannelStateMap(OH_CHANNEL_ZONE, Constants.GROUP_HVAC, UnDefType.UNDEF); + updateChannel(zoneMap); + QuantityType tempState = QuantityType.valueOf(-1, Mapper.defaultTemperatureUnit); + ChannelStateMap tempMap = new ChannelStateMap(OH_CHANNEL_TEMPERATURE, Constants.GROUP_HVAC, tempState); + updateChannel(tempMap); + } + } + + /** + * handle Charge Program + */ + if (Constants.BEV.equals(thing.getThingTypeUID().getId()) + || Constants.HYBRID.equals(thing.getThingTypeUID().getId())) { + VehicleAttributeStatus vas = atts.get(MB_KEY_CHARGE_PROGRAMS); + if (vas != null) { + ChargeProgramsValue cpv = vas.getChargeProgramsValue(); + if (cpv.getChargeProgramParametersCount() > 0) { + List chargeProgramParameters = cpv.getChargeProgramParametersList(); + List commandOptions = new ArrayList<>(); + List stateOptions = new ArrayList<>(); + synchronized (chargeGroupValueStorage) { + chargeGroupValueStorage.clear(); + chargeProgramParameters.forEach(program -> { + String programName = program.getChargeProgram().name(); + int number = Utils.getChargeProgramNumber(programName); + if (number >= 0) { + JSONObject programValuesJson = new JSONObject(); + programValuesJson.put(Constants.MAX_SOC_KEY, program.getMaxSoc()); + programValuesJson.put(Constants.AUTO_UNLOCK_KEY, program.getAutoUnlock()); + chargeGroupValueStorage.put(Integer.toString(number), programValuesJson); + commandOptions.add(new CommandOption(Integer.toString(number), programName)); + stateOptions.add(new StateOption(Integer.toString(number), programName)); + + } + }); + } + ChannelUID cuid = new ChannelUID(thing.getUID(), GROUP_CHARGE, OH_CHANNEL_PROGRAM); + mmcop.setCommandOptions(cuid, commandOptions); + mmsop.setStateOptions(cuid, stateOptions); + vas = atts.get(MB_KEY_SELECTED_CHARGE_PROGRAM); + if (vas != null) { + selectedChargeProgram = (int) vas.getIntValue(); + ChargeProgramParameters cpp = cpv.getChargeProgramParameters(selectedChargeProgram); + ChannelStateMap programMap = new ChannelStateMap(OH_CHANNEL_PROGRAM, GROUP_CHARGE, + DecimalType.valueOf(Integer.toString(selectedChargeProgram))); + updateChannel(programMap); + ChannelStateMap maxSocMap = new ChannelStateMap(OH_CHANNEL_MAX_SOC, GROUP_CHARGE, + QuantityType.valueOf((double) cpp.getMaxSoc(), Units.PERCENT)); + updateChannel(maxSocMap); + ChannelStateMap autoUnlockMap = new ChannelStateMap(OH_CHANNEL_AUTO_UNLOCK, GROUP_CHARGE, + OnOffType.from(cpp.getAutoUnlock())); + updateChannel(autoUnlockMap); + } + } else { + logger.trace("No Charge Program property available for {}", thing.getThingTypeUID()); + } + } else { + if (fullUpdate) { + logger.trace("No Charge Programs found"); + } + } + } + + /** + * Check if Websocket shall be kept alive + */ + accountHandler.get().keepAlive(ignitionState == 4 || chargingState); + } + /** * Easy function but there's some measures behind: * Guessing the range of the Vehicle on Map. If you can drive x kilometers with your Vehicle it's not feasible to @@ -545,36 +911,150 @@ public class VehicleHandler extends BaseThingHandler { * @param s * @return mapping from air-line distance to "real road" distance */ - public static State guessRangeRadius(QuantityType s) { - double radius = s.intValue() * 0.8; - return QuantityType.valueOf(Math.round(radius), KILOMETRE_UNIT); + public static State guessRangeRadius(State state) { + if (state instanceof QuantityType qt) { + double radius = qt.intValue() * 0.8; + return QuantityType.valueOf(Math.round(radius), qt.getUnit()); + } + return QuantityType.valueOf(-1, Units.ONE); } protected void updateChannel(ChannelStateMap csm) { - updateTime(csm.getGroup(), csm.getTimestamp()); - updateState(new ChannelUID(thing.getUID(), csm.getGroup(), csm.getChannel()), csm.getState()); + String channel = csm.getChannel(); + ChannelUID cuid = new ChannelUID(thing.getUID(), csm.getGroup(), channel); + eventStorage.put(cuid.getId(), csm); + + /** + * proto updates causing large printouts in openhab.log + * only log in case of channel is connected to an item + */ + if (OH_CHANNEL_PROTO_UPDATE.equals(csm.getChannel())) { + ChannelUID protoUpdateChannelUID = new ChannelUID(thing.getUID(), GROUP_VEHICLE, OH_CHANNEL_PROTO_UPDATE); + if (!isLinked(protoUpdateChannelUID)) { + eventStorage.put(protoUpdateChannelUID.getId(), csm); + return; + } + } + + /** + * Check correct channel patterns + */ + if (csm.hasUomObserver()) { + UOMObserver deliveredObserver = csm.getUomObserver(); + UOMObserver storedObserver = unitStorage.get(channel); + boolean change = true; + if (storedObserver != null) { + change = !storedObserver.equals(deliveredObserver); + } + // Channel adaptions for items with configurable units + String pattern = deliveredObserver.getPattern(csm.getGroup(), csm.getChannel()); + if (pattern != null) { + if (pattern.startsWith("%") && change) { + mmsop.setStatePattern(cuid, pattern); + } else { + handleComplexTripPattern(channel, pattern); + } + } + unitStorage.put(channel, deliveredObserver); + } + + /** + * Check if Websocket shall be kept alive during charging or driving + */ + if (!UnDefType.UNDEF.equals(csm.getState())) { + if (GROUP_VEHICLE.equals(csm.getGroup()) && OH_CHANNEL_IGNITION.equals(csm.getChannel())) { + ignitionState = ((DecimalType) csm.getState()).intValue(); + } else if (GROUP_CHARGE.equals(csm.getGroup()) && OH_CHANNEL_ACTIVE.equals(csm.getChannel())) { + chargingState = OnOffType.ON.equals((csm.getState())); + } + } + + if (OH_CHANNEL_ZONE.equals(channel) && !UnDefType.UNDEF.equals(csm.getState())) { + activeTemperaturePoint = ((DecimalType) csm.getState()).intValue(); + } + + updateState(cuid, csm.getState()); } - private void updateTime(String group, long timestamp) { - boolean updateTime = false; - Long l = timeHash.get(group); - if (l != null) { - if (l.longValue() < timestamp) { - updateTime = true; - } - } else { - updateTime = true; - } - if (updateTime) { - timeHash.put(group, timestamp); - DateTimeType dtt = new DateTimeType(Instant.ofEpochMilli(timestamp).atZone(timeZoneProvider.getTimeZone())); - updateState(new ChannelUID(thing.getUID(), group, "last-update"), dtt); + private void handleComplexTripPattern(String channel, String pattern) { + switch (channel) { + case OH_CHANNEL_CONS_EV: + case OH_CHANNEL_CONS_EV_RESET: + StringType consumptionUnitEv = StringType.valueOf(pattern); + ChannelStateMap csmEv = new ChannelStateMap(OH_CHANNEL_CONS_EV_UNIT, GROUP_TRIP, consumptionUnitEv); + updateChannel(csmEv); + break; + case OH_CHANNEL_CONS_CONV: + case OH_CHANNEL_CONS_CONV_RESET: + StringType consumptionUnitFuel = StringType.valueOf(pattern); + ChannelStateMap csmFuel = new ChannelStateMap(OH_CHANNEL_CONS_CONV_UNIT, GROUP_TRIP, + consumptionUnitFuel); + updateChannel(csmFuel); + break; } } @Override public void updateStatus(ThingStatus ts, ThingStatusDetail tsd, @Nullable String details) { - online = ts.equals(ThingStatus.ONLINE); super.updateStatus(ts, tsd, details); } + + @Override + public void updateStatus(ThingStatus ts) { + if (ThingStatus.ONLINE.equals(ts) && !ThingStatus.ONLINE.equals(thing.getStatus())) { + if (accountHandler.isPresent()) { + accountHandler.get().getVehicleCapabilities(config.get().vin); + } + } + super.updateStatus(ts); + } + + public void setFeatureCapabilities(@Nullable String capabilities) { + if (capabilities != null) { + ChannelStateMap csm = new ChannelStateMap(MB_KEY_FEATURE_CAPABILITIES, GROUP_VEHICLE, + StringType.valueOf(capabilities)); + updateChannel(csm); + } + } + + public void setCommandCapabilities(@Nullable String capabilities) { + if (capabilities != null) { + ChannelStateMap csm = new ChannelStateMap(MB_KEY_COMMAND_CAPABILITIES, GROUP_VEHICLE, + StringType.valueOf(capabilities)); + updateChannel(csm); + } + } + + private void setCommandStateOptions() { + List commandTypeOptions = new ArrayList<>(); + CommandType[] ctValues = CommandType.values(); + for (int i = 0; i < ctValues.length; i++) { + if (!UNRECOGNIZED.equals(ctValues[i].toString())) { + StateOption co = new StateOption(Integer.toString(ctValues[i].getNumber()), ctValues[i].toString()); + commandTypeOptions.add(co); + } + } + mmsop.setStateOptions(new ChannelUID(thing.getUID(), GROUP_COMMAND, OH_CHANNEL_CMD_NAME), commandTypeOptions); + List commandStateOptions = new ArrayList<>(); + CommandState[] csValues = CommandState.values(); + for (int j = 0; j < csValues.length; j++) { + if (!UNRECOGNIZED.equals(csValues[j].toString())) { + StateOption so = new StateOption(Integer.toString(csValues[j].getNumber()), csValues[j].toString()); + commandStateOptions.add(so); + } + } + mmsop.setStateOptions(new ChannelUID(thing.getUID(), GROUP_COMMAND, OH_CHANNEL_CMD_STATE), commandStateOptions); + } + + /** + * Vehicle Actions + */ + @Override + public Collection> getServices() { + return Collections.singleton(VehicleActions.class); + } + + public void sendPoi(JSONObject poi) { + accountHandler.get().sendPoi(config.get().vin, poi); + } } diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthServer.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthServer.java new file mode 100644 index 00000000000..40b2630f800 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthServer.java @@ -0,0 +1,106 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.server; + +import java.util.HashMap; +import java.util.Map; +import java.util.Optional; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.servlet.ServletHandler; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.config.AccountConfiguration; +import org.openhab.core.auth.client.oauth2.AccessTokenResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * {@link AuthServer} provides HTTP Server to show servlet content of the authentication process + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class AuthServer { + private static final Logger LOGGER = LoggerFactory.getLogger(AuthServer.class); + private static final Map SERVER_MAP = new HashMap<>(); + private static final AccessTokenResponse INVALID_ACCESS_TOKEN = new AccessTokenResponse(); + + private final HttpClient httpClient; + + private Optional server = Optional.empty(); + private AccountConfiguration config; + public String callbackUrl; + + public AuthServer(HttpClient hc, AccountConfiguration config, String callbackUrl) { + httpClient = hc; + SERVER_MAP.put(Integer.valueOf(config.callbackPort), this); + this.config = config; + this.callbackUrl = callbackUrl; + INVALID_ACCESS_TOKEN.setAccessToken(Constants.EMPTY); + } + + public void dispose() { + SERVER_MAP.remove(Integer.valueOf(config.callbackPort)); + } + + public boolean start() { + // avoid real server start for unit tests + if (server.isPresent() || Constants.JUNIT_SERVER_ADDR.equals(callbackUrl)) { + return true; + } + server = Optional.of(new Server()); + ServerConnector connector = new ServerConnector(server.get()); + connector.setPort(config.callbackPort); + server.get().setConnectors(new Connector[] { connector }); + ServletHandler servletHandler = new ServletHandler(); + server.get().setHandler(servletHandler); + servletHandler.addServletWithMapping(AuthServlet.class, Constants.CALLBACK_ENDPOINT); + try { + server.get().start(); + return true; + } catch (Exception e) { + LOGGER.trace("Cannot start Callback Server for port {}, Error {}", config.callbackPort, e.getMessage()); + server = Optional.empty(); + return false; + } + } + + public void stop() { + try { + if (server.isPresent()) { + server.get().stop(); + server = Optional.empty(); + } + } catch (Exception e) { + LOGGER.trace("Cannot start Callback Server for port {}, Error {}", config.callbackPort, e.getMessage()); + } + } + + @Nullable + public static AuthServer getServer(int port) { + return SERVER_MAP.get(port); + } + + public HttpClient getHttpClient() { + return httpClient; + } + + public String getRegion() { + return config.region; + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthService.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthService.java new file mode 100644 index 00000000000..6b3aa0d3bc1 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthService.java @@ -0,0 +1,274 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.server; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; +import java.time.Instant; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.UUID; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.client.api.ContentResponse; +import org.eclipse.jetty.client.api.Request; +import org.eclipse.jetty.client.util.StringContentProvider; +import org.eclipse.jetty.http.HttpHeader; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.config.AccountConfiguration; +import org.openhab.binding.mercedesme.internal.dto.PINRequest; +import org.openhab.binding.mercedesme.internal.dto.TokenResponse; +import org.openhab.binding.mercedesme.internal.utils.Utils; +import org.openhab.core.auth.client.oauth2.AccessTokenRefreshListener; +import org.openhab.core.auth.client.oauth2.AccessTokenResponse; +import org.openhab.core.storage.Storage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * {@link AuthService} helpers for token management + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class AuthService { + public static final AccessTokenResponse INVALID_TOKEN = new AccessTokenResponse(); + private static final int EXPIRATION_BUFFER = 5; + private static final Map AUTH_MAP = new HashMap<>(); + private final Logger logger = LoggerFactory.getLogger(AuthService.class); + + AccessTokenRefreshListener listener; + private HttpClient httpClient; + private String identifier; + private AccountConfiguration config; + private Locale locale; + private Storage storage; + private AccessTokenResponse token; + + public AuthService(AccessTokenRefreshListener atrl, HttpClient hc, AccountConfiguration ac, Locale l, + Storage store) { + INVALID_TOKEN.setAccessToken(Constants.NOT_SET); + INVALID_TOKEN.setRefreshToken(Constants.NOT_SET); + listener = atrl; + httpClient = hc; + config = ac; + identifier = config.email; + locale = l; + storage = store; + + // restore token + String storedObject = storage.get(identifier); + if (storedObject == null) { + token = INVALID_TOKEN; + listener.onAccessTokenResponse(token); + } else { + token = Utils.fromString(storedObject); + if (token.isExpired(Instant.now(), EXPIRATION_BUFFER)) { + if (!Constants.NOT_SET.equals(token.getRefreshToken())) { + refreshToken(); + listener.onAccessTokenResponse(token); + } else { + token = INVALID_TOKEN; + listener.onAccessTokenResponse(token); + } + } else { + listener.onAccessTokenResponse(token); + } + } + AUTH_MAP.put(config.callbackPort, this); + } + + @Nullable + public static AuthService getAuthService(Integer key) { + return AUTH_MAP.get(key); + } + + /** + * + * @return guid from request to create token in next step + */ + public String requestPin() { + String configUrl = Utils.getAuthConfigURL(config.region); + String sessionId = UUID.randomUUID().toString(); + Request configRequest = httpClient.newRequest(configUrl); + addBasicHeaders(configRequest); + configRequest.header("X-Trackingid", UUID.randomUUID().toString()); + configRequest.header("X-Sessionid", sessionId); + try { + ContentResponse cr = configRequest.timeout(Constants.REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS).send(); + if (cr.getStatus() == 200) { + logger.trace("{} Config Request PIN fine {} {}", prefix(), cr.getStatus(), cr.getContentAsString()); + } else { + logger.trace("{} Failed to request config for pin {} {}", prefix(), cr.getStatus(), + cr.getContentAsString()); + return Constants.NOT_SET; + } + } catch (InterruptedException | TimeoutException | ExecutionException e) { + logger.trace("{} Failed to request config for pin {}", prefix(), e.getMessage()); + return Constants.NOT_SET; + } + + String url = Utils.getAuthURL(config.region); + Request req = httpClient.POST(url); + addBasicHeaders(req); + req.header("X-Trackingid", UUID.randomUUID().toString()); + req.header("X-Sessionid", sessionId); + + PINRequest pr = new PINRequest(config.email, locale.getCountry()); + req.header(HttpHeader.CONTENT_TYPE, "application/json"); + logger.trace("{} payload {}", url, Utils.GSON.toJson(pr)); + req.content(new StringContentProvider(Utils.GSON.toJson(pr), "utf-8")); + + try { + ContentResponse cr = req.timeout(Constants.REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS).send(); + if (cr.getStatus() == 200) { + logger.trace("{} Request PIN fine {} {}", prefix(), cr.getStatus(), cr.getContentAsString()); + return pr.nonce; + } else { + logger.trace("{} Failed to request pin {} {}", prefix(), cr.getStatus(), cr.getContentAsString()); + } + } catch (InterruptedException | TimeoutException | ExecutionException e) { + logger.trace("{} Failed to request pin {}", prefix(), e.getMessage()); + } + return Constants.NOT_SET; + } + + public boolean requestToken(String password) { + try { + // Request + headers + String url = Utils.getTokenUrl(config.region); + Request req = httpClient.POST(url); + addBasicHeaders(req); + req.header("Stage", "prod"); + req.header("X-Device-Id", UUID.randomUUID().toString()); + req.header("X-Request-Id", UUID.randomUUID().toString()); + + // Content URL form + String clientId = "client_id=" + + URLEncoder.encode(Utils.getLoginAppId(config.region), StandardCharsets.UTF_8.toString()); + String grantAttribute = "grant_type=password"; + String userAttribute = "username=" + URLEncoder.encode(config.email, StandardCharsets.UTF_8.toString()); + String passwordAttribute = "password=" + URLEncoder.encode(password, StandardCharsets.UTF_8.toString()); + String scopeAttribute = "scope=" + URLEncoder.encode(Constants.SCOPE, StandardCharsets.UTF_8.toString()); + String content = clientId + "&" + grantAttribute + "&" + userAttribute + "&" + passwordAttribute + "&" + + scopeAttribute; + req.header(HttpHeader.CONTENT_TYPE, "application/x-www-form-urlencoded"); + req.content(new StringContentProvider(content)); + + // Send + ContentResponse cr = req.timeout(Constants.REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS).send(); + if (cr.getStatus() == 200) { + String responseString = cr.getContentAsString(); + saveTokenResponse(responseString); + listener.onAccessTokenResponse(token); + return true; + } else { + logger.trace("{} Failed to get token {} {}", prefix(), cr.getStatus(), cr.getContentAsString()); + } + } catch (InterruptedException | TimeoutException | ExecutionException | UnsupportedEncodingException e) { + logger.trace("{} Failed to get token {}", prefix(), e.getMessage()); + } + return false; + } + + public void refreshToken() { + try { + String url = Utils.getTokenUrl(config.region); + Request req = httpClient.POST(url); + req.header("X-Device-Id", UUID.randomUUID().toString()); + req.header("X-Request-Id", UUID.randomUUID().toString()); + + // Content URL form + String grantAttribute = "grant_type=refresh_token"; + String refreshTokenAttribute = "refresh_token=" + + URLEncoder.encode(token.getRefreshToken(), StandardCharsets.UTF_8.toString()); + String content = grantAttribute + "&" + refreshTokenAttribute; + req.header(HttpHeader.CONTENT_TYPE, "application/x-www-form-urlencoded"); + req.content(new StringContentProvider(content)); + + // Send + ContentResponse cr = req.timeout(Constants.REQUEST_TIMEOUT_MS, TimeUnit.MILLISECONDS).send(); + if (cr.getStatus() == 200) { + saveTokenResponse(cr.getContentAsString()); + listener.onAccessTokenResponse(token); + } else { + logger.trace("{} Failed to refresh token {} {}", prefix(), cr.getStatus(), cr.getContentAsString()); + } + } catch (InterruptedException | TimeoutException | ExecutionException | UnsupportedEncodingException e) { + logger.trace("{} Failed to refresh token {}", prefix(), e.getMessage()); + } + } + + public String getToken() { + if (token.isExpired(Instant.now(), EXPIRATION_BUFFER)) { + if (!Constants.NOT_SET.equals(token.getRefreshToken())) { + refreshToken(); + // token shall be updated now - retry expired check + if (token.isExpired(Instant.now(), EXPIRATION_BUFFER)) { + token = INVALID_TOKEN; + listener.onAccessTokenResponse(token); + return Constants.NOT_SET; + } + } else { + token = INVALID_TOKEN; + logger.trace("{} Refresh token empty", prefix()); + } + } + return token.getAccessToken(); + } + + public void addBasicHeaders(Request req) { + req.header("Ris-Os-Name", Constants.RIS_OS_NAME); + req.header("Ris-Os-Version", Constants.RIS_OS_VERSION); + req.header("Ris-Sdk-Version", Utils.getRisSDKVersion(config.region)); + req.header("X-Locale", locale.getLanguage() + "-" + locale.getCountry()); // de-DE + req.header("User-Agent", Utils.getApplication(config.region)); + req.header("X-Applicationname", Utils.getUserAgent(config.region)); + req.header("Ris-Application-Version", Utils.getRisApplicationVersion(config.region)); + } + + private void saveTokenResponse(String response) { + TokenResponse tr = Utils.GSON.fromJson(response, TokenResponse.class); + AccessTokenResponse atr = new AccessTokenResponse(); + if (tr != null) { + atr.setAccessToken(tr.accessToken); + atr.setCreatedOn(Instant.now()); + atr.setExpiresIn(tr.expiresIn); + // Preserve refresh token if available + if (Constants.NOT_SET.equals(tr.refreshToken) && !Constants.NOT_SET.equals(token.getRefreshToken())) { + atr.setRefreshToken(token.getRefreshToken()); + } else if (!Constants.NOT_SET.equals(tr.refreshToken)) { + atr.setRefreshToken(tr.refreshToken); + } else { + logger.trace("{} Neither new nor old refresh token available", prefix()); + } + atr.setTokenType("Bearer"); + atr.setScope(Constants.SCOPE); + storage.put(identifier, Utils.toString(atr)); + token = atr; + } else { + logger.trace("{} Token Response is null", prefix()); + } + } + + private String prefix() { + return "[" + config.email + "] "; + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthServlet.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthServlet.java new file mode 100644 index 00000000000..502750b97da --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/AuthServlet.java @@ -0,0 +1,104 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.server; + +import java.io.IOException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.binding.mercedesme.internal.Constants; + +/** + * {@link AuthServlet} provides simple HTML pages for authorization workflow + * + * @author Bernd Weymann - Initial contribution + */ +@SuppressWarnings("serial") +@NonNullByDefault +public class AuthServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException { + AuthService myAuthService = AuthService.getAuthService(request.getLocalPort()); + String guid = request.getParameter(Constants.GUID); + String pin = request.getParameter(Constants.PIN); + if (guid == null && pin == null && myAuthService != null) { + // request PIN + String requestVal = myAuthService.requestPin(); + if (!Constants.NOT_SET.equals(requestVal)) { + response.setStatus(HttpServletResponse.SC_OK); + response.getWriter().println(""); + response.getWriter().println(""); + response.getWriter().println("

Step 1 - PIN Requested

"); + response.getWriter().println("
"); + response.getWriter().println("PIN was requested and should be present in your EMail Inbox
"); + response.getWriter() + .println("Check first if you received the PIN and then continue with the below Link
"); + response.getWriter().println("Click here to continue with Step 2"); + response.getWriter().println(""); + response.getWriter().println(""); + } else { + response.setStatus(HttpServletResponse.SC_OK); + response.getWriter().println(""); + response.getWriter().println(""); + response.getWriter().println("Something went wrong
"); + response.getWriter().println(""); + response.getWriter().println(""); + } + + } else if (guid != null && pin == null && myAuthService != null) { + // show insert PIN input field + + response.setContentType("text/html"); + response.setStatus(HttpServletResponse.SC_OK); + response.getWriter().println(""); + response.getWriter().println(""); + response.getWriter().println("

Step 2 - Enter PIN

"); + response.getWriter().println("
"); + response.getWriter().println("Enter PIN in second input field - leave guid as it is!
"); + response.getWriter().println("
"); + response.getWriter().println("
"); + response.getWriter().println(""); + response.getWriter().println(""); + response.getWriter().println("
"); + response.getWriter().println(""); + response.getWriter().println(""); + response.getWriter().println("
"); + response.getWriter().println(""); + response.getWriter().println("
"); + response.getWriter().println(""); + response.getWriter().println(""); + } else if (guid != null && pin != null && myAuthService != null) { + // call getToken and show result + boolean result = myAuthService.requestToken(guid + ":" + pin); + response.setContentType("text/html"); + response.setStatus(HttpServletResponse.SC_OK); + response.getWriter().println(""); + response.getWriter().println(""); + response.getWriter().println("

Step 3 - Save Token

"); + response.getWriter().println("
"); + if (result) { + response.getWriter().println("Success - everything done!
"); + } else { + response.getWriter().println("Failure - Please check logs for further analysis!
"); + } + response.getWriter().println(""); + response.getWriter().println(""); + } + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/CallbackServer.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/CallbackServer.java deleted file mode 100644 index 90268f48650..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/CallbackServer.java +++ /dev/null @@ -1,196 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.mercedesme.internal.server; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; -import java.util.Optional; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.server.Connector; -import org.eclipse.jetty.server.Server; -import org.eclipse.jetty.server.ServerConnector; -import org.eclipse.jetty.servlet.ServletHandler; -import org.openhab.binding.mercedesme.internal.Constants; -import org.openhab.binding.mercedesme.internal.config.AccountConfiguration; -import org.openhab.core.auth.client.oauth2.AccessTokenRefreshListener; -import org.openhab.core.auth.client.oauth2.AccessTokenResponse; -import org.openhab.core.auth.client.oauth2.OAuthClientService; -import org.openhab.core.auth.client.oauth2.OAuthException; -import org.openhab.core.auth.client.oauth2.OAuthFactory; -import org.openhab.core.auth.client.oauth2.OAuthResponseException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * The {@link CallbackServer} class defines an HTTP Server for authentication callbacks - * - * @author Bernd Weymann - Initial contribution - */ -@NonNullByDefault -public class CallbackServer { - private static final Logger LOGGER = LoggerFactory.getLogger(CallbackServer.class); - private static final Map AUTH_MAP = new HashMap<>(); - private static final Map SERVER_MAP = new HashMap<>(); - private static final AccessTokenResponse INVALID_ACCESS_TOKEN = new AccessTokenResponse(); - - private final OAuthFactory oAuthFactory; - - private Optional server = Optional.empty(); - private AccessTokenRefreshListener listener; - private AccountConfiguration config; - private OAuthClientService oacs; - private String callbackUrl; - - public CallbackServer(AccessTokenRefreshListener l, HttpClient hc, OAuthFactory oAuthFactory, - AccountConfiguration config, String callbackUrl) { - this.oAuthFactory = oAuthFactory; - oacs = oAuthFactory.createOAuthClientService(config.clientId, Constants.MB_TOKEN_URL, Constants.MB_AUTH_URL, - config.clientId, config.clientSecret, config.getScope(), false); - listener = l; - AUTH_MAP.put(Integer.valueOf(config.callbackPort), oacs); - SERVER_MAP.put(Integer.valueOf(config.callbackPort), this); - this.config = config; - this.callbackUrl = callbackUrl; - INVALID_ACCESS_TOKEN.setAccessToken(Constants.EMPTY); - } - - public void dispose() { - oAuthFactory.ungetOAuthService(config.clientId); - AUTH_MAP.remove(Integer.valueOf(config.callbackPort)); - SERVER_MAP.remove(Integer.valueOf(config.callbackPort)); - } - - public void deleteOAuthServiceAndAccessToken() { - oAuthFactory.deleteServiceAndAccessToken(config.clientId); - } - - public String getAuthorizationUrl() { - try { - return oacs.getAuthorizationUrl(callbackUrl, null, null); - } catch (OAuthException e) { - LOGGER.warn("Error creating Authorization URL {}", e.getMessage()); - return Constants.EMPTY; - } - } - - public String getScope() { - return config.getScope(); - } - - public boolean start() { - LOGGER.debug("Start Callback Server for port {}", config.callbackPort); - if (server.isPresent()) { - LOGGER.debug("Callback server for port {} already started", config.callbackPort); - return true; - } - server = Optional.of(new Server()); - ServerConnector connector = new ServerConnector(server.get()); - connector.setPort(config.callbackPort); - server.get().setConnectors(new Connector[] { connector }); - ServletHandler servletHandler = new ServletHandler(); - server.get().setHandler(servletHandler); - servletHandler.addServletWithMapping(CallbackServlet.class, Constants.CALLBACK_ENDPOINT); - try { - server.get().start(); - } catch (Exception e) { - LOGGER.warn("Cannot start Callback Server for port {}, Error {}", config.callbackPort, e.getMessage()); - return false; - } - return true; - } - - public void stop() { - LOGGER.debug("Stop Callback Server"); - try { - if (server.isPresent()) { - server.get().stop(); - server = Optional.empty(); - } - } catch (Exception e) { - LOGGER.warn("Cannot start Callback Server for port {}, Error {}", config.callbackPort, e.getMessage()); - } - } - - public String getToken() { - AccessTokenResponse atr = null; - try { - /* - * this will automatically trigger - * - return last stored token if it's still valid - * - refreshToken if current token is expired - * - inform listeners if refresh delivered new token - * - store new token in persistence - */ - atr = oacs.getAccessTokenResponse(); - } catch (OAuthException | IOException | OAuthResponseException e) { - LOGGER.warn("Exception getting token {}", e.getMessage()); - } - if (atr == null) { - LOGGER.debug("Token empty - Manual Authorization needed at {}", callbackUrl); - listener.onAccessTokenResponse(INVALID_ACCESS_TOKEN); - return INVALID_ACCESS_TOKEN.getAccessToken(); - } - listener.onAccessTokenResponse(atr); - return atr.getAccessToken(); - } - - /** - * Static callback for Servlet calls - * - * @param port - * @param code - */ - public static void callback(int port, String code) { - LOGGER.trace("Callback from Servlet {} {}", port, code); - try { - OAuthClientService oacs = AUTH_MAP.get(port); - LOGGER.trace("Get token from code {}", code); - // get CallbackServer instance - CallbackServer srv = SERVER_MAP.get(port); - LOGGER.trace("Deliver token to {}", srv); - if (srv != null && oacs != null) { - // token stored and persisted inside oacs - AccessTokenResponse atr = oacs.getAccessTokenResponseByAuthorizationCode(code, srv.callbackUrl); - // inform listener - not done by oacs - srv.listener.onAccessTokenResponse(atr); - } else { - LOGGER.warn("Either Callbackserver {} or Authorization Service {} not found", srv, oacs); - } - } catch (OAuthException | IOException | OAuthResponseException e) { - LOGGER.warn("Exception getting token from code {} {}", code, e.getMessage()); - } - } - - public static String getAuthorizationUrl(int port) { - CallbackServer srv = SERVER_MAP.get(port); - if (srv != null) { - return srv.getAuthorizationUrl(); - } else { - LOGGER.debug("No Callbackserver found for {}", port); - return Constants.EMPTY; - } - } - - public static String getScope(int port) { - CallbackServer srv = SERVER_MAP.get(port); - if (srv != null) { - return srv.getScope(); - } else { - LOGGER.debug("No Callbackserver found for {}", port); - return Constants.EMPTY; - } - } -} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/CallbackServlet.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/CallbackServlet.java deleted file mode 100644 index bb5f3a74a3f..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/CallbackServlet.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.mercedesme.internal.server; - -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.openhab.binding.mercedesme.internal.Constants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * The {@link CallbackServlet} class provides authentication callback endpoint - * - * @author Bernd Weymann - Initial contribution - */ -@SuppressWarnings("serial") -@NonNullByDefault -public class CallbackServlet extends HttpServlet { - private final Logger logger = LoggerFactory.getLogger(CallbackServlet.class); - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) - throws ServletException, IOException { - String code = request.getParameter(Constants.CODE); - if (code != null) { - CallbackServer.callback(request.getLocalPort(), code); - logger.trace("Code successfully extracted {}", request.getParameterMap()); - response.setContentType("application/json"); - response.setStatus(HttpServletResponse.SC_OK); - response.getWriter().println(request.getParameterMap()); - response.getWriter().println("{ \"status\": \"ok\"}"); - } else { - response.setContentType("text/html"); - response.setStatus(HttpServletResponse.SC_OK); - response.getWriter().println(""); - response.getWriter().println(""); - response.getWriter().println("Call Parameters"); - response.getWriter().println("
"); - response.getWriter().println(request.getParameterMap()); - response.getWriter().println("

"); - response.getWriter().println("Configured scopes
"); - String[] scopes = CallbackServer.getScope(request.getLocalPort()).split(Constants.SPACE); - for (int i = 0; i < scopes.length; i++) { - response.getWriter().println(scopes[i] + "
"); - } - response.getWriter().println("

"); - response.getWriter().println("Get your access token for openHAB MercedesMe Binding"); - response.getWriter().println("
"); - response.getWriter().println("Start Authorization"); - response.getWriter().println(""); - response.getWriter().println(""); - } - logger.debug("Call from {}:{} parameters {}", request.getLocalAddr(), request.getLocalPort(), - request.getParameterMap()); - } -} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/MBWebsocket.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/MBWebsocket.java new file mode 100644 index 00000000000..29d5ffff5d0 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/MBWebsocket.java @@ -0,0 +1,265 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.server; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.net.URI; +import java.nio.ByteBuffer; +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.jetty.websocket.api.Session; +import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose; +import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect; +import org.eclipse.jetty.websocket.api.annotations.OnWebSocketError; +import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage; +import org.eclipse.jetty.websocket.api.annotations.WebSocket; +import org.eclipse.jetty.websocket.client.ClientUpgradeRequest; +import org.eclipse.jetty.websocket.client.WebSocketClient; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.handler.AccountHandler; +import org.openhab.core.thing.ThingStatus; +import org.openhab.core.thing.ThingStatusDetail; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.daimler.mbcarkit.proto.Client.ClientMessage; +import com.daimler.mbcarkit.proto.Protos.AcknowledgeAssignedVehicles; +import com.daimler.mbcarkit.proto.VehicleEvents; +import com.daimler.mbcarkit.proto.VehicleEvents.AcknowledgeVEPUpdatesByVIN; +import com.daimler.mbcarkit.proto.VehicleEvents.PushMessage; +import com.daimler.mbcarkit.proto.Vehicleapi.AcknowledgeAppTwinCommandStatusUpdatesByVIN; +import com.daimler.mbcarkit.proto.Vehicleapi.AppTwinCommandStatusUpdatesByVIN; + +/** + * {@link MBWebsocket} as socket endpoint to communicate with Mercedes + * + * @author Bernd Weymann - Initial contribution + */ +@WebSocket +@NonNullByDefault +public class MBWebsocket { + // timeout 14 Minutes - just below scheduling of 15 Minutes by AccountHandler + private static final int CONNECT_TIMEOUT_MS = 14 * 60 * 1000; + // standard runtime of Websocket + private static final int WS_RUNTIME_MS = 60 * 1000; + // addon time of 1 minute for a new send command + private static final int ADDON_MESSAGE_TIME_MS = 60 * 1000; + // check Socket time elapsed each second + private static final int CHECK_INTERVAL_MS = 1000; + // additional 5 minutes after keep alive + private static final int KEEP_ALIVE_ADDON = 5 * 60 * 1000; + + private final Logger logger = LoggerFactory.getLogger(MBWebsocket.class); + private AccountHandler accountHandler; + private boolean running = false; + private Instant runTill = Instant.now(); + private @Nullable Session session; + private List commandQueue = new ArrayList<>(); + + private boolean keepAlive = false; + + public MBWebsocket(AccountHandler ah) { + accountHandler = ah; + } + + /** + * Is called by + * - scheduler every 15 minutes + * - handler sending a command + * - handler requesting refresh + */ + public void run() { + synchronized (this) { + if (running) { + return; + } else { + running = true; + runTill = Instant.now().plusMillis(WS_RUNTIME_MS); + } + } + try { + WebSocketClient client = new WebSocketClient(); + client.setMaxIdleTimeout(CONNECT_TIMEOUT_MS); + client.setStopTimeout(CONNECT_TIMEOUT_MS); + ClientUpgradeRequest request = accountHandler.getClientUpgradeRequest(); + String websocketURL = accountHandler.getWSUri(); + logger.trace("Websocket start {}", websocketURL); + if (Constants.JUNIT_TOKEN.equals(request.getHeader("Authorization"))) { + // avoid unit test requesting real websocket - simply return + return; + } + client.start(); + client.connect(this, new URI(websocketURL), request); + while (keepAlive || Instant.now().isBefore(runTill)) { + try { + Thread.sleep(CHECK_INTERVAL_MS); + } catch (InterruptedException ie) { + logger.trace("Websocket interrupted during sleeping - stop executing"); + runTill = Instant.MIN; + } + // sends one message per second + if (sendMessage()) { + // add additional runtime to execute and finish command + runTill = runTill.plusMillis(ADDON_MESSAGE_TIME_MS); + } + } + logger.trace("Websocket stop"); + client.stop(); + client.destroy(); + } catch (Throwable t) { + // catch Exceptions of start stop and declare communication error + accountHandler.updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, + "@text/mercedesme.account.status.websocket-failure"); + logger.warn("Websocket handling exception: {}", t.getMessage()); + } + synchronized (this) { + running = false; + } + } + + public void setCommand(ClientMessage cm) { + commandQueue.add(cm); + } + + private boolean sendMessage() { + if (!commandQueue.isEmpty()) { + ClientMessage message = commandQueue.remove(0); + logger.trace("Send Message {}", message.getAllFields()); + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + message.writeTo(baos); + if (session != null) { + session.getRemote().sendBytes(ByteBuffer.wrap(baos.toByteArray())); + } + return true; + } catch (IOException e) { + logger.warn("Error sending message {} : {}", message.getAllFields(), e.getMessage()); + } + logger.info("Send Message {} done", message.getAllFields()); + } + return false; + } + + private void sendAcknowledgeMessage(ClientMessage message) { + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + message.writeTo(baos); + if (session != null) { + session.getRemote().sendBytes(ByteBuffer.wrap(baos.toByteArray())); + } + } catch (IOException e) { + logger.warn("Error sending acknowledge {} : {}", message.getAllFields(), e.getMessage()); + } + } + + public boolean isRunning() { + return running; + } + + public void interrupt() { + synchronized (this) { + runTill = Instant.MIN; + keepAlive = false; + } + } + + public void keepAlive(boolean b) { + if (!keepAlive) { + if (b) { + logger.trace("WebSocket - keep alive start"); + } + } else { + if (!b) { + // after keep alive is finished add 5 minutes to cover e.g. door events after trip is finished + runTill = Instant.now().plusMillis(KEEP_ALIVE_ADDON); + logger.trace("Websocket - keep alive stop - run till {}", runTill.toString()); + } + } + keepAlive = b; + } + + /** + * endpoints + */ + + @OnWebSocketMessage + public void onBytes(InputStream is) { + try { + PushMessage pm = VehicleEvents.PushMessage.parseFrom(is); + if (pm.hasVepUpdates()) { + boolean distributed = accountHandler.distributeVepUpdates(pm.getVepUpdates().getUpdatesMap()); + if (distributed) { + AcknowledgeVEPUpdatesByVIN ack = AcknowledgeVEPUpdatesByVIN.newBuilder() + .setSequenceNumber(pm.getVepUpdates().getSequenceNumber()).build(); + ClientMessage cm = ClientMessage.newBuilder().setAcknowledgeVepUpdatesByVin(ack).build(); + sendAcknowledgeMessage(cm); + } + } else if (pm.hasAssignedVehicles()) { + for (int i = 0; i < pm.getAssignedVehicles().getVinsCount(); i++) { + String vin = pm.getAssignedVehicles().getVins(0); + accountHandler.discovery(vin); + } + AcknowledgeAssignedVehicles ack = AcknowledgeAssignedVehicles.newBuilder().build(); + ClientMessage cm = ClientMessage.newBuilder().setAcknowledgeAssignedVehicles(ack).build(); + sendAcknowledgeMessage(cm); + } else if (pm.hasApptwinCommandStatusUpdatesByVin()) { + AppTwinCommandStatusUpdatesByVIN csubv = pm.getApptwinCommandStatusUpdatesByVin(); + accountHandler.commandStatusUpdate(csubv.getUpdatesByVinMap()); + AcknowledgeAppTwinCommandStatusUpdatesByVIN ack = AcknowledgeAppTwinCommandStatusUpdatesByVIN + .newBuilder().setSequenceNumber(csubv.getSequenceNumber()).build(); + ClientMessage cm = ClientMessage.newBuilder().setAcknowledgeApptwinCommandStatusUpdateByVin(ack) + .build(); + sendAcknowledgeMessage(cm); + } else if (pm.hasApptwinPendingCommandRequest()) { + logger.trace("Pending Command {}", pm.getApptwinPendingCommandRequest().getAllFields()); + } else if (pm.hasDebugMessage()) { + logger.trace("MB Debug Message: {}", pm.getDebugMessage().getMessage()); + } else { + logger.trace("MB Message: {} not handled", pm.getAllFields()); + } + } catch (IOException e) { + // don't report thing status errors here. + // Sometimes messages cannot be decoded which doesn't effect the overall functionality + logger.trace("IOException {}", e.getMessage()); + } catch (Error err) { + logger.trace("Error caught {}", err.getMessage()); + } + } + + @OnWebSocketClose + public void onDisconnect(Session session, int statusCode, String reason) { + logger.debug("Disconnected from server. Status {} Reason {}", statusCode, reason); + this.session = null; + // ensure execution stop if disconnect was triggered from server side + interrupt(); + } + + @OnWebSocketConnect + public void onConnect(Session session) { + accountHandler.updateStatus(ThingStatus.ONLINE); + this.session = session; + } + + @OnWebSocketError + public void onError(Throwable t) { + logger.warn("onError {}", t.getMessage()); + accountHandler.updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, + "@text/mercedesme.account.status.websocket-failure"); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java deleted file mode 100644 index 21a0f91246c..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/server/Utils.java +++ /dev/null @@ -1,92 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.mercedesme.internal.server; - -import java.net.Inet4Address; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.List; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.openhab.binding.mercedesme.internal.Constants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * The {@link Utils} class defines an HTTP Server for authentication callbacks - * - * @author Bernd Weymann - Initial contribution - */ -@NonNullByDefault -public class Utils { - private static final Logger LOGGER = LoggerFactory.getLogger(Utils.class); - private static final List PORTS = new ArrayList<>(); - private static int port = 8090; - - /** - * Get free port without other Thread interference - * - * @return - */ - public static synchronized int getFreePort() { - while (PORTS.contains(port)) { - port++; - } - PORTS.add(port); - return port; - } - - public static synchronized void addPort(int portNr) { - if (PORTS.contains(portNr)) { - LOGGER.warn("Port {} already occupied", portNr); - } - PORTS.add(portNr); - } - - public static synchronized void removePort(int portNr) { - PORTS.remove(Integer.valueOf(portNr)); - } - - public static String getCallbackIP() throws SocketException { - // https://stackoverflow.com/questions/901755/how-to-get-the-ip-of-the-computer-on-linux-through-java - // https://stackoverflow.com/questions/1062041/ip-address-not-obtained-in-java - for (Enumeration ifaces = NetworkInterface.getNetworkInterfaces(); ifaces - .hasMoreElements();) { - NetworkInterface iface = ifaces.nextElement(); - try { - if (!iface.isLoopback()) { - if (iface.isUp()) { - for (Enumeration addresses = iface.getInetAddresses(); addresses - .hasMoreElements();) { - InetAddress address = addresses.nextElement(); - if (address instanceof Inet4Address) { - return address.getHostAddress(); - } - } - } - } - } catch (SocketException se) { - // Calling one network interface failed - continue searching - LOGGER.trace("Network {} failed {}", iface.getName(), se.getMessage()); - } - } - throw new SocketException("IP address not detected"); - } - - public static String getCallbackAddress(String callbackIP, int callbackPort) { - return "http://" + callbackIP + Constants.COLON + callbackPort + Constants.CALLBACK_ENDPOINT; - } -} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/ChannelStateMap.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/ChannelStateMap.java index b0c7fc24d60..a3d9d046557 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/ChannelStateMap.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/ChannelStateMap.java @@ -12,7 +12,10 @@ */ package org.openhab.binding.mercedesme.internal.utils; +import java.util.Optional; + import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; import org.openhab.core.types.State; /** @@ -25,13 +28,21 @@ public class ChannelStateMap { private String channel; private String group; private State state; - private long timestamp; + private Optional uomObserver = Optional.empty(); - public ChannelStateMap(String ch, String grp, State st, long ts) { + public ChannelStateMap(String ch, String grp, State st) { channel = ch; group = grp; state = st; - timestamp = ts; + } + + public ChannelStateMap(String ch, String grp, State st, @Nullable UOMObserver uom) { + channel = ch; + group = grp; + state = st; + if (uom != null) { + uomObserver = Optional.of(uom); + } } public String getChannel() { @@ -46,13 +57,17 @@ public class ChannelStateMap { return state; } - public long getTimestamp() { - return timestamp; + public boolean hasUomObserver() { + return !uomObserver.isEmpty(); + } + + public UOMObserver getUomObserver() { + return uomObserver.get(); } @Override public String toString() { - return group + ":" + channel + " " + state; + return group + "#" + channel + " " + state; } public boolean isValid() { diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Mapper.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Mapper.java index 9e03c925898..c12f5b9fa8c 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Mapper.java +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Mapper.java @@ -14,24 +14,38 @@ package org.openhab.binding.mercedesme.internal.utils; import static org.openhab.binding.mercedesme.internal.Constants.*; +import java.time.Instant; +import java.time.temporal.ChronoUnit; import java.util.HashMap; +import java.util.Locale; import java.util.Map; -import java.util.Set; + +import javax.measure.Unit; +import javax.measure.quantity.Length; +import javax.measure.quantity.Pressure; +import javax.measure.quantity.Speed; +import javax.measure.quantity.Temperature; +import javax.measure.quantity.Volume; import org.eclipse.jdt.annotation.NonNullByDefault; -import org.json.JSONObject; +import org.openhab.core.i18n.UnitProvider; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; import org.openhab.core.library.types.OpenClosedType; import org.openhab.core.library.types.QuantityType; +import org.openhab.core.library.types.StringType; +import org.openhab.core.library.unit.ImperialUnits; +import org.openhab.core.library.unit.SIUnits; import org.openhab.core.library.unit.Units; import org.openhab.core.types.State; import org.openhab.core.types.UnDefType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus; + /** - * The {@link Mapper} maps a given Json Object towards a channel, group and state + * {@link Mapper} converts Mercedes keys to channel name and group and converts delivered vehicle data * * @author Bernd Weymann - Initial contribution */ @@ -39,168 +53,291 @@ import org.slf4j.LoggerFactory; public class Mapper { private static final Logger LOGGER = LoggerFactory.getLogger(Mapper.class); - public static final ChannelStateMap INVALID_MAP = new ChannelStateMap(EMPTY, EMPTY, UnDefType.UNDEF, -1); + public static final ChannelStateMap INVALID_MAP = new ChannelStateMap(EMPTY, EMPTY, UnDefType.UNDEF); public static final Map CHANNELS = new HashMap<>(); public static final String TIMESTAMP = "timestamp"; public static final String VALUE = "value"; - public static ChannelStateMap getChannelStateMap(JSONObject jo) { + public static Unit defaultLengthUnit = KILOMETRE_UNIT; + public static Unit defaultTemperatureUnit = SIUnits.CELSIUS; + public static Unit defaultPressureUnit = Units.BAR; + public static Unit defaultVolumeUnit = Units.LITRE; + public static Unit defaultSpeedUnit = SIUnits.KILOMETRE_PER_HOUR; + + public static void initialize(UnitProvider up) { + // Configure Mapper default values + Unit lengthUnit = up.getUnit(Length.class); + if (ImperialUnits.FOOT.equals(lengthUnit)) { + defaultLengthUnit = ImperialUnits.MILE; + defaultSpeedUnit = ImperialUnits.MILES_PER_HOUR; + defaultPressureUnit = ImperialUnits.POUND_FORCE_SQUARE_INCH; + defaultVolumeUnit = ImperialUnits.GALLON_LIQUID_US; + } + Unit temperatureUnit = up.getUnit(Temperature.class); + defaultTemperatureUnit = temperatureUnit; + } + + public static ChannelStateMap getChannelStateMap(String key, VehicleAttributeStatus value) { if (CHANNELS.isEmpty()) { init(); } - Set s = jo.keySet(); - if (s.size() == 1) { - String id = s.toArray()[0].toString(); - String[] ch = CHANNELS.get(id); - if (ch != null) { - State state; - switch (id) { - // Kilometer values - case "odo": - case "rangeelectric": - case "rangeliquid": - state = getKilometers((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); + String[] ch = CHANNELS.get(key); + if (ch != null) { + State state; + UOMObserver observer = null; + switch (key) { + // Kilometer values + case MB_KEY_ODO: + case MB_KEY_RANGEELECTRIC: + case MB_KEY_OVERALL_RANGE: + case MB_KEY_RANGELIQUID: + case MB_KEY_DISTANCE_START: + case MB_KEY_DISTANCE_RESET: + Unit lengthUnit = defaultLengthUnit; + if (value.hasDistanceUnit()) { + observer = new UOMObserver(value.getDistanceUnit().toString()); + Unit queryUnit = observer.getUnit(); + if (queryUnit != null) { + lengthUnit = queryUnit; + } else { + LOGGER.trace("No Unit found for {} - take default ", key); + } + } + state = QuantityType.valueOf(Utils.getDouble(value), lengthUnit); + return new ChannelStateMap(ch[0], ch[1], state, observer); - // Percentages - case "soc": - case "tanklevelpercent": - state = getPercentage((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); + // special String Value + case MB_KEY_DRIVEN_TIME_START: + case MB_KEY_DRIVEN_TIME_RESET: + int duration = Utils.getInt(value); + if (duration < 0) { + state = UnDefType.UNDEF; + } else { + state = StringType.valueOf(Utils.getDurationString(duration)); + } + return new ChannelStateMap(ch[0], ch[1], state); - // Contacts - case "decklidstatus": - case "doorstatusfrontleft": - case "doorstatusfrontright": - case "doorstatusrearleft": - case "doorstatusrearright": - state = getContact((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); + // KiloWatt values + case MB_KEY_CHARGING_POWER: + double power = Utils.getDouble(value); + state = QuantityType.valueOf(Math.max(0, power), KILOWATT_UNIT); + return new ChannelStateMap(ch[0], ch[1], state); - // Number Status - case "lightswitchposition": - case "rooftopstatus": - case "sunroofstatus": - case "windowstatusfrontleft": - case "windowstatusfrontright": - case "windowstatusrearleft": - case "windowstatusrearright": - case "doorlockstatusvehicle": - state = getDecimal((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); + case MB_KEY_AVERAGE_SPEED_START: + case MB_KEY_AVERAGE_SPEED_RESET: + Unit speedUnit = defaultSpeedUnit; + if (value.hasSpeedUnit()) { + observer = new UOMObserver(value.getSpeedUnit().toString()); + Unit queryUnit = observer.getUnit(); + if (queryUnit != null) { + lengthUnit = observer.getUnit(); + } else { + LOGGER.trace("No Unit found for {} - take default ", key); + } + } + double speed = Utils.getDouble(value); + state = QuantityType.valueOf(Math.max(0, speed), speedUnit); + return new ChannelStateMap(ch[0], ch[1], state, observer); - // Switches - case "interiorLightsFront": - case "interiorLightsRear": - case "readingLampFrontLeft": - case "readingLampFrontRight": - state = getOnOffType((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); + // KiloWatt/Hour values + case MB_KEY_ELECTRICCONSUMPTIONSTART: + case MB_KEY_ELECTRICCONSUMPTIONRESET: + double consumptionEv = Utils.getDouble(value); + state = new DecimalType(consumptionEv); + if (value.hasElectricityConsumptionUnit()) { + observer = new UOMObserver(value.getElectricityConsumptionUnit().toString()); + } else { + LOGGER.trace("Don't have electric consumption unit for {}", key); + } + return new ChannelStateMap(ch[0], ch[1], state, observer); - case "doorlockstatusdecklid": - case "doorlockstatusgas": - state = getOnOffTypeLock((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); + // Litre values + case MB_KEY_LIQUIDCONSUMPTIONSTART: + case MB_KEY_LIQUIDCONSUMPTIONRESET: + double consumptionComb = Utils.getDouble(value); + state = new DecimalType(consumptionComb); + if (value.hasCombustionConsumptionUnit()) { + observer = new UOMObserver(value.getCombustionConsumptionUnit().toString()); + } + return new ChannelStateMap(ch[0], ch[1], state, observer); - // Angle - case "positionHeading": - state = getAngle((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); - default: - LOGGER.trace("No mapping available for {}", id); - } - } else { - LOGGER.trace("No mapping available for {}", id); + // Time - end of charging + case MB_KEY_ENDOFCHARGETIME: + if (Utils.isNil(value)) { + state = UnDefType.UNDEF; + } else { + // int value is representing "minutes after Midnight! + Instant time = Instant.ofEpochMilli(value.getTimestampInMs()); + long minutesAddon = Utils.getInt(value); + time.plus(minutesAddon, ChronoUnit.MINUTES); + state = Utils.getEndOfChargeTime(time.toEpochMilli(), minutesAddon); + if (Locale.US.getCountry().equals(Utils.getCountry())) { + observer = new UOMObserver(UOMObserver.TIME_US); + } else { + observer = new UOMObserver(UOMObserver.TIME_ROW); + } + } + return new ChannelStateMap(ch[0], ch[1], state, observer); + + // DateTime - last Update + case MB_KEY_TIRE_PRESS_MEAS_TIMESTAMP: + if (Utils.isNil(value)) { + state = UnDefType.UNDEF; + } else { + state = Utils.getDateTimeType(value.getTimestampInMs()); + } + if (Locale.US.getCountry().equals(Utils.getCountry())) { + observer = new UOMObserver(UOMObserver.TIME_US); + } else { + observer = new UOMObserver(UOMObserver.TIME_ROW); + } + return new ChannelStateMap(ch[0], ch[1], state, observer); + + // Percentages + case MB_KEY_SOC: + case MB_KEY_TANKLEVELPERCENT: + double level = Utils.getDouble(value); + state = QuantityType.valueOf(level, Units.PERCENT); + return new ChannelStateMap(ch[0], ch[1], state); + + // Contacts + case MB_KEY_DOORSTATUSFRONTRIGHT: + case MB_KEY_DOORSTATUSFRONTLEFT: + case MB_KEY_DOORSTATUSREARRIGHT: + case MB_KEY_DOORSTATUSREARLEFT: + case MB_KEY_DECKLIDSTATUS: + case MB_KEY_ENGINE_HOOD_STATUS: + if (Utils.isNil(value)) { + state = UnDefType.UNDEF; + } else { + state = getContact(value.getBoolValue()); + } + return new ChannelStateMap(ch[0], ch[1], state); + + // Number Status + case MB_KEY_DOOR_LOCK_STATUS_OVERALL: + case MB_KEY_WINDOW_STATUS_OVERALL: + case MB_KEY_DOOR_STATUS_OVERALL: + case MB_KEY_IGNITIONSTATE: + case MB_KEY_SUNROOFSTATUS: + case MB_KEY_SUNROOF_STATUS_FRONT_BLIND: + case MB_KEY_SUNROOF_STATUS_REAR_BLIND: + case MB_KEY_ROOFTOPSTATUS: + case MB_KEY_WINDOWSTATUSFRONTLEFT: + case MB_KEY_WINDOWSTATUSFRONTRIGHT: + case MB_KEY_WINDOWSTATUSREARLEFT: + case MB_KEY_WINDOWSTATUSREARRIGHT: + case MB_KEY_WINDOW_STATUS_REAR_RIGHT_BLIND: + case MB_KEY_WINDOW_STATUS_REAR_LEFT_BLIND: + case MB_KEY_WINDOW_STATUS_REAR_BLIND: + case MB_KEY_FLIP_WINDOW_STATUS: + case MB_KEY_STARTER_BATTERY_STATE: + case MB_KEY_TIREWARNINGSRDK: + case MB_KEY_SERVICEINTERVALDAYS: + case MB_KEY_CHARGE_FLAP_DC_STATUS: + case MB_KEY_CHARGE_COUPLER_AC_STATUS: + case MB_KEY_CHARGE_COUPLER_DC_STATUS: + case MB_KEY_CHARGE_COUPLER_DC_LOCK_STATUS: + case MB_KEY_TIRE_SENSOR_AVAILABLE: + int stateNumberInteger = Utils.getInt(value); + if (stateNumberInteger < 0) { + state = UnDefType.UNDEF; + } else { + state = new DecimalType(stateNumberInteger); + } + return new ChannelStateMap(ch[0], ch[1], state); + + case MB_KEY_TIRE_MARKER_FRONT_RIGHT: + case MB_KEY_TIRE_MARKER_FRONT_LEFT: + case MB_KEY_TIRE_MARKER_REAR_RIGHT: + case MB_KEY_TIRE_MARKER_REAR_LEFT: + double stateNumberDouble = Utils.getDouble(value); + if (stateNumberDouble < 0) { + state = UnDefType.UNDEF; + } else { + state = new DecimalType(stateNumberDouble); + } + return new ChannelStateMap(ch[0], ch[1], state); + + // Switches + case MB_KEY_PARKBRAKESTATUS: + case MB_KEY_PRECOND_NOW: + case MB_KEY_PRECOND_SEAT_FRONT_RIGHT: + case MB_KEY_PRECOND_SEAT_FRONT_LEFT: + case MB_KEY_PRECOND_SEAT_REAR_RIGHT: + case MB_KEY_PRECOND_SEAT_REAR_LEFT: + case MB_KEY_WARNINGBRAKEFLUID: + case MB_KEY_WARNINGBRAKELININGWEAR: + case MB_KEY_WARNINGWASHWATER: + case MB_KEY_WARNINGCOOLANTLEVELLOW: + case MB_KEY_WARNINGENGINELIGHT: + case MB_KEY_CHARGINGACTIVE: + if (Utils.isNil(value)) { + state = UnDefType.UNDEF; + } else { + if (value.hasBoolValue()) { + state = OnOffType.from(value.getBoolValue()); + } else { + state = UnDefType.UNDEF; + } + } + return new ChannelStateMap(ch[0], ch[1], state); + + // Switches - lock values with reversed boolean interpretation + case MB_KEY_DOORLOCKSTATUSFRONTRIGHT: + case MB_KEY_DOORLOCKSTATUSFRONTLEFT: + case MB_KEY_DOORLOCKSTATUSREARRIGHT: + case MB_KEY_DOORLOCKSTATUSREARLEFT: + case MB_KEY_DOORLOCKSTATUSDECKLID: + case MB_KEY_DOORLOCKSTATUSGAS: + if (Utils.isNil(value)) { + state = UnDefType.UNDEF; + } else { + // sad but true - false means locked + state = OnOffType.from(!value.getBoolValue()); + } + return new ChannelStateMap(ch[0], ch[1], state); + + // Angle + case MB_KEY_POSITION_HEADING: + double heading = Utils.getDouble(value); + if (heading < 0) { + state = UnDefType.UNDEF; + } else { + state = QuantityType.valueOf(heading, Units.DEGREE_ANGLE); + } + return new ChannelStateMap(ch[0], ch[1], state); + + // tires + case MB_KEY_TIREPRESSURE_FRONT_LEFT: + case MB_KEY_TIREPRESSURE_FRONT_RIGHT: + case MB_KEY_TIREPRESSURE_REAR_LEFT: + case MB_KEY_TIREPRESSURE_REAR_RIGHT: + Unit pressureUnit = defaultPressureUnit; + if (value.hasPressureUnit()) { + observer = new UOMObserver(value.getPressureUnit().toString()); + Unit queryUnit = observer.getUnit(); + if (queryUnit != null) { + pressureUnit = queryUnit; + } else { + LOGGER.trace("No Unit found for {} - take default ", key); + } + } + double pressure = Utils.getDouble(value); + state = QuantityType.valueOf(pressure, pressureUnit); + return new ChannelStateMap(ch[0], ch[1], state, observer); + default: + break; } - } else { - LOGGER.debug("More than one key found {}", s); } return INVALID_MAP; } - private static long getTimestamp(JSONObject jo) { - if (jo.has(TIMESTAMP)) { - return jo.getLong(TIMESTAMP); - } - return -1; - } - - private static State getOnOffType(JSONObject jo) { - if (jo.has(VALUE)) { - String value = jo.get(VALUE).toString(); - boolean b = Boolean.valueOf(value); - return OnOffType.from(b); + private static State getContact(boolean b) { + if (!b) { + return OpenClosedType.CLOSED; } else { - LOGGER.warn("JSONObject contains no value {}", jo); - return UnDefType.UNDEF; - } - } - - private static State getOnOffTypeLock(JSONObject jo) { - if (jo.has(VALUE)) { - String value = jo.get(VALUE).toString(); - boolean b = Boolean.valueOf(value); - // Yes, false is locked and true unlocked - // https://developer.mercedes-benz.com/products/vehicle_lock_status/specifications/vehicle_lock_status_api - return OnOffType.from(!b); - } else { - LOGGER.warn("JSONObject contains no value {}", jo); - return UnDefType.UNDEF; - } - } - - private static State getAngle(JSONObject jo) { - if (jo.has(VALUE)) { - String value = jo.get(VALUE).toString(); - return QuantityType.valueOf(Double.valueOf(value), Units.DEGREE_ANGLE); - } else { - LOGGER.warn("JSONObject contains no value {}", jo); - return UnDefType.UNDEF; - } - } - - private static State getDecimal(JSONObject jo) { - if (jo.has(VALUE)) { - String value = jo.get(VALUE).toString(); - return DecimalType.valueOf(value); - } else { - LOGGER.warn("JSONObject contains no value {}", jo); - return UnDefType.UNDEF; - } - } - - private static State getContact(JSONObject jo) { - if (jo.has(VALUE)) { - String value = jo.get(VALUE).toString(); - boolean b = Boolean.valueOf(value); - if (!b) { - return OpenClosedType.CLOSED; - } else { - return OpenClosedType.OPEN; - } - } else { - LOGGER.warn("JSONObject contains no value {}", jo); - return UnDefType.UNDEF; - } - } - - private static State getKilometers(JSONObject jo) { - if (jo.has(VALUE)) { - String value = jo.get(VALUE).toString(); - return QuantityType.valueOf(Integer.valueOf(value), KILOMETRE_UNIT); - } else { - LOGGER.warn("JSONObject contains no value {}", jo); - return UnDefType.UNDEF; - } - } - - private static State getPercentage(JSONObject jo) { - if (jo.has(VALUE)) { - String value = jo.get(VALUE).toString(); - return QuantityType.valueOf(Integer.valueOf(value), Units.PERCENT); - } else { - LOGGER.warn("JSONObject contains no value {}", jo); - return UnDefType.UNDEF; + return OpenClosedType.OPEN; } } @@ -208,30 +345,93 @@ public class Mapper { * Mapping of json id towards channel group and id */ private static void init() { - CHANNELS.put("odo", new String[] { "mileage", GROUP_RANGE }); - CHANNELS.put("rangeelectric", new String[] { "range-electric", GROUP_RANGE }); - CHANNELS.put("soc", new String[] { "soc", GROUP_RANGE }); - CHANNELS.put("rangeliquid", new String[] { "range-fuel", GROUP_RANGE }); - CHANNELS.put("tanklevelpercent", new String[] { "fuel-level", GROUP_RANGE }); - CHANNELS.put("decklidstatus", new String[] { "deck-lid", GROUP_DOORS }); - CHANNELS.put("doorstatusfrontleft", new String[] { "driver-front", GROUP_DOORS }); - CHANNELS.put("doorstatusfrontright", new String[] { "passenger-front", GROUP_DOORS }); - CHANNELS.put("doorstatusrearleft", new String[] { "driver-rear", GROUP_DOORS }); - CHANNELS.put("doorstatusrearright", new String[] { "passenger-rear", GROUP_DOORS }); - CHANNELS.put("interiorLightsFront", new String[] { "interior-front", GROUP_LIGHTS }); - CHANNELS.put("interiorLightsRear", new String[] { "interior-rear", GROUP_LIGHTS }); - CHANNELS.put("lightswitchposition", new String[] { "light-switch", GROUP_LIGHTS }); - CHANNELS.put("readingLampFrontLeft", new String[] { "reading-left", GROUP_LIGHTS }); - CHANNELS.put("readingLampFrontRight", new String[] { "reading-right", GROUP_LIGHTS }); - CHANNELS.put("rooftopstatus", new String[] { "rooftop", GROUP_DOORS }); - CHANNELS.put("sunroofstatus", new String[] { "sunroof", GROUP_DOORS }); - CHANNELS.put("windowstatusfrontleft", new String[] { "driver-front", GROUP_WINDOWS }); - CHANNELS.put("windowstatusfrontright", new String[] { "passenger-front", GROUP_WINDOWS }); - CHANNELS.put("windowstatusrearleft", new String[] { "driver-rear", GROUP_WINDOWS }); - CHANNELS.put("windowstatusrearright", new String[] { "passenger-rear", GROUP_WINDOWS }); - CHANNELS.put("doorlockstatusvehicle", new String[] { "doors", GROUP_LOCK }); - CHANNELS.put("doorlockstatusdecklid", new String[] { "deck-lid", GROUP_LOCK }); - CHANNELS.put("doorlockstatusgas", new String[] { "flap", GROUP_LOCK }); - CHANNELS.put("positionHeading", new String[] { "heading", GROUP_LOCATION }); + CHANNELS.put(MB_KEY_DOOR_LOCK_STATUS_OVERALL, new String[] { OH_CHANNEL_LOCK, GROUP_VEHICLE }); + CHANNELS.put(MB_KEY_WINDOW_STATUS_OVERALL, new String[] { OH_CHANNEL_WINDOWS, GROUP_VEHICLE }); + CHANNELS.put(MB_KEY_DOOR_STATUS_OVERALL, new String[] { OH_CHANNEL_DOOR_STATUS, GROUP_VEHICLE }); + CHANNELS.put(MB_KEY_IGNITIONSTATE, new String[] { OH_CHANNEL_IGNITION, GROUP_VEHICLE }); + CHANNELS.put(MB_KEY_PARKBRAKESTATUS, new String[] { OH_CHANNEL_PARK_BRAKE, GROUP_VEHICLE }); + + CHANNELS.put(MB_KEY_DOORSTATUSFRONTRIGHT, new String[] { OH_CHANNEL_FRONT_RIGHT, GROUP_DOORS }); + CHANNELS.put(MB_KEY_DOORSTATUSFRONTLEFT, new String[] { OH_CHANNEL_FRONT_LEFT, GROUP_DOORS }); + CHANNELS.put(MB_KEY_DOORSTATUSREARRIGHT, new String[] { OH_CHANNEL_REAR_RIGHT, GROUP_DOORS }); + CHANNELS.put(MB_KEY_DOORSTATUSREARLEFT, new String[] { OH_CHANNEL_REAR_LEFT, GROUP_DOORS }); + CHANNELS.put(MB_KEY_DECKLIDSTATUS, new String[] { OH_CHANNEL_DECK_LID, GROUP_DOORS }); + CHANNELS.put(MB_KEY_ENGINE_HOOD_STATUS, new String[] { OH_CHANNEL_ENGINE_HOOD, GROUP_DOORS }); + CHANNELS.put(MB_KEY_SUNROOFSTATUS, new String[] { OH_CHANNEL_SUNROOF, GROUP_DOORS }); + CHANNELS.put(MB_KEY_SUNROOF_STATUS_FRONT_BLIND, new String[] { OH_CHANNEL_SUNROOF_FRONT_BLIND, GROUP_DOORS }); + CHANNELS.put(MB_KEY_SUNROOF_STATUS_REAR_BLIND, new String[] { OH_CHANNEL_SUNROOF_REAR_BLIND, GROUP_DOORS }); + CHANNELS.put(MB_KEY_ROOFTOPSTATUS, new String[] { OH_CHANNEL_ROOFTOP, GROUP_DOORS }); + + CHANNELS.put(MB_KEY_DOORLOCKSTATUSFRONTRIGHT, new String[] { OH_CHANNEL_FRONT_RIGHT, GROUP_LOCK }); + CHANNELS.put(MB_KEY_DOORLOCKSTATUSFRONTLEFT, new String[] { OH_CHANNEL_FRONT_LEFT, GROUP_LOCK }); + CHANNELS.put(MB_KEY_DOORLOCKSTATUSREARRIGHT, new String[] { OH_CHANNEL_REAR_RIGHT, GROUP_LOCK }); + CHANNELS.put(MB_KEY_DOORLOCKSTATUSREARLEFT, new String[] { OH_CHANNEL_REAR_LEFT, GROUP_LOCK }); + CHANNELS.put(MB_KEY_DOORLOCKSTATUSDECKLID, new String[] { OH_CHANNEL_DECK_LID, GROUP_LOCK }); + CHANNELS.put(MB_KEY_DOORLOCKSTATUSGAS, new String[] { OH_CHANNEL_GAS_FLAP, GROUP_LOCK }); + + CHANNELS.put(MB_KEY_WINDOWSTATUSFRONTLEFT, new String[] { OH_CHANNEL_FRONT_LEFT, GROUP_WINDOWS }); + CHANNELS.put(MB_KEY_WINDOWSTATUSFRONTRIGHT, new String[] { OH_CHANNEL_FRONT_RIGHT, GROUP_WINDOWS }); + CHANNELS.put(MB_KEY_WINDOWSTATUSREARLEFT, new String[] { OH_CHANNEL_REAR_LEFT, GROUP_WINDOWS }); + CHANNELS.put(MB_KEY_WINDOWSTATUSREARRIGHT, new String[] { OH_CHANNEL_REAR_RIGHT, GROUP_WINDOWS }); + CHANNELS.put(MB_KEY_WINDOW_STATUS_REAR_RIGHT_BLIND, + new String[] { OH_CHANNEL_REAR_RIGHT_BLIND, GROUP_WINDOWS }); + CHANNELS.put(MB_KEY_WINDOW_STATUS_REAR_LEFT_BLIND, new String[] { OH_CHANNEL_REAR_LEFT_BLIND, GROUP_WINDOWS }); + CHANNELS.put(MB_KEY_WINDOW_STATUS_REAR_BLIND, new String[] { OH_CHANNEL_REAR_BLIND, GROUP_WINDOWS }); + CHANNELS.put(MB_KEY_FLIP_WINDOW_STATUS, new String[] { OH_CHANNEL_FLIP_WINDOW, GROUP_WINDOWS }); + + CHANNELS.put(MB_KEY_PRECOND_NOW, new String[] { OH_CHANNEL_ACTIVE, GROUP_HVAC }); + CHANNELS.put(MB_KEY_PRECOND_SEAT_FRONT_RIGHT, new String[] { OH_CHANNEL_FRONT_RIGHT, GROUP_HVAC }); + CHANNELS.put(MB_KEY_PRECOND_SEAT_FRONT_LEFT, new String[] { OH_CHANNEL_FRONT_LEFT, GROUP_HVAC }); + CHANNELS.put(MB_KEY_PRECOND_SEAT_REAR_RIGHT, new String[] { OH_CHANNEL_REAR_RIGHT, GROUP_HVAC }); + CHANNELS.put(MB_KEY_PRECOND_SEAT_REAR_LEFT, new String[] { OH_CHANNEL_REAR_LEFT, GROUP_HVAC }); + // temperaturePoints - special handling: sets zone & temperature + + CHANNELS.put(MB_KEY_STARTER_BATTERY_STATE, new String[] { OH_CHANNEL_STARTER_BATTERY, GROUP_SERVICE }); + CHANNELS.put(MB_KEY_WARNINGBRAKEFLUID, new String[] { OH_CHANNEL_BRAKE_FLUID, GROUP_SERVICE }); + CHANNELS.put(MB_KEY_WARNINGWASHWATER, new String[] { OH_CHANNEL_WASH_WATER, GROUP_SERVICE }); + CHANNELS.put(MB_KEY_WARNINGBRAKELININGWEAR, new String[] { OH_CHANNEL_BRAKE_LINING_WEAR, GROUP_SERVICE }); + CHANNELS.put(MB_KEY_WARNINGCOOLANTLEVELLOW, new String[] { OH_CHANNEL_COOLANT_FLUID, GROUP_SERVICE }); + CHANNELS.put(MB_KEY_WARNINGENGINELIGHT, new String[] { OH_CHANNEL_ENGINE, GROUP_SERVICE }); + CHANNELS.put(MB_KEY_TIREWARNINGSRDK, new String[] { OH_CHANNEL_TIRES_RDK, GROUP_SERVICE }); + CHANNELS.put(MB_KEY_SERVICEINTERVALDAYS, new String[] { OH_CHANNEL_SERVICE_DAYS, GROUP_SERVICE }); + + CHANNELS.put(MB_KEY_ODO, new String[] { OH_CHANNEL_MILEAGE, GROUP_RANGE }); + CHANNELS.put(MB_KEY_RANGEELECTRIC, new String[] { OH_CHANNEL_RANGE_ELECTRIC, GROUP_RANGE }); + CHANNELS.put(MB_KEY_SOC, new String[] { MB_KEY_SOC, GROUP_RANGE }); + CHANNELS.put(MB_KEY_RANGELIQUID, new String[] { OH_CHANNEL_RANGE_FUEL, GROUP_RANGE }); + CHANNELS.put(MB_KEY_OVERALL_RANGE, new String[] { OH_CHANNEL_RANGE_HYBRID, GROUP_RANGE }); + CHANNELS.put(MB_KEY_TANKLEVELPERCENT, new String[] { OH_CHANNEL_FUEL_LEVEL, GROUP_RANGE }); + + CHANNELS.put(MB_KEY_CHARGE_FLAP_DC_STATUS, new String[] { OH_CHANNEL_CHARGE_FLAP, GROUP_CHARGE }); + CHANNELS.put(MB_KEY_CHARGE_COUPLER_AC_STATUS, new String[] { OH_CHANNEL_COUPLER_AC, GROUP_CHARGE }); + CHANNELS.put(MB_KEY_CHARGE_COUPLER_DC_STATUS, new String[] { OH_CHANNEL_COUPLER_DC, GROUP_CHARGE }); + CHANNELS.put(MB_KEY_CHARGE_COUPLER_DC_LOCK_STATUS, new String[] { OH_CHANNEL_COUPLER_LOCK, GROUP_CHARGE }); + CHANNELS.put(MB_KEY_CHARGINGACTIVE, new String[] { OH_CHANNEL_ACTIVE, GROUP_CHARGE }); + CHANNELS.put(MB_KEY_CHARGING_POWER, new String[] { OH_CHANNEL_POWER, GROUP_CHARGE }); + CHANNELS.put(MB_KEY_ENDOFCHARGETIME, new String[] { OH_CHANNEL_END_TIME, GROUP_CHARGE }); + + CHANNELS.put(MB_KEY_POSITION_HEADING, new String[] { OH_CHANNEL_HEADING, GROUP_POSITION }); + + CHANNELS.put(MB_KEY_DISTANCE_START, new String[] { OH_CHANNEL_DISTANCE, GROUP_TRIP }); + CHANNELS.put(MB_KEY_DRIVEN_TIME_START, new String[] { OH_CHANNEL_TIME, GROUP_TRIP }); + CHANNELS.put(MB_KEY_AVERAGE_SPEED_START, new String[] { OH_CHANNEL_AVG_SPEED, GROUP_TRIP }); + CHANNELS.put(MB_KEY_ELECTRICCONSUMPTIONSTART, new String[] { OH_CHANNEL_CONS_EV, GROUP_TRIP }); + CHANNELS.put(MB_KEY_LIQUIDCONSUMPTIONSTART, new String[] { OH_CHANNEL_CONS_CONV, GROUP_TRIP }); + CHANNELS.put(MB_KEY_DISTANCE_RESET, new String[] { OH_CHANNEL_DISTANCE_RESET, GROUP_TRIP }); + CHANNELS.put(MB_KEY_DRIVEN_TIME_RESET, new String[] { OH_CHANNEL_TIME_RESET, GROUP_TRIP }); + CHANNELS.put(MB_KEY_AVERAGE_SPEED_RESET, new String[] { OH_CHANNEL_AVG_SPEED_RESET, GROUP_TRIP }); + CHANNELS.put(MB_KEY_ELECTRICCONSUMPTIONRESET, new String[] { OH_CHANNEL_CONS_EV_RESET, GROUP_TRIP }); + CHANNELS.put(MB_KEY_LIQUIDCONSUMPTIONRESET, new String[] { OH_CHANNEL_CONS_CONV_RESET, GROUP_TRIP }); + + CHANNELS.put(MB_KEY_TIREPRESSURE_REAR_RIGHT, new String[] { OH_CHANNEL_PRESSURE_REAR_RIGHT, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIREPRESSURE_FRONT_RIGHT, new String[] { OH_CHANNEL_PRESSURE_FRONT_RIGHT, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIREPRESSURE_REAR_LEFT, new String[] { OH_CHANNEL_PRESSURE_REAR_LEFT, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIREPRESSURE_FRONT_LEFT, new String[] { OH_CHANNEL_PRESSURE_FRONT_LEFT, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIRE_MARKER_FRONT_RIGHT, new String[] { OH_CHANNEL_MARKER_REAR_RIGHT, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIRE_MARKER_FRONT_LEFT, new String[] { OH_CHANNEL_MARKER_FRONT_RIGHT, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIRE_MARKER_REAR_RIGHT, new String[] { OH_CHANNEL_MARKER_REAR_LEFT, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIRE_MARKER_REAR_LEFT, new String[] { OH_CHANNEL_MARKER_FRONT_LEFT, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIRE_SENSOR_AVAILABLE, new String[] { OH_CHANNEL_SENSOR_AVAILABLE, GROUP_TIRES }); + CHANNELS.put(MB_KEY_TIRE_PRESS_MEAS_TIMESTAMP, new String[] { OH_CHANNEL_LAST_UPDATE, GROUP_TIRES }); } } diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/UOMObserver.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/UOMObserver.java new file mode 100644 index 00000000000..a8091f02be6 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/UOMObserver.java @@ -0,0 +1,135 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.utils; + +import java.util.HashMap; +import java.util.Map; + +import javax.measure.Unit; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.core.library.unit.ImperialUnits; +import org.openhab.core.library.unit.SIUnits; +import org.openhab.core.library.unit.Units; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * {@link UOMObserver} responsible to identify Unit and StatePattern for a Mercedes VehicleAttribute + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class UOMObserver { + // Values delivered by Mercedes API + public static final String LENGTH_KM_UNIT = "KILOMETERS"; + public static final String LENGTH_MILES_UNIT = "MILES"; + public static final String SPEED_KM_UNIT = "KM_PER_HOUR"; + public static final String SPEED_MILES_UNIT = "M_PER_HOUR"; + public static final String CELSIUS_UNIT = "CELSIUS"; + public static final String FAHRENHEIT_UNIT = "FAHRENHEIT"; + public static final String BAR_UNIT = "BAR"; + public static final String PSI_UNIT = "PSI"; + public static final String KPA_UNIT = "KPA"; + public static final String CONSUMPTION_ELECTRIC_KM = "KM_PER_KWH"; + public static final String CONSUMPTION_ELECTRIC_MI = "M_PER_KWH"; + public static final String CONSUMPTION_ELECTRIC_100KM = "KWH_PER_100KM"; + public static final String CONSUMPTION_ELECTRIC_100MI = "KWH_PER_100MI"; + public static final String CONSUMPTION_LIQUID_100KM = "LITER_PER_100KM"; + public static final String CONSUMPTION_LIQUID_KM_PER_LITER = "KM_PER_LITER"; + public static final String CONSUMPTION_LIQUID_MPG_UK = "MPG_UK"; + public static final String CONSUMPTION_LIQUID_MPG_US = "MPG_US"; + public static final String CONSUMPTION_LIQUID_MI = "MPGE"; + public static final String CONSUMPTION_GAS_100KM = "KG_PER_100KM"; + public static final String TIME_US = "TIME_US"; + public static final String TIME_ROW = "TIME_ROW"; + + private static final Map PATTERN_MAP = new HashMap<>(); + private static final Map> UNIT_MAP = new HashMap<>(); + + private String label = Constants.NOT_SET; + + private final Logger logger = LoggerFactory.getLogger(UOMObserver.class); + + public UOMObserver(String unitLabel) { + if (PATTERN_MAP.isEmpty()) { + PATTERN_MAP.put(LENGTH_KM_UNIT, "%.1f km"); + PATTERN_MAP.put(LENGTH_MILES_UNIT, "%.1f mi"); + PATTERN_MAP.put(SPEED_KM_UNIT, "%.0f km/h"); + PATTERN_MAP.put(SPEED_MILES_UNIT, "%.0f mph"); + PATTERN_MAP.put(CELSIUS_UNIT, "%.1f °C"); + PATTERN_MAP.put(FAHRENHEIT_UNIT, "%.0f °F"); + PATTERN_MAP.put(BAR_UNIT, "%.1f bar"); + PATTERN_MAP.put(KPA_UNIT, "%.1f kPa"); + PATTERN_MAP.put(PSI_UNIT, "%.1f psi"); + PATTERN_MAP.put(CONSUMPTION_ELECTRIC_KM, "km/kWh"); + PATTERN_MAP.put(CONSUMPTION_ELECTRIC_MI, "m/kWh"); + PATTERN_MAP.put(CONSUMPTION_ELECTRIC_100KM, "kWh/100km"); + PATTERN_MAP.put(CONSUMPTION_ELECTRIC_100MI, "kWh/100mi"); + PATTERN_MAP.put(CONSUMPTION_LIQUID_100KM, "l/100km"); + PATTERN_MAP.put(CONSUMPTION_LIQUID_KM_PER_LITER, "km/l"); + PATTERN_MAP.put(CONSUMPTION_LIQUID_MPG_UK, "mi/g"); + PATTERN_MAP.put(CONSUMPTION_LIQUID_MPG_US, "mi/g"); + PATTERN_MAP.put(CONSUMPTION_LIQUID_MI, "mpge"); + PATTERN_MAP.put(TIME_US, "%1$tA, %1$td.%1$tm. %1$tI:%1$tM %1$Tp"); + PATTERN_MAP.put(TIME_ROW, "%1$tA, %1$td.%1$tm. %1$tH:%1$tM"); + + UNIT_MAP.put(LENGTH_KM_UNIT, Constants.KILOMETRE_UNIT); + UNIT_MAP.put(LENGTH_MILES_UNIT, ImperialUnits.MILE); + UNIT_MAP.put(SPEED_KM_UNIT, SIUnits.KILOMETRE_PER_HOUR); + UNIT_MAP.put(SPEED_MILES_UNIT, ImperialUnits.MILES_PER_HOUR); + UNIT_MAP.put(CELSIUS_UNIT, SIUnits.CELSIUS); + UNIT_MAP.put(FAHRENHEIT_UNIT, ImperialUnits.FAHRENHEIT); + UNIT_MAP.put(BAR_UNIT, Units.BAR); + UNIT_MAP.put(KPA_UNIT, Constants.KPA_UNIT); + UNIT_MAP.put(PSI_UNIT, ImperialUnits.POUND_FORCE_SQUARE_INCH); + UNIT_MAP.put(CONSUMPTION_ELECTRIC_KM, Constants.KILOWATT_HOUR_UNIT); + UNIT_MAP.put(CONSUMPTION_ELECTRIC_MI, Constants.KILOWATT_HOUR_UNIT); + UNIT_MAP.put(CONSUMPTION_ELECTRIC_100KM, Constants.KILOWATT_HOUR_UNIT); + UNIT_MAP.put(CONSUMPTION_ELECTRIC_100MI, Constants.KILOWATT_HOUR_UNIT); + UNIT_MAP.put(CONSUMPTION_LIQUID_100KM, Units.LITRE); + UNIT_MAP.put(CONSUMPTION_LIQUID_MI, ImperialUnits.GALLON_LIQUID_US); + } + if (!PATTERN_MAP.containsKey(unitLabel)) { + logger.trace("No mapping found for {}", unitLabel); + } + label = unitLabel; + } + + public String getLabel() { + return label; + } + + @Nullable + public Unit getUnit() { + return UNIT_MAP.get(label); + } + + @Nullable + public String getPattern(String group, String channel) { + String pattern = PATTERN_MAP.get(label); + if (Constants.GROUP_RANGE.equals(group) && pattern != null) { + if ("home-distance".equals(channel)) { + return pattern.replace("1", "3"); + } + return pattern.replace("1", "0"); + } + return pattern; + } + + public boolean equals(UOMObserver compare) { + return label.equals(compare.getLabel()); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Utils.java b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Utils.java new file mode 100644 index 00000000000..3be8fecdd3a --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/java/org/openhab/binding/mercedesme/internal/utils/Utils.java @@ -0,0 +1,718 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.utils; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.time.Duration; +import java.time.Instant; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.util.ArrayList; +import java.util.Base64; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.TreeMap; + +import javax.measure.Unit; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.json.JSONArray; +import org.json.JSONObject; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.MercedesMeHandlerFactory; +import org.openhab.binding.mercedesme.internal.server.AuthService; +import org.openhab.core.auth.client.oauth2.AccessTokenResponse; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.i18n.TimeZoneProvider; +import org.openhab.core.library.types.DateTimeType; +import org.openhab.core.library.unit.ImperialUnits; +import org.openhab.core.library.unit.SIUnits; +import org.openhab.core.thing.ThingTypeUID; +import org.openhab.core.types.CommandOption; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.daimler.mbcarkit.proto.VehicleCommands.ChargeProgramConfigure.ChargeProgram; +import com.daimler.mbcarkit.proto.VehicleCommands.TemperatureConfigure.TemperaturePoint.Zone; +import com.daimler.mbcarkit.proto.VehicleEvents; +import com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters; +import com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue; +import com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue; +import com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate; +import com.daimler.mbcarkit.proto.VehicleEvents.VVRTimeProfile; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus; +import com.daimler.mbcarkit.proto.VehicleEvents.WeeklyProfileValue; +import com.daimler.mbcarkit.proto.VehicleEvents.WeeklySetting; +import com.daimler.mbcarkit.proto.VehicleEvents.WeeklySettingsHeadUnitValue; +import com.google.gson.Gson; +import com.google.protobuf.Descriptors.FieldDescriptor; + +/** + * {@link Utils} provides several helper functions used from different classes + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class Utils { + private static final Logger LOGGER = LoggerFactory.getLogger(Utils.class); + private static final List PORTS = new ArrayList<>(); + private static final List FAHRENHEIT_COMMAND_OPTIONS = new ArrayList<>(); + private static final List CELSIUS_COMMAND_OPTIONS = new ArrayList<>(); + + private static final int R = 6371; // Radius of the earth + private static int port = 8090; + private static TimeZoneProvider timeZoneProvider = new TimeZoneProvider() { + @Override + public ZoneId getTimeZone() { + return ZoneId.systemDefault(); + } + }; + private static LocaleProvider localeProvider = new LocaleProvider() { + + @Override + public Locale getLocale() { + return Locale.getDefault(); + } + }; + public static final Gson GSON = new Gson(); + public static final Map ZONE_HASHMAP = new HashMap<>(); + public static final Map PROGRAM_HASHMAP = new HashMap<>(); + + public static void initialize(TimeZoneProvider tzp, LocaleProvider lp) { + timeZoneProvider = tzp; + localeProvider = lp; + } + + /** + * Getting openHAB DateTimeType from given milliseconds according to configured TimeZone + * + * @param ms - milliseconds in epoch milli + * @return openHAB DateTimeType according to configured TimeZone + */ + public static DateTimeType getDateTimeType(long ms) { + Instant timestamp = Instant.ofEpochMilli(ms); + return new DateTimeType(timestamp.atZone(timeZoneProvider.getTimeZone())); + } + + /** + * Calculates the DateTime of charge end according to given Mercedes parameters + * + * @param ms - current timestamp in milliseconds in epoch milli + * @param minutesAfterMidnight - minutes after midnight + * @return calculates the start of day from given in ms plus minutes given in minutesAfterMidnight + */ + public static DateTimeType getEndOfChargeTime(long ms, long minutesAfterMidnight) { + // get today midnight + Instant timestamp = Instant.ofEpochMilli(ms); + ZonedDateTime zdt = timestamp.atZone(timeZoneProvider.getTimeZone()); + ZonedDateTime endTime = zdt.withHour(0).withMinute(0).withSecond(0).plusMinutes(minutesAfterMidnight); + return new DateTimeType(endTime); + } + + /** + * Get free port without other Thread interference from other AccountHandlers + * + * @return number of free port + */ + public static synchronized int getFreePort() { + while (PORTS.contains(port)) { + port++; + } + PORTS.add(port); + return port; + } + + /** + * Register port for an AccountHandler + */ + public static synchronized void addPort(int portNr) { + if (PORTS.contains(portNr) && portNr != 99999) { + LOGGER.warn("Port {} already occupied", portNr); + } + PORTS.add(portNr); + } + + /** + * Unregister port for an AccountHandler + */ + public static synchronized void removePort(int portNr) { + PORTS.remove(Integer.valueOf(portNr)); + } + + public static String getCallbackAddress(String callbackIP, int callbackPort) { + return "http://" + callbackIP + Constants.COLON + callbackPort + Constants.CALLBACK_ENDPOINT; + } + + /** + * Calculate REST API server address according to region + * + * @param region - configured region + * @return base REST server address + */ + public static String getRestAPIServer(String region) { + switch (region) { + case Constants.REGION_APAC: + return Constants.REST_API_BASE_PA; + case Constants.REGION_CHINA: + return Constants.REST_API_BASE_CN; + case Constants.REGION_NORAM: + return Constants.REST_API_BASE_NA; + default: + return Constants.REST_API_BASE; + } + } + + /** + * Calculate Login API server address according to region + * + * @param region - configured region + * @return base login server address + */ + public static String getLoginServer(String region) { + switch (region) { + case Constants.REGION_APAC: + return Constants.LOGIN_BASE_URI_PA; + case Constants.REGION_CHINA: + return Constants.LOGIN_BASE_URI_CN; + case Constants.REGION_NORAM: + return Constants.LOGIN_BASE_URI_NA; + default: + return Constants.LOGIN_BASE_URI; + } + } + + /** + * Calculate websocket server address according to region + * + * @param region - configured region + * @return websocket base server address + */ + public static String getWebsocketServer(String region) { + switch (region) { + case Constants.REGION_APAC: + return Constants.WEBSOCKET_API_BASE_PA; + case Constants.REGION_CHINA: + return Constants.WEBSOCKET_API_BASE_CN; + case Constants.REGION_NORAM: + return Constants.WEBSOCKET_API_BASE_PA; + default: + return Constants.WEBSOCKET_API_BASE; + } + } + + /** + * Calculate application name according to region + * + * @param region - configured region + * @return application name as String + */ + public static String getApplication(String region) { + switch (region) { + case Constants.REGION_APAC: + return Constants.X_APPLICATIONNAME_AP; + case Constants.REGION_CHINA: + return Constants.X_APPLICATIONNAME_CN; + case Constants.REGION_NORAM: + return Constants.X_APPLICATIONNAME_US; + default: + return Constants.X_APPLICATIONNAME; + } + } + + /** + * Calculate application version according to region + * + * @param region - configured region + * @return application version as String + */ + public static String getRisApplicationVersion(String region) { + switch (region) { + case Constants.REGION_APAC: + return Constants.RIS_APPLICATION_VERSION_PA; + case Constants.REGION_CHINA: + return Constants.RIS_APPLICATION_VERSION_CN; + case Constants.REGION_NORAM: + return Constants.RIS_APPLICATION_VERSION_NA; + default: + return Constants.RIS_APPLICATION_VERSION; + } + } + + /** + * Calculate user agent according to region + * + * @param region - configured region + * @return user agent as String + */ + public static String getUserAgent(String region) { + switch (region) { + case Constants.REGION_APAC: + return Constants.WEBSOCKET_USER_AGENT_PA; + case Constants.REGION_CHINA: + return Constants.WEBSOCKET_USER_AGENT_CN; + default: + return Constants.WEBSOCKET_USER_AGENT; + } + } + + /** + * Calculate SDK version according to region + * + * @param region - configured region + * @return SDK version as String + */ + public static String getRisSDKVersion(String region) { + switch (region) { + case Constants.REGION_CHINA: + return Constants.RIS_SDK_VERSION_CN; + default: + return Constants.RIS_SDK_VERSION; + } + } + + /** + * Calculate authorization config URL as pre-configuration prior to authorization call + * + * @param region - configured region + * @return authorization config URL as String + */ + public static String getAuthConfigURL(String region) { + return getRestAPIServer(region) + "/v1/config"; + } + + /** + * Calculate login app id according to region + * + * @param region - configured region + * @return login app id as String + */ + public static String getLoginAppId(String region) { + switch (region) { + case Constants.REGION_CHINA: + return Constants.LOGIN_APP_ID_CN; + default: + return Constants.LOGIN_APP_ID; + } + } + + /** + * Calculate authorization URL for authorization call + * + * @param region - configured region + * @return authorization URL as String + */ + public static String getAuthURL(String region) { + return getRestAPIServer(region) + "/v1/login"; + } + + /** + * Calculate token URL for getting token + * + * @param region - configured region + * @return token URL as String + */ + public static String getTokenUrl(String region) { + return getLoginServer(region) + "/as/token.oauth2"; + } + + /** + * Decode String as Base64 from stored AccessTokenResponse + * + * @param token - Base64 String from storage + * @return AccessTokenResponse decoded from String, invalid token otherwise + */ + public static AccessTokenResponse fromString(String token) { + try { + byte[] data = Base64.getDecoder().decode(token); + ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(data)); + Object o = ois.readObject(); + ois.close(); + return (AccessTokenResponse) o; + } catch (IOException | ClassNotFoundException e) { + LOGGER.warn("Error converting string to token {}", e.getMessage()); + } + return AuthService.INVALID_TOKEN; + } + + /** + * Encode AccessTokenResponse as Base64 String for storage + * + * @param token - AccessTokenResponse to convert + */ + public static String toString(AccessTokenResponse token) { + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + oos.writeObject(token); + oos.close(); + return Base64.getEncoder().encodeToString(baos.toByteArray()); + } catch (IOException e) { + LOGGER.warn("Error converting token to string {}", e.getMessage()); + } + return Constants.NOT_SET; + } + + /** + * Combine vehicle data maps which is needed for partial updates. + * First take fullMap, then updates are taken from updateMap. + * + * @param fullMap - last present update of vehicle data + * @param updateMap - updates to override + * @return combined Map with updates taken into account + */ + @SuppressWarnings({ "rawtypes", "unchecked" }) + public static Map combineMaps(Map fullMap, Map updateMap) { + final Map combined = new TreeMap(); + fullMap.forEach((key, value) -> { + combined.put(key, value); + }); + updateMap.forEach((key, value) -> { + combined.put(key, value); + }); + return combined; + } + + /** + * Converts a protobuf update into JSON String + * + * @param protoUpdate - proto update + * @param uid - thing type uid for identification + * @return JSON as String + */ + @SuppressWarnings({ "unused", "null" }) + public static String proto2Json(VEPUpdate protoUpdate, ThingTypeUID uid) { + JSONObject protoJson = new JSONObject(); + Map m = protoUpdate.getAttributesMap(); + m.forEach((key, value) -> { + Map attMap = value.getAllFields(); + JSONObject attributesJson = getJsonObject(attMap); + + if (value.hasTemperaturePointsValue()) { + TemperaturePointsValue tpv = value.getTemperaturePointsValue(); + JSONArray tmpPoints = new JSONArray(); + List temperaturePointsList = tpv.getTemperaturePointsList(); + temperaturePointsList.forEach(point -> { + JSONObject tmpPoint = getJsonObject(point.getAllFields()); + tmpPoints.put(tmpPoint); + }); + JSONObject points = new JSONObject(); + points.put("temperature_points", tmpPoints); + attributesJson.put("temperature_points_value", points); + } else if (value.hasChargeProgramsValue()) { + ChargeProgramsValue cpv = value.getChargeProgramsValue(); + JSONArray chargeProgramArray = new JSONArray(); + List l = cpv.getChargeProgramParametersList(); + l.forEach(cpp -> { + chargeProgramArray.put(getJsonObject(cpp.getAllFields())); + }); + attributesJson.put("charge_programs_value", chargeProgramArray); + } else if (value.hasWeeklyProfileValue()) { + WeeklyProfileValue wpv = value.getWeeklyProfileValue(); + JSONObject weeklyProfiles = new JSONObject(); + List timeProfilesList = wpv.getTimeProfilesList(); + timeProfilesList.forEach(timeProfileProto -> { + JSONObject timeProfileJson = new JSONObject(); + JSONArray days = new JSONArray(timeProfileProto.getDaysList()); + timeProfileJson.put("days", days); + timeProfileJson.put("hour", timeProfileProto.getHour()); + timeProfileJson.put("minute", timeProfileProto.getMinute()); + timeProfileJson.put("active", timeProfileProto.getActive()); + timeProfileJson.put("applicationIdentifier", timeProfileProto.getApplicationIdentifier()); + weeklyProfiles.put(Integer.toString(timeProfileProto.getIdentifier()), timeProfileJson); + }); + attributesJson.put("weekly_profile_value", weeklyProfiles); + } else if (value.hasWeeklySettingsHeadUnitValue()) { + WeeklySettingsHeadUnitValue wshuv = value.getWeeklySettingsHeadUnitValue(); + List valList = wshuv.getWeeklySettingsList(); + JSONArray settingsJsonArray = new JSONArray(); + valList.forEach(weeklySettingProto -> { + JSONObject settings = new JSONObject(); + settings.put("day", weeklySettingProto.getDay()); + settings.put("minutes_since_midnight", weeklySettingProto.getMinutesSinceMidnight()); + settingsJsonArray.put(settings); + }); + attributesJson.put("weekly_settings_head_unit_value", settingsJsonArray); + } + + // check for errors - in fact JSONObject returns null in case of errors + if (attributesJson.toString() == null) { + LOGGER.trace("JSON conversion failed for Proto {}", key); + attributesJson = new JSONObject(); + attributesJson.put(key, attMap.toString()); + } + if (attributesJson.toString() == null) { + LOGGER.trace("JSON conversion failed for Map {}", key); + attributesJson = new JSONObject(); + attributesJson.put(key, "Not supported by binding"); + } + + // Anonymize position + if ("positionLat".equals(key)) { + attributesJson.put("double_value", 1.23); + } else if ("positionLong".equals(key)) { + attributesJson.put("double_value", 4.56); + } + protoJson.put(key, attributesJson); + }); + // finally put binding version in + JSONObject bindingInfo = new JSONObject(); + bindingInfo.put("version", Constants.BINDING_VERSION); + bindingInfo.put("vehicle", uid.getAsString()); + bindingInfo.put("oh-bundle", MercedesMeHandlerFactory.getVersion()); + protoJson.put("bindingInfo", bindingInfo); + return protoJson.toString(); + } + + /** + * Converts a proto Map with FieldDescriptor into a JSON Object + * + * @param attMap - proto attributes Map + * @return JSONObject with key value pairs + */ + public static JSONObject getJsonObject(Map attMap) { + JSONObject joa = new JSONObject(); + attMap.forEach((aKey, aValue) -> { + String[] bKey = aKey.toString().split("\\."); + if (bKey.length > 1) { + joa.put(bKey[bKey.length - 1], aValue); + } else { + joa.put(bKey[0], aValue.toString()); + } + }); + return joa; + } + + /** + * Calculate zone number from 3rdparty generated proto files + * + * @param zone - zone definition as String + * @return zone number for selection + */ + public static int getZoneNumber(String zone) { + if (ZONE_HASHMAP.isEmpty()) { + Zone[] zones = Zone.values(); + for (int i = 0; i < zones.length - 1; i++) { + ZONE_HASHMAP.put(zones[i].name(), zones[i].getNumber()); + } + } + Integer zoneNumber = ZONE_HASHMAP.get(zone); + if (zoneNumber != null) { + return zoneNumber; + } + return -1; + } + + /** + * Calculate charge program number from 3rdparty generated proto files + * + * @param program - charge program definition as String + * @return charge program number for selection + */ + public static int getChargeProgramNumber(String program) { + if (PROGRAM_HASHMAP.isEmpty()) { + ChargeProgram[] programs = ChargeProgram.values(); + for (int i = 0; i < programs.length - 1; i++) { + PROGRAM_HASHMAP.put(programs[i].name(), programs[i].getNumber()); + } + } + Integer programNumber = PROGRAM_HASHMAP.get(program); + if (programNumber != null) { + return programNumber; + } + return -1; + } + + /** + * Calculate duration String from given minutes + * + * @param durationMinutes - duration in minutes + * @return Sting in format days, hours and minutes + */ + public static String getDurationString(long durationMinutes) { + if (durationMinutes < 0) { + return "-1"; + } + Duration duration = Duration.ofMinutes(durationMinutes); + if (duration.toDaysPart() > 0) { + return String.format("%sd %sh %sm", duration.toDaysPart(), duration.toHoursPart(), + duration.toMinutesPart()); + } else if (duration.toHoursPart() > 0) { + return String.format("%sh %sm", duration.toHoursPart(), duration.toMinutesPart()); + } else { + return String.format("%sm", duration.toMinutesPart()); + } + } + + /** + * Get int from proto VehicleAttributeStatus + * + * @param value - proto value + * @return value as int, -1 otherwise + */ + public static int getInt(VehicleAttributeStatus value) { + return Double.valueOf(getDouble(value)).intValue(); + } + + /** + * Get double from proto VehicleAttributeStatus + * + * @param value - proto value + * @return value as double, -1 otherwise + */ + public static double getDouble(@Nullable VehicleAttributeStatus value) { + double ret = -1; + if (value != null) { + if (!isNil(value)) { + if (value.getDisplayValue() != null) { + if (value.getDisplayValue().strip().length() > 0) { + try { + return Double.valueOf(value.getDisplayValue()); + } catch (NumberFormatException nfe) { + LOGGER.trace("Cannot transform Display Value {} into Double", value.getDisplayValue()); + } + } + } + if (value.hasDoubleValue()) { + return value.getDoubleValue(); + } else if (value.hasIntValue()) { + return value.getIntValue(); + } + } + } + return ret; + } + + /** + * Checks proto VehicleAttributeStatus is nil + * + * @param value - proto value + * @return true if nil value is present, false otherwise + */ + public static boolean isNil(@Nullable VehicleAttributeStatus value) { + if (value != null) { + if (value.hasNilValue()) { + return value.getNilValue(); + } + } + return false; + } + + /** + * Get country code from configured LocaleProvider + * + * @return country code + */ + public static String getCountry() { + return localeProvider.getLocale().getCountry(); + } + + /** + * Calculate distance between two points in latitude and longitude taking + * into account height difference. If you are not interested in height + * difference pass 0.0. Uses Haversine method as its base. + * + * https://stackoverflow.com/questions/3694380/calculating-distance-between-two-points-using-latitude-longitude + * lat1, lon1 Start point lat2, lon2 End point el1 Start altitude in meters + * el2 End altitude in meters + * + * @returns Distance in Meters + */ + public static double distance(double lat1, double lat2, double lon1, double lon2, double el1, double el2) { + double latDistance = Math.toRadians(lat2 - lat1); + double lonDistance = Math.toRadians(lon2 - lon1); + double a = Math.sin(latDistance / 2) * Math.sin(latDistance / 2) + Math.cos(Math.toRadians(lat1)) + * Math.cos(Math.toRadians(lat2)) * Math.sin(lonDistance / 2) * Math.sin(lonDistance / 2); + double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + double distance = R * c * 1000; // convert to meters + double height = el1 - el2; + distance = Math.pow(distance, 2) + Math.pow(height, 2); + return Math.sqrt(distance); + } + + /** + * Calculates a list of CommandOptions for temperature settings which are also available in the Mercedes Me app + * + * @param unit - unit of temperature + * @return List of CommandOptions, empty if unit isn't supported + */ + public static List getTemperatureOptions(Unit unit) { + if (ImperialUnits.FAHRENHEIT.equals(unit)) { + if (FAHRENHEIT_COMMAND_OPTIONS.isEmpty()) { + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("60 °F", "60 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("61 °F", "61 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("62 °F", "62 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("63 °F", "63 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("64 °F", "64 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("65 °F", "65 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("66 °F", "66 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("67 °F", "67 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("68 °F", "68 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("69 °F", "69 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("70 °F", "70 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("71 °F", "71 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("72 °F", "72 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("73 °F", "73 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("74 °F", "74 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("75 °F", "75 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("76 °F", "76 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("77 °F", "77 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("78 °F", "78 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("79 °F", "79 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("80 °F", "80 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("81 °F", "81 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("82 °F", "82 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("83 °F", "83 °F")); + FAHRENHEIT_COMMAND_OPTIONS.add(new CommandOption("84 °F", "84 °F")); + } + return FAHRENHEIT_COMMAND_OPTIONS; + } else if (SIUnits.CELSIUS.equals(unit)) { + if (CELSIUS_COMMAND_OPTIONS.isEmpty()) { + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("16 °C", "16 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("16.5 °C", "16.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("17 °C", "17 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("17.5 °C", "17.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("18 °C", "18 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("18.5 °C", "18.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("19 °C", "19 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("19.5 °C", "19.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("20 °C", "20 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("20.5 °C", "20.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("21 °C", "21 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("21.5 °C", "21.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("22 °C", "22 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("22.5 °C", "22.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("23 °C", "23 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("23.5 °C", "23.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("24 °C", "24 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("24.5 °C", "24.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("25 °C", "25 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("25.5 °C", "25.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("26 °C", "26 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("26.5 °C", "26.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("27 °C", "27 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("27.5 °C", "27.5 °C")); + CELSIUS_COMMAND_OPTIONS.add(new CommandOption("28 °C", "28 °C")); + } + return CELSIUS_COMMAND_OPTIONS; + } else { + return new ArrayList(); + } + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/bev-config.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/bev-config.xml index 78529163386..a7b7f80d80e 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/bev-config.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/bev-config.xml @@ -8,50 +8,9 @@ - - - Data refresh rate for vehicle data - 5 - Battery capacity in kWh of vehicle - - - - Vehicle images provided with or without background - false - true - - - - Vehicle images in night conditions - false - true - - - - Vehicle images in 4:3 instead of 16:9 - false - true - - - - Vehicle images with open roof (only Cabriolet) - false - true - - - - Preferred Image Format - webp - true - - - - - - diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/bridge-config.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/bridge-config.xml index 30f6b2049fb..c73b7c5b011 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/bridge-config.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/bridge-config.xml @@ -5,42 +5,29 @@ xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0 https://openhab.org/schemas/config-description-1.0.0.xsd"> - - - Mercedes Benz Developer Client ID + + + EMail address for MercedesMe account + email - - - Mercedes Benz Developer Client Secret + + + + + + + + - - - Mercedes Benz Developer Image API Key + + + PIN for commands + password - - - Provides total Mileage - true - - - - Status of doors, windows lights - true - - - - Lock status of doors and trunk - true - - - - Tank level and range - true - - - - Electric charge and range - true + + + Refresh Interval in Minutes + 15 diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/conv-config.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/conv-config.xml index d4bc9869b33..c8e469e7017 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/conv-config.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/conv-config.xml @@ -8,50 +8,9 @@ - - - Data refresh rate for your vehicle data - 5 - Fuel capacity in liters of vehicle - - - - Vehicle images provided with or without background - false - true - - - - Vehicle images in night conditions - false - true - - - - Vehicle images in 4:3 instead of 16:9 - false - true - - - - Vehicle images with open roof (only Cabriolet) - false - true - - - - Preferred Image Format - webp - true - - - - - - diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/hybrid-config.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/hybrid-config.xml index 55415dd1c2d..0a2010522bc 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/hybrid-config.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/config/hybrid-config.xml @@ -8,11 +8,6 @@ - - - Data refresh rate for vehicle data - 5 - Battery capacity in kWh of vehicle @@ -21,41 +16,5 @@ Fuel capacity in liters of vehicle - - - - Vehicle images provided with or without background - false - true - - - - Vehicle images in night conditions - false - true - - - - Vehicle images in 4:3 instead of 16:9 - false - true - - - - Vehicle images with open roof (only Cabriolet) - false - true - - - - Preferred Image Format - webp - true - - - - - - diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/i18n/mercedesme.properties b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/i18n/mercedesme.properties index 6bb95a97a5a..1260417c915 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/i18n/mercedesme.properties +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/i18n/mercedesme.properties @@ -16,203 +16,300 @@ thing-type.mercedesme.hybrid.description = Conventional Fuel Vehicle with suppor # thing types config -thing-type.config.mercedesme.bev.background.label = Background Image -thing-type.config.mercedesme.bev.background.description = Vehicle images provided with or without background thing-type.config.mercedesme.bev.batteryCapacity.label = Battery Capacity -thing-type.config.mercedesme.bev.batteryCapacity.description = Battery capacity in kwh of vehicle -thing-type.config.mercedesme.bev.cropped.label = Cropped Image -thing-type.config.mercedesme.bev.cropped.description = Vehicle images in 4:3 instead of 16:9 -thing-type.config.mercedesme.bev.format.label = Image Format -thing-type.config.mercedesme.bev.format.description = Preferred Image Format -thing-type.config.mercedesme.bev.format.option.webp = webp -thing-type.config.mercedesme.bev.format.option.png = png -thing-type.config.mercedesme.bev.format.option.jpeg = jpeg -thing-type.config.mercedesme.bev.night.label = Night Image -thing-type.config.mercedesme.bev.night.description = Vehicle images in night conditions -thing-type.config.mercedesme.bev.refreshInterval.label = Refresh Interval -thing-type.config.mercedesme.bev.refreshInterval.description = Data refresh rate for vehicle data -thing-type.config.mercedesme.bev.roofOpen.label = Cabriolet Open Roof -thing-type.config.mercedesme.bev.roofOpen.description = Vehicle images with open roof (only Cabriolet) +thing-type.config.mercedesme.bev.batteryCapacity.description = Battery capacity in kWh of vehicle thing-type.config.mercedesme.bev.vin.label = Vehicle Identification Number thing-type.config.mercedesme.bridge.callbackIP.label = Callback IP Address thing-type.config.mercedesme.bridge.callbackIP.description = IP address for openHAB callback URL thing-type.config.mercedesme.bridge.callbackPort.label = Callback Port Number thing-type.config.mercedesme.bridge.callbackPort.description = Port Number for openHAB callback URL -thing-type.config.mercedesme.bridge.clientId.label = MB Developer Client ID -thing-type.config.mercedesme.bridge.clientId.description = Mercedes Benz Developer Client ID -thing-type.config.mercedesme.bridge.clientSecret.label = MB Developer Client Secret -thing-type.config.mercedesme.bridge.clientSecret.description = Mercedes Benz Developer Client Secret -thing-type.config.mercedesme.bridge.evScope.label = Electric Vehicle Status -thing-type.config.mercedesme.bridge.evScope.description = Electric charge and range -thing-type.config.mercedesme.bridge.fuelScope.label = Fuel Status -thing-type.config.mercedesme.bridge.fuelScope.description = Tank level and range -thing-type.config.mercedesme.bridge.imageApiKey.label = MB Developer Image API Key -thing-type.config.mercedesme.bridge.imageApiKey.description = Mercedes Benz Developer Image API Key -thing-type.config.mercedesme.bridge.lockScope.label = Vehicle Lock Status -thing-type.config.mercedesme.bridge.lockScope.description = Lock status of doors and trunk -thing-type.config.mercedesme.bridge.odoScope.label = PayAsYourDrive Insurance -thing-type.config.mercedesme.bridge.odoScope.description = Provides total Mileage -thing-type.config.mercedesme.bridge.vehicleScope.label = Vehicle Status -thing-type.config.mercedesme.bridge.vehicleScope.description = Status of doors, windows lights -thing-type.config.mercedesme.conv.background.label = Background Image -thing-type.config.mercedesme.conv.background.description = Vehicle images provided with or without background -thing-type.config.mercedesme.conv.cropped.label = Cropped Image -thing-type.config.mercedesme.conv.cropped.description = Vehicle images in 4:3 instead of 16:9 -thing-type.config.mercedesme.conv.format.label = Image Format -thing-type.config.mercedesme.conv.format.description = Preferred Image Format -thing-type.config.mercedesme.conv.format.option.webp = webp -thing-type.config.mercedesme.conv.format.option.png = png -thing-type.config.mercedesme.conv.format.option.jpeg = jpeg +thing-type.config.mercedesme.bridge.email.label = MercedesMe EMail +thing-type.config.mercedesme.bridge.email.description = EMail address for MercedesMe account +thing-type.config.mercedesme.bridge.pin.label = PIN +thing-type.config.mercedesme.bridge.pin.description = PIN for commands +thing-type.config.mercedesme.bridge.refreshInterval.label = Refresh Interval +thing-type.config.mercedesme.bridge.refreshInterval.description = Refresh Interval in Minutes +thing-type.config.mercedesme.bridge.region.label = Region +thing-type.config.mercedesme.bridge.region.option.EU = Europe +thing-type.config.mercedesme.bridge.region.option.NA = North America +thing-type.config.mercedesme.bridge.region.option.AP = Asia-Pacific +thing-type.config.mercedesme.bridge.region.option.CN = China thing-type.config.mercedesme.conv.fuelCapacity.label = Fuel Capacity thing-type.config.mercedesme.conv.fuelCapacity.description = Fuel capacity in liters of vehicle -thing-type.config.mercedesme.conv.night.label = Night Image -thing-type.config.mercedesme.conv.night.description = Vehicle images in night conditions -thing-type.config.mercedesme.conv.refreshInterval.label = Refresh Interval -thing-type.config.mercedesme.conv.refreshInterval.description = Data refresh rate for your vehicle data -thing-type.config.mercedesme.conv.roofOpen.label = Cabriolet Open Roof -thing-type.config.mercedesme.conv.roofOpen.description = Vehicle images with open roof (only Cabriolet) thing-type.config.mercedesme.conv.vin.label = Vehicle Identification Number -thing-type.config.mercedesme.hybrid.background.label = Background Image -thing-type.config.mercedesme.hybrid.background.description = Vehicle images provided with or without background thing-type.config.mercedesme.hybrid.batteryCapacity.label = Battery Capacity -thing-type.config.mercedesme.hybrid.batteryCapacity.description = Battery capacity in kwh of vehicle -thing-type.config.mercedesme.hybrid.cropped.label = Cropped Image -thing-type.config.mercedesme.hybrid.cropped.description = Vehicle images in 4:3 instead of 16:9 -thing-type.config.mercedesme.hybrid.format.label = Image Format -thing-type.config.mercedesme.hybrid.format.description = Preferred Image Format -thing-type.config.mercedesme.hybrid.format.option.webp = webp -thing-type.config.mercedesme.hybrid.format.option.png = png -thing-type.config.mercedesme.hybrid.format.option.jpeg = jpeg +thing-type.config.mercedesme.hybrid.batteryCapacity.description = Battery capacity in kWh of vehicle thing-type.config.mercedesme.hybrid.fuelCapacity.label = Fuel Capacity thing-type.config.mercedesme.hybrid.fuelCapacity.description = Fuel capacity in liters of vehicle -thing-type.config.mercedesme.hybrid.night.label = Night Image -thing-type.config.mercedesme.hybrid.night.description = Vehicle images in night conditions -thing-type.config.mercedesme.hybrid.refreshInterval.label = Refresh Interval -thing-type.config.mercedesme.hybrid.refreshInterval.description = Data refresh rate for vehicle data -thing-type.config.mercedesme.hybrid.roofOpen.label = Cabriolet Open Roof -thing-type.config.mercedesme.hybrid.roofOpen.description = Vehicle images with open roof (only Cabriolet) thing-type.config.mercedesme.hybrid.vin.label = Vehicle Identification Number # channel group types +channel-group-type.mercedesme.charge-values.label = Charging Data +channel-group-type.mercedesme.command-values.label = Status of Last Command channel-group-type.mercedesme.door-values.label = Detailed Door Status channel-group-type.mercedesme.door-values.description = Detailed Status of all Doors and Windows -channel-group-type.mercedesme.image-values.label = Vehicle Images -channel-group-type.mercedesme.light-values.label = Light Status -channel-group-type.mercedesme.light-values.description = Light Status of interior lights and main light switch -channel-group-type.mercedesme.location-values.label = Vehicle Location -channel-group-type.mercedesme.location-values.description = Heading of vehicle +channel-group-type.mercedesme.hvac-values.label = Vehicle Climate Control +channel-group-type.mercedesme.lock-ev-values.label = Lock Status +channel-group-type.mercedesme.lock-ev-values.description = Door Lock Status channel-group-type.mercedesme.lock-values.label = Lock Status -channel-group-type.mercedesme.lock-values.description = Vehicle Lock Status +channel-group-type.mercedesme.lock-values.description = Door Lock Status +channel-group-type.mercedesme.position-values.label = Vehicle Location +channel-group-type.mercedesme.position-values.description = Heading of vehicle channel-group-type.mercedesme.range-conv-values.label = Range and Fuel Data channel-group-type.mercedesme.range-conv-values.description = Provides Mileage, remaining range and fuel level values -channel-group-type.mercedesme.range-ev-values.label = Range and Charge Data +channel-group-type.mercedesme.range-ev-values.label = Range and Battery Data channel-group-type.mercedesme.range-ev-values.description = Provides Mileage, remaining range and charge level values -channel-group-type.mercedesme.range-hybrid-values.label = Range, Charge / Fuel Data +channel-group-type.mercedesme.range-hybrid-values.label = Range, Battery and Fuel Data channel-group-type.mercedesme.range-hybrid-values.description = Provides mileage, remaining fuel and range data for hybrid vehicles +channel-group-type.mercedesme.service-ev-values.label = Service and Warnings +channel-group-type.mercedesme.service-values.label = Warnings +channel-group-type.mercedesme.service-values.description = Current active warnings +channel-group-type.mercedesme.tires-values.label = Tire Status +channel-group-type.mercedesme.tires-values.description = Tire Pressure Values +channel-group-type.mercedesme.trip-conv-values.label = Last Trip Data +channel-group-type.mercedesme.trip-ev-values.label = Last Trip Data +channel-group-type.mercedesme.trip-hybrid-values.label = Last Trip Data +channel-group-type.mercedesme.vehicle-values.label = Vehicle Status +channel-group-type.mercedesme.vehicle-values.description = General vehicle status data channel-group-type.mercedesme.window-values.label = Detailed Window Status channel-group-type.mercedesme.window-values.description = Detailed Status Windows # channel types -channel-type.mercedesme.charged-channel.label = Charged Battery Energy -channel-type.mercedesme.clear-cache-channel.label = Remove All Stored Images -channel-type.mercedesme.deck-lid-channel.label = Deck Lid -channel-type.mercedesme.deck-lid-lock-channel.label = Deck Lid Lock -channel-type.mercedesme.doors-lock-channel.label = Door Lock Status -channel-type.mercedesme.doors-lock-channel.state.option.0 = Unlocked -channel-type.mercedesme.doors-lock-channel.state.option.1 = Locked Internal -channel-type.mercedesme.doors-lock-channel.state.option.2 = Locked External -channel-type.mercedesme.doors-lock-channel.state.option.3 = Unlocked Selective -channel-type.mercedesme.driver-front-channel.label = Driver Door -channel-type.mercedesme.driver-rear-channel.label = Driver Door Rear -channel-type.mercedesme.flap-lock-channel.label = Flap Lock -channel-type.mercedesme.fuel-level-channel.label = Fuel Level -channel-type.mercedesme.fuel-open-channel.label = Open Fuel Capacity -channel-type.mercedesme.fuel-remain-channel.label = Remaining Fuel -channel-type.mercedesme.heading-channel.label = Heading Angle -channel-type.mercedesme.image-data-channel.label = Rendered Vehicle Image -channel-type.mercedesme.image-view-channel.label = Image Viewport -channel-type.mercedesme.interior-front-channel.label = Interior Light Front -channel-type.mercedesme.interior-rear-channel.label = Interior Light Rear -channel-type.mercedesme.last-doors-update-channel.label = Last Doors Update -channel-type.mercedesme.last-doors-update-channel.state.pattern = %1$tA, %1$td.%1$tm. %1$tH:%1$tM -channel-type.mercedesme.last-lights-update-channel.label = Last Light Update -channel-type.mercedesme.last-lights-update-channel.state.pattern = %1$tA, %1$td.%1$tm. %1$tH:%1$tM -channel-type.mercedesme.last-location-update-channel.label = Last Location Update -channel-type.mercedesme.last-location-update-channel.state.pattern = %1$tA, %1$td.%1$tm. %1$tH:%1$tM -channel-type.mercedesme.last-lock-update-channel.label = Last Lock Update -channel-type.mercedesme.last-lock-update-channel.state.pattern = %1$tA, %1$td.%1$tm. %1$tH:%1$tM -channel-type.mercedesme.last-range-update-channel.label = Last Range Update -channel-type.mercedesme.last-range-update-channel.state.pattern = %1$tA, %1$td.%1$tm. %1$tH:%1$tM -channel-type.mercedesme.last-windows-update-channel.label = Last Window Update -channel-type.mercedesme.last-windows-update-channel.state.pattern = %1$tA, %1$td.%1$tm. %1$tH:%1$tM -channel-type.mercedesme.light-switch-channel.label = Main Light Rotary -channel-type.mercedesme.light-switch-channel.state.option.0 = Auto -channel-type.mercedesme.light-switch-channel.state.option.1 = Headlight -channel-type.mercedesme.light-switch-channel.state.option.2 = Sidelight Left -channel-type.mercedesme.light-switch-channel.state.option.3 = Sidelight Right -channel-type.mercedesme.light-switch-channel.state.option.4 = Parking Light -channel-type.mercedesme.mileage-channel.label = Mileage -channel-type.mercedesme.passenger-front-channel.label = Passenger Door -channel-type.mercedesme.passenger-rear-channel.label = Passenger Door Rear -channel-type.mercedesme.radius-electric-channel.label = Electric Radius -channel-type.mercedesme.radius-fuel-channel.label = Fuel Radius -channel-type.mercedesme.radius-hybrid-channel.label = Hybrid Radius -channel-type.mercedesme.range-electric-channel.label = Electric Range -channel-type.mercedesme.range-fuel-channel.label = Fuel Range -channel-type.mercedesme.range-hybrid-channel.label = Hybrid Range -channel-type.mercedesme.reading-left-channel.label = Reading Light Left -channel-type.mercedesme.reading-right-channel.label = Reading Light Right -channel-type.mercedesme.rooftop-channel.label = Roof top -channel-type.mercedesme.rooftop-channel.state.option.0 = Unlocked -channel-type.mercedesme.rooftop-channel.state.option.1 = Open and locked -channel-type.mercedesme.rooftop-channel.state.option.2 = Closed and locked -channel-type.mercedesme.soc-channel.label = Battery Charge Level -channel-type.mercedesme.sunroof-channel.label = Sun Roof -channel-type.mercedesme.sunroof-channel.state.option.0 = Closed -channel-type.mercedesme.sunroof-channel.state.option.1 = Open -channel-type.mercedesme.sunroof-channel.state.option.2 = Open Lifting -channel-type.mercedesme.sunroof-channel.state.option.3 = Running -channel-type.mercedesme.sunroof-channel.state.option.4 = Closing -channel-type.mercedesme.sunroof-channel.state.option.5 = Opening -channel-type.mercedesme.sunroof-channel.state.option.6 = Closing -channel-type.mercedesme.uncharged-channel.label = Uncharged Battery Energy -channel-type.mercedesme.window-driver-front-channel.label = Driver Window -channel-type.mercedesme.window-driver-front-channel.state.option.0 = Intermediate -channel-type.mercedesme.window-driver-front-channel.state.option.1 = Open -channel-type.mercedesme.window-driver-front-channel.state.option.2 = Closed -channel-type.mercedesme.window-driver-front-channel.state.option.3 = Airing -channel-type.mercedesme.window-driver-front-channel.state.option.4 = Intermediate -channel-type.mercedesme.window-driver-front-channel.state.option.5 = Running -channel-type.mercedesme.window-driver-rear-channel.label = Driver Window Rear -channel-type.mercedesme.window-driver-rear-channel.state.option.0 = Intermediate -channel-type.mercedesme.window-driver-rear-channel.state.option.1 = Open -channel-type.mercedesme.window-driver-rear-channel.state.option.2 = Closed -channel-type.mercedesme.window-driver-rear-channel.state.option.3 = Airing -channel-type.mercedesme.window-driver-rear-channel.state.option.4 = Intermediate -channel-type.mercedesme.window-driver-rear-channel.state.option.5 = Running -channel-type.mercedesme.window-passenger-front-channel.label = Passenger Window -channel-type.mercedesme.window-passenger-front-channel.state.option.0 = Intermediate -channel-type.mercedesme.window-passenger-front-channel.state.option.1 = Open -channel-type.mercedesme.window-passenger-front-channel.state.option.2 = Closed -channel-type.mercedesme.window-passenger-front-channel.state.option.3 = Airing -channel-type.mercedesme.window-passenger-front-channel.state.option.4 = Intermediate -channel-type.mercedesme.window-passenger-front-channel.state.option.5 = Running -channel-type.mercedesme.window-passenger-rear-channel.label = Passenger Window Rear -channel-type.mercedesme.window-passenger-rear-channel.state.option.0 = Intermediate -channel-type.mercedesme.window-passenger-rear-channel.state.option.1 = Open -channel-type.mercedesme.window-passenger-rear-channel.state.option.2 = Closed -channel-type.mercedesme.window-passenger-rear-channel.state.option.3 = Airing -channel-type.mercedesme.window-passenger-rear-channel.state.option.4 = Intermediate -channel-type.mercedesme.window-passenger-rear-channel.state.option.5 = Running +channel-type.mercedesme.active-hvac.label = AC Control +channel-type.mercedesme.active.label = Charge Active +channel-type.mercedesme.auto-unlock.label = Coupler Auto Unlock +channel-type.mercedesme.auto-unlock.description = Auto unlock coupler after charging +channel-type.mercedesme.aux-heat.label = Auxiliary Heating Control +channel-type.mercedesme.avg-speed-reset.label = Rst Average Speed +channel-type.mercedesme.avg-speed-reset.description = Average speed since last Reset +channel-type.mercedesme.avg-speed.label = Trip Average Speed +channel-type.mercedesme.brake-fluid.label = Brake Fluid +channel-type.mercedesme.brake-lining-wear.label = Brake Lining Wear +channel-type.mercedesme.charge-flap.label = Charge Flap +channel-type.mercedesme.charge-flap.description = Charge Flap Status +channel-type.mercedesme.charge-flap.state.option.0 = Open +channel-type.mercedesme.charge-flap.state.option.1 = Closed +channel-type.mercedesme.charged.label = Charged Battery Energy +channel-type.mercedesme.cmd-last-update.label = Command Updated +channel-type.mercedesme.cmd-last-update.state.pattern = %1$tA, %1$td.%1$tm. %1$tH:%1$tM +channel-type.mercedesme.cmd-name.label = Command Name +channel-type.mercedesme.cmd-state.label = Command State +channel-type.mercedesme.command-capabilities.label = Command Capabilities +channel-type.mercedesme.consumption-conv-reset.label = Avg Cons Rst Fuel +channel-type.mercedesme.consumption-conv-reset.description = Average consumption since last reset fuel +channel-type.mercedesme.consumption-conv-unit.label = Avg Cons Unit Fuel +channel-type.mercedesme.consumption-conv-unit.description = Average consumption unit fuel +channel-type.mercedesme.consumption-conv.label = Trip Avg Cons Fuel +channel-type.mercedesme.consumption-conv.description = Last Trip Average Consumption Fuel +channel-type.mercedesme.consumption-ev-reset.label = Avg Cons Rst EV +channel-type.mercedesme.consumption-ev-reset.description = Average consumption since last reset electric +channel-type.mercedesme.consumption-ev-unit.label = Avg Cons Unit EV +channel-type.mercedesme.consumption-ev-unit.description = Average consumption unit electric +channel-type.mercedesme.consumption-ev.label = Trip Avg Cons EV +channel-type.mercedesme.consumption-ev.description = Last Trip Average Consumption Electric +channel-type.mercedesme.coolant-fluid.label = Coolant Fluid Low +channel-type.mercedesme.coupler-ac.label = Charge Coupler AC +channel-type.mercedesme.coupler-ac.description = Coupler AC Status +channel-type.mercedesme.coupler-ac.state.option.0 = Plugged +channel-type.mercedesme.coupler-ac.state.option.2 = Unplugged +channel-type.mercedesme.coupler-dc.label = Charge Coupler DC +channel-type.mercedesme.coupler-dc.description = Coupler DC Status +channel-type.mercedesme.coupler-dc.state.option.0 = Plugged +channel-type.mercedesme.coupler-dc.state.option.2 = Unplugged +channel-type.mercedesme.coupler-lock.label = Charge Coupler Lock +channel-type.mercedesme.coupler-lock.description = Coupler Lock Status +channel-type.mercedesme.coupler-lock.state.option.0 = Locked +channel-type.mercedesme.coupler-lock.state.option.1 = Unlocked +channel-type.mercedesme.deck-lid-lock.label = Deck Lid Lock +channel-type.mercedesme.deck-lid.label = Deck Lid +channel-type.mercedesme.distance-reset.label = Rst Distance +channel-type.mercedesme.distance-reset.description = Distance since last Reset +channel-type.mercedesme.distance.label = Trip Distance +channel-type.mercedesme.door-status.label = Door Status +channel-type.mercedesme.door-status.state.option.0 = Open +channel-type.mercedesme.door-status.state.option.1 = Closed +channel-type.mercedesme.driven-time-reset.label = Rst Driving Time +channel-type.mercedesme.driven-time-reset.description = Driving time since last Reset +channel-type.mercedesme.driven-time.label = Trip String Time +channel-type.mercedesme.end-time.label = Charge End Estimation +channel-type.mercedesme.end-time.state.pattern = %1$tH:%1$tM +channel-type.mercedesme.engine-hood.label = Engine Hood +channel-type.mercedesme.engine.label = Engine Warning +channel-type.mercedesme.feature-capabilities.label = Feature Capabilities +channel-type.mercedesme.flip-window.label = Flip Window +channel-type.mercedesme.front-left-hvac.label = AC Seat Front Left +channel-type.mercedesme.front-left-lock.label = Door Lock Front Left +channel-type.mercedesme.front-left-window.label = Window Front Left +channel-type.mercedesme.front-left-window.state.option.0 = Intermediate +channel-type.mercedesme.front-left-window.state.option.1 = Open +channel-type.mercedesme.front-left-window.state.option.2 = Closed +channel-type.mercedesme.front-left-window.state.option.3 = Airing +channel-type.mercedesme.front-left-window.state.option.4 = Intermediate +channel-type.mercedesme.front-left-window.state.option.5 = Running +channel-type.mercedesme.front-left.label = Door Front Left +channel-type.mercedesme.front-right-hvac.label = AC Seat Front Right +channel-type.mercedesme.front-right-lock.label = Door Lock Front Right +channel-type.mercedesme.front-right-window.label = Window Front Right +channel-type.mercedesme.front-right-window.state.option.0 = Intermediate +channel-type.mercedesme.front-right-window.state.option.1 = Open +channel-type.mercedesme.front-right-window.state.option.2 = Closed +channel-type.mercedesme.front-right-window.state.option.3 = Airing +channel-type.mercedesme.front-right-window.state.option.4 = Intermediate +channel-type.mercedesme.front-right-window.state.option.5 = Running +channel-type.mercedesme.front-right.label = Door Front Right +channel-type.mercedesme.fuel-level.label = Fuel Level +channel-type.mercedesme.fuel-open.label = Open Fuel Capacity +channel-type.mercedesme.fuel-remain.label = Remaining Fuel +channel-type.mercedesme.gas-flap-lock.label = Flap Lock +channel-type.mercedesme.gps.label = Position GPS +channel-type.mercedesme.heading.label = Position Heading Angle +channel-type.mercedesme.home-distance.label = Distance to Home +channel-type.mercedesme.ignition.label = Ignition +channel-type.mercedesme.ignition.state.option.0 = Lock +channel-type.mercedesme.ignition.state.option.1 = Off +channel-type.mercedesme.ignition.state.option.2 = Accessory +channel-type.mercedesme.ignition.state.option.4 = On +channel-type.mercedesme.ignition.state.option.5 = Start +channel-type.mercedesme.ignition.command.option.0 = Off +channel-type.mercedesme.ignition.command.option.4 = On +channel-type.mercedesme.last-update.label = Tire Update Time +channel-type.mercedesme.last-update.state.pattern = %1$tA, %1$td.%1$tm. %1$tH:%1$tM +channel-type.mercedesme.lock.label = Lock Status/Control +channel-type.mercedesme.lock.state.option.0 = Locked +channel-type.mercedesme.lock.state.option.1 = Unlocked +channel-type.mercedesme.lock.command.option.0 = Lock +channel-type.mercedesme.lock.command.option.1 = Unlock +channel-type.mercedesme.marker-front-left.label = Tire Warning Front Left +channel-type.mercedesme.marker-front-left.state.option.0 = No warning +channel-type.mercedesme.marker-front-left.state.option.1 = Soft warning +channel-type.mercedesme.marker-front-left.state.option.2 = Low warning +channel-type.mercedesme.marker-front-left.state.option.3 = Deflation +channel-type.mercedesme.marker-front-left.state.option.4 = Unknown warning +channel-type.mercedesme.marker-front-right.label = Tire Warning Front Right +channel-type.mercedesme.marker-front-right.state.option.0 = No warning +channel-type.mercedesme.marker-front-right.state.option.1 = Soft warning +channel-type.mercedesme.marker-front-right.state.option.2 = Low warning +channel-type.mercedesme.marker-front-right.state.option.3 = Deflation +channel-type.mercedesme.marker-front-right.state.option.4 = Unknown warning +channel-type.mercedesme.marker-rear-left.label = Tire Warning Rear Left +channel-type.mercedesme.marker-rear-left.state.option.0 = No warning +channel-type.mercedesme.marker-rear-left.state.option.1 = Soft warning +channel-type.mercedesme.marker-rear-left.state.option.2 = Low warning +channel-type.mercedesme.marker-rear-left.state.option.3 = Deflation +channel-type.mercedesme.marker-rear-left.state.option.4 = Unknown warning +channel-type.mercedesme.marker-rear-right.label = Tire Warning Rear Right +channel-type.mercedesme.marker-rear-right.state.option.0 = No warning +channel-type.mercedesme.marker-rear-right.state.option.1 = Soft warning +channel-type.mercedesme.marker-rear-right.state.option.2 = Low warning +channel-type.mercedesme.marker-rear-right.state.option.3 = Deflation +channel-type.mercedesme.marker-rear-right.state.option.4 = Unknown warning +channel-type.mercedesme.max-soc.label = Charge SoC Maximum +channel-type.mercedesme.max-soc.command.option.50 % = 50 % +channel-type.mercedesme.max-soc.command.option.60 % = 60 % +channel-type.mercedesme.max-soc.command.option.70 % = 70 % +channel-type.mercedesme.max-soc.command.option.80 % = 80 % +channel-type.mercedesme.max-soc.command.option.90 % = 90 % +channel-type.mercedesme.max-soc.command.option.100 % = 100 % +channel-type.mercedesme.mileage.label = Mileage +channel-type.mercedesme.park-brake.label = Park Brake Active +channel-type.mercedesme.power.label = Charge Power +channel-type.mercedesme.pressure-front-left.label = Tire Pressure Front Left +channel-type.mercedesme.pressure-front-right.label = Tire Pressure Front Right +channel-type.mercedesme.pressure-rear-left.label = Tire Pressure Rear Left +channel-type.mercedesme.pressure-rear-right.label = Tire Pressure Rear Right +channel-type.mercedesme.program.label = Charge Program +channel-type.mercedesme.program.description = Selected Charge Program +channel-type.mercedesme.proto-update.label = Proto Data Update +channel-type.mercedesme.radius-electric.label = Electric Radius +channel-type.mercedesme.radius-fuel.label = Fuel Radius +channel-type.mercedesme.radius-hybrid.label = Hybrid Radius +channel-type.mercedesme.range-electric.label = Electric Range +channel-type.mercedesme.range-fuel.label = Fuel Range +channel-type.mercedesme.range-hybrid.label = Hybrid Range +channel-type.mercedesme.rear-blind.label = Window Blind Rear +channel-type.mercedesme.rear-left-blind.label = Window Blind Rear Left +channel-type.mercedesme.rear-left-hvac.label = AC Seat Rear Left +channel-type.mercedesme.rear-left-lock.label = Door Lock Rear Left +channel-type.mercedesme.rear-left-window.label = Window Rear Left +channel-type.mercedesme.rear-left-window.state.option.0 = Intermediate +channel-type.mercedesme.rear-left-window.state.option.1 = Open +channel-type.mercedesme.rear-left-window.state.option.2 = Closed +channel-type.mercedesme.rear-left-window.state.option.3 = Airing +channel-type.mercedesme.rear-left-window.state.option.4 = Intermediate +channel-type.mercedesme.rear-left-window.state.option.5 = Running +channel-type.mercedesme.rear-left.label = Door Rear Left +channel-type.mercedesme.rear-right-blind.label = Window Blind Rear Right +channel-type.mercedesme.rear-right-hvac.label = AC Seat Rear Right +channel-type.mercedesme.rear-right-lock.label = Door Lock Rear Right +channel-type.mercedesme.rear-right-window.label = Window Rear Right +channel-type.mercedesme.rear-right-window.state.option.0 = Intermediate +channel-type.mercedesme.rear-right-window.state.option.1 = Open +channel-type.mercedesme.rear-right-window.state.option.2 = Closed +channel-type.mercedesme.rear-right-window.state.option.3 = Airing +channel-type.mercedesme.rear-right-window.state.option.4 = Intermediate +channel-type.mercedesme.rear-right-window.state.option.5 = Running +channel-type.mercedesme.rear-right.label = Door Rear Right +channel-type.mercedesme.rooftop.label = Roof top +channel-type.mercedesme.rooftop.state.option.0 = Unlocked +channel-type.mercedesme.rooftop.state.option.1 = Open and locked +channel-type.mercedesme.rooftop.state.option.2 = Closed and locked +channel-type.mercedesme.sensor-available.label = Tire Sensor Available +channel-type.mercedesme.service-days.label = Service in Days +channel-type.mercedesme.signal.label = Position Signal +channel-type.mercedesme.signal.state.option.0 = Position Lights +channel-type.mercedesme.signal.state.option.1 = Position Horn +channel-type.mercedesme.signal.command.option.0 = Position Lights +channel-type.mercedesme.signal.command.option.1 = Position Horn +channel-type.mercedesme.soc.label = Battery Charge Level +channel-type.mercedesme.starter-battery.label = Starter Battery Status +channel-type.mercedesme.starter-battery.state.option.0 = Green +channel-type.mercedesme.starter-battery.state.option.1 = Yellow +channel-type.mercedesme.starter-battery.state.option.2 = Red +channel-type.mercedesme.sunroof-front-blind.label = Sun Roof Front Blind +channel-type.mercedesme.sunroof-rear-blind.label = Sun Roof Rear Blind +channel-type.mercedesme.sunroof.label = Sun Roof +channel-type.mercedesme.sunroof.state.option.0 = Closed +channel-type.mercedesme.sunroof.state.option.1 = Open +channel-type.mercedesme.sunroof.state.option.2 = Lifted +channel-type.mercedesme.sunroof.state.option.3 = Running +channel-type.mercedesme.sunroof.state.option.4 = Closing +channel-type.mercedesme.sunroof.state.option.5 = Opening +channel-type.mercedesme.sunroof.state.option.6 = Closing +channel-type.mercedesme.sunroof.command.option.0 = Close +channel-type.mercedesme.sunroof.command.option.1 = Open +channel-type.mercedesme.sunroof.command.option.2 = Lift +channel-type.mercedesme.temperature-hvac.label = AC Temperature +channel-type.mercedesme.tires-rdk.label = Tire Pressure Warnings +channel-type.mercedesme.uncharged.label = Uncharged Battery Energy +channel-type.mercedesme.wash-water.label = Wash Water Low +channel-type.mercedesme.windows.label = Windows Status/Control +channel-type.mercedesme.windows.state.option.0 = Intermediate +channel-type.mercedesme.windows.state.option.1 = Closed +channel-type.mercedesme.windows.state.option.2 = Open +channel-type.mercedesme.windows.command.option.0 = Ventilate +channel-type.mercedesme.windows.command.option.1 = Close +channel-type.mercedesme.windows.command.option.2 = Open +channel-type.mercedesme.zone-hvac.label = AC Zone -# MercedesMe Things Status Details +# channel types + +actionPoiLabel = Send POI to Vehicle +actionPoiDescription = Send POI with name, latitude and longitude +poiTitle = POI Name +poiTitleDescription = Name of the location +latitudeLabel = Latitude +latitudeDescription = Latitude of the location +longitudeLabel = Longitude +longitudeDescription = Longitude of the location mercedesme.account.status.authorization-needed = Manual Authorization needed at {0} +mercedesme.account.status.email-missing = EMail missing +mercedesme.account.status.region-missing = Region missing +mercedesme.account.status.refresh-invalid = Refresh Interval Invalid mercedesme.account.status.ip-missing = Callback IP missing mercedesme.account.status.port-missing = Callback Port missing -mercedesme.account.status.client-id-missing = Client ID missing -mercedesme.account.status.client-secret-missing = Client Secret missing mercedesme.account.status.server-restart = Disable and enable Bridge to restart Authorization Server mercedesme.vehicle.status.bridge-missing = Bridge not set -mercedesme.vehicle.status.bridge-authoriziation = Check Bridge Authorization +mercedesme.account.status.ip-autodetect-failure = Callback IP cannot be detected +mercedesme.account.status.websocket-failure = Websocket Exception: Reason: {0} diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/charge-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/charge-channel-types.xml new file mode 100644 index 00000000000..80d3302eeb1 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/charge-channel-types.xml @@ -0,0 +1,90 @@ + + + + Number + + Charge Flap Status + + + + + + + + + Number + + Coupler AC Status + + + + + + + + + Number + + Coupler DC Status + + + + + + + + + Number + + Coupler Lock Status + + + + + + + + + Switch + + + + + Number:Power + + + + + Number + + Selected Charge Program + + + DateTime + + + + + Number:Dimensionless + + + + + + + + + + + + + + + Switch + + Auto unlock coupler after charging + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/charge-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/charge-group.xml new file mode 100644 index 00000000000..54711f1b99b --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/charge-group.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/location-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/command-channel-types.xml similarity index 60% rename from bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/location-channel-types.xml rename to bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/command-channel-types.xml index 06dfc984450..40affc80af9 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/location-channel-types.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/command-channel-types.xml @@ -3,14 +3,19 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - - Number:Angle - - + + Number + + - + + Number + + + + DateTime - + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/image-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/command-group.xml similarity index 62% rename from bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/image-group.xml rename to bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/command-group.xml index 2e1e701a54b..37a6b386f82 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/image-group.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/command-group.xml @@ -3,12 +3,12 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - - + + - - - + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/door-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/door-channel-types.xml index c5341b4d9c0..e126bf60144 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/door-channel-types.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/door-channel-types.xml @@ -3,32 +3,37 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - + Contact - + - + Contact - + - + Contact - + - + Contact - + - + Contact - + + Contact + + + + Number @@ -39,24 +44,37 @@ - + Number - + - + + + + + + + + + veto - - DateTime - - + + Number + + + + + Number + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/doors-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/doors-group.xml index 8d6651098a1..3e1db3e8702 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/doors-group.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/doors-group.xml @@ -7,14 +7,16 @@ Detailed Status of all Doors and Windows - - - - - - - - + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/hvac-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/hvac-channel-types.xml new file mode 100644 index 00000000000..adbb8795916 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/hvac-channel-types.xml @@ -0,0 +1,46 @@ + + + + Number + + veto + + + Number:Temperature + + veto + + + Switch + + veto + + + Switch + + + + + Switch + + + + + Switch + + + + + Switch + + + + + Switch + + veto + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/hvac-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/hvac-group.xml new file mode 100644 index 00000000000..20a5d26ebbe --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/hvac-group.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/image-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/image-channel-types.xml deleted file mode 100644 index b0e597ed918..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/image-channel-types.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - Image - - - - - String - - - - Switch - - - diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/light-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/light-channel-types.xml deleted file mode 100644 index 029c20c707c..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/light-channel-types.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - Switch - - - - - Switch - - - - - Switch - - - - - Switch - - - - - Number - - - - - - - - - - - - - DateTime - - - - diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lights-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lights-group.xml deleted file mode 100644 index 3caebd7ae94..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lights-group.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - Light Status of interior lights and main light switch - - - - - - - - - - diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-channel-types.xml index 7ce9ccc5a74..a5bb69056df 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-channel-types.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-channel-types.xml @@ -3,31 +3,34 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - - Number - - - - - - - - - + + Switch + + - + + Switch + + + + + Switch + + + + + Switch + + + + Switch - + Switch - - DateTime - - - diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-ev-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-ev-group.xml new file mode 100644 index 00000000000..8ed320750b0 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-ev-group.xml @@ -0,0 +1,17 @@ + + + + + Door Lock Status + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-group.xml index cde1b07f95f..f1809c101da 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-group.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/lock-group.xml @@ -5,12 +5,14 @@ xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - Vehicle Lock Status + Door Lock Status - - - - + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/location-channel-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/position-channel-group.xml similarity index 75% rename from bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/location-channel-group.xml rename to bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/position-channel-group.xml index c91bfef0d9e..5541d1200c4 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/location-channel-group.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/position-channel-group.xml @@ -3,12 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - + Heading of vehicle - - + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/position-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/position-channel-types.xml new file mode 100644 index 00000000000..e33569638f5 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/position-channel-types.xml @@ -0,0 +1,31 @@ + + + + Number:Angle + + + + + Location + + + + Number + + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-channel-types.xml index ac39ba02ad9..a523f926bf2 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-channel-types.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-channel-types.xml @@ -3,74 +3,74 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - + Number:Length - + - + Number:Length - + - + Number:Length - + - + + Number:Length + + + + Number:Dimensionless - + - + Number:Energy - + - + Number:Energy - + - + Number:Length - + - + Number:Length - + - + Number:Dimensionless - + - + Number:Volume - + - + Number:Volume - + - + Number:Length - + - + Number:Length - - - - DateTime - - + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-conv-channel-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-conv-channel-group.xml index 0599c93ba69..665c91e5a19 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-conv-channel-group.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-conv-channel-group.xml @@ -7,13 +7,13 @@ Provides Mileage, remaining range and fuel level values - - - - - - - + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-ev-channel-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-ev-channel-group.xml index 4fbd83ebbe7..ccfbeee5aac 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-ev-channel-group.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-ev-channel-group.xml @@ -4,16 +4,16 @@ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - + Provides Mileage, remaining range and charge level values - - - - - - - + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-hybrid-channel-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-hybrid-channel-group.xml index a9ec537ebf1..cdb533a9170 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-hybrid-channel-group.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/range-hybrid-channel-group.xml @@ -4,23 +4,23 @@ xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - + Provides mileage, remaining fuel and range data for hybrid vehicles - - - - - - - - - - - - - - + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-channel-types.xml new file mode 100644 index 00000000000..cc0e54ce10e --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-channel-types.xml @@ -0,0 +1,54 @@ + + + + Number + + + + + + + + + + + Switch + + + + + Switch + + + + + Switch + + + + + Switch + + + + + Switch + + + + + Number + + + + + + Number + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-ev-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-ev-group.xml new file mode 100644 index 00000000000..9a7da9a8005 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-ev-group.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-group.xml new file mode 100644 index 00000000000..547e7c44b49 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/service-group.xml @@ -0,0 +1,20 @@ + + + + + Current active warnings + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-bev.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-bev.xml index 8964e7d337d..357d492e68d 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-bev.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-bev.xml @@ -13,13 +13,18 @@ Battery Electric Vehicle - + + - - - - + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-combustion.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-combustion.xml index 672735d3ba2..e05ce90a9b7 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-combustion.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-combustion.xml @@ -13,13 +13,17 @@ Conventional Fuel Vehicle - + - - - - + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-hybrid.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-hybrid.xml index a84adc040d6..30abc16d1f9 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-hybrid.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/thing-hybrid.xml @@ -13,13 +13,18 @@ Conventional Fuel Vehicle with supporting Electric Engine - + - - - - + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/tires-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/tires-channel-types.xml new file mode 100644 index 00000000000..ace31ffb786 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/tires-channel-types.xml @@ -0,0 +1,88 @@ + + + + Number:Pressure + + + + + Number:Pressure + + + + + Number:Pressure + + + + + Number:Pressure + + + + + Number + + + + + Number + + + + + + + + + + + + + Number + + + + + + + + + + + + + Number + + + + + + + + + + + + + Number + + + + + + + + + + + + + DateTime + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/tires-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/tires-group.xml new file mode 100644 index 00000000000..8f5a7b54ecf --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/tires-group.xml @@ -0,0 +1,22 @@ + + + + + Tire Pressure Values + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-channel-types.xml new file mode 100644 index 00000000000..b824f770511 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-channel-types.xml @@ -0,0 +1,75 @@ + + + + Number:Length + + + + + String + + + + + Number:Speed + + + + + Number + + Last Trip Average Consumption Electric + + + + Number + + Last Trip Average Consumption Fuel + + + + Number:Length + + Distance since last Reset + + + + String + + Driving time since last Reset + + + + Number:Speed + + Average speed since last Reset + + + + Number + + Average consumption since last reset electric + + + + Number + + Average consumption since last reset fuel + + + + String + + Average consumption unit electric + + + + String + + Average consumption unit fuel + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-conv-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-conv-group.xml new file mode 100644 index 00000000000..3eab344bcfd --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-conv-group.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-ev-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-ev-group.xml new file mode 100644 index 00000000000..16f003a2217 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-ev-group.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-hybrid-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-hybrid-group.xml new file mode 100644 index 00000000000..78cd171e109 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/trip-hybrid-group.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/vehicle-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/vehicle-channel-types.xml new file mode 100644 index 00000000000..919bf50a413 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/vehicle-channel-types.xml @@ -0,0 +1,92 @@ + + + + Number + + + + + + + + + + + + + + veto + + + Number + + + + + + + + + + + + + + + + veto + + + Number + + + + + + + + + + Number + + + + + + + + + + + + + + + + + veto + + + Switch + + + + + String + + + + + String + + + + + String + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/vehicle-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/vehicle-group.xml new file mode 100644 index 00000000000..1186b3e45f8 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/vehicle-group.xml @@ -0,0 +1,20 @@ + + + + + General vehicle status data + + + + + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/window-channel-types.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/window-channel-types.xml index ec59ab2a67f..c5b265e9683 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/window-channel-types.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/window-channel-types.xml @@ -3,9 +3,9 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0" xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd"> - + Number - + @@ -17,9 +17,9 @@ - + Number - + @@ -31,9 +31,9 @@ - + Number - + @@ -45,9 +45,9 @@ - + Number - + @@ -59,9 +59,24 @@ - - DateTime - - + + Number + + + + + Number + + + + + Number + + + + + Number + + diff --git a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/window-group.xml b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/window-group.xml index aca8ffb4083..be652dce423 100644 --- a/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/window-group.xml +++ b/bundles/org.openhab.binding.mercedesme/src/main/resources/OH-INF/thing/window-group.xml @@ -7,11 +7,14 @@ Detailed Status Windows - - - - - + + + + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java deleted file mode 100644 index 04096675447..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ConfigurationTest.java +++ /dev/null @@ -1,72 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.mercedesme; - -import static org.junit.jupiter.api.Assertions.*; - -import java.io.IOException; -import java.net.InetAddress; -import java.net.SocketException; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.junit.jupiter.api.Test; -import org.openhab.binding.mercedesme.internal.Constants; -import org.openhab.binding.mercedesme.internal.config.AccountConfiguration; -import org.openhab.binding.mercedesme.internal.server.Utils; - -/** - * The {@link ConfigurationTest} Test configuration settings - * - * @author Bernd Weymann - Initial contribution - */ -@NonNullByDefault -class ConfigurationTest { - - @Test - void testScope() { - AccountConfiguration ac = new AccountConfiguration(); - assertEquals( - "openid offline_access mb:vehicle:mbdata:payasyoudrive mb:vehicle:mbdata:vehiclestatus mb:vehicle:mbdata:vehiclelock mb:vehicle:mbdata:fuelstatus mb:vehicle:mbdata:evstatus", - ac.getScope()); - } - - @Test - void testApiUrlEndpoint() { - String url = Constants.FUEL_URL; - String[] endpoint = url.split("/"); - String finalEndpoint = endpoint[endpoint.length - 1]; - assertEquals("fuelstatus", finalEndpoint); - } - - @Test - void testRound() { - int socValue = 66; - double batteryCapacity = 66.5; - float chargedValue = Math.round(socValue * 1000 * (float) batteryCapacity / 1000) / (float) 100; - assertEquals(43.89, chargedValue, 0.01); - float unchargedValue = Math.round((100 - socValue) * 1000 * (float) batteryCapacity / 1000) / (float) 100; - assertEquals(22.61, unchargedValue, 0.01); - assertEquals(batteryCapacity, chargedValue + unchargedValue, 0.01); - } - - @Test - public void testCallbackUrl() throws SocketException { - String ip = Utils.getCallbackIP(); - String message = "IP " + ip + " not reachable"; - try { - assertTrue(InetAddress.getByName(ip).isReachable(10000), message); - } catch (IOException e) { - fail(message); - } - } -} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/FileReader.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/FileReader.java new file mode 100644 index 00000000000..31b3ae537d2 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/FileReader.java @@ -0,0 +1,47 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme; + +import static org.junit.jupiter.api.Assertions.fail; + +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; + +import org.eclipse.jdt.annotation.NonNullByDefault; + +/** + * {@link FileReader} reads from file into String + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class FileReader { + + public static String readFileInString(String filename) { + try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(filename), "CP1252"));) { + StringBuffer buf = new StringBuffer(); + String sCurrentLine; + + while ((sCurrentLine = br.readLine()) != null) { + buf.append(sCurrentLine); + } + return buf.toString(); + } catch (IOException e) { + // fail if file cannot be read + fail(); + } + return "ERR"; + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ImageTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ImageTest.java deleted file mode 100644 index f2cc4c62025..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ImageTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.mercedesme; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import java.util.Optional; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.eclipse.jetty.util.MultiMap; -import org.eclipse.jetty.util.UrlEncoded; -import org.junit.jupiter.api.Test; -import org.openhab.binding.mercedesme.internal.config.VehicleConfiguration; - -/** - * The {@link ImageTest} Test Image conversions - * - * @author Bernd Weymann - Initial contribution - */ -@NonNullByDefault -class ImageTest { - - @Test - public void testConfig() { - Optional config = Optional.of(new VehicleConfiguration()); - MultiMap parameterMap = new MultiMap<>(); - parameterMap.add("background", Boolean.toString(config.get().background)); - parameterMap.add("night", Boolean.toString(config.get().night)); - parameterMap.add("cropped", Boolean.toString(config.get().cropped)); - parameterMap.add("roofOpen", Boolean.toString(config.get().roofOpen)); - parameterMap.add("format", config.get().format); - String params = UrlEncoded.encode(parameterMap, null, false); - assertEquals("background=false&night=false&cropped=false&roofOpen=false&format=webp", params); - - config.get().background = true; - config.get().format = "png"; - config.get().cropped = true; - parameterMap = new MultiMap<>(); - parameterMap.add("background", Boolean.toString(config.get().background)); - parameterMap.add("night", Boolean.toString(config.get().night)); - parameterMap.add("cropped", Boolean.toString(config.get().cropped)); - parameterMap.add("roofOpen", Boolean.toString(config.get().roofOpen)); - parameterMap.add("format", config.get().format); - params = UrlEncoded.encode(parameterMap, null, false); - assertEquals("background=true&night=false&cropped=true&roofOpen=false&format=png", params); - } -} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/JsonTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/JsonTest.java deleted file mode 100644 index a5907b8a5d0..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/JsonTest.java +++ /dev/null @@ -1,250 +0,0 @@ -/** - * Copyright (c) 2010-2024 Contributors to the openHAB project - * - * See the NOTICE file(s) distributed with this work for additional - * information. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License 2.0 which is available at - * http://www.eclipse.org/legal/epl-2.0 - * - * SPDX-License-Identifier: EPL-2.0 - */ -package org.openhab.binding.mercedesme; - -import static org.junit.jupiter.api.Assertions.*; - -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.time.ZoneId; -import java.time.ZonedDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import org.eclipse.jdt.annotation.NonNullByDefault; -import org.json.JSONArray; -import org.json.JSONObject; -import org.junit.jupiter.api.Test; -import org.openhab.binding.mercedesme.internal.utils.ChannelStateMap; -import org.openhab.binding.mercedesme.internal.utils.Mapper; - -/** - * The {@link JsonTest} Test Json conversions - * - * @author Bernd Weymann - Initial contribution - */ -@NonNullByDefault -class JsonTest { - public static final String DATE_INPUT_PATTERN_STRING = "yyyy-MM-dd'T'HH:mm:ss"; - public static final DateTimeFormatter DATE_INPUT_PATTERN = DateTimeFormatter.ofPattern(DATE_INPUT_PATTERN_STRING); - - @Test - void testOdoMapper() throws Exception { - List expectedResults = new ArrayList<>(); - expectedResults.add("range:mileage 4131 km"); - String content = Files.readString(Path.of("src/test/resources/odo.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - ja.forEach(entry -> { - JSONObject jo = (JSONObject) entry; - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - assertNotNull(csm); - assertTrue(expectedResults.contains(csm.toString())); - boolean removed = expectedResults.remove(csm.toString()); - if (!removed) { - assertTrue(false, csm.toString() + " not removed"); - } - }); - assertEquals(0, expectedResults.size(), "All content delivered"); - } - - @Test - void testEVMapper() throws IOException { - List expectedResults = new ArrayList<>(); - expectedResults.add("range:range-electric 325 km"); - expectedResults.add("range:soc 78 %"); - String content = Files.readString(Path.of("src/test/resources/evstatus.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - ja.forEach(entry -> { - JSONObject jo = (JSONObject) entry; - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - assertNotNull(csm); - assertTrue(expectedResults.contains(csm.toString())); - boolean removed = expectedResults.remove(csm.toString()); - if (!removed) { - assertTrue(false, csm.toString() + " not removed"); - } - }); - assertEquals(0, expectedResults.size(), "All content delivered"); - } - - @Test - void testFuelMapper() throws IOException { - List expectedResults = new ArrayList<>(); - expectedResults.add("range:range-fuel 1292 km"); - expectedResults.add("range:fuel-level 90 %"); - String content = Files.readString(Path.of("src/test/resources/fuel.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - ja.forEach(entry -> { - JSONObject jo = (JSONObject) entry; - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - assertNotNull(csm); - assertTrue(expectedResults.contains(csm.toString())); - boolean removed = expectedResults.remove(csm.toString()); - if (!removed) { - assertTrue(false, csm.toString() + " not removed"); - } - }); - } - - @Test - void testLockMapper() throws IOException { - List expectedResults = new ArrayList<>(); - expectedResults.add("lock:doors 0"); - expectedResults.add("lock:deck-lid ON"); - expectedResults.add("lock:flap ON"); - expectedResults.add("location:heading 120 °"); - String content = Files.readString(Path.of("src/test/resources/lock.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - ja.forEach(entry -> { - JSONObject jo = (JSONObject) entry; - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - assertNotNull(csm); - assertTrue(expectedResults.contains(csm.toString())); - boolean removed = expectedResults.remove(csm.toString()); - if (!removed) { - assertTrue(false, csm.toString() + " not removed"); - } - }); - } - - @Test - void testStatusMapper() throws IOException { - List expectedResults = new ArrayList<>(); - expectedResults.add("doors:deck-lid CLOSED"); - expectedResults.add("doors:driver-front CLOSED"); - expectedResults.add("doors:passenger-front CLOSED"); - expectedResults.add("doors:driver-rear CLOSED"); - expectedResults.add("doors:passenger-rear CLOSED"); - expectedResults.add("lights:interior-front OFF"); - expectedResults.add("lights:interior-rear OFF"); - expectedResults.add("lights:light-switch 0"); - expectedResults.add("lights:reading-left OFF"); - expectedResults.add("lights:reading-right OFF"); - expectedResults.add("doors:rooftop 0"); - expectedResults.add("doors:sunroof 0"); - expectedResults.add("windows:driver-front 0"); - expectedResults.add("windows:passenger-front 0"); - expectedResults.add("windows:driver-rear 0"); - expectedResults.add("windows:passenger-rear 0"); - - String content = Files.readString(Path.of("src/test/resources/status.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - ja.forEach(entry -> { - JSONObject jo = (JSONObject) entry; - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - assertNotNull(csm); - assertTrue(expectedResults.contains(csm.toString())); - boolean removed = expectedResults.remove(csm.toString()); - if (!removed) { - assertTrue(false, csm.toString() + " not removed"); - } - }); - assertEquals(0, expectedResults.size(), "All content delivered"); - } - - @Test - void testEQALightsMapper() throws IOException { - // real life example - List expectedResults = new ArrayList<>(); - expectedResults.add("doors:passenger-front OPEN"); - expectedResults.add("windows:driver-front 1"); - expectedResults.add("windows:driver-rear 1"); - expectedResults.add("windows:passenger-rear 1"); - expectedResults.add("windows:passenger-front 1"); - expectedResults.add("lights:light-switch 0"); - expectedResults.add("lights:reading-right ON"); - expectedResults.add("lights:reading-left ON"); - expectedResults.add("doors:driver-front CLOSED"); - expectedResults.add("doors:driver-rear CLOSED"); - - String content = Files.readString(Path.of("src/test/resources/eqa-light-sample.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - ja.forEach(entry -> { - JSONObject jo = (JSONObject) entry; - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - assertTrue(expectedResults.contains(csm.toString())); - boolean removed = expectedResults.remove(csm.toString()); - if (!removed) { - assertTrue(false, csm.toString() + " not removed"); - } - }); - assertEquals(0, expectedResults.size(), "All content delivered"); - } - - @Test - void testTimeStamp() throws IOException { - String content = Files.readString(Path.of("src/test/resources/eqa-light-sample.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - long lastTimestamp = 0; - for (Iterator iterator = ja.iterator(); iterator.hasNext();) { - JSONObject jo = (JSONObject) iterator.next(); - Set s = jo.keySet(); - if (!s.isEmpty()) { - String id = s.toArray()[0].toString(); - JSONObject val = jo.getJSONObject(id); - if (val.has("timestamp")) { - lastTimestamp = val.getLong("timestamp"); - } - } - } - Date d = new Date(lastTimestamp); - ZonedDateTime zdt = d.toInstant().atZone(ZoneId.of("Europe/Paris")); - assertEquals("2022-06-19T16:46:31", zdt.format(DATE_INPUT_PATTERN)); - } - - @Test - void testInvalidData() throws IOException { - String content = Files.readString(Path.of("src/test/resources/invalid-key.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - ja.forEach(entry -> { - JSONObject jo = (JSONObject) entry; - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - assertNotNull(csm); - assertFalse(csm.isValid()); - }); - } - - @Test - void testMissingTimestamp() throws IOException { - List expectedResults = new ArrayList<>(); - expectedResults.add("range:mileage 4131 km"); - String content = Files.readString(Path.of("src/test/resources/invalid-timestamp.json")); - JSONArray ja = new JSONArray(content); - assertTrue(ja.length() > 0); - ja.forEach(entry -> { - JSONObject jo = (JSONObject) entry; - ChannelStateMap csm = Mapper.getChannelStateMap(jo); - assertNotNull(csm); - assertTrue(expectedResults.contains(csm.toString())); - assertEquals(-1, csm.getTimestamp()); - boolean removed = expectedResults.remove(csm.toString()); - if (!removed) { - assertTrue(false, csm.toString() + " not removed"); - } - }); - assertEquals(0, expectedResults.size(), "All content delivered"); - } -} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/MetadataRegistryMock.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/MetadataRegistryMock.java new file mode 100644 index 00000000000..a675a498b6a --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/MetadataRegistryMock.java @@ -0,0 +1,88 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.stream.Stream; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.core.common.registry.RegistryChangeListener; +import org.openhab.core.items.Metadata; +import org.openhab.core.items.MetadataKey; +import org.openhab.core.items.MetadataRegistry; + +/** + * {@link MetadataRegistryMock} object for unit testing + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class MetadataRegistryMock implements MetadataRegistry { + List metaDataList = new ArrayList<>(); + + @Override + public void addRegistryChangeListener(RegistryChangeListener listener) { + } + + @Override + public Collection getAll() { + return metaDataList; + } + + @Override + public Stream stream() { + return metaDataList.stream(); + } + + @Override + public @Nullable Metadata get(MetadataKey key) { + return null; + } + + @Override + public void removeRegistryChangeListener(RegistryChangeListener listener) { + } + + @Override + public Metadata add(Metadata element) { + metaDataList.add(element); + return element; + } + + @Override + public @Nullable Metadata update(Metadata element) { + return element; + } + + @Override + public @Nullable Metadata remove(MetadataKey key) { + return null; + } + + @Override + public boolean isInternalNamespace(String namespace) { + return false; + } + + @Override + public Collection getAllNamespaces(String itemname) { + return List.of(); + } + + @Override + public void removeItemMetadata(String itemname) { + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/MetadataTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/MetadataTest.java new file mode 100644 index 00000000000..33d5be59e1f --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/MetadataTest.java @@ -0,0 +1,87 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.*; + +import javax.measure.quantity.Length; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.junit.jupiter.api.Test; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.MercedesMeMetadataAdjuster; +import org.openhab.core.i18n.UnitProvider; +import org.openhab.core.library.unit.ImperialUnits; +import org.openhab.core.library.unit.SIUnits; +import org.openhab.core.thing.ChannelUID; +import org.openhab.core.thing.ThingUID; +import org.openhab.core.thing.link.ItemChannelLink; +import org.openhab.core.thing.link.ItemChannelLinkRegistry; + +/** + * {@link MetadataTest} testing updates in item metadata changes + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +class MetadataTest { + + @Test + public void testMetadataUpdate() { + MetadataRegistryMock mdrm = new MetadataRegistryMock(); + UnitProvider unitProviderMock = mock(UnitProvider.class); + when(unitProviderMock.getUnit(Length.class)).thenReturn(SIUnits.METRE); + + ThingUID tuid = new ThingUID(Constants.BINDING_ID, Constants.BEV, "test"); + MercedesMeMetadataAdjuster mmma = new MercedesMeMetadataAdjuster(mdrm, mock(ItemChannelLinkRegistry.class), + unitProviderMock); + mmma.added(new ItemChannelLink("Soc_Test_Item", new ChannelUID(tuid, Constants.GROUP_RANGE, "soc"))); + assertEquals("%", mdrm.getAll().iterator().next().getValue(), "Percent Unit"); + + mdrm = new MetadataRegistryMock(); + mmma = new MercedesMeMetadataAdjuster(mdrm, mock(ItemChannelLinkRegistry.class), unitProviderMock); + mmma.added(new ItemChannelLink("Pressure_Test_Item", + new ChannelUID(tuid, Constants.GROUP_TIRES, "pressure-front-right"))); + assertEquals("bar", mdrm.getAll().iterator().next().getValue(), "Prressure Unit"); + + mdrm = new MetadataRegistryMock(); + mmma = new MercedesMeMetadataAdjuster(mdrm, mock(ItemChannelLinkRegistry.class), unitProviderMock); + mmma.added(new ItemChannelLink("Mileage_Test_Item", new ChannelUID(tuid, Constants.GROUP_RANGE, "mileage"))); + assertEquals("km", mdrm.getAll().iterator().next().getValue(), "Kilometer Unit"); + } + + @Test + public void testImperialMetadataUpdate() { + MetadataRegistryMock mdrm = new MetadataRegistryMock(); + UnitProvider unitProviderMock = mock(UnitProvider.class); + when(unitProviderMock.getUnit(Length.class)).thenReturn(ImperialUnits.FOOT); + + ThingUID tuid = new ThingUID(Constants.BINDING_ID, Constants.BEV); + MercedesMeMetadataAdjuster mmma = new MercedesMeMetadataAdjuster(mdrm, mock(ItemChannelLinkRegistry.class), + unitProviderMock); + mmma.added(new ItemChannelLink("Soc_Test_Item", new ChannelUID(tuid, Constants.GROUP_RANGE, "soc"))); + assertEquals("%", mdrm.getAll().iterator().next().getValue(), "Percent Unit"); + + mdrm = new MetadataRegistryMock(); + mmma = new MercedesMeMetadataAdjuster(mdrm, mock(ItemChannelLinkRegistry.class), unitProviderMock); + mmma.added(new ItemChannelLink("Mileage_Test_Item", new ChannelUID(tuid, Constants.GROUP_RANGE, "mileage"))); + assertEquals("mi", mdrm.getAll().iterator().next().getValue(), "Mile Unit"); + + mdrm = new MetadataRegistryMock(); + mmma = new MercedesMeMetadataAdjuster(mdrm, mock(ItemChannelLinkRegistry.class), unitProviderMock); + mmma.added(new ItemChannelLink("Mileage_Test_Item", + new ChannelUID(tuid, Constants.GROUP_TIRES, "pressure-rear-right"))); + assertEquals("psi", mdrm.getAll().iterator().next().getValue(), "Prressure Unit"); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ProtoTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ProtoTest.java new file mode 100644 index 00000000000..2eeabf63f85 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/ProtoTest.java @@ -0,0 +1,131 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme; + +import static org.junit.jupiter.api.Assertions.*; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.json.JSONObject; +import org.junit.jupiter.api.Test; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.handler.ProtoConverter; +import org.openhab.binding.mercedesme.internal.utils.Utils; + +import com.daimler.mbcarkit.proto.VehicleEvents; +import com.daimler.mbcarkit.proto.VehicleEvents.PushMessage; +import com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate; +import com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdatesByVIN; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus; + +/** + * {@link ProtoTest} to check conversions made in the binding proto <-> json + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +class ProtoTest { + public static final String VIN_ANON = "anonymous"; + + void vinAndPositionAnaon() { + /** + * Make VIN and GPS data from proto blob anonymous + */ + try { + FileInputStream fis = new FileInputStream("src/test/resources/proto-blob/EQA-Precond-Active.blob"); + PushMessage pm = VehicleEvents.PushMessage.parseFrom(fis); + Map updates = pm.getVepUpdates().getUpdatesMap(); + VEPUpdate vepUpdate = updates.get("REAL_VIN"); + VehicleAttributeStatus latStatus = VehicleAttributeStatus.newBuilder().setDoubleValue(1.23) + .setTimestampInMs(1692957336).build(); + VehicleAttributeStatus lonStatus = VehicleAttributeStatus.newBuilder().setDoubleValue(4.56) + .setTimestampInMs(1692957336).build(); + VEPUpdate vepUpdateAnon = VEPUpdate.newBuilder().mergeFrom(vepUpdate).setVin(VIN_ANON) + .putAttributes("positionLat", latStatus).putAttributes("positionLong", lonStatus).build(); + PushMessage pmAnon = PushMessage.newBuilder() + .setVepUpdates(VEPUpdatesByVIN.newBuilder().putUpdates(VIN_ANON, vepUpdateAnon).build()).build(); + try (FileOutputStream outputStream = new FileOutputStream("src/test/resources/proto-blob/anon.blob")) { + pmAnon.writeTo(outputStream); + } + } catch (IOException e) { + fail(); + } + } + + @Test + void testProtoBlob2Json() { + try { + FileInputStream fis = new FileInputStream("src/test/resources/proto-blob/MB-BEV-EQA-Charging.blob"); + PushMessage pm = VehicleEvents.PushMessage.parseFrom(fis); + Map updates = pm.getVepUpdates().getUpdatesMap(); + VEPUpdate vepUpdate = updates.get(VIN_ANON); + if (vepUpdate != null) { + String protoJson = Utils.proto2Json(vepUpdate, Constants.THING_TYPE_BEV); + String referenceJson = FileReader + .readFileInString("src/test/resources/proto-json/MB-BEV-EQA-Charging-Unformatted.json"); + assertEquals(referenceJson, protoJson, "Prto2Json compare"); + JSONObject protoJsonObject = new JSONObject(protoJson); + // plus one due to added binding version + assertEquals(vepUpdate.getAttributesCount() + 1, protoJsonObject.length(), "Attributes Count"); + // assure version is in + assertTrue(protoJsonObject.has("bindingInfo")); + VEPUpdate roundTrip = ProtoConverter.json2Proto(protoJsonObject.toString(), true); + assertEquals(157, roundTrip.getAttributesCount(), "Roundtrip Count"); + } else { + fail(); + } + } catch (IOException e) { + fail(); + } + } + + @Test + void testEndChargeTime() { + try { + FileInputStream fis = new FileInputStream("src/test/resources/proto-blob/MB-BEV-EQA-Charging.blob"); + PushMessage pm = VehicleEvents.PushMessage.parseFrom(fis); + VehicleEvents.VEPUpdatesByVIN updates = pm.getVepUpdates(); + VEPUpdate vepUpdate = updates.getUpdatesMap().get(VIN_ANON); + assertNotNull(vepUpdate); + Map m = vepUpdate.getAttributesMap(); + VehicleAttributeStatus value = m.get("endofchargetime"); + assertNotNull(value); + long minutesAfterMIdnight = value.getIntValue(); + long hours = minutesAfterMIdnight / 60; + long minutes = minutesAfterMIdnight - hours * 60; + assertEquals(value.getDisplayValue(), hours + ":" + minutes); + } catch (IOException e) { + fail(); + } + } + + @Test + void testChargeProgramValues() { + assertEquals(0, Utils.getChargeProgramNumber("DEFAULT_CHARGE_PROGRAM"), "Default Charge Program"); + assertEquals(2, Utils.getChargeProgramNumber("HOME_CHARGE_PROGRAM"), "Home Charge Program"); + assertEquals(3, Utils.getChargeProgramNumber("WORK_CHARGE_PROGRAM"), "Work Charge Program"); + assertEquals(-1, Utils.getChargeProgramNumber("whatever"), "Fail Value"); + } + + @Test + void testTemperaturePointsValues() { + assertEquals(3, Utils.getZoneNumber("frontCenter"), "Front Center Zone"); + assertEquals(1, Utils.getZoneNumber("frontLeft"), "Front Left Zone"); + assertEquals(2, Utils.getZoneNumber("frontRight"), "Front Right Zone"); + assertEquals(-1, Utils.getZoneNumber("whatever"), "Fail Value"); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/StatusTests.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/StatusTests.java new file mode 100644 index 00000000000..ba4a8f53c3b --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/StatusTests.java @@ -0,0 +1,145 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme; + +import static org.junit.jupiter.api.Assertions.*; + +import java.time.Instant; +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.junit.jupiter.api.Test; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.handler.AccountHandlerMock; +import org.openhab.binding.mercedesme.internal.handler.ThingCallbackListener; +import org.openhab.binding.mercedesme.internal.utils.Utils; +import org.openhab.core.auth.client.oauth2.AccessTokenResponse; +import org.openhab.core.config.core.Configuration; +import org.openhab.core.thing.ThingStatus; +import org.openhab.core.thing.ThingStatusDetail; +import org.openhab.core.thing.ThingTypeUID; +import org.openhab.core.thing.internal.BridgeImpl; + +/** + * {@link StatusTests} sequencess for testing ThingStatus + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +class StatusTests { + + public static void tearDown(AccountHandlerMock ahm) { + // ahm.setCallback(null); + ahm.dispose(); + try { + Thread.sleep(250); + } catch (InterruptedException e) { + fail(); + } + } + + @Test + void testInvalidConfig() { + BridgeImpl bi = new BridgeImpl(new ThingTypeUID("test", "account"), "MB"); + Map config = new HashMap<>(); + config.put("callbackIP", "999.999.999.999"); + config.put("callbackPort", "99999"); + bi.setConfiguration(new Configuration(config)); + AccountHandlerMock ahm = new AccountHandlerMock(bi, null); + ThingCallbackListener tcl = new ThingCallbackListener(); + ahm.setCallback(tcl); + ahm.initialize(); + assertEquals(ThingStatus.OFFLINE, tcl.getThingStatus().getStatus(), "EMail offline"); + assertEquals(ThingStatusDetail.CONFIGURATION_ERROR, tcl.getThingStatus().getStatusDetail(), "EMail config"); + assertEquals("@text/mercedesme.account.status.email-missing", tcl.getThingStatus().getDescription(), + "EMail text"); + config.put("email", "a@b.c"); + bi.setConfiguration(new Configuration(config)); + ahm.initialize(); + assertEquals(ThingStatus.OFFLINE, tcl.getThingStatus().getStatus(), "Region offline"); + assertEquals(ThingStatusDetail.CONFIGURATION_ERROR, tcl.getThingStatus().getStatusDetail(), "Region config"); + assertEquals("@text/mercedesme.account.status.region-missing", tcl.getThingStatus().getDescription(), + "Region text"); + config.put("region", "row"); + bi.setConfiguration(new Configuration(config)); + ahm.initialize(); + assertEquals(ThingStatus.OFFLINE, tcl.getThingStatus().getStatus(), "Auth offline"); + assertEquals(ThingStatusDetail.NONE, tcl.getThingStatus().getStatusDetail(), "Auth detail"); + config.put("refreshInterval", 0); + bi.setConfiguration(new Configuration(config)); + ahm.initialize(); + assertEquals(ThingStatus.OFFLINE, tcl.getThingStatus().getStatus(), "Refresh offline"); + assertEquals(ThingStatusDetail.CONFIGURATION_ERROR, tcl.getThingStatus().getStatusDetail(), "Refresh config"); + assertEquals("@text/mercedesme.account.status.refresh-invalid", tcl.getThingStatus().getDescription(), + "Refresh text"); + tearDown(ahm); + } + + @Test + void testNoTokenStored() { + BridgeImpl bi = new BridgeImpl(new ThingTypeUID("test", "account"), "MB"); + Map config = new HashMap<>(); + config.put("refreshInterval", Integer.MAX_VALUE); + config.put("region", "row"); + config.put("email", "a@b.c"); + config.put("callbackIP", "999.999.999.999"); + config.put("callbackPort", "99999"); + bi.setConfiguration(new Configuration(config)); + AccountHandlerMock ahm = new AccountHandlerMock(bi, null); + ThingCallbackListener tcl = new ThingCallbackListener(); + ahm.setCallback(tcl); + ahm.initialize(); + assertEquals(ThingStatus.OFFLINE, tcl.getThingStatus().getStatus(), "Auth Offline"); + assertEquals(ThingStatusDetail.COMMUNICATION_ERROR, tcl.getThingStatus().getStatusDetail(), "Auth details"); + String statusDescription = tcl.getThingStatus().getDescription(); + assertNotNull(statusDescription); + assertTrue(statusDescription.contains("@text/mercedesme.account.status.authorization-needed"), "Auth text"); + AccessTokenResponse token = new AccessTokenResponse(); + token.setExpiresIn(3000); + token.setAccessToken(Constants.JUNIT_TOKEN); + token.setRefreshToken(Constants.JUNIT_REFRESH_TOKEN); + ahm.onAccessTokenResponse(token); + ahm.connect(); + assertEquals(ThingStatus.ONLINE, tcl.getThingStatus().getStatus(), "Auth Online"); + tearDown(ahm); + } + + @Test + void testTokenStored() { + BridgeImpl bi = new BridgeImpl(new ThingTypeUID("test", "account"), "MB"); + Map config = new HashMap<>(); + config.put("refreshInterval", Integer.MAX_VALUE); + config.put("region", "row"); + config.put("email", "a@b.c"); + config.put("callbackIP", "999.999.999.999"); + config.put("callbackPort", "99999"); + bi.setConfiguration(new Configuration(config)); + AccessTokenResponse token = new AccessTokenResponse(); + token.setExpiresIn(3000); + token.setAccessToken(Constants.JUNIT_TOKEN); + token.setRefreshToken(Constants.JUNIT_REFRESH_TOKEN); + token.setCreatedOn(Instant.now()); + token.setTokenType("Bearer"); + token.setScope(Constants.SCOPE); + AccountHandlerMock ahm = new AccountHandlerMock(bi, Utils.toString(token)); + ThingCallbackListener tcl = new ThingCallbackListener(); + ahm.setCallback(tcl); + ahm.initialize(); + assertEquals(ThingStatus.UNKNOWN, tcl.getThingStatus().getStatus(), "Socket Unknown " + + tcl.getThingStatus().getStatusDetail() + " " + tcl.getThingStatus().getDescription()); + ahm.connect(); + assertEquals(ThingStatus.ONLINE, tcl.getThingStatus().getStatus(), "Spcket Online"); + tearDown(ahm); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/UtilsTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/UtilsTest.java new file mode 100644 index 00000000000..b330c42b2dd --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/UtilsTest.java @@ -0,0 +1,119 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme; + +import static org.junit.jupiter.api.Assertions.*; + +import java.io.File; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.junit.jupiter.api.Test; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.utils.UOMObserver; +import org.openhab.binding.mercedesme.internal.utils.Utils; +import org.openhab.core.library.unit.ImperialUnits; + +/** + * {@link UtilsTest} for helper functions + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +class UtilsTest { + + @Test + void testRound() { + int socValue = 66; + double batteryCapacity = 66.5; + float chargedValue = Math.round(socValue * 1000 * (float) batteryCapacity / 1000) / (float) 100; + assertEquals(43.89, chargedValue, 0.01); + float unchargedValue = Math.round((100 - socValue) * 1000 * (float) batteryCapacity / 1000) / (float) 100; + assertEquals(22.61, unchargedValue, 0.01); + assertEquals(batteryCapacity, chargedValue + unchargedValue, 0.01); + } + + @Test + public void testDuration() { + assertEquals("-1", Utils.getDurationString(-1), "negative"); + assertEquals("59m", Utils.getDurationString(59), "only minutes"); + assertEquals("2h 32m", Utils.getDurationString(2 * 60 + 32), "below one day"); + assertEquals("1d 0h 0m", Utils.getDurationString(24 * 60), "exact one day"); + assertEquals("1d 0h 14m", Utils.getDurationString(24 * 60 + 14), " one day no hour"); + assertEquals("11d 2h 40m", Utils.getDurationString(16000), "> eleven days"); + } + + @Test + public void testPattern() { + UOMObserver obersver = new UOMObserver(UOMObserver.LENGTH_KM_UNIT); + assertEquals("%.0f km", obersver.getPattern(Constants.GROUP_RANGE, ""), "Range km as int"); + assertEquals("%.1f km", obersver.getPattern(Constants.GROUP_TRIP, ""), "Trip km with one decimal"); + assertEquals(Constants.KILOMETRE_UNIT, obersver.getUnit(), "Unit km"); + + obersver = new UOMObserver(UOMObserver.LENGTH_MILES_UNIT); + assertEquals("%.0f mi", obersver.getPattern(Constants.GROUP_RANGE, ""), "Range mi as int"); + assertEquals("%.1f mi", obersver.getPattern(Constants.GROUP_TRIP, ""), "Trip mi with one decimal"); + assertEquals(ImperialUnits.MILE, obersver.getUnit(), "Unit mi"); + } + + @Test + public void testHVACZoneValues() { + assertEquals(1, Utils.getZoneNumber("frontLeft"), "Front Left"); + assertEquals(2, Utils.getZoneNumber("frontRight"), "Front Right"); + assertEquals(3, Utils.getZoneNumber("frontCenter"), "Front Center"); + assertEquals(4, Utils.getZoneNumber("rearLeft"), "Rear Left"); + assertEquals(6, Utils.getZoneNumber("rearCenter"), "Rear Center"); + assertEquals(0, Utils.getZoneNumber("unknown"), "Unknown"); + } + + @Test + public void testChargeProgramValues() { + assertEquals(0, Utils.getChargeProgramNumber("DEFAULT_CHARGE_PROGRAM"), "Default"); + assertEquals(2, Utils.getChargeProgramNumber("HOME_CHARGE_PROGRAM"), "Home"); + assertEquals(3, Utils.getChargeProgramNumber("WORK_CHARGE_PROGRAM"), "Work"); + assertEquals(-1, Utils.getChargeProgramNumber("UNKNOWN"), "Unknown"); + } + + @Test + public void testChannelNameLength() { + File configDir = new File("src/main/resources/OH-INF/thing"); + File[] configFiles = configDir.listFiles(); + // ensure channel name <= 20 + for (int i = 0; i < configFiles.length; i++) { + if (configFiles[i].getName().endsWith("group.xml")) { + String content = FileReader.readFileInString(configFiles[i].toString()); + String[] splits = content.split(""); + for (int j = 1; j < splits.length; j++) { + String[] furtherSplit = splits[j].split(""); + assertTrue(furtherSplit[0].length() <= 25, "Length violation " + furtherSplit[0]); + } + } + } + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/AccountHandlerMock.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/AccountHandlerMock.java new file mode 100644 index 00000000000..81e794eeede --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/AccountHandlerMock.java @@ -0,0 +1,94 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.handler; + +import static org.mockito.Mockito.mock; + +import java.util.Locale; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.websocket.api.Session; +import org.json.JSONObject; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.config.AccountConfiguration; +import org.openhab.binding.mercedesme.internal.discovery.MercedesMeDiscoveryService; +import org.openhab.core.i18n.LocaleProvider; +import org.openhab.core.net.NetworkAddressService; +import org.openhab.core.storage.Storage; +import org.openhab.core.storage.StorageService; +import org.openhab.core.test.storage.VolatileStorageService; +import org.openhab.core.thing.Bridge; + +import com.daimler.mbcarkit.proto.Client.ClientMessage; + +/** + * {@link AccountHandlerMock} to retrieve and collect commands from {@link VehicleHandler} + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class AccountHandlerMock extends AccountHandler { + private static VolatileStorageService storageService = new VolatileStorageService(); + private static LocaleProvider localeProvider = new LocaleProvider() { + + @Override + public Locale getLocale() { + return Locale.getDefault(); + } + }; + + JSONObject command = new JSONObject(); + + public AccountHandlerMock() { + super(mock(Bridge.class), mock(MercedesMeDiscoveryService.class), mock(HttpClient.class), + mock(LocaleProvider.class), mock(StorageService.class), mock(NetworkAddressService.class)); + } + + public AccountHandlerMock(Bridge b, @Nullable String storedObject) { + super(b, mock(MercedesMeDiscoveryService.class), mock(HttpClient.class), localeProvider, storageService, + mock(NetworkAddressService.class)); + if (storedObject != null) { + Storage storage = storageService.getStorage(Constants.BINDING_ID); + storage.put("a@b.c", storedObject); + } + } + + @Override + public void registerVin(String vin, VehicleHandler handler) { + } + + @Override + public void getVehicleCapabilities(String vin) { + } + + @Override + public void sendCommand(@Nullable ClientMessage cm) { + if (cm != null) { + command = ProtoConverter.clientMessage2Json(cm); + } + } + + public AccountConfiguration getConfigT() { + return new AccountConfiguration(); + } + + public JSONObject getCommand() { + return command; + } + + public void connect() { + super.ws.onConnect(mock(Session.class)); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/LocationProviderMock.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/LocationProviderMock.java new file mode 100644 index 00000000000..fc536058851 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/LocationProviderMock.java @@ -0,0 +1,32 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.handler; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.core.i18n.LocationProvider; +import org.openhab.core.library.types.PointType; + +/** + * {@link LocationProviderMock} to mock possible locations + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class LocationProviderMock implements LocationProvider { + + @Override + public @Nullable PointType getLocation() { + return new PointType("1.234,9.876"); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/MercedesMeCommandOptionProviderMock.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/MercedesMeCommandOptionProviderMock.java new file mode 100644 index 00000000000..f4ac7f61c85 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/MercedesMeCommandOptionProviderMock.java @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.handler; + +import static org.mockito.Mockito.mock; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.binding.mercedesme.internal.MercedesMeCommandOptionProvider; +import org.openhab.core.events.EventPublisher; +import org.openhab.core.thing.ChannelUID; +import org.openhab.core.thing.i18n.ChannelTypeI18nLocalizationService; +import org.openhab.core.thing.link.ItemChannelLinkRegistry; +import org.openhab.core.types.CommandOption; + +/** + * {@link MercedesMeCommandOptionProviderMock} Mock to collect CommandOption settings + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class MercedesMeCommandOptionProviderMock extends MercedesMeCommandOptionProvider { + public Map> commands = new HashMap<>(); + + public MercedesMeCommandOptionProviderMock() { + super(mock(EventPublisher.class), mock(ItemChannelLinkRegistry.class), + mock(ChannelTypeI18nLocalizationService.class)); + } + + @Override + public void setCommandOptions(ChannelUID cuid, List col) { + commands.put(cuid.toString(), col); + } + + public List getCommandList(String channel) { + List commandList = commands.get(channel); + if (commandList != null) { + return commandList; + } + return List.of(); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/MercedesMeDynamicStateDescriptionProviderMock.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/MercedesMeDynamicStateDescriptionProviderMock.java new file mode 100644 index 00000000000..52d85bbd54c --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/MercedesMeDynamicStateDescriptionProviderMock.java @@ -0,0 +1,44 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.handler; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.openhab.binding.mercedesme.internal.MercedesMeStateOptionProvider; +import org.openhab.core.events.EventPublisher; +import org.openhab.core.thing.ChannelUID; +import org.openhab.core.thing.i18n.ChannelTypeI18nLocalizationService; +import org.openhab.core.thing.link.ItemChannelLinkRegistry; + +/** + * {@link MercedesMeDynamicStateDescriptionProviderMock} Mock to collect StatePattern settings + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class MercedesMeDynamicStateDescriptionProviderMock extends MercedesMeStateOptionProvider { + public MercedesMeDynamicStateDescriptionProviderMock(EventPublisher eventPublisher, + ItemChannelLinkRegistry itemChannelLinkRegistry, + ChannelTypeI18nLocalizationService channelTypeI18nLocalizationService) { + super(eventPublisher, itemChannelLinkRegistry, channelTypeI18nLocalizationService); + } + + public Map patternMap = new HashMap<>(); + + @Override + public void setStatePattern(ChannelUID channelUID, String pattern) { + patternMap.put(channelUID.toString(), pattern); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/ProtoConverter.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/ProtoConverter.java new file mode 100644 index 00000000000..c3f3968b58d --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/ProtoConverter.java @@ -0,0 +1,197 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.handler; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.json.JSONArray; +import org.json.JSONObject; +import org.openhab.binding.mercedesme.internal.utils.Utils; + +import com.daimler.mbcarkit.proto.Client.ClientMessage; +import com.daimler.mbcarkit.proto.VehicleCommands.CommandRequest; +import com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgram; +import com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters; +import com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramsValue; +import com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint; +import com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePointsValue; +import com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ClockHourUnit; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.CombustionConsumptionUnit; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.DistanceUnit; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.ElectricityConsumptionUnit; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.GasConsumptionUnit; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.PressureUnit; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.RatioUnit; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.SpeedUnit; +import com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.TemperatureUnit; +import com.google.protobuf.Int32Value; + +/** + * {@link ProtoConverter} Proto conversions for Unit Tests and not necessary for binding + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class ProtoConverter { + + public static VEPUpdate json2Proto(String json, boolean fullUpdate) { + JSONObject jsonObj = new JSONObject(json); + Map updateMap = new HashMap<>(); + Iterator keyIter = jsonObj.keys(); + while (keyIter.hasNext()) { + String key = keyIter.next(); + JSONObject value = jsonObj.getJSONObject(key); + Iterator valueIter = value.keys(); + com.daimler.mbcarkit.proto.VehicleEvents.VehicleAttributeStatus.Builder builder = VehicleAttributeStatus + .newBuilder(); + while (valueIter.hasNext()) { + String valueKey = valueIter.next(); + switch (valueKey) { + case "timestamp_in_ms": + builder.setTimestampInMs(value.getLong(valueKey)); + break; + case "timestamp": + builder.setTimestampInMs(value.getLong(valueKey) * 1000); + break; + case "bool_value": + builder.setBoolValue(value.getBoolean(valueKey)); + break; + case "nil_value": + builder.setNilValue(value.getBoolean(valueKey)); + break; + case "status": + builder.setStatus(value.getInt(valueKey)); + break; + case "int_value": + builder.setIntValue(value.getInt(valueKey)); + break; + case "display_value": + builder.setDisplayValue(value.getString(valueKey)); + break; + case "double_value": + builder.setDoubleValue(value.getDouble(valueKey)); + break; + case "distance_unit": + builder.setDistanceUnit(DistanceUnit.valueOf(value.getString(valueKey))); + break; + case "electricity_consumption_unit": + builder.setElectricityConsumptionUnit( + ElectricityConsumptionUnit.valueOf(value.getString(valueKey))); + break; + case "speed_unit": + builder.setSpeedUnit(SpeedUnit.valueOf(value.getString(valueKey))); + break; + case "ratio_unit": + builder.setRatioUnit(RatioUnit.valueOf(value.getString(valueKey))); + break; + case "gas_consumption_unit": + builder.setGasConsumptionUnit(GasConsumptionUnit.valueOf(value.getString(valueKey))); + break; + case "pressure_unit": + builder.setPressureUnit(PressureUnit.valueOf(value.getString(valueKey))); + break; + case "combustion_consumption_unit": + builder.setCombustionConsumptionUnit( + CombustionConsumptionUnit.valueOf(value.getString(valueKey))); + break; + case "temperature_unit": + builder.setTemperatureUnit(TemperatureUnit.valueOf(value.getString(valueKey))); + break; + case "clock_hour_unit": + builder.setClockHourUnit(ClockHourUnit.valueOf(value.getString(valueKey))); + break; + case "temperature_points_value": + JSONArray temperaturepointsJson = value.getJSONObject(valueKey) + .getJSONArray("temperature_points"); + List tpList = new ArrayList<>(); + for (int i = 0; i < temperaturepointsJson.length(); i++) { + com.daimler.mbcarkit.proto.VehicleEvents.TemperaturePoint.Builder tpBuilder = TemperaturePoint + .newBuilder(); + JSONObject tpJson = temperaturepointsJson.getJSONObject(i); + Iterator tempPointJsonIterator = tpJson.keys(); + while (tempPointJsonIterator.hasNext()) { + String tpValueKey = tempPointJsonIterator.next(); + switch (tpValueKey) { + case "temperature": + tpBuilder.setTemperature(tpJson.getDouble(tpValueKey)); + break; + case "zone": + tpBuilder.setZone(tpJson.getString(tpValueKey)); + break; + case "temperature_display_value": + tpBuilder.setTemperatureDisplayValue(tpJson.getString(tpValueKey)); + break; + } + } + TemperaturePoint tpProto = tpBuilder.build(); + tpList.add(tpProto); + } + TemperaturePointsValue tpValueProto = TemperaturePointsValue.newBuilder() + .addAllTemperaturePoints(tpList).build(); + builder.setTemperaturePointsValue(tpValueProto); + break; + case "charge_programs_value": + List chargeProgramsList = new ArrayList<>(); + JSONArray chargeProgramsJsonArray = value.getJSONArray("charge_programs_value"); + for (int i = 0; i < chargeProgramsJsonArray.length(); i++) { + com.daimler.mbcarkit.proto.VehicleEvents.ChargeProgramParameters.Builder chargeProgramBuilder = ChargeProgramParameters + .newBuilder(); + JSONObject chargeProgramJson = chargeProgramsJsonArray.getJSONObject(i); + Iterator chargeProgramJsonIterator = chargeProgramJson.keys(); + while (chargeProgramJsonIterator.hasNext()) { + String chargeProgramKey = chargeProgramJsonIterator.next(); + switch (chargeProgramKey) { + case "charge_program": + chargeProgramBuilder.setChargeProgram( + ChargeProgram.valueOf(chargeProgramJson.getString(chargeProgramKey))); + break; + case "max_soc": + chargeProgramBuilder.setMaxSoc(chargeProgramJson.getInt(chargeProgramKey)); + break; + } + } + chargeProgramsList.add(chargeProgramBuilder.build()); + } + ChargeProgramsValue cpv = ChargeProgramsValue.newBuilder() + .addAllChargeProgramParameters(chargeProgramsList).build(); + builder.setChargeProgramsValue(cpv); + break; + } + } + updateMap.put(key, builder.build()); + } + return VEPUpdate.newBuilder().setFullUpdate(fullUpdate).putAllAttributes(updateMap).build(); + } + + public static JSONObject clientMessage2Json(ClientMessage cm) { + JSONObject cmJson = new JSONObject(); + CommandRequest cr = cm.getCommandRequest(); + if (cr.hasTemperatureConfigure()) { + return Utils.getJsonObject(cr.getTemperatureConfigure().getTemperaturePoints(0).getAllFields()); + } + if (cr.hasChargeProgramConfigure()) { + JSONObject cpv = Utils.getJsonObject(cr.getChargeProgramConfigure().getAllFields()); + Int32Value soc = (Int32Value) cpv.get("max_soc"); + cpv.put("max_soc", soc.getValue()); + return cpv; + } + return cmJson; + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/ThingCallbackListener.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/ThingCallbackListener.java new file mode 100644 index 00000000000..d785afedb1c --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/ThingCallbackListener.java @@ -0,0 +1,163 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.handler; + +import static org.mockito.Mockito.mock; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.eclipse.jdt.annotation.Nullable; +import org.openhab.core.config.core.ConfigDescription; +import org.openhab.core.config.core.Configuration; +import org.openhab.core.thing.Bridge; +import org.openhab.core.thing.Channel; +import org.openhab.core.thing.ChannelGroupUID; +import org.openhab.core.thing.ChannelUID; +import org.openhab.core.thing.Thing; +import org.openhab.core.thing.ThingStatusInfo; +import org.openhab.core.thing.ThingTypeUID; +import org.openhab.core.thing.ThingUID; +import org.openhab.core.thing.binding.ThingHandlerCallback; +import org.openhab.core.thing.binding.builder.ChannelBuilder; +import org.openhab.core.thing.type.ChannelGroupTypeUID; +import org.openhab.core.thing.type.ChannelTypeUID; +import org.openhab.core.types.Command; +import org.openhab.core.types.State; +import org.openhab.core.types.TimeSeries; +import org.openhab.core.types.UnDefType; + +/** + * {@link ThingCallbackListener} Listener mock to store vehicle state updates + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +public class ThingCallbackListener implements ThingHandlerCallback { + + public Map updatesReceived = new HashMap<>(); + public Map> updatesPerGroupMap = new HashMap<>(); + public boolean linked = false; + public Optional status = Optional.empty(); + + public ThingStatusInfo getThingStatus() { + return status.get(); + } + + public int getUpdatesForGroup(String group) { + Map groupMap = updatesPerGroupMap.get(group); + if (groupMap != null) { + return groupMap.size(); + } + return 0; + } + + @Override + public void stateUpdated(ChannelUID channelUID, State state) { + updatesReceived.put(channelUID.toString(), state); + Map groupMap = updatesPerGroupMap.get(channelUID.getGroupId()); + if (groupMap == null) { + groupMap = new HashMap<>(); + String groupId = channelUID.getGroupId(); + if (groupId != null) { + updatesPerGroupMap.put(groupId, groupMap); + } + } + groupMap.put(channelUID.toString(), state); + } + + @Override + public void postCommand(ChannelUID channelUID, Command command) { + } + + @Override + public void statusUpdated(Thing thing, ThingStatusInfo thingStatus) { + status = Optional.of(thingStatus); + } + + @Override + public void thingUpdated(Thing thing) { + } + + @Override + public void validateConfigurationParameters(Thing thing, Map configurationParameters) { + } + + @Override + public void validateConfigurationParameters(Channel channel, Map configurationParameters) { + } + + @Override + public @Nullable ConfigDescription getConfigDescription(ChannelTypeUID channelTypeUID) { + return null; + } + + @Override + public @Nullable ConfigDescription getConfigDescription(ThingTypeUID thingTypeUID) { + return null; + } + + @Override + public void configurationUpdated(Thing thing) { + } + + @Override + public void migrateThingType(Thing thing, ThingTypeUID thingTypeUID, Configuration configuration) { + } + + @Override + public void channelTriggered(Thing thing, ChannelUID channelUID, String event) { + } + + @Override + public ChannelBuilder createChannelBuilder(ChannelUID channelUID, ChannelTypeUID channelTypeUID) { + return mock(ChannelBuilder.class); + } + + @Override + public ChannelBuilder editChannel(Thing thing, ChannelUID channelUID) { + return mock(ChannelBuilder.class); + } + + @Override + public List createChannelBuilders(ChannelGroupUID channelGroupUID, + ChannelGroupTypeUID channelGroupTypeUID) { + return new ArrayList(); + } + + @Override + public boolean isChannelLinked(ChannelUID channelUID) { + return linked; + } + + @Override + public @Nullable Bridge getBridge(ThingUID bridgeUID) { + return null; + } + + @Override + public void sendTimeSeries(ChannelUID channelUID, TimeSeries timeSeries) { + } + + public State getResponse(String channel) { + State response = updatesReceived.get(channel); + if (response != null) { + return response; + } + return UnDefType.UNDEF; + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandlerTest.java b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandlerTest.java new file mode 100644 index 00000000000..ade56576842 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/java/org/openhab/binding/mercedesme/internal/handler/VehicleHandlerTest.java @@ -0,0 +1,465 @@ +/** + * Copyright (c) 2010-2024 Contributors to the openHAB project + * + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 + */ +package org.openhab.binding.mercedesme.internal.handler; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.*; + +import java.util.Optional; + +import org.eclipse.jdt.annotation.NonNullByDefault; +import org.junit.jupiter.api.Test; +import org.openhab.binding.mercedesme.FileReader; +import org.openhab.binding.mercedesme.internal.Constants; +import org.openhab.binding.mercedesme.internal.MercedesMeCommandOptionProvider; +import org.openhab.binding.mercedesme.internal.MercedesMeStateOptionProvider; +import org.openhab.binding.mercedesme.internal.config.VehicleConfiguration; +import org.openhab.binding.mercedesme.internal.utils.Utils; +import org.openhab.core.events.EventPublisher; +import org.openhab.core.library.types.DateTimeType; +import org.openhab.core.library.types.DecimalType; +import org.openhab.core.library.types.QuantityType; +import org.openhab.core.thing.ChannelUID; +import org.openhab.core.thing.Thing; +import org.openhab.core.thing.ThingUID; +import org.openhab.core.thing.i18n.ChannelTypeI18nLocalizationService; +import org.openhab.core.thing.link.ItemChannelLinkRegistry; +import org.openhab.core.types.RefreshType; + +import com.daimler.mbcarkit.proto.VehicleEvents.VEPUpdate; + +/** + * {@link VehicleHandlerTest} check state updates and command sending of vehicles + * + * @author Bernd Weymann - Initial contribution + */ +@NonNullByDefault +class VehicleHandlerTest { + + @Test + public void testBEVFullUpdateNoCapacities() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-BEV-EQA.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + + assertEquals(11, updateListener.updatesPerGroupMap.size(), "Group Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("doors"), "Doors Update Count"); + assertEquals(5, updateListener.getUpdatesForGroup("vehicle"), "Vehcile Update Count"); + assertEquals(8, updateListener.getUpdatesForGroup("windows"), "Windows Update Count"); + assertEquals(12, updateListener.getUpdatesForGroup("trip"), "Trip Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("tires"), "Tire Update Count"); + assertEquals(6, updateListener.getUpdatesForGroup("service"), "Service Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("range"), "Range Update Count"); + assertEquals(2, updateListener.getUpdatesForGroup("position"), "Position Update Count"); + assertEquals(5, updateListener.getUpdatesForGroup("lock"), "Lock Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("hvac"), "HVAC Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("charge"), "Charge Update Count"); + } + + @Test + public void testBEVImperialUnits() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + MercedesMeDynamicStateDescriptionProviderMock patternMock = new MercedesMeDynamicStateDescriptionProviderMock<>( + mock(EventPublisher.class), mock(ItemChannelLinkRegistry.class), + mock(ChannelTypeI18nLocalizationService.class)); + MercedesMeCommandOptionProviderMock commandOptionMock = new MercedesMeCommandOptionProviderMock(); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), commandOptionMock, patternMock); + + AccountHandlerMock ahm = new AccountHandlerMock(); + vh.accountHandler = Optional.of(ahm); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-BEV-ImperialUnits.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + + assertEquals(11, updateListener.updatesPerGroupMap.size(), "Group Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("doors"), "Doors Update Count"); + assertEquals(5, updateListener.getUpdatesForGroup("vehicle"), "Vehcile Update Count"); + assertEquals(8, updateListener.getUpdatesForGroup("windows"), "Windows Update Count"); + assertEquals(12, updateListener.getUpdatesForGroup("trip"), "Trip Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("tires"), "Tire Update Count"); + assertEquals(6, updateListener.getUpdatesForGroup("service"), "Service Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("range"), "Range Update Count"); + assertEquals(2, updateListener.getUpdatesForGroup("position"), "Position Update Count"); + assertEquals(5, updateListener.getUpdatesForGroup("lock"), "Lock Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("hvac"), "HVAC Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("charge"), "Charge Update Count"); + assertTrue(updateListener.getResponse("test::bev:range#mileage").toFullString().endsWith("mi"), + "Mileague Unit"); + assertTrue(updateListener.getResponse("test::bev:range#range-electric").toFullString().endsWith("mi"), + "Range Electric Unit"); + assertTrue(updateListener.getResponse("test::bev:trip#distance").toFullString().endsWith("mi"), + "Range Electric Unit"); + assertTrue(updateListener.getResponse("test::bev:tires#pressure-front-left").toFullString().endsWith("psi"), + "Pressure Unit"); + assertTrue(updateListener.getResponse("test::bev:hvac#temperature").toFullString().endsWith("°F"), + "Temperature Unit"); + assertEquals("%.0f °F", patternMock.patternMap.get("test::bev:hvac#temperature"), "Temperature Pattern"); + commandOptionMock.getCommandList("test::bev:hvac#temperature").forEach(cmd -> { + assertTrue(cmd.getCommand().endsWith(" °F"), "Command Option Fahrenheit Unit"); + }); + + // overwrite with EU Units + json = FileReader.readFileInString("src/test/resources/proto-json/MB-BEV-EQA.json"); + update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + assertEquals("%.1f °C", patternMock.patternMap.get("test::bev:hvac#temperature"), "Temperature Pattern"); + commandOptionMock.getCommandList("test::bev:hvac#temperature").forEach(cmd -> { + assertTrue(cmd.getCommand().endsWith(" °C"), "Command Option Celsius Unit"); + }); + } + + @Test + public void testBEVCharging() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-BEV-EQA-Charging.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + + assertEquals(11, updateListener.updatesPerGroupMap.size(), "Group Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("doors"), "Doors Update Count"); + assertEquals(5, updateListener.getUpdatesForGroup("vehicle"), "Vehcile Update Count"); + assertEquals(8, updateListener.getUpdatesForGroup("windows"), "Windows Update Count"); + assertEquals(12, updateListener.getUpdatesForGroup("trip"), "Trip Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("tires"), "Tire Update Count"); + assertEquals(6, updateListener.getUpdatesForGroup("service"), "Service Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("range"), "Range Update Count"); + assertEquals(2, updateListener.getUpdatesForGroup("position"), "Position Update Count"); + assertEquals(5, updateListener.getUpdatesForGroup("lock"), "Lock Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("hvac"), "HVAC Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("charge"), "Charge Update Count"); + assertEquals("2023-09-06 13:55", ((DateTimeType) updateListener.getResponse("test::bev:charge#end-time")) + .format("%1$tY-%1$tm-%1$td %1$tH:%1$tM"), "End of Charge Time"); + } + + @Test + public void testBEVPartialChargingUpdate() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/PartialUpdate-Charging.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, false); + vh.distributeContent(update); + assertEquals(2, updateListener.updatesReceived.size(), "Update Count"); + assertEquals("2023-09-19 20:45", ((DateTimeType) updateListener.getResponse("test::bev:charge#end-time")) + .format("%1$tY-%1$tm-%1$td %1$tH:%1$tM"), "End of Charge Time"); + assertEquals("2.1 kW", updateListener.getResponse("test::bev:charge#power").toFullString(), "Charge Power"); + } + + @Test + public void testBEVPartialGPSUpdate() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/PartialUpdate-GPS.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, false); + vh.distributeContent(update); + assertEquals(3, updateListener.updatesReceived.size(), "Update Count"); + assertEquals("1.23,4.56", updateListener.getResponse("test::bev:position#gps").toFullString(), "GPS update"); + assertEquals("41.9 °", updateListener.getResponse("test::bev:position#heading").toFullString(), + "Heading Update"); + } + + @Test + public void testBEVPartialRangeUpdate() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/PartialUpdate-Range.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, false); + vh.distributeContent(update); + assertEquals(3, updateListener.updatesReceived.size(), "Update Count"); + assertEquals("15017 km", updateListener.getResponse("test::bev:range#mileage").toFullString(), + "Mileage Update"); + assertEquals("246 km", updateListener.getResponse("test::bev:range#radius-electric").toFullString(), + "Range Update"); + assertEquals("307 km", updateListener.getResponse("test::bev:range#range-electric").toFullString(), + "Range Radius Update"); + } + + @Test + public void testHybridFullUpdateNoCapacities() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_HYBRID); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.HYBRID)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-Hybrid-Charging.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + + assertEquals(11, updateListener.updatesPerGroupMap.size(), "Group Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("doors"), "Doors Update Count"); + assertEquals(5, updateListener.getUpdatesForGroup("vehicle"), "Vehcile Update Count"); + assertEquals(8, updateListener.getUpdatesForGroup("windows"), "Windows Update Count"); + assertEquals(12, updateListener.getUpdatesForGroup("trip"), "Trip Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("tires"), "Trip Update Count"); + assertEquals(8, updateListener.getUpdatesForGroup("service"), "Trip Update Count"); + assertEquals(14, updateListener.getUpdatesForGroup("range"), "Update Upadte Count"); + assertEquals(2, updateListener.getUpdatesForGroup("position"), "Update Upadte Count"); + assertEquals(6, updateListener.getUpdatesForGroup("lock"), "Lock Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("hvac"), "HVAC Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("charge"), "Charge Update Count"); + } + + @Test + public void testHybridFullUpadteWithCapacities() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_HYBRID); + when(thingMock.getUID()).thenReturn(new ThingUID("test", "hybrid")); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vehicleConfig.batteryCapacity = (float) 9.2; + vehicleConfig.fuelCapacity = (float) 59.9; + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-Hybrid-Charging.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + + // Test charged / uncharged battery and filled / unfilled tank volume + assertEquals("5.800000190734863 kWh", updateListener.getResponse("test::hybrid:range#charged").toFullString(), + "Battery Charged Update"); + assertEquals("3.4000000953674316 kWh", + updateListener.getResponse("test::hybrid:range#uncharged").toFullString(), "Battery Uncharged Update"); + assertEquals("9.579999923706055 l", updateListener.getResponse("test::hybrid:range#tank-remain").toFullString(), + "Tank Remain Update"); + assertEquals("50.31999969482422 l", updateListener.getResponse("test::hybrid:range#tank-open").toFullString(), + "Tank Open Update"); + } + + @Test + public void testEventStorage() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + updateListener.linked = true; + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-BEV-EQA.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + + assertEquals(11, updateListener.updatesPerGroupMap.size(), "Group Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("doors"), "Doors Update Count"); + // 1 update more due to proto channel connected + // assertEquals(6, updateListener.getUpdatesForGroup("vehicle"), "Vehcile Update Count"); + assertEquals(8, updateListener.getUpdatesForGroup("windows"), "Windows Update Count"); + assertEquals(12, updateListener.getUpdatesForGroup("trip"), "Trip Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("tires"), "Tire Update Count"); + assertEquals(6, updateListener.getUpdatesForGroup("service"), "Service Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("range"), "Range Update Count"); + assertEquals(2, updateListener.getUpdatesForGroup("position"), "Position Update Count"); + assertEquals(5, updateListener.getUpdatesForGroup("lock"), "Lock Update Count"); + assertEquals(7, updateListener.getUpdatesForGroup("hvac"), "HVAC Update Count"); + assertEquals(10, updateListener.getUpdatesForGroup("charge"), "Charge Update Count"); + + /** + * VehicleHandler fully updated eventStorage shall contain all data + * Let's simulate an item ad causing a RefreshType command + * Shall deliver data immediately + */ + assertEquals(83, vh.eventStorage.size()); + assertEquals(83, updateListener.updatesReceived.size()); + updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + ChannelUID mileageChannelUID = new ChannelUID(new ThingUID("test", Constants.BEV), Constants.GROUP_RANGE, + "mileage"); + + vh.handleCommand(mileageChannelUID, RefreshType.REFRESH); + assertEquals(1, updateListener.updatesReceived.size()); + } + + @Test + public void testProtoChannelLinked() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-BEV-EQA.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + assertFalse(updateListener.updatesReceived.containsKey("test::bev:vehicle#proto-update"), + "Proto Channel not updated"); + + updateListener.linked = true; + vh.distributeContent(update); + assertTrue(updateListener.updatesReceived.containsKey("test::bev:vehicle#proto-update"), + "Proto Channel not updated"); + } + + @Test + public void testTemperaturePoints() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(mock(AccountHandler.class)); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-Unknown.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + assertEquals("22 °C", updateListener.getResponse("test::bev:hvac#temperature").toFullString(), + "Temperature Point One Updated"); + + ChannelUID cuid = new ChannelUID(thingMock.getUID(), Constants.GROUP_HVAC, "zone"); + updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + vh.handleCommand(cuid, new DecimalType(2)); + assertEquals("2", updateListener.getResponse("test::bev:hvac#zone").toFullString(), + "Temperature Point One Updated"); + assertEquals("19 °C", updateListener.getResponse("test::bev:hvac#temperature").toFullString(), + "Temperature Point One Updated"); + vh.handleCommand(cuid, new DecimalType(-1)); + } + + @Test + public void testTemperaturePointSelection() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + AccountHandlerMock ahm = new AccountHandlerMock(); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(ahm); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-Unknown.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + + ChannelUID cuid = new ChannelUID(thingMock.getUID(), Constants.GROUP_HVAC, "temperature"); + updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + vh.handleCommand(cuid, QuantityType.valueOf("18 °C")); + assertEquals("frontLeft", ahm.getCommand().get("zone").toString(), "Zone Selection"); + assertEquals(18, ahm.getCommand().getDouble("temperature_in_celsius"), "Temperature Selection"); + vh.handleCommand(cuid, QuantityType.valueOf("80 °F")); + assertEquals("frontLeft", ahm.getCommand().get("zone").toString(), "Zone Selection"); + assertEquals(26, ahm.getCommand().getDouble("temperature_in_celsius"), "Temperature Selection"); + } + + @Test + public void testChargeProgramSelection() { + Thing thingMock = mock(Thing.class); + when(thingMock.getThingTypeUID()).thenReturn(Constants.THING_TYPE_BEV); + when(thingMock.getUID()).thenReturn(new ThingUID("test", Constants.BEV)); + AccountHandlerMock ahm = new AccountHandlerMock(); + VehicleHandler vh = new VehicleHandler(thingMock, new LocationProviderMock(), + mock(MercedesMeCommandOptionProvider.class), mock(MercedesMeStateOptionProvider.class)); + vh.accountHandler = Optional.of(ahm); + VehicleConfiguration vehicleConfig = new VehicleConfiguration(); + vh.config = Optional.of(vehicleConfig); + ThingCallbackListener updateListener = new ThingCallbackListener(); + vh.setCallback(updateListener); + + String json = FileReader.readFileInString("src/test/resources/proto-json/MB-BEV-EQA.json"); + VEPUpdate update = ProtoConverter.json2Proto(json, true); + vh.distributeContent(update); + + ChannelUID cuid = new ChannelUID(thingMock.getUID(), Constants.GROUP_CHARGE, "max-soc"); + vh.handleCommand(cuid, QuantityType.valueOf("90 %")); + int selectedChargeProgram = ((DecimalType) updateListener.getResponse("test::bev:charge#program")).intValue(); + assertEquals(selectedChargeProgram, + Utils.getChargeProgramNumber(ahm.getCommand().get("charge_program").toString()), + "Charge Program Command"); + assertEquals(90, ahm.getCommand().getInt("max_soc"), "Charge Program SOC Setting"); + + cuid = new ChannelUID(thingMock.getUID(), Constants.GROUP_CHARGE, "program"); + vh.handleCommand(cuid, new DecimalType(3)); + assertEquals(3, Utils.getChargeProgramNumber(ahm.getCommand().get("charge_program").toString()), + "Charge Program Command"); + assertEquals(100, ahm.getCommand().getInt("max_soc"), "Charge Program SOC Setting"); + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/eqa-light-sample.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/eqa-light-sample.json deleted file mode 100644 index 8bc65899cba..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/eqa-light-sample.json +++ /dev/null @@ -1,62 +0,0 @@ -[ - { - "doorstatusfrontright": { - "value": "true", - "timestamp": 1655650113000 - } - }, - { - "doorstatusfrontleft": { - "value": "false", - "timestamp": 1655650104000 - } - }, - { - "windowstatusfrontleft": { - "value": "1", - "timestamp": 1655648946000 - } - }, - { - "windowstatusrearleft": { - "value": "1", - "timestamp": 1655648959000 - } - }, - { - "windowstatusrearright": { - "value": "1", - "timestamp": 1655648959000 - } - }, - { - "doorstatusrearleft": { - "value": "false", - "timestamp": 1655498496000 - } - }, - { - "windowstatusfrontright": { - "value": "1", - "timestamp": 1655648953000 - } - }, - { - "lightswitchposition": { - "value": "0", - "timestamp": 1655650824000 - } - }, - { - "readingLampFrontRight": { - "value": "true", - "timestamp": 1655649991000 - } - }, - { - "readingLampFrontLeft": { - "value": "true", - "timestamp": 1655649991000 - } - } -] \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/evstatus.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/evstatus.json deleted file mode 100644 index 907154a1171..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/evstatus.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "rangeelectric": { - "value": "325", - "timestamp": 1655401822000 - } - }, - { - "soc": { - "value": "78", - "timestamp": 1655399096000 - } - } -] \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/fuel.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/fuel.json deleted file mode 100644 index a71eb02d2ec..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/fuel.json +++ /dev/null @@ -1,14 +0,0 @@ -[ - { - "tanklevelpercent": { - "value": "90", - "timestamp": 1541080800000 - } - }, - { - "rangeliquid": { - "value": "1292", - "timestamp": 1541080800000 - } - } -] \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/image/ext.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/image/ext.json deleted file mode 100644 index 30b34dc4c2b..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/image/ext.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "EXT000": "5jgA6wXiEiufaoAJcWWhQGALZUoltT2pnoXIFsCc6NBvSKz5wtbR3tfFFRzvg2aZWU9OeL75vJZpAQeh3jgzSDB1vXLyXEtErBzLP7WGVMu1Mvz5w6vf77fW_R_4vE57-FsZZQO8i4VCpAIvOhwTtV-2uvVw9qAtXQrAwpJz7r839JlvNf4uYyVFjiRjrE75_vDZA7bbkw33xDs2fSs5htgd39Zz3KfuKZvLmGW7qpCHRnr9lZixKCGydR8Hj4LM3XsEa0ebaCcdWOg4tuy0qN-YBH2-DrE7xQVso5iEiKIndBdA-ecF42jIYPdKk9x8gIKeSx-zcYFpwYXUZPtWo3vZQjqdiBVTxBVVK2JRYTOk9I0Qzp735Mqi5PtIYGrg2hIOH4F0CKuiknhc4XBabN22dAaxaUuf5juveQVD-h0WwV2xue6vQ8nvaTN2gyVpO4JXDmW9jE8kShKvDRZeh3JZKq8zGW4FfCP78rtyt8kc671d9PLcZBdi1_TgDMUBWldBP4xHrY_5aJvxn9nNji7E1A9Cw8tfmMyjuq0Wy3nsUHpctYXb0eXrrunj0-Uk_Aq2vx1PI1i8ko6-05uilE026reCDysoWY8Re2Ea1SRocp4P3B67Luqa__kgxqtdY3VdYtWuAuPrTESuHQZBEFa2EfNktvpZdXOYrvcqhGGbq76ybJXuQGB6ZwwiCi5ZFsq9ejYt9qcFYN_kxbpk6phLu-2yzqpcMEMMftFhZnY=", - "EXT090": "oHtxoRJTvmza2fm4AFhd2_fFYmRFC-uuZeQP7B8uENz9cCHgN9jMXS0bWGprZhIuhM65tPtdUSsvjoVqYD-n_HcQrqUB_PQkvr61RAiHz5UOXZSW7_5QPv_0Tdt3g1NHQFs5zPdI1KffucgiuNlhLNaWgpzT5z0AcZba9o7IwxzF5WKOkT4HsQ0etc3FYXvfnXeHi71F0223JkRQtlXEu4aNHELonubumptt9YJM0qXbcttPs-eNFE8l2eHOsKvh34g6X4Z2LZAENmABjMXQMQhxyWGRr_N7mIoeQWo6AVQ01QavM_MSKZY6Bw3-WdDHr8pybwg7uee52NgrwMsN7_ufeEG3xkAeSXixMhNt4yutYwaWkdxSdGKp4UnINj493VL8_5XAF7nfeHRioXe3XWU6mfg-PGzJwywm3ll7qbp_8OGkws3u03xXKxINkgZWVjmAtOnmFm80XGTQL8HxsPspI2ItF1QQDyQhvYYrGe-saxRstxxr1HM2VkualA3hxlNkE5CSNfbm3B1fUSH25Ba-YBo4SluEsu5mQIOemT1NBqMMZeQBCiO_73PwgIoRZnjH3cRPl_oUO3jwQEPPqH-jXBdFdQ9mksVWrHBcAQrVPAY5QQYaXN0Io8Va0q11GR8RUj_avraROJ_dLlWUDJCU1DUTv677lifWhIxyDXHj4CfgartLyYAPsGWuXm7wLc41dOXuS-WsiJoJjwuK2S83oUfUVH56Hf6gwZhvK8E=", - "EXT150": "FyyrR6D7K99MXXbCQ2Jt1N2GErxjQricdwDCJtzY5vW3TnqDr3JmEf5PUIy_yYnqscuiVLGTrBw1-9r6eR92uJncUPCkaNYHHIXt3p5ZfEu9TVcnURaydDH6GBB3yV9Cocv-8EeYbT2njjEe-n5qwhj44LfILKmMVC0lFzGRdixcAr1cu4chtnhvitIzOoCIG43BeTfWxjz4CwiIt3d4X05dS15qTWXFFlNCBc1xXGngdrqqO9USE3D8Hrq_0RuL_m4utANmLw2ud_rzlmpJFN7smkUJ62eKrpuJrn-aSrt3q9_OPewzC88-CpybvorcuVK9Oy_UZbU5aTFomUKH5DTEydJFBDeGLF6uZJSySKHWf395mmh1JBIxpghji4NhjONG8vlRKAZu9MbMQSWBiEJj2i1yWQQi9E8tYJN5g8uadP1SpSnIsM1FkDW8Esnu8bfqrYMQoobilCRkrmqaWCE4YDJcJRrf04oas12qqMZwLsRSvafSh7Cc6jIwggXxZ9u5d4wu9ov0oKfWMiBmvyt9Pb1kYxrt-nbL_pTkDOCAkBJw2AjiEFqcocMoCzx2uh1xQ8K9-DP4gGq4yKmY5EizbYMmYYhtorjKzmequ0BbKJ2YG-wIe65XA8i_dE5V-JeTL5CoSsRhoOBQK6hHtXk7PtgcdBV_0RAI85cnDSsoGNti2Nu3WT_S4PIstSSKrPpI9Yj6KeEV2EiM9a6flUkNo_QMwjKCuM3kCnvopjE=", - "EXT180": "h2nEDkftnTN7t3b93Rv-_KnASjdCQMiVbFWDIH4UQPlmDw44dH54TqJg1KgQFqVIojWgPRHLvh9DBfQCHh3wTpk-b_UGrsv22uWrm4DwVgC9ZMPaYM8nWUGmVfN2Aigzp8nH5gWNmRP2rE3rEPRC7W6E3E_-U8CHSEZ9rvld04eYbZEb-zdrcLmo9DhgzX6ETMq3Rac2ehXSO5KipM0t2-X5LtPXmdf1NcH_EBCSBW1bSrRCJr6RvGjRXvPiDFXR7QGhEYKHzIW6o0smbRp8BnIXnL7LlRe4cDH_M4Wk3wYTAsi6ET5gXed82Ubf2qtl-aHLL3_Su5DfyGAuzEc6rjcIljpZrgTE1UfcBxYgob2kYGr8iHBltgNhs69iAe2V_e6mS3ogQE8Hc2BMe9T8aLylmKtainufJKfzCOnyuMUDnBDNe84oKRNsyJHT8pKHewMJVxW8mOsm3sPC_nTb-UsUN9jqXmCugPqYdPAYtEp5mOpBpsltUX7a6LMcJERX0bGRGXYuGSpaFXCeynlQyTCnGJk2tgt65f4c2MGxg3OLWNh5FCQMq3miC8S2tIN15h2rw0vXrTYrvPXJPBk6Kjw74c0xUWtdf9EQwR79g0JPnjEUIeeeJvbipXPvZi3TPCev0d1eE3lOq_3onIZI16Noqjm7WHvUPGgn5g8QxDRI9t4aZ1MSKxxYrKUJBlJrMV7GmGHuLl_jYihCeslaXR5qyirZxB0r4KFyLeXuyJ4=", - "EXT270": "V1B7Vmu7mPFnDobcpvy5gVMAsnmi3sG_1AISG5nFaIhKw3h8NVwLYTAnptyiYtYaqcTzznk9jQROerdO0loInPHaBFN4lY59RoVQv7uA1ZMpQ4TUu_s7igbwgKEdcB55w3oei1ocLWcdn7QNvaxIqYl3ch5MAJlEOxhljGd5Hu4XHtmKe9IW7KZLqSwJKoI6M5HmiVY16UeqRcKJcKRaYoyaIq3jOJSUPfPJw22An2_oAp0aniq6Mydf3t-LNn8oDCPA5ztT9ivDhasZdWwk3dDF_IBEnwBc4X-UKGk04MRwnDkFnE-jmV5f4_k49VcuWLJEq2S5g-5lpZI55Et19lvGZv_tD1rsBMHcZ4beHwsUWrtykLSWRWt9XDVHk9cvgDAWeutKReMp3Rt3yN9gLMV-Puo9wscg51CuDvGXOsVO_V7vF2_1OEq5E6WJcDa9XqqphUrIhMs7l-s5gT16S4wYZ07BrhRWx1vCATJdP0Oo26QvE-tWthaPkcD1PUsePbx-dXrj-5IRsotGgoEzNRMmahkwNbc_SbILNVhCZXVMyo9h32n1Kdf-uNtF-KBb0aODmti2HV3qe52qILoKeO2XoIDMceNeVp_HjO6UL1np-tm4JOEqkF_as6VCGXfz2YE5cq8wIBfX9uKQwmPmtisK3tmfZKF6nuz4yxGo78cDJZdkE6xY8819ObqZyuFCDbONoxOkdA6KYUjjvhiPikDxzhFJXaq-tegNoDNWUJs=", - "EXT330": "-VkMlhWJez5VxQgKzZjpqaXFNL5wjxxAs9TGLMQCkmfrYqHs5qONanQHnzU6Dz7QQwb8a51qk7ULc3dMHtUMvx4ILa-vKpQYGZ2uGenWFIS7lK5YWjHUvHu3uGwgTbAfzigiLq13opE9a5lauK0e4zmJ4aMbWkhIMxHjrak83zsmjFJa0IYhD0qD_f7oH8z-eCJ9tww4cy-p3Rd_pJCfGYi7j3Kz_Z9-gwFe7WFdKLowzzMpCNHr8hQxujtWzZZVQVrH4RSUAZEaN8sMm8uhkR3mE_21wFPFLLG2-Ui3bvObEALZ8ajMUdKJNu0etHGfUTYnHUAWxwesBDu5rqgSXDbeZiN6-4FDSkfTl2IkXOXrtFrW1YzmPvR5SBjed_QuNKrDCvSi9NBxP1vq4by6xJUaSCPyBJb9SfVBswfk6-_2g_d6LNLoT9Qz4Xn9RRHlACNyZe6tb-NNCCHYxY7nz88cDO0Kfb0qkEXyoOXWeDjCLvRXI-dCHCqNSq2D54P_A7e_xtqsoy4qjWp_4EKc7QRDX1j9BN7_CfUtt4MuKLMskP1MpBm07aZFLP6eHwVw8So5cZRDMB1zeQcfjFcHzoZ5nVBvVEPT3UkPfKdFAPkfuf3p233QbJiTGTnbsI05xdQQHtEWbrHc7sf446DsT_oH6w9ej0KwQ41if7jzz5uMIsGTgtOfyGz23k-IUsJQH-T237GegQKNXG0_SetgL8gn0OADUkdkaGbvAAxqMjg=", - "INT1": "Kr29P2pI2LE9y2Y7S7kSD-EzhXs6sOfP-HVFAqoNbaIIb34CaauXwOlTz7NjjJ9xBg88y73aR-RGcIg_aqSqmwZvViIrs5esGXOJOvXROoWpodYsYK65XfmSD3o6PtkPXtTFEtfj_3OEgtmvqXuHLB17VXhPWB-GV5O4U4z8Wki7aZTzQi3Xh8ry9Or3GT7JD6z5JWGDFH3wHDkzNuTzuCR8SocQSDBlkH8uSTtl-ZuSQZczYyLuJcqff86niQZbaXEQGArqYifqW-hs3f0Xjm3-Pqvt8sMQcpDZsNLTOzz5GgExE5BDlMMewVlGHK6SkVmA5DDcXSpr0EQjoWjUET5rLDXNiNUMwk_gCJLFBE3qOP-dNFOYnPtyGCHOAt1fWHrLV-iDXBoyRm5nl7fvxGglECyEB1DVLDvOkd882z32G5OFy2oRMpq3qY1sccPE2L8i_lViNtKUJqRuwygkfEFrygQTaoFhqaGfnAp64a8PDsYMpBlHEl4-Y_m0l-7FhPQiYoYJBZDrKG5h37O9RZ8Jttt0jdzhtgHPnTiyz9LEdtBNMgqGr9QFYjSVnGSE3dAHpNuo6J4VeNTEGViVBj0Imqy5-s9N0VR2aziC4kqhQ2M4mRniu2ad6PycqJEWwP4YzlIKt6Pox9goDEhCpY8d9fuQv5ppj0butxtBDC_nw4eyWRlctlH8Lx-pfwjwQb08H3syFM6eCXCtHKGilsyeN2E7HZ3mq1LoprwZHUo=", - "INT2": "JFFG7zz5OlAgoUkJUUPXu9h29bBg03yCTOCCtGzQPWCW3cqS453QCVSGd_K-TwXuRYnG54ZLHRPdJ4HQjMTDUZv6ExZck9td5r27H5cpO6wpV7hofz4bW5Klj-9kKOcyF8wHTEwPnoDv1lMVSEL6mcVEXFB0CnzngMs-njRnEXdvhgMrprEoSu1hSeikP5kUaFViOBDAuv9-6V6cfpZehoMQhjBmq6WMTNjhDS-fGsZH0Z2jqu7Oe8yaoydD3tJXZ1KY8GRpf048piD9bv-URJPR5531f4t5b6t6l9sivHDW0wgDoa0K-aF5mRKj6k8Psuu_Krsvm4EAJHZCXyZ-ixg8i58X8TODy70HXS1wRGrLVOBqGYsTpMEWxLOl7YLrn3VUCVN8yYavIDNdxU9nr6o5dA187IqStMEUS7NDUxSWcwmFmpeYDImh4or95wa7cEk1-7w74HAyVg8sC8-VHfwgKPLA2QrSVTp-F9lOu4CmStzf7C7SU3mkcb6XmyHQRAavjiCzAI8eeFMgT8ma_8B62gS1XKmppEQwddz5bZ2f8eKSc4q5WKoq9scxur42d-7JjsSzuenPwVAd9MSqWa2q5qnVMTbWtuLlO9ipLXXGTTYacAQJjZ9dOEdJIIh8MsSteJ6tpas3bAoX15IfvLGuObJFs2vjQ1h4AonjTquPIdo1JAhjActBgNCurWElyBpJ3dprvQ_y9qXgt12kKM0SvWV1zky_p8x53UPcHHk=", - "INT3": "utnpbmDAfakTIjB-oSkx7eFoRjXxfxpbexmHUi2RPFCs5A3w8wtH0EM6cThnwEFHulWqSmXFc6v_hd3dyLNsKDAaIUHFktCoE3m5fX2ORgUi4tdXSrx2T8H0xpf0cfFZcg_aS9SK0fgtj2NYaWjoafEI6aLc79XNoiIpTyBONJi0QU6IjlLCA13a47QjVIkrQtPjIntm1EKY34Hyoq8QErZsZQG_f8JEXQMUfM-oOAY0U8gj0outMTtWRAnfdrgaSWhVyIWloUJkXP6cWhZsypKp7e8bm-poc4nE4R-tniMWegY7BLlvtJeSjs71txBaDomr9xqi9lhmX6ENkvGPAHpBbrTOmsMLvEJu6nQR7P08XYalXpiJQjrIQJ77hE499jOIdgSoBjuy6JKlaLc4ejpHeGNXYCPUBJM5KVLITLYpLOjgZFzbhzI8qr4GdjxcfW82PAxhlTDywjDH-eMzbXnVZ-YaLrEocNZ8i88R1bLnv90lUrwzgn7n3zUcTeiRILfkApNZRh_K9ClGSu612LzGv7E-_zN1JdOt4UCcfSSkJLMppbeyIXjE6tDsxjgUyRr0Xj1azvHtEDfFYKj76x9doyk8Xm6_sKF4z9rPrgEmo9u6zr4dhb6fmhTnBjdhWBFjQ1Zpe7P7IfaXeDFrWSQBt7jdADWzB5L8cjaMnULm295uSo1k_ka1FQtFg4NtHiZ2G_zNLINh4DBjZdo5hmqBW7tl4gnNWaUf8YO7J1A=", - "INT4": "kJ4tgroRxuaYe0vF9xMe-nI4NUy4Eg1NyAr_E-WxJKlt5jZuoOcWYijc7cQEOiY3xlRPLTnfN-l9nf4UWO9rN4uMIGH9tuEql1g2ATLxff1ML3tCiexoxn45l-LQRH-PL2bL8jsQ3ByiHxLdzMHUzAarWj76rZk4mDCM9tRAE-hQsUZaaGMbO_hL3BCu6J-mI9hU3em4RuFwNTzCfBxgOJShU_PAU3tt-xROhld5Re3cyZzQZfQI17xDJKpTdZmnZCeabv7BIjh6qEapxhCHi0Ue6_EX3DPld1Faj438FptfBTn8UXW9Es6tkM1BGHw8npbHtGVqI1g7DdWuYUb5qeAtUzkEnFpxIl-67sKctYGBWvGkRnZrpu33jwaorW7xInwSymTg0isVCDQCfTEsa8zszj-bD4UMF2jeWr_pL-g4Vk_Ns0vMDFhsZGJTLO9Vv5DNf0WYOMWBISHXgW9z_d0UzCwlJpojqqO1DNhEt1aRRSb_zIBhdfAUHmJy35KmA0tPiDNb1K6uEVVcKSQBD2G9BfrvGXq-o_E3JAUzO2-u4ues0eWseOa0dQQIasjMZ0ZNAakfxCwg7dHp9Lq0c_0fti37OAk69Cyi0EMThCTYr8Yij_sidT9sts-YeQgTniI2LFsMnDnGkWB7wubmxUvG9qOq5ZmonBArkOt8xHWT9Xy5xq0hQj6Ba6Dgcy8qrcCdq8HoIneUaHH_c7pkRW2V-MKHQ6gr9iopAtP1Ifw=", - "BET1": "hismr3VKvRu_fQ25jJjIjjBKs-nhdOYsbtMA7Sgc0-P99yjGnVvOq8nJBGFHcjCLHGb6lTcLyA4eVSflnKER2r6R35PqRznX63s1bDGZuuyPexBCTVZSh1ubtI3ImQuO5mRb9wFAyeUcG53JnZEXQmOnCdmLW8seIugeSrsj5-HC_Z7vOT-KTmcONFP2q2tbKqDTziLVXEJ0dy2EdgvSk8l-sn1QsgodDVe-FCaAp35jlswp8faJuyTv0j7luc5dRP7xvSVXX08uTD9AWHooVCbsGSJqwVRsjY0bFJMcvKqzCCE5xlyBVVmkbphD3aEsBqMVsG4wL2_W_pEgdbmI06qHgJK0sotwj0iEbGVBOYOuBp4uAQdadKYbQL2OkJaqXkDWJTy0MDUSRBbZ6qH3KCyVRfUFcxlFUxqw9I7l5G35vnDMCpoJyj6wyzyq4oFTKgDXkn6zMTDD7lgpYWW1zRDtCTecU6nkmsUQnwe-9EXBfcePlRtJasG40ykj5x4MRJQoDiX9F8VBDnquaR_8K5HOL3de8ypEl7q22bKkKv-pHEPO8hH5lZynfQ86RHyHhDGxXuNuCEX-ekqK7K8PGTF8gO_fIGMpp_Z5aqWSHQgu7Ge1R-FTtfKZ5L_E-RjnR9QWFqEIC2_hNiZoQBdSTC8XUMmnpltTBQJOngEBhmgGepekZmuGnP3xmmvVbK1VijHtgB6PCtIVaTIzkwpVo1o4aj25zQG_3VSqgT8Ufnw=" -} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/info/AttributeGroupDistribution.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/AttributeGroupDistribution.json new file mode 100644 index 00000000000..cee4dbb265d --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/AttributeGroupDistribution.json @@ -0,0 +1,110 @@ +{ + "vehicle": [ + "doorLockStatusOverall", + "windowStatusOverall", + "doorStatusOverall", + "ignitionstate", + "parkbrakestatus" + ], + "doors": [ + "doorstatusfrontright", + "doorstatusfrontleft", + "doorstatusrearright", + "doorstatusrearleft", + "decklidstatus", + "engineHoodStatus", + "sunroofstatus", + "sunroofStatusFrontBlind", + "sunroofStatusRearBlind", + "rooftopstatus", + "Sunroof Command" + ], + "lock": [ + "doorlockstatusfrontright", + "doorlockstatusfrontleft", + "doorlockstatusrearright", + "doorlockstatusrearleft", + "doorlockstatusdecklid", + "doorlockstatusgas", + "lock unlock command" + ], + "windows": [ + "windowstatusfrontright", + "windowstatusfrontleft", + "windowstatusrearright", + "windowstatusrearleft", + "windowStatusRearRightBlind", + "windowStatusRearLeftBlind", + "windowStatusRearBlind", + "flipWindowStatus", + "open close command" + ], + "hvac": [ + "precondNow", + "precondSeatFrontRight", + "precondSeatFrontLeft", + "precondSeatRearRight", + "precondSeatRearLeft", + "temperaturePoints", + "Precond Now Command", + "Precond set Temperature Command" + ], + "service": [ + "starterBatteryState", + "warningbrakefluid", + "warningwashwater", + "warningbrakeliningwear", + "tirewarningsrdk", + "warningcoolantlevellow", + "warningenginelight", + "serviceintervaldays" + ], + "range": [ + "odo", + "overallRange", + "soc", + "tanklevelpercent" + ], + "charge": [ + "chargeFlapDCStatus", + "chargeCouplerACStatus", + "chargeCouplerDCStatus", + "chargeCouplerDCLockStatus", + "chargingactive", + "chargingstatus", + "chargingPower", + "endofchargetime", + "chargePrograms", + "Max SoC Command" + ], + "trip": [ + "distanceStart", + "drivenTimeStart", + "averageSpeedStart", + "electricconsumptionstart" + ], + "position": [ + "positionHeading", + "positionLat", + "positionLong", + "SigPos Command" + ], + "tires": [ + "tireSensorAvailable", + "tirepressureFrontRight", + "tirepressureFrontLeft", + "tirepressureRearLeft", + "tirepressureRearRight", + "tireMarkerFrontRight", + "tireMarkerFrontLeft", + "tireMarkerRearRight", + "tireMarkerRearLeft", + "tirePressMeasTimestamp" + ], + "unassigned": [] +} + + + + + diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/info/CC-MB-B250e.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/CC-MB-B250e.json new file mode 100644 index 00000000000..5e17743cfa2 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/CC-MB-B250e.json @@ -0,0 +1,441 @@ +{ + "commands": [ + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ZEV_PRECONDITION_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 1439, + "minValue": 0, + "parameterName": "DEPARTURE_TIME", + "steps": 1 + }, + { + "allowedEnums": [ + "DISABLED", + "SINGLE_DEPARTURE", + "WEEKLY_DEPARTURE" + ], + "parameterName": "DEPARTURE_TIME_MODE" + } + ] + }, + { + "additionalInformation": [ + "OnlyDriverOrAllSeats" + ], + "capabilityInformation": [ + "ONLY_DRIVER_OR_ALL_SEATS" + ], + "commandName": "ZEV_PRECONDITION_CONFIGURE_SEATS", + "isAvailable": true, + "parameters": [ + { + "allowedBools": "TRUE_AND_FALSE", + "allowedEnums": null, + "parameterName": "FRONT_LEFT_SEAT" + }, + { + "allowedBools": "ONLY_TRUE", + "allowedEnums": null, + "parameterName": "FRONT_RIGHT_SEAT" + }, + { + "allowedBools": "TRUE_AND_FALSE", + "allowedEnums": null, + "parameterName": "REAR_LEFT_SEAT" + }, + { + "allowedBools": "TRUE_AND_FALSE", + "allowedEnums": null, + "parameterName": "REAR_RIGHT_SEAT" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ZEV_PRECONDITIONING_START", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 1439, + "minValue": 0, + "parameterName": "DEPARTURE_TIME", + "steps": 1 + }, + { + "allowedEnums": [ + "IMMEDIATE", + "DEPARTURE", + "NOW", + "DEPARTURE_WEEKLY" + ], + "parameterName": "TYPE" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ZEV_PRECONDITIONING_STOP", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "IMMEDIATE", + "DEPARTURE", + "NOW", + "DEPARTURE_WEEKLY" + ], + "parameterName": "TYPE" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "AUXHEAT_CONFIGURE", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "AUXHEAT_START", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "AUXHEAT_STOP", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "BATTERY_CHARGE_PROGRAM_CONFIGURE", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "BATTERY_MAX_SOC_CONFIGURE", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHARGE_OPT_CONFIGURE", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHARGE_OPT_START", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHARGE_OPT_STOP", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SPEEDALERT_START", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 255, + "minValue": 1, + "parameterName": "THRESHOLD", + "steps": 1 + }, + { + "allowedEnums": null, + "maxValue": 2147483647, + "minValue": 0, + "parameterName": "ALERT_END_TIME", + "steps": 1 + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SPEEDALERT_STOP", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SUNROOF_OPEN", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SUNROOF_LIFT", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SUNROOF_CLOSE", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ENGINE_START", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ENGINE_STOP", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "DOORS_LOCK", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "DOORS_UNLOCK", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHARGE_PROGRAM_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "DEFAULT_CHARGEPROGRAM" + ], + "parameterName": "CHARGE_PROGRAM" + }, + { + "allowedEnums": null, + "maxValue": 100, + "minValue": 50, + "parameterName": "MAX_SOC", + "steps": 10 + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHILDPRESENCEDETECTION_DEACTIVATEALARM", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WINDOWS_OPEN", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WINDOWS_CLOSE", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WINDOWS_VENTILATE", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_DESELECT_INTERIOR", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_DESELECT_TOW", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_SELECT_INTERIOR", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_SELECT_TOW", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_START", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_STOP", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_CONFIRM_DAMAGEDETECTION", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_DESELECT_DAMAGEDETECTION", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_SELECT_DAMAGEDETECTION", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WEEK_PROFILE_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "parameterName": "WEEKLY_SET_HU_DAY" + }, + { + "allowedEnums": null, + "maxValue": 1439, + "minValue": 0, + "parameterName": "WEEKLY_SET_HU_TIME", + "steps": 1 + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WIPER_HEALTH_RESET", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SIGPOS_START", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 30, + "minValue": 0, + "parameterName": "HORN_REPEAT", + "steps": 1 + }, + { + "allowedEnums": [ + "HORN_OFF" + ], + "parameterName": "HORN_TYPE" + }, + { + "allowedEnums": [ + "DIPPED_HEAD_LIGHT" + ], + "parameterName": "LIGHT_TYPE" + }, + { + "allowedEnums": null, + "maxValue": 10, + "minValue": 0, + "parameterName": "SIGPOS_DURATION", + "steps": 1 + }, + { + "allowedEnums": [ + "LIGHT_ONLY" + ], + "parameterName": "SIGPOS_TYPE" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "TEMPERATURE_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "FRONT_CENTER" + ], + "parameterName": "TEMPERATURE_POINTS_ZONE" + }, + { + "allowedEnums": null, + "maxValue": 28, + "minValue": 16, + "parameterName": "TEMPERATURE_POINTS_TEMPERATURE", + "steps": 0.5 + } + ] + } + ] +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/info/CC-MB-EQA.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/CC-MB-EQA.json new file mode 100644 index 00000000000..4b73f943175 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/CC-MB-EQA.json @@ -0,0 +1,480 @@ +{ + "commands": [ + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ZEV_PRECONDITION_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 1439, + "minValue": 0, + "parameterName": "DEPARTURE_TIME", + "steps": 1 + }, + { + "allowedEnums": [ + "DISABLED", + "SINGLE_DEPARTURE", + "WEEKLY_DEPARTURE" + ], + "parameterName": "DEPARTURE_TIME_MODE" + } + ] + }, + { + "additionalInformation": [ + "OnlyDriverOrAllSeats" + ], + "capabilityInformation": [ + "ONLY_DRIVER_OR_ALL_SEATS" + ], + "commandName": "ZEV_PRECONDITION_CONFIGURE_SEATS", + "isAvailable": true, + "parameters": [ + { + "allowedBools": "TRUE_AND_FALSE", + "allowedEnums": null, + "parameterName": "FRONT_LEFT_SEAT" + }, + { + "allowedBools": "ONLY_TRUE", + "allowedEnums": null, + "parameterName": "FRONT_RIGHT_SEAT" + }, + { + "allowedBools": "TRUE_AND_FALSE", + "allowedEnums": null, + "parameterName": "REAR_LEFT_SEAT" + }, + { + "allowedBools": "TRUE_AND_FALSE", + "allowedEnums": null, + "parameterName": "REAR_RIGHT_SEAT" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ZEV_PRECONDITIONING_START", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 1439, + "minValue": 0, + "parameterName": "DEPARTURE_TIME", + "steps": 1 + }, + { + "allowedEnums": [ + "IMMEDIATE", + "DEPARTURE", + "NOW", + "DEPARTURE_WEEKLY" + ], + "parameterName": "TYPE" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ZEV_PRECONDITIONING_STOP", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "IMMEDIATE", + "DEPARTURE", + "NOW", + "DEPARTURE_WEEKLY" + ], + "parameterName": "TYPE" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "AUXHEAT_CONFIGURE", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "AUXHEAT_START", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "AUXHEAT_STOP", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "BATTERY_CHARGE_PROGRAM_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "DEFAULT", + "INSTANT" + ], + "parameterName": "CHARGE_PROGRAM" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "BATTERY_MAX_SOC_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 100, + "minValue": 50, + "parameterName": "MAX_SOC", + "steps": 10 + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHARGE_OPT_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "LOW_PRICE", + "NORMAL_PRICE", + "HIGH_PRICE" + ], + "parameterName": "WEEKDAY_TARIFF_RATE" + }, + { + "allowedEnums": null, + "maxValue": 86399, + "minValue": 0, + "parameterName": "WEEKDAY_TARIFF_TIME", + "steps": 1 + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHARGE_OPT_START", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHARGE_OPT_STOP", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHARGE_PROGRAM_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "DEFAULT_CHARGEPROGRAM", + "HOME_CHARGEPROGRAM", + "WORK_CHARGEPROGRAM" + ], + "parameterName": "CHARGE_PROGRAM" + }, + { + "allowedEnums": null, + "maxValue": 100, + "minValue": 50, + "parameterName": "MAX_SOC", + "steps": 10 + }, + { + "allowedBools": "TRUE_AND_FALSE", + "allowedEnums": null, + "parameterName": "AUTO_UNLOCK" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "CHILDPRESENCEDETECTION_DEACTIVATEALARM", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "DOORS_LOCK", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "DOORS_UNLOCK", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ENGINE_START", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "ENGINE_STOP", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SUNROOF_OPEN", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SUNROOF_LIFT", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SUNROOF_CLOSE", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SPEEDALERT_START", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 255, + "minValue": 1, + "parameterName": "THRESHOLD", + "steps": 1 + }, + { + "allowedEnums": null, + "maxValue": 2147483647, + "minValue": 0, + "parameterName": "ALERT_END_TIME", + "steps": 1 + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SPEEDALERT_STOP", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_DESELECT_INTERIOR", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_DESELECT_TOW", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_SELECT_INTERIOR", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_SELECT_TOW", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_START", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_STOP", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_CONFIRM_DAMAGEDETECTION", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_DESELECT_DAMAGEDETECTION", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "THEFTALARM_SELECT_DAMAGEDETECTION", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WEEK_PROFILE_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "parameterName": "WEEKLY_SET_HU_DAY" + }, + { + "allowedEnums": null, + "maxValue": 1439, + "minValue": 0, + "parameterName": "WEEKLY_SET_HU_TIME", + "steps": 1 + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WINDOWS_OPEN", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WINDOWS_CLOSE", + "isAvailable": true, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WINDOWS_VENTILATE", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "WIPER_HEALTH_RESET", + "isAvailable": false, + "parameters": null + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "SIGPOS_START", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": null, + "maxValue": 30, + "minValue": 0, + "parameterName": "HORN_REPEAT", + "steps": 1 + }, + { + "allowedEnums": [ + "HORN_OFF" + ], + "parameterName": "HORN_TYPE" + }, + { + "allowedEnums": [ + "DIPPED_HEAD_LIGHT" + ], + "parameterName": "LIGHT_TYPE" + }, + { + "allowedEnums": null, + "maxValue": 10, + "minValue": 0, + "parameterName": "SIGPOS_DURATION", + "steps": 1 + }, + { + "allowedEnums": [ + "LIGHT_ONLY" + ], + "parameterName": "SIGPOS_TYPE" + } + ] + }, + { + "additionalInformation": null, + "capabilityInformation": null, + "commandName": "TEMPERATURE_CONFIGURE", + "isAvailable": true, + "parameters": [ + { + "allowedEnums": [ + "FRONT_CENTER" + ], + "parameterName": "TEMPERATURE_POINTS_ZONE" + }, + { + "allowedEnums": null, + "maxValue": 28, + "minValue": 16, + "parameterName": "TEMPERATURE_POINTS_TEMPERATURE", + "steps": 0.5 + } + ] + } + ] +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/info/FC-MB-B250e.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/FC-MB-B250e.json new file mode 100644 index 00000000000..3778a4c8edc --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/FC-MB-B250e.json @@ -0,0 +1,58 @@ +{ + "features": { + "auxHeat": false, + "bidirectionalCharging": false, + "chargingClockTimer": false, + "controllableRearWindowBlind": false, + "controllableSunroof": true, + "convertible": false, + "dcCharging": false, + "distronicPro": false, + "doubleDoorLock": false, + "driverAssistancePackageHigh": false, + "driverAssistancePackagePlus": false, + "ecoCharging": false, + "fastCharging": false, + "hepaFilter": false, + "mopf": false, + "pictureTransfer": false, + "pluggedStateDependingPreEntryClimateControl": false, + "precondNow": true, + "rearSunProtectionBlinds": false, + "remoteSettingPersonalizedTemperature": false, + "remoteSettingTemperature": true, + "urbanGuard": true, + "variableOpenableSunroof": false, + "variableOpenableWindow": false, + "weeklyProfile": true + }, + "vehicle": { + "baumuster": "247086", + "changeYearCodes": null, + "controllableSunroofBlindsCount": null, + "doorsCount": 4, + "doorsHandleType": "WITH_CAP", + "drivingSide": "LEFT", + "electricVehicleType": "PLUGIN", + "electricWindowLifts": [ + "FIRST_ROW_LEFT", + "FIRST_ROW_RIGHT", + "SECOND_ROW_LEFT", + "SECOND_ROW_RIGHT" + ], + "fuelTypes": [ + "ELECTRIC", + "GASOLINE" + ], + "headUnitSoftwareVersion": "FRESHUP4", + "headUnitType": "NTG6", + "modelYearCode": "801", + "powertrainBatteryModel": [], + "productGroup": "PASSENGER", + "remoteSeatConfiguration": "ONLY_DRIVER_OR_ALL_SEATS", + "starArchitecture": "STAR2_3", + "sunroofType": "PANORAMIC", + "tcuType": "HERMES2FU2", + "tirePressureMonitorType": "TIRE_PRESSURE_MONITORING_SYSTEM" + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/info/FC-MB-EQA.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/FC-MB-EQA.json new file mode 100644 index 00000000000..be488176a05 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/info/FC-MB-EQA.json @@ -0,0 +1,57 @@ +{ + "features": { + "auxHeat": false, + "bidirectionalCharging": false, + "chargingClockTimer": false, + "controllableRearWindowBlind": false, + "controllableSunroof": false, + "convertible": false, + "dcCharging": true, + "distronicPro": false, + "doubleDoorLock": false, + "driverAssistancePackageHigh": false, + "driverAssistancePackagePlus": false, + "ecoCharging": false, + "fastCharging": false, + "hepaFilter": false, + "mopf": false, + "pictureTransfer": false, + "pluggedStateDependingPreEntryClimateControl": false, + "precondNow": true, + "rearSunProtectionBlinds": false, + "remoteSettingPersonalizedTemperature": false, + "remoteSettingTemperature": true, + "urbanGuard": false, + "variableOpenableSunroof": false, + "variableOpenableWindow": false, + "weeklyProfile": true + }, + "vehicle": { + "baumuster": "243701", + "changeYearCodes": null, + "controllableSunroofBlindsCount": null, + "doorsCount": 4, + "doorsHandleType": "WITH_CAP", + "drivingSide": "LEFT", + "electricVehicleType": "BATTERY", + "electricWindowLifts": [ + "FIRST_ROW_LEFT", + "FIRST_ROW_RIGHT", + "SECOND_ROW_LEFT", + "SECOND_ROW_RIGHT" + ], + "fuelTypes": [ + "ELECTRIC" + ], + "headUnitSoftwareVersion": "FRESHUP3", + "headUnitType": "NTG6", + "modelYearCode": "802", + "powertrainBatteryModel": [], + "productGroup": "PASSENGER", + "remoteSeatConfiguration": "ONLY_DRIVER_OR_ALL_SEATS", + "starArchitecture": "STAR2_3", + "sunroofType": null, + "tcuType": "HERMES2FU2", + "tirePressureMonitorType": "TIRE_PRESSURE_MONITORING_SYSTEM" + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/invalid-key.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/invalid-key.json deleted file mode 100644 index 06e434b6a99..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/invalid-key.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "wrong": { - "value": "4131", - "timestamp": 1655399236000 - } - } -] \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/invalid-timestamp.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/invalid-timestamp.json deleted file mode 100644 index a04379f39e3..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/invalid-timestamp.json +++ /dev/null @@ -1,7 +0,0 @@ -[ - { - "odo": { - "value": "4131" - } - } -] \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/json/TokenResponse.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/json/TokenResponse.json new file mode 100644 index 00000000000..70e4aa0ab88 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/json/TokenResponse.json @@ -0,0 +1,9 @@ +{ + "accessToken": "Tkn", + "tokenType": "Bearer", + "expiresIn": 7199, + "refreshToken": "RfrshTkn", + "scope": "openid email phone profile offline_access ciam-uid", + "state": null, + "createdOn": "2023-10-04T01:47:08.007038393Z" +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/lock.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/lock.json deleted file mode 100644 index 9655d6bd102..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/lock.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "doorlockstatusvehicle": { - "value": "0", - "timestamp": 1541080800000 - } - }, - { - "doorlockstatusdecklid": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "doorlockstatusgas": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "positionHeading": { - "value": "120", - "timestamp": 1541080800000 - } - } -] \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/odo.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/odo.json deleted file mode 100644 index bf98a068153..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/odo.json +++ /dev/null @@ -1,8 +0,0 @@ -[ - { - "odo": { - "value": "4131", - "timestamp": 1655399236000 - } - } -] \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-blob/MB-BEV-EQA-Charging.blob b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-blob/MB-BEV-EQA-Charging.blob new file mode 100644 index 0000000000000000000000000000000000000000..9526b29088b9ab7938701fc0e14776baa893e645 GIT binary patch literal 6676 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 q_8@&2y6(MI>{E3GNWI)NY~PiR=djG zm5uw$c@SJOG~@|=OaciY3Teh^(=@cxrqgMd%ygR4JSNaUnlMRl({zTGrbGK9>70A_ zu2v7H)h~N2?!D)n?|k2P4$AIz=)QI6tJpA&sk~XVlz+yR@^8r=q@+!gS~j+e7A2VK zWZYK#^22lIOHGjm_25tU{peUM89{B6nvpgq%U`5gCJWy@^_{s=Q`n~-|J&^DQY_hv z{Atayv5_Ll&0{vEw$ds;`sT5HP3?^dNj>x1e}DGQ^=Bk0xe~Qh-YgFMX!iH)>X|2A zeeq~4xf-=(u(cfGU>(%tm$~CP87fV`9IE=n!*k0 z?D2~b&k7VEMn*HpR?|$6vEUWIeC*T1?B>feFTMXvEZKpOj*UzaXUNvO#Gk_r;?Lb^ zvGcHP*vOE1!n_f+6P=`Ns-;qw zlw5$FGq(|o*h)}-d1j zEt>2>fpJ|c>|h0Tg0FL49|}?kY_s$H9lBjmTIKJZm@Dz)_P_h>J*61bGJ@Kmmb#hB zaez#atd?Slf8)Cx9%qivJXne)SD`>2?;0~xqvj-`qgr0Gl@L#SctB*KZmB^{4^o_Cv7Hvj3SdMe@%-h;59du{YG_7A$N56-QC(=U zQ`*fF0A~k$Wpv$$mWVzQ1;9G*r!M(Ci+&tFD@POR`%k?O(Kikb^~a$c%aPxC=SYzP z6pY&QyAZO>RDqh~noivEOKyuMSEKgInvMhdM3b_zMjAv}dyrC2;WmQlD5sICwu_*E zjg6cRja>NBM(#z;BxPDDlaYQo&M^C@KZ55~cOx%doo>7Vwbh`UWv^5I>)&0F&sYid z>dA9nkgrCe3U+|l=Ou^bsM-0l6MNl;4^>v&qX$*>Udvlkh1R^CU~9XUCzcIJZ*gkQ zDlh1EEeh${Jw+|;p+L&$sYO2e`iY~wPBVYJ^44RqyCpyq&+-->7d$C`+DY-j6CXk% z`cN|?D8YJ4J13{`1)sxB$p!Is8=xb)&|+K5lPxCAW2mg)dbekLk>d0#*9D#NOi=#8 zzxF=S#M|!QxBA4(~|Uz)QPS|i&zZ9#IOksG9hXh zN-S#}80e4Ipnc=KXzxQIuRo}uipO_z1vqqM?tv0miGU!sTe0UM~SQ@mT=Ax`l^N?e-gluwm~bPf zwNPah3!~;VN#%4c?NaV(XksYgpFW18KrAUv<)91T__s3;wCL) zuzrK904z^ly2Qx+^8KIRSAv_G!AjX?VSWm%lx~ZrbG6d#ktUo<5nTz%ud@VgRcBvd z>G9n#0RCkI3Q>|bZNfmlz1)#X7bi*XUmDgY1Wz^&tm}_XOHwk9nnjcFA}n__KOT?A zt&^u+&HqX)HWVG|XC&viuu(IWl)MftFw>^8j3*}i!=kW33uA-P*bP9M zE6_FBshw0y@8DJpn)m+Qua%lucf9=crM*XEKR7Evg{k;NY7exve<40nMEvvxJU`&D&Lp<7 zlh`JJdnT+AcamA|ZCIXOztgZciFWNqK_Gx?P;hc`O9dRx^TaBuYv5id39fT#H}YEr zLeh5`8nABuw&8kG=`mbb5I8ej5lI-XezcSu12#g9<+Q?WMp{d8&sqm^11N|A)EP1c z_w#r=hvSv zkq=6~%78UH8FIc z1(umoLh^@TUczJQp`*V77vWnU2cqglEf%2@T8e03U?#Ah##5FOkk7H#KQ5`q-(k)k zT0l%}AeXmuv8V~t5Ji3i&QZ@CfB>ORGkJGT|zI`K04fukK-E zz-qUtQl_b6!)CLOZq_B#)hI-av^mbJT&d~@8BK$#|N1c|XMM;o_-LFGGMNP-`UED1 z@Hf=`N7$&~ThHjc10g4@JIqN?0|+W2IbqfM128c240?SPj;jo?I`dW^Y8B3$?IVO5 z)tQ01(IVF@W83x0&)@pNw_2aSa*N}Y`_WQvvv>y!6DMXKR!i@|w+4lBWJ=cz!u%t{ zsHiIwAZHu(46ExZwrBDTD11lLQlnK_w!8AaL_{W*VJ@X!ixy6>c4~2~{i%xpC%!lV z+X%GGrL)2^SIrVp)FCp7^?FQMqYCx6PJHC5*g7=~mbXp=vHoa5O5R*=^YH(>kRGIX zHyf^XuZn36T0$mREE_FLv+NP@#djKGcY>7gQhF@xAPQ$EHeuT)bZUE+&^*>vY8G&Y z6_u}0f;E*&M$0yeOU3_Oom2@754(du$gyji6Jn#_TQ>j#(}(;5y;})RYeq&1$@c;e z@PComl2GSfVSC4J6!dEBxL(wN9IG^aEn4O%)(Ez7l_^sE+zLe`#|#O1FK^#67?`Na z*>}0zHjjgja3kb+CBAH}Z~VF|=1VXEo{`!!ocS4>akgY_&{{)dASXTLU5{VA-WsWoAe^ATR%VdkmFour+@a7!)z1Ti~O)*Vy}0_3Uf9`tHk!ZOg!_F&RW!757$8E?$I7#uXmPGLeni}C3obG8~=|K zLcV~C8f7VvMvXH6c|jlz3d$IYP^T|AwfP;UX(+RdXCcq=Tz?^dJzC}^HJ97x4fT4o zq*{EP&A-yh1(-$36&Sp5&6?Pm4Qs)=0tK875aJ5BXNV5_#L}^bvBgTMy53p1I^gO* zKoLxZ*kwaGI3)ux`q5&O&rN)--|2Wjwi`K9Oo+US)lwKWTX{@vCfd;Z{_0g=z3rC} dmpa?8s{d>84(m@itCX4N>a0?}q_(@H{{j|Y`6vJY literal 0 HcmV?d00001 diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA-Charging-Unformatted.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA-Charging-Unformatted.json new file mode 100644 index 00000000000..e4f90773f0f --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA-Charging-Unformatted.json @@ -0,0 +1 @@ +{"doorLockStatusOverall":{"timestamp_in_ms":1693926313000,"timestamp":1693926313,"int_value":0},"chargeCouplerACStatus":{"timestamp_in_ms":1693923754000,"timestamp":1693923754,"int_value":0},"precondSeatFrontRight":{"timestamp_in_ms":1692956198000,"bool_value":false,"timestamp":1692956198},"evRangeAssistDriveOnSOC":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":3},"tirePressMeasTimestamp":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":1693923710},"smartCharging":{"timestamp_in_ms":1693923754000,"timestamp":1693923754,"int_value":0},"vehicleHealthStatus":{"timestamp_in_ms":1654831900642,"nil_value":true,"timestamp":1654831900,"status":1},"drivenTimeStart":{"timestamp_in_ms":1693923667000,"timestamp":1693923667,"int_value":60},"maxSoc":{"timestamp_in_ms":1693902759000,"ratio_unit":"PERCENT","nil_value":true,"timestamp":1693902759,"status":4},"doorlockstatusdecklid":{"timestamp_in_ms":1693926313000,"bool_value":false,"timestamp":1693926313},"socprofile":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":1},"maxrange":{"display_value":"330.0","timestamp_in_ms":1693998228000,"distance_unit":"KILOMETERS","timestamp":1693998228,"int_value":330},"maxSocLowerLimit":{"display_value":"50","timestamp_in_ms":1692956198000,"ratio_unit":"PERCENT","timestamp":1692956198,"int_value":50},"weeklyProfile":{"timestamp_in_ms":1675419313000,"weekly_profile_value":{},"timestamp":1675419313},"liquidRangeSkipIndication":{"timestamp_in_ms":1693923710000,"nil_value":true,"timestamp":1693923710,"status":4},"doorlockstatusfrontright":{"timestamp_in_ms":1693926313000,"bool_value":false,"timestamp":1693926313},"tirepressureRearRight":{"display_value":"3.1","timestamp_in_ms":1693923681000,"pressure_unit":"BAR","double_value":312.5,"timestamp":1693923681},"chargeCouplerDCStatus":{"timestamp_in_ms":1693923754000,"timestamp":1693923754,"int_value":0},"vehiclePositionErrorCode":{"timestamp_in_ms":1693998310426,"timestamp":1693998310,"int_value":5},"languageHU":{"timestamp_in_ms":1692956198000,"timestamp":1692956198,"int_value":0},"tireMarkerRearLeft":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":0},"distanceElectricalStart":{"display_value":"56.3","timestamp_in_ms":1693923676000,"distance_unit":"KILOMETERS","double_value":56.3,"timestamp":1693923676},"departureTimeMode":{"timestamp_in_ms":1692956198000,"timestamp":1692956198,"int_value":0},"parkbrakestatus":{"timestamp_in_ms":1693998146000,"bool_value":true,"timestamp":1693998146},"gasTankLevel":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"bindingInfo":{"oh-bundle":"unknown","version":"oh-release","vehicle":"mercedesme:bev"},"starterBatteryState":{"timestamp_in_ms":1693998228000,"timestamp":1693998228,"int_value":0},"precondNowError":{"timestamp_in_ms":1692956198000,"timestamp":1692956198,"int_value":0},"windowStatusOverall":{"timestamp_in_ms":1693998146000,"timestamp":1693998146,"int_value":1},"tireSensorAvailable":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":0},"weeklySetHU":{"timestamp_in_ms":1675419313000,"weekly_settings_head_unit_value":[],"timestamp":1675419313},"rangeelectric":{"display_value":"307","timestamp_in_ms":1693998228000,"distance_unit":"KILOMETERS","timestamp":1693998228,"int_value":307},"tireMarkerRearRight":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":0},"windowstatusrearright":{"timestamp_in_ms":1693998146000,"timestamp":1693998146,"int_value":2},"serviceintervaldays":{"timestamp_in_ms":1693998146000,"nil_value":true,"timestamp":1693998146,"status":3},"electricalRangeSkipIndication":{"timestamp_in_ms":1693923710000,"bool_value":false,"timestamp":1693923710},"windowstatusrearleft":{"timestamp_in_ms":1693998146000,"timestamp":1693998146,"int_value":2},"endofchargetime":{"display_value":"13:55","timestamp_in_ms":1693991413000,"clock_hour_unit":"T24H","timestamp":1693991413,"int_value":835},"hybridWarnings":{"timestamp_in_ms":1693581955000,"nil_value":true,"timestamp":1693581955,"status":3},"positionHeading":{"timestamp_in_ms":1693923713000,"double_value":44.5,"timestamp":1693923713},"precondAtDepartureDisable":{"timestamp_in_ms":1692956198000,"bool_value":false,"timestamp":1692956198},"doorstatusrearleft":{"timestamp_in_ms":1693922319000,"bool_value":false,"timestamp":1693922319},"odo":{"display_value":"15017","timestamp_in_ms":1693923676000,"distance_unit":"KILOMETERS","timestamp":1693923676,"int_value":15017},"tirewarninglamp":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":0},"evRangeAssistDriveOnTime":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":3},"precondDuration":{"timestamp_in_ms":1692956198000,"timestamp":1692956198,"int_value":0},"positionLong":{"timestamp_in_ms":1692957336,"double_value":4.56,"timestamp":1692957336},"electricconsumptionreset":{"display_value":"21.0","timestamp_in_ms":1693998147000,"electricity_consumption_unit":"KWH_PER_100KM","double_value":21,"timestamp":1693998147},"precondatdeparture":{"timestamp_in_ms":1692956198000,"bool_value":true,"timestamp":1692956198},"flipWindowStatus":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"temperatureUnitHU":{"timestamp_in_ms":1692956198000,"bool_value":false,"timestamp":1692956198},"departureTimeWeekday":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":3},"ecoscoreconst":{"display_value":"60","timestamp_in_ms":1693923622000,"ratio_unit":"PERCENT","timestamp":1693923622,"int_value":60},"averageSpeedReset":{"display_value":"42","timestamp_in_ms":1692956198000,"speed_unit":"KM_PER_HOUR","double_value":42,"timestamp":1692956198},"doorstatusfrontright":{"timestamp_in_ms":1693925034000,"bool_value":false,"timestamp":1693925034},"tcuConnectionStateLowChannel":{"timestamp_in_ms":1693994140039,"timestamp":1693994140},"chargingstatus":{"timestamp_in_ms":1693998220000,"timestamp":1693998220,"int_value":0},"ecoscoretotal":{"timestamp_in_ms":1693923662000,"ratio_unit":"PERCENT","nil_value":true,"timestamp":1693923662,"status":4},"doorstatusfrontleft":{"timestamp_in_ms":1693925034000,"bool_value":false,"timestamp":1693925034},"warningbrakeliningwear":{"timestamp_in_ms":1693923710000,"bool_value":false,"timestamp":1693923710},"electricRatioOverall":{"timestamp_in_ms":1668701631000,"nil_value":true,"timestamp":1668701631,"status":4},"distanceZEStart":{"timestamp_in_ms":1638508946000,"distance_unit":"KILOMETERS","nil_value":true,"timestamp":1638508946,"status":4},"doorlockstatusgas":{"timestamp_in_ms":1693926313000,"bool_value":false,"timestamp":1693926313},"engineHoodStatus":{"timestamp_in_ms":1692956198000,"bool_value":false,"timestamp":1692956198},"doorstatusrearright":{"timestamp_in_ms":1693669477000,"bool_value":false,"timestamp":1693669477},"keylineActivationState":{"timestamp_in_ms":1638508946000,"timestamp":1638508946},"tirewarningsrdk":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":0},"rangeliquid":{"timestamp_in_ms":1693998228000,"distance_unit":"KILOMETERS","nil_value":true,"timestamp":1693998228,"status":4},"precondNow":{"timestamp_in_ms":1693923947000,"bool_value":false,"timestamp":1693923947},"sunroofEventActive":{"timestamp_in_ms":1693998146000,"bool_value":false,"timestamp":1693998146},"chargingPower":{"timestamp_in_ms":1693998228000,"double_value":4.2,"timestamp":1693998228},"drivenTimeReset":{"timestamp_in_ms":1693923667000,"timestamp":1693923667,"int_value":16605},"positionLat":{"timestamp_in_ms":1692957336,"double_value":1.23,"timestamp":1692957336},"averageSpeedStart":{"display_value":"55","timestamp_in_ms":1693923686000,"speed_unit":"KM_PER_HOUR","double_value":55,"timestamp":1693923686},"gasconsumptionstart":{"timestamp_in_ms":1638508946000,"gas_consumption_unit":"KG_PER_100KM","nil_value":true,"timestamp":1638508946,"status":4},"vehicleLockState":{"timestamp_in_ms":1693926313000,"timestamp":1693926313,"int_value":2},"windowStatusRearRightBlind":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":4},"gasTankRange":{"timestamp_in_ms":1638508946000,"distance_unit":"KILOMETERS","nil_value":true,"timestamp":1638508946,"status":4},"ecoscorefreewhl":{"display_value":"81","timestamp_in_ms":1693923562000,"ratio_unit":"PERCENT","timestamp":1693923562,"int_value":81},"doorlockstatusrearright":{"timestamp_in_ms":1693926313000,"bool_value":false,"timestamp":1693926313},"distanceStart":{"display_value":"56.3","timestamp_in_ms":1693923676000,"distance_unit":"KILOMETERS","double_value":56.3,"timestamp":1693923676},"soc":{"display_value":"74","timestamp_in_ms":1693998220000,"ratio_unit":"PERCENT","timestamp":1693998220,"int_value":74},"gasconsumptionreset":{"timestamp_in_ms":1638508946000,"gas_consumption_unit":"KG_PER_100KM","nil_value":true,"timestamp":1638508946,"status":4},"distanceReset":{"display_value":"11606.9","timestamp_in_ms":1693923676000,"distance_unit":"KILOMETERS","double_value":11606.9,"timestamp":1693923676},"sunroofStatusFrontBlind":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"windowstatusfrontleft":{"timestamp_in_ms":1693944411000,"timestamp":1693944411,"int_value":2},"speedUnitFromIC":{"timestamp_in_ms":1654831900642,"nil_value":true,"timestamp":1654831900,"status":1},"windowStatusRearLeftBlind":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":4},"doorlockstatusvehicle":{"timestamp_in_ms":1693926313000,"timestamp":1693926313,"int_value":2},"tankLevelAdBlue":{"timestamp_in_ms":1638508946000,"ratio_unit":"PERCENT","nil_value":true,"timestamp":1638508946,"status":4},"tirepressureRearLeft":{"display_value":"3.1","timestamp_in_ms":1693923641000,"pressure_unit":"BAR","double_value":310,"timestamp":1693923641},"timeFormatHU":{"timestamp_in_ms":1692956198000,"bool_value":true,"timestamp":1692956198},"liquidconsumptionstart":{"timestamp_in_ms":1688905509000,"combustion_consumption_unit":"LITER_PER_100KM","nil_value":true,"timestamp":1688905509,"status":4},"temperaturePoints":{"temperature_points_value":{"temperature_points":[{"zone":"frontCenter","temperature_display_value":"21.5","temperature":21.5}]},"timestamp_in_ms":1693923891000,"temperature_unit":"CELSIUS","timestamp":1693923891},"distanceGasReset":{"timestamp_in_ms":1638508946000,"distance_unit":"KILOMETERS","nil_value":true,"timestamp":1638508946,"status":4},"departuretimesoc":{"display_value":"80","timestamp_in_ms":1693998228000,"ratio_unit":"PERCENT","timestamp":1693998228,"int_value":80},"selectedChargeProgram":{"timestamp_in_ms":1693937034000,"timestamp":1693937034,"int_value":2},"chargePrograms":{"timestamp_in_ms":1693902759000,"charge_programs_value":[{"max_soc":80},{"charge_program":"INSTANT_CHARGE_PROGRAM","max_soc":100},{"charge_program":"HOME_CHARGE_PROGRAM","max_soc":80},{"charge_program":"WORK_CHARGE_PROGRAM","max_soc":100}],"timestamp":1693902759},"distanceZEReset":{"timestamp_in_ms":1638508946000,"distance_unit":"KILOMETERS","nil_value":true,"timestamp":1638508946,"status":4},"tiremarker":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":0},"overallRange":{"display_value":"307","timestamp_in_ms":1693998228000,"distance_unit":"KILOMETERS","double_value":307,"timestamp":1693998228},"tirewarningsprw":{"timestamp_in_ms":1693923710000,"nil_value":true,"timestamp":1693923710,"status":4},"precondSeatFrontLeft":{"timestamp_in_ms":1692956198000,"bool_value":true,"timestamp":1692956198},"drivenTimeZEReset":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"tireMarkerFrontRight":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":0},"serviceintervaldistance":{"display_value":"20294","timestamp_in_ms":1693998146000,"distance_unit":"KILOMETERS","timestamp":1693998146,"int_value":20294},"precondActive":{"timestamp_in_ms":1692956198000,"bool_value":false,"timestamp":1692956198},"ecoscorebonusrange":{"display_value":"10.2","timestamp_in_ms":1693923620000,"distance_unit":"KILOMETERS","double_value":10.2,"timestamp":1693923620},"precondState":{"timestamp_in_ms":1693923947000,"timestamp":1693923947},"rangeAdBlue":{"timestamp_in_ms":1692593406000,"distance_unit":"KILOMETERS","nil_value":true,"timestamp":1692593406,"status":4},"distanceGasStart":{"timestamp_in_ms":1638508946000,"distance_unit":"KILOMETERS","nil_value":true,"timestamp":1638508946,"status":4},"sunroofEvent":{"timestamp_in_ms":1692956198000,"timestamp":1692956198,"int_value":0},"liquidconsumptionreset":{"timestamp_in_ms":1688905509000,"combustion_consumption_unit":"LITER_PER_100KM","nil_value":true,"timestamp":1688905509,"status":4},"warningbrakefluid":{"timestamp_in_ms":1693923710000,"bool_value":false,"timestamp":1693923710},"hvBatteryThermalPropagationEvent":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"windowstatusfrontright":{"timestamp_in_ms":1693944411000,"timestamp":1693944411,"int_value":2},"electricconsumptionstart":{"display_value":"16.5","timestamp_in_ms":1693998147000,"electricity_consumption_unit":"KWH_PER_100KM","double_value":16.5,"timestamp":1693998147},"trackingStateHU":{"timestamp_in_ms":1692956198000,"bool_value":true,"timestamp":1692956198},"warningenginelight":{"timestamp_in_ms":1654831900642,"nil_value":true,"timestamp":1654831900,"status":1},"ignitionstate":{"timestamp_in_ms":1693998146000,"timestamp":1693998146,"int_value":0},"precondSeatRearLeft":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":4},"rooftopstatus":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"electricRatioReset":{"timestamp_in_ms":1668701631000,"nil_value":true,"timestamp":1668701631,"status":4},"warningwashwater":{"timestamp_in_ms":1693923710000,"bool_value":false,"timestamp":1693923710},"sunroofstatus":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"tirepressureFrontRight":{"display_value":"3.1","timestamp_in_ms":1693923591000,"pressure_unit":"BAR","double_value":315,"timestamp":1693923591},"filterParticleLoading":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":1},"precondSeatRearRight":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":4},"tirepressureFrontLeft":{"display_value":"3.1","timestamp_in_ms":1693923563000,"pressure_unit":"BAR","double_value":312.5,"timestamp":1693923563},"auxheatwarnings":{"timestamp_in_ms":1659023673000,"nil_value":true,"timestamp":1659023673,"status":4},"proximityCalculationForVehiclePositionRequired":{"timestamp_in_ms":1693998310426,"bool_value":false,"timestamp":1693998310},"gasTankLevelPercent":{"timestamp_in_ms":1638508946000,"ratio_unit":"PERCENT","nil_value":true,"timestamp":1638508946,"status":4},"chargingactive":{"timestamp_in_ms":1693991412000,"bool_value":true,"timestamp":1693991412},"remoteStartTemperature":{"display_value":"24.0","timestamp_in_ms":1693923710000,"temperature_unit":"CELSIUS","double_value":24,"timestamp":1693923710},"vehicleDataConnectionState":{"timestamp_in_ms":1693994140039,"bool_value":true,"timestamp":1693994140},"windowStatusRearBlind":{"timestamp_in_ms":1692956198000,"nil_value":true,"timestamp":1692956198,"status":4},"endofChargeTimeWeekday":{"timestamp_in_ms":1693991413000,"timestamp":1693991413,"int_value":2},"warningcoolantlevellow":{"timestamp_in_ms":1693923710000,"nil_value":true,"timestamp":1693923710,"status":4},"doorStatusOverall":{"timestamp_in_ms":1693925034000,"timestamp":1693925034,"int_value":1},"drivenTimeZEStart":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"sunroofStatusRearBlind":{"timestamp_in_ms":1638508946000,"nil_value":true,"timestamp":1638508946,"status":4},"ecoscoreaccel":{"display_value":"72","timestamp_in_ms":1693923662000,"ratio_unit":"PERCENT","timestamp":1693923662,"int_value":72},"departuretime":{"timestamp_in_ms":1693991405000,"clock_hour_unit":"T24H","timestamp":1693991405,"int_value":-1},"rangeElectricWltp":{"timestamp_in_ms":1693998228000,"distance_unit":"KILOMETERS","nil_value":true,"timestamp":1693998228,"status":4},"doorlockstatusfrontleft":{"timestamp_in_ms":1693926313000,"bool_value":false,"timestamp":1693926313},"decklidstatus":{"timestamp_in_ms":1693923782000,"bool_value":false,"timestamp":1693923782},"chargeFlapDCStatus":{"timestamp_in_ms":1693923743000,"timestamp":1693923743,"int_value":0},"tireWarningLevelPrw":{"timestamp_in_ms":1693923710000,"nil_value":true,"timestamp":1693923710,"status":4},"tanklevelpercent":{"timestamp_in_ms":1638508946000,"ratio_unit":"PERCENT","nil_value":true,"timestamp":1638508946,"status":4},"chargeCouplerDCLockStatus":{"timestamp_in_ms":1693923755000,"timestamp":1693923755,"int_value":0},"doorlockstatusrearleft":{"timestamp_in_ms":1693926313000,"bool_value":false,"timestamp":1693926313},"precondError":{"timestamp_in_ms":1692956198000,"timestamp":1692956198,"int_value":0},"electricRatioStart":{"timestamp_in_ms":1668701631000,"nil_value":true,"timestamp":1668701631,"status":4},"chargingErrorDetails":{"timestamp_in_ms":1692956198000,"timestamp":1692956198,"int_value":0},"vtime":{"timestamp_in_ms":1693998228000,"timestamp":1693998228,"int_value":1694005426},"tireMarkerFrontLeft":{"timestamp_in_ms":1693923710000,"timestamp":1693923710,"int_value":0},"distanceElectricalReset":{"display_value":"11606.9","timestamp_in_ms":1693923676000,"distance_unit":"KILOMETERS","double_value":11606.9,"timestamp":1693923676}} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA-Charging.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA-Charging.json new file mode 100644 index 00000000000..300c711edd7 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA-Charging.json @@ -0,0 +1,929 @@ +{ + "doorLockStatusOverall": { + "timestamp_in_ms": 1693926313000, + "timestamp": 1693926313, + "int_value": 0 + }, + "chargeCouplerACStatus": { + "timestamp_in_ms": 1693923754000, + "timestamp": 1693923754, + "int_value": 0 + }, + "precondSeatFrontRight": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "evRangeAssistDriveOnSOC": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "tirePressMeasTimestamp": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 1693923710 + }, + "smartCharging": { + "timestamp_in_ms": 1693923754000, + "timestamp": 1693923754, + "int_value": 0 + }, + "vehicleHealthStatus": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "drivenTimeStart": { + "timestamp_in_ms": 1693923667000, + "timestamp": 1693923667, + "int_value": 60 + }, + "maxSoc": { + "timestamp_in_ms": 1693902759000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1693902759, + "status": 4 + }, + "doorlockstatusdecklid": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "socprofile": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 1 + }, + "maxrange": { + "display_value": "330.0", + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "timestamp": 1693998228, + "int_value": 330 + }, + "maxSocLowerLimit": { + "display_value": "50", + "timestamp_in_ms": 1692956198000, + "ratio_unit": "PERCENT", + "timestamp": 1692956198, + "int_value": 50 + }, + "weeklyProfile": { + "timestamp_in_ms": 1675419313000, + "weekly_profile_value": { + + }, + "timestamp": 1675419313 + }, + "liquidRangeSkipIndication": { + "timestamp_in_ms": 1693923710000, + "nil_value": true, + "timestamp": 1693923710, + "status": 4 + }, + "doorlockstatusfrontright": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "tirepressureRearRight": { + "display_value": "3.1", + "timestamp_in_ms": 1693923681000, + "pressure_unit": "BAR", + "double_value": 312.5, + "timestamp": 1693923681 + }, + "chargeCouplerDCStatus": { + "timestamp_in_ms": 1693923754000, + "timestamp": 1693923754, + "int_value": 0 + }, + "vehiclePositionErrorCode": { + "timestamp_in_ms": 1693998310426, + "timestamp": 1693998310, + "int_value": 5 + }, + "languageHU": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "tireMarkerRearLeft": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "distanceElectricalStart": { + "display_value": "56.3", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "double_value": 56.3, + "timestamp": 1693923676 + }, + "departureTimeMode": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "parkbrakestatus": { + "timestamp_in_ms": 1693998146000, + "bool_value": true, + "timestamp": 1693998146 + }, + "gasTankLevel": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "bindingInfo": { + "version": "2.2-alpha", + "vehicle": "mercedesme:bev" + }, + "starterBatteryState": { + "timestamp_in_ms": 1693998228000, + "timestamp": 1693998228, + "int_value": 0 + }, + "precondNowError": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "windowStatusOverall": { + "timestamp_in_ms": 1693998146000, + "timestamp": 1693998146, + "int_value": 1 + }, + "tireSensorAvailable": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "weeklySetHU": { + "timestamp_in_ms": 1675419313000, + "weekly_settings_head_unit_value": [], + "timestamp": 1675419313 + }, + "rangeelectric": { + "display_value": "307", + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "timestamp": 1693998228, + "int_value": 307 + }, + "tireMarkerRearRight": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "windowstatusrearright": { + "timestamp_in_ms": 1693998146000, + "timestamp": 1693998146, + "int_value": 2 + }, + "serviceintervaldays": { + "timestamp_in_ms": 1693998146000, + "nil_value": true, + "timestamp": 1693998146, + "status": 3 + }, + "electricalRangeSkipIndication": { + "timestamp_in_ms": 1693923710000, + "bool_value": false, + "timestamp": 1693923710 + }, + "windowstatusrearleft": { + "timestamp_in_ms": 1693998146000, + "timestamp": 1693998146, + "int_value": 2 + }, + "endofchargetime": { + "display_value": "13:55", + "timestamp_in_ms": 1693991413000, + "clock_hour_unit": "T24H", + "timestamp": 1693991413, + "int_value": 835 + }, + "hybridWarnings": { + "timestamp_in_ms": 1693581955000, + "nil_value": true, + "timestamp": 1693581955, + "status": 3 + }, + "positionHeading": { + "timestamp_in_ms": 1693923713000, + "double_value": 44.5, + "timestamp": 1693923713 + }, + "precondAtDepartureDisable": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "doorstatusrearleft": { + "timestamp_in_ms": 1693922319000, + "bool_value": false, + "timestamp": 1693922319 + }, + "odo": { + "display_value": "15017", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "timestamp": 1693923676, + "int_value": 15017 + }, + "tirewarninglamp": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "evRangeAssistDriveOnTime": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "precondDuration": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "positionLong": { + "timestamp_in_ms": 1692957336, + "double_value": 4.56, + "timestamp": 1692957336 + }, + "electricconsumptionreset": { + "display_value": "21.0", + "timestamp_in_ms": 1693998147000, + "electricity_consumption_unit": "KWH_PER_100KM", + "double_value": 21, + "timestamp": 1693998147 + }, + "precondatdeparture": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "flipWindowStatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "temperatureUnitHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "departureTimeWeekday": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "ecoscoreconst": { + "display_value": "60", + "timestamp_in_ms": 1693923622000, + "ratio_unit": "PERCENT", + "timestamp": 1693923622, + "int_value": 60 + }, + "averageSpeedReset": { + "display_value": "42", + "timestamp_in_ms": 1692956198000, + "speed_unit": "KM_PER_HOUR", + "double_value": 42, + "timestamp": 1692956198 + }, + "doorstatusfrontright": { + "timestamp_in_ms": 1693925034000, + "bool_value": false, + "timestamp": 1693925034 + }, + "tcuConnectionStateLowChannel": { + "timestamp_in_ms": 1693994140039, + "timestamp": 1693994140 + }, + "chargingstatus": { + "timestamp_in_ms": 1693998220000, + "timestamp": 1693998220, + "int_value": 0 + }, + "ecoscoretotal": { + "timestamp_in_ms": 1693923662000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1693923662, + "status": 4 + }, + "doorstatusfrontleft": { + "timestamp_in_ms": 1693925034000, + "bool_value": false, + "timestamp": 1693925034 + }, + "warningbrakeliningwear": { + "timestamp_in_ms": 1693923710000, + "bool_value": false, + "timestamp": 1693923710 + }, + "electricRatioOverall": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "distanceZEStart": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "doorlockstatusgas": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "engineHoodStatus": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "doorstatusrearright": { + "timestamp_in_ms": 1693669477000, + "bool_value": false, + "timestamp": 1693669477 + }, + "keylineActivationState": { + "timestamp_in_ms": 1638508946000, + "timestamp": 1638508946 + }, + "tirewarningsrdk": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "rangeliquid": { + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1693998228, + "status": 4 + }, + "precondNow": { + "timestamp_in_ms": 1693923947000, + "bool_value": false, + "timestamp": 1693923947 + }, + "sunroofEventActive": { + "timestamp_in_ms": 1693998146000, + "bool_value": false, + "timestamp": 1693998146 + }, + "chargingPower": { + "timestamp_in_ms": 1693998228000, + "double_value": 4.2, + "timestamp": 1693998228 + }, + "drivenTimeReset": { + "timestamp_in_ms": 1693923667000, + "timestamp": 1693923667, + "int_value": 16605 + }, + "positionLat": { + "timestamp_in_ms": 1692957336, + "double_value": 1.23, + "timestamp": 1692957336 + }, + "averageSpeedStart": { + "display_value": "55", + "timestamp_in_ms": 1693923686000, + "speed_unit": "KM_PER_HOUR", + "double_value": 55, + "timestamp": 1693923686 + }, + "gasconsumptionstart": { + "timestamp_in_ms": 1638508946000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "vehicleLockState": { + "timestamp_in_ms": 1693926313000, + "timestamp": 1693926313, + "int_value": 2 + }, + "windowStatusRearRightBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "gasTankRange": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "ecoscorefreewhl": { + "display_value": "81", + "timestamp_in_ms": 1693923562000, + "ratio_unit": "PERCENT", + "timestamp": 1693923562, + "int_value": 81 + }, + "doorlockstatusrearright": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "distanceStart": { + "display_value": "56.3", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "double_value": 56.3, + "timestamp": 1693923676 + }, + "soc": { + "display_value": "74", + "timestamp_in_ms": 1693998220000, + "ratio_unit": "PERCENT", + "timestamp": 1693998220, + "int_value": 74 + }, + "gasconsumptionreset": { + "timestamp_in_ms": 1638508946000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "distanceReset": { + "display_value": "11606.9", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "double_value": 11606.9, + "timestamp": 1693923676 + }, + "sunroofStatusFrontBlind": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "windowstatusfrontleft": { + "timestamp_in_ms": 1693944411000, + "timestamp": 1693944411, + "int_value": 2 + }, + "speedUnitFromIC": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "windowStatusRearLeftBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "doorlockstatusvehicle": { + "timestamp_in_ms": 1693926313000, + "timestamp": 1693926313, + "int_value": 2 + }, + "tankLevelAdBlue": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tirepressureRearLeft": { + "display_value": "3.1", + "timestamp_in_ms": 1693923641000, + "pressure_unit": "BAR", + "double_value": 310, + "timestamp": 1693923641 + }, + "timeFormatHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "liquidconsumptionstart": { + "timestamp_in_ms": 1688905509000, + "combustion_consumption_unit": "LITER_PER_100KM", + "nil_value": true, + "timestamp": 1688905509, + "status": 4 + }, + "temperaturePoints": { + "temperature_points_value": { + "temperature_points": [ + { + "zone": "frontCenter", + "temperature_display_value": "21.5", + "temperature": 21.5 + } + ] + }, + "timestamp_in_ms": 1693923891000, + "temperature_unit": "CELSIUS", + "timestamp": 1693923891 + }, + "distanceGasReset": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "departuretimesoc": { + "display_value": "80", + "timestamp_in_ms": 1693998228000, + "ratio_unit": "PERCENT", + "timestamp": 1693998228, + "int_value": 80 + }, + "selectedChargeProgram": { + "timestamp_in_ms": 1693937034000, + "timestamp": 1693937034, + "int_value": 2 + }, + "chargePrograms": { + "timestamp_in_ms": 1693902759000, + "charge_programs_value": [ + { + "max_soc": 80 + }, + { + "charge_program": "INSTANT_CHARGE_PROGRAM", + "max_soc": 100 + }, + { + "charge_program": "HOME_CHARGE_PROGRAM", + "max_soc": 80 + }, + { + "charge_program": "WORK_CHARGE_PROGRAM", + "max_soc": 100 + } + ], + "timestamp": 1693902759 + }, + "distanceZEReset": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tiremarker": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "overallRange": { + "display_value": "307", + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "double_value": 307, + "timestamp": 1693998228 + }, + "tirewarningsprw": { + "timestamp_in_ms": 1693923710000, + "nil_value": true, + "timestamp": 1693923710, + "status": 4 + }, + "precondSeatFrontLeft": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "drivenTimeZEReset": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tireMarkerFrontRight": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "serviceintervaldistance": { + "display_value": "20294", + "timestamp_in_ms": 1693998146000, + "distance_unit": "KILOMETERS", + "timestamp": 1693998146, + "int_value": 20294 + }, + "precondActive": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "ecoscorebonusrange": { + "display_value": "10.2", + "timestamp_in_ms": 1693923620000, + "distance_unit": "KILOMETERS", + "double_value": 10.2, + "timestamp": 1693923620 + }, + "precondState": { + "timestamp_in_ms": 1693923947000, + "timestamp": 1693923947 + }, + "rangeAdBlue": { + "timestamp_in_ms": 1692593406000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1692593406, + "status": 4 + }, + "distanceGasStart": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "sunroofEvent": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "liquidconsumptionreset": { + "timestamp_in_ms": 1688905509000, + "combustion_consumption_unit": "LITER_PER_100KM", + "nil_value": true, + "timestamp": 1688905509, + "status": 4 + }, + "warningbrakefluid": { + "timestamp_in_ms": 1693923710000, + "bool_value": false, + "timestamp": 1693923710 + }, + "hvBatteryThermalPropagationEvent": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "windowstatusfrontright": { + "timestamp_in_ms": 1693944411000, + "timestamp": 1693944411, + "int_value": 2 + }, + "electricconsumptionstart": { + "display_value": "16.5", + "timestamp_in_ms": 1693998147000, + "electricity_consumption_unit": "KWH_PER_100KM", + "double_value": 16.5, + "timestamp": 1693998147 + }, + "trackingStateHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "warningenginelight": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "ignitionstate": { + "timestamp_in_ms": 1693998146000, + "timestamp": 1693998146, + "int_value": 0 + }, + "precondSeatRearLeft": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "rooftopstatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "electricRatioReset": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "warningwashwater": { + "timestamp_in_ms": 1693923710000, + "bool_value": false, + "timestamp": 1693923710 + }, + "sunroofstatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tirepressureFrontRight": { + "display_value": "3.1", + "timestamp_in_ms": 1693923591000, + "pressure_unit": "BAR", + "double_value": 315, + "timestamp": 1693923591 + }, + "filterParticleLoading": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 1 + }, + "precondSeatRearRight": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "tirepressureFrontLeft": { + "display_value": "3.1", + "timestamp_in_ms": 1693923563000, + "pressure_unit": "BAR", + "double_value": 312.5, + "timestamp": 1693923563 + }, + "auxheatwarnings": { + "timestamp_in_ms": 1659023673000, + "nil_value": true, + "timestamp": 1659023673, + "status": 4 + }, + "proximityCalculationForVehiclePositionRequired": { + "timestamp_in_ms": 1693998310426, + "bool_value": false, + "timestamp": 1693998310 + }, + "gasTankLevelPercent": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "chargingactive": { + "timestamp_in_ms": 1693991412000, + "bool_value": true, + "timestamp": 1693991412 + }, + "remoteStartTemperature": { + "display_value": "24.0", + "timestamp_in_ms": 1693923710000, + "temperature_unit": "CELSIUS", + "double_value": 24, + "timestamp": 1693923710 + }, + "vehicleDataConnectionState": { + "timestamp_in_ms": 1693994140039, + "bool_value": true, + "timestamp": 1693994140 + }, + "windowStatusRearBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "endofChargeTimeWeekday": { + "timestamp_in_ms": 1693991413000, + "timestamp": 1693991413, + "int_value": 2 + }, + "warningcoolantlevellow": { + "timestamp_in_ms": 1693923710000, + "nil_value": true, + "timestamp": 1693923710, + "status": 4 + }, + "doorStatusOverall": { + "timestamp_in_ms": 1693925034000, + "timestamp": 1693925034, + "int_value": 1 + }, + "drivenTimeZEStart": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "sunroofStatusRearBlind": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "ecoscoreaccel": { + "display_value": "72", + "timestamp_in_ms": 1693923662000, + "ratio_unit": "PERCENT", + "timestamp": 1693923662, + "int_value": 72 + }, + "departuretime": { + "timestamp_in_ms": 1693991405000, + "clock_hour_unit": "T24H", + "timestamp": 1693991405, + "int_value": -1 + }, + "rangeElectricWltp": { + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1693998228, + "status": 4 + }, + "doorlockstatusfrontleft": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "decklidstatus": { + "timestamp_in_ms": 1693923782000, + "bool_value": false, + "timestamp": 1693923782 + }, + "chargeFlapDCStatus": { + "timestamp_in_ms": 1693923743000, + "timestamp": 1693923743, + "int_value": 0 + }, + "tireWarningLevelPrw": { + "timestamp_in_ms": 1693923710000, + "nil_value": true, + "timestamp": 1693923710, + "status": 4 + }, + "tanklevelpercent": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "chargeCouplerDCLockStatus": { + "timestamp_in_ms": 1693923755000, + "timestamp": 1693923755, + "int_value": 0 + }, + "doorlockstatusrearleft": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "precondError": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "electricRatioStart": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "chargingErrorDetails": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "vtime": { + "timestamp_in_ms": 1693998228000, + "timestamp": 1693998228, + "int_value": 1694005426 + }, + "tireMarkerFrontLeft": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "distanceElectricalReset": { + "display_value": "11606.9", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "double_value": 11606.9, + "timestamp": 1693923676 + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA.json new file mode 100644 index 00000000000..baa3c1f11b2 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-EQA.json @@ -0,0 +1,927 @@ +{ + "doorLockStatusOverall": { + "timestamp_in_ms": 1693926313000, + "timestamp": 1693926313, + "int_value": 0 + }, + "chargeCouplerACStatus": { + "timestamp_in_ms": 1693923754000, + "timestamp": 1693923754, + "int_value": 0 + }, + "precondSeatFrontRight": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "evRangeAssistDriveOnSOC": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "tirePressMeasTimestamp": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 1693923710 + }, + "smartCharging": { + "timestamp_in_ms": 1693923754000, + "timestamp": 1693923754, + "int_value": 0 + }, + "vehicleHealthStatus": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "drivenTimeStart": { + "timestamp_in_ms": 1693923667000, + "timestamp": 1693923667, + "int_value": 60 + }, + "maxSoc": { + "timestamp_in_ms": 1693902759000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1693902759, + "status": 4 + }, + "doorlockstatusdecklid": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "socprofile": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 1 + }, + "maxrange": { + "display_value": "330.0", + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "timestamp": 1693998228, + "int_value": 330 + }, + "maxSocLowerLimit": { + "display_value": "50", + "timestamp_in_ms": 1692956198000, + "ratio_unit": "PERCENT", + "timestamp": 1692956198, + "int_value": 50 + }, + "weeklyProfile": { + "timestamp_in_ms": 1675419313000, + "weekly_profile_value": { + "max_number_of_time_profiles": -1, + "max_number_of_weekly_time_profile_slots": 21, + "current_number_of_time_profiles": -1 + }, + "timestamp": 1675419313 + }, + "liquidRangeSkipIndication": { + "timestamp_in_ms": 1693923710000, + "nil_value": true, + "timestamp": 1693923710, + "status": 4 + }, + "doorlockstatusfrontright": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "tirepressureRearRight": { + "display_value": "3.1", + "timestamp_in_ms": 1693923681000, + "pressure_unit": "BAR", + "double_value": 312.5, + "timestamp": 1693923681 + }, + "chargeCouplerDCStatus": { + "timestamp_in_ms": 1693923754000, + "timestamp": 1693923754, + "int_value": 0 + }, + "vehiclePositionErrorCode": { + "timestamp_in_ms": 1693998310426, + "timestamp": 1693998310, + "int_value": 5 + }, + "languageHU": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "tireMarkerRearLeft": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "distanceElectricalStart": { + "display_value": "56.3", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "double_value": 56.3, + "timestamp": 1693923676 + }, + "departureTimeMode": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "parkbrakestatus": { + "timestamp_in_ms": 1693998146000, + "bool_value": true, + "timestamp": 1693998146 + }, + "gasTankLevel": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "starterBatteryState": { + "timestamp_in_ms": 1693998228000, + "timestamp": 1693998228, + "int_value": 0 + }, + "precondNowError": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "windowStatusOverall": { + "timestamp_in_ms": 1693998146000, + "timestamp": 1693998146, + "int_value": 1 + }, + "tireSensorAvailable": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "weeklySetHU": { + "timestamp_in_ms": 1675419313000, + "weekly_settings_head_unit_value": "", + "timestamp": 1675419313 + }, + "rangeelectric": { + "display_value": "307", + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "timestamp": 1693998228, + "int_value": 307 + }, + "tireMarkerRearRight": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "windowstatusrearright": { + "timestamp_in_ms": 1693998146000, + "timestamp": 1693998146, + "int_value": 2 + }, + "serviceintervaldays": { + "timestamp_in_ms": 1693998146000, + "nil_value": true, + "timestamp": 1693998146, + "status": 3 + }, + "electricalRangeSkipIndication": { + "timestamp_in_ms": 1693923710000, + "bool_value": false, + "timestamp": 1693923710 + }, + "windowstatusrearleft": { + "timestamp_in_ms": 1693998146000, + "timestamp": 1693998146, + "int_value": 2 + }, + "endofchargetime": { + "display_value": "13:55", + "timestamp_in_ms": 1693991413000, + "clock_hour_unit": "T24H", + "timestamp": 1693991413, + "int_value": 835 + }, + "hybridWarnings": { + "timestamp_in_ms": 1693581955000, + "nil_value": true, + "timestamp": 1693581955, + "status": 3 + }, + "positionHeading": { + "timestamp_in_ms": 1693923713000, + "double_value": 44.5, + "timestamp": 1693923713 + }, + "precondAtDepartureDisable": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "doorstatusrearleft": { + "timestamp_in_ms": 1693922319000, + "bool_value": false, + "timestamp": 1693922319 + }, + "odo": { + "display_value": "15017", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "timestamp": 1693923676, + "int_value": 15017 + }, + "tirewarninglamp": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "evRangeAssistDriveOnTime": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "precondDuration": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "positionLong": { + "timestamp_in_ms": 1693923713000, + "double_value": 4.56, + "timestamp": 1693923713 + }, + "electricconsumptionreset": { + "display_value": "21.0", + "timestamp_in_ms": 1693998147000, + "electricity_consumption_unit": "KWH_PER_100KM", + "double_value": 21, + "timestamp": 1693998147 + }, + "precondatdeparture": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "flipWindowStatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "temperatureUnitHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "departureTimeWeekday": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "ecoscoreconst": { + "display_value": "60", + "timestamp_in_ms": 1693923622000, + "ratio_unit": "PERCENT", + "timestamp": 1693923622, + "int_value": 60 + }, + "averageSpeedReset": { + "display_value": "42", + "timestamp_in_ms": 1692956198000, + "speed_unit": "KM_PER_HOUR", + "double_value": 42, + "timestamp": 1692956198 + }, + "doorstatusfrontright": { + "timestamp_in_ms": 1693925034000, + "bool_value": false, + "timestamp": 1693925034 + }, + "tcuConnectionStateLowChannel": { + "timestamp_in_ms": 1693994140039, + "timestamp": 1693994140 + }, + "chargingstatus": { + "timestamp_in_ms": 1693998220000, + "timestamp": 1693998220, + "int_value": 0 + }, + "ecoscoretotal": { + "timestamp_in_ms": 1693923662000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1693923662, + "status": 4 + }, + "doorstatusfrontleft": { + "timestamp_in_ms": 1693925034000, + "bool_value": false, + "timestamp": 1693925034 + }, + "warningbrakeliningwear": { + "timestamp_in_ms": 1693923710000, + "bool_value": false, + "timestamp": 1693923710 + }, + "electricRatioOverall": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "distanceZEStart": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "doorlockstatusgas": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "engineHoodStatus": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "doorstatusrearright": { + "timestamp_in_ms": 1693669477000, + "bool_value": false, + "timestamp": 1693669477 + }, + "keylineActivationState": { + "timestamp_in_ms": 1638508946000, + "timestamp": 1638508946 + }, + "tirewarningsrdk": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "rangeliquid": { + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1693998228, + "status": 4 + }, + "precondNow": { + "timestamp_in_ms": 1693923947000, + "bool_value": false, + "timestamp": 1693923947 + }, + "sunroofEventActive": { + "timestamp_in_ms": 1693998146000, + "bool_value": false, + "timestamp": 1693998146 + }, + "chargingPower": { + "timestamp_in_ms": 1693998228000, + "double_value": 4.2, + "timestamp": 1693998228 + }, + "drivenTimeReset": { + "timestamp_in_ms": 1693923667000, + "timestamp": 1693923667, + "int_value": 16605 + }, + "positionLat": { + "timestamp_in_ms": 1693923713000, + "double_value": 1.23, + "timestamp": 1693923713 + }, + "averageSpeedStart": { + "display_value": "55", + "timestamp_in_ms": 1693923686000, + "speed_unit": "KM_PER_HOUR", + "double_value": 55, + "timestamp": 1693923686 + }, + "gasconsumptionstart": { + "timestamp_in_ms": 1638508946000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "vehicleLockState": { + "timestamp_in_ms": 1693926313000, + "timestamp": 1693926313, + "int_value": 2 + }, + "windowStatusRearRightBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "gasTankRange": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "ecoscorefreewhl": { + "display_value": "81", + "timestamp_in_ms": 1693923562000, + "ratio_unit": "PERCENT", + "timestamp": 1693923562, + "int_value": 81 + }, + "doorlockstatusrearright": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "distanceStart": { + "display_value": "56.3", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "double_value": 56.3, + "timestamp": 1693923676 + }, + "soc": { + "display_value": "74", + "timestamp_in_ms": 1693998220000, + "ratio_unit": "PERCENT", + "timestamp": 1693998220, + "int_value": 74 + }, + "gasconsumptionreset": { + "timestamp_in_ms": 1638508946000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "distanceReset": { + "display_value": "11606.9", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "double_value": 11606.9, + "timestamp": 1693923676 + }, + "sunroofStatusFrontBlind": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "windowstatusfrontleft": { + "timestamp_in_ms": 1693944411000, + "timestamp": 1693944411, + "int_value": 2 + }, + "speedUnitFromIC": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "windowStatusRearLeftBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "doorlockstatusvehicle": { + "timestamp_in_ms": 1693926313000, + "timestamp": 1693926313, + "int_value": 2 + }, + "tankLevelAdBlue": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tirepressureRearLeft": { + "display_value": "3.1", + "timestamp_in_ms": 1693923641000, + "pressure_unit": "BAR", + "double_value": 310, + "timestamp": 1693923641 + }, + "timeFormatHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "liquidconsumptionstart": { + "timestamp_in_ms": 1688905509000, + "combustion_consumption_unit": "LITER_PER_100KM", + "nil_value": true, + "timestamp": 1688905509, + "status": 4 + }, + "temperaturePoints": { + "temperature_points_value": { + "temperature_points": [ + { + "zone": "frontCenter", + "temperature_display_value": "21.5", + "temperature": 21.5 + } + ] + }, + "timestamp_in_ms": 1693923891000, + "temperature_unit": "CELSIUS", + "timestamp": 1693923891 + }, + "distanceGasReset": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "departuretimesoc": { + "display_value": "80", + "timestamp_in_ms": 1693998228000, + "ratio_unit": "PERCENT", + "timestamp": 1693998228, + "int_value": 80 + }, + "selectedChargeProgram": { + "timestamp_in_ms": 1693937034000, + "timestamp": 1693937034, + "int_value": 2 + }, + "chargePrograms": { + "timestamp_in_ms": 1693902759000, + "charge_programs_value": [ + { + "max_soc": 80 + }, + { + "charge_program": "INSTANT_CHARGE_PROGRAM", + "max_soc": 100 + }, + { + "charge_program": "HOME_CHARGE_PROGRAM", + "max_soc": 80 + }, + { + "charge_program": "WORK_CHARGE_PROGRAM", + "max_soc": 100 + } + ], + "timestamp": 1693902759 + }, + "distanceZEReset": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tiremarker": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "overallRange": { + "display_value": "307", + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "double_value": 307, + "timestamp": 1693998228 + }, + "tirewarningsprw": { + "timestamp_in_ms": 1693923710000, + "nil_value": true, + "timestamp": 1693923710, + "status": 4 + }, + "precondSeatFrontLeft": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "drivenTimeZEReset": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tireMarkerFrontRight": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "serviceintervaldistance": { + "display_value": "20294", + "timestamp_in_ms": 1693998146000, + "distance_unit": "KILOMETERS", + "timestamp": 1693998146, + "int_value": 20294 + }, + "precondActive": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "ecoscorebonusrange": { + "display_value": "10.2", + "timestamp_in_ms": 1693923620000, + "distance_unit": "KILOMETERS", + "double_value": 10.2, + "timestamp": 1693923620 + }, + "precondState": { + "timestamp_in_ms": 1693923947000, + "timestamp": 1693923947 + }, + "rangeAdBlue": { + "timestamp_in_ms": 1692593406000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1692593406, + "status": 4 + }, + "distanceGasStart": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "sunroofEvent": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "liquidconsumptionreset": { + "timestamp_in_ms": 1688905509000, + "combustion_consumption_unit": "LITER_PER_100KM", + "nil_value": true, + "timestamp": 1688905509, + "status": 4 + }, + "warningbrakefluid": { + "timestamp_in_ms": 1693923710000, + "bool_value": false, + "timestamp": 1693923710 + }, + "hvBatteryThermalPropagationEvent": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "windowstatusfrontright": { + "timestamp_in_ms": 1693944411000, + "timestamp": 1693944411, + "int_value": 2 + }, + "electricconsumptionstart": { + "display_value": "16.5", + "timestamp_in_ms": 1693998147000, + "electricity_consumption_unit": "KWH_PER_100KM", + "double_value": 16.5, + "timestamp": 1693998147 + }, + "trackingStateHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "warningenginelight": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "ignitionstate": { + "timestamp_in_ms": 1693998146000, + "timestamp": 1693998146, + "int_value": 0 + }, + "precondSeatRearLeft": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "rooftopstatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "electricRatioReset": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "warningwashwater": { + "timestamp_in_ms": 1693923710000, + "bool_value": false, + "timestamp": 1693923710 + }, + "sunroofstatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tirepressureFrontRight": { + "display_value": "3.1", + "timestamp_in_ms": 1693923591000, + "pressure_unit": "BAR", + "double_value": 315, + "timestamp": 1693923591 + }, + "filterParticleLoading": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 1 + }, + "precondSeatRearRight": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "tirepressureFrontLeft": { + "display_value": "3.1", + "timestamp_in_ms": 1693923563000, + "pressure_unit": "BAR", + "double_value": 312.5, + "timestamp": 1693923563 + }, + "auxheatwarnings": { + "timestamp_in_ms": 1659023673000, + "nil_value": true, + "timestamp": 1659023673, + "status": 4 + }, + "proximityCalculationForVehiclePositionRequired": { + "timestamp_in_ms": 1693998310426, + "bool_value": false, + "timestamp": 1693998310 + }, + "gasTankLevelPercent": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "chargingactive": { + "timestamp_in_ms": 1693991412000, + "bool_value": true, + "timestamp": 1693991412 + }, + "remoteStartTemperature": { + "display_value": "24.0", + "timestamp_in_ms": 1693923710000, + "temperature_unit": "CELSIUS", + "double_value": 24, + "timestamp": 1693923710 + }, + "vehicleDataConnectionState": { + "timestamp_in_ms": 1693994140039, + "bool_value": true, + "timestamp": 1693994140 + }, + "windowStatusRearBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "endofChargeTimeWeekday": { + "timestamp_in_ms": 1693991413000, + "timestamp": 1693991413, + "int_value": 2 + }, + "warningcoolantlevellow": { + "timestamp_in_ms": 1693923710000, + "nil_value": true, + "timestamp": 1693923710, + "status": 4 + }, + "doorStatusOverall": { + "timestamp_in_ms": 1693925034000, + "timestamp": 1693925034, + "int_value": 1 + }, + "drivenTimeZEStart": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "sunroofStatusRearBlind": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "ecoscoreaccel": { + "display_value": "72", + "timestamp_in_ms": 1693923662000, + "ratio_unit": "PERCENT", + "timestamp": 1693923662, + "int_value": 72 + }, + "departuretime": { + "timestamp_in_ms": 1693991405000, + "clock_hour_unit": "T24H", + "timestamp": 1693991405, + "int_value": -1 + }, + "rangeElectricWltp": { + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1693998228, + "status": 4 + }, + "doorlockstatusfrontleft": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "decklidstatus": { + "timestamp_in_ms": 1693923782000, + "bool_value": false, + "timestamp": 1693923782 + }, + "chargeFlapDCStatus": { + "timestamp_in_ms": 1693923743000, + "timestamp": 1693923743, + "int_value": 0 + }, + "tireWarningLevelPrw": { + "timestamp_in_ms": 1693923710000, + "nil_value": true, + "timestamp": 1693923710, + "status": 4 + }, + "tanklevelpercent": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "chargeCouplerDCLockStatus": { + "timestamp_in_ms": 1693923755000, + "timestamp": 1693923755, + "int_value": 0 + }, + "doorlockstatusrearleft": { + "timestamp_in_ms": 1693926313000, + "bool_value": false, + "timestamp": 1693926313 + }, + "precondError": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "electricRatioStart": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "chargingErrorDetails": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "vtime": { + "timestamp_in_ms": 1693998228000, + "timestamp": 1693998228, + "int_value": 1694005426 + }, + "tireMarkerFrontLeft": { + "timestamp_in_ms": 1693923710000, + "timestamp": 1693923710, + "int_value": 0 + }, + "distanceElectricalReset": { + "display_value": "11606.9", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "double_value": 11606.9, + "timestamp": 1693923676 + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-ImperialUnits.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-ImperialUnits.json new file mode 100644 index 00000000000..465d596474d --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-BEV-ImperialUnits.json @@ -0,0 +1,929 @@ +{ + "chargeCouplerACStatus": { + "timestamp_in_ms": 1694184107000, + "timestamp": 1694184107, + "int_value": 2 + }, + "doorLockStatusOverall": { + "timestamp_in_ms": 1694723570000, + "timestamp": 1694723570, + "int_value": 0 + }, + "precondSeatFrontRight": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "evRangeAssistDriveOnSOC": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "tirePressMeasTimestamp": { + "timestamp_in_ms": 1694723557000, + "timestamp": 1694723557, + "int_value": 1694723557 + }, + "smartCharging": { + "timestamp_in_ms": 1694184107000, + "timestamp": 1694184107, + "int_value": 0 + }, + "vehicleHealthStatus": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "drivenTimeStart": { + "timestamp_in_ms": 1694723551000, + "timestamp": 1694723551, + "int_value": 34 + }, + "maxSoc": { + "timestamp_in_ms": 1694273229000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1694273229, + "status": 4 + }, + "doorlockstatusdecklid": { + "timestamp_in_ms": 1694723570000, + "bool_value": false, + "timestamp": 1694723570 + }, + "socprofile": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 1 + }, + "maxrange": { + "display_value": "241.1", + "timestamp_in_ms": 1694726011000, + "distance_unit": "MILES", + "timestamp": 1694726011, + "int_value": 388 + }, + "maxSocLowerLimit": { + "display_value": "50", + "timestamp_in_ms": 1692956198000, + "ratio_unit": "PERCENT", + "timestamp": 1692956198, + "int_value": 50 + }, + "weeklyProfile": { + "timestamp_in_ms": 1675419313000, + "weekly_profile_value": { + "max_number_of_time_profiles": -1, + "max_number_of_weekly_time_profile_slots": 21, + "current_number_of_time_profiles": -1 + }, + "timestamp": 1675419313 + }, + "liquidRangeSkipIndication": { + "timestamp_in_ms": 1694723557000, + "nil_value": true, + "timestamp": 1694723557, + "status": 4 + }, + "doorlockstatusfrontright": { + "timestamp_in_ms": 1694723570000, + "bool_value": false, + "timestamp": 1694723570 + }, + "chargeCouplerDCStatus": { + "timestamp_in_ms": 1694184107000, + "timestamp": 1694184107, + "int_value": 2 + }, + "tirepressureRearRight": { + "display_value": "42", + "timestamp_in_ms": 1694711528000, + "pressure_unit": "PSI", + "double_value": 292.5, + "timestamp": 1694711528 + }, + "vehiclePositionErrorCode": { + "timestamp_in_ms": 1694762332417, + "timestamp": 1694762332, + "int_value": 5 + }, + "tireMarkerRearLeft": { + "timestamp_in_ms": 1694723557000, + "timestamp": 1694723557, + "int_value": 0 + }, + "languageHU": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "distanceElectricalStart": { + "display_value": "7.5", + "timestamp_in_ms": 1694711571000, + "distance_unit": "MILES", + "double_value": 12, + "timestamp": 1694711571 + }, + "departureTimeMode": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "parkbrakestatus": { + "timestamp_in_ms": 1694711592000, + "bool_value": true, + "timestamp": 1694711592 + }, + "gasTankLevel": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "starterBatteryState": { + "timestamp_in_ms": 1694726011000, + "timestamp": 1694726011, + "int_value": 0 + }, + "precondNowError": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "windowStatusOverall": { + "timestamp_in_ms": 1694627485000, + "timestamp": 1694627485, + "int_value": 1 + }, + "weeklySetHU": { + "timestamp_in_ms": 1675419313000, + "weekly_settings_head_unit_value": "", + "timestamp": 1675419313 + }, + "tireSensorAvailable": { + "timestamp_in_ms": 1694711583000, + "timestamp": 1694711583, + "int_value": 0 + }, + "rangeelectric": { + "display_value": "192", + "timestamp_in_ms": 1694726011000, + "distance_unit": "MILES", + "timestamp": 1694726011, + "int_value": 309 + }, + "windowstatusrearright": { + "timestamp_in_ms": 1694627485000, + "timestamp": 1694627485, + "int_value": 2 + }, + "tireMarkerRearRight": { + "timestamp_in_ms": 1694723557000, + "timestamp": 1694723557, + "int_value": 0 + }, + "serviceintervaldays": { + "timestamp_in_ms": 1694725995000, + "timestamp": 1694725995, + "int_value": 140 + }, + "windowstatusrearleft": { + "timestamp_in_ms": 1694627485000, + "timestamp": 1694627485, + "int_value": 2 + }, + "electricalRangeSkipIndication": { + "timestamp_in_ms": 1694723557000, + "bool_value": false, + "timestamp": 1694723557 + }, + "endofchargetime": { + "timestamp_in_ms": 1694102424000, + "clock_hour_unit": "T24H", + "nil_value": true, + "timestamp": 1694102424, + "status": 3 + }, + "hybridWarnings": { + "timestamp_in_ms": 1694711133000, + "nil_value": true, + "timestamp": 1694711133, + "status": 3 + }, + "positionHeading": { + "timestamp_in_ms": 1694723552000, + "double_value": 41.9, + "timestamp": 1694723552 + }, + "precondAtDepartureDisable": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "doorstatusrearleft": { + "timestamp_in_ms": 1694708014000, + "bool_value": false, + "timestamp": 1694708014 + }, + "odo": { + "display_value": "9353", + "timestamp_in_ms": 1694711571000, + "distance_unit": "MILES", + "timestamp": 1694711571, + "int_value": 15052 + }, + "tirewarninglamp": { + "timestamp_in_ms": 1694723557000, + "timestamp": 1694723557, + "int_value": 0 + }, + "evRangeAssistDriveOnTime": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "precondDuration": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "positionLong": { + "timestamp_in_ms": 1694723552000, + "double_value": 4.56, + "timestamp": 1694723552 + }, + "electricconsumptionreset": { + "display_value": "33.8", + "timestamp_in_ms": 1694117138000, + "electricity_consumption_unit": "KWH_PER_100MI", + "double_value": 21, + "timestamp": 1694117138 + }, + "precondatdeparture": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "flipWindowStatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "temperatureUnitHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "departureTimeWeekday": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 3 + }, + "ecoscoreconst": { + "display_value": "40", + "timestamp_in_ms": 1694711539000, + "ratio_unit": "PERCENT", + "timestamp": 1694711539, + "int_value": 40 + }, + "averageSpeedReset": { + "display_value": "26", + "timestamp_in_ms": 1692956198000, + "speed_unit": "M_PER_HOUR", + "double_value": 42, + "timestamp": 1692956198 + }, + "tcuConnectionStateLowChannel": { + "timestamp_in_ms": 1694741652989, + "timestamp": 1694741652 + }, + "doorstatusfrontright": { + "timestamp_in_ms": 1694711602000, + "bool_value": false, + "timestamp": 1694711602 + }, + "chargingstatus": { + "timestamp_in_ms": 1694723515000, + "timestamp": 1694723515, + "int_value": 3 + }, + "ecoscoretotal": { + "timestamp_in_ms": 1694711485000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1694711485, + "status": 4 + }, + "doorstatusfrontleft": { + "timestamp_in_ms": 1694723567000, + "bool_value": false, + "timestamp": 1694723567 + }, + "electricRatioOverall": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "warningbrakeliningwear": { + "timestamp_in_ms": 1694723557000, + "bool_value": false, + "timestamp": 1694723557 + }, + "distanceZEStart": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "doorlockstatusgas": { + "timestamp_in_ms": 1694723570000, + "bool_value": false, + "timestamp": 1694723570 + }, + "engineHoodStatus": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "doorstatusrearright": { + "timestamp_in_ms": 1693669477000, + "bool_value": false, + "timestamp": 1693669477 + }, + "keylineActivationState": { + "timestamp_in_ms": 1638508946000, + "timestamp": 1638508946 + }, + "tirewarningsrdk": { + "timestamp_in_ms": 1694723557000, + "timestamp": 1694723557, + "int_value": 0 + }, + "precondNow": { + "timestamp_in_ms": 1694267612000, + "bool_value": false, + "timestamp": 1694267612 + }, + "rangeliquid": { + "timestamp_in_ms": 1694726011000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1694726011, + "status": 4 + }, + "sunroofEventActive": { + "timestamp_in_ms": 1694627377000, + "bool_value": false, + "timestamp": 1694627377 + }, + "chargingPower": { + "timestamp_in_ms": 1694726011000, + "nil_value": true, + "timestamp": 1694726011, + "status": 3 + }, + "averageSpeedStart": { + "display_value": "13", + "timestamp_in_ms": 1694723469000, + "speed_unit": "M_PER_HOUR", + "double_value": 21, + "timestamp": 1694723469 + }, + "positionLat": { + "timestamp_in_ms": 1694723552000, + "double_value": 1.23, + "timestamp": 1694723552 + }, + "drivenTimeReset": { + "timestamp_in_ms": 1694723551000, + "timestamp": 1694723551, + "int_value": 16699 + }, + "gasconsumptionstart": { + "timestamp_in_ms": 1638508946000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "vehicleLockState": { + "timestamp_in_ms": 1694723570000, + "timestamp": 1694723570, + "int_value": 2 + }, + "windowStatusRearRightBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "gasTankRange": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "ecoscorefreewhl": { + "display_value": "88", + "timestamp_in_ms": 1694711549000, + "ratio_unit": "PERCENT", + "timestamp": 1694711549, + "int_value": 88 + }, + "doorlockstatusrearright": { + "timestamp_in_ms": 1694723570000, + "bool_value": false, + "timestamp": 1694723570 + }, + "distanceStart": { + "display_value": "7.5", + "timestamp_in_ms": 1694711571000, + "distance_unit": "MILES", + "double_value": 12, + "timestamp": 1694711571 + }, + "soc": { + "display_value": "72", + "timestamp_in_ms": 1694723515000, + "ratio_unit": "PERCENT", + "timestamp": 1694723515, + "int_value": 72 + }, + "gasconsumptionreset": { + "timestamp_in_ms": 1638508946000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "distanceReset": { + "display_value": "7233.7", + "timestamp_in_ms": 1694711571000, + "distance_unit": "MILES", + "double_value": 11641.5, + "timestamp": 1694711571 + }, + "sunroofStatusFrontBlind": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "windowstatusfrontleft": { + "timestamp_in_ms": 1694627483000, + "timestamp": 1694627483, + "int_value": 2 + }, + "speedUnitFromIC": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "windowStatusRearLeftBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "doorlockstatusvehicle": { + "timestamp_in_ms": 1694723570000, + "timestamp": 1694723570, + "int_value": 2 + }, + "tankLevelAdBlue": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tirepressureRearLeft": { + "display_value": "43", + "timestamp_in_ms": 1694711209000, + "pressure_unit": "PSI", + "double_value": 295, + "timestamp": 1694711209 + }, + "timeFormatHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "liquidconsumptionstart": { + "timestamp_in_ms": 1688905509000, + "combustion_consumption_unit": "LITER_PER_100KM", + "nil_value": true, + "timestamp": 1688905509, + "status": 4 + }, + "temperaturePoints": { + "temperature_points_value": { + "temperature_points": [ + { + "zone": "frontCenter", + "temperature_display_value": "71.0", + "temperature": 21.5 + } + ] + }, + "timestamp_in_ms": 1693923891000, + "temperature_unit": "FAHRENHEIT", + "timestamp": 1693923891 + }, + "distanceGasReset": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "selectedChargeProgram": { + "timestamp_in_ms": 1694273190000, + "timestamp": 1694273190, + "int_value": 3 + }, + "departuretimesoc": { + "timestamp_in_ms": 1694726011000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1694726011, + "status": 3 + }, + "chargePrograms": { + "timestamp_in_ms": 1693902759000, + "charge_programs_value": [ + { + "max_soc": 80 + }, + { + "charge_program": "INSTANT_CHARGE_PROGRAM", + "max_soc": 100 + }, + { + "charge_program": "HOME_CHARGE_PROGRAM", + "max_soc": 80 + }, + { + "charge_program": "WORK_CHARGE_PROGRAM", + "max_soc": 100 + } + ], + "timestamp": 1693902759 + }, + "distanceZEReset": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "tiremarker": { + "timestamp_in_ms": 1694723557000, + "nil_value": true, + "timestamp": 1694723557, + "status": 3 + }, + "tirewarningsprw": { + "timestamp_in_ms": 1694723557000, + "nil_value": true, + "timestamp": 1694723557, + "status": 4 + }, + "overallRange": { + "display_value": "192", + "timestamp_in_ms": 1694726011000, + "distance_unit": "MILES", + "double_value": 309, + "timestamp": 1694726011 + }, + "precondSeatFrontLeft": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "tireMarkerFrontRight": { + "timestamp_in_ms": 1694723557000, + "timestamp": 1694723557, + "int_value": 0 + }, + "drivenTimeZEReset": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "serviceintervaldistance": { + "timestamp_in_ms": 1694725995000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1694725995, + "status": 3 + }, + "precondActive": { + "timestamp_in_ms": 1692956198000, + "bool_value": false, + "timestamp": 1692956198 + }, + "precondState": { + "timestamp_in_ms": 1694267612000, + "timestamp": 1694267612 + }, + "ecoscorebonusrange": { + "display_value": "1.6", + "timestamp_in_ms": 1694711527000, + "distance_unit": "MILES", + "double_value": 2.5, + "timestamp": 1694711527 + }, + "distanceGasStart": { + "timestamp_in_ms": 1638508946000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "rangeAdBlue": { + "timestamp_in_ms": 1692593406000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1692593406, + "status": 4 + }, + "sunroofEvent": { + "timestamp_in_ms": 1694210419000, + "timestamp": 1694210419, + "int_value": 0 + }, + "liquidconsumptionreset": { + "timestamp_in_ms": 1688905509000, + "combustion_consumption_unit": "LITER_PER_100KM", + "nil_value": true, + "timestamp": 1688905509, + "status": 4 + }, + "warningbrakefluid": { + "timestamp_in_ms": 1694723557000, + "bool_value": false, + "timestamp": 1694723557 + }, + "hvBatteryThermalPropagationEvent": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "windowstatusfrontright": { + "timestamp_in_ms": 1694627483000, + "timestamp": 1694627483, + "int_value": 2 + }, + "electricconsumptionstart": { + "display_value": "29.8", + "timestamp_in_ms": 1694723549000, + "electricity_consumption_unit": "KWH_PER_100MI", + "double_value": 18.5, + "timestamp": 1694723549 + }, + "trackingStateHU": { + "timestamp_in_ms": 1692956198000, + "bool_value": true, + "timestamp": 1692956198 + }, + "warningenginelight": { + "timestamp_in_ms": 1654831900642, + "nil_value": true, + "timestamp": 1654831900, + "status": 1 + }, + "ignitionstate": { + "timestamp_in_ms": 1694723561000, + "timestamp": 1694723561, + "int_value": 0 + }, + "precondSeatRearLeft": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "rooftopstatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "warningwashwater": { + "timestamp_in_ms": 1694723557000, + "bool_value": false, + "timestamp": 1694723557 + }, + "electricRatioReset": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "sunroofstatus": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "filterParticleLoading": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 1 + }, + "tirepressureFrontRight": { + "display_value": "43", + "timestamp_in_ms": 1694711560000, + "pressure_unit": "PSI", + "double_value": 295, + "timestamp": 1694711560 + }, + "precondSeatRearRight": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "auxheatwarnings": { + "timestamp_in_ms": 1659023673000, + "nil_value": true, + "timestamp": 1659023673, + "status": 4 + }, + "tirepressureFrontLeft": { + "display_value": "43", + "timestamp_in_ms": 1694711406000, + "pressure_unit": "PSI", + "double_value": 295, + "timestamp": 1694711406 + }, + "proximityCalculationForVehiclePositionRequired": { + "timestamp_in_ms": 1694762332417, + "bool_value": false, + "timestamp": 1694762332 + }, + "chargingactive": { + "timestamp_in_ms": 1694117078000, + "bool_value": false, + "timestamp": 1694117078 + }, + "gasTankLevelPercent": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "remoteStartTemperature": { + "display_value": "63.5", + "timestamp_in_ms": 1694723557000, + "temperature_unit": "FAHRENHEIT", + "double_value": 17.5, + "timestamp": 1694723557 + }, + "vehicleDataConnectionState": { + "timestamp_in_ms": 1694741652989, + "bool_value": false, + "timestamp": 1694741652 + }, + "windowStatusRearBlind": { + "timestamp_in_ms": 1692956198000, + "nil_value": true, + "timestamp": 1692956198, + "status": 4 + }, + "endofChargeTimeWeekday": { + "timestamp_in_ms": 1694102424000, + "nil_value": true, + "timestamp": 1694102424, + "status": 3 + }, + "warningcoolantlevellow": { + "timestamp_in_ms": 1694723557000, + "nil_value": true, + "timestamp": 1694723557, + "status": 4 + }, + "doorStatusOverall": { + "timestamp_in_ms": 1694723567000, + "timestamp": 1694723567, + "int_value": 1 + }, + "drivenTimeZEStart": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "sunroofStatusRearBlind": { + "timestamp_in_ms": 1638508946000, + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "ecoscoreaccel": { + "display_value": "98", + "timestamp_in_ms": 1694711018000, + "ratio_unit": "PERCENT", + "timestamp": 1694711018, + "int_value": 98 + }, + "departuretime": { + "timestamp_in_ms": 1694725985000, + "clock_hour_unit": "T24H", + "timestamp": 1694725985, + "int_value": -1 + }, + "decklidstatus": { + "timestamp_in_ms": 1694711634000, + "bool_value": false, + "timestamp": 1694711634 + }, + "doorlockstatusfrontleft": { + "timestamp_in_ms": 1694723570000, + "bool_value": false, + "timestamp": 1694723570 + }, + "rangeElectricWltp": { + "timestamp_in_ms": 1694726011000, + "distance_unit": "MILES", + "nil_value": true, + "timestamp": 1694726011, + "status": 4 + }, + "tireWarningLevelPrw": { + "timestamp_in_ms": 1694723557000, + "nil_value": true, + "timestamp": 1694723557, + "status": 4 + }, + "chargeFlapDCStatus": { + "timestamp_in_ms": 1694184117000, + "timestamp": 1694184117, + "int_value": 1 + }, + "tanklevelpercent": { + "timestamp_in_ms": 1638508946000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1638508946, + "status": 4 + }, + "doorlockstatusrearleft": { + "timestamp_in_ms": 1694723570000, + "bool_value": false, + "timestamp": 1694723570 + }, + "chargeCouplerDCLockStatus": { + "timestamp_in_ms": 1694184107000, + "timestamp": 1694184107, + "int_value": 1 + }, + "precondError": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "electricRatioStart": { + "timestamp_in_ms": 1668701631000, + "nil_value": true, + "timestamp": 1668701631, + "status": 4 + }, + "vtime": { + "timestamp_in_ms": 1694726014000, + "timestamp": 1694726014, + "int_value": 1694733211 + }, + "chargingErrorDetails": { + "timestamp_in_ms": 1692956198000, + "timestamp": 1692956198, + "int_value": 0 + }, + "tireMarkerFrontLeft": { + "timestamp_in_ms": 1694723557000, + "timestamp": 1694723557, + "int_value": 0 + }, + "distanceElectricalReset": { + "display_value": "7233.7", + "timestamp_in_ms": 1694711571000, + "distance_unit": "MILES", + "double_value": 11641.5, + "timestamp": 1694711571 + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Hybrid-Charging.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Hybrid-Charging.json new file mode 100644 index 00000000000..8e2e7be9e02 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Hybrid-Charging.json @@ -0,0 +1,964 @@ +{ + "chargeCouplerACStatus": { + "timestamp_in_ms": 1695140413000, + "nil_value": true, + "timestamp": 1695140413, + "status": 4 + }, + "doorLockStatusOverall": { + "timestamp_in_ms": 1695139939000, + "timestamp": 1695139939, + "int_value": 0 + }, + "precondSeatFrontRight": { + "timestamp_in_ms": 1693039001000, + "bool_value": false, + "timestamp": 1693039001 + }, + "evRangeAssistDriveOnSOC": { + "timestamp_in_ms": 1692984019667, + "nil_value": true, + "timestamp": 1692984019, + "status": 1 + }, + "tirePressMeasTimestamp": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 1695137537 + }, + "drivenTimeStart": { + "timestamp_in_ms": 1695137496000, + "timestamp": 1695137496, + "int_value": 25 + }, + "smartCharging": { + "timestamp_in_ms": 1695137561000, + "timestamp": 1695137561, + "int_value": 0 + }, + "vehicleHealthStatus": { + "timestamp_in_ms": 1627381426000, + "nil_value": true, + "timestamp": 1627381426, + "status": 1 + }, + "doorlockstatusdecklid": { + "timestamp_in_ms": 1695139939000, + "bool_value": false, + "timestamp": 1695139939 + }, + "maxSoc": { + "timestamp_in_ms": 1693039001000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1693039001, + "status": 4 + }, + "socprofile": { + "timestamp_in_ms": 1695053012000, + "nil_value": true, + "timestamp": 1695053012, + "status": 1 + }, + "maxrange": { + "display_value": "64.0", + "timestamp_in_ms": 1695141963000, + "distance_unit": "KILOMETERS", + "timestamp": 1695141963, + "changed": true, + "int_value": 64 + }, + "maxSocLowerLimit": { + "timestamp_in_ms": 1606417132000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "weeklyProfile": { + "timestamp_in_ms": 1692968409000, + "weekly_profile_value": { + + }, + "timestamp": 1692968409 + }, + "liquidRangeSkipIndication": { + "timestamp_in_ms": 1695137537000, + "bool_value": false, + "timestamp": 1695137537 + }, + "chargeCouplerDCStatus": { + "timestamp_in_ms": 1695140413000, + "nil_value": true, + "timestamp": 1695140413, + "status": 4 + }, + "doorlockstatusfrontright": { + "timestamp_in_ms": 1695139939000, + "bool_value": false, + "timestamp": 1695139939 + }, + "tirepressureRearRight": { + "display_value": "2.2", + "timestamp_in_ms": 1695137351000, + "pressure_unit": "BAR", + "double_value": 220, + "timestamp": 1695137351 + }, + "languageHU": { + "timestamp_in_ms": 1693040037000, + "timestamp": 1693040037, + "int_value": 0 + }, + "tireMarkerRearLeft": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 0 + }, + "vehiclePositionErrorCode": { + "timestamp_in_ms": 1695140227931, + "timestamp": 1695140227, + "int_value": 5 + }, + "distanceElectricalStart": { + "timestamp_in_ms": 1606417132000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "departureTimeMode": { + "timestamp_in_ms": 1693039001000, + "timestamp": 1693039001, + "int_value": 0 + }, + "parkbrakestatus": { + "timestamp_in_ms": 1695137545000, + "bool_value": true, + "timestamp": 1695137545 + }, + "gasTankLevel": { + "timestamp_in_ms": 1606417132000, + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "starterBatteryState": { + "timestamp_in_ms": 1695141963000, + "timestamp": 1695141963, + "int_value": 0 + }, + "precondNowError": { + "timestamp_in_ms": 1693039001000, + "timestamp": 1693039001, + "int_value": 0 + }, + "windowStatusOverall": { + "timestamp_in_ms": 1695141758000, + "timestamp": 1695141758, + "int_value": 1 + }, + "tireSensorAvailable": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 0 + }, + "weeklySetHU": { + "timestamp_in_ms": 1692968409000, + "weekly_settings_head_unit_value": [], + "timestamp": 1692968409 + }, + "rangeelectric": { + "display_value": "39", + "timestamp_in_ms": 1695141963000, + "distance_unit": "KILOMETERS", + "timestamp": 1695141963, + "changed": true, + "int_value": 39 + }, + "tireMarkerRearRight": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 0 + }, + "windowstatusrearright": { + "timestamp_in_ms": 1695141758000, + "timestamp": 1695141758, + "int_value": 2 + }, + "serviceintervaldays": { + "timestamp_in_ms": 1695141758000, + "nil_value": true, + "timestamp": 1695141758, + "changed": true, + "status": 3 + }, + "electricalRangeSkipIndication": { + "timestamp_in_ms": 1695137537000, + "bool_value": false, + "timestamp": 1695137537 + }, + "windowstatusrearleft": { + "timestamp_in_ms": 1695141758000, + "timestamp": 1695141758, + "int_value": 2 + }, + "endofchargetime": { + "display_value": "20:45", + "timestamp_in_ms": 1695140419000, + "clock_hour_unit": "T24H", + "timestamp": 1695140419, + "changed": true, + "int_value": 1245 + }, + "hybridWarnings": { + "timestamp_in_ms": 1695137529000, + "nil_value": true, + "timestamp": 1695137529, + "status": 3 + }, + "positionHeading": { + "timestamp_in_ms": 1695136113000, + "double_value": 60.3, + "timestamp": 1695136113 + }, + "lastTheftWarning": { + "timestamp_in_ms": 1689605531000, + "nil_value": true, + "timestamp": 1689605531, + "status": 1 + }, + "precondAtDepartureDisable": { + "timestamp_in_ms": 1693039001000, + "bool_value": false, + "timestamp": 1693039001 + }, + "doorstatusrearleft": { + "timestamp_in_ms": 1695100092000, + "bool_value": false, + "timestamp": 1695100092 + }, + "odo": { + "display_value": "29200", + "timestamp_in_ms": 1695137492000, + "distance_unit": "KILOMETERS", + "timestamp": 1695137492, + "int_value": 29200 + }, + "theftSystemArmed": { + "timestamp_in_ms": 1695139939000, + "bool_value": true, + "timestamp": 1695139939 + }, + "tirewarninglamp": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 0 + }, + "positionLong": { + "timestamp_in_ms": 1695136113000, + "double_value": 3.4, + "timestamp": 1695136113 + }, + "precondDuration": { + "timestamp_in_ms": 1693039001000, + "timestamp": 1693039001, + "int_value": 0 + }, + "electricconsumptionreset": { + "display_value": "8.9", + "timestamp_in_ms": 1695139359000, + "electricity_consumption_unit": "KWH_PER_100KM", + "double_value": 8.9, + "timestamp": 1695139359 + }, + "precondatdeparture": { + "timestamp_in_ms": 1693039001000, + "bool_value": false, + "timestamp": 1693039001 + }, + "flipWindowStatus": { + "timestamp_in_ms": 1606417132000, + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "temperatureUnitHU": { + "timestamp_in_ms": 1693039001000, + "bool_value": false, + "timestamp": 1693039001 + }, + "departureTimeWeekday": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 3 + }, + "averageSpeedReset": { + "display_value": "46", + "timestamp_in_ms": 1693319207000, + "speed_unit": "KM_PER_HOUR", + "double_value": 46, + "timestamp": 1693319207 + }, + "ecoscoreconst": { + "display_value": "85", + "timestamp_in_ms": 1695137481000, + "ratio_unit": "PERCENT", + "timestamp": 1695137481, + "int_value": 85 + }, + "doorstatusfrontright": { + "timestamp_in_ms": 1695141758000, + "bool_value": false, + "timestamp": 1695141758, + "changed": true + }, + "tcuConnectionStateLowChannel": { + "timestamp_in_ms": 1695140417973, + "timestamp": 1695140417, + "changed": true + }, + "parkEventType": { + "timestamp_in_ms": 1606417132000, + "nil_value": true, + "timestamp": 1606417132, + "status": 1 + }, + "chargingstatus": { + "timestamp_in_ms": 1695141919000, + "timestamp": 1695141919, + "int_value": 0 + }, + "interiorProtectionSensorStatus": { + "timestamp_in_ms": 1695139949000, + "timestamp": 1695139949, + "int_value": 2 + }, + "ecoscoretotal": { + "timestamp_in_ms": 1695137437000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1695137437, + "status": 4 + }, + "doorstatusfrontleft": { + "timestamp_in_ms": 1695141758000, + "bool_value": false, + "timestamp": 1695141758, + "changed": true + }, + "electricRatioOverall": { + "timestamp_in_ms": 1668695125000, + "nil_value": true, + "timestamp": 1668695125, + "status": 4 + }, + "warningbrakeliningwear": { + "timestamp_in_ms": 1695137537000, + "bool_value": false, + "timestamp": 1695137537 + }, + "parkEventLevel": { + "timestamp_in_ms": 1606417132000, + "nil_value": true, + "timestamp": 1606417132, + "status": 1 + }, + "distanceZEStart": { + "display_value": "17.2", + "timestamp_in_ms": 1695137493000, + "distance_unit": "KILOMETERS", + "double_value": 17.2, + "timestamp": 1695137493 + }, + "doorlockstatusgas": { + "timestamp_in_ms": 1695139939000, + "bool_value": false, + "timestamp": 1695139939 + }, + "engineHoodStatus": { + "timestamp_in_ms": 1693039001000, + "bool_value": false, + "timestamp": 1693039001 + }, + "doorstatusrearright": { + "timestamp_in_ms": 1695014292000, + "bool_value": false, + "timestamp": 1695014292 + }, + "keylineActivationState": { + "timestamp_in_ms": 1619689253000, + "timestamp": 1619689253 + }, + "tirewarningsrdk": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 0 + }, + "towProtectionSensorStatus": { + "timestamp_in_ms": 1695139949000, + "timestamp": 1695139949, + "int_value": 2 + }, + "precondNow": { + "timestamp_in_ms": 1695053011000, + "bool_value": false, + "timestamp": 1695053011 + }, + "rangeliquid": { + "display_value": "114", + "timestamp_in_ms": 1695137537000, + "distance_unit": "KILOMETERS", + "timestamp": 1695137537, + "int_value": 114 + }, + "theftAlarmActive": { + "timestamp_in_ms": 1693039001000, + "bool_value": false, + "timestamp": 1693039001 + }, + "sunroofEventActive": { + "timestamp_in_ms": 1695139398000, + "bool_value": false, + "timestamp": 1695139398 + }, + "chargingPower": { + "timestamp_in_ms": 1695141963000, + "double_value": 2.2, + "timestamp": 1695141963 + }, + "averageSpeedStart": { + "display_value": "40", + "timestamp_in_ms": 1695139360000, + "speed_unit": "KM_PER_HOUR", + "double_value": 40, + "timestamp": 1695139360 + }, + "drivenTimeReset": { + "timestamp_in_ms": 1695137492000, + "timestamp": 1695137492, + "int_value": 3862 + }, + "positionLat": { + "timestamp_in_ms": 1695136113000, + "double_value": 1.2, + "timestamp": 1695136113 + }, + "gasconsumptionstart": { + "timestamp_in_ms": 1606417132000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "vehicleLockState": { + "timestamp_in_ms": 1695141758000, + "timestamp": 1695141758, + "int_value": 2 + }, + "windowStatusRearRightBlind": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 4 + }, + "gasTankRange": { + "timestamp_in_ms": 1606417132000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "ecoscorefreewhl": { + "display_value": "100", + "timestamp_in_ms": 1695136829000, + "ratio_unit": "PERCENT", + "timestamp": 1695136829, + "int_value": 100 + }, + "doorlockstatusrearright": { + "timestamp_in_ms": 1695139939000, + "bool_value": false, + "timestamp": 1695139939 + }, + "distanceStart": { + "display_value": "17.2", + "timestamp_in_ms": 1695137492000, + "distance_unit": "KILOMETERS", + "double_value": 17.2, + "timestamp": 1695137492 + }, + "soc": { + "display_value": "63", + "timestamp_in_ms": 1695141919000, + "ratio_unit": "PERCENT", + "timestamp": 1695141919, + "changed": true, + "int_value": 63 + }, + "gasconsumptionreset": { + "timestamp_in_ms": 1606417132000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "distanceReset": { + "display_value": "2974.4", + "timestamp_in_ms": 1695137492000, + "distance_unit": "KILOMETERS", + "double_value": 2974.4, + "timestamp": 1695137492 + }, + "lastTheftWarningReason": { + "timestamp_in_ms": 1692968409000, + "timestamp": 1692968409, + "int_value": 33 + }, + "sunroofStatusFrontBlind": { + "timestamp_in_ms": 1695141758000, + "nil_value": true, + "timestamp": 1695141758, + "status": 4 + }, + "windowstatusfrontleft": { + "timestamp_in_ms": 1695137505000, + "timestamp": 1695137505, + "int_value": 2 + }, + "speedUnitFromIC": { + "timestamp_in_ms": 1606734798000, + "nil_value": true, + "timestamp": 1606734798, + "status": 1 + }, + "windowStatusRearLeftBlind": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 4 + }, + "doorlockstatusvehicle": { + "timestamp_in_ms": 1695139939000, + "timestamp": 1695139939, + "int_value": 2 + }, + "tankLevelAdBlue": { + "timestamp_in_ms": 1695137537000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1695137537, + "status": 4 + }, + "tirepressureRearLeft": { + "display_value": "2.2", + "timestamp_in_ms": 1695137027000, + "pressure_unit": "BAR", + "double_value": 222.5, + "timestamp": 1695137027 + }, + "timeFormatHU": { + "timestamp_in_ms": 1693040036000, + "bool_value": true, + "timestamp": 1693040036 + }, + "liquidconsumptionstart": { + "display_value": "0.0", + "timestamp_in_ms": 1693039001000, + "double_value": 0, + "combustion_consumption_unit": "LITER_PER_100KM", + "timestamp": 1693039001 + }, + "distanceGasReset": { + "timestamp_in_ms": 1606417132000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "temperaturePoints": { + "temperature_points_value": { + "temperature_points": [ + { + "temperature": 20, + "zone": "frontCenter", + "temperature_display_value": "20.0" + } + ] + }, + "timestamp_in_ms": 1693045504000, + "temperature_unit": "CELSIUS", + "timestamp": 1693045504 + }, + "departuretimesoc": { + "display_value": "100", + "timestamp_in_ms": 1695141963000, + "ratio_unit": "PERCENT", + "timestamp": 1695141963, + "int_value": 100 + }, + "selectedChargeProgram": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 4 + }, + "chargePrograms": { + "timestamp_in_ms": 1606417132000, + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "distanceZEReset": { + "display_value": "2168.8", + "timestamp_in_ms": 1695137493000, + "distance_unit": "KILOMETERS", + "double_value": 2168.8, + "timestamp": 1695137493 + }, + "tiremarker": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 0 + }, + "overallRange": { + "display_value": "153", + "timestamp_in_ms": 1695141963000, + "distance_unit": "KILOMETERS", + "double_value": 153, + "timestamp": 1695141963, + "changed": true + }, + "tirewarningsprw": { + "timestamp_in_ms": 1695137537000, + "nil_value": true, + "timestamp": 1695137537, + "status": 4 + }, + "precondSeatFrontLeft": { + "timestamp_in_ms": 1693039001000, + "bool_value": true, + "timestamp": 1693039001 + }, + "drivenTimeZEReset": { + "timestamp_in_ms": 1695137492000, + "timestamp": 1695137492, + "int_value": 3373 + }, + "tireMarkerFrontRight": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 0 + }, + "serviceintervaldistance": { + "display_value": "13596", + "timestamp_in_ms": 1695141758000, + "distance_unit": "KILOMETERS", + "timestamp": 1695141758, + "changed": true, + "int_value": 13596 + }, + "precondActive": { + "timestamp_in_ms": 1693039001000, + "bool_value": false, + "timestamp": 1693039001 + }, + "ecoscorebonusrange": { + "display_value": "6.2", + "timestamp_in_ms": 1695137485000, + "distance_unit": "KILOMETERS", + "double_value": 6.2, + "timestamp": 1695137485 + }, + "precondState": { + "timestamp_in_ms": 1695053011000, + "timestamp": 1695053011 + }, + "lastParkEvent": { + "timestamp_in_ms": 1606417132000, + "clock_hour_unit": "T24H", + "nil_value": true, + "timestamp": 1606417132, + "status": 1 + }, + "distanceGasStart": { + "timestamp_in_ms": 1606417132000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "rangeAdBlue": { + "timestamp_in_ms": 1692587940000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1692587940, + "status": 4 + }, + "sunroofEvent": { + "timestamp_in_ms": 1693039001000, + "timestamp": 1693039001, + "int_value": 0 + }, + "liquidconsumptionreset": { + "display_value": "2.0", + "timestamp_in_ms": 1693493436000, + "double_value": 2, + "combustion_consumption_unit": "LITER_PER_100KM", + "timestamp": 1693493436 + }, + "warningbrakefluid": { + "timestamp_in_ms": 1695137537000, + "bool_value": false, + "timestamp": 1695137537 + }, + "hvBatteryThermalPropagationEvent": { + "timestamp_in_ms": 1645089352000, + "nil_value": true, + "timestamp": 1645089352, + "status": 4 + }, + "windowstatusfrontright": { + "timestamp_in_ms": 1695055141000, + "timestamp": 1695055141, + "int_value": 2 + }, + "electricconsumptionstart": { + "display_value": "17.5", + "timestamp_in_ms": 1695139359000, + "electricity_consumption_unit": "KWH_PER_100KM", + "double_value": 17.5, + "timestamp": 1695139359 + }, + "trackingStateHU": { + "timestamp_in_ms": 1693040034000, + "bool_value": true, + "timestamp": 1693040034 + }, + "warningenginelight": { + "timestamp_in_ms": 1606417135548, + "nil_value": true, + "timestamp": 1606417135, + "status": 1 + }, + "ignitionstate": { + "timestamp_in_ms": 1695141722000, + "timestamp": 1695141722, + "changed": true, + "int_value": 0 + }, + "precondSeatRearLeft": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 4 + }, + "rooftopstatus": { + "timestamp_in_ms": 1606417132000, + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "electricRatioReset": { + "timestamp_in_ms": 1668695125000, + "nil_value": true, + "timestamp": 1668695125, + "status": 4 + }, + "warningwashwater": { + "timestamp_in_ms": 1695137537000, + "bool_value": false, + "timestamp": 1695137537 + }, + "sunroofstatus": { + "timestamp_in_ms": 1695141758000, + "timestamp": 1695141758, + "int_value": 0 + }, + "filterParticleLoading": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 1 + }, + "tirepressureFrontRight": { + "display_value": "2.5", + "timestamp_in_ms": 1695137351000, + "pressure_unit": "BAR", + "double_value": 247.5, + "timestamp": 1695137351 + }, + "auxheatwarnings": { + "timestamp_in_ms": 1606417132000, + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "precondSeatRearRight": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 4 + }, + "tirepressureFrontLeft": { + "display_value": "2.5", + "timestamp_in_ms": 1695137051000, + "pressure_unit": "BAR", + "double_value": 250, + "timestamp": 1695137051 + }, + "proximityCalculationForVehiclePositionRequired": { + "timestamp_in_ms": 1695140227931, + "bool_value": false, + "timestamp": 1695140227 + }, + "chargingactive": { + "timestamp_in_ms": 1695140418000, + "bool_value": true, + "timestamp": 1695140418, + "changed": true + }, + "gasTankLevelPercent": { + "timestamp_in_ms": 1606417132000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + }, + "vehicleDataConnectionState": { + "timestamp_in_ms": 1695140417973, + "bool_value": true, + "timestamp": 1695140417, + "changed": true + }, + "windowStatusRearBlind": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 4 + }, + "endofChargeTimeWeekday": { + "timestamp_in_ms": 1695140419000, + "timestamp": 1695140419, + "changed": true, + "int_value": 1 + }, + "warningcoolantlevellow": { + "timestamp_in_ms": 1695137537000, + "bool_value": false, + "timestamp": 1695137537 + }, + "doorStatusOverall": { + "timestamp_in_ms": 1695141758000, + "timestamp": 1695141758, + "int_value": 1 + }, + "drivenTimeZEStart": { + "timestamp_in_ms": 1695137496000, + "timestamp": 1695137496, + "int_value": 25 + }, + "ecoscoreaccel": { + "display_value": "100", + "timestamp_in_ms": 1695136195000, + "ratio_unit": "PERCENT", + "timestamp": 1695136195, + "int_value": 100 + }, + "sunroofStatusRearBlind": { + "timestamp_in_ms": 1693039001000, + "nil_value": true, + "timestamp": 1693039001, + "status": 4 + }, + "departuretime": { + "timestamp_in_ms": 1695140416000, + "clock_hour_unit": "T24H", + "timestamp": 1695140416, + "changed": true, + "int_value": -1 + }, + "decklidstatus": { + "timestamp_in_ms": 1694945167000, + "bool_value": false, + "timestamp": 1694945167 + }, + "doorlockstatusfrontleft": { + "timestamp_in_ms": 1695139939000, + "bool_value": false, + "timestamp": 1695139939 + }, + "rangeElectricWltp": { + "timestamp_in_ms": 1695137537000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1695137537, + "status": 4 + }, + "chargeFlapDCStatus": { + "timestamp_in_ms": 1695137559000, + "nil_value": true, + "timestamp": 1695137559, + "status": 4 + }, + "tireWarningLevelPrw": { + "timestamp_in_ms": 1695137537000, + "nil_value": true, + "timestamp": 1695137537, + "status": 4 + }, + "tanklevelpercent": { + "display_value": "16", + "timestamp_in_ms": 1695137537000, + "ratio_unit": "PERCENT", + "timestamp": 1695137537, + "int_value": 16 + }, + "chargeCouplerDCLockStatus": { + "timestamp_in_ms": 1695139929000, + "nil_value": true, + "timestamp": 1695139929, + "status": 4 + }, + "doorlockstatusrearleft": { + "timestamp_in_ms": 1695139939000, + "bool_value": false, + "timestamp": 1695139939 + }, + "electricRatioStart": { + "timestamp_in_ms": 1668695125000, + "nil_value": true, + "timestamp": 1668695125, + "status": 4 + }, + "precondError": { + "timestamp_in_ms": 1693039001000, + "timestamp": 1693039001, + "int_value": 0 + }, + "chargingErrorDetails": { + "timestamp_in_ms": 1606417135548, + "nil_value": true, + "timestamp": 1606417135, + "status": 1 + }, + "vtime": { + "timestamp_in_ms": 1695141972000, + "timestamp": 1695141972, + "changed": true, + "int_value": 1695149170 + }, + "tireMarkerFrontLeft": { + "timestamp_in_ms": 1695137537000, + "timestamp": 1695137537, + "int_value": 0 + }, + "distanceElectricalReset": { + "timestamp_in_ms": 1606417132000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1606417132, + "status": 4 + } +} \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Unknown.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Unknown.json new file mode 100644 index 00000000000..35e4f5f57e7 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/MB-Unknown.json @@ -0,0 +1,960 @@ +{ + "minSocUpperLimit": { + "timestamp_in_ms": 1676018786000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp":1676018786, + "status": 4 + }, + "bidirectionalChargingActive": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "chargeCouplerACStatus": { + "timestamp_in_ms": 1695360357000, + "nil_value": true, + "timestamp": 1695360357, + "status": 4 + }, + "doorLockStatusOverall": { + "timestamp_in_ms": 1695363305000, + "timestamp": 1695363305, + "int_value": 0 + }, + "precondSeatFrontRight": { + "timestamp_in_ms": 1683554139000, + "bool_value": false, + "timestamp": 1683554139 + }, + "evRangeAssistDriveOnSOC": { + "timestamp_in_ms": 1695363339000, + "timestamp": 1695363339, + "int_value": 100 + }, + "tirePressMeasTimestamp": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 1695363279 + }, + "drivenTimeStart": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "smartCharging": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "vehicleHealthStatus": { + "timestamp_in_ms": 1676018790747, + "nil_value": true, + "timestamp": 1676018790, + "status": 1 + }, + "doorlockstatusdecklid": { + "timestamp_in_ms": 1695363305000, + "bool_value": false, + "timestamp": 1695363305 + }, + "maxSoc": { + "display_value": "100", + "timestamp_in_ms": 1683122498000, + "ratio_unit": "PERCENT", + "timestamp": 1683122498, + "int_value": 100 + }, + "socprofile": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 1 + }, + "maxrange": { + "display_value": "460.0", + "timestamp_in_ms": 1695363358000, + "distance_unit": "KILOMETERS", + "timestamp": 1695363358, + "int_value": 460 + }, + "maxSocLowerLimit": { + "timestamp_in_ms": 1676018786000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "weeklyProfile": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "liquidRangeSkipIndication": { + "timestamp_in_ms": 1695363279000, + "nil_value": true, + "timestamp": 1695363279, + "status": 4 + }, + "chargeCouplerDCStatus": { + "timestamp_in_ms": 1695360357000, + "nil_value": true, + "timestamp": 1695360357, + "status": 4 + }, + "doorlockstatusfrontright": { + "timestamp_in_ms": 1695363305000, + "bool_value": false, + "timestamp": 1695363305 + }, + "tirepressureRearRight": { + "display_value": "235", + "timestamp_in_ms": 1695362858000, + "pressure_unit": "KPA", + "double_value": 235, + "timestamp": 1695362858 + }, + "languageHU": { + "timestamp_in_ms": 1695360349000, + "timestamp": 1695360349, + "int_value": 1 + }, + "tireMarkerRearLeft": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 0 + }, + "vehiclePositionErrorCode": { + "timestamp_in_ms": 1695364874926, + "timestamp": 1695364874, + "int_value": 5 + }, + "distanceElectricalStart": { + "display_value": "20.5", + "timestamp_in_ms": 1695363251000, + "distance_unit": "KILOMETERS", + "double_value": 20.5, + "timestamp": 1695363251 + }, + "departureTimeMode": { + "timestamp_in_ms": 1683556799000, + "timestamp": 1683556799, + "int_value": 0 + }, + "parkbrakestatus": { + "timestamp_in_ms": 1695363287000, + "bool_value": true, + "timestamp": 1695363287 + }, + "gasTankLevel": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "starterBatteryState": { + "timestamp_in_ms": 1695364875052, + "nil_value": true, + "timestamp": 1695364875, + "status": 4 + }, + "precondNowError": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "windowStatusOverall": { + "timestamp_in_ms": 1695363249000, + "timestamp": 1695363249, + "int_value": 1 + }, + "tireSensorAvailable": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 0 + }, + "weeklySetHU": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "minSoc": { + "timestamp_in_ms": 1676018786000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "rangeelectric": { + "display_value": "210", + "timestamp_in_ms": 1695363358000, + "distance_unit": "KILOMETERS", + "timestamp": 1695363358, + "int_value": 210 + }, + "tireMarkerRearRight": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 0 + }, + "windowstatusrearright": { + "timestamp_in_ms": 1679655918000, + "nil_value": true, + "timestamp": 1679655918, + "status": 4 + }, + "serviceintervaldays": { + "timestamp_in_ms": 1695326557000, + "timestamp": 1695326557, + "int_value": 139 + }, + "electricalRangeSkipIndication": { + "timestamp_in_ms": 1695363279000, + "bool_value": false, + "timestamp": 1695363279 + }, + "windowstatusrearleft": { + "timestamp_in_ms": 1679655918000, + "nil_value": true, + "timestamp": 1679655918, + "status": 4 + }, + "endofchargetime": { + "timestamp_in_ms": 1695327666000, + "clock_hour_unit": "T12H", + "nil_value": true, + "timestamp": 1695327666, + "status": 3 + }, + "hybridWarnings": { + "timestamp_in_ms": 1676018790747, + "nil_value": true, + "timestamp": 1676018790, + "status": 1 + }, + "positionHeading": { + "timestamp_in_ms": 1695363286000, + "double_value": 13.1, + "timestamp": 1695363286 + }, + "precondAtDepartureDisable": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "doorstatusrearleft": { + "timestamp_in_ms": 1695360694000, + "bool_value": false, + "timestamp": 1695360694 + }, + "odo": { + "display_value": "12757", + "timestamp_in_ms": 1695363219000, + "distance_unit": "KILOMETERS", + "timestamp": 1695363219, + "int_value": 12757 + }, + "evRangeAssistDriveOnTime": { + "timestamp_in_ms": 1692503910000, + "nil_value": true, + "timestamp": 1692503910, + "status": 3 + }, + "tirewarninglamp": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 0 + }, + "positionLong": { + "timestamp_in_ms": 1695363286000, + "double_value": 1.23, + "timestamp": 1695363286 + }, + "precondDuration": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "electricconsumptionreset": { + "display_value": "4.3", + "timestamp_in_ms": 1695363338000, + "electricity_consumption_unit": "KM_PER_KWH", + "double_value": 23.5, + "timestamp": 1695363338 + }, + "precondatdeparture": { + "timestamp_in_ms": 1679655918000, + "bool_value": true, + "timestamp": 1679655918 + }, + "flipWindowStatus": { + "timestamp_in_ms": 1694419017000, + "bool_value": false, + "timestamp": 1694419017 + }, + "temperatureUnitHU": { + "timestamp_in_ms": 1679655918000, + "bool_value": false, + "timestamp": 1679655918 + }, + "departureTimeWeekday": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "averageSpeedReset": { + "timestamp_in_ms": 1676018786000, + "speed_unit": "KM_PER_HOUR", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "ecoscoreconst": { + "display_value": "85", + "timestamp_in_ms": 1695363338000, + "ratio_unit": "PERCENT", + "timestamp": 1695363338, + "int_value": 85 + }, + "doorstatusfrontright": { + "timestamp_in_ms": 1695311302000, + "bool_value": false, + "timestamp": 1695311302 + }, + "tcuConnectionStateLowChannel": { + "timestamp_in_ms": 1695364588641, + "timestamp": 1695364588 + }, + "chargingstatus": { + "timestamp_in_ms": 1695363339000, + "timestamp": 1695363339, + "int_value": 3 + }, + "ecoscoretotal": { + "timestamp_in_ms": 1695363338000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1695363338, + "status": 4 + }, + "doorstatusfrontleft": { + "timestamp_in_ms": 1695363301000, + "bool_value": false, + "timestamp": 1695363301 + }, + "electricRatioOverall": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "warningbrakeliningwear": { + "timestamp_in_ms": 1695363279000, + "bool_value": false, + "timestamp": 1695363279 + }, + "distanceZEStart": { + "timestamp_in_ms": 1676018786000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "doorlockstatusgas": { + "timestamp_in_ms": 1679655918000, + "nil_value": true, + "timestamp": 1679655918, + "status": 3 + }, + "engineHoodStatus": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "doorstatusrearright": { + "timestamp_in_ms": 1695362381000, + "bool_value": false, + "timestamp": 1695362381 + }, + "tirewarningsrdk": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 0 + }, + "precondNow": { + "timestamp_in_ms": 1683557132000, + "nil_value": true, + "timestamp": 1683557132, + "status": 4 + }, + "rangeliquid": { + "timestamp_in_ms": 1676018786000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "sunroofEventActive": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "chargingPower": { + "timestamp_in_ms": 1695363358000, + "double_value": 0, + "timestamp": 1695363358 + }, + "averageSpeedStart": { + "timestamp_in_ms": 1676018786000, + "speed_unit": "KM_PER_HOUR", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "drivenTimeReset": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "positionLat": { + "timestamp_in_ms": 1695363286000, + "double_value": 3.45, + "timestamp": 1695363286 + }, + "gasconsumptionstart": { + "timestamp_in_ms": 1676018786000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "vehicleLockState": { + "timestamp_in_ms": 1695363305000, + "timestamp": 1695363305, + "int_value": 2 + }, + "windowStatusRearRightBlind": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "gasTankRange": { + "timestamp_in_ms": 1676018786000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "ecoscorefreewhl": { + "display_value": "100", + "timestamp_in_ms": 1695360888000, + "ratio_unit": "PERCENT", + "timestamp": 1695360888, + "int_value": 100 + }, + "doorlockstatusrearright": { + "timestamp_in_ms": 1695363305000, + "bool_value": false, + "timestamp": 1695363305 + }, + "chargingPowerEcoLimit": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "distanceStart": { + "display_value": "20.5", + "timestamp_in_ms": 1695363251000, + "distance_unit": "KILOMETERS", + "double_value": 20.5, + "timestamp": 1695363251 + }, + "soc": { + "display_value": "46", + "timestamp_in_ms": 1695363339000, + "ratio_unit": "PERCENT", + "timestamp": 1695363339, + "int_value": 46 + }, + "gasconsumptionreset": { + "timestamp_in_ms": 1676018786000, + "gas_consumption_unit": "KG_PER_100KM", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "distanceReset": { + "display_value": "12748.1", + "timestamp_in_ms": 1695363216000, + "distance_unit": "KILOMETERS", + "double_value": 12748.1, + "timestamp": 1695363216 + }, + "sunroofStatusFrontBlind": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "windowstatusfrontleft": { + "timestamp_in_ms": 1695363249000, + "timestamp": 1695363249, + "int_value": 2 + }, + "speedUnitFromIC": { + "timestamp_in_ms": 1676018790747, + "nil_value": true, + "timestamp": 1676018790, + "status": 1 + }, + "windowStatusRearLeftBlind": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "doorlockstatusvehicle": { + "timestamp_in_ms": 1695363305000, + "timestamp": 1695363305, + "int_value": 2 + }, + "tankLevelAdBlue": { + "timestamp_in_ms": 1676018786000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "tirepressureRearLeft": { + "display_value": "230", + "timestamp_in_ms": 1695363220000, + "pressure_unit": "KPA", + "double_value": 232.5, + "timestamp": 1695363220 + }, + "timeFormatHU": { + "timestamp_in_ms": 1679655918000, + "bool_value": true, + "timestamp": 1679655918 + }, + "liquidconsumptionstart": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "combustion_consumption_unit": "LITER_PER_100KM", + "timestamp": 1676018786, + "status": 4 + }, + "distanceGasReset": { + "timestamp_in_ms": 1676018786000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "temperaturePoints": { + "temperature_points_value": { + "temperature_points": [ + { + "temperature": 22, + "zone": "frontLeft", + "temperature_display_value": "22.0" + }, + { + "temperature": 19, + "zone": "frontRight", + "temperature_display_value": "19.0" + } + ] + }, + "timestamp_in_ms": 1695363358000, + "temperature_unit": "CELSIUS", + "timestamp": 1695363358 + }, + "departuretimesoc": { + "timestamp_in_ms": 1695363358000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1695363358, + "status": 3 + }, + "selectedChargeProgram": { + "timestamp_in_ms": 1692508055000, + "timestamp": 1692508055, + "int_value": 0 + }, + "chargePrograms": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "distanceZEReset": { + "timestamp_in_ms": 1676018786000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "maxSocUpperLimit": { + "timestamp_in_ms": 1676018786000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "tiremarker": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 0 + }, + "overallRange": { + "display_value": "210", + "timestamp_in_ms": 1695363358000, + "distance_unit": "KILOMETERS", + "double_value": 210, + "timestamp": 1695363358 + }, + "tirewarningsprw": { + "timestamp_in_ms": 1695363279000, + "nil_value": true, + "timestamp": 1695363279, + "status": 4 + }, + "precondSeatFrontLeft": { + "timestamp_in_ms": 1679655918000, + "bool_value": true, + "timestamp": 1679655918 + }, + "drivenTimeZEReset": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "tireMarkerFrontRight": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 0 + }, + "serviceintervaldistance": { + "timestamp_in_ms": 1695363288000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1695363288, + "status": 3 + }, + "precondActive": { + "timestamp_in_ms": 1683557132000, + "bool_value": false, + "timestamp": 1683557132 + }, + "ecoscorebonusrange": { + "display_value": "5.1", + "timestamp_in_ms": 1695363192000, + "distance_unit": "KILOMETERS", + "double_value": 5.1, + "timestamp": 1695363192 + }, + "precondState": { + "timestamp_in_ms": 1686111361000, + "timestamp": 1686111361 + }, + "distanceGasStart": { + "timestamp_in_ms": 1676018786000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "rangeAdBlue": { + "timestamp_in_ms": 1692592687000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1692592687, + "status": 4 + }, + "sunroofEvent": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "liquidconsumptionreset": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "combustion_consumption_unit": "LITER_PER_100KM", + "timestamp": 1676018786, + "status": 4 + }, + "warningbrakefluid": { + "timestamp_in_ms": 1695363279000, + "bool_value": false, + "timestamp": 1695363279 + }, + "hvBatteryThermalPropagationEvent": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "windowstatusfrontright": { + "timestamp_in_ms": 1695311329000, + "timestamp": 1695311329, + "int_value": 2 + }, + "electricconsumptionstart": { + "display_value": "5.3", + "timestamp_in_ms": 1695363284000, + "electricity_consumption_unit": "KM_PER_KWH", + "double_value": 18.7, + "timestamp": 1695363284 + }, + "trackingStateHU": { + "timestamp_in_ms": 1679655925000, + "bool_value": true, + "timestamp": 1679655925 + }, + "warningenginelight": { + "timestamp_in_ms": 1676018790747, + "nil_value": true, + "timestamp": 1676018790, + "status": 1 + }, + "ignitionstate": { + "timestamp_in_ms": 1695363287000, + "timestamp": 1695363287, + "int_value": 0 + }, + "precondSeatRearLeft": { + "timestamp_in_ms": 1683554139000, + "nil_value": true, + "timestamp": 1683554139, + "status": 4 + }, + "rooftopstatus": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "electricRatioReset": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "warningwashwater": { + "timestamp_in_ms": 1695363279000, + "bool_value": false, + "timestamp": 1695363279 + }, + "sunroofstatus": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "minSocLowerLimit": { + "timestamp_in_ms": 1676018786000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "filterParticleLoading": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "tirepressureFrontRight": { + "display_value": "250", + "timestamp_in_ms": 1695363155000, + "pressure_unit": "KPA", + "double_value": 252.5, + "timestamp": 1695363155 + }, + "precondSeatRearRight": { + "timestamp_in_ms": 1683554139000, + "nil_value": true, + "timestamp": 1683554139, + "status": 4 + }, + "tirepressureFrontLeft": { + "display_value": "255", + "timestamp_in_ms": 1695363060000, + "pressure_unit": "KPA", + "double_value": 257.5, + "timestamp": 1695363060 + }, + "proximityCalculationForVehiclePositionRequired": { + "timestamp_in_ms": 1695364874926, + "bool_value": false, + "timestamp": 1695364874 + }, + "chargingactive": { + "timestamp_in_ms": 1695327666000, + "bool_value": false, + "timestamp": 1695327666 + }, + "gasTankLevelPercent": { + "timestamp_in_ms": 1676018786000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "remoteStartTemperature": { + "display_value": "25.0", + "timestamp_in_ms": 1695363279000, + "temperature_unit": "CELSIUS", + "double_value": 25, + "timestamp": 1695363279 + }, + "vehicleDataConnectionState": { + "timestamp_in_ms": 1695364588641, + "bool_value": false, + "timestamp": 1695364588 + }, + "windowStatusRearBlind": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "endofChargeTimeWeekday": { + "timestamp_in_ms": 1695327666000, + "nil_value": true, + "timestamp": 1695327666, + "status": 3 + }, + "warningcoolantlevellow": { + "timestamp_in_ms": 1695363279000, + "bool_value": false, + "timestamp": 1695363279 + }, + "doorStatusOverall": { + "timestamp_in_ms": 1695363301000, + "timestamp": 1695363301, + "int_value": 1 + }, + "drivenTimeZEStart": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "ecoscoreaccel": { + "display_value": "100", + "timestamp_in_ms": 1695362014000, + "ratio_unit": "PERCENT", + "timestamp": 1695362014, + "int_value": 100 + }, + "sunroofStatusRearBlind": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "departuretime": { + "timestamp_in_ms": 1695363338000, + "clock_hour_unit": "T12H", + "timestamp": 1695363338, + "int_value": -1 + }, + "decklidstatus": { + "timestamp_in_ms": 1695185896000, + "bool_value": false, + "timestamp": 1695185896 + }, + "doorlockstatusfrontleft": { + "timestamp_in_ms": 1695363305000, + "bool_value": false, + "timestamp": 1695363305 + }, + "rangeElectricWltp": { + "timestamp_in_ms": 1676018786000, + "distance_unit": "KILOMETERS", + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "chargeFlapDCStatus": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "tireWarningLevelPrw": { + "timestamp_in_ms": 1695363279000, + "nil_value": true, + "timestamp": 1695363279, + "status": 4 + }, + "tanklevelpercent": { + "timestamp_in_ms": 1695363279000, + "ratio_unit": "PERCENT", + "nil_value": true, + "timestamp": 1695363279, + "status": 4 + }, + "chargeCouplerDCLockStatus": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "doorlockstatusrearleft": { + "timestamp_in_ms": 1695363305000, + "bool_value": false, + "timestamp": 1695363305 + }, + "electricRatioStart": { + "timestamp_in_ms": 1676018786000, + "nil_value": true, + "timestamp": 1676018786, + "status": 4 + }, + "precondError": { + "timestamp_in_ms": 1679655918000, + "timestamp": 1679655918, + "int_value": 0 + }, + "chargingErrorDetails": { + "timestamp_in_ms": 1679655918000, + "timestamp": 1679655918, + "int_value": 0 + }, + "vtime": { + "timestamp_in_ms": 1695363367000, + "timestamp": 1695363367, + "int_value": 1695370564 + }, + "tireMarkerFrontLeft": { + "timestamp_in_ms": 1695363279000, + "timestamp": 1695363279, + "int_value": 0 + }, + "distanceElectricalReset": { + "display_value": "12748.1", + "timestamp_in_ms": 1695363216000, + "distance_unit": "KILOMETERS", + "double_value": 12748.1, + "timestamp": 1695363216 + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-Charging.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-Charging.json new file mode 100644 index 00000000000..a80d8128f0c --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-Charging.json @@ -0,0 +1,15 @@ +{ + "endofchargetime": { + "display_value": "20:45", + "timestamp_in_ms": 1695140419000, + "clock_hour_unit": "T24H", + "timestamp": 1695140419, + "changed": true, + "int_value": 1245 + }, + "chargingPower": { + "timestamp_in_ms": 1695141963000, + "double_value": 2.1, + "timestamp": 1695141963 + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-GPS.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-GPS.json new file mode 100644 index 00000000000..e8aa157cd1d --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-GPS.json @@ -0,0 +1,17 @@ +{ + "positionLat": { + "timestamp_in_ms": 1694723552000, + "double_value": 1.23, + "timestamp": 1694723552 + }, + "positionLong": { + "timestamp_in_ms": 1694723552000, + "double_value": 4.56, + "timestamp": 1694723552 + }, + "positionHeading": { + "timestamp_in_ms": 1694723552000, + "double_value": 41.9, + "timestamp": 1694723552 + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-Range.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-Range.json new file mode 100644 index 00000000000..d1974cee3f1 --- /dev/null +++ b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-json/PartialUpdate-Range.json @@ -0,0 +1,16 @@ +{ + "odo": { + "display_value": "15017", + "timestamp_in_ms": 1693923676000, + "distance_unit": "KILOMETERS", + "timestamp": 1693923676, + "int_value": 15017 + }, + "rangeelectric": { + "display_value": "307", + "timestamp_in_ms": 1693998228000, + "distance_unit": "KILOMETERS", + "timestamp": 1693998228, + "int_value": 307 + } +} diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/status-resources.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/status-resources.json deleted file mode 100644 index 8dc55745372..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/status-resources.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "name": "decklidstatus", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/decklidstatus" - }, - { - "name": "doorstatusfrontleft", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/doorstatusfrontleft" - }, - { - "name": "doorstatusfrontright", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/doorstatusfrontright" - }, - { - "name": "doorstatusrearleft", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/doorstatusrearleft" - }, - { - "name": "doorstatusrearright", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/doorstatusrearright" - }, - { - "name": "interiorLightsFront", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/interiorLightsFront" - }, - { - "name": "interiorLightsRear", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/interiorLightsRear" - }, - { - "name": "lightswitchposition", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/lightswitchposition" - }, - { - "name": "readingLampFrontLeft", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/readingLampFrontLeft" - }, - { - "name": "readingLampFrontRight", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/readingLampFrontRight" - }, - { - "name": "rooftopstatus", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/rooftopstatus" - }, - { - "name": "sunroofstatus", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/sunroofstatus" - }, - { - "name": "windowstatusfrontleft", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/windowstatusfrontleft" - }, - { - "name": "windowstatusfrontright", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/windowstatusfrontright" - }, - { - "name": "windowstatusrearleft", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/windowstatusrearleft" - }, - { - "name": "windowstatusrearright", - "version": "1.0", - "href": "/vehicles/WDB111111ZZZ22222/resources/windowstatusrearright" - } -] \ No newline at end of file diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/status.json b/bundles/org.openhab.binding.mercedesme/src/test/resources/status.json deleted file mode 100644 index 6093bb3e801..00000000000 --- a/bundles/org.openhab.binding.mercedesme/src/test/resources/status.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "decklidstatus": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "doorstatusfrontleft": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "doorstatusfrontright": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "doorstatusrearleft": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "doorstatusrearright": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "interiorLightsFront": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "interiorLightsRear": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "lightswitchposition": { - "value": "0", - "timestamp": 1541080800000 - } - }, - { - "readingLampFrontLeft": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "readingLampFrontRight": { - "value": "false", - "timestamp": 1541080800000 - } - }, - { - "rooftopstatus": { - "value": "0", - "timestamp": 1541080800000 - } - }, - { - "sunroofstatus": { - "value": "0", - "timestamp": 1541080800000 - } - }, - { - "windowstatusfrontleft": { - "value": "0", - "timestamp": 1541080800000 - } - }, - { - "windowstatusfrontright": { - "value": "0", - "timestamp": 1541080800000 - } - }, - { - "windowstatusrearleft": { - "value": "0", - "timestamp": 1541080800000 - } - }, - { - "windowstatusrearright": { - "value": "0", - "timestamp": 1541080800000 - } - } -] \ No newline at end of file diff --git a/tools/static-code-analysis/checkstyle/suppressions.xml b/tools/static-code-analysis/checkstyle/suppressions.xml index 82b5297c238..f5c6be25cb3 100644 --- a/tools/static-code-analysis/checkstyle/suppressions.xml +++ b/tools/static-code-analysis/checkstyle/suppressions.xml @@ -27,4 +27,4 @@ - + \ No newline at end of file