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:edu.isi.pegasus.planner.code.generator.condor.CondorGenerator.java

License:Apache License

/**
 * Writes out the metadata file, containing the metadata associated with the 
 * jobs in the submit directory in JSON//from   ww  w  .j  a  v  a  2  s  .  c om
 *
 * @param filename  basename of medatadata file to be written .
 * @param dag       the <code>ADag</code> object.
 *
 * @throws CodeGeneratorException in case of any error occuring code generation.
 */
protected void writeMetadataFile(String filename, ADag dag) throws CodeGeneratorException {
    // initialize file handler

    filename = mSubmitFileDir + File.separator + filename;

    Writer stream = null;
    try {
        stream = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
        GsonBuilder builder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().setPrettyPrinting();
        builder.registerTypeAdapter(GraphNode.class, new GraphNodeGSONAdapter()).create();
        builder.registerTypeAdapter(Profiles.class, new ProfilesGSONAdapter()).create();
        Gson gson = builder.create();
        String json = gson.toJson(dag);
        stream.write(json);

    } catch (Exception e) {
        throw new CodeGeneratorException("While writing to metadata FILE " + filename, e);
    } finally {
        if (stream != null) {
            try {
                stream.close();
            } catch (Exception e) {

            }
        }
    }

}

From source file:edu.isi.wings.portal.classes.JsonHandler.java

License:Apache License

public static Gson createRunGson() {
    GsonBuilder gson = new GsonBuilder();
    gson.registerTypeAdapter(Date.class, new DateSerializer());
    gson.registerTypeAdapter(Binding.class, new BindingSerializer());
    gson.registerTypeAdapter(ValueBinding.class, new BindingSerializer());
    return gson.disableHtmlEscaping().create();
    //return gson.disableHtmlEscaping().setPrettyPrinting().create();
}

From source file:edu.isi.wings.portal.classes.JsonHandler.java

License:Apache License

public static Gson createTemplateGson() {
    GsonBuilder gson = new GsonBuilder();
    gson.registerTypeAdapter(Link.class, new LinkSerializer());
    //gson.registerTypeAdapter(Node.class, new NodeSerializer());
    gson.registerTypeAdapter(Binding.class, new BindingSerializer());
    gson.registerTypeAdapter(Binding.class, new BindingDeserializer());
    gson.registerTypeAdapter(ValueBinding.class, new BindingSerializer());
    gson.registerTypeAdapter(ValueBinding.class, new BindingDeserializer());
    gson.registerTypeAdapter(SetExpression.class, new SetExpressionSerializer());
    gson.registerTypeAdapter(SetExpression.class, new SetExpressionDeserializer());
    //gson.registerTypeAdapter(URI.class, new URISerializer());
    //gson.registerTypeAdapter(String.class, new StringSerializer());
    gson.setDateFormat("yyyy-MM-dd");
    gson.disableHtmlEscaping();//from  w  w w .  j a  va 2 s  .  c  o  m
    //gson.setPrettyPrinting();
    return gson.create();
}

From source file:edu.jhuapl.dorset.agents.RemoteAgent.java

License:Open Source License

/**
 * Create a remote agent object//from  w  ww. j av a2  s  .co m
 *
 * @param urlBase  the base URL for the web services
 * @param client  the http client
 */
public RemoteAgent(String urlBase, HttpClient client) {
    // make sure end of url has slash
    this.urlBase = urlBase.replaceAll("/$", "") + "/";
    this.client = client;
    setUrls();
    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(ResponseStatus.Code.class, new ResponseCodeDeserializer());
    gsonBuilder.registerTypeAdapter(Response.Type.class, new ResponseTypeDeserializer());
    gson = gsonBuilder.create();
}

From source file:edu.mayo.cts2.framework.core.json.JsonConverter.java

License:Open Source License

/**
 * Builds the gson.//www .j  ava2  s .  c  om
 *
 * @return the gson
 */
