Blame view

src/main/java/eu/omp/irap/vespa/epntapclient/votable/Utils.java 2.54 KB
b6256781   Nathanael Jourdane   Implement StringJ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
 * This file is a part of EpnTAPClient.
 * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer.
 * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861
 * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie.
 * 
 * This program is free software: you can
 * redistribute it and/or modify it under the terms of the GNU General Public License as published
 * by the Free Software Foundation, either version 3 of the License, or (at your option) any later
 * version. This program is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 * PURPOSE. See the GNU General Public License for more details. You should have received a copy of
 * the GNU General Public License along with this program. If not, see
 * <http://www.gnu.org/licenses/>.
 */

package eu.omp.irap.vespa.epntapclient.votable;

5d3c344e   Nathanael Jourdane   Use Java logging ...
19
20
import java.io.FileWriter;
import java.io.IOException;
b6256781   Nathanael Jourdane   Implement StringJ...
21
22
import java.util.ArrayList;
import java.util.List;
5d3c344e   Nathanael Jourdane   Use Java logging ...
23
24
25
26
27
28
import java.util.logging.Logger;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import eu.omp.irap.vespa.epntapclient.utils.Const;
b6256781   Nathanael Jourdane   Implement StringJ...
29
30
31
32
33

/**
 * @author N. Jourdane
 */
public class Utils {
5d3c344e   Nathanael Jourdane   Use Java logging ...
34
35
36
	/** The logger for the class Utils. */
	private static final Logger logger = Logger.getLogger(Utils.class.getName());

b6256781   Nathanael Jourdane   Implement StringJ...
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
	public static class StringJoiner {
		String separator;
		List<String> list;
		String string;

		public StringJoiner(String separator) {
			this.separator = separator;
			this.list = new ArrayList();
			string = "";
		}

		public void add(String text) {
			if ("".equals(string)) {
				string = text;
			} else {
				string += separator + text;
			}
		}

		@Override
		public String toString() {
			return string;
		}
	}
5d3c344e   Nathanael Jourdane   Use Java logging ...
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83

	/**
	 * Print the specified object in JSON format in a file on the temp directory.
	 * 
	 * @param title The name of the file.
	 * @param obj the object to print in a file.
	 * @return The path of the file.
	 */
	public static String printObject(String title, Object obj) {
		Gson gson = new GsonBuilder().setPrettyPrinting().create();
		String json = gson.toJson(obj);
		String path = Const.TMP_DIR + "/" + title + ".json";
		try (FileWriter writer = new FileWriter(path)) {
			writer.write(json);

		} catch (IOException e) {
			logger.warning("Can not print in the file " + path + e);
		}
		logger.info("A json file representing " + title + " (" + obj.getClass().getName()
				+ ") has been created on " + path);

		return path;
	}
b6256781   Nathanael Jourdane   Implement StringJ...
84
}