Example usage for com.google.gson GsonBuilder registerTypeAdapter

List of usage examples for com.google.gson GsonBuilder registerTypeAdapter

Introduction

In this page you can find the example usage for com.google.gson GsonBuilder registerTypeAdapter.

Prototype

@SuppressWarnings({ "unchecked", "rawtypes" })
public GsonBuilder registerTypeAdapter(Type type, Object typeAdapter) 

Source Link

Document

Configures Gson for custom serialization or deserialization.

Usage

From source file:JSR310TypeAdapters.java

License:Apache License

public static GsonBuilder registerYearTypeAdapter(GsonBuilder gsonBuilder) {
    return gsonBuilder.registerTypeAdapter(Year.class, new YearTypeAdapter());
}

From source file:JSR310TypeAdapters.java

License:Apache License

public static GsonBuilder registerZonedDateTimeTypeAdapter(GsonBuilder gsonBuilder) {
    return gsonBuilder.registerTypeAdapter(ZonedDateTime.class, new ZonedDateTimeTypeAdapter());
}

From source file:JodaTypeAdapters.java

License:Apache License

@Deprecated
public static GsonBuilder registerDateMidnightTypeAdapter(GsonBuilder gsonBuilder) {
    return gsonBuilder.registerTypeAdapter(DateMidnight.class, new DateMidnightTypeAdapter());
}

From source file:JodaTypeAdapters.java

License:Apache License

public static GsonBuilder registerDateTimeTypeAdapter(GsonBuilder gsonBuilder) {
    return gsonBuilder.registerTypeAdapter(DateTime.class, new DateTimeTypeAdapter());
}

From source file:JodaTypeAdapters.java

License:Apache License

public static GsonBuilder registerIntervalTypeAdapter(GsonBuilder gsonBuilder) {
    return gsonBuilder.registerTypeAdapter(Interval.class, new IntervalTypeAdapter());
}

From source file:alfio.manager.NotificationManager.java

License:Open Source License

@Autowired
public NotificationManager(Mailer mailer, MessageSource messageSource,
        PlatformTransactionManager transactionManager, EmailMessageRepository emailMessageRepository,
        EventRepository eventRepository, EventDescriptionRepository eventDescriptionRepository,
        OrganizationRepository organizationRepository, ConfigurationManager configurationManager,
        FileUploadManager fileUploadManager, TemplateManager templateManager,
        TicketReservationRepository ticketReservationRepository) {
    this.messageSource = messageSource;
    this.mailer = mailer;
    this.emailMessageRepository = emailMessageRepository;
    this.eventRepository = eventRepository;
    this.organizationRepository = organizationRepository;
    this.tx = new TransactionTemplate(transactionManager);
    this.configurationManager = configurationManager;
    GsonBuilder builder = new GsonBuilder();
    builder.registerTypeAdapter(Mailer.Attachment.class, new AttachmentConverter());
    this.gson = builder.create();
    attachmentTransformer = new EnumMap<>(Mailer.AttachmentIdentifier.class);

    attachmentTransformer.put(Mailer.AttachmentIdentifier.CALENDAR_ICS, (model) -> {
        Event event = eventRepository.findById(Integer.valueOf(model.get("eventId"), 10));
        Locale locale = Json.fromJson(model.get("locale"), Locale.class);
        String description = eventDescriptionRepository.findDescriptionByEventIdTypeAndLocale(event.getId(),
                EventDescription.EventDescriptionType.DESCRIPTION, locale.getLanguage()).orElse("");
        Organization organization = organizationRepository.getById(event.getOrganizationId());
        return event.getIcal(description, organization.getName(), organization.getEmail()).orElse(null);
    });//  www .  j a  va  2  s . c  o m

    attachmentTransformer.put(Mailer.AttachmentIdentifier.RECEIPT_PDF, (model) -> {
        String reservationId = model.get("reservationId");
        Event event = eventRepository.findById(Integer.valueOf(model.get("eventId"), 10));
        Locale language = Json.fromJson(model.get("language"), Locale.class);

        Map<String, Object> reservationEmailModel = Json.fromJson(model.get("reservationEmailModel"),
                new TypeReference<Map<String, Object>>() {
                });
        //FIXME hack: reservationEmailModel should be a minimal and typed container
        reservationEmailModel.put("event", event);
        Optional<byte[]> receipt = TemplateProcessor.buildReceiptPdf(event, fileUploadManager, language,
                templateManager, reservationEmailModel);

        if (!receipt.isPresent()) {
            log.warn("was not able to generate the bill for reservation id " + reservationId + " for locale "
                    + language);
        }
        return receipt.orElse(null);
    });

    attachmentTransformer.put(Mailer.AttachmentIdentifier.TICKET_PDF, (model) -> {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        Ticket ticket = Json.fromJson(model.get("ticket"), Ticket.class);
        try {
            TicketReservation reservation = ticketReservationRepository
                    .findReservationById(ticket.getTicketsReservationId());
            TicketCategory ticketCategory = Json.fromJson(model.get("ticketCategory"), TicketCategory.class);
            Event event = eventRepository.findById(ticket.getEventId());
            Organization organization = organizationRepository
                    .getById(Integer.valueOf(model.get("organizationId"), 10));
            PDFTemplateGenerator pdfTemplateGenerator = TemplateProcessor.buildPDFTicket(
                    Locale.forLanguageTag(ticket.getUserLanguage()), event, reservation, ticket, ticketCategory,
                    organization, templateManager, fileUploadManager);
            pdfTemplateGenerator.generate().createPDF(baos);
        } catch (IOException e) {
            log.warn("was not able to generate ticket pdf for ticket with id" + ticket.getId(), e);
        }
        return baos.toByteArray();
    });
}

From source file:allout58.mods.techtree.tree.TreeManager.java

License:Open Source License

public String getTreeAsString() {
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(TechNode.class, new TechNodeGSON());
    Gson gson = gsonBuilder.create();/*from w ww .  j  a  v a  2s.  co  m*/

    TechNode[] nodes = currentTree.getRealNodes().toArray(new TechNode[currentTree.getNodes().size()]);
    return gson.toJson(nodes);
    //        return treeString;
}

From source file:allout58.mods.techtree.tree.TreeManager.java

License:Open Source License

public void makeFromReader(Reader reader) {
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(TechNode.class, new TechNodeGSON());
    gsonBuilder.registerTypeAdapter(ItemStack.class, new ItemStackGSON());
    Gson gson = gsonBuilder.create();/*from w  ww . j a  va  2  s.com*/

    TechNode[] nodes = gson.fromJson(reader, TechNode[].class);
    TechNode head = null;

    for (TechNode node : nodes) {
        if (node.getParentID().size() == 0) {
            head = node;
        } else {
            for (int parentID : node.getParentID()) {
                if (parentID == node.getId())
                    throw new RuntimeException("Tree node with a self-referencing parent: " + parentID);
                TechNode parent = nodes[parentID];
                node.addParentNode(parent);
                parent.addChildNode(node);
            }
        }
    }
    currentTree = new TechTree(head);
}

From source file:android.zetterstrom.com.forecast.ForecastClient.java

License:Apache License

private static Gson createGson() {
    final long MILLIS = 1000;
    GsonBuilder builder = new GsonBuilder();

    builder.registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
        public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
                throws JsonParseException {
            return new Date(json.getAsJsonPrimitive().getAsLong() * MILLIS);
        }//  w ww .  ja v a  2s .  c om
    });

    return builder.create();
}

From source file:angularBeans.util.AngularBeansUtil.java

License:Open Source License

public String getJson(Object object) {

    if (object instanceof Properties) {
        return new Gson().toJson(object);
    }/*from w ww .  j a  v  a 2 s  .c om*/

    GsonBuilder builder = new GsonBuilder().serializeNulls();

    if (object == null) {
        return new GsonBuilder().serializeNulls().create().toJson(null);

    }

    Class clazz = object.getClass();

    builder.registerTypeAdapter(LobWrapper.class, new ByteArrayJsonAdapter(cache));

    Gson gson = builder.create();

    return gson.toJson(object);

}