From 09a22e5cbc9a6894ab5fe89540646e3181974a5f 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 --- .../org.openhab.binding.mercedesme/README.md | 1072 +- .../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 | 300 +- .../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 | 381 +- .../internal/handler/VehicleHandler.java | 1324 +- .../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 | 544 +- .../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 | 59 +- .../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, 156416 insertions(+), 2760 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 6ac649b674..880801824b 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 -## 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! +### Authorization Step 3 - + -See also [image channel section](#image) for further advise. +## Thing Configuration | 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 | + +## Actions + +See [Vehicle Actions](#vehicle-actions) which can be used in rules. + +### Vehicle + +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` + +State representing if door, roof, hoods or flaps are open. +States and controls are depending on your vehicle capabilities. + +| 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 | + +#### Rooftop Mapping + +- 0 : Unlocked +- 1 : Open and locked +- 2 : Closed and locked + +#### Sunroof Front Blind Mapping + +- not available yet + +#### Sunroof Rear Blind Mapping + +- not available yet + +#### Sunroof Mapping + +State + +- 0 : Closed +- 1 : Open +- 2 : Lifted +- 3 : Running +- 4 : Closing +- 5 : Opening +- 6 : Closing + +Command + +- 0 : Close +- 1 : Open +- 2 : Lift + +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` + +All channels read-only. | Channel | Type | Description | bev | hybrid | combustion | -|------------------|----------------------|------------------------------| ----|--------|------------| -| mileage | Number:Length | Total mileage | X | X | X | -| soc | Number:Dimensionless | Battery state of charge | X | X | | +|------------------|----------------------|------------------------------|-----|--------|------------| +| 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 | | -| 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 | +| 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 | | -| last-update | DateTime | Last range update | X | 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. -### Doors +### Charge -Group name: `doors` -All channels `read-only` +Group name: `charge` -| 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 | - -Mapping table `sunroof` - -| Number | Mapping | -|-----------------|---------------------| -| 0 | Closed | -| 1 | Open | -| 2 | Open Lifting | -| 3 | Running | -| 4 | Closing | -| 5 | Opening | -| 6 | Closing | - -Mapping table `rootop` - -| Number | Mapping | -|-----------------|---------------------| -| 0 | Unlocked | -| 1 | Open and locked | -| 2 | Closed and locked | +Only relevant for battery electric and hybrid vehicles. +Current charge values and charge program configuration. +States and controls are depending on your vehicle capabilities. -### Windows +| 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 | -Group name: `windows` -All channels `readonly` - -| 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 | - -Mapping table for all windows - -| Number | Mapping | -|-----------------|---------------------| -| 0 | Intermediate | -| 1 | Open | -| 2 | Closed | -| 3 | Airing | -| 4 | Intermediate | -| 5 | Running | - -### Lights - -Group name: `lights` -All channels `read-only` +#### Charge Flap Mapping -| 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 | +- 0 : Open +- 1 : Closed -### Lock +#### Coupler AC Mapping -Group name: `lock` -All channels `read-only` +- 0 : Plugged +- 2 : Unplugged -| 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 | +#### Coupler DC Mapping -Mapping table `doors` +- 0 : Plugged +- 2 : Unplugged -| Number | Mapping | -|-----------------|---------------------| -| 0 | Unlocked | -| 1 | Locked Internal | -| 2 | Locked External | -| 3 | Unlocked Selective | +#### Coupler Lock Mapping -### Location +- 0 : Locked +- 1 : Unlocked -Group name: `location` -All channels `readonly` +#### Program Mapping -| Channel | Type | Description | -|------------------|----------------------|------------------------------| -| heading | Number:Angle | Vehicle heading | -| last-update | DateTime | Last location update | +- 0 : DEFAULT_CHARGE_PROGRAM +- 2 : HOME_CHARGE_PROGRAM +- 3 : WORK_CHARGE_PROGRAM -### Image +Automatically calculated based on your vehicle capabilities. +Only options are shown which are supported by your vehicle. -Provides exterior and interior images for your specific vehicle. -Group name: `image` +Triggers `CHARGEPROGRAMCONFIGURE` from [Command Name Mapping](#command-name-mapping) -| Channel | Type | Description | Write | -|------------------|----------------------|------------------------------|-------| -| image-data | Raw | Vehicle image | | -| image-view | text | Vehicle image viewpoint | X | -| clear-cache | Switch | Remove all stored images | X | +#### Max SoC Setting -**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 +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%. -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` +Command Options -### Image View Options +- 50 % +- 60 % +- 70 % +- 80 % +- 90 % +- 100 % -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_ +Triggers `CHARGEPROGRAMCONFIGURE` from [Command Name Mapping](#command-name-mapping) - +#### Auto Unlock Setting -## Troubleshooting +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 | +|------------------|----------------------|----------------------------------------------------------------------| +| 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 | + +#### Average Consumption + +You can configure different average consumption units like kWh per 100 kilometer or km per kWh. +In your Mercedes Me App front page + +- Burger Menu top left +- Last Entry `Settings` +- First Entry `Units` + + + +### Trip Duration + +Shown as String in format `d days, HH:mm`. +If duration is below 24 hours format is `HH:mm`. + +### Position + +Group name: `position` + +| 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 | -### Authorization fails +#### Signal Settings -The configuration of openHAB account thing and the Mercedes Developer project need an extract match regarding +Command Options -- MB project credentials vs. `clientId` `clientSecret` and `callbackUrl` -- MB project subscription of products vs. `scope` +- 0 : Position Lights +- 1 : Position Horn -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 +Triggers `SIGPOSSTART` from [Command Name Mapping](#command-name-mapping) -Most common errors: +### Tires -- 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 +Group name: `tires` -### Receive no data +All channels `read-only` -Especially after setting the frist Mercedes Benz Developer Project you'll receive no data. -It seems that the API isn't _filled_ yet. +| 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 | -#### Pre-Condition +#### Sensor Available Mapping -- The Mercedes Me bridge is online = authorization is fine -- The Mercedes Me thing is online = API calls are fine +- Not available yet -#### Solution +#### Tire Marker Mapping -- 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 +- Not available yet -### Images +### Commands -Testing the whole image settings is hard due to the restricted call number towards the Image API. +Group name: `command` -My personal experience during limited testing +All channels `read-only` -| 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 | +| 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 -## Storage +``` + val mercedesmeActions = getActions("mercedesme","mercedesme:bev:4711:eqa") + mercedesmeActions.sendPOI("Eiffel Tower",48.85957476434348,2.2939068084684853) +``` -Data is stored in directory `%USER_DATA%/jsondb` for handling tokens and vehicle images. +Full information -- _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) +``` + val mercedesmeActions = getActions("mercedesme","mercedesme:bev:4711:eqa") + mercedesmeActions.sendPOI("Eiffel Tower",48.85957476434348,2.2939068084684853,"Paris","Av. Gustave Eiffel", "75007") +``` + +## Discover your Vehicle -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` +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. -## Full example + -The example is based on a battery electric vehicle. -Exchange configuration parameters in the Things section +If you want to dive deeper see [Troubleshooting](#troubleshooting) `feature-capabilities` and `command-capabilities` to evaluate the exact capabilities. -Bridge +## Troubleshooting -- 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! +In order to be able to analyze problems 3 advanced channels are placed in the vehicle group. -Thing +* `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 -- eqa - your desired vehicle thing id -- VEHICLE_VIN - your Vehicle Identification Number +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. + +``` + "bindingInfo": { + "oh-bundle": "4.1.0.202309241814", + "version": "2.2-alpha", + "vehicle": "mercedesme:bev" + } +``` + +Keep these 3 channels disconnected during normal operation. + +## 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"} - -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" } - -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" } - -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:Angle EQA_Heading "Heading [%.1f %unit%]" {channel="mercedesme:bev:4711:eqa:location#heading" } - -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" } - -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 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_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" } + +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_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 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" } + +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" } + +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 - -```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 - } - - 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 - } -} -``` +### POI ruleExample -## Mercedes Benz Developer +``` +// 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) + + // send POI to vehicle + val mercedesmeActions = getActions("mercedesme","mercedesme:bev:4711:eqa") + mercedesmeActions.sendPoi(title,lat,lon) +end +``` -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 zcmch-WmsIn^Da0@aEIU;+zEsbEVye3!QGuea2PDO2X_q`+#P~D!H2=!W^e{)mf!#0 z=ec`#?}xp+&$D07nSQIQyQ|--b85Oyq`ImcHU>Ec006*NkeAi~01#mS00IOJ=@p5~ zBy$A-kO1n+nlf-WoRpl7=Y!NME+#Gx0Gu7XLh$pDVL0Gh@lY_}RTaKdJop0NFZl|G z55Zp!inrk!B?lp|3a`T8A^7m?&z}?k!1}A&3mkfSTKo-g3x{Xsm%!oc;gK-_fWXKZ z8~`Bw004ZCj3cFx<0hv=lFNj{r>0-vwI}dMKhxSx_+^t5d?p@#-0vXE=$Bg(GJFHS z>3dnpj-7^+lJRHAAt))SzFdHoF5vLJS_*^TH^ZUXtMIF(I#~c9DiUaG@2>cchC;?A zNC*d?EC2!3F2YGckqY1l08Gb88<;s7^V5-$8UaXI0Q^CEzA>Gicpg4}hgIgDU3c-n z(g6Uv@$h%>(Y%g%*)HMFOv4?wP?@R2Gb*od54c_3K4-Wnjt z0Qj1}4j`A6@%pV{VD)kd%bdEo8@;TYheq=NzT%!$)csjWmyOh5G<}Z~ObXa3J^x;{ zO6K>MR3cy`)jH8y_G`iIRkv>i=q|+klR-!YgH{yaqXUDWB^@Yz*`@Ky%yRu8gPoqGj)86&t-Q68KpGW|s;N^7MUUzhvkJ3PXgia=?zACQI zpPMgs>SnIkEV(!{$-5)MEXVk*J}Dvv;#qB5`&LhhTg$OS!6b6vP5#$2(DHIr{;&Z0 z+4c6|*P!mh7SAwmcL0OAZ9=cIeTs#KteZ4JO}e`;01(`EiNblVn>r!m*;Hp|=12-4 z4VzLFi8<%A|T8dyx59C)_I;DzvUE7nr_j10-h^u4~m&x-G9W1#h3BRD1yAVyC zFUTD}+9>W?%rT|ctf{^9C!^bbUich34)6CJg75qY>n~K3W36NO0{{r4C`e0adVwK1 zf+K_yM8g6S%JhZBD8n)lU%s3(4DeYLnbqNcAV8kZXGz495FyvbpYOxu#$us1;m}0J zJr4{-ElUYai6wO;;&>zB@HCyW=1#RHZC;ommfo2Ir?zq;I?^t1at_oXV|4!;Vn zL+*?H3{W($DW?&)g#_eBECz7Jc9r-8itCm@xcMJo7`Zf@te`>aOx}&b}Z7XC6|?83rcLktdQf~(~k`u5Pg?Cj$(7^D*xr41rR*0&-CoW zwu|)MHaC^ycpc}sE%Vc2^qqfgG$mZNF^g@erHy1IndZP6wDb_#499-Fh-5USVrITq zvLiDRqTnNfF>P`LCh>sMiY$?z6m@WRq+7KR@pX!G&76NVZcoh~?f!0bVx(V7B7eNN z9nLi$`UNbC1$Bw=a~n~clQz`&tZ~IU44O#C_nx+aTSko{V@7@9R)v3vPX_MH!L`h?T7-W8nDvNSTeBKFY%Dla3o4QVNe?65ROM1WnngH?4t!RW zuPYgNaaRoj+NDJ57t9O7c4#Kve=5J)C(YZ)WNy zUbJz004FX(QrGEiEIg!h+x$cQxHYmA6i21PTb`VZ_0wb86KoVKewPy;^L9gy80x)c zjhk6TX#chUUW9{Iu&ERK&EpHzT2r9xxM7xYKsw|u(SdGpG#5<}$!HunzK$l~N@b}| zOk_S?H2GJ%8%D8+`vxfvMC|MNRD3RbUe6NGHsWJdkrg#j)otwX;ro6ae9{>69w_Zq zUIf|YXnNl7>UhS1*sF{S1sbFsr-`Zn9JRwXA)Mmy#Fjq?XVlSMcX=8!%!G~>^EQUU2-r;pu$X8!E zjR+ut|gfBtY-KOOt%T8gUOf?M-6D08fW6P8$za4nRnd@_hlrTezuLm*v5e- zmMvG6q)fV!a`->%(sBf5n4afBO6?LA;p@K=-D{6!bWFrd=Q$Lx3!j6~uy^B;etI_v zcp&M{8GzaOEeG00*nVW1;HDq6vX%gV$H zwU5`)^zI*niX}e>KI^)bGY#q?GC?PE^a)Ru&0MQhAS$Vjo`Iqh#zT)CEIFR}>!xRT zydhmIwei^~zX=}aSucm036WuB)(4G}k;*SvzOkBH;ZsvoS(ucWm<<)#zZeK|f^zH#T$G!yEiOKZCoF&KGCr~t3 z?ZuLbRf=j1`}}g|5L~kLm%RYk87YIx>`ba&3Q-n3Vgea7x4E>-QbjaoYalrfa5%o?OGZK5`d0im}R7wI>e zom@u(Vg7WZTR4jil=Tr|7A(`Y9u8+LD%Jy zW#IZ(*5I_@2O}-lY_HXq)Aqcy#y5yFjGVhHwWymlS47&o3`)p*T(Hwbn0o_Cd}V*K zYM)?WS7Vp|R&AP8l|)_Wo6Fck(q5yXlPaAeCo2Bviw2VcyFnAV5>k>wx$}Kku*>(s z@|%5F0?%_B5FMKhqK_~7O+jh}XiA9*wh}BDdcmTsw9d~KRWqAT?MJw2c8bSudBfGg z90?q37XI5UX#n}TwT^Uz6ZR}A06sv5eLnY;$BoETgmn2kn#L<)D}k+h%+sP6ITiW% zdc1USu$a<1J6c1JS)^1d)4J4s*#%F-Dti(eqKbL#AeK?@iriIH^Vm9Y%(ydkk-|zr zSzIusDYn+LJ+3OKFpBPP%coNXGv|e)TkS^>l4r)Qcq*c=iE8G%zqtD_jYo1}DpT8T1`px8|l2WyYH4lO=dB~R&Y380=LGFRT3 zA-1vv@zCp(ehZ}=17g~8>ebS>nxT1V&h2bo%)a>6W;B}hoi&)v;LXAcpWx%)uJ2Xq z!eB!LUlEkTct^rV-V0N;LN>^+{X2F+W|dC#X!b2x6J8HiT?xLeYFj{$|{D7zziWdk#Ce<@uOw*lhmP z3>2wsu9dr(tqI2PB|1Z|MSbaX>M3HfyHPnxYocn#{FXVzc2{$?x-7Xy-Sz8sWllu^ z?EBPb25;`hF151SFh%$4`rC+)ic{i$VHO{zgOZZ19Jl1(Z1@o%7PpFZt1TtBDjvV= zm)vxDhvO4DMyGfJaseb{k2hi`)q|9UX_tT4S(A&!6%D*71iJ@8F>YwJS`MT{?mvUY z+Je~#fEW(*$5oKGc<~3`C$OC~(~&?QzxCYK11RQ<)A;ZB_Zi>dN5hfG7D;E{zL>IukyfFeW#YHB(Hvg zb^uIIANTdF-_uY>m(`Mx52>2R{XG=a1?F48yoY#tXIL&hR0PDh3gZ?~Q)0-oCW_!8<5GVU_EscBNVXE#7JyJ`c!? zOCbi&(JaCP)^n+cj|gvGJZ;B6hP|*?fU2wfOJ0imP9v&>A7vhlRsa2utnMXmz(~ow zrf%s!sa?}+s^`lY`^;So$IU}X82U_0bqWu#g&@sty};8)2^oBYEz}Yq=!v2d^~~}xWEB{y-TwrP=F#Ufruqz=f z0wziR4vc9VVZ;6VzW|P+u1vw@_?hZQ!gUW48;8}9h~f07FF!P6Ge=JfFg( zS>sF+!dAz%;o(SQqY@E@IP1>0W7Z z@xJYo+T-@I_@8z;#v37$TC$Sx1_`|E`OjzXlq&1^Bv#6w1H zvSxONE{_=W%lf`+w{zinpXrXR<1&md>;|PkSo~gow&<*qEWR*$oesN}=wDN|T|8F* zin7luj+edQug_XvPi|SmJ4PJrG51+8)4kYqaza&n@Sii3ZwLH?{k(^Ol6tNiV6J@R z{w_ktoecT!7id9bOC!1kr-5F*;Vy&Ra87eNRc23DA#4#lFw(v!NMIyJ%Q~x#;ygBx z_EVWC_g>u`CV5MrDA!{X(6zDpPgLu8Y<5cH0o9;pB5W~4&4FftdLJ`*^Ea%*XihO_ zEdO)&#Z|w4X{vX(->NQq+-& zo&_-ttUlo>fO3LidW|KbYF8u`X%u#X(1Ko-fMac_TANqC3kTmBdEr@5%Xx9Z!tz~^ z8qlvp0*`V&cWK&*lIA)%lQr|Yc7zmY7)5Hcr#&N7r9DG_qdoJz7c+)hg;zgUKfeBa z#!&HO`R@U2O=MG8^j|NXK}hS?o(g}@9v%k$%no9e>f+)>KMyfST7PyPWX(1P)0A@f zBH)Q|ha+|NW9IRNWMsvscTNOy=fP;Y`kw6&MM~4boDoG1mq9A-gtwBC8o|gl39UP5 z?>f)JKCOG5Mcs+!Ih-oI`9ZvI`vCsd z`Cu0z-5!ZMFh9L^v(WH>Cumf}v;;?*13tVzZSU%nV zxVcXHk7PKc+svnPAb9=Khe3B0<-Q*4rUN>M86Pd?@}E4h_>eb6xt2>Wm!>@->*OT& z!KiH(XFFOJ3QnnKo&c{ndzjiNZ>6J}!72{*ZX$3aB#*UuNT1eiPh9Mz!haqT# z1~)~sL0kSAmLU57-))4^cjvO+-JomtDe}7`Guv?b3OAm!|BR;L^2UShQfkJ9z}6+q?ucnT>*3APh1hM7=Z=U~?JXpO^P5 zAaflj_v#;izc2|Z9S&VRV6XHqB9z-O9*w;ZboU!qJmKDVt=CHb;(5p+_Qzs=N>I88 z_NK&vQt@5Ysi>!wGel2d?{Cu?Ll~v;aH-RvJmm>VS?+=j4ZzwMbsP2J-?ZiSWNe%Z z;H{N&0Bj zOF7i(&s!4Lffb{tI#;Pk|T>YEFC<9uZjkxe`s~lez_J-b{`S8^3_sKStbi>HF;7f=tEeTL_w( zl5AYWL{B%fgNnREebT=Q5c(v&pZwM3)@`H}ezFhn9v=)s>XMfgVbq(Lk+3-Zs5P?k z#>-p&b87p|MW@ld3n0ak+cw3DJEc5hOmrDmkxgO>r}qa)W*2ZXf!%_JW6X%OiBMO?#4598 zuLZ`pAeIt?RL0|Lo>@d|Zm9$&RL{Eh;4N@6{^(msfgUGdt>7|kq!Kc(OSvOe>s)B# zZ?RvlWU85PXV9G<|=vYEgAZc5pU3!D1*G3s5+jv8-?K1-FH<1}=+ z0ai_}ywV^hQLzTu-BlND)x*J~$Tp(#(NJo+2NGgWnF1(N3vJLk8*YZvEUcuzn6dy_SE0-2Jfw7zkcGKdbxf7=E z7IRrv;RT$XVi3+Z(uT!`_1ZbjzwkXr0|;aOG`h8`;U|Jo_uF?3v)4Q^I~9 zYkM{5T*hH0oVu8)j(4I~i+Q|Zq1@={1e$8gg|&x7r&$RA>QYV}bN>vt$UwWnkHs#_^N_T*TkKl1+lLde4fB>r@s#^7qOojKq+W!NoAWJ-oNI?uz+TOXp>=W zj$>Cuf5Ck3Wze8AKNfQ%6%dM;)G+#~(gmk-jeCsyC z;_WITda46w4PHN9qApcbx{PLdIt_cCAg~_k%3evMotB?8Cym;T9k$`hBK1p){|4)` zs?~(_eO=#JlgfrxIS2d}KK6ux==XEhX3WR;LgW21Oee?xz71nqoR|_hRL#uhXh`yG za}lIH<+tCL#*I<)`9xzffB%lfz)&Cc`NCyRYARE#K9apnc_eN%0Vn(DX?B<)a?v{{ zjyqkn$`{Zxoh(~?R~;?Nw|w1)kdY$eQu!JC?-!md(4$aAHSs@G8R7F<(S*JEcS}DS z5je4J8EzM{9FN*pz2$OO%Sq@Z>pc;Ar!2Dh3N25vu7XV8(Mm$2ZS9OIa#BfhVeh_R zBL;6^8Q=frB)E|-drwjU1FNyUH2f}hU}FVjWwCI%JoqGrkT$WuKKjKqu|fz9Ha+IfdYfPagb#orI^I_zEx=MihALxK%z{$(@VdoZ zwyNHV(nPt`p9sYKqlb;sNz8!8RyIro6u06mGIKni2TKe(kQU-yx^ZzmAb zepF>0zj`;abhW5x^)M2!3S0d0z=DRBhL05`Np;xv?eR!iX~q<*H}9ddcffpe+|>NP zzu!A=A^L?o74NU-r>m7R|A_LM&pq}tW|7+je9pN~(})hAeB2-kntN1Wb?ccFb4^E! z(DXI?<0DI+v+54c!vH42RkR}mBkA`rOWA&D8>K2TLk)cm_gWmTM<8MyO2wE~ zj>B?QO@~S?Y*#h=iB@!ZJ^N1u%fxC|390DlHPvRMi@ByczG0?NvVG%!{=Z2>^5Q3? zx&4~0xA9&*MoPz*3C9$g@hPOqdOHEr&KYX31~9!?C#L7BvieGRSD=*}F6-R(u@<{Q zuW0u|H02K}cnHCzKONK7xW4Dx@37lXN%~NHDLdz`c9se2HbJ9jmhYDhXYJXCUUm!5 z&dpJ7i=R=@s=B(NpC-bULhSJ_#NBy@b;3Yy_H*S*X68u=t@kGJPD*r9)*f}ES6?n+n^ zRxwavy6>oi&?0|0*H8UKr7Z9rqHSG-=MGA-=sr?Zg`Z$ART_rub>5=U0m?B@V)Rc{ zWE>Q;l*Y~cAL8OSus(F$j)rq#D`bvFW^y6V486La?XfJtTWK`avd}(HuG+S(BqFT; zK+gOmt9GgyuC{{$9vLjbPW}0Y!5{VW~MJUYwr-tk$mQBysAdU{WtyyHaVKs z7V&)IWb?x=@sx&e;m*G23iI*Ocyz!M(uu%BEQ~!5V`!h5+?;$r`3+2%}f^l3ufh%57xFkTQNJ$nCtp{mg#M+EgI== zJN~Bhv~!BNVstW-VzHG9H&L5c7z6(MWAQ(GgIHfj*3LXBclB;5^|p<)=AEa7XotGV ziFb_}4oyx#h(OV#(3_Lv0tb!u0KpjeDHTcc_nh#>`Z?3U@qn*;mDtTs&y@4sHA`vD z$NO4!vU~6Jps-{Saq>J*?CW?EBsl?p@Z8w>hfMl5Ill}#l}TDCb1EVcTf9KeNg+b9 z8?Id@OLt-nYcCQ1^_^)7Zn_-Kzx`J_=GP~%=O4*gSnGM9zkK zY{yrJ_l}4#XP(`vM1ij!zuUTG7j1 zThd~?gr(@n{$Y7#r80!>IbI=+=Epqr)4m3_%UPwm8I>JVK;!v!(D}%!3$ziGZIFx|+&9IyD2^Tmcjwn03R6zMl ziqrBNu!`jTn^-3L%;b|LQ`G)fu9JMq9PcX8#SdnjRlfQzwd%#XIl{^RysJv4%YN#EzU&?=ts zUoFU)IvJv&Ce#TZsDY*L#TA>iIceR2(^RTdow5vD8&>|Qe;|HixT!;H5NoSnv!1}=h7`UzJ7Dy$v6BjFI6AyYPxOqj%@ zbI>v&%IT#L7-wZz-8~Fz6dz@Epo11&xt%Q;M@;<@U8KM3*@~*7iF&JjkhaRgGW+#b zAwUqXJ;1L%-s!1Hn=GIxahDIg8?71G$2oaiU))`y+UXls(_`E;Fxt?d8nS-7i;^9= zYyL51kk$al_jq{Vcn@QFUFZ{%*jQxM!nf-p;ZHjk+B#^p*=qk>q&sZ_)Cfa@$1?8d zs2jOO_K!bjV`Xmc`2ksTBUquBc?EPXv~7-TGRE&M1PSE^5@D==oiS@mmcLQ-(%J|T zs=Xpu{a`*U`)Qun1bF&C88HE_X<%c$h)rUK5&!fL*o7=*2!dAkkrIWTufs>~&?w<; zIxKZg23#CYY%&dBJsCVIx{wI~B?{@iC}xlnR{!_@h7DVTKl{((>vWY&dpHkoW170qCicA%WcMrg;(@EASfO+{k0YR-_lm*rj3ig zILa8608FGOP2t78on?^@d3)z;sc__D=g7cmeknxOx2J$=v)#6QQ(5Iu1j(STMb5Ol znfEi&a!j&+OeeuVo$TC^uo|Vf$a0%)(`MHp;W+5?VEEOKN$JpJd&|$1_F|n8RXn|` z!|&nZZ;}PiMv@HAkC9~ErBTyjMtC|LVEt(5zkP-dQ0BU6DOLc&x{q5j4xtERe!Qej zD=JynNkV1M_|FQrsw%f<^~<vGj`nfv z@;-y&2GOn3CjAc+#0}K~oW4W<+TBL75eKB>>zf9CU{m1ytbpw}k;~HvvrP7N_E`R} zHQ!txpe*DXH9vZ(Z1d1J_W{cNU?eJml`Y?7=gJ8E!6zPGCz`^qf9I{lViLqFN5N)nZ@ zB1!a-!yw6(H8eC)r&gVdU6PBH5i_mUbW1}k`yg9TL^Ld6@=*l7v2EY&yf1S0;}|~W zcaS64gRUKUXzIo|OeK=?c1p~iB#lA@Hov}T>c(oVmCcxknuI*t%AdFEqVK9;@+%iB zl|}+`70N|sGICP?5L@x%OQd=RQCwY;YQg-l%)xq-j(4SXHgBHXQ8>f*W?`4pvCF); zamJv*OtILSo*^;8d&x8`9$=bk{lmik>G<*R9VJtfDEiYO<{A#Sg0^3Ktv8RtW|?7= zy^0u3ni8UQv(DKVbKUPrGLYdLtY8q*Pg+j04HKb* zzcwucQ!slnE)FrjeUc&qkmV;Mlt9nWmodz003(26YQ@~cdSbJhKm)y*C%H>}UlUH) zdcjW+(g*;ag_SVa-FW-xL?T4s*rZTbs=~)putz!q2*u(VT;K4mvfOgucVMRIdQ|;t zno>l_G|>G_(sMz)OY%A}7SBL#J4~Q_yAPq8IECstcuFe@SmWEmmtakcl+4?ECfgET zXXc%n7T-9g)01-XlQ+TszXU#K!bftSuAdz|Nb??`!lqg%m)I78k|^mu&R^q!Gx2s` z_orb}+}>4aBm4;n7-S~Lz>lIrPxYZum;S@o8DVc6yMwUQ#{g1iA3lQ@tR4r?Oh}yL zLB#s39#;nxBkvOs6v<2=Ia4t*riJTQ0)BF>_57#bZb6Es^oCP!?%(i=vmz;XwRAP! zxK7UwiB4_}PO3Q8<(^hj7U=amx0QNzPye?u9#u_YPdT~)4n8%l8PrrvT6x$b?ElYL zDoaApf`xM)W6dA|jx7SssXyGdAA(xwqp9(H^VLv5@DZs8P)P)^pL(|R#M00NV96^E z?s_~BB|3Ek;>!~HW1LR&WNNu z4I7sWd({3?l0n1+Jy_%0ut(}(Ckp&9lX1u>#;V{bjT zGkaz>$Bq5A}P+9XMfLJe$`$WD*+C#Z4&?=u5oPQy_Wce|oX^15^gK~CWrCEgL z+{a@eZX1$RGWJZ~e6-ii6mmej(Q8jVYyZw_67{@Pw^gy1-HN4qrLgFzo30w_E6NPl z{iO=qlf&~hJWND*K&d|+Z(!s%c>VV2jgDcPUP=<8YzR zB1{jf_`--}u`RavU!wQ0zCu})BmN4DK;@@l9}7vb_tjq@NBoR;YJq02dysJ# zf14iSZ)UIqO51PiSIS5I630enf(IX^&iJPmV^8F(7plG1&Petz<`pJ*T~gA2V9H0* zr^`Yt7TFZ6gh;qfyz(LQ5P#J3Mcv<ig)#0f= z1W1nf_qX^E!*_fPwtcvx$OpjOmtIz*k;%}To`(Xp%;J9m-XM^%nIZmX)wPD39GrQa6SHKw8}DgK^qlz97AMn;<4EP(Ed**G2p zfjvXBIy$w8yu1TlGoG4Pt%z4|7V6`D-kka8VMbZDjLds6<ZaL1Ey=4|GxzNYR`O*Wszp0PEP0}WoNYJgCf8O5n{=Fz6lh zsRfHBj4CZ;MIdkKXn9%iOEufM25$;Mf8+}ruXPIU7;B8lJKU)8X?-gKSJqVarw`_d zecj*rW{_r3EX~g<-6o@woe*J*b0WWpF_QN{jI1Wc33pIi@wae2{6`|WP0%ne`lHMM z6X4ZAx!(R9$y^S!GKCUv3$|#=xZZxb(UlVJ%bim`b8`VqQ9i4TrqM{zCO7Ixy zZ({aQd+p&eN|;op{HxsDYKCYiTQxl|yXxU4ttWWmrsSpbz{x=X_Tz0uHrv>Yl1q}X z(?LyLyqK?pQ&Kxl;Q$@8)?_}!K;~h72YOPeN8!n~7~2?Zo_h2tzaia`(eGey=p!7z zb%FBHfYNndh4!~YJ*V5Tys>Wzd)RD;>onvx|t1|_C1U=5$Ihn zeq>jyY+uy1r#`N1Ijwu^Evn$^9c2GSO2+j!t#1>9eUm_cLuv-{%rR8`5snrI^y8b! z_Ls!+v(U5m4D%S+)%m{4OBhc24X*?3D{K7Vu)`HiknS@QY--Q*19nXo=_g_-S4`7P z0~mh4`WMtxYqG5c#k@`<9(Leh-I6z>5V#%QHbWp{)7bpQIekip!v36!ot>n0Sv*wD zBqG$wv%~8tSJ!GfjVqjpwhXS$@ktE&Wk67hP&iupeih-+&Q=F`mtZoTDCIfc?zMD! zFaMPorpl=2-X??DUo!Ehs=+LE@2%w)pO>9!e71gU!1=nK%eMRrURE9im8zgLA$lZR z@gJcieex|U!eSe_Z4m=(ed$FW=}_ieD4bz}(pONX^{A54F<%-v*5=>DPbIyf?Fi>y zZ8f@)ZS&^)xZcWrkd*e#*&iRfRmo1X`IyafwF>2K1X}VKh6V28i5lQvg`cp>qaM!x z)(uzWQ`C@rL^s@D>u?;Vq{YJ%A8M+VvuP80C#;Hv&ii?b+6Je-n95SkRec^4f1&Ks z>PGkZkAv8`xHN--runkbb6{JCz%VtX0?JN}tFrxGoCAPG<@*FLwH)GUmTsM^c@`XP z^_T`%Fm0o)(L-s#WSVn8Uq&LZul7JTee!eiqBSL^ubQJ#CRUZfYBw#&x%S|w+vc-Y z{{%IT9;hF`WL$1Aoe2;Ov%-!ZF^OME){6bAl#g^ygtz#2$f%_cjlUftHK+N8Fn&4v z{{6dQYJEN<91%Uz<{ggJd^5}f%!Z+3T$Ba7#W%-%ckB@6w0v&J3zqNX+`K=f@4s1d zw{P@te0+_8jLmdQ5u8?MtHJSD#~1qVujF>E`mt(R*B%htnL9w*@KJpC?7&gxudXY3 zxvdkHq;v`DuM58d-JIPB;Kq=Agw>}1*l@c=rqoD}7}61X(z-A7s07xBE*&B#AH;ntOkN!5O0l0%(8!slcAk#YU3VBPRIa#Oe z+b48C*tpn6XvV}lu0u&h3aiXs-WNt}$uzII#PX@DZRt86HqvbB1lE!N>fQ#O+-LGF zGp83ddsJKuQak%!AEiX3Km+2t_;igv@~ebq)tzMWODow35jfPljt5vfBU0r#D-pgkrJ>wyw+nIN{+=Mpgehlbbl)H%nI;{1n|n%%vY=<= zN>fVT*2u;nGVH#y0TMGTgmKC>pvb_d2O^uxa9qk6JBTiOaDDVSR6p05*F&{wavkJJ z&0%$9*pjo_jHZIVwbEdVm|x3N`Gzds-i*8OJBFPhs6*S=5uGh^aUP8;>!N;#d1sd{ z36g)Lw!^i;95%UwQ(fR;dR7PSuWa7v%RRDdVKT(!`1iy?0+Sar%~kyQa{yFTGPH;v zGA?}d0ZS=r#&zb0KtC2~ZpjRECVH^L2{P#FuD$#Di?yAO@Ixo7oqHFV1JD7m!K2@1 zL~;Mu;XY`229~>TyG1ATEH0BR2ap~eJ$-EbNldv%P2^@^G`vlVn9J!{ zfbya&9#f+8n{OQs6fz&54nOTeSpkEyYZgOhl_bf_Ku5(Xq*-%j-PjaU5xx9!y4~j^ zCJ{rGPzTbb&_>3Q^A^3fUWhdrjg^vW6593)#&x6@S0BCFglI7Ac)nUGM4 zZVxJ8?kUg%@@^_KV(1H{5KYI7|8zVgT zyAYaDKU}8|M~BgvOj@qLNJ^K+zM@oC65i(dap{5+sW(r zr$Ig4P4+XBTk=lH`=$;+S0z`m#D2mUVVo7@XcKRn5g!b5QRCw|P69@L=S`a}#g`12 zjbWi-1C^W@Hj0a%HE?8?43TV{aR)Rx8|4J*V&#VBJ8%5po*GH?!eQs%dqjE!=j`F@7#9n;4fEycSNgy4%e2P?XH(8 z*~zUG+#QS$MZS7#;J%X`FPq2@U3j=exdB$z0o8zdz~1IX242;(&B3d=)+E!dH>V2& z*5S&>t%eKY5k^)V`sZgBuKwykAXUp##LEE^OMn&{mo&ygiybA5uhib1HuO0j%{GDw zzL=4HMr<&BnvtvaMAOLvf!CHmCpQN_f%}FZzllYQBBpz2KX=k!oP_8=H|}r7de{dh zwZmv3;Nt^h@q2G(ROT-ye;ecu6=$+F9O=|*{obyS=)*>OxZ)nh(G}fUL%TGn6isV1 z!!i-%5Lqg{#Qf&R}AjKv!vz)q8+J!PJI^LwG4S%G6_%tejR zuEcm`h#>%_NoRCcaOk3zWS?=#qE57RPjmnW@iFh)%rv@5aexLFq$pDJjd|Sj(?=sG zrS&G_6Qv%X*Sb0n`A=YFey#RH7l`@h=$eUQ^W4|O*NG;Lh*DxL&I zf1~IIa+J1QTn^4H*pz@=Y35fYabpKRJF!Dj@;8om5BCHSTSKOjtEJn1(ME9<$5y6{ z>D?iVCz(aAS8kzYBHSTAAF|FM4S&v^8{e9ixH5l?a-nrWQJs_L62jv^3?)y?%& z@ZNP4)9km{S*AY;0=77m7FGW~GWq~ugOXCC+iHow8w{f_z=Mf{V~#*yDV&s81Nr`M zG`(C(;Wi2sH%AKij`BRP_ngbu?BG2-Zf^rGg8{d%8n0f^C@GhT0Xf2e&E-#d^yz*0 zJqr3cFHsp>d|SQC>;1>#Eo{o?MZ($bLk^n^k5o2--ZkDgSr2*Tv`;EXqT-;h-h7`_ zYzcw=MSaR2%F7cqidz0eHCGGMBg1rZea$o801kGGYz;H`|E=>}FSsu!m; zzzH(r5h%+T`9ybX7ayPX>$don>rl|JTts65b%GSwSx|6UbMLLck|X3xUmb319dmX8 zsU*1Oli;%2P01_q{#3Bus4|F*$uFeSNYQoF&nhVr{B@-|#4`?HH`93P@9eJOB7VLD z^&;ZxAogb=NDu)kk23*qMisr31WG;_D9p=x4OVdYwx!5Ju$I5EiOF|^H!y*}JH)w2 zWu&fvVaquDdHI^49RPcuv~X|vX@wR?`HJIy36#D< zA$-PiB!Z$Ec6OUW@*m<>rhJI)O_~QlsL2GE@QvKBml@sXQ1d}bG4Bb4&VldJe){W9 z7CC5+MJ0lekHw$L%TyQzkp4c_=4kTh`cqb3^W+IAZAT4DWUtZo!vYr0FU7nD&>74txJ;)dS(^Wx6Rk~WzB>4XTrGczZ 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 zcmeFZcT`mCw=IYP6%bK^pdd&RDUyhSAVCl$=PHr}1L25B&QU=?K*>4hP$bDxl8%UE zkSr13N-80TP2vSvh@9$e{%{Av-pP!17G%4{_VgdpJ zQdt>EH3EXu_uxOvb0^^^ubpfL;mZjdHE9Wgf)2WQ_~x{UxS}`#K~WIN!Bax`p2$*0 z+lGMPLOt@|iAIZTLjr;faal=mw4?sgh=VH{b9B5$H2>zJ-1R$eUi(wd^9yy06OwQ< zom|i~)4F_VM5@2I__A59=M!mhOMF3YQ|i0x=ibSv;=&2Kncon|o+Bc{ySdw3n01Mf zy%82{*fG9{_jT_`xW6-6$tO%do8Zz>&FJLh#0}R%@KILq(Bsb^&WIxy_uB3p3i&qg zp~?yP^5mK)a-#%`7tzQUE#GA1F6)F&Qz75>GiD=SK3@1={G}A3QBhf~5437r@xBc1 z*$bNbP8qKFb?h0qx!=;4$2m}3I;H1GNh6+peRnCH61iu&*Isf83JN`$inMqB`VRlE zJ_kRoW6*!?>+Z+kaiBUOw=vUhNBhqY$Gzl?jg4(>OU;qjz9#+iyap6HM!S55Rd!hikx6@|fWu8tkU4UH?46A)bg6wjuKW^pkzGP)-0Xt}k}Cw92m z^Rw(FYs|rVE6<)$MI_f_xvYGtfXg3f1uaBsQ?Z4DSukdxcO-PJjZGoV?L3=Itr_Q#GB?>nr_CV3P@?J@H5u9Xj&e?C6i&($m} zpgu7hFk0=>87H7DFnk2RxxGB3DFFALNB#9-tx}Sx+tQDsAkn?-S3~8@kKW%@le+|O z#XND=`}g;l>k<_}DZ`}WWHQ${<{vtFq6rHr% zo1_fQHb25>zx)H3|IKT!~LCsSIEAe4M-+JCAn=6rb-3a)=&HU`#T?Q4T$)>K{CrdvD1xo5n*h~ z{N}?yhIeI#T{qg3-1lF|a63)bE~KCqgy_WtkRa}G8xBna7| z`1sV9(Og7CM1Jqyy$cMC9BFp%`@$sXwpVJV*ks%%5=$j$ji+3{WVjzGMyFEq?*04o zvoAu_8QEBF-1s&r?yI!mmAk?IScPOdtmUz5ZIO&2Pcey|bAn5V4aZn)y#AIM#WA62 zpug)y{5hY&!aYKibw}S9@?VoAq1PgoYG4B%dNOAptR5e&*1b7pS3iwaN%^8IcF58t zRUx0W8Q8kdW08CNG}fTjz1n%}XNARBrOoV2dt75fgKQMK zRwKIFWoMx!UnxNd8+^_RqT%k#{T#50V616kd&BoK}x^{h-{KpkF5Y;n; z_+8wunxeS9^zJAT_k-PUA81)Kg_Hwa3E{aejMdiS1j`)WhCN{x*X)l{s;%mJtB>!M zs8-#cP?q4BQ*SEDsXo}LJ=Uvnt!&hv8s1*$lXqvdTkPLD%y%;LXbNWRV2E>d!&%>& zZ45S8TCF`Upp`nv>|He+t8s%ZtY2mt0S`4HS~Y5c`eto)`KuxO)lt3e$2G1_Vm+GT z2D!me$Pd0#_vSwqz_+&wymWdCiI`Q^(|cQR>Zl~J%6)#G$UYp)#G?* zl7^V+uuEXfbz}T*FF`>;XA05ziiDKQavnQz7BwMC`T9DqYY(P**xA_^xV%GOaqHnW zAwBh2Y`=h%zV}Lh^Qw9GM!)=F+L*nMeryu8zN2{I)D1=Ln+dC1iv#;d=d8QkcYmF= zBYY5Ip@Lh2kku9Mk`EDR5p<|2y1qwhlI^|z$WM9w!(0Yo@bh51saZzpjL|v8LLJJ5 zgL|@<`wA=Z$BME~f+=pY4erdV^)`m^Oiwk3?H!6v@0VeDWXdO9g2+Eik*wQD6A+9G zUpy_|FiF<->(?(1&4S*-h}-iLuSTn!rkX;W$K1n|BBUKEkxy+Rm!%}PJD9&g?58Xp zNT(XNE?yjIre51fCc0PVOj=QV9%X$yBWb~8RlEO=?1P%WC76>Y*1mbpm30QQF8p9g zTafY&N%Ez`h~Mw#ppud$q{4Gi#m-eV?}biHJLFcV-C8Zg98zo?lk9bR98GqLaS#w# z(x3Be-Xx*s?u~ey_UOaU@>jXE8S|U-J&()H@I6UKQ%e)RK0e>Rebaz+Yrp)no0m#W zM*XsoFD-1#0_7ypF}Ixr8}fHzy%b!mS7l3sNxwBT^ku6)T+Y_W*XhGzHfYe>(@_SZ zo8KQAV;|KhB?{xeQYhb>jC@;-#pK3v8Cd>JsMh*TMARD-$*m`3IsQP9%lfxo67+Sc^tdCV`dMGw_l1+smVnuXSL5-c`pSY}+)j;9>fAwjm%dh9O?ylA1G60Vq; zP0`RmmW#EPd!*beof6M=IL+e`vXM+(sXN^o<&gMlOMQ)onQd{*aq`3ZXA!H3xB62R z>FF#Rgv~i&ZaE&>#?tf#-+%wA_kbNT0(*5<;F=aEzw_o_Zh7V&M;l37BpGIt-#)a* z2@JT{RvsZ6Vv{?#QR z6fmG`^TD|}Zq)yAjGiif(cl0J*9TN>cFXfLo9>aC7hf6-*Jl=UuI5v47;dZ)#ZOTLNwQ>R zCtsNGqhLb|=!A$SnQ7N*yoP$%-6-Vz(A?-Unq|G&!!7>u{0P92fwVC*ZtvzS_whGp z*WJ=M!_hNqkD9ahrVr*KI)W=&J&dT=M`BzjUIDHv&Xi7id{QfgxqXUdv20|s`wJy| zwoL69i;$F(-SN?(;?>Tmg9~wYUQ7tvt=|Qlr3`Q5=$gMU!2LLQnbLM){m{7fXz%6W zZ775ugyJe)Zee_`n}qWIo7XbV=IqRBWXMs?*DOZ4h4u-nyzF}*yq($1xRetyoc1gI>gK8SK(Bx*)=aI)#U zEZ;rUao?1?P#hrYwns_HNvi#KS|^wE-2L9#*5jw3rvZPN$Fcj!?|MLs$8CI_bB|6udQbDq%3=(^F}t{6Mo+;AFQC^W zjN98<6x*9i!-XV~aDS?M9-fS&Kme%7nOdjdCr&#f4vRi~CcGihG@D`1*CuXMe0WQ!&o=6ahhemgjhZff48Z`$L00Y9lHm zzk_T8jt^$V7JY_FU-Z~wX#5zuqxwjboOf38IVz^64E6Av8=Yc{sB9UwGJqa9)mwsg z`8s9Yq!mAYXw6S9Jo=l(*m2X##@gC8?UrI3|CR~0k93mD;ojC+GWy;R4|b=*lx?TC zo0x-k@g#TXo#z-$MB`xxL3XgKXLA~;-WkoM6>Y9%4`Q^0;);XzaF*TEKg+-!FEwJK z5n}!qWG~x#i|$-|`;nUCBNwsH=JeIP48nmecxfxPAeTpOuyDQ?u62JH2izSbQRsgY z7N)3R*!iisn$JqI#mulob|#8E78q{+yYp!N=RhNIt}naO{R)P4O8-j9 zWm?}Lj+h&*{#@JAfMeI8)IwzH*VzM!4 z5!#95PoCGa?@4nLiAhIL#@P3kVX(_pnp240kH6Phaa2O2{&2Eed|8(25HyfZ| zAg#d4KEx=Lp3Z?!o}P{h4VAyYkl0})sr76_3ZPGrleyTYx<;d;{?o&KdzaRx2+#K> zy=`-OXa{v08*eBl4g-jWhSzazq5;rQ7tc7^6WAg+A%TWZd8Z-H zA74C86+}x+`1`V~6!{O|=Z-IXv%9LCHb$Lh6AJV`%jvEqZb5Q*PcPyuyfbVA-Bn9_ zd!M}OUVJB(Ozq$a0l@=563^rb-oG6>;srB=PL8IXHCXCW@g-yEk5GgvyaBmRUiXTy z<8LWyJv1coApLcDo@xZOnh$?ctxzQ{E-tp6)~I&2(~A%cT68}W6Zuw;fMftxugS^j zG|};C5m2T1pMN_)a+7d*sA3=@?zpq(_qbIY&njEy+2F4c?CP1Ex}Sdk@@0ViR@V4_ zgOrwk*yH%H&6it*e&^@<@k}dg$7H5Gw2pn4OArXK&4%S@U>|(Geh&5F>fLq6tKT49 zbocbwrKLORs#=L26v+tF3yhY&P}kE=gQ5!sHcrgrNbG1W2$o!kC!bRf*Nb;N@`Ofz zu7zxNaW46pD|e8&ThVHn-Aa6C6E*$W8L^K&xI|FzkOAuLz&We9yB5Ix!LR_&xZ*eY{F# z>N<_@2K3=c_pBrY4$572%x6cMWADD4Ieb8qtLwVfK*6RI{vcy$<-`-b`|qoFP3KzL zkHaR{SlTzf6&tm}hXN5IHEwNAAA{Dj=0@%@!aVKOA!H{v&Etd8dZLTPKV zN?u5|n*4_Qb#%`<_{f!x@%UY)a?%k5@nU%^Yuv)f=L&?ei}wN|Ljt$2o~f|*DXPFW zltt5Zvr8J_SHuOY6pxXpg1%q%zDCo7B_=^v@1n-c4O%0)7+img&nCrWu%SMSI{r=$ zT5gpu_RQN}`MkOy#XUest@|7H>Efg7!uYAM665xtpB)OPE>_$a#p)cD@{FtU~1d8y##36Kg3@Vq`GqDN{3ferqJ$LddCM`lp!G@4kLC^=JAT6 z9r+cbSXy)It48~PCqff*E1lC$rf`PyC3iH#zQF1Wb!LAiX_Ec4zw&wdPD^umSaR{( zgMoN`L8(sB{k;8a$4LjJ=9SZt5~U(4abDX{{-KS>*MNZ7FKVRU zU#=KicMG-$P8dP{YYub3gsl!$SU`Yh8f3_PWX~?SIpRE@o3CB+tuhLhN=`Em@*409 zntVR2L^38TQ3mcYcV9-@Oopl*0jfKOKD2B3=H{1$st_kvu ze0Hz^PKYi}a2H@X*W>awr{CSaD?iI}IoaowC)c0uZ_ZDyB}W6Kelqtx1!@HP)VHZ6 zXc|`1f<)EQ#tnmx@tq#RN@YQ0`x5~?LdWRiFC;wgukbw*a9wvy3tAoUYHZ$IdlXc- z)Gja<{#@NbEG(%JaxC0ZQgpOdjvDLy#OiQm&*UbtU_H4P>zQ4fHF5Wfbr<^@y&7q} zk-k*}RWS+vjDY#@&02fyR0I3RINKMEf!6@1OT|;$R3S(t(PbrsX4Q&Tz$xv3W@<9~ zSHJ>AzTW5Ul1@>ZK#TBj>k+#F#YEx39X8bV07_U?HDna{Q_oP_%U&UyI_V7TBL;`O z{)hLv(&8J|$|eak6j#`cwZsYIFR@?o*Lu z1!D#T^9lPN>qd%p{I>h&%W_<01<(lZb13mtc=V>z!&()ZAd2b956&O>3=tr9a2(PU zyPk&HJbxdqORpoqWwfd@h_2SXT~Rc_J>?0x#FQ81^gwT2QClY(DT+rTH~hSxRABgf zviPal_7D;#U&h0#R-W47_YTDO1O?qYt^|{5Whq_5e+03i$knpClmHTNZM>_XZ%t=a z6>705HZuN$+HIswvasGJ7NK1@-x`Gd&bPD)h#rtvf0Ds?W$>6EaB;;@`=(|sGUXyr z#p|D}CW)&f0miGKQ z>0HoP^4^$gx)RpI^h@qS4SXQE*woIr>-+a)*6Y&>D`T|=N&)e~*3&I9jebqW(^ayM zLMfOM%=ktcj>+P}!%H1j^{e&sbpWn!Y&@N%x1fX8qLBhcGGTSwt*UEs<(&05=%<4u zB`oCR{B@$^;y50wm+d(<@y7{RaPvOscj(aF@y$ahT=;Aw6O-1Q$c?4pPwCz@Zu`!{ zV>j;JwF4q+q2yfil-u5BS0R7~DFb!TV5Wy^xB4GXPwKiX zm#sfKELLtf((!I&Lv_1AA-_f3B8bB4ES7`(P+D3FT-0KQd3R?ReaU74tc2|^Z)!QN zk^6@_s%C)k$~mhufF+Xgkms?hEPyBgZ3iig>#}R*x<8??Ry=DU7IbHiM>Gc^kTb-G z%3n>F%BXb72TVYlRXh#wtd)qjb1b->|3$atUVndLunnWCxTblBhqyIAfVPi+b)^C( ziq&Ram}RU!o=A9_Wl@8Fq_hP&e-7^cFTX`r_s%n0aoW|+WgBr+>+LN&L!gb}txvh6 zfj(yGe&55BScTv9k9-&&{v;s{HX5|wkN$rX8{bY%PtTLTW)N~%$>XR%04Jhfvi`en zdHxXj!2fJj^WXHvAC)#)NJ~TTgN2t@Rr5_9)&HQPDuHx}C?l^05K#GFKvw$mU`0sW7pS!MzQ3ZD%RasfdrkvQ;($dn=(b3!-GBe+kHC+P0IGjV1`_7#^ zoSd8hM{eJ~jY7%A?)_1pJ;j3wsfbwS=jWlV2vyr;5|hzjH>h#-CZ>|%g!Br1a%^&F zLW0|{Vnskk>SKiQ1B#X4qZ;TAAVK%`qF3LM)6;W@Ft_FFR$4QfuUmbEkF^f@+=F9?8VV-aedCBSM{0w21X33o^zn>%t=7C3#cL-iXVD`*TMOIeUN?#_#lAMA+9a@p+K$>8rBGg@t zJcC>k@VR`?Md5b&`87QKO%q9oP%mD*m?1|HnuNs3`a0xIbAQmFt*xyu&^_6)68 ztQ3Eb(MqZ>6l2<-*KCIrsygz1kr+`y!NK(KPoF-i$+1h6a}H^iEvatjn*Q@Pn#kSo zZm6+HNlHoO;KG}>6*WQ*TShU^`x9LM$VvR?a_J39{a@y z<$oSKvvgp#kdP2=^O37lm|HVFW_hhGvY3*Ap)gU~sSl$$FXbVF7)6B0)-#p{OQd=1 zZiZ0U&1XbmKQ#4MF%anl1A~<7;0LVDe1`X6`Kvg0WtpaE-shX$d~J>M{rPeFzyuPw zc*>cYV&%>)D19}38WSRdjoGw5Z_Q%L*fI(}6=+BmF+eXJBCZdtyzb7*2*zsn_b+Ik zus9X@DDJ+9)-uyRlpfW$D=!K@O%UtBGS#thc*@z^m)m^TlxZIE`=MMcJxg$lFOI=z z37SUUuy91}z=WSMd7|~%KEJ>f)b`#11CM-K?g28fgXG*V_m~xdH?V_7fgmaG9O_1f zBrXT{UeMuH;8~-2#FzpdVUDRRJBZUMSow#!8u_-<*043zG(|xh#)ANf`(-Wr*P2cE zxWkxRmOq$)&X8Wsz6$SGLnxXpW6^oqt2jP(qJ2p(kWGaTbJQey@VowbV_?o+&HjqI z6nh9I8X9v<-1T2W&>7oJms^a9dVG7Ik)EChta%?aD5(8hZ+JU#)NgTC5fMEq(5GQD zVK1B;{7mPCZC6b(OV7-#0Z|T1f7`GL>C6|@$gf`gnI=t!DTJ;L)Oqao-!6Fr(B9Z$ zK0@oe*fPE6HFg7@U$V?e1~h~)`l)#})q@$DHh4FMIR0gz$gu8UIl-tRkTxr~WKy!m z+Que<0v(P(V(gQSTa$Dah*xXuBpo{a*yM)tSyOxeFu^l|s7D?VF`JvVHiAZVuTMnj z*~ehzF^m2AcGHbzAwY~Sk9^h?=m?%e8hKj6TLVwA8u`x6tWkfSnK!Ye3NJgWuyB=b zWu3uj$n#riwQWTyrR~6l!G^%n-!%rVx`1%K!&JRX>-_T>}c9w|hU&MtGEc!O{e3n!-n)d`cpDPfmbIeq=a zO)T(g^Dhgl%VooEAl8werSq>UMz%qDns&KwtnCD5E)aO+6%@iFfFBfmQui7pQeY0` z3sogV_m}u=_Vc9aozgj11B@iP;IH^CM)OQ9tQXo&M}Tpni3nY`yVl5H7m@Gfq!WpSug!+Tn2G0t%cN*pIieqo0?whqJ4v z3l#R|YIg45s6={LcR?0O5d{%JL8ss2e?y?TFXUu_)Xki*4m%Wxuov(zFezadi~s6k z+R`ubI6h*0=+o2!wzRLnXR*dKwSaJQ2uudBuY=IWLLLBLnNFdbISXlQD?2%D8*3oB z>YSgo&sme~-yh*!p(o14Ne9tW<8o#|1we-s!h@5gQdLz2HdejN0^BuML|q*r(CC3J z6U47yy9VDj_*1PbHVfP&Qukyn$%43N5P$9EKW{yFOI(Uq`k9G?Wq+RbOvp0OnuiA) zojf(W&-(7fA6m?F$anuWR&xlho-HOGu(vJsWCgXLU#J;!(3dP{WaJi7 z#fkQSR5h>O(!ex+{VFqif9(D!aCw@V+yn4s6{vYw#O&FTg3i!*X zCRfHYF-U$1#dannv0>FRKXqH%O$bcj}Y6Cr|)FaoB%O->Etx|CazdhYmXoX~w8no#|=$?L4b*{SY_d&V8jusE1sPl40G zSy#piSQO-bQHZ|v^vB1iqqWr^Ki={SoFV=JZZ;A(8CC>ZkwEISA?G}g+E$2@m6HQo znFs6x)0(w!v|eY)H0;FVl{@J~T|WiM6Vs=K0<|Q>@bDvxs;<*?1a=f>m)m@*;iKc) zGd}N0AXfRJUUx|GDuvs`w)`neSAFPl7QTvk_yGcty}U z9qVR!AuY6G5hX^2Lf_i?NM56Pxg+2d07x84$i^xYp2exN7tmXkH%I*tf%VD($Sb!o z_hRllG_$`NEY84suf9Mv1~CYTXFxK--s}Z^d~tuGeyD6*1K5 z5Tmg0aFHpwC+{iC7uA*la?zuLn3&ntZLsHNlZ(F2*!AVPa35%y<})oWx-{TZRsx0z za|nV{&KFDl=T`c@Yg`ENL1>xzwXIFzKb}S#n%D)dB=DGz4KC^e;_>qY4YVJ3fDmnq=6%=)#sT|p>Cf)%P)wgErw?+o zogrPNJ--RoM5=(xTylzvn6hHfBQSSf_A4-bz`DI0{$!OxVHaQ9{LG*O7@>2-P@FPN zZd7yAX67{UMjsjYDXelQ#>dC|(mOW^bHMx4BYIBCB_@NT_gHKD#eh5G`HmG2qVHLy zqCmflFR2emkyPphiO{h4ZDX}hdvrl`G|lQITac%F`UZ)l16$71@J+T5Pb)vMaaR{k zqKB=3;1!974;AS@{;IqetR(6SqrlYRP@|Of=b7f>`ziXXPQGKw+?Q*JQ zup|ownCVF(>N))u!f(&!C&87E*Vdhl`2JmG!(k0X+ia%mZKKnUC-*N#eEj$k@JX!f z=-CT&G=MlEATWH6)rZ?dC}JO|Lo~b+T*B0>cB!#Q?{g}WVBguWTeJ+$y=i!vul2urM_6A!EE*tzR006W) zcrJ91?01vt@wW_gfv)z4axgU9jY(;1qVH?hpQf3T>6M@zhA{Kk9~uLXwljb((Zfyk zk#i_;^Ay(XVX@$C82x1R91|68Bc|H%l6euF^U%M7G}nMw(! z^nSbJUS!x*!-Ppc)6uHRg5jRI_P4uW_vC-|6Wxcu?QlMfp&P6SZKu{BkOwU@v*%f2&s4C8rj#;;Iff)kRo@@!m zY7p79`@kw}!#+~9L#K?^)gA8BG{|3oW+K;0H`QXSrpEVVOCxXRQ{5`ZHBUkk^hnCX zvlzIoWEyB;nM6fL+jJsFU%fD)8mw88>MJ%F{EU624hiZ-PbL_)vW-C^1y}+03QUhX z;@|-b1N!j$L$aLIJMoi#w{28sKIi;wJWVA<9vJiP_~*;Qn1DAOMKA_La1-^}(_cnL z=9WiYB;`|_8>>>enVSEf7W+Pwgas%kJ)}FNmJCi)muC5T^CLn+ctPI9>;RN4wRmgC z&9+e7%B|i2a&)^Lf64c=d`a%$yT+a)BjcG1{05)!+t*H<_0FBrM<1@<$d&O}+g+Pv zbz!(Q7;DzEDQRR-EIpK&>4?mt=(fs`16BXY>UVj{!u(Hp`$j zhbFNPAwT>Zx|37CHa2SJYP6sBgV}`M-d><842_NV#6%wUhi^^mt?S!pKPqQ`TyDQz zMFx2WY;w5DVHSpk$j9b_wsXOzI;?DLjcrPmOU13ixb=*DN4A#d7o(1y>W6t1*65|6 zgMH0J#J=BHM~yKzFW9^t#2{8MWCCy+rcmBi0ygFTswf&5Y{^t@2*$-%^g|}-JgqKa z1M&=$?WIA;N19uJ7R_<H{oAtk4c z8QBqt4nW&Z!<5J<%x^9&FJiND!{$(c={e32wlD#tg7l2zY`Lp@-q*JvLUK~UNe&Z9 zYJYw%=1DB~13p6xn$Ifc-Zeh6rBZIT;xlks&)$Qc@C<02r-$|Ngzd ze`uyVGRO!scZR?)$T~Ya!+2dfB{EfpX^G-7fR36RiR6ovo;R`$O-vXZdX}H%%w4{8 zDdi8(okw|EoK-+T;O^bN`>Bx6Z_S=9FSxV>1_q*j>U8@jB7r{rLj6atIbaq=b87b+94<90u zQ)6c(Jb}fJt(2soqKXI(uDf*$ezy+Ae*NxvMW3j2c3P$G8ZW zWN zv@PH(1G~dZU><4t&Az{+l=m|$mvny%SIPP%GC4Fh7EA7lqbSnRGByk{y-`i)MdznO z^B(80THs&rOJ*^G!}NLU;B0e%3I$$m9($`p#-@QvbFM`WfSub$y8y-wOvK1!5SAMY zgEnK}=!G&8edk4}KAMvJ8i*=4FHJxtjse;oe9kZy>aaR`2;Dc(hj4$08w@JwV%edF zTpTRTInIAg=8MhUJ5>+Nn%#7mtqn55F=APX42Jzt0>HkL!@*GvkHL7QM`UL>&Hq`n zpiO3hKevd;;Wt_fIzj6x*ovD>JPhu;PhrRV+mfb-^F!!dwA46F6{f~Cg4X*M|Czs$ z!WJCa85~hBAsTS&FTgyCSd4+pkqAig8UwceJ_ZIE`TzR1`Z zr2Yi^D$u`~v{K;_5qDu|8Qh*~cUcD%6NI*aBv7xg)B@fjnDJpRtdlIP;c(G&U(>yR z?);-Tbab`>inngI=CF_cX|(RDPt(crR6zyC@{50|=*!hyYe9Q5=H^=y-V_q_rt&~5H=7|^de!$^l{sBVSLe~vftye;|~SI8T%2i5=if*6|p+yXvg29Q6?(=SGZ4DDW zJUZN`=F-`Wsy)bn?z;A1J-|Kx9m}o=xG}L{z6}_IK@dO~xtWZz7BF>3Cj9%gsa#V$ zjACI))c$OdkCHIf4T%udmS1tQiOx$9o7_{NcV92z8rynAT-;)Oaw?}mjjkr4jn9=? zN4_DM+Jpa)GJXYti5v1$FPIDg=yr-7R|Q?U?(Gad@wW3ZFaXhYUx|iX7@B?Tf=QBF zzwWsfP4-uyA=HrrQ_-!;pTNZ@#qzq1w@H<7ey$Km!^M`Mm(1|EhrmZ_9?#gt%EO~9 zK>VbjUWRNpRGwS4>=pDQ?bG2WPMy)UA2h;p%LAZuTFkFNBWMg*qg){a>)Y+R$I#Ms z#_&n^jmo_!f$-cu_pekC!YD8~#@>&nawg$13C#gc0tG|SuAR7!mKL3lPu^ewJsWjI zzcTKKXFs&YfGbvx%4iAnf$tG6J_;!>T!G`qSsPsFj)+qG32N+Xk(2SH>8-i`bsb7p zx22y2a(w~`F(xa=6`19k$w-^<0i++{h*|{D-j8vI*;-9L*K8o6u^$zo!+1+XfgUL_ z=>%|^{ZkpJVCB)lKzb3Z0f#^MKNWy2j1irB2*cNHD!4)jTOCkNy@<{GR z2yxGy7pP2i_ld85kVbNU#@W`i|B*cqix&1Wm|N2d)+ggNM#0ylhZi4(t-`YnJu&ot zAlJgl0n;G0fP4RacsOPCqvnu;s!F#(<{)A6;Qde-y#GGz!UZllpv|${?Sg?EV=f9& z-Nvo252jd7Ap`mA&%>6`;H<>6Hd%~AmTlQd94}snCT;p`SakGFjta9uYiORKlnj@> zjM4|3A72YB5(vKNr%zRQ8;#>&W64xJ&e1GP+!=YB@ayl!YApDEi@@lO*_rE_lo05P z7qCb~t#9=xi{&t(P+08}W9;@T5TKAm+lTFY9wfpKLxnI5^lxeha>#+OeabcY*8C@~~jd zVhcxM_=Sv3XN(PSq2yfXWkw#JP6d?^0u`7z#_WFt!y+U$NR60^YC0iX85|Z-N|tSI z96s52as=wj9hKSwaJ?J{S zIROI2&APR^14XoRGxpp)8Ts*jLk|cJ#NA-F1bPOfa^tyJ&PpKK9F~4q^(YE7KmJl*4^jO@MRmUca1d^K1jDK8yy8_hvmMwU zHEu5A1CP=hbNpe90-I%d&tm)~z3}Q&*g!ZTmqSk(m5`%sN+_SdU=9H`l}6el(s{3M zjg1b=Kka~}=xB@+-e}{SbtgN8*S+EO;R@f4*8;2@`l-P8@m0Ide|AwGXU}Ngt3PIV z3QiD~$ZVwHgo$K5*d0+YO$-z9kWE`xxo+Q9EAIJ62D;wyuVf%r!seEBR%FN-2J6Z_xEFOJ^ccyxk~v3j8)h^Y9H$ruo%^ydx&xiD_n*7 zXbprSj@LA6N!*yx>F(^0V2H0Ty}%%vm&*qW>5W<{)253FsEU-~!^4jCX)k(l&L1#LHi##~2d&-p*=Le0*N4Mb(|~B8j=Og;n&ug$gA!De(sQo3 zR)CIfx&)gv4;?`cz|(wW!}lCKt1uri^#p)@uk-XL9{Q_SvBWMn-bOR?HeS{Ot9>n~ zOOUv7VqsRI4L~nu`600H?Uu1n;B&q-4_9)4mJff%UarZ?p%Zf-J{f zdS6}edEeh&XF(R5>0Ab90t0x0v8R~ejFI$7Mt&(d%8tjBj_eGKZERyKI%p?nS_M0Ygyo89+z-|o5g7MJ>(GC2(`81Iy+MgGQ~{>R zFDu^7dK>Nlso>Fa`P$?_1C?^qI-q)yOGh+*`WOFC;XWp#Qlf((}8|t&HeCf zf}U%TY6z^JXMAhWciph_WMqZfC7FPfpp*d)1Agy2=0yB4f4nVEyCF*GD=lEd8E4K(#W+0^*4w>DsmBgBt%ky)90JZOpfz z&TiPPh)Ey=g+FvI1>x~sO6%^j@M8`t~nO|6X%Pehl=6#Hnk@q^= zt$X`54elK?U;QXBm#C>{;}aNeLUY~m*qVx6_1>(W`j`yRjEI zXP;8Okcr#q_I2oneeHZRgn<#-&LYs5&-JK^Ml}<$Hqd!F>{N3Ky1Yfs9@)O;(yoWt zp*V(A?MzJEfUi!kz7Cf)#|RMPZgrQKC}Y5oUMHOOMR=hIUfmJbd}bKJ8BV$3!id4q5zrK9 z*wx(y`9O0eFFW^(Oz0gBUteFBPEH==PILa;>Dp=0?6*EXv9%+KFeONJ;^{VbBgGG2 zWIz|D+Pm6(#GoO8MhU@^u}3ieD{E$!haJe%PV)yo7Rv-(d-8r=EG@A-Ssx4C?CT<% z${nA=|0l2KTBdbtH@2u~GZ4O;<4m1b*o zyDK&;KLzJlRlp&*4)&V3{cYsv80hsl7810WnVH-3cEHb``{n)20*pk6^I;RBp7nZ% zgDKFa@S{XhfLi1>oc9FBbg1`%Sm*#`Df*Qc(ERf)(>lmVFmcJNA%49Cx96wQ!uc2T z|LMLPo=d5~5jwX9uXAzbFIh}7yWBYyKP7WeY4h^RU;TN5(A5`$T>z$nz6CK9(z-9g z5CaPKQDkgvY+|DM$}lpCh;a;~H-+4cK7>}Z)ng$4aaL?95WKkJI_RQIxV>csbf_XN zZ}`K!#NJ@TF$nbFT#GUJc`pKD62tUoBRu0StgI_;|z*JnAnrsI_0#;UjC@N%;JSE&zfVh@se!=WqlP zz&6+e;9si(aRN&Zh69nanPAddh9izNx4=*WZE&jTSeuQ!WDRv8R82y`oj?16_Xjze zg%Nv(a zZM#-Kbzt`6{IhUvj`2O9AUm_|31Gy60h`S_rA zK>c6nSkj+BJZTa3vVehTru?wD6ufSN!YbAh9c)PF;}HR1ZBiVQLQq0;M3xfx=-MWgYX``gRvQjU&};tqGX zpM$C6kMj;bIUjc^#uw5m2C$Ya)I|gG&tLxWtoS}89SryepE<*PYUnOOvr$R(Z zny;GX(~Rma5_LatY#u$UP<~_Rj-LHs)KXVD&?ex!+}xcETJ+if#W+)5RZ|9MvS^z0 z=4tnwpIrOfrTh@;+^gofPtbcIXB+f&>s=rsQZ4hI8Zf$%W-(Z71g8?+V5D7-gMnXx zcIuxg4}G83`{dxRL)S6pf5?0qkqQ?*{lUWFdYAFePHYz{r1H7_Ht1-x?(TxP*j+(9mMr`EEGfZTZbvdKC`X+Otp^ zf6oRI{<*xJe=d*K%O5#2Z>8)?T4-FHORu8y6H{5pPn)p-4c=IlQwbLA7_ThA>~;5TWf4_O_luUOYYVtexug@j>Mf5(2=_L??lB-J(L~WLz_fL^p<51%>-=yy5fSZ?0>f>H z>l&)nKf%Pp$a?=U?GDIoa>{ei+T+}OHrv3y{$&{IIrYR125FglAuD-J9Uc6g0(W41 z?yp21zhpj_Z8MuOq+1tEx=BuXf$rXK*hK9~Vqy?=5YZ49q*w2Jf&)?tD`#TCi$%S^ zpz?<^x~>AJGTbB=WXW}Gj9?0R$JD0acKVuMGOROlcvvqu^&Xd*V$$y_C&9jYKt%li zqy>78{0l7*@VK@LFH4b(M)SY4=qsI+)zZ=ejvS5~N~c_J#*5dC!672qzCZ^5u!P=@ zUVs&-j5;S~kOGfhM{;U+=cuz`lw)oqfq?W=b@;}G&+aFbU?4me1>O;nzrJ5bIPmc* zNfmKRE%3s?LT4h#PZI{EuR*eik2;4scL69Lf2&;Wk{MuSGNV9o8W(P$Lj+xd{$Kux zH27cqXv_aOdenapy#24SvHn@7WF$R<=mV|>ICl{aU3`%UzG+c;@S#9l0m)wfogGYArC?m6B9#17}=$G*1ZfP)~8!FvsK=FMTFhc-f(6DOtUnO z*nZYR;iM!b=l%$E9B|qd44Z&+X)Ew1j1Q0t{-0?N91}u~iWBYNGT5Z;2+mWhv^FaE zGcnm;ERvm`k#SAXTC&*R{PTvat*tHOlD8DqO>9J5+S=OCmv($*Vh5`h3XGpPWZ$N5J`1Pi3&yqxQ-g6*VDY)^EaoI&yt^Pw9n6? zHSfs#GVBZ=QAd86Fajo$;oO0opU=Mzbo7QPdz5TESSK10J$skpS>jSmv=;uDDcI(` z7F6a>CcN;Xie0h0_JNq&5njwF_`KKTu{=x0xxqj)#qyjX?x-dC?QGK^ zlk)HksL@+(Ex83aIUW=a(QaNzmd_lfw|Xih3Ts!(Blc+?t~MZ>HeDnnfRRj#N_;A+ z1bxV6>T9Hd>|1Mcs5a@OuP%MZ(g&`%eQ-B+0IsvB&YlBR6|@OK*WKUHJ0jc+xVeGg zyej5?04}r5s|}#>aLFUG+Ek+lOoSi@%^~MX!r?Z%X~nGBFy?}No4g{KciBH7hpn+) zRw(3`MbZ#M@!i2pGwq5IYRg^)XP7`CFS|u!2ZygvAvQWNHe*T3Z0FU05`m$DZp_p8 zkQrp`JtAUzWn>>H59}VIqmFx$p!Lu&YF+~kwDfx#-WT00)!8>$gkUI3mFX)Wo!eka zXO%~|bvP4ZAJ}832|qR#!%<*>fe0ITxt|}-|M;6mo|Y9H;Bf#*6s8P9(0FJo7pYls`6Kic~au%6q#?_69cBO;<@w1<#NyATyZ^{=FX6xx$^ zNuto+TH5_f%V=jNZBmjJQYoo4rS*Q!xW{#m=eghKdEVoFkK?_M!*N{4Mg7O`cmB@v z`~9r1Kyz?BDSF@`s$e@T5x8~71j{ms+DF-FuXHCl+FHSzXag$*_A0M=#cF>fy1>3l zWn5F=g1t}wDckwG9y3fv^n?aZG(q{=oD038j&1>o{US8KoBE%aPr>JI6DO2zejnyK z5&HGZ^X8%pGAm{C5x=VpBLXTTyRO%$YUlxQB2&h5o$Qi_E>Lw*6%QRUeHnL&DmY4l zq=+K(eq!)4q2i;B3iko_HR(AW7W3iZ=Qlwm0kwOQv2x}uaKIpZxxVpoavGx81|)V& zh?A3ZtiRa?l@zu21h1LsCaL{=WFLfn^1UDYP6~x(Tui%Dk_BeIz7=opOh20I(tO=~ zHvtS%Blvn09X}An;XW-x=^ecitde(V4Pkiuj2Pjg{KzSIPr`Pq7b=mGcCqJ% z`>8qzN%?stFVXY$_Wrm{wpHTFTE{+XdsH*2qG0_mch>J=FJHbywpFSlaM307>s(is zlsh7gWWVO`^PyonnKltK`tMZL)bt&DIVlJM{)Bi%irwwu;o-z157CYx9h!t=o^Q_W zLX{h@&%cG%^@z-5A{8!|j|4_Vo)sfu zXAHa0Mlo}#Q%^k6?EPGi6hftXl`aS?7z@?P?>x67rcY~m?)v61^WDCWStu{hH)Tcx zFkdqX`Kq1D(PJc5E!{)>=?$CW2(v_e^8tq$q91+2j2t2A*kv;V&`$bnEepj72pk@Wx5U(y z7>wv|>#otqEYcBo&mU->d8Ikd>7;(20iE*06pY-`(vd zXqgB?bl;-ZN@ud&pfFhUme6E?qOl87N4k18pHG4Gd$_G4@27Kay~Vt9ZkUmqi>tB{ zfjclBJ;M15<|(NO7jfu_`(}Pzx(CHAdF0bl)sn#iY>?;qZ7DB$ z0&DM4tJ+c403&ToQ#+t}C5@6En%UYBFacKhohhz}U6-q373;-TJoRfC8ONF)&e}m; zg~-Ez>>NO8uw8~fHp=}37_S32_pn$ShXpM?J-g(EjKodHkC%SL8c@1X+bjwhVJfRs|i@!@Q{9Oua5G?Az(bzNhEz$l`r~+3z>cz$J_6^ z%mHr`{y9mkz13rIEt+Hh2y+Xu@(~HB%%Aw$9#4NN<1zGuwQMn-|q-zF|dv! zianI&qGH*^qX1zWMVDuU{M}s3*@z z)oPx*l|d;WS4#MJgZI($NeXvz2lOQ-&iOu@%$|1lx7~r=*+%*kf)(v&Cwpet{f#_4 zN0&)ISDQftVU$^1ekA}!?me>>jmGXY53iAp*GD97SfDg2A26mXe#Xs&+x^eJL<)A~Hrsp?9&*HE|GQfPV}a+$;)1xlE~ zfbHV>Gs(HqmfP*eg&nKh$zd1OIrc9wxinA<{>Myi-PgZja*JO5iOIDU6YgQ$?)ONC z(1*kjn8hQJx9LC2q6nc@0K*lVbyv#=v%#!Ajy+~mYjH=hlVhYL zoIsTDBg1jiU>hE#n`v_E*%#`l_=KUayf2@7P%jQMF~iEW#De=7#E6y3)^BQmHulLH z2Wkh*7?t0G|hG+ybm=7$3((2qu*O5}|*@6=LlDBv;ihx3y7cmZ7f7rSdv0XdP6OSzuSk+=V; z?Qg*@^rIBTC+ManDXf;Y2ie={wMI`NR{o?eRNBtz;XTPc zp-X%8&I}s0YM!)U8vA>P;5zS-ch?H+!i6o?+MY^0TNgvsf|k&s?}|f%0Yc=X@{(8N z|DA`>-2@?-nXSi~9@HKyNT?Ol$R2O)LT-iKU=BcWcQIszQ00$xrcE>F6`^o)Yr z+0QtFETa}aukC7A;~YRxg9feIj}GElS!VYB5E;qwigM}`%;b{Bj&+V8oAD%TmH7-L z)AAiRr>-+7dXpZpDuJ03iES-SH}785y+ON~GZVlSNkJ&E7=)e{A)%%5?M)&(ch*-s z>SJ;UU-h|6lH0y3;hh8TeqBW+U{w=z{G$athUej9CK2Ei(hZ9dMX>0(hSUHErAfL5 zbvw~|H8zWhZvS;x{>pjS9i=jJrtVqzutGj}R_vKuxrS|)N8XDP0$5j9G8Ifn437+xQ!tM2nurFY?NY=02Q`x_=C0_0PN47)^IZ2mz z570-?WsE`rhR_YCC|OutD=mbKt;ShAccj(MQx^(`f?*>itzF-oLJ*bBqM zIC2-K!-)Gd;DF!9kA{oDyVxGiW7Q$ z(i%RE=Y0iuvv$Erq#>!_SIl4;`w+V^cB<8}*~7HlK~Q1d|Ck)}2mhn@3NT~W=O!GH z4p0OhoKgZSw21FPWN0@{EX@OP8o~WTP_NkjvB&S!ftR;0^Zhn}FN6L*mrCfrmVxjL z+rjp>sORY2#8XaoRY~dSw*qM@9R4MQzN#Rv0B_u_-nRM`c1Dal9+;F^%?Js!k5E3r z71z`6K%97~+T;9An)l79NRU7fL^zYnVOUK6kMPB0$GfU4uYm0G@Q0%ZeJp(!tYPgd zE0N58Wze+CwEq2^Ie-7H4BjtQMNt>GtjjeFQa$6Bt50b`p{;@VjTrO%!L`%Kyx+|( zI{1_%vD5WtM^+s$x=n8+GXvRx`f51iU$Wk;(%QfO`MmZx&qDtex9$xHYd}9z*@TS{ z)_VvPvRl}oVk7#1F_(#gpPeoz@LhypqMX=%TtVUu!U8UWKGtcAt50vz`QCeN9sMY^ zqqqJ$aN29U?0VaF?b8dKQx-gUreHqRv-WJ=GGf-WZT@?+=GCj=EyF+FknSq_7>xVE zq18(Uo5wM_;67(UClKQMD6%LAjh4|)&UKVVgKQqSmJN(-_1692o~AD>h9OAUrGE}0 z0rX-&K^q{-1W;am>eQ+FAW?%yX!P;)^h?t{R8@Z~a+B)&ReP}Q(#=_$vm;pp7Se-{ zMThm%47~-yG!0ox#y9*k%jb;P7_=amK0tPG|tOzB|#T!*D-hdp7NRC$;}N53NkQCA+mn9W0l&dOn`HC0RlZa@TSWQ z?IwfhbcD?%tliBNN1hnwf{BSj^Aiu2~QHmEe;NrT~ z!@QA^Ut?EY*uIw$(oPQwEE-7|$&t0RbRZ|b1I+8Li;YE?Dwa3CA|wwaz5|)yhhbN_ z?qZkv)7io!ze;_rH%lO;xKlYmao=jAWEl_NeJ`Oh5ICN@uMevddIY{erS;fydlEnz z!I@_M(_&V>Rm1tZj}PC^)V6#dhJL(b2a$dqK{)`q={z&+!1cnzXS26LuCj&(%w88% zRD5?~%8+0zc$q{5w=pO}+W(Wk;!N^CQcFKPGv539fOIRwwO%-;M)G+#;Js^^A8%A2 zS^_ES-}z8$Wi>j+mRS;ahWatMRWO)io-OI&^q}*23TXPTe5hyp@mfDwX_${xZ=As0 zvncv1T0+JK_V9N9iuU{)SLDA#6aUA?PDcA92}yVH6BH)%QEHF4NY_KR=x;(*f0LS@ z!$(tWr9hl`|6k6%{J$d(`1P*8?i0y11O{jH4?X1TH*VaxZXJB2tD)9nWaKubEF3g>6h-gLdOA*6q)D)TkEk zQV+7b0Jpff4}e(Mi`Cr_uotWno80{o)^%}n1`C`YNgbA6XF~8;+srSZ?9i|BoPvU1 zA>|IF*tSF;iBCv?9FsHZvx1D$IU;zeuD0b`r^Ji63-6mZ8v!HI(1_+pq#`wIw@{+u zZmd7v@ke)XSP=*4xmRWrNg?1i+sMzITyc)?GH< zTzq_dn>SxNbrL`8PBC3hBGfRMr@FRQqXwfvm3W~kraBD#9hrP3jf?z-``vBxhu&_> zM~Q2_dBB2Gw;d+|llk$+6?_OO_*6(lFehoh#2kXs-&9puM@NS@Y3*iEaOv9PJW~|n zx5vxylW!C5z#F(FK0aPuSNY5oSNaQA!$GnG)2z~(=Yx0I_+`C)`?g+%*QdX%HBoEa zeDP&+*_UoQK`#3M+#~9&tgO0@TT6>8NKZa)Z$xav?(W%tO{j)$XikV!5-Q(xAbuT+ zUYezA|7^viZU3uSMf{VToYrdfL(1N^Kh?7=n013!Tk1^ce38d-0x8M%!cJkGr;^E+ zTqQTpkM)u;48LpFj@rq+XzyZDH}fU`DA&9UzxCq9(JKXG8Z;3G+YgXkA+8@vXcP^R z+)|7G5-CW&(b%n23qg*atc>uq*esXOqac{Z8d_YjZ41Mc22;(RvI6A>xf|Mqo2@&_|%cS8_ z#nh)M67Y7oVmq{z5lF=_cJyCF>IYw@9r1CG?EfEWwfJ4_Q07kBq~u&I0w zVn!HwG|7X%%JVnb2t7v8Lr0HQ2LyMWaqLlWN75e<9$kjTbjrM^ky%jht$*)aKm+^W(YB2%1!gZIB0*jF z10g8&XX1*@d>O3j5BDG{)EV#_-*T>CGAJpN2y;e4W;ZSUeK#A_F4~Ob@g*j(?zffh zBXx6-$d`2bN&>{iV>XMxx=g5RvGFj7;=79B@{vZi@k|A-Ln&U5bd2rDsFi^v84vS| zN?@MI8NxKTUi5L=$I*`%gET6%dH|0+3_F;W_y~335byM%5* zz`mn#@Zdpa*j@yV)p#f>ldLD`0Pmxq zyyBf92qMU++s1Z0u%Al0?<(>+ApuFsYgu=9w+yU^#F%TW92juVsKS2_zS>$P0BN?W zjSJMX^x6Wi^I1zhoSQ9LYb}L6-uTo8f5nr(1tMA1w$l^=W)$EGc2Dob^|GACdI{69 z_9is>>GRZgN;}=lqnE?oTL>=-{`8JFV_4ER+>g{BP>wR8eWXgmdM5(ISDV0XEPv8U z3PEBz7D$3GnPJF69$c`5l$6eIT3~S+4zkU6u=K1FqmbghxR@X3>_Xc9Gg6JyumlL7 zd_+U!lAEqAvi}^`YqD5WNIYUIZ|8a8+8$ka#){*Dw@6&*Pvy_U7~o9&Phy8#SBNIn z5jz7hu3Z>*ZRqZRx!*(8#~uTWklv6%_&mKfj+z#DBop!1Xq=1Hd{V(x6({xq*eIFo zzC|6kgs?13&rzunxW(M}a#^|`7dZ3~x7hw^+wr>sSBLO;#wCJugA0TDB&I!)#G)EL zl{%-|iU+^2@(2i^Z6vsd$J7v$x@t|5rG#urIL_*~Rp)t5E7C|0#iw zxASV(t!2AGa^N9Wx0A1Ky?E@i8gDdvV%$hSi&7&x9$m%^7;?L}+*rgoSVIIJ|Lp6jK;v(^mxziJhI-GeH~rE@-38FlDW=9qA79CW5^4ub+$0 z?6+#C^kc&bUG>qAjGmmx*Xf?mdRw{rIh1cTK0v#!l%bB*npZA`ix+Ifo^4c9uaNYt0u#TC)?C%QhSVZZaN1T&! zG&*5FIo}}*bR7y9Ku6scBbR2X@*wJ|W4CDyQ#^dQ5lXT;Ut2xh9iLdB zrZ4I~6^zeXf}B+oUvb{>)`F(rR&`-sn>A%(qCynCRr=n7`CE0 zpsX&A8Pis|n zM2U?HzChK5g+?K{1I}4j6H`(q20Pr~7YSU5;JiL4Tc0-_Z#atRsK{^o1jAdfMCpJxVnqw5`u zJ|GATyUKm+=_tRZFmrKC74Ni&{#RC=O>@#-9Y=#lXR5f8Ua%QHqbbd`*Cnq0Za%vP6bNu z6e&YBwAby&>sS;SNi8dZES3=}H#$80vz4R}H!YvAQMD!4BRGy`5wY%olLXVzz~g$2 z4YU;j9|e||j-mtpqA6sfPUU-vf)K%uNOeS5XKnx#(~Y*uM~*y%=82;^wHrJhcA~>S z&s(ka>idX)ds_`tHr5en^7RrXPmcTr7@f=)8(_cbxuEy+!5r-8SbfgOoO6ItWrPcTh{gne6f~-+$|hQCfWxA>xoLwnB2|vKm9s)aDGReh$V&{K}pFI zg1n0zvff=oG>`w+D!u&Bj~o$SQPLiJt%3q@7xHU?6e~wvN9Ta#2xxQ@HP)aQy8tJ> z?bCyLdhIX`ow#=n)10pDNeN~m)pcvZ2w+6pDN~$hy7$gu8QfI2!L0}T21Tzq^v*2p zsDbQzqA#M#(Ov!PcA<5gN*s z)eVKrnKMW_7{pxPz(=n^SdZ;j7~U^mXMMiCcoJ52G(A@An&&w*X23=TZ9Vf6_@&$s zUC!LLOl(VmJ5b^vyiZY61jyr`=SO&YuIZ(_4)xEVY!76iB)iY&jOdu$52P~J9~$!C z^bNlL+Mkvlpxh)e30f)W3y7tMj*&0bZg`CJO^8!zqz83PR@zHXr@bG`;WRxYGg+lS zJM8B+y|-~Pu=9BK$;VHwEJI*Oe0M#`nZZJaSdR>(!?WB#?)g&HzsF{8IA2!&hP@0a zpZaEI@RSig+ryTltJX+n2t<&h@Gc9K;()x1b0{l)V>oIB^2E)_`yf)Yvh0D%)s`EtxX-F{BDGs zu)q{9k!6@AFj2N%KlN(fHE1}=fWt;y>hA`0kwvbz)kEIvKHR6Rt&L=Q$k3AEdBfIZ zsDvgBTc2*J^CV7cz+r6Ap_9E9+l?#<0bbY((8eAy6}<#+ne|`F_kB)TH1!&2Sj4gTZSdEX^Sunqjk54mG3Vhq|%hn+w_=M0fuawmE?W=4*u+qF% zvMMX%nWE8DADRpK&d8X8xBLncw*&n*jw<3O#{Z=xCs(p5;5mhAw-tvTT2Y%@LijbN zU$FJ5&jh^xx08zI&E{Y5zWo0_rc7H=RrT6%Q$HDXO|GVCAjw>id;dq58uz2UZx+4$z$lT=jEahz{H*Ag}MTaZ8$k>=W`cB;NJuanVg*LcmTq1 zOK+CHuyrc2GSQt}-@1Xt{aA5UQ6o*KV5jE%0y1f4Q?IYD_hk{^a$F&=ZIT0Hbs(60 z;;r{7$TJjXFIZmBo(>2m`PSI(+Q`mwa!vYWWsE!=+2iAhys7Zh^sShmQ5@0b2M+Vcae|8#m#+d!w9}Ex_bt7^${J#qe=%43WuEodI5lb`6{EeiTZ^^N{cEFY|~o(u@u%2VBE! zq=ddeJ7{>k`Kh59swl29)5)g@%^s*21>nV%^sKBbL{)ipu3>X2)sS%cz|EI3)hoT4#e&uw+YxcvYw(Zm+ny> zP>_23N+NIE%UWE}G8@CUgDr&S;Skm|rgcqK$=MfAz7^qS1?cCMfEy112QxzuEM0p%_>bZD3 z@$M}E;IgGndBn3^t_CS{020bR3mu#XN?diAF)FGBF?e>J%e}Xep<~BrY*>@g=g#AH zr10bcSiqHp6v8n6_1~)`t(O~(hKY+V(!kkWBi;O;4FKxE2cY?l^HH;$#5L;D{{FSx z1oT~{h3%pHJRi>8JA*X6EL~$HH2@=#aPX7)IwW*e8M?hWvAN8n z#tYo$2maWSxi$Z6;Lk$CdD{YrfqyvgXCKNSdw{O!BXqF>U{WB?3AfpiSQ6-s)~00t zaRMguLG_qJ(z2a`gpHuT?X6d+y+tiUFn((KG#N|*APQRY1b*2U%w20M#KW?nC=)?zWK}Z5ZS)}YO zG56LnV7>PilswUnS#R?!I>-cQ{SgMp-QS$Bzzy!ZUxGevy(1;e1Y?47KVbs|TI(#o zH4a&94~=Rzj_I+J{KPk514Vl3?r4(IMHHZ&Ck3(oZUfZSKMcdZ0Ci|OSVDS$tWVZT zMv|D;O0ozdQRKen@9F`VqLyA!5ZK|a=O{X2m09}3`1}A?39J&v-k7dRCAo17(T=1V z^5Gi_>ZP2T&!tm3u9AFlmT?YcBOvoI&jl6BftR5BCdvc5j-(SESgYt)(!+|8Tt5s4 zLNt;}&7IN!k)gDO_(XX^d!B6I%>0~m7Jbuka1{8H-qK?PFcS%fepJro&d~lMEHcM< zqoDS^mmziKG7{w%l_cnBX?vTpVvWsFeFvscrC-P{6qY9;AEc4LPY+BN#b)%r)jvlA zdGGi&8i;1?G55~L_*58@GBQ>j5N^P~5GgL`+3({&m<+NNf-OG2KG*=hV4e8kU^!&~ zj2k!jTx))g_Tf;X3d4HJ2iEyX5O5}XDqZApW<()0A}UG>E+^sB%Kr^g;xzF{R^N|9 zo~{z_Wc$W^oLz)k8bc-lC%hw<|2RD8?VpARMfv|>cu+_XSC7t<3Uo)Luhv*oCp{76 zcaIkLP`|Z_^4tCuxeUf{LpVowaB^a4u3E^)FLE#wuuE&bNk*olfia_MC!n9 z_c|HRxJ{}Jj3yq*qWhBgR*bzmm!ZADEI}iP&ugE7$2WOX1Cbq%HQz;^Gd*;;iaqd$ zvci|xH|nq7FEm-cWB=9=V-9zrRjb1k5gCp_SfTlg#e+6*(dK0J(5OY9pW@R$oZ99>H0} z6q`n5^nCj{EhJs2}l2*R{xF`gBCj(gOa(G%bjzx34SllnbY7 ze}$9kFl8$olT8>-_iln+$;oMo%x`b~MsO+7)4aAhi*~+;0{xU0<`ch@f&>>Rq(LA8tv3ZZ%+CE_K)tJB4^^6b_r5bDyc{ znH%lpzZz%!fWKGmcN)3Zh?!RMvNs9q+Z5ktX8v%c^yo|VM&m|a{u$~@ zzVtl*CKP+Bjjv3r0|i=V8f8L_ zWvd_g?*4d9z46$Jt1xh@{JK+tXAdl&5*<1|%i(g?eECgKbor;ws)#u4>YqvFx@6?_ zmdq@mj9m#H?qr|a{RZ3R*aM!lzJUQ^sAS{50K9h^Ui8eolrs;h^6`aX&PQvQU78rf zWn3HuVA*SEY-Id$4k=GL;ZhFP*LLNwy*+k-wb8`;K`C|4zHbce#dh~oEBPk9gj%aZ zwjbtn_HsVaJY-}`zX66DD@g)OzL)@uneO*ANU27Q%<~S-13divXmoDtFPNt*MaywI{P73((o20&rrW_fg z-xVx*^*0)4ljSx?&zqQ3Im8teNv?a!apEzODp}3T(@eHVky62~Xg1h8}W{Dj(MCatdn(f+jaX?delKSpC zrPk*HW+V>hTfY5r(i%}(R~Vdu0wr=RT)$O*hICM)MVvQ0Er ze^0ka>dq_3@HIEyy?GW4MLuF@4OmM*!T5UypDRb4r?E7k*j7u#qTvfu1^*(FN$MaR zQQX*h>ME;-?zasz?x)12<&*B*5uCd?MK<#5rvkFrWa`?*2lzjWG&$2WmTYDA?KHNq zh!wNYi&=q!CX&!wZ?iXx-ns}x*bm93Z@@Dc3+O@Ysda-@@K=p6J(4)d^+&2h!E5#cS2VZQ z?KFkK)8Wk&l9t%7OGSRcHP6gjwC6rQ*M&sX_M%ygZ!Gme@_1>jmM7UflPY4Zvnyvl zby}7=x3J1otQw3{C1W|oqBgLTSx;%yMg+&jQWqSKk(z`x>Bvp(ub4wgCN!xfoF|dM z0%W7XZUi{EE2Kz8^6NdVQO48tWFp%a^6@@=$NnrSdYOH8=xW+;G;zz5mS5Z;X0F3x zhFNb9`rI1nZ(5e+dzpS;{vqfY_k=c>pMw;a&F{Kgm?b47$a2;av&Hk%iXlL0$I@X5 zHuIAn*D~If@=k0RfUgj?oH~Jx_Fb8fpQPk`2Ln(5AE}hJDX5$Staj=d3ut)u@yc^@ zcow&-=XN}YwQ5_c9gTM`QqBe`1FasGX~v=pF0dRFkf_H5lvi-2iGdx*<=Zt zj1N9}MGE=Kb}uz!QcJ{~U=d)hUHbz(RseOu5}h#;X8?W5ATB2Bt<9p<7)pxOoYVXg z{X*UD&Kp`ndd0haJLzi0d!jCt_aBbf$(f}-j(L=_Sc*9^UBPPD6Xe9{==dHZ#4DV8 zuN(GHCy8{=33^R$yL|I}$BYSUK>6c)>7|1=&d}<=Lycu1jSx!x>5uDk%-dn2gvy70 z5VGl|^Jvv(MBhTirp@lnrr5aQ~1hwzDJSS3TU(5-y znO~b|Wy&6^6;JZy_xkcY@;x%~=ss)~`4NuwKHH106WOsf*BA^MY%Ti6qZw{<9Cf_uYI66 z6d&L9mKMs$7Ng#(dA8% zh{&i5xe%3MPJ{EHQ^ztZbGUqvpD_89eRkE6Wsq9W1;tKth+KFB0n*%X*h3bW=hJl4 z(Heb`otr#j+z__JO2NS<|uAlTw~5KBXGmseKG#}^e9rKg*q z0mXr6ZoPBws@ml}S2eFRb(=>F#e9gai5VpI!0dS5!z+gZn_l!8V*5v^#3v}=)SQ~g zoJlxS3Kj}ZM({TFgKn^h?@U~qP`t4|;Wrw&W2I^GSK1C9T|g7Z(-D3f z{PCmqc`2>WRsuSgtyTwQ^^wS^<*W!UAGbS{8|a%)0#P#Z_>#}J_5gmH=AZt&2OZRl zECjm#_mBVaO8(ccj7k++0g`I$g22rWOq4I1qSpH1b`@nNC2_Ldee>pxdKc*+HedZ@ zsVbE8Y%6YS=F$y`j@8y0N@cK}>|J`E33ry}LYV))k2}7wssl+|9k2LMp0haD5dzJ( zcALG_{f-UBWHb#LRtUso%z&D?L394vmFC&?ML-mej>=49Sdr9|z~eL-_A zFJ@cW>15K! z(bG$dC&gY>jPmE1cBt<2E(ck-vRdKdjSUp7q6U+Wc@@t5o_qsQ!-b`wNz`OUTJD38~( z%|CIAcvGFB4^<`4k*`1H!IF>$yaCVNgJ;j4<-;YYe3^^TO?CWT@a?4ZbpDW=$qnU7 zM0+NgGWjfL{%PisuL7m63NYfRS15Kt4viJ-c}0m=;Vom$Ro}TKxI*rG?wJB`saU~2 zMjrj5_{q;X$VY?pU2cQ+Yup*R9om@U_Phk3LuJVl(~~VT#u!FT%pkHPk{M)aFw$;|j3rBBnMk?q z8a$~nJ;^X+Ng6YldSu_lkma4;Kj3|@&*xgsIp6a==X|ao&UuJIpWn4ZaR&eZyAakE z4gjzX6unKQwu(*?zU{Q=68AZ0dkz39l6J1SZxhL4K@R850H|GgOeAa%v~~&tfW5)L zx7dKUT9`;#k3l(F3WY*Uo`3=XLLn1~VhWomLOxAoq%;XJ03gW2(69i2r3r-sflw$? zGex*4ksU+h3o%#>Q^*wXX&3+_;0rJ!YZFt*7f_m*G(MBbr%?b5@EaqbH8GhYLM(;J z7t-=5lqd`)ih{uc!ryvY3 zGzu0F2nCcV%6#$A5m99W2#a%$Vce;l`#1XycUvMJ%4s-jm%kxaj^Q0@mm4=X@jFps z5_(e~y}TU4m$Q#nq7J86yUIvxEiVz3@&DIQ%vG1`QR7K=P=DXE-0OptUxiyaTYz`w z&X1*QoI_cIFa>RRXxJz5gt{LQIH)&a4X>uk2$kTZf@uoajX}4PiezBo5n+u6#WdP_i!`>*!w{lt0hS$--e&st&RDfa{4?eRT ztN_g)BPt5R%I5@OV za{zxD&(P5uGaqemwu$E5P%Txd(}(X@o1GYElPN=iNTurejp99DtiQk`Ekx0|RF_~S zgm&VPvg*}f1)lsf4iwM#ClS<2E!nL^_0XnYi|GNVdy@sZ&Yg!eKRscX?W?YMPkr&V zi#k%|leA*l6X*}Z^V9GVEegj?R^>M1Sh2IehQIMbk`|PtoTnJ3??v_C>veXVa5}Y2 zF7PzFoJl~q{+paTs{3%iU-#qc$2=vscH6%j3~gK{8J(oL8$!(uZoQ7a$md>+T~hT+ zbdx_Ka_{Y>qXOaD70zy$0uhWlGj|~$vFnK#F!Te8zxnW+yFs#j4^=ScPH?grG7P5s zYgdkAC3H-j8_A8Mm4#+!ULHT8-9GwH?|(C|sqV;G)wr~$N=|2P^D{T9&RaaV4@r^= zR0oD+pwxlWSx}(YEO+8xBy#EV=lxLp-tV81rCau&mFo)0E0|Q$l@5;Ry|H0b97I}( zz|A-8$XTilRHs`QxrL{|t;3>C>ni1m#t|LA`KBT1h!sB*NV;P^_dC*7J+YzEbUoR$ zN5QxG6G~0*b$Bo_O=UE;>*;BAgR_%tlS7^aC!*V#W@@&sKJ*HU{ms!15wu+sM!*9{`V0-%ryjw>#uw#7{(@QhjCX2E{nW2fQFTyr&J(*ae&QwQvYf}z z@$YPO#^az|>)i;B{Sp0*qV;eRT{`i;!X;e3hZGQq$FUt*8ADY+sjynB=JVH*(~_NM zD!1apHJn;6eH4x*%Xr?x8X}Y&){ZMRvpLhwxDPx})?M>)_RL!%Yn9!H<~(e5ekzqk zUZNAd{)W9vyF8dN@3Etmz>NH(>Fceeq7pP~VB66b`Ck%Po^dwGHa}Oj(s_QnT|1_N z7fIJs;;x$PjaV^Rw@tIj#Kb>txG?sLP`XkjM`XQ!>~#2_)$OrQXm(W=T>f-c^783m zx~jFBKjLjPJZ_p{z*U(>yZRM}@_Q1qeH*%z54$unv=l~k;{uF~_L<-Mjtn zD#IQaEy!NLAV}!We-}2Ljc#GT*IFzaT&pbhSwf8O!9BIFJGjhz$@XkcID|Lg_)+GPVGWlR zEDw-BY{U>++=`11Huq9*Y7v~u@-ETO?K|RKv3=u^G5#wgr0F__F(m`c-tJwc_eR`E zB(*;naAH?1UOMdI0ihIH^pXZT{3M5|R;A$BoN`%zIzh8rNpT-a{(@?EuveXxdEL?1 z=-jLfkdsp5`$i&2eApwqf}yi<3WR@ReYVV=BdKN`X&%R!tw3Q1M|y+WAH*rr4{LL+ zhK%lF9eTZyDpF91Y;=w8#GU5CNZnv{l}z2q+Y^bWVy{=beG5PKiyi`HO+wc2E-!`o zd?{~G+d4A?T!=~Cr}CBh{NpW{8$wK?49zqyt-;a4Q$5so^n0@pb|$?z%u8@55xvHc zcKXkPl(rY8yov$w1|6*H2XGE5N=5ro1fx#bV^=t~b(3cL*5ymeUQ4n%G6RGucJQI$ z{J+ll9ko@hhEmb>GB~=u<&5Hj&bapkF2yZ?@ZvOQmoI;7hPN7FRYlhk1q=C;aBw5n zYn(iU)ZFrX3r|o&*_Q||RPGG7zq7WT6H$SE1a`-ye(^idR^Bkl4wm=bm1~t6$;Pn} zX^kla{#C+3wRtno7a1qu7L6n%1p9E4dv5av{C$DFjK7imcWx`+KQw-gRg(HxLqQU) z@1E(BX%eOhIbJ~bQ2&NG`BwRTW4ph%ciK0eA9oCb)#^ji`Q*rx*?}2v!IRr?^2dwP zes=iE)`S=XZxYN=GryKLU8Y}HsCbHwmWY<$NuCm(o zcfqoD9Lca`&*ch5&qz(T%vzVoP)7!-W+O&^PV@Z5Oa5$;<5R$j^*1 z^V!Z1J0;q<)Zy7vb@OAd^`uUIC3`7Kei3~iM=ai0t%tfuvvaa~Gu^jUv-Hd5M>I%P z(nqZMd2aSqiP7Oq#V$HAa2@%rRxX${QJ*Ul%D|dOV%?J;Jj_lBkB~3&87D6;RXrWC zHg!ys^tz>ZYga}UXggiPUhmUP=Vu1t(_J(sz@TG+BL*4l8Lgh=uy?0GMUyGz0jTPpx%GTG(=R!5avT>3@p<(g$ zVu6E`h5n^A>5h!~=;MTTWAaX*t&{4~Zpx$r0Av0d&Xu}(7Zd~D)u$ZaBJT7-ca3!pKaxjLq(-&af&Q!#UQJ2+TW15i zq^s}vMGYZUU`~5=N`)n3FHmj=^;G1r&Vt%zI-&Ce%5=KwzpjaBpXW+3m0)<5v6iG1 zZVRwfDyvO}4WJ@?aB$=T%vSluLhqGlyhWznd?n)JZ$Ky2v$ikphwsys=O@uVr&{OP zaNIkVsOctkP_qj3B&*`VEOxKl@PGkfJ0R5fjy%}gsX3)};=$K??tpeztIF<2Wc3qm zuON#?QBq~lqN75OV{7`1lB#4;2)g@rt0Ow~qVVOsAtOECuPic=oW*mk_G?bhdYyF~x_v^Z)le>Ap0#5PMja>Yn1EmAZ=`ps&JdJqs;15*je g-}%1=Fy0@VV&oI4Ev`8+kACA2mS_ve?DFmZ02eo9^8f$< diff --git a/bundles/org.openhab.binding.mercedesme/doc/ImageView-CommandOptions.png b/bundles/org.openhab.binding.mercedesme/doc/ImageView-CommandOptions.png deleted file mode 100644 index 2df39306e97bf56eb6f6a98f34f8be5cce42f855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86776 zcmYhi1yq#J_XmuGz)DCgrF1VKNO#9B%?2gX-635fAR&CorJG&gSp)=>4gmorM8Ksa z1VxYzX~CD@|2^kD?{m(a=iHe)cjmdzeeV6t%zcuK4Rt6%EFb~`0!kQE6HY)t4BVCs zGNRj>(YGr4w>M%JH3KyQg2uFaf9*(a={o^%9d&~G&kuj!66C&6ivR)ws)7HNJHtLT zjsyfm1jhPEt$X+Gfj}Ti8C`O6aw=wiunK~MgX7^tR$5wG8X6ihGBP?kI$mDBJ9q9V zE2|tH9^Sos_x}C+eSLit4BV8Il+@JJMg}kwBYjFH-bd!1(UH&YfjMD18X!8hsEB~f z%uFg~K7C#7&|q(4L*2BrGy^@Dfu4?UKrr0cAn2KgE=)Tt)Gsi=-OtAbg+c`fc|}DA z>1e5Wgv2`7TisqVGSarTwkU+Li<6D7x09->s%voEU20nThrIdu`4SQm0e$tc$O$}uNLSlDUy8u6zsHjLzPEN<5*p!qMQW~(Wjm5uz|EQQA zC@Cq@KHxJ$!SxOF=^qNHsVKk^2$$ek5FOKfR(3@NX*w2GdTxlDyDJF=Pg!wwy zq3)1@DDHzFi3<9JLDN-KaWpLOf_jB85dH6(N$W3kwSdL9d>L1T(X73rf<^ znWrnN=~P!&KaWe~7G@S#rehPPmX=rg@L|xzO8fx}7y*Y`#^$K1OI}`H%Bl-kTk6W# zJ=1>b{g9VR#457m=NUIQ3l}mRW`Gn^&d8ED6(_%c zj{@ds=dQ_N;HqzGW#jdXMnK9Eq4_M($|JylUr5%}+KHM?$jH$@v+E1%V|g02G+Nsj zc1lX*tqlqUtC_kg($L_(ZXhDl1(oIQ)4&v9R5LSO0 z3nsW@6a&*#LxwEuEJV9z1+$U*^2cHnyMJg7eLC5ZP;a3v%=@^oyx>t2vExAq=J%N$>;d*(ALjc;n|&?Pgi{WJ?yl&P9P^X11YXp(x{}14)qW?_ zNzh3DQ2cOqXM;r94qPBxKlO+_^QoM-`5N5|loo@jk{U#Hv+9kk)>dJ*ST?A64GZb; zB^9yMh0y9aW!Z{2KbiVaPX+rnrEUvJ*G1odSWGNXi^{~2X+($%k}(*fUrLyVl4G`> zk->x_W;QSjHS6DG4I>JWEC0;WqpUocu>DZ&f}0KBP3_l@x6 z^>tb!u}3vp;-~b|sFAbM$8nEq-$IcxWF8of0PybKnTUo@kzM851tlCPtv*E*-D^R4 z4nw8VZnr}o_ zt{caxU;Rf{WT@Lu)I|Am=DPx6v$*qDpQoy?N(^v@3AQF5*S?kQb1QL*k_X`z6;Y9J zXszX2%(R|pHZD)UpAPVES;wyZeSvOeP%(g5K4^5_XWP9ori+Cb@qQ( z#McUf0W__G911M@p`Ag5h~LJwvG>|58)Mf&{2Ht)C7dy7Ctm4Y9ccEdR~0fPC+%nS z`vz1iqy;&d#)c)r?M!o!X?r$p2Q{jYqH4l69cL_uDIx|5 z+5ETgn$QP-bc|Ub=ZEoyidWt+P!E`XvgAOIJbE6i2MsJJBW4jnA;$Y&-byt-lK~!e zU>}8X=W=Dc9ahu3+Tk;@-$T^C-EEnhuc=Y&e2-akf2$r5tC7C8rU-0mAQwQFiuk)i zMLhE+9AKm~S8E*7<3FLS-}gLl3Gr|+YxT28(PeEwOvqE4RnXGevdkG5QqRpeW+L)& zN(y~2r-+BSc^f9{2Eq%jzOn1ZTc}Bao#%h+gWy^27sJ5cc39m;MzW%SR!KpD86u;? zy#zV(_KIldMoa+ge9`DpXIjT`(e9+Hl?v|}k6u&lw&iz1)4GyCEZfCx0Sm8z4fg3;I6^|Kpk9KzVq0h)oyhIb*u(i>m@(cUUDkn^mE`U!**&i*4`>_1tSKd)yju z!H?xZNpREPe|~Odk$PkQBAbeB=e44Y*tx>=VAA1XQj*376_bJeB?8)!8?ns~i>7Ei zzs_j`6rH6Db#xx+=v-f<GENQsVzkSiWx>>tncK=MCQz@{?C`V(-x%;9__$s0&Q8-*eY56@= zMybxERfvNB^d(nwbMpbY!j+Otks`YD_GdV0EhW%2^=H`@hB z7p7{eXBZ36znrdyKk|7ydAC=+d-*_SPGD3}w%UyE)vDOy;s*wQRNKybPVp`BH+uc7 zfq{X$-Qn?1XJkWoRO?Ap`t|1&0vh|A3+1={vGq15PkZGHy>7g(KS;&aT^^72+FwkE z$w?5k`d9Va)|8B779N!&g^Y0-m0vme(0u%;vnlv*256w0vu6aK#JrWZ|H%pG8}E zzNR{SUaA+$xVGOzguH`vqqBH*{TJ?43GaIqb*7gNTJC3)`{^HURbr|INzH(+>tgee z+rMB=3R{#3KQrHL=OMj=Q>|tA!RPcBstpqRpmod^GfT$~31BaOzKEyuy^E9s925E7 zo#Ck21iMtIRv8?_;s}4I#Zmr-e_F%hBaCG7n{LO=5daU| zU2^;)0W9?J!219V8VGuHH&vR+lK`9r`GBc#j#tveLF^ww4KbjM+PfclS6^~y1UI}- zGa@DZx6Rb0|9)iG4j!Z8vN{aIS{h(G;9heRn6Q7>D?0+@S9~={N=hPxOOs0zKbHVr zHybC*j|#^aL$F`mql;l$2pQ>28w`B%T54S%m-PMod@1ACr?oSdd?e=e<<6qdIQDhb z!rAH_2f+-G>lQB>EP{h7ef5Cx*!y*o8!}A9KSx7(@{rflx!%uFQF94Z!ZZlX)*c@+ z>2+1|u=4dF2Etwj$Io;;Jx~s6f6B{iBET%kk`DP16za&l1q{1Go(SBBcDDz4)y`^! z_}-BU1;jb08>zTU2)m@0bPjRJr@0-3+jta8%}* zG8Aktg#uy3DQFo}E?aExL&+01Fk24rzFkkQia148kkFxRLbrwwqWW3K(D$9K`NR2a zh3`%%syaZL*;Vc?9RF8d2P`=MomgqI?rtIFOPq`Z@SL9yobBa3tB;OhuxcSnQ1_+p zd$kGO>RK4p2o{z8kA)&Nwel)0lJw&A+rfNfwIM10U;gWsH-;PJdKja&FR3w@^ z#e$dGw6OL}Zuy388lgakh5_xXRlbCm_0&)It1G!#2lp1eY?+SA$l$k7sCafSg3su` zrQip3&xM5iBCeVlxWHI4>*#IE$oKB+a?1-y3GG*lAEC#KbBl|Mv82&^+fV$Ylk(ng zwoa5pUhmvoH^A63BF>mFNk{3MXA`B-Moo=0ONmFcy?5?SrluZf%RaohTW=>Q4C~Sy z@GIjUE27oe_kD9<2#+*BF}*k-NIz4$2JRb}*SZBHq32j0hO2C~g}!Iy!#~=2n7XVR=<2n7#vU9G+iU;G zdCVx&`tIWTrlq5!rA0n%#$xst<0A#O{x483`O*|ku3cx58L^eIF=d$4xES7)3-1C! zH6iixIS+_xhU!QE_f~nIL6Y8bnHE&S0|nv5FL!kx_C;!Pp#F`rn^Ar-x4o?FEL6p< zEGaJxt$Mp_GqE%OHp5R4*teL2{^G4oZ$YrjdZa75w%g-1F$3{uJbPkFM^4BcLIHC71 zWMgQcn>T@C{3+6X@ja3hE6H!hM45Rlj(D^~5gq#M&g6P8IQG4BHD+OU|4m#W(}Od% zDsew|hJ8lX=N<7nq%XRRfO_lFQ9Ur~3?X;6hYUA}7QhRpYWqAXD~8asI7wX|#(h!+ zj($tw`@qxnhVj$vzfo;#!n)x7+nF|$A_)n!nne9es1WW_Xnkzvr=RXSa3i;Cx6ae1 zhSoFT(6jtH$6Ki3n5z5`bY=v}!4|til?zU<_Po<|`*)L}@dhN=u%zNG(=#s_(j{_f zMAY64T1X}0KyCJ8e7#4p+2xf-4DINYheIK6dai0+|wSqHz2q!>7fMPF$R(1u$A0~yLL(CaD@!3WS9BB>0EyGm>N%$GH@QMA z%DJ~|m_qek-%Wm+id(PHOoGo5mJ^TA3kft$1}D6GQ--kR+W!Eey?F7FF@gBg)T%(j zK2tS5e}V1wY*UEL*LPcm&JU%9`w^rttjyx_K(&n)n_Kmu%30-O2}0CnxWGR4r3y@jPJp zY%eyq`^8Fgkxb5MbjXWwh)wNX%#66S5v6pUBD3o&Rp|ifm9Ruo{TpV5fsZ;DOc!qc zy>{6Jl?ca?UWV<|zw5?ciExE*N~5Srt>pshiNhmXa#qUhM)U6u-#mkwr`;r3#w(yB zPqKQ6V*govTlEp@9HdQ2XHVuaa6cp&%S=P)>I+T}zKT6Ad~AO8)b)T1vr~+@Jg@WT zz+dG+s52G-5VixNr#0a)w>`&>*8O23k4HY|buj}=6)t?GG2VDB)xI-*^e3Sc*i;Vm zSH@dRtSC0CQxqlFz_hKI0$Pg3+mfL)Kuf@Mqa%;>?%6OaRnxtt7Eoz5LEkoLUQDyoFY*VQ4` zo$<{_jWQ_$_Lch|LYEX24Vx6H)*Hx6C9T`7k^lgZ3#eLs=H=y8If~lnRrosS>N~jm zztw__^%5T)ln!*_sR8(;|Yy(c0V^h87-|r6|ctCRGp-X3gaSBr$TXQ~cP^}YdT@}J6n?FaDTp?x#+e2wG4p*jl#(4xP<3j1$Wwrn4F8wVWBDC+_3sSUD>oh9XLW&@3SDF1gGlI{M(dT@1bZ(!+Gja=A{gHp_ku~FyUbQ}r| zQb6;Gf_IT&$6SlCrNhRBh7CIwGDW8l7eNY&kJW;IMuu;Uaju3*abQ-F=8erp9R~i2f-}+SXc{S% z>TQ%8G+`@Se+QySrBBP8_PU00ey#kIDk3YyR91q?*W$&*AyD}_3N&3^ed9EStgT?bxUKJS) zicKNqvp%O|BL=e~R6Z8FGhmu%D!Ce(=0z&#uUp-22A8jU-@aS+BQT3&c^4eQxvb`LFYt@B(uS~~ zrAG_Bk!0ZHrm=r{os_miK!L!^Cn*;d_yxol-GaCj=0A+lhor4G(%N7(`TMipT8^@U z?{e?OUN5YivhN&UC{D=nH}3ASwr;;XH>r^N?e=#y^f0RASh18!>3x7C2YAoK$Yy^O z(|kpuVP-}Gm@ z`Mh`}J}P`5#cNSVt1$=_15DGZIp1~Hk;k&1!`{5EF3Rh4OjCMiZH3zYt|vnM>a*8J zv7h=R{jqApn1V&x;t!3`QI5Wn`7SfK{auaI5#3Sc;8y#&=ENyy67@J_{#Xo00}zzo z;unK-r`I*XeV1V2jU7vi=4!gw9au3-Fn+JV?wb;Mpq8$Wya~VK=_y z8Nj^C(vn$-{Y_~z`G)6Rv!|XL8)StysZ9Cqn?qEnANP>SF!U#3w1R3L zQ^HqkFYCX#QoBCtr*#N2!SxtX_TfTDL2Lwj(iYF1d=mmztk zgQI<((I(G#3&X1MC%LHe*j(8F-36^iy9br`3=0H$IOLeTZEN_7-x`a4%fh3L@o1-* zsU}sYE@8Hmee~BO1Iy1x?xtwImDdw8djs4OlO#a}Lu;Q%lZDvCMCRrNS>3W=#7-dM zfmJbe@LfQ_GC&y~^2xW=1a8f9{xG z80bUNHsvz5WMSxujp3oAFp=LYsVA)N@3O{3CtrPkEGPXkP0vB^6Tl-9^q+``0p&+q z76X4_9&}3uRX%9{Is;iN^l6v!FlD#ax;zipnN^v^ZN3vH?u<)O)HEFLwY3BJsQqwo zE)~bC92|-je|BtE|8a8@<#2cQOQ$MMYN4C$_dqe_@l$pqT(kz`*bM=-7(W)!IEnwT z*M3%iY(Zm?a(j@VfEQ{tQ&WCyHz$UA{V$#N<&K+JehhsPb-D2KPoaq(^#$;vt?X>7 zk2(3PxG6YGFc$kuw^b)w+WiGKM*Jry)6UCid{2s-LxZ!?QsqxOLtTc(az$$k@`jiX z>KiB|Ddmrm5XJeC;CMcTH|ngMZB)lROagT$zQ9a7)8Xd1EL$lX`fL4GWHpyx!Y;RA1Rdf;#WG$KE=33Az5z z?L<=Dr2aI=1t&qWjbu}NLKIzK3FCF(z{fj!RcF+4NkdI4pVLPg+E$3b zCdcs;>e@ml5XQmA59o*a&({WxR&3BB;@Q|8s^rIi=`8q~Rzo2MG^Dx7F|=e4(GYsj z%TN+l-VLQS8h~E$vC{cn?9ogBz>^7~Fms&M0o>nhdqY^XtRQV~IPo(r_NwbAQ%`0v zP4rMy7PMuMPh2h*=u*~G)^Bw_mhr%E1#*SMF#gqN3rkHK;B;O1(lsfO^W z!0E>UIuvUz&bD|fBf$j+pcyF4TNIX-07}3Y)Fv%24?{NUqemSVrsju+PSq=2Z*ns> zN+auFCxHvvI(a1WcjuPFjW#VupMEfQqPq+VIt{Kjih=;I$M0i@3=3(Kh~IyyT%$6U z$;CaTjF-Ig{&`sk<9X&rykS656w`B>joyKob(aM+0VL}?w>+CatZ4}~KWSn?H1H2Z zfw$Aj)un9LdKL01#&Gq36i`(YT%i+T8s`9iz8RscE>ne!;{ekI9?pfVg>S-{$xY>2 zJAby}`Z^45&liU-+KRiE#}z>fJ_9VNhdR#dMu{tBC{-8k@K zL-dk12t&M`DY)J$Q*PCPCtS^43t_kfb)Cgp!=x*^u2X@P+gb%7Hk z<=*O@1~qyo{2~Y?adFfrIDJchWoio8jd3=_Gb`SeP}e`4XRk-BPth!I54sw~n__K@ z2N;#Fh%$-gDafQ089iEq>YieXQ5i$U*Vk1oo!qU_H<8<&Fnm&TPlV(owdu*5<4*4k z7``YmAqDi3t^gTW(adFtg=uZ57l28tI3Jy)e#4OYsTt<52&cv9#XKCA>Hc|#t$rysfHEc^Cqf( zLlW;fjxPQhg}pV7hfk`b$FMJ|BcW*Om8M7d6iyTuP7H`*T<>M+`jYN$T&a682iICy zi1OpY|FeSZ)X~z+%!SFGidq!j|IhU261&@QMtsK$6(>rdDB4vG=z%df;e^gqao4j# zwP{AYy{^SyH1IqD?%B@KZH8#QZ%wpbqF?hXjM0&OGl1)c%goFDymzQXirJfxHl-yz zxNl%gefnnASUUXdO5UXvGV!Q%(W@iF|_e&N{&CwRWy zB@ukGX=Y4`#KlWD14*lk${{Gd>uB=OG{upgADCm25+PV$75~i3^6AwpOKrCdV@R=J zw(g{6An{wnu!z&yn0@hw%6k90<|EV|WrD0u*zO}^eHe&-jSj*aJ(@=$?-u02(7~`j z7k{s>U9PU^<_zy*D?Um^j#SUCt=TssOVoibD~MxWRBO#|a;OwhbMIBxP-vC?HuBc0 zL;+=Ei%PlW5AD>d@%))}FM5jm(%py9mQN#P5KGNPjk^vDVNaG*&+c3(8*dq4$8R_g zPR0-m`Kd!XEK7y{Ny@HCbxElrQmP|5=)$l;(0 z0fDzDcCV2|0RORz0m7dleCTBOi60<;&4D({h0yzd(#H|#p74&}fH1h~c^mTvMT&o> z>Fy>Eu5_^W-PjrhR(|Z@=U>4*V2wM9zwa2+Qk^KlFR0D`O%2-Wz%r0ZmXCo)+i<%l z4{AJ=qd7D^PFYI_)gZ}MYYe%d+|AI5$r^X)$&=k>n+kSJre=Eb_v6coS0-8h0qIO?1i7GP3Oyy)6ADejh}$QpVVcZUaV0O3`6Ll}$TkQSJpO<9_*xQO z*LtT_Q&;4?4am$ z`jLS|RwxfGx+U%pkznBby+eEWyr<06S&tVnfHT2i6#=%$faAYzz2kXsc4j*~yA#g3 zsG1O{5%E(h1>CWh6EOI-!>&SydcHXR;duFQ4&&k0&u@%=b|_)fLzUbSo_n1==S!)) zmt#mVSNO?uoJ#f7!f?4RUuBQu#f@Oi&1QPVj0A9rs6ra1yC?p#g$srivno*8RzU~> zF-|LEtrMLQ%%urVNh@NCO*@H*c6mnwD0{(31bhvuMP_iqAT3mV)Nq)w$@v8oI_UB> zOS{T)|G&!=eeBnX0}LO_n+I??7~~BZ&(U+_4mxtsTe^}8p8C=k#`Y*YF_^QbuA%l3iCEQnmwfbB^e6r4;Xpt%>?3lt;PP);i2Ttmc3}*;Z&KBy zM>uZ*5LLTk8XaJIV>p}V@3`N@A+|L4ez<38Ka zbg6kX#(nQc5+sS;x@at@9Qk{{)HlJc1d@`U3?s2I>aXO%e>M{-2s-QK!8=!liDLSH zzTp0G5+)VZLwWB}!|Yf7jqy+1qYa)J+Mget{Y@dSg*+)WjGDI&b;z&#OAMswOU+O3 zwUXnsT{GlQO-Nt=>RJ}wu2lAV3)g8lP+>i`4!>*KxYdwZf1&|=?`sC{RDRj68+$uM zxL6tb;PtU{oi=DTG<2$yS2hX2uSi?U)N*YJ1So;`hsBrrC zCp^&TcUX}gRx$(GN8i94ImunH^&O6VbIA>~$pAln9wWeo`8dsW_)?=T)&lFEn1_*^ zITo__{`Hu|r!QUi4sc$OeBZlCgM88~$lM`SzR;yZ1pZFSN=h6(;N^_ty6MLb-s=|r zBpCf*9Xj}0)&}x;pf%7ZB2ZllQz3VY&E5)VV3O-d z^U^(u&Q6vZol#<=jtc)Hm{vb66?JU$YHecgzxR!T5igagjVLDr6smt6GRkjWVKuVT zc)<5i9AFBk^YeCxDx`B2i}WwRlLx$SB6aTR#13N*>I|A3`AKjHITSN256 zzNKEujDTZ9YwH40qi!aM*YD7AeM_9%H1`kVY1{S&)jtT3oprDI@-^GyzjPOf$@P5k zfArR+_MefJNQl>1nJa?MO;<C8K^XVa~7g_cTPYLgBG4I$Z*Vbv>|f(sS)q zk!gQFTXW@gMFC6=wX3)rrq~2<;HA#9E8JnzMn`iC);qK?@juZBdQOK7$xqp2V1ZQGbcQCEm-}w9l)Tw zuGlVi{9EKBa(z9*wA-NQ>e%O%r6KSba0QJvIJo?AY*H}iKr4TUH4xNY&&9&Es@%me znG)zBEDPoIV5nqiY%Tr5#-Yr@hh+Z9k6h?18-px<^nPVi>}|TvbqsPH)-prD`lFV9 z(?*2vw{Hx8t}ZM9xL>aRKh+HlP{Sa*E*NnM{J@tl(x$grGR@h*fqOxZqyK&_!-;_e zzT76STK;W5u*?sTRT#o>l^xZw>1tYh@*`@@@_E1cvGog=ug*kY3*Gk?B!xiD z)P`&d3neif=}x%5RB^E7hk5%nqfgT9QDCGMPHhB9&EUMDhTHSE5>jQK33z=~jCgg9 zL4hVW9~D&lGeA);X!i#bNGvS#)*E2~5OlCQZvj3zjjLc?RK=N$iM@cxe6`buC=cLm zb@5*|oNMW&Ga;5Ouk^4VkCD%o(=ZF%Vg0_q2Nue7-Ib@JFg(mhCv)pXUUdh*o)p`S zpQHc`3xx;9so~xVqR6oQ`q<0Ih$WVPjH9>qYNRLP&VuQC-J-AEcX3=O|5}iu03r+?5xX+^4}|ONr`BJy^LeI6DE4jwWROY zuxwUnYL&wlJ441Yy`L(EQCdcA%JY`At34J7(8}Lpf;m|j4RWEU*)z&sOl&@K&}PMK z>D;EXJj>Mmlr?h30{CKsX|Z9Jo(u4`;ZU4HWm}zm#Hkzm7e&DJBV6va$Jh17?PjIh z<#hBEgHsJTkj)2NN?>V^Z+(hx&Mz1?9oc3PnRlAp;tb)34niEW-RV8lvmsIZ-q3dh z@Ffz!+wSDd#roQ=3cg~DyTw$?x`ENl>F!Y_1sDha0``_ycm#h7lYHPZDIojgJY4ui zygmSd;c&kily8$ka?!+IKzw}J^#`{zOn6&~S+rg#p55zA<~^?0g#+FCt8r21`qZBC zWLn|)oaE&1&!wcsw6M>GeNUT>Ar%mvQ80t($z4Js)#)c`U0tZW+IpudiO&Q2xFi3b z3J{hSZv$vS^iC4Y`h0;$7T9Dmpdu8G9oHYkX4dvj(e|!+mXK6`*HB?`F24m^NoLWW zej2eR*Q+**RJ=wI35(s!of<)KsR?y`^wf8Ue+5mIo|aZ#1&!(?TI)8!3c~O~5jgm% z>)N*^<0=rHQzS`!T-3jUm~SkrHR|NKXw?7=$6KKsUvUt-qPAS!grT^nU+RNC~oKXDUa;79~|` zGc50WIoAG($Uq!Znr_ejcKA++p9{z^yLqhF8ut3KSbcPjC40IbZf4P15@+mTZv zM(H4TyTR;ae1L;PWP}nb2ARx>vSLqWfP&S4zqo(7m?Lta|CvL;RvzGre!+v!ZY%h; z6+PG4Sz0wMO!a+!N4rQYPinj4fpgXTZ_j5Q-`q&<2&KC*d&Jqp5jN(Qn}s5x?#&pd zT4Oi62Oq|Al40b_Zx}saJjhJt@s(lJ9@w!CDIcP6Xj{1F6V`b}x+Av{dZElI=M5=b?K1W7h$k4$q3Y-K+MQK~3? zZ!(WVaBdYOG93tV%)xKP1ZOtAd4^QeuWUN!mO`+)I3us3%FDY;YZIbs zxK?M}Pt}Mv?W!aDla0x`n$nkNolS=LHy<(mitzvh(B*xgy;>24qcVWVonR|2uQr1t zuJzGd5{GM4Pwk5Da-e672C0-%hS&xAN&7Q}NwyiY zRgs6He<;;iK}P8(kXcQ7YNN=113kUnx8J%mt|=SDx%E279mWr~c}oa58kh$mop9Lo z_5FY=wk5?iS`I1c{}i0l*gw|`|I^_|RX)`nl)#@xaE_(FPz~&_3(Whh5~T(2Cd9QQ zuil82Xa+<{EbMIV8oc?8tNhkF(AMVNv(yV&H#wSqppHT~)r19DKw+=+0%6GLbJIal z9&|n?lP10n5eNl}q%cj-oOBPA$6!EI)CaEp+XMo)HW`_hX?;XC0^7(}2M!N;z)^7@ zFV)oe`g^$k4` z_I68@r$M~S(aNOsbrp!>JTu1 zLgU#N1t(n6WbG3Hd_>Oa;bbWF(T9YC*=s9EnR~75ilqSkZqlzGE;5x4&dP^QfgWs8 zdOW5^Z|!r{!G@h9$m0ipFU!`=*emfu(bKMX^e>6BKv&B7rppTA2$b$%@HCT`K5i~i zlF%uN+xdi6KgAyRwDIW0RHK8p&+)d5Sw!;cBJd#HO|3@PqfI_k$ zXlg9ziLj_e)xu;QB0mqg{9YkA>LzG5?beEvVS}~3%9)_f+iXMkqplh#J~RUc?w|PF zq*r$%fG9`mjk5bhNJx8&eWOSXG9_f8a2S4KI_J&OnZ3m#dShCC{y+;Ty7#v$!8eVm zGGTqC--{OkP9{0O+DV#GVBCB7P0?ltD+j98p*t^AS`9Kt(RKM7mj4$&|H&pM%jPV- zcZ)QMWvT(XejK^>L*bueRny+=%4O;AL^43}RvA{fJFmUAz<|DCiy`(~x&9|!w6Zi7 zivO|{$;y>pb93Zgh0D<`(oZ|P(QjFRvl0RydNf zC#uxEdaDbo8)$+~mJ$-k#~EcLn`q^OjQEyhcL|CmXM}pIWr8zAZqczzMMH{9mqt$MAEC*^zk-49b+h|Ff5$PTtjnWBMP?ZFscv?W5LQK)L8qd;$EV9Qgwd+0wZU z-S((Gli@vPiXX2piGaNoLg2GiuZpY(&4WxzXO}<1P$&G#)emEnw6M0*hk;r+vlV4V zxR;W3_!tY_CWliH^_LO>hL=IBz|)BH!`@XE_YS_2a{iyeZ>j;Wr}kBUoF+w!E6;2SAZu+#}7qk5U=0j{Uwc+y8Gr0%+T|MAV+KnMx~ zMLM119cE0V9!cQGRpcmw&PIAVbYjO9O((tIxAZmNq6zIuteE8Ek>F{1ia|nlOueC( zKuJda);BK~E;Viy#uBH})%Ur+ll^=>U#2d-;pER3^3^xLDz&{V_-pWjk3{HV7f)Ha z6Dy7$4`RcHi5+;Xh(^4VKzkz7;rZ^+Tc^PD#H3oKu@Lz|O))YB7XKulynp+^!HNe} zQqyk?_B_mkLP+Sclk;gGylsMoz13g_>xS#C>Eea*lgpCFh>6z5dd!t_M=bPk(t==A zVCXqTP85_2&(A?+~DMq5tZa&DPKOz^t z8r5A6=m#FBmH26#!$RAwg8z9okH0VLuRj?dKg8+3gGit%HjDP*bYLk#`XwIlcC~%L zSHBeX)A{C^&;YKG5Tx0e=F1(`+8>J$2v}~+m zEyCb6l%)?TuzEf~-(@{{AqU=f?p|_Jc82LX9e(LErNP~Z+Z?5OKjH+prs8@hxXlCm zuKx9Z%?{faW#b0ASVV-3{bP_65UBWDi*WDSVAt z%N4f570FWbZ>}fY8L|iT)NxwMI|wNF4)Bl%jXxx2x})=)D+lPx1NPc(|Fe>`aOPkA z#CqzlvCiX!yWVy&kMS&wVqz}ul@`k_?fL>b;i$biSV2!jbiK`_Yg!9UuR<1dCA0rg`Nb)-^PT|fPl36(mfi3 z?Yps)T;Al;5d6vqeC;>>+aGrfUl$qtaCT9qXDk`LKsF=?b;_y1pDyWo$^Iu*09}`$rmo?(|NJ=9siSsr*Nk2l}#r4XvgR}O|377YEpb(Dl&lB_pS!82r z(nmsNQByGd;EboWZE|1L$l{%y>Jbd#j;qKP7j>0uLlYNz`~qy##gISp< ze}6aR^4TvS8>F%=1srIrW04Ge_=WA_*|Lmm93~5L$@1v#{KHpB4%8^K-{>JHsd$g< zMZxVczSCUZ`v_-0|Kh3X;ICz$#qr8yb{yyd`A9~cy^9yO!Gvf6*({E*!0V&@_V-C= zjI`j)LgM%{eMnT5Y3Tam(6vCWuHj3-vbsYTZOCxMq7^u9{z%&Q zaLL>7&)QGLfM*g5o`V^v^OSbk@_Ok{^w{1#DL-Hjr5pq1^p}e3ZQaIc$9D&fA+;*+ zVMh}62XEaD2+c1`Te-wB@VIRFNpd(h92dy}E`CG;KM4RjHh&WGflZ%a4MIBEOOl?A z*?L?G3W8sxhxsOA2;q6cpMHAy*1c+fem42Wg!7-x>F53G)ScuXkqb)@3k(ib!`$~~xUi{9?tH*Z;If+H7(p87%WLvDB2y)cWwkK<{(~|RK*VH6c z>>%igl0vvlWPU>?YNnL;*}nvQ?v`+vawZZj#C>9(2#K;9l0LdV58o@2<2OwMv)jjP zySs^?ktu>+3=ABcGwFu*m`i?zRatH{7)J7FZmH9#fhsNmX%M*gUI1ZbPd}aFF4({X zEQk~#lll!~Y&9|RYeG{<+v#}1hwE0?H>sG*>BJ^PMJ8kj8t9p&Zp5<<7Y9C+$;{ zRb);g|BXFq*zrGKcKmsR5-|m*xj!zKO6=-*6XJ3>PGpTjZ8X>(igBT&=`Y_gVACBc zf2l%N?!OFfqT%?0?C$nbq-lKElOlEQT7;{9>KIPKd#%e0{;TFw*6%6BHayl#)T7Fg zz~%Tn7H8LWvPDkQt%5R9+7~p}G$G8$9GYZ5s+nqN8gIhyw8fy_y)k(%iN_dGA~v06 zh=_nNphvJvPx)Z?*nk%BWzq`?x!RlVY@Kd2&NvI^aByth&^mrjB_)N%0U_66T&O!R zFhUC7ZWQet+^qNCp_{xe%Y9xBzOP%C?V|(gy00Wr*7J5hkiQ=@gsJ3w{^hgFQy{GV zEbAgFTc-?M20!A%qo{V%kiAP;ksNpheiS!9{pK$ui+jqnL~8yC&?Uw_o(`-`+Upl682=7h2iqLz>tn(hCR zaTSLm*B3%OXqYN|-QwlAYVNOVPJjh)sI1}I_p#zdqcd>9WUxT_na@&af_nIC7cE}Y zz)93*BbF>L=Fpf4CWX@yq4?a(+q-5KDWvvM)+8S4hg5$qx#Ah{Sw7|h2ys;vVs*ap z&nxEaGic-cA#OO~StR9#@-?d4jG(4qT-+5`Ovo>k0lCj4Yy9K>VVOYH%_;fZboH6# zQx7kj%f9OHBj2rs?4w!W8-kimd2V5=Mo)K=|H+uQa)>V-$8b>oql zTQcE!%IRCIS-9pzWU4$sygn?2a&eilGrmVq@XX-dA9=v`M@8NKckb7x)|!w9_$viD z#jfY^?1tW+p2EiQ!lnc|q%(^}Zr(()C#*|<&pg>GtHmIZdE#*|QWie)iq&5SP?#l- z73Q2}3fZMkptNGQh#{KbY122RDIKCgN~P>22@|)Hcd49+5QeE;?h2_0%8Q|J(cr>5 z9?hTO-SR+DcJq6Idz+v^N%+Oki#PudMOPga)z?L7>5`$l842l5iJ75?8A?DwQCdQ} z;YUh`G$;%)14wtbbPgfi(gIRaAK%~at##kJ@1C>nK6{^it^$7VT?Auqe%I59*Jq(u zfu>?3bxJbr4sXt}EN(fp)gE9DWxId`$V&z$Tjwz28Y}2UuJtKQiLojit*xFba%S0n z5tHa0c;WcB)upxZpH2dag+2L8V5w z4*rj*luiU8x?4R ziNQJxc$rf<;Sa6OEeHI)?qx7cQ5qQ}OIz6K$kj15STfV-8fd8Y-)sG6#r=l02mV3D za^d^#R-G2JWJmK?%Qorh>5aTU@~;}cz=o3S2}SqN?OwQLL%nr+dS%x^*0pc(ti|sf zd|P~+x;|`rPi4F-E`-l@@VDaXYO6hy;9Vc~xadAyr_Qnra6V}=$NRz^ME!PuycdXv zlDrNaQ8LKjhC#yuk%`gO2AJ_O{_Wqx*#b^Km6VoVxiYkj@R%N-+6M;fZ5rz#{tP$b zAfopW`}+h~JVOHv{XNf`RlbWjr`7%(UkRQqWvb?7E-3XWLHg(!(CHhji~D*^S5zlE zg~uHX_@%c#e0=No*7|LBnto21C9D$UxUMI~NJ{+QJ3GU(zp;ritihPjy9^%PdRO~p zM=mZ$dq+pEi;Je6ccf7n4ML(anO%R&9uySQd)7+qC=-kc0R9eN%f zG*!9^nW;+`*(z0yQ0U0NTUjN?g7vAw-vVY1G=fJFV#AymvXN=gY zFg`=W3Q-NR5E^8ZJj7@qk(Ei)VxN_z9tBaE;Gxzi{*2NJmXPRU`pfHwM@bNDw|@r@P{`^Cv7M3gOLVPH6U(m2_uVW4td#@d)eQ;zHCC^n_fBNf zi5z)tuYDgub#>^aR_h2Ztv{8EM~#^^l9G~XIWq2qyNnJCZljf=A0xzD+K6{P%xeyR zkiv>Mw6;!xG>)t+n;%R3&a^YVdN7k}bt-Lx8~a>rOcwCPdjyW+-v46Zm#A+Tk0kxA zcl77^^4OtUrJ`Y;ZODqcp@qeMo@dHse6z54Dg+ffu(&4G9oavEFP!af(JUksR*y~1(iYqMpNU0%O|qSd)uQztd7F+Gwp}!3^!4HT#Suv z(1^A}nDsWn^-G=Nh-AngDaI6~T+7}Q=gmENZEbC4U4tB)d-xw$x0Yn5HG+0x51oEo zI_Z#X3gij9$r}E7!dt%Nbhak8=lYceS?&ttGU<)p%ToG!4^+bpDg+cUdE~K}Fc*`Hym2`)fMY}_3aHcc}rd?C8^`=s5UrrZZ zSwDDUdQW4FMI-c4Lv!CPz!T9|--$|Arw*wZ5&g{Ub~##Cd$@4(iVGf7toHZeZ&XY0 z<2~itA4YrvjzpECSoR75>;IfSAXdHUghKRZbq-%m)C6FR-SrIS*yDj z{qm_D9-2B9uFyEz9r529>NVS9N$icn{y{5k{BbwOqAxj`W3sH-;={ez&s?cwiGMdU zk}=L95?+EHhJLt-yvTq4TUdl(Nl$!SJVWr?N3p@-9Mvzqr-EDu81r=xrh#wV-B)=d zJEOm?V&kpW>}@g)#2f9nUR-d+8z41TXVShY{;D@L*n~R4dyHJC`?U1cNtv}&lW)U~wXq~E@xej(MU?xrj2wejrBh#y^Lr~M4_!SXp9e|r-K#0}=6)Bo zk|@4s*kBsO{JS+9$84R&5_bq$4uYE}Yo@TPn%Pm3jX+1PDiv=d{c*&Ig-@7NeHSj0~-v(GkwC zV-Y9kt>d??BH5csmfmdB*|>t#;$LsJ@a8!~4~n-!|8%I^01HhG*pRawH@3G~OF7hi z#4t;0w2jPY@sx_TySVGS9JKy!;Y>q#rB3R{`*IVFd-tkyvNXKb#1k&!ke>Cp;dkTqRxIqFvR`Zf?mEwOBP~ z$7AM~ub4+@41c;h7zwhpP+4{8-Td$?%PsrthoAXyPrR~DVSEoP)K7I-;{O%@n(ai0 z2OZIie7Mf4;m`qIS?;jE?UFe5i0xsv=CPlGq&${yuj zrki>&^g_F+2=WfMZEtc?LK%p5BOni(o{E&&4}ciFDW=^2z;w|Uwz2&6%fpU6ziXXG zDi~GA*68H&``$m$wkioBgHha;84UwS2kq51npUEIx|60!G67l4G&42chCWw=o3L|v z29R?C&wCoJkTwj=I3n)`wL&P2egY_~9Q3N$CV*O#mtLJ%i6ETJPL8L-fMSwr;+@)B ze-x(`&X0`Wj<$P8Pwh;$wtbQqNpD|vf7-_k%+WL*#hSxSw2ygKwpx)`x?Wy zefEvUUz_jnMau9tp#3Fw3YCwZZr3U~Ka*HipT|;<{KyTUG|c#2mGO~IM2~*QZ;p+X zz(2Y~j50yOaho64vn-A`zQ2;Rv)kW)j0m-97ol{otE+SGAt5n%f;j^!r~<+=&xE1v zugl-E-_Lho{B3pacpD*fIq}tKww1VBR#3!=Q^h>4YIgS#lx4>^FDQ%T~`{Tu;?Y?1Wn%@_S%; zRJ483E#l4(huM)8lM(_a$AMAsKE(k_~8mTMQjG6+ouAgK-W1&g6 zF@x31b~W=-nmBsdar6h?1oF$y^9@)79xZ6QhMuvwm%?^A=1Ra;izs?hS&E;|GUPAn zo?IVDNZbdo`T3c1h2|`gG&VoV?QI+!vSUX7%^N9tS^Y7a=#7to;n7L-*1I&G84(Br zZCv+n1x^OkQ5?@ou@M_RmwIAN+jhVvvi%~@EdKa&81huh{x5_r?Fya@T=H{@*e}6G zb_1Y=(#T&>B+O?Q{q;?(kl{|D$?wZs&%5B`W2O`S(R?+b3YMFXG&6-dgqGgY$RF&e z{-vDP74;Tg?zSTAfITIL@63VIUrFtI1fSZT%F+}x(W@wIo zh7KEa7uMeP{OFS@VSV{aR>iuXNK7eo+M`>e@>K1xE_{8he=|H_yWHLZCf!wfZi-6TX}Q(5s4_|Lh1r7KTh)5b#8k{4%$%}D5}$^l*(Mlj~iX0 zsG{n)9)8M)0Vpj{_`?`+CkzE_zA_$&whQh5@-7HfFSPipUk~p7sV#(C9kq95gZeBp z3P{DE!b6bi!$V-bJdJk$E=APJJCzLde}XUrpGk9MGaa8&8RxZ80fR0}yku-%u$`r( zXr(>>`L-cMP}zDz4m;M{H+GPshl0d&X|-}PaXRDNy@Z03ymMfECTCVqjbvBTIr6OE zX@=fi9oD3~{4w}nczC#JOJ9BI(FaEp&AsOdro4~rGCKo2#8Q%7dDqVTug2fFg`dZKbYHhMXx1UHAUFUgDF73OfX9}Dgh{_AiHBbs<;!pY zEX*;XM@(dMu;=5S%`0OL`FNh{HZ5K4nvXu1FW<1G{&@5zLsGJo7s)(jNN#jviwLfW zRg}iCdG#R6B{=DLq>(uTd4I1{Idn7+*j1_cvjUP+v_y z3OPR+TNlRYQxBLRiITbag?%A4w1CC(cfbQv!mSwaRdY=kGqG{RLw$r39>e9v#`kY` z2d9)4$;-h;_dKR~Oebf`L=aUz#|f~)JN{OMMH=HPDMHyaI7Gsvn2~Qd!iRl`X-o-# z%7=G^#~083*)PVXJfQRX^IsrbMbfz;}o@6LJ# z!35fc)Zd15cxpYUu=a&|VX%ZOQG8{7uHv3P2HYqSc3dU2IbZ+5V@9|L zcFJc?Vbma9;`A=RTO@8=?n-KIgMcr>u6#*77@R24k~;yQ-NxaVj%s5JZrd#v`@&M;c|sX&>;`s zvp|3tleb1@I`;}7cQNBWu((eDMGF6)_escn*vweSr-A-e-7d)a^+;pDW1yz*e znE8qh#HEB*&D^hnWD~Y_6o!5OK6cz_k`0;B*8pGK37qY_yNtBK%$l23m;H0UP7lWT z#l_c~ymsY40)0>_+|}~=(Hy_)Ct$-?_I;5wH!hM~ zBlcV7lLCMoz7V0H@Lxk`DNX!KXig$0-zP2lR1k>`@FJh&rVA{7ny_zbi!h}{PQ1#> zx($&kF^4)MqJbB3Ma8tqYaNlnB3RnEpQ#Wi%dWLxs; zk459&!0bNF@)|TyhAr4B5$Ij@wx;!zRFZMANhLbu5YLQV(vg#Pxug?tdq8<;=}+0M zWC!hjI;D$oXArt;rhMa@=2qLA;O+{0QLfywy=$zPr~g^NLJ-vV?7e_e14pRKg-UNx$vz3# zdILf%_>Zp7#r}!{0NMXqwSpJ>Ez$rJm0)-TE(DPBYhx6E&I!f4=2Z=#Zq zf5}ssG*WWbae&eZoHq?o8>+mW4Or|1j9_b8Avr!n|L%s;8cdemSS;k-Poxxl_x!dZ z^zi$tS%WtcI`?28BI_kY?S1+d4)mK1(qMOvLTRM=^fpObze&eqFLr)7A~t zRj34^e2>YUy%?0P zvASIp*{@bM#G5U6@!#&^Zn1T7at+l^76g3ZMo~UxkJ+Q9gc=gxUb6 z{I!2gKtZj|)Bi3Izulb@Q36$+nM1|3CyK-6=6|pd2cF7_AOr7R-E1jKLk>J>*EVAo zmWm_v4zEW?NtPAx;u$Br2a8=bVgCo#KyhtCEUa9lS&jf4CiE&?Pz6fy0*P@{ ze^_C~qNfcCe~CB0Jq$tbf|=i1l%N0llcxI%Rznyvp^^jn%NUVGp?Wz$GzG!+~V1R$1~ zp@f>B=<;9VATufR3E-ffuo1Q|Fi0|*YU4;bka8(+Ni^)c6S@4K#s!w}`JeApkrG%LCsBJauHreEX0J`mnP%*T9GDUj^ z#%&jJy7ZI;ZGW036V^ja8Z@i#c0za9xZz9eaH+UFr3CP{kY_>>{b9#)Wh~5W$x;@X zYyG4doJ;j9-2w6M2iDo-b2{9W(!Tahgj2C z(dZ&g^Yomt>S+J9Myl(^(rR2IULm0cu)AKPA}2frRF_NV62LlWIPi=V>G`2G_VvMm zvr^UdZh2fHg`{E8cVbjK`)rZV%>3@@j-7oXj8*N%>6jKD(U1odYyOtnI`ChLm624>YN){naxBkVnH6>zsOniP%<|B z`YQfswOnjwu_Huvr$-^L_*c5x?a0A7ZY0dMHwm?T(S6FN0s$8Gk!XhrR#*mi_TiEC z4@I=j8zl@mFilE0G%50ZRflX>?d1OGCIhZ8SV7kpi^Ua<6=ji1mbl8WJ&nfdFEjp- zXDZvTfbQfZiKu7>7hoSl|B(lDn@M>BrpuA~9oc$k$eN15Zv#}**E7H@{u!oVas*3< z<&TLZ4c!6}J}cKON&D!8It@^rz|@w+=6;CsBFLJbx{CVlh!y_9eY-s3Jg`|N08+G|oFqcd8Ea1T zgn;0E(8{_tQX;d!uMCi|({g%T{Vdi%cGe}*8lW@ZAt9VR2yL9QY?!*?NZ)1 z;w0dIR=g}KP?y*@#Ggkc@K0!8L4^y}s5PLtE~Mn*02YyG#1MmCk!gvtGSIAs0~F>K zQB*{)^Ec3N<3WsHxWW{XkB*dhS`^xPMP5p*G6kbdjNa$LMt&90u3PkS1Yacm{8fWc zVNWgMxI>eh;E4(N(n!Sf3sUSejuHtW`A16 z3Tkba0}wY(NuSNQu(V;y`Np#-Cu+c-+vPqS&zVL9hVwS6yEbL@5p2Q6Qp*nsyj*t1 z#i5nM$Q)sya_K+brY1JhCyFMRqn(1B}U#da&%@yX2mi?>z|fC ziNcjoED2=ipk&KX*b;_U3`ouGa)moiFK7AgsQ=UPlF8j-gHkRZ5$qds4eL!0LEvX; zEnqbB0!TbdC${i|LDB8zi(Ii(R4iLhg5(QyE69W{a*-hwtJncSZ>(=ZER4i}zr#cJ zZhV-5DK9qu*ra0pN_n4N7_WsO%-|SD*fCk_P$K(-U|sJSK^HpGPo&+`1B#2cQ=I5s zLskDKiU*0~!qLILt>h>taDv?gYijis_#(g2rwzh`(l-5vOy5}@~SNlF;$fP76 z>hsF%CJYQeK$Q$SWBe>DSTVsy0LQ454a$F9T78@%H2Q%Gg6;E4gsi{Va$RU{;y?!z z{~3oz$^~X)XY?kXv59y@vUQ=7N6JgmuL|sZIgv50rWahtC;PXi-VdF=q%F4w$_A%c za>}R&N~n7cKopdEJ-k7~@W!vHvGJ4)R~%5Nnu);D?la&WxOYvDvnK@o?8ViPP8|vl`B30C)rl#f#&En%npV95s zmjPYg37ZFt%4g(d`x`bmiNR3)3yHn|t6@-D|*5>fzyAE1x?Y@?D*vIFA9p~Gzv9S!2 z)F=M3P1Fq)zC@Zy zboP1rG2t8uZwb=QuAc(bL{NtCwA;J8*EH%EGHYWuimb(DD_^2H=uVCPf_*%OHLI@y zhhJy|8apy}$_Dszo%{+`jMeGfRj2Sz_*jvhkIN%>S*0eYBHo4Kfr3eW%5e)KS(%zSYoY+mD)%puW=(Ws{Eu#P7A9TOk4 zVcN$B@s@@sRmvl_9$^LonlZIYvjV1JN2;iJLqiXivGK8rGP%dy^93%!VjJVPPmju! zY*jHvtAdOPdob~brI1$6S)9z$d>`VY2OD&F2i%!~LopP33wc9)EcW6>wl97st;1nJ*81q6~Fli4*wR2iu5+mW1!nb}I z>E742&4W4NvPztra#n0lVp2rDu#mh{2JFvqYdFKMDvC4=X6?rlb9sMhRK1XTvyggt zcX(KEB4Jywtd^`IT(Hs@oC%pq0G6?(Dj_o8PqMVu31HQX*Y;IXXWIfp(6~=UFQ)`xH+D4*oDvG%PPC&f)?ZjxHY+wYU8kk9FjGGBz%rbTvR3kKRevE%I(t~x56i%3-wT-R8if@JiBM$?W9+76R>n|S6r^l&bZ_w>i_6->)4=2A0%tC zUc68O;$xhgRC_Y0iAXMDdeYwO$4=q@C-tOatQ!GaTW12p&)?G`?aH%Z1C_}cVrb53 zShl!+pt+kHGqM?EK+z|bN%$mP*M~4gVj$SF=-J`RPENMILfxP`bjn%5m`hp-!YbvA z0=1J~gt}l?wuVXv!IV4lKz&yasEpeZLj!$p*#yYXX_(*-WDtzMzW0-_yd7m(46IDO z?N3+A1vV$T#nSyZ7}ptMqbc8H1Wg zq$dIjJ%&CMDW7~pM#n~}+IC-WCiC%pHCa%Qyo5Ry@d)u1+VPn{tDdp_NWC^nf-l=$ zX2*_OO2KK>NR+-IH&WV^wcWSiiH1duq4IpeZTD?+B}vc0YDuVqo;j6ousdx5@tsDt^n6cr?H#d;D4bvi?ziDJD5icbcr8 zaHk+?oWgQ44}!9%j7T>bPyhYVRYQ!BBZpZBQE+e{M4R3xf;Yu ziR6qZL!zQ!kN~oL#nP+Lr+qhej|BI{Qc>-;x{mRURy8C?GX>SC0{vN?ZGX=$NP@(T z>*-&c`LzY@xrYWMyzYM4(x#b1qq~r_q}(Q}I+-_k=uoDlR}R$KFO@p!+7c6WyKujo zp{{5>JFQ)Ch|BBy45tL+<_}%JvrbC-vm^B7Ra+*aNyB$H4`u_nqAZe%oljwmLu#oj z^!+Jxjh-cQsXq~7M_MptOb0k4;n353(JQ+zUQ)& zE?feB&%s=?GG864WK36#P-Eb)2i3cE0@2gMQp=4kT_WNuv7 zZv|M)^bGxbkb-smptW=Xt$Aw#K~5hV@crz(`FDgvZ1ekh^4# z^t}IG4{c91$!=~o{ibdAtJ8D&%tvCRuNDpge$hgqr2Q_aqaXGUdE61mW-)}FtDc6q zs6pkkP^9A9CgKDX`_Vu<6S<)$Ly;8Ht0V4KJYh%%VFNT8|1<%6^O*0>3%VdRWEvY9 zZyl2_N;`Y~fq00ZuuXT?m>!y==X}A9RA->3d80tfM=Qbb_m!uh&w|c3GlZTgV}9ie zs-eFZ=EqsW+?%2swRXBOKGA9Z%B;K<^^LYZGfU~9bfM3NDSPAAFaKe~Q^mMnUTgNM zt!aL$;O@M=>6-y;56L^bd*bP-8Stv$h;Y~2ylev^=j1yziFp`{OsrH=IOb;ekWjGs>udVv+r28t7G1!bGPk%L8uCx zfu$GQeMAr%+%@orrKP2f6G@#alRFR%e}l{b!{+H;$UY~zv>D<{fITsx;RKujny0N- z2oFt(^$(S7rg8bkGV--e?d;jnaY55<)6!EH&+_cbYTLUIy`wgGf@Z`zbjzF>X-sDU z5I+3DR9?Ox9Rv$&&X<|C5g)~;rc_Z^A6nc*8UnWUaLLEiEqK2yig%SxL zSnqlWS+u+r-$U=kN=aFe>f)MuLo+Xoj0gy(3&fm1xo1|Gj?%v@`31QgGcaUE>O5Uc zm=qlbc3yNq2RJiLa_BG(x)R{rUVqrrb`1~m?OfHQEJ?&MJH!n zu!{=z)O&vpv~KnOL?X%p)!|e3XCM7ELnvL_HaqIU0#)(G;_LpYrgB>|A?Nn`=bIML zh3djB2Q-%d;TZ^5m)K`Ia6z_Xu69Z+Zgs(2g7!m?#~0abwqggFC}Ey_Zedm*EvhQQ zthXov+4{J>o&LtBav08H;xVxV`!1+ChE_#XPqMeG$)$lUqa}ZOM1;8KYw*j7N7h=; zS1rR!hqs$|BJ{~0hJ!M$O2v72)X8T2t`(kyHsc0@iZ6adcvAYOVfJV)Le{ zM15U!E0oEiD~w1Jn$P4yNMFh!boJL3N0vk4nz<6TdUbzFMp*h1SxJ^Lz;Hv3WG!)O zHOhVq&m~OQH(I?T`Y$lg5dn=lyp`mFF5m6cM67aC-dequSwkAvBO#bFKThL6y@SE^ zUg^7x;V^_TT}`wrw&v_ywh#!ZcRf3K;hQ|!vQ(yedWn6~_#26#wN~+fYZQRRNL7H0 zr(9cBY_55{=%-=GbMm_o_d;*1DlU6nk3WIU`}_NdH~v{zbD7H>=Y0^0R<`aZhoA%I z1|w~t^Y_Zu`{a`@mKmOoSGkbvmC(6|m#7CE(8b&a`wHp0_O@kU8W}mV6Bir0K1Nmf z*C6I0C3bG^i1pts$y60$-{9bHF6yKhJx&W}NB(#PwOr0kY`7U!f<_g0DdV#Q^$_~0 zYSb@%YsK=ShdQD_7d>6UkEamB6>?r`UI8{;KxiVvIF4u#L|H7YKTPI%K@=GguS*yR zPLuti3j+)i8zDPxD8+xpeG%XwjzO&AoO-h|^TlT*{++AerLo>N;S|gY9Fh zk9J>$3H--5_P~q0BPftQUlN&Xw!>-Yo>v^Q6?}!} z>*`es3BgQiOd3F*;!S{V-yVA`-iV33sczI!>E{9$R;;W56v?wEs^Z&?PkD#fo{s8go$WVLnDAvaRD%OliYJLs2+LGF8Z84sC6F+M zbL!%hMBX9f^YDaZh%xQ&N%qfH#mDRsH?F&BR zOr?Fm4a3?Dnp{n8mPkfEKP0CR=W|ogD?EdhBbuAb*x_p200rufK16p20>TY%%@3tk z1^U($4@D#F#13CzuQfh-WT`LfJC8P+Sqy5*yR_)(n5QF$y-_hWog7fLeYDoHU$CD@ zROF0EZc6z+5L*7DK7r6isw@FDg*^?OH-JMV_^xZTNlQ^mNDjnC^?GYzuv{v98wo=U zVF#-5A)*I!33riyeIfv!MM+r(T@SEhT&YMZJYRGSAYCXTGy>7g^Jgm*tU8lj+Wc8i zk1G*X!VO@)`B5CPyUo=u{f9UVHe4^g_bfRSGAhGE0|gg6*httDzvjP8&1w1kS~mH*!IFooyiN>wzAf1UTp@HUiy-uC74`lSXUSGygo!2L-*puGq{GGMT! zd>ta63rd0l!Sxe?2zI!8<${6!C=wXWpmpeV<~>ea?u9yuQFuo1~#uLPC`)y8Cmg4onkiVc@pY)M^no(6MsM@??I8q&j}-8t>l=;(W-%}sySfy zJ->vZ4=qfok`Kryt~t?82XG%2mjukv0#=sbQ1VEJW=)bjJ8~Wh^_REbRtG=_ zm!tY(WTGGZTtL8QVR#QFE*$REbifAt?gZMYo!Uz!TX%PKcfMLT77Lvl1(bp!2ZTCS zg%crnfF|nPsm0~RnFm|QOpuyx#I1pmG+{3Gs((S=T2=+}fu2g&M~`6vD^ao;8v@)fF! zh5#XNgqR$h4A(B(ndq~FYHa_8XMCB~(J6^WRHHzEo-&nZSN`pex!)}fK6}fM^t_aV zK-i?cVCMum)Yf}|rI`fmLy(#3g$4DBQ(gL!mrjqR-{gkd6n2H|02Q*p#>%^d+6&Kl&@R3_n zAQR_Qjm>SSptEV~*=9$uv&#UGg6@h)r}r*NgzAAjiG+T|3DK`)Q?iWv3gx`NST`jG zv?fg*C@h&@A!w^Mv66Gf3kDIM+lD?0eFn-F%DUEs|6%`9!f@|a@%^Z$D4)#bIA;ne zgjN}&swRW11D@PjW>M#e+~~;Pk^jbUQ8LMP|D>RB9gU}$%BH>gPv9oiIb>RxPTN*m zF`;^YJ&wU?{KZ^04w)tPJb3&x5Zry)cX#dsvwVd7rm2}jHkPpd&TOKXg9=_#f z5NyL#{vUMZ66uY2K_3|Ne$(Dx$OSg(C^V=lDnjc%!acu3*x~UpoUaXYL89}k0Y~G8 zNm96Ssmk!ei8vTJxK{KF2yQ2)5DtE^`8G+@wItvk)grD7&{(wnR!r$yndqZ)TyX5F z*6PrkRf}5Fp3OkSi;EvD-}Nx)+A3pORq9 z@jxxq8{S+y!P=jocQv$8FgKecA;cvtsTR+4u%v-4HRbg)+INDccCn$=_xieDi;n3# zG>LnvUJp)wt?Qr#LgNPrNwFPP;`9NnA47s!QtV3%f6QVaN%NR~wH29740nG$ad+!o z9@KAR{knhQB}{bDS=K#Jy6}u+f7fC3VN+#<(jhrm}0>(AAzG@EPrcMBgZcySF z@Mx$hT{I(p9UL7k)9bHqp0|~Qwf*de?;aEFT!>gJJwJJTN!b5v8hFDf-+n!w0Y)E{ zP=f2&?Y*U6ii!R8b;c${1b2e3BjY-0?!@l6ax5fdYzof|)KC&-`BL(mF+OKEf0)84 z?Z)W~bGMfd;ZmA(PXqP>h9ba#yv$5W#ycx+QJj34pL}X#VRq%ec%P8L5I;khC<*nz z+lzn11otbf$jcSmFY)8ndG6{^ZKu)Wwjo=wC!rx58p)r^l8nmte%R>v$c^UHL*pWT zEiaRB1cxr)EZ^L`Y#iq4vb|1rPWHfFVa2r?QW|k^GU+G3{58Z=I}!=s!Umiv>Qv z4Y7!vczkQ~DJxR)R_??%KrK1_^Mb96Z?4VR&Q^AIQtSP-f9{p^c<4i(_!&M?z>aH$ zMH^&$9>KG5s%q1QYfqww4EvH5274SyYpa2vWLi7O2pumTwSXfft(48QD2HVpX21u! zT*D-Y!>V91WX`u5e`LfVUPIBIu|5ds+8%kY3gWT_3Ts-rN=Fg=p8b9Gp-Dk_mb0zto{aP|m|e@=*5Jvs#mld)%oH%mqeR5PalRu!F3Z ztE8wOYhD1N>ivx$>+0C#rk88>j)cQBwZPUlYTQ+kO3k2-*lW$ziL(zkFjUSI?4?XU zxjMl+L#fcGX|`|w29G(*lqjPr7~oh)b>O__b!<0DgiyhjNu+}p-_ait8M*zhAnVK= zHh~mjEro(ot2CkUB$!9rqv3>Ym4jSX9^4K{U(zgzvBClZZdNaneXd?u(;+SnRqJnn zzOEo8g|1=j7#B=#KG%o$-OA=;g2Rx6r7MyD>ic7GHqN~vs0j&$<$55v5Y3)kD;M7q z$`0w7&hH1Z%w>!hPyfP*{g!oeM{>%!SeZj+W29eVi)nJkhJsJP=(TF4)gk_!325Pd z3(fa9p#{Ja6k71lK@^Mtk;x+=uXvPo<+ZbX?$qG>Yd7nXKtf(#TSle1s({ncY%eZh zz3=0+Pu1TLTMu<|m?+}l7OV<3A*y|GS9Tik_#3*aiV+YNdUn1`;YnKP8~M=XvewSiv)=4!*TklH!IOIoce+x1EgUvEK~_q zpxeu)Bta1-e!WM_3a5N&m<*$7x6yMcSjX}{-yAF%W}uCQ{4?~f}7hcc_azUgf;s8Bx%1-iuhK9doV=2Rc*7vlfhg-+_YMK19p zR!|C}`u()27X=u%8{!Q_qile|8eDpY1HIx>)D5Y?fkk@>%LhAEI303}Q72SS(_Cn~ z^tmWlI(Nfq?q9K5dIml+^1$e+pK!ZtShR+_Who;Cf(jng!rO$E2B83JDfF<;C28EcMb>LLMl{z%Ic;M5g=g_DD z_no>v2jQ$y^{_%km&thSapC13TnNa(kWQg#m=vHgijXf67Sb$39YPua*K$~Ri)p@cBYgo`^MmR_zJdQ~TqHq;T10~8G*G{_ zN3}_b-`c+~_&zuD>Jb;Qjos`mQ8Bm4upR_^4FVRA##K}Wu=FptW&SFGV(*b?%+z^` zyad_Tc_+e@s1@2w(YKn(+pGc=i`f1Re~S!QZB^*c0(yju`*#wge71L6gACh@eqN@?Te$A43gtj|lb1An1*A$M z%_kA+>Ot@(BV>IfQQ9+;@ILCII*@py$-i%SCG_k7dW^^|($A2UH?8SB>nA`&bqOCXr>bN$Av}bvzOD=C2vzv8S47-I}vmXfKYF!)exc*7JwX z?fCub)O_(gd#sEwmD=3PeX}9G4#ac`z1+>siw1{!Pz#(Jt|1zY>bXA;Q?aB8AUe4^ z_)&125Y5esR84&EaF6+tOU#q@d6t~b>;{97MQc!ep|zVs)%fdR82ntpJ^?aEguqhm z(w*yV8yrM~{=*IY3!FcLLpYqD4GMtelt1J8^Mm+i`0uPc9QP=ey&9;S3Y|ca}L%eAxwA*>#AT`Fm|^Q~KoBvOjx9XT?W1cDN0v-S{ta zW?(Yrj?g_IAuvhTy@p5{*M|`7E=n2Yb$9>P|7ljkR^n!J)A8}A{`;N+FLU-x>v>rm zvcL=9=_J1#~+rQYJG77O_i|hF^$d3?SUy=T0@IA9qn3*_t^B zeFyE6i-08&<~k&)7_PH0t&2bjTu|ej0QDJBw|P|)c6btbR51 zChLq~{+PHuuiJM051L}|{Wc)H>R-lNQn1>{UPoSybAW`1nB1>Gd*z%o6w(6^Dd=Yj zWlF+F3qBk|b-I|mf_C@W;9A`91~BBGUuAu}m#5?M+22u9Kc04wURY2P2w-t|mG&_} zLKWDT3qnP;!82ele&5qcA6|F5FrMC)S!CW1x;D)iz8>1Em3mHH(Lurq7`9-D4P_`9 z(?r8cRZ(#}E{|h0oP6;9((c zJ>vC}pwYUtyG|YaKc3z)E~@VP|E8ruxZ^@Bg~bv-4!m-fOSD&zu$S&&>(F3T&XCnNste zwpVRIA^{OpIMr38arFAb!Nr!3)~dK40>RnYsa;zt=-MzKbC5LwAgX~P)Bk4vx27MtR|h)!Y#|( z|NT&ajA}$dLbg}2lwn4;~=K`%46pf1Lji%D{>32|N#mKrNvHM5hY@7=-cpQaER zdx!(m#}4%_P{V>3+s_o2{`=b6c3VTmoJb^aSoJ={ z%W`44pu9oTD-FE8xCS+b7ZpLWz`;QVfFMNJO#)7|x@f-MutJx!&y*_Jr*1BX?!MY+ z36u!R@y$6`pulj^J4~v*pY3AwHwEf63m`szs46ERlTQa%Jw5zKNAJKe`vYztX_y1P z2T%G$1C&8y?rkYn*ym(eWjkAcrEyO3q3N?JACQ*$*FgsiR|{eY`(lqgU1-ZNzmq78 zRS}(!O{j}re2XXsM1pI5XW$DXxc@gB=%M#?Uo^3@fNjtrsxEVZB8oa;Du7pz%nbbo(p3|#1i?>p+fTf*!X=#O-pUe%A|92xbDBNCZRaQxC1}>R#Lq3fB_2IpPWMg)x*^o_->iMx#vP zcdm4{?5b_M$6)eNqP7kR*U7U&D=QPBO_VT6{l|a9$WTck6|b!*|Hr1|XI`k}C_Q8P zduLx31=xXgsa@Dth?feALm3tgFtg5VYL6&}p9K;G!lXW^5Ot!=SI2PLe;h2uzCA;( zx_vmi<=pT_ggO|-f6Y__Uu)l>GlfcTpQb0TI3xpl2N?)4!f0E=_@8ui5HwO-DH14$ z01yHY&|djlq5=?ZTe7Ddet=Smr&}tfS{0Ccnr!Opq8MBE8QH~_vme=W;AO1w%!%L46~QHNu53(H*9Epi##tNz_pS_seWb{K=4v!P0hG6Cl!g; zKp2`wj*PnF8Py9+*qOe6bm#B=07QSo_;0B4iWmTUF?*`b7S$qtS*3=W(*G&7_kvN^ z;VU->`?3w&vhgR6Em|7iQzx*6m0pTZp%k{E^kDyp9Uw<$#@Cxi*Cg7lSoK}G2|^BL zhH`Nvrl$DY)t#MgxgA3vnNYh+N=kga#R~F<(Fmu3@0WE+FDLy>YIh!o>0d;~;?dT% z8AN?fa8wa=CfF?tyjF!-*hr&=E)2>^EL-&Tj1&&q_`Bznc^@)Ye`4GuuaGTWC-4 zTc`shss>RTar$d~;nE7ICE0%5_ix|W^xT&$Ucv$6)l;9tKu<+!adGJbGw`V>NcB+o z1@h_B{h=`}xb5qw7E+ixaA8&UYyP+$mV5tvtukyL1(*9?a8(RQxMxOrJp=h zXC5enwv6dg`4N;5Acj9(cw%0%ngP}e=rPSo=hwLUmkR%#tri!DGYW1up1qdoFa8q3 zV8y%OE+Pn(!Biizc+K&HGC`3EarJ%Vr}+Agos=13l!`svLwXrr_hL@@)v#~lZ01J< ztzm)+OpM`-rz?5yM;2_%!cC0~XUbdJNPODMWHU~oVDBP9Ag6egT6yOBp#DZL8Pa;FwHjz6@dVktXAD$yl2QPFA{g zlYu!C4gQwS;gvp&C>tYN0b&i`H2CzA_?Nt zVX0M*Y7VP=q%~M_11i)}bf}T!o9e;wbU4VEP39LD78m_klu-a`VH}JhHe8H{$+D z9$khS&pH48pCN>ynu3tCGdgP?2u9h+l$evD0DcL8xo=m8@jjMqK{n5b#HJ)`Ak}!a>LKkzvt!^4C>odr8_1%rf zLbdfGP{&=3(QO&gKjZ@qInw*$O$rVfmW%5Wc3R;sQ?u@TrD&W-x<3Lthm13i438{j4+TH z8e)ssTGv{Dm?FYPE<9D!CM&hBK0cW))$By^+FA+^Y&(X4ZM;29<6cxGxw@4Yn&`KF0@ z_>E@i!?i>r@Ll;>+PzIcr-g`-nVkbr1b10@y%n`*vh=OFhc2@CMFdJ6L;jY?Uj`g1 z0FopcB;&Q}q%aMw<%BqVK<=X`xZZvTN_R+j*<0Np-d4%+n%#yso7WpG&2}4noImA2 ztwJ_zu6!()L9=B&ELe@Axag}({aJ^GCmT(JkO>#dml)^sz}Ncvs1WO9<&qIG*dAg8Q1_n|QxMKct*o{ETW%-|YL2Ya_ zzaFAN&#AhNR;~Tlf_#K%CP@~(rzS|5@)Ok|vs3NH2eu%^~o8gF*NE+ei5qnYp<$cYr_=-?yC zYE8vVKU5wI7!(OM3q~%bN(J<|Zn*4HKx|X&14?TnQ4l3FCiC1}T-E+4! zw5MY#Rqj3->AJ>_sRci$h1IeTUSm{~5W|2QT}}UN?(n2Z^&$DHbz+mvN|Mmepctak z4y4itFl=?R-^@M_TyYE49abhC+iqJr@Kn9%d79_Pt*NHeKq5|tnIGT+zt#d7(u=>- zFvHtG_oSHUjRr5#5yz~xiQa#3bMx|D!5LJ@3ax_e+V7o9FbwbM)z`nc0WAg3J)ECb5v=F0(G0cYiR z$k1Kl_D?-)>>_wu!!TWecx${rs*q5_=c2p9qhmX~j8P2DS6)E+!td((3Pm@+EmcPW$%&d@d6%u0Ui21N7jnrA6 zy6>ZVtq#qL<05_%R9zU=vf5a{|1(a<^_4bE5;qOt6$?su~CUkBN zVar7?F@#H3;?+Z{xgi4)A;u2)^RqR;OU#aK>}(MO3aj_enujmHwcP5i^`sblznx5u~k#Weh(0a z=jCOD_wC<&Wk^T(4Ig6DSbwpve-x^RwPvnW0HKW4Ka_7q4+h7Z;qb+JEdgOFiL`8e zSog02JE{Vt61N2Vj=s*PPnoXxZ7E~<-Y*w6z4U$9Q7D$OJ74Sxl$%@UmY3LV1sg9l zL{c$*+hRus_(%l}1qUWc%o#M&mkAmaQ9&%*5^vKt397fgh83@Ob=Vzv2iPBJ8FhC0 z(Ny~9d}1Bfu@za}g}sK#mOTIju4tZdXV#Sein)n4oPn#F;o=4NB8AG!OSq&0 z+Awkm4e*sd1TP(>*xzZ%rgrJ5`KZgXHGfd&Z!Q6D=k8W%4jOQXn0kSN$3Y1;ybWZ1 zw}vz@hEgrP;_npv{Ix%e*3Zy|A0MA%Suh;+aBw_iaE5Iee?Os4Z@H!>m=VhGWMZZ@ z-gvC8^cq}T!ljyg7|aAed+8}PRDeEUW<5l!-ZW{!kgGIxU^+m!Zc;uVurBKhP6P^? zWC;LD^;v4vmj#Mlk``*@wRqB^ArdJq;m^4U| zR9(~Z9pxd0R8I z{WBqz9@6u@c`%7)?AiSi{+oZkKTMa)Q7oloQ2XqPx8VVjJ}0HkYJ0zPtTC~K2S6z zWF57jq86byjsnd|DT0w`!3Rj9D*<(mLBtdYKw#vITOxou%k1YinUJ9SXsE^Lkg}r_ zQStirW#i15j-xW0;O$rSxA4AB)VO_9?)=55vWYyLkjC>|ao`30b<<4|(i_vC(E+L<$$Ick6df2l0 z)b47zRkW|D>u>w@_azA!i7?{)4zD?=2Y%_Bc@w1t3zJ>NlD@B7!gF;dx&JIVygmFi zS6iKol2y|f;0lazY1pR+?1aO!t*@d-_&W&LPk4d95H4{FWs_T8jH>i& zxv1?|EkhyJ4DY+~JtmppqXDb7G7W-fk#7>iD@roQRoZ>^-Mx(AGhP<;jvw>P4^O!ViA?eK=10bl>`bqG?qDNA58 zeyEbFe5Oh}9I4cF(FsxoqygeXmf8h9*pOmiIdC4=cQ}*0Y?9D(I%`=<7};vsaYy&F zd6mF1C|?e?<)F5KBk~R{>_*$$qCs$#DSBADFR7Xk{%h<49WUxnjMO=FKZC4}`kYp{ zHj&$tF}q_%sP*e+E3$!}-fX$$&s5%v`dGwEk)o7J8IIV7Q}pX&^pBAxd7@E>KjHiu zD3+HwJH}S7f3r7^e(QXu<5*RQT;b{ z1{5jCSUe3-Zf7kg{H`U;LzsIRHbWpPi{Wxa{F$4j?&GH0Z$SZ%=BG$%zI z2s+9;UNEj6t@|siJvV!0*k}=G;|Yw--b|U5YQ7<8g=tl-=BdW*zzR{k$p)9_ZESFd zz)b1m4@nIn`&JMC2C_?I(VD`i3~^Hm?TFGly)-Ir5=#)DfLqdY1caK{I`F>}ZOGix z()^4JDb5ja%9?Oh^9?*B9Eum=TKd>12*N)i7)g~$y`hBQk|*fQr$&>iN8LUZ)N_nSCuKy`2uxe2E&jnBsHCn*tn&uOZ2t|G zfsJuN6+7j#oT54VIS{{<}A-*cLM5Nf276wAW^-e;A>jzbTflhyX-=H9(~ zcjZ@h$yZUaE)p5J2(q&S=FOUJa)l&U~+UxIW^>g7N_zTd6G~ z-ldl>5Inc_BorV-S4+cq(XuBt6UOpo=S}R&S7l*xi#Ons{FamT?;Oz=m0*u{ide}t zX`=|p;j&c-Git#%`JO@SPP=7aBeoGs=aq>4DG+w9%jf5Md&J`@fT7TSM(my+t(O_> zXDNr^HPFg;2e;hWe$@)<_n8~|tghP4qIRG)p*Cr-+p@OhR9gob@#6SlsA&z?>v2Q@~mlj3w#{w+``xM2?X#Rs_ZL#L4bdGi$<!p4`brc=q+Y4kaUo4~E_lDA+9cALrTi9WR6_71 z)ZVA9|ARREdj(ap{Wq+6zJFK7VO4Y1RXe`GiAl|XNCLfU_vyC@cGfubwa3D~Hk~$e z#zGDOJZm z<|x8(!L6^8*3!jXzU;&^AnN5Y=|54ePblR7Qmu7(9igMaEh+X~oMpgK*-aiOMo$7t zc?KDot7pF?RMnO^TpX^NIYcaZ#FG8AC73+c5Wg_&01|=ZahK2Bca4=v;9{Xi`dk1x zbKy(1zu@k~=!XVXbYX8Q; z*LXn*t~3y{lFx6%%OH^2+3bJQ7^OFco*|^WpcmJHbrpp$e;!GW8fVn_^^0)y8BNX$DJv9srXtM3*gx;Zg zI)sWv)Vfi_vkis}J)Z>c<$wwClE=v9-rncG)Q2mrD_Ouzwpu>vI%csRDIbu z{n2r^KL&0w#!yYSWQ09tat^oBhLAd|aAr0smMd@KotHapeaKo|;yVnM5Gqyqzo7`= zQH8rGI1+=vp>`cQBsu4w%^Szk|6Ihyei(W;o1*lgtT^&bqki5!{Mz$nXD(?B!Q|}K zc*4?va5tPmCo8=5B&#vhfBQBU8V&nL`*)uDTd(CB^<3v>XH#A~__9j%<-l~uH~af! z*;6Ukq45?@JjN@6ZtD-Z$~TUf67b#s=h~?%FtyCn^{vS>R2$Ioe#vw~$BH1S6q6kM< zbMQOB^aQ_;MZbNDDvK|QJDGP3EZpyWk8;O>no07x+93Rc3j@!g*iTbhkFzt8ek{MT z5-G$EBi4XjTwGYW(|p$@!^Fx!<$$<`YL{abF%)CZO;bcBkEat=&NvFT%Jz5UM~@ zd$5BI4gF59QDqzy7ZE&tA3206ERm0(xnQtyK+eT2SNmdy@N27(0ZxvClwM(MFkenI zT@Y6AJ_Y#Z3iKWtDL5tm$s4EC?mt%nA_!lsIw`7bP);nJQZjR_%I!qUbP;HSs&)I~ zJfNEEv#U+LzaXDMe}qv(Mq=!9iZrbG03l{C=LgFIKM^akBc$Cg&|Wjx@w?)`*Y(?^ zup*F2k8(-6YK)kXNqGm~XK=VCfe zqIEd5f@5mNVD3&h;<|%rN5EZYfmpt>6{oY9GN#j~1VrobEmx98qDf?73~B+OU8x4b z!p>+Zkc-idLoXz$%i@aNFNNrT_1hV0Sy}LUhe{{MSUc>Vi&?`X*Zsft89-ol67kUs& z0gD}3flMhW!*DR?$5tSW_}SAgDsDeSkU)?EW=989Oik)dgL0jKWEW28x|QO@<34 zofj*kO!Pj_*ats-k_dCm$*TGk(E@Py%#mgG=nZc2q4c$oq_D@`uXx=|vdok+Ami`K z{$^6n1m~R)@P|`Y>5tS^#IDV{HKuohA>ai^n?uiXM*|c+uHk@8TG}VXdEPx$D%w*) znai%w4x=K2q!7()XY3eBisOb;kEIrDTgQNeLv4jsyO$2aM5Bs(Q0qJ9mlkFQB)BGa ze)I^Ln7_}?`ulhl^X1RP8W%}bdW6l*>PLah+cuuJpTlb|y}Mq?M*G)j;%@!XTX4Kp zU;*vQ{>2yOJO>Z2{F|AcMo^2Dz3$?;Pw}s>s6B`rf9ei^grl%OGYK~wHtO>;U~l~( z&MO_}q!-UT>R^cp0Y#*js5A?^U#y9}P=&zm_PWyo?1FX}%2_t`)YaqF)zyu={1{*8 z5n3Y6|7nQ`;-^@mr`ESn=M5%veD)HAa>VB}k8Jw?#%M5=!*!ndi~uDlBu9nH6K=^g zcf#W8Dao%HI0&wIc(Pwjjl(fVafvA?V)>YU3=u%Tq2c0R{|=V9BAoW9wOU9_eM0?q zS5^3Pzb|q;>P+Nr*~3E11%GWKVY?Ry71gn>2Z_&%R$=U7si(gg^24|2X@73~YEewv z`uq*3V<{n(O#zjZfw9v{!&c>sHDH5UakWfxAEUw>>$fWG{9)Eh&GsKLH>HlXcbc5U zP35*#En87G*5ed|{w-FB!<*>M!k%wh*SZ7mEgd`vS8cet^HJdE^LOVI)HqygIb%UW zkN=kX$cvI~VFEnBjEOmz{*A$}Zz;uDVaaTkirsmyv3@%({YVU6ub#KCwkSO`2If1Z z+H*GSPOUBi-Duc?W@4OPhk{QGPae8}gNZ|fT1F(q78VW`K6-AMF3!PLXLS+}LB4PE zaZDUcolSBGGzu@l6IxdAd3|?p$Kz4qWB^MQ*$Em`G@n3C2osVuGxt!0y0GzSQW{^L zNsTUNXQerJHF205uaW@kmwvh%c~bEYq&;(-F%3t}!&DwSo{k`H#WV65x~ z_j!0bSiPaaqeRnz+U1CXs_cZ3>$CI#1<7`)s&57T0eLmm2k~IUWD(71b$Wpl`!2*t zJ3ptyK4TWMy(ovO@t=uZ;w(-&Ez4S0((wpNAb^4pvA&s7iXa;g+SU zOwe+vX`B2-=(au)YCq|?TH0PWbaYfIgxZM6N;`0cdWZp=rc77bN* zDC=3n(Ac0d{C8#ou=-y=)e*L9-6>z_(Lhtcji9+MsnMlogim zbC;4npXOi(7)O}-xZ5HwJ?0B6T&1~vQ%;ll{66(iUIN1NzMm;W)#sl) zjy5x;8_3O1O69LGN>&QydySb9r&o3vhvdrXnyvrJ>1RO^ERj;z2*ekBWJDjt1Tq`E zcl|j?95e(}`C&(JPrDeWij55A&C*V~)^c_g48{Bf$j(MRlW(JV0A8g3bhK5T+=im;bsVuuiJUz2ue7HY;= z>n|$Oxd!(+<=y$%|1z5~Et`oOR*CR~ZI!AD6;7cwFq>`*>$IYW4>0l051E8>8@ffM z*jEtY*$N7d?I>^mNPUj4B<^K-6?yp6HuL|s^he-5Yq>Ui`QGT~5$BTcM>#1+{)tDT zksE?kohj->Q2DX5GfGTcluDxSu82;4IJnR3E&TXZ0e~`F`1RdJTuQ8ignTh7mtXOb zzs6j1AY0O_=lXC6ql@%)Yk@(;{@I4_TP8z!;+KZIhnpcaz1sT!IT=C>&mT7EfAupS zz|NIlT830iRr?mReCGTSs~!xM|7u(BLztYtn1=>TNW>seNq_!uR;L2{a{U(%O&Vm0RR^ju4GICxAVB)+0d#k^Y0As$EdPJ?d5o}`kaCtNGe>F zT1rJHXD=C@V$zF{1=rEEqsKv<@IeTWsBQuWkY z@ne8p++Z!hYj@KY2^Mhof0ho^QfPg7K13=3FI>N!sS#RM9V$u(H!@hE^>9F;U>7s3 zy9J!RfMi6IIf_#fMtEP6FN_Ijomofw#op@u<-`REL`-Yw_k0qf_SbH(|G|?Z_1)lu zPt9k`XK!z8>|_|d@{N_3m$!YO^9nx!!#S$9N&B$!(4g|o(FIt905APeIM!$l-Sl^X z-~6cpW@_LUq{5B|E^y~m;aS8!A|{TOVgD^%M+%Y9d%qs2PPjJ{6~n&#Z=9~V-2S^^ z0k)h}!MR&@!B$^~mPx8gjqbpM77s*WlrIEKy$*F=&hMb!h}f%}Jr)1%K|llV9(HWt zeGl|%sp!83#R>-dJ^VoivZXW{)d|&WyvH|~vK$JlINrWehSf@ctvh-|Vus%^FNUAV zD?Zg116EklDfTC5nIJ^UaO_8X3Aiht7W$^bhZ081qb{lwB@WceYG6Y$H<>r!^kgmY zJ9epmqd&b$diLY}Izc!Nj!97Pr@%e@|9f$$!$PLWG0|Y>m+v06D##fhQo-%hAKS9# zXH|!QbnjC9Bl5#KTyM`-P~p-(dTaNqID}6o-6E<+kp*ucIN<9|j;W}|gOZhAV@H@Z zba6PtPBGsf@Fi8P@ipHsUF72W9PHen&99s)_m(VQ^!=V`#Ni21Ye82hfS2c$7Z~}h zKRFpjr~kwMxxokE{Z#&y-i6uCec{b@L@ayu|CbROxukMqCHy=D z6iYxam5uTW^r<({Qn)%0C-^iL=NEY}niDybCa~0RN08Iu7JTdOb+!IsCkpi(-1FqT z>HN5NceZ+5$63vJ+~aq(+w*@e!UIK<$%-E?HZuDC(OJARFMq_wtnJ2H!JRtR__t@V zg91pP7~?Vd?(W7b|D*;5{<&3F*!#wYFrwZcL$sjMUXKAcX?U;yYFJuP#VZyW`-WO>7fJt|;!a7|fU7PmnZKPK zT^_FWx$SKoZEdP#4#l6r#Og46ukRfnu^RW+t(*CNY z*%2Iy-@@4i9r@XD{>>QJ-MkgmzfEDnNcdv4^RtF8AV@_?EVjr+t5LYmg%|wL$K4osM#X*O)jcs|!(t#Lu-O-h` zf?ZMoN$kmn>sKV`WpF*%Qj3|tN#|fLX|D7ktTte)0a8A3U`o$e4-Ps-?f5DFa65Bn z`nSy?C}=VGX+Wp$4w(qR;yI4)oNkHZ{r9Y@D$b4p-nXM*kZiw0Az`-%ZPzeGtXV1&{)$dqSDx*vmsUn-{7gt`rH zuDS2@(odWmO47z(_X9?F_Twxo%TRzPrwEx_yHthZ{|uE0p2($3hM5+Zx;LyLYoX^I z;>up_ZIzVFaesVQ-p?TQH8L_Dh*Lyl<07Z&kVZOLlwoi3Cw!8SY258flVSTz2Y+<- z@9Uh-H+rWV`JFXg&g~@nbERY4TNXyk`UCn1Bs6Q#pEK(7ieE&n5BJwsds@xqt^P09 z*Vo8-W-kU76hr&jBl`p9*8}gNjWY+wJ8*Q?|Ff366y%!$IxvPRS(P4-75XU@bH9mQ zaJ(_LA3(Dx8=2Iw#m7|GnZKEpI`YjAtotC0AB^%wGFjExL7~ygLM_EeOk6J3t)95Q zac*_Nz(N~8?(Tc36a(b-mp6j1H=^YVwVkQZa3O0Pu8|E^-t>}wmsYC|wFuD<>7d@K zLsSUNl?EliCQan9>gW0P<>h4{W4`8^NKacB)BhV^lD|#M!#t4%u-y`vk2e(-%Buw! zzs-1Zbt5$&>gC9w)pJc(PrWWlSqi+A4b z-+D*s^DXUgX8aRthP;`vRzoNGZ>sGw8PTaOJER}T)G%!w8+Kwx2#!U4-Ym~SPBa&H0?D7?CZ?wU({I! zilY|mB~lFbkAu2_b8ZHFhm_{R7C}Fe6*x3zX8GxykfGWE!j5~a3YcUYOs}KB;{r4E z_*a+$y7j5_Em5lNn`nkQ{K^&D4oHQ@I>dfqm@U
  • ^B8oEsoCca5JQAOIUHpnHK; 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

    #}@*2dHI>!-hM*(Z+8 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�l*}TB-l-t!T?CtgtknXEggnRA=CxCBcgR+LbaCg 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

    pn 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

    (<%0Zp^5&M%( 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

    Du2R&_{wbE^3<80v1gA+nI-S#ZJ@(X zfH}$|!ez4=?KPM&BO&w2BbR{j{N1~^cvZrv9xyPz9qb|G7={)onUM zSjw6ix(=WC%heBg()8pP>-2a<=1e%t0XHAVyc zt+rmm#Fgcm0X4nO#fuy&w^ijbUJiGnU`$i3H)JZ)$i;BHeJjo7hvM>3aCxYWmr0Y0 zNr_%VskqFHx$ST{%i^Cz(a;0r;_|}LO9pdT8DRPQRF@+q;~}2Iqn|F^`7}#p2bdqt zM1C6+jNQ5 zv2s|d$L^$Jvochx_JjKg9Yx<^FUORG)^13P*M(($o_nc)CsY0wUpk|JxyAAywSA3; zRJZ;V8XCJC9c^Z~sa}PtYI6pjMm9C%oG}qt&bP>yOl2FyMPWRrzbq-#R%9GzGmjXb zyjE(6zXFFbeM{|m57J%l&TDBV@-_c~QgKVxRz}@?RVs(__GG@GIP59kg<#o~wiUg9 z%<0S&@Am(zxxkdj?81=dER<(i~Sx`vKNVvPpg2D_S1`}S2==Zv`w@W zjZ#8gdK!v|L7Srud`x6>-&R^X5GeKJ{`_>UtFFY z4=(@aJI@@1%cH?%L}59-XnA>MbaQ5OZNXfA!(2Y1=$wbk@^_UtF3&tSIY5bt8w z;9w@8l?tC+H^}p(op0wE9#(^XfjOt4v`V6OEOF_HqA|NKmR!fEURU2BPBpdU#Ah>w z84zP#z+w(O@G>~?h-5j<#y$|-8*{8HC&R(0x^&V#7IXD*VqL$8y~jAD_9leFP`%KE z7kmxrG;^JuoEyqq4x|@Vc_a1ot=MXs;aIoT9BrOqt2%xC^~8tuU&36jY(=b@`VO|4 zbpntD;|!XE%k29T%u4nlXqKM1|0ghGW*k|*6JExx)2oMKX{dYm?vX7Bh~-%z0s7wQ zvpyG>n~b&CZLk`xvTvCXATBqR4eVt&U>*P+=CTZsjFmI%OmObkE-Fg0`-)%F&h_X8 z(P=v{)SVufbBGV6{#28EiyoM3&L3qg+Z9WeD}xz@Z~RtzlvFM-CzpYo)8qzwTpk>Z zuV!1Q&t+6x78uRt+jAS2PM!q3zh8@6e^B}Rv7QQC7M7_8mt0;Jmtz9TbL-#z&3C?Y zFymz=V{a%SBfj~__~ztvLsm#AHz*CuV6)WrU zro}s}CsjJelO;TZ$dQB*TTSpg=bU5O^f53o*tr%>)#Y?Rov1A3mB9>@`x4y&uTRQG z_Aw#JqXBbIiqraBuHX*kiA`mcd}%LEjv8qEw z!&ZAKFC!YO#u$**2W=i_6QnYYjcqAuC&NHo7PdVid%kIybNk#ndAX^k)Yne8_IbS5 zLIT6ya~bo_$WS4x?)K~Bl6W>!)a|V1F1%ON97YBY*8Mk_MdswPrvKT@(BI{_O?68) v^Q}eJNIgrcU`QCI#+<;copa#KzX5*%&$Z_I{lbfh00000NkvXXu0mjfSA9?_ 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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 z 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 NMM3jP>0`^+{|``zKa>Cf 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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 Y-j^z_Pd&R26e5MDs_v6YWvkHt0VN8MTmS$7 literal 0 HcmV?d00001 diff --git a/bundles/org.openhab.binding.mercedesme/doc/OH-Step2.png b/bundles/org.openhab.binding.mercedesme/doc/OH-Step2.png new file mode 100644 index 0000000000000000000000000000000000000000..8924125cfd0e91bd188a51d50fbd515cbd2ec39d GIT binary patch literal 20242 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 o_{&NFyuJDE4ZJ)vXjO+- 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 RxnO5JMS0bS`43Fq{uj3A`q}^h literal 0 HcmV?d00001 diff --git a/bundles/org.openhab.binding.mercedesme/pom.xml b/bundles/org.openhab.binding.mercedesme/pom.xml index 7652f07a70..2cd7583558 100644 --- a/bundles/org.openhab.binding.mercedesme/pom.xml +++ b/bundles/org.openhab.binding.mercedesme/pom.xml @@ -10,6 +10,28 @@ 4.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 0000000000..50df154b60 --- /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 0000000000..6c92e64d76 --- /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 0000000000..83162b42df --- /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 0000000000..ce4db45235 --- /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 0000000000..de9069240f --- /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 0000000000..8947d90aa5 --- /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 0000000000..143e354265 --- /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 0000000000..e07e343563 --- /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 0000000000..6c4b5ac6a8 --- /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 0000000000..d8d393a092 --- /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 0000000000..7f63518a26 --- /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 0000000000..affd24d8ea --- /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 0000000000..e0905ff457 --- /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 0000000000..76b0a10e91 --- /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 0000000000..512a501b2b --- /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 0000000000..cf73ac14c4 --- /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 0000000000..fd9663c0ab --- /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 0000000000..f68ca090ec --- /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 0000000000..a46935b130 --- /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 0000000000..6bbe18a281 --- /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 0000000000..7ffda0c58a --- /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 0000000000..b08cd9799e --- /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 0000000000..87cf07fd0b --- /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 0000000000..59548b1cb8 --- /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 0000000000..34d77ef431 --- /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 0000000000..ccc1adcd2f --- /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 0000000000..c7109f0bc3 --- /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 0000000000..238d939515 --- /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 b600261962..ac2f9152b1 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 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 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 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 a8e5679b4e..357a66325e 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 0000000000..902d605b4a --- /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 0000000000..92a76f9a83 --- /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 497b7ae307..5eec75ea3f 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 b9c6a8712a..2152c2d788 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 0000000000..3042c50013 --- /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 0000000000..43e123d9b5 --- /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 0000000000..edbfac5d1b --- /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 34855c561c..7b75b079ad 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(); + @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); } - public String getImageApiKey() { - return config.get().imageApiKey; + @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 String toString() { - return Integer.toString(config.get().callbackPort); + 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 a689fe1ec4..fa515b95a4 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; - - public VehicleHandler(Thing thing, HttpClient hc, String uid, StorageService storageService, - MercedesMeCommandOptionProvider mmcop, MercedesMeStateOptionProvider mmsop, TimeZoneProvider tzp) { - 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(); - } + 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; + + Map eventStorage = new HashMap<>(); + Optional accountHandler = Optional.empty(); + Optional config = Optional.empty(); + + public VehicleHandler(Thing thing, LocationProvider lp, MercedesMeCommandOptionProvider cop, + MercedesMeStateOptionProvider sop) { + super(thing); + 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,336 +165,735 @@ 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() { - refreshJob.ifPresent(job -> job.cancel(true)); + accountHandler.get().unregisterVin(config.get().vin); + super.dispose(); } - 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); + @Override + 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()); + // deliver from event storage + ChannelStateMap csm = eventStorage.get(channelUID.getId()); + if (csm != null) { + updateChannel(csm); + } } - } 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); + // 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 { + 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 { - logger.trace("{} Electric Status scope not activated", this.getThing().getLabel()); + 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 { - 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 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 { - logger.trace("{} Fuel scope not activated", this.getThing().getLabel()); + 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.trace("No Temperature Zone found for {}", command); } - } 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 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 { - 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 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.trace("{} Account not properly configured", this.getThing().getLabel()); + logger.trace("No command {} found for {}", command, channelUID.getAsString()); } - - // Range radius for all types - updateRadius(); } - private boolean accountConfigAvailable() { - if (accountHandler.isPresent()) { - if (accountHandler.get().config.isPresent()) { - return true; - } + 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); } - 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(); + 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 { - logger.debug("Failed to get image resources {} {}", cr.getStatus(), cr.getContentAsString()); + observer = new UOMObserver(UOMObserver.TIME_ROW); } - } 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); + ChannelStateMap csmUpdated = new ChannelStateMap(OH_CHANNEL_CMD_LAST_UPDATE, GROUP_COMMAND, dtt, observer); + updateChannel(csmUpdated); }); - 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; + 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); - 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; - } + 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()); + } - 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()); + /** + * 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); + } } - } catch (InterruptedException | TimeoutException | ExecutionException e) { - logger.info("{} Error getting data {}", debugPrefix, e.getMessage()); - fallbackCall(requestUrl); - } - } + }); + /** + * 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)); - /** - * 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()); + // 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)); + } } - } 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()) { - 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); - } 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"); - } + /** + * 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 { - logger.warn("Unable to deliver state for {}", jo); + // 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 { - logger.debug("JSON Array expected but received {}", json); + // 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); + } } - } - 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); + /** + * 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"); + } } - } else if (rangeFuel.isPresent()) { - // update fuel & hybrid radius - ChannelStateMap radiusFuel = new ChannelStateMap("radius-fuel", GROUP_RANGE, - guessRangeRadius(rangeFuel.get()), 0); - updateChannel(radiusFuel); } + + /** + * Check if Websocket shall be kept alive + */ + accountHandler.get().keepAlive(ignitionState == 4 || chargingState); } /** @@ -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); - private void updateTime(String group, long timestamp) { - boolean updateTime = false; - Long l = timeHash.get(group); - if (l != null) { - if (l.longValue() < timestamp) { - updateTime = true; + /** + * 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; } - } 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); + + /** + * 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 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 0000000000..40b2630f80 --- /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 0000000000..6b3aa0d3bc --- /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 0000000000..502750b97d --- /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 90268f4865..0000000000 --- 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 bb5f3a74a3..0000000000 --- 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 0000000000..29d5ffff5d --- /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 21a0f91246..0000000000 --- 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 b0c7fc24d6..a3d9d04655 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) { + channel = ch; + group = grp; + state = st; + } - public ChannelStateMap(String ch, String grp, State st, long ts) { + public ChannelStateMap(String ch, String grp, State st, @Nullable UOMObserver uom) { channel = ch; group = grp; state = st; - timestamp = ts; + 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 9e03c92589..c12f5b9fa8 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) { - 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))); - - // Percentages - case "soc": - case "tanklevelpercent": - state = getPercentage((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); - - // 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))); - - // 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))); - - // 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))); - - case "doorlockstatusdecklid": - case "doorlockstatusgas": - state = getOnOffTypeLock((JSONObject) jo.get(id)); - return new ChannelStateMap(ch[0], ch[1], state, getTimestamp((JSONObject) jo.get(id))); - - // 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); - } - } else { - LOGGER.debug("More than one key found {}", s); - } - return INVALID_MAP; - } + 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; - private static long getTimestamp(JSONObject jo) { - if (jo.has(TIMESTAMP)) { - return jo.getLong(TIMESTAMP); + 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; } - return -1; + Unit temperatureUnit = up.getUnit(Temperature.class); + defaultTemperatureUnit = temperatureUnit; } - 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); - } else { - LOGGER.warn("JSONObject contains no value {}", jo); - return UnDefType.UNDEF; + public static ChannelStateMap getChannelStateMap(String key, VehicleAttributeStatus value) { + if (CHANNELS.isEmpty()) { + init(); } - } + 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); - 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; - } - } + // 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); - 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; - } - } + // 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); - 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; - } - } + 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); - 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; - } - } + // 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); - 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; + // 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); + + // 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; + } } + return INVALID_MAP; } - private static State getPercentage(JSONObject jo) { - if (jo.has(VALUE)) { - String value = jo.get(VALUE).toString(); - return QuantityType.valueOf(Integer.valueOf(value), Units.PERCENT); + private static State getContact(boolean b) { + if (!b) { + return OpenClosedType.CLOSED; } 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 0000000000..a8091f02be --- /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 0000000000..3be8fecdd3 --- /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 7852916338..a7b7f80d80 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 30f6b2049f..c73b7c5b01 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 - - - - Mercedes Benz Developer Client Secret - - - - Mercedes Benz Developer Image API Key - - - - 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 + + + EMail address for MercedesMe account + email + + + + + + + + + + + + + PIN for commands + password + + + + 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 d4bc9869b3..c8e469e701 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 55415dd1c2..0a2010522b 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 6bb95a97a5..1260417c91 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 0000000000..80d3302eeb --- /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 0000000000..54711f1b99 --- /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 06dfc98445..40affc80af 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 2e1e701a54..37a6b386f8 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 c5341b4d9c..e126bf6014 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 + + + Number + + - - DateTime - - + + 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 8d6651098a..3e1db3e870 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 0000000000..adbb879591 --- /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 0000000000..20a5d26ebb --- /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 b0e597ed91..0000000000 --- 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 029c20c707..0000000000 --- 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 3caebd7ae9..0000000000 --- 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 7ce9ccc5a7..a5bb69056d 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 0000000000..8ed320750b --- /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 cde1b07f95..f1809c101d 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 c91bfef0d9..5541d1200c 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 0000000000..e33569638f --- /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 ac39ba02ad..a523f926bf 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 0599c93ba6..665c91e5a1 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 4fbd83ebbe..ccfbeee5aa 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 a9ec537ebf..cdb533a917 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 0000000000..cc0e54ce10 --- /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 0000000000..9a7da9a800 --- /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 0000000000..547e7c44b4 --- /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 8964e7d337..357d492e68 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 672735d3ba..e05ce90a9b 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 a84adc040d..30abc16d1f 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 0000000000..ace31ffb78 --- /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 0000000000..8f5a7b54ec --- /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 0000000000..b824f77051 --- /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 0000000000..3eab344bcf --- /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 0000000000..16f003a221 --- /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 0000000000..78cd171e10 --- /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 0000000000..919bf50a41 --- /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 0000000000..1186b3e45f --- /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 ec59ab2a67..c5b265e968 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 aca8ffb408..be652dce42 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 0409667544..0000000000 --- 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 0000000000..31b3ae537d --- /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 f2cc4c6202..0000000000 --- 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 a5907b8a5d..0000000000 --- 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 0000000000..a675a498b6 --- /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 0000000000..33d5be59e1 --- /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 0000000000..2eeabf63f8 --- /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 0000000000..ba4a8f53c3 --- /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 0000000000..b330c42b2d --- /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 0000000000..81e794eeed --- /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 0000000000..fc53605885 --- /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 0000000000..f4ac7f61c8 --- /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 0000000000..52d85bbd54 --- /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 0000000000..c3f3968b58 --- /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 0000000000..d785afedb1 --- /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 0000000000..ade5657684 --- /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 8bc65899cb..0000000000 --- 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 907154a117..0000000000 --- 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 a71eb02d2e..0000000000 --- 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 30b34dc4c2..0000000000 --- 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 0000000000..cee4dbb265 --- /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 0000000000..5e17743cfa --- /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 0000000000..4b73f94317 --- /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 0000000000..3778a4c8ed --- /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 0000000000..be488176a0 --- /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 06e434b6a9..0000000000 --- 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 a04379f39e..0000000000 --- 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 0000000000..70e4aa0ab8 --- /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 9655d6bd10..0000000000 --- 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 bf98a06815..0000000000 --- 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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 literal 0 HcmV?d00001 diff --git a/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-blob/MB-BEV-PrecondActive.blob b/bundles/org.openhab.binding.mercedesme/src/test/resources/proto-blob/MB-BEV-PrecondActive.blob new file mode 100644 index 0000000000000000000000000000000000000000..816a93e95059d0e20132fb35fd9c93d229671288 GIT binary patch literal 6664 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 - + \ No newline at end of file -- 2.47.3