protected Gson buildGson() {
    GsonBuilder gson = new GsonBuilder();

    gson.setDateFormat(ISO_DATE_FORMAT);

    gson.setExclusionStrategies(new ExclusionStrategy() {

        @Override
        public boolean shouldSkipField(FieldAttributes f) {
            return f.getName().equals(CHOICE_VALUE);
        }

        @Override
        public boolean shouldSkipClass(Class<?> clazz) {
            return false;
        }

    });

    gson.registerTypeAdapter(List.class, new EmptyCollectionSerializer());
    gson.registerTypeAdapter(TsAnyType.class, new TsAnyTypeSerializer());
    gson.registerTypeAdapter(Date.class, new DateTypeAdapter());
    gson.registerTypeAdapterFactory(new ChangeableTypeAdapterFactory());
    gson.registerTypeAdapterFactory(new ChangeableResourceTypeAdapterFactory());

    gson.setFieldNamingStrategy(new FieldNamingStrategy() {

        @Override
        public String translateName(Field field) {
            String fieldName = field.getName();

            char[] array = fieldName.toCharArray();

            if (array[0] == '_') {
                array = ArrayUtils.remove(array, 0);
            }

            String name = new String(array);
            if (name.endsWith(LIST_SUFFIX)) {
                name = StringUtils.removeEnd(name, LIST_SUFFIX);
            }

            return name;
        }

    });

    return gson.create();
}

From source file:edu.mit.media.funf.probe.builtin.AccountsProbe.java

License:Open Source License

@Override
protected GsonBuilder getGsonBuilder() {
    GsonBuilder builder = super.getGsonBuilder();
    builder.registerTypeAdapter(Account.class, new JsonSerializer<Account>() {
        @Override/* w w w.  ja  v a2 s . c  om*/
        public JsonElement serialize(Account src, Type typeOfSrc, JsonSerializationContext context) {
            JsonObject account = new JsonObject();
            account.addProperty(NAME, sensitiveData(src.name));
            account.addProperty(TYPE, src.type);
            return account;
        }
    });
    return builder;
}

From source file:edu.mit.media.funf.probe.builtin.SimpleProbe.java

License:Open Source License

@Override
protected GsonBuilder getGsonBuilder() {
    GsonBuilder builder = super.getGsonBuilder();
    JsonSerializer<T> serializer = getSerializer();
    if (serializer != null) {
        builder.registerTypeAdapter(getClass().getGenericInterfaces()[0], serializer);
    }/*from ww w.  j  a  v  a 2s  . c  o  m*/
    return builder;
}

From source file:edu.oregonstate.eecs.mcplan.domains.cosmic.CosmicGson.java

License:Open Source License

/**
 * Convenience method to register appropriate type adapters for Cosmic.
 * @param builder/*from w w w.  j a v a2 s  .c  om*/
 * @return
 */
public static Gson createGson(final CosmicParameters params, final GsonBuilder builder) {
    builder.registerTypeAdapter(MWNumericArray.class, new MWNumericArrayJsonSerializer());
    builder.registerTypeAdapterFactory(new CosmicState.GsonSerializer());
    builder.registerTypeAdapterFactory(new CosmicAction.GsonSerializer(params));
    return builder.create();
}

From source file:edu.oregonstate.eecs.mcplan.search.fsss.experiments.FsssJairExperiments.java

License:Open Source License

public static void main(final String[] args) throws Exception {
    final String experiment_file = args[0];
    final File root_directory;
    if (args.length > 1) {
        root_directory = new File(args[1]);
    } else {/*ww w  .j a  v  a  2  s .c  om*/
        root_directory = new File(".");
    }
    final CsvConfigurationParser csv_config = new CsvConfigurationParser(new FileReader(experiment_file));
    final String experiment_name = FilenameUtils.getBaseName(experiment_file);

    final File expr_directory = new File(root_directory, experiment_name);
    expr_directory.mkdirs();

    for (int expr = 0; expr < csv_config.size(); ++expr) {
        final KeyValueStore expr_config = csv_config.get(expr);
        final Configuration config = new Configuration(root_directory.getPath(), experiment_name, expr_config);

        LoggerManager.getLogger("log.domain").setLevel(Level.valueOf(config.get("log.domain")));
        LoggerManager.getLogger("log.search").setLevel(Level.valueOf(config.get("log.search")));

        final GsonBuilder gson_builder = new GsonBuilder();
        if (config.getBoolean("log.history.pretty")) {
            gson_builder.setPrettyPrinting();
        }

        if ("advising".equals(config.domain)) {
            final File domain = new File(config.get("rddl.domain") + ".rddl");
            final File instance = new File(config.get("rddl.instance") + ".rddl");
            final int max_grade = config.getInt("advising.max_grade");
            final int passing_grade = config.getInt("advising.passing_grade");
            final AdvisingParameters params = AdvisingRddlParser.parse(max_grade, passing_grade, domain,
                    instance);
            final AdvisingFsssModel model = new AdvisingFsssModel(config.rng_world, params);
            runGames(config, model, expr);
        }
        //         else if( "cliffworld".equals( config.domain ) ) {
        //            final CliffWorld.FsssModel model = new CliffWorld.FsssModel( config.rng_world, config );
        //            runGames( config, model, expr );
        //         }
        else if ("crossing".equals(config.domain)) {
            final File domain = new File(config.get("rddl.domain") + ".rddl");
            final File instance = new File(config.get("rddl.instance") + ".rddl");
            final IpcCrossingState s0 = IpcCrossingDomains.parse(domain, instance);
            final IpcCrossingFsssModel model = new IpcCrossingFsssModel(config.rng_world, s0);
            runGames(config, model, expr);
        } else if ("elevators".equals(config.domain)) {
            final File domain = new File(config.get("rddl.domain") + ".rddl");
            final File instance = new File(config.get("rddl.instance") + ".rddl");
            final IpcElevatorsState s0 = IpcElevatorsDomains.parse(domain, instance);
            final IpcElevatorsFsssModel model = new IpcElevatorsFsssModel(config.rng_world, s0);
            runGames(config, model, expr);
        }
        //         else if( "firegirl".equals( config.domain ) ) {
        //            final int T = config.getInt( "firegirl.T" );
        //            final double discount = config.getDouble( "discount" );
        //            final FactoredRepresenter<FireGirlState, ? extends FactoredRepresentation<FireGirlState>> base_repr;
        //            if( "local".equals( config.get( "firegirl.repr" ) ) ) {
        //               base_repr = new FireGirlLocalFeatureRepresenter();
        //            }
        //            else {
        //               throw new IllegalArgumentException( "firegirl.repr" );
        //            }
        //            final FireGirlParameters params = new FireGirlParameters( T, discount, base_repr );
        //            final FireGirlFsssModel model = new FireGirlFsssModel( params, config.rng_world );
        //            runGames( config, model, expr );
        //         }
        //         else if( "inventory".equals( config.domain ) ) {
        //            final String problem_name = config.get( "inventory.problem" );
        //            final InventoryProblem problem;
        //            if( "Dependent".equals( problem_name ) ) {
        //               problem = InventoryProblem.Dependent();
        //            }
        //            else if( "Geometric".equals( problem_name ) ) {
        //               problem = InventoryProblem.Geometric();
        //            }
        //            else if( "Geometric2".equals( problem_name ) ) {
        //               problem = InventoryProblem.Geometric2();
        //            }
        //            else if( "TwoProducts".equals( problem_name ) ) {
        //               problem = InventoryProblem.TwoProducts();
        //            }
        //            else {
        //               throw new IllegalArgumentException( "inventory.problem" );
        //            }
        //            final InventoryFsssModel model = new InventoryFsssModel( config.rng_world, problem );
        //            runGames( config, model, expr );
        //         }
        else if ("racegrid".equals(config.domain)) {
            final String circuit = config.get("racegrid.circuit");
            final int scale = config.getInt("racegrid.scale");
            final int T = config.getInt("racegrid.T");
            final RacegridState ex;
            if ("bbs_small".equals(circuit)) {
                ex = RacegridCircuits.barto_bradtke_singh_SmallTrack(config.rng_world, T, scale);
            } else if ("bbs_large".equals(circuit)) {
                ex = RacegridCircuits.barto_bradtke_singh_LargeTrack(config.rng_world, T, scale);
            } else {
                throw new IllegalArgumentException("racegrid.circuit");
            }
            final double slip = config.getDouble("racegrid.slip");
            final RacegridFsssModel model = new RacegridFsssModel(config.rng_world, ex, slip);
            runGames(config, model, expr);
        }
        //         else if( "rally".equals( config.domain ) ) {
        //            final RallyWorld.Parameters params = new RallyWorld.Parameters( config.rng_world, config );
        //            final RallyWorld.FsssModel model = new RallyWorld.FsssModel( params );
        //            runGames( config, model, expr );
        //         }
        else if ("relevant_irrelevant".equals(config.domain)) {
            final RelevantIrrelevant.Parameters params = new RelevantIrrelevant.Parameters(config);
            final RelevantIrrelevant.FsssModel model = new RelevantIrrelevant.FsssModel(config.rng_world,
                    params);
            runGames(config, model, expr);
        } else if ("sailing".equals(config.domain)) {
            final String world = config.get("sailing.world");
            final int V = config.getInt("sailing.V");
            final int T = config.getInt("sailing.T");
            final int dim = config.getInt("sailing.dim");
            final SailingState.Factory state_factory;
            if ("empty".equals(world)) {
                state_factory = new SailingWorlds.EmptyRectangleFactory(V, T, dim, dim);
            } else if ("island".equals(world)) {
                state_factory = new SailingWorlds.SquareIslandFactory(V, T, dim, dim / 3);
            } else if ("random".equals(world)) {
                final double p = config.getDouble("sailing.p");
                state_factory = new SailingWorlds.RandomObstaclesFactory(p, V, T, dim);
            } else {
                throw new IllegalArgumentException("sailing.world");
            }
            final SailingFsssModel model = new SailingFsssModel(config.rng_world, state_factory);
            runGames(config, model, expr);
        } else if ("saving".equals(config.domain)) {
            final SavingProblem.Parameters params = new SavingProblem.Parameters(config);
            final SavingProblem.FsssModel model = new SavingProblem.FsssModel(config.rng_world, params);
            runGames(config, model, expr);
        } else if ("spbj".equals(config.domain)) {
            final SpBjFsssModel model = new SpBjFsssModel(config.rng_world);
            runGames(config, model, expr);
        } else if ("tamarisk".equals(config.domain)) {
            final File domain = new File(config.get("rddl.domain") + ".rddl");
            final File instance = new File(config.get("rddl.instance") + ".rddl");
            final IpcTamariskState s0 = IpcTamariskDomains.parse(domain, instance);
            // TODO: Make this a parameter
            final IpcTamariskReachRepresenter base_repr = new IpcTamariskReachRepresenter(s0.params);
            final IpcTamariskFsssModel model = new IpcTamariskFsssModel(config.rng_world, s0.params, s0,
                    base_repr);
            runGames(config, model, expr);
        } else if ("tetris".equals(config.domain)) {
            final int T = config.getInt("tetris.T");
            final int Nrows = config.getInt("tetris.Nrows");
            final TetrisParameters params = new TetrisParameters(T, Nrows);
            final FactoredRepresenter<TetrisState, ? extends FactoredRepresentation<TetrisState>> base_repr;
            if ("ground".equals(config.get("tetris.repr"))) {
                base_repr = new TetrisGroundRepresenter(params);
            } else if ("bertsekas".equals(config.get("tetris.repr"))) {
                base_repr = new TetrisBertsekasRepresenter(params);
            } else {
                throw new IllegalArgumentException("tetris.repr");
            }
            final TetrisFsssModel model = new TetrisFsssModel(config.rng_world, params, base_repr);

            gson_builder.registerTypeAdapter(TetrisState.class, new TetrisState.GsonSerializer());
            gson_builder.registerTypeAdapter(TetrisAction.class, new TetrisAction.GsonSerializer());
            gson = gson_builder.create();

            runGames(config, model, expr);
        } else if ("weinstein_littman".equals(config.domain)) {
            final WeinsteinLittman.Parameters params = new WeinsteinLittman.Parameters(config);
            final WeinsteinLittman.FsssModel model = new WeinsteinLittman.FsssModel(config.rng_world, params);
            runGames(config, model, expr);
        } else {
            throw new IllegalArgumentException("domain = " + config.domain);
        }
    }

    System.out.println("Alles gut!");
}

From source file:edu.temple.controller.EditMenuServlet.java

/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods./* ww w. j  ava2 s . co m*/
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    String menuString = request.getParameter("menu");
    String truckName = request.getParameter("truckName");

    GsonBuilder gsonBuilder = new GsonBuilder();
    gsonBuilder.registerTypeAdapter(Menu.class, new MenuDeserializer());
    gsonBuilder.registerTypeAdapter(Item.class, new ItemDeserializer());
    Gson gson = gsonBuilder.create();

    Menu[] menuArray = gson.fromJson(menuString, Menu[].class);

    try (PrintWriter out = response.getWriter()) {
        out.print(menuArray[2].toString());
    }
}