| package com.example; |
| |
| import com.google.protobuf.InvalidProtocolBufferException; |
| import com.google.protobuf.Timestamp; |
| import com.google.type.Money; |
| import com.google.protobuf.util.JsonFormat; |
| import com.google.type.LocalizedText; |
| import food.menu.v1.FoodMenu.FoodMenuFeed; |
| import food.menu.v1.FoodMenu.Menu; |
| import food.menu.v1.FoodMenu.MenuComponent; |
| import food.menu.v1.FoodMenu.MenuItem; |
| import food.menu.v1.FoodMenu.MenuSection; |
| import food.menu.v1.FoodMenu.TextField; |
| import food.menu.v1.FoodMenu.MenuItemOption; |
| import food.menu.v1.FoodMenu.MenuItemOptionProperty; |
| import food.menu.v1.FoodMenu.OfferSet; |
| import food.menu.v1.FoodMenu.Offer; |
| |
| /** |
| * Menu feed example used in |
| * |
| * <p>https://developers.google.com/maps-booking/verticals/dining/guides/tutorials/tutorial-menu-feed-protos#java. |
| */ |
| public class Feed { |
| |
| public static void main(String[] args) throws InvalidProtocolBufferException { |
| Feed feed = new Feed(); |
| feed.createMenuFeed(); |
| } |
| |
| public void createMenuFeed() throws InvalidProtocolBufferException { |
| |
| Menu.Builder menu = |
| Menu.newBuilder() |
| .setMenuId("menu1") |
| .addMerchantIds("dining-1") |
| .setDisplayName( |
| TextField.newBuilder() |
| .addText(LocalizedText.newBuilder().setText("Menu").setLanguageCode("en-us"))) |
| .setLanguage("en-us") |
| .setLastMerchantUpdateTime(Timestamp.newBuilder().setSeconds(1633621547)); |
| |
| MenuSection.Builder section = |
| MenuSection.newBuilder() |
| .setMenuSectionId("appetizers") |
| .setDisplayName( |
| TextField.newBuilder() |
| .addText( |
| LocalizedText.newBuilder() |
| .setText("Lunch Appetizers") |
| .setLanguageCode("en-us"))) |
| .addMenuItemIds("breadsticks-sauce"); |
| |
| MenuItem.Builder item = |
| MenuItem.newBuilder() |
| .setMenuItemId("breadsticks-sauce") |
| .setDisplayName( |
| TextField.newBuilder() |
| .addText( |
| LocalizedText.newBuilder() |
| .setText("Breadsticks & Sauce") |
| .setLanguageCode("en-us"))) |
| .setDescription( |
| TextField.newBuilder() |
| .addText( |
| LocalizedText.newBuilder() |
| .setText("Breadsticks & Sauce") |
| .setLanguageCode("en-us"))); |
| |
| MenuItemOption.Builder option = |
| MenuItemOption.newBuilder() |
| .setMenuItemOptionId("breadstick-sm") |
| .setValue( |
| MenuItemOptionProperty.newBuilder() |
| .setPropertyType(MenuItemOptionProperty.PropertyType.SIZE) |
| .setTextVal(TextField.newBuilder() |
| .addText( |
| LocalizedText.newBuilder() |
| .setText("Small") |
| .setLanguageCode("en-us")))) |
| .setOfferSet( |
| OfferSet.newBuilder() |
| .addOffers( |
| Offer.newBuilder() |
| .setPrice( |
| Money.newBuilder() |
| .setCurrencyCode("USD") |
| .setUnits(8) |
| .setNanos(0)))); |
| |
| FoodMenuFeed.Builder foodMenuFeed = |
| FoodMenuFeed.newBuilder() |
| .addData(MenuComponent.newBuilder().setMenu(menu)) |
| .addData(MenuComponent.newBuilder().setSection(section)) |
| .addData(MenuComponent.newBuilder().setItem(item)) |
| .addData(MenuComponent.newBuilder().setOption(option)); |
| |
| String feedJSON = |
| JsonFormat.printer() |
| .omittingInsignificantWhitespace() |
| .preservingProtoFieldNames() |
| .print(foodMenuFeed); |
| |
| System.out.println(feedJSON); |
| } |
| } |