/******************************************************************************* * Copyright (C) 2018, OpenRefine contributors * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. ******************************************************************************/ package com.google.refine.browsing; import java.io.IOException; import java.util.Collections; import java.util.List; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.refine.browsing.Engine.Mode; import com.google.refine.browsing.facets.FacetConfig; import com.google.refine.util.ParsingUtilities; public class EngineConfig { protected final List<FacetConfig> _facets; protected final Mode _mode; @JsonCreator public EngineConfig( @JsonProperty("facets") List<FacetConfig> facets, @JsonProperty("mode") Mode mode) { _facets = facets == null ? Collections.emptyList() : facets; _mode = mode == null ? Mode.RowBased : mode; } @JsonProperty("mode") public Mode getMode() { return _mode; } @JsonProperty("facets") public List<FacetConfig> getFacetConfigs() { return _facets; } public static EngineConfig reconstruct(String json) { if(json == null) { return new EngineConfig(Collections.emptyList(), Mode.RowBased); } try { return ParsingUtilities.mapper.readValue(json, EngineConfig.class); } catch (IOException e) { e.printStackTrace(); return null; } } }