blob: a689d81a7bc06181919d0c1656ad74ceba7c795b [file] [log] [blame]
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);
}
}