de.elanev.studip.android.app.backend.datamodel.Settings.java Source code

Java tutorial

Introduction

Here is the source code for de.elanev.studip.android.app.backend.datamodel.Settings.java

Source

/*
 * Copyright (c) 2015 ELAN e.V.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 */

package de.elanev.studip.android.app.backend.datamodel;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.IOException;
import java.util.HashMap;

/**
 * @author joern
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class Settings {

    @JsonProperty("SEM_TYPE")
    public HashMap<Integer, SeminarTypeData> semTypes;

    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class SeminarTypeData {
        @JsonProperty("name")
        public String name;
        //    @JsonProperty("class") public int class;
    }

    public static Settings fromJson(String jsonString) {
        ObjectMapper mapper = new ObjectMapper();
        Settings settings = null;
        try {
            settings = mapper.readValue(jsonString, Settings.class);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return settings;
    }

    public String toJson() {
        ObjectMapper mapper = new ObjectMapper();
        String json = "";
        try {
            json = mapper.writeValueAsString(this);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return json;
    }

    /*
     * Unused /studip/settings properties
     */
    //  @JsonProperty("API_VERSION") public String apiVersion;
    //  @JsonProperty("ALLOW_CHANGE_USERNAME") public boolean isAllowChangeUsername;
    //  @JsonProperty("ALLOW_CHANGE_EMAIL") public boolean isAllowChangeEmail;
    //  @JsonProperty("ALLOW_CHANGE_NAME") public boolean isAllowChangeName;
    //  @JsonProperty("ALLOW_CHANGE_TITLE") public boolean isAllowChangeTitle;
    //
    //  @JsonProperty("INST_TYPE") public HashMap<Integer, InstituteType> instituteTypes;
    //
    //  public static class InstituteType {
    //    @JsonProperty("name") String name;
    //  }
    //
    //  @JsonProperty("SEM_CLASS") public HashMap<Integer, SeminarClass> seminarClasses;
    //
    //  public static class SeminarClass {
    //    @JsonProperty("name") public String name;
    //    @JsonProperty("compact_mode") public int compactMode;
    //    @JsonProperty("workgroup_mode") public int workgroupMode;
    //    @JsonProperty("only_inst_user") public int onlyInstUser;
    //    @JsonProperty("turnus_default") public int turnusDefault;
    //    @JsonProperty("default_read_level") public int defaultReadLevel;
    //    @JsonProperty("default_write_level") public int defaultWriteLevel;
    //    @JsonProperty("bereiche") public int bereiche; //TODO: Shouldn't this be areas, domains, realms?
    //    @JsonProperty("show_browse") public int showBrowse;
    //    @JsonProperty("write_access_nobody") public int writeAccessNobody;
    //    @JsonProperty("topic_create_autor") public int topicCreateAutor;
    //    @JsonProperty("visible") public int visible; //TODO: Maybe boolean would be better
    //    @JsonProperty("course_creation_forbidden") public int courseCreationForbidden; //TODO: Maybe bool?
    //    @JsonProperty("overview") public String overview;
    //    @JsonProperty("forum") public String forum;
    //    @JsonProperty("admin") public String admin;
    //    @JsonProperty("documents") public String documents;
    //    @JsonProperty("schedule") public String schedule;
    //    @JsonProperty("participants") public String participants;
    //    @JsonProperty("literature") public String literature;
    //    @JsonProperty("scm") public String scm;
    //    @JsonProperty("wiki") public String wiki;
    //    @JsonProperty("resources") public String resources;
    //    @JsonProperty("calendar") public String calender;
    //    @JsonProperty("elearning_interface") public String elearningInterface;
    //    @JsonProperty("modules") public HashMap<String, Module> modules;
    //    @JsonProperty("description") public String description;
    //    @JsonProperty("create_description") public String createDescription;
    //    @JsonProperty("studygroup_mode") public int studygroupMode;
    //    @JsonProperty("admission_prelim_default") public int adminssionPrelimDefault;
    //    @JsonProperty("admission_type_default") public int admissionTypeDefault;
    //    @JsonProperty("title_dozent") public String titleDozent;
    //    @JsonProperty("title_dozent_plural") public String titleDozentPlural;
    //    @JsonProperty("title_tutor") public String titleTutor;
    //    @JsonProperty("title_tutor_plural") public String titleTutorPlural;
    //    @JsonProperty("title_autor") public String titleAutor;
    //    @JsonProperty("title_autor_plural") public String titleAutorPlural;
    //    @JsonProperty("mkdate") public long mkdate;
    //    @JsonProperty("chdate") public long chdate;
    //  }
    //
    //  public static class Module {
    //    @JsonProperty("activated") public int activated; //TODO: Maybe bool?
    //    @JsonProperty("sticky") public int sticky; //TODO bool?
    //  }
    //
    //  @JsonProperty("TERMIN_TYP") public HashMap<Integer, TerminType> terminTypes;
    //
    //  public static class TerminType {
    //    @JsonProperty("name") public String name;
    //    @JsonProperty("sitzung") public int sitzung;
    //    @JsonProperty("color") public String color;
    //  }
    //
    //  @JsonProperty("PERS_TERMIN_KAT") public ArrayList<PersonalTerminKatergorie> personalTerminKatergories;
    //
    //  public static class PersonalTerminKatergorie {
    //    @JsonProperty("id") public int id;
    //    @JsonProperty("name") public String name;
    //    @JsonProperty("color") public String color;
    //  }
    //
    //  @JsonProperty("SUPPORT_EMAIL") public String supportEmail;
    //
    //  @JsonProperty("TITLES") public HashMap<String, Title> titles;
    //
    //  public static class Title {
    //    @JsonProperty("singular") public String singular;
    //    @JsonProperty("plural") public String plural;
    //  }
    //
    //  @JsonProperty("UNI_NAME_CLEAN") public String uniNameClean;
}