com.sector91.wit.routes.JsonConverter.java Source code

Java tutorial

Introduction

Here is the source code for com.sector91.wit.routes.JsonConverter.java

Source

// ~~~~~~~~~~~~~~~~~~~~~~~~~~ //

////   ///   /// ///       
//////  ////   // ////  //// 
/// ////  ////  //  ////  //// 
///  //// /////  //        ///  
///  //// ///// //  //// ////// 
//   /// /////  //  ////  ////  
// //// ///// //  ////  ////   
/////////////  ////  ////   
////////////   ///   ///    
///// /////   ////  ////    
///// /////   //// ///// // 
////  ////    /// ///// //  
///// /////   ////////////   
////  ////     ////  ////    

// The Web framework with class.

// ~~~~~~~~~~~~~~~~~~~~~~~~~~ //

// Copyright (c) 2013 Adam R. Nelson
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//   http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.sector91.wit.routes;

import com.google.common.base.Optional;
import com.google.gson.Gson;

public class JsonConverter<T> implements Converter<T> {

    private final Class<T> type;
    final Gson gson;

    public JsonConverter(Class<T> type) {
        this(type, new Gson());
    }

    public JsonConverter(Class<T> type, Gson gson) {
        this.type = type;
        this.gson = gson;
    }

    @Override
    public Optional<T> convert(String str) {
        try {
            return Optional.of(gson.fromJson(str, type));
        } catch (Exception ex) {
            return Optional.absent();
        }
    }
}