Commit fe9b171e17c631d34c966ababc77c3df7c4df656

Authored by Nathanael Jourdane
1 parent 84dce244
Exists in master

Remove old EpnTap controller files, the VOTable package should be used instead.

src/main/java/eu/omp/irap/vespa/epntapclient/controller/EpnTapController.java deleted
@@ -1,58 +0,0 @@ @@ -1,58 +0,0 @@
1 -/**  
2 - * This file is a part of EpnTAPClient.  
3 - * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer.  
4 - * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861  
5 - * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie.  
6 - *  
7 - * This program is free software: you can  
8 - * redistribute it and/or modify it under the terms of the GNU General Public License as published  
9 - * by the Free Software Foundation, either version 3 of the License, or (at your option) any later  
10 - * version. This program is distributed in the hope that it will be useful, but WITHOUT ANY  
11 - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR  
12 - * PURPOSE. See the GNU General Public License for more details. You should have received a copy of  
13 - * the GNU General Public License along with this program. If not, see  
14 - * <http://www.gnu.org/licenses/>.  
15 - */  
16 -  
17 -package eu.omp.irap.vespa.epntapclient.controller;  
18 -  
19 -import eu.omp.irap.vespa.epntapclient.model.EpnTapModel;  
20 -import eu.omp.irap.vespa.epntapclient.view.EpnTapView;  
21 -  
22 -/**  
23 - * The main class of the Controller of the application.  
24 - *  
25 - * @author N. Jourdane  
26 - */  
27 -public class EpnTapController {  
28 -  
29 - /** The view */  
30 - private EpnTapView view;  
31 -  
32 - /** The model */  
33 - private EpnTapModel model;  
34 -  
35 - /**  
36 - * Method constructor  
37 - */  
38 - public EpnTapController() {  
39 - model = new EpnTapModel();  
40 - view = new EpnTapView(this);  
41 - view.fillTable(EpnTapModel.getEPNTAPServices().getServices());  
42 - }  
43 -  
44 - /**  
45 - * @return The model of the application.  
46 - */  
47 - public EpnTapModel getModel() {  
48 - return model;  
49 - }  
50 -  
51 - /**  
52 - * @return The model of the application.  
53 - */  
54 - public EpnTapView getView() {  
55 - return view;  
56 - }  
57 -  
58 -}  
src/main/java/eu/omp/irap/vespa/epntapclient/controller/TAPServices.java deleted
@@ -1,171 +0,0 @@ @@ -1,171 +0,0 @@
1 -/**  
2 - * This file is a part of EpnTAPClient.  
3 - * This program aims to provide EPN-TAP support for software clients, like CASSIS spectrum analyzer.  
4 - * See draft specifications: https://voparis-confluence.obspm.fr/pages/viewpage.action?pageId=559861  
5 - * Copyright (C) 2016 Institut de Recherche en Astrophysique et Planétologie.  
6 - *  
7 - * This program is free software: you can  
8 - * redistribute it and/or modify it under the terms of the GNU General Public License as published  
9 - * by the Free Software Foundation, either version 3 of the License, or (at your option) any later  
10 - * version. This program is distributed in the hope that it will be useful, but WITHOUT ANY  
11 - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR  
12 - * PURPOSE. See the GNU General Public License for more details. You should have received a copy of  
13 - * the GNU General Public License along with this program. If not, see  
14 - * <http://www.gnu.org/licenses/>.  
15 - */  
16 -  
17 -package eu.omp.irap.vespa.epntapclient.controller;  
18 -  
19 -import java.io.File;  
20 -import java.io.FileNotFoundException;  
21 -import java.io.PrintWriter;  
22 -import java.io.UnsupportedEncodingException;  
23 -import java.nio.ByteBuffer;  
24 -import java.util.ArrayList;  
25 -import java.util.Base64;  
26 -import java.util.List;  
27 -import java.util.logging.Level;  
28 -  
29 -import javax.xml.parsers.DocumentBuilder;  
30 -import javax.xml.parsers.DocumentBuilderFactory;  
31 -  
32 -import org.w3c.dom.Document;  
33 -import org.w3c.dom.NodeList;  
34 -  
35 -import com.google.gson.Gson;  
36 -  
37 -import eu.omp.irap.vespa.epntapclient.model.TAPField;  
38 -import eu.omp.irap.vespa.epntapclient.model.TAPService;  
39 -import eu.omp.irap.vespa.epntapclient.model.VOTableTags;  
40 -import eu.omp.irap.vespa.epntapclient.utils.Const;  
41 -import eu.omp.irap.vespa.epntapclient.utils.Err;  
42 -import eu.omp.irap.vespa.epntapclient.utils.Log;  
43 -  
44 -/**  
45 - * This class provide methods to get and use TAP services.  
46 - *  
47 - * @author N. Jourdane  
48 - **/  
49 -public class TAPServices {  
50 - /** The list of all fields (ie. columns VOTABLE). */  
51 - private List<TAPField> fields;  
52 -  
53 - /** The list of all services returned by the query. */  
54 - private List<TAPService> tapServices;  
55 -  
56 - /** The byte array representation of the stream data stored in the XML document. */  
57 - private byte[] byteArray;  
58 -  
59 - /**  
60 - * Method constructor  
61 - *  
62 - * @param xmlFileName The name of XML file to parse in order to get the list of services.  
63 - */  
64 - public TAPServices(String xmlFileName) {  
65 -  
66 - // Get document  
67 - Document doc = null;  
68 - try {  
69 - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();  
70 - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();  
71 - doc = dBuilder.parse(new File(xmlFileName));  
72 - doc.getDocumentElement().normalize();  
73 - } catch (FileNotFoundException e1) {  
74 - Log.LOGGER.log(Level.SEVERE, Err.NOT_FOUND + xmlFileName, e1);  
75 - return;  
76 - } catch (Exception e2) {  
77 - Log.LOGGER.log(Level.SEVERE, Err.BAD_XML_DOC + xmlFileName, e2);  
78 - return;  
79 - }  
80 -  
81 - // Get fields  
82 - NodeList nodeList = doc.getElementsByTagName(VOTableTags.TAG_NAME_FIELD);  
83 - fields = new ArrayList<>();  
84 - for (int i = 0; i < nodeList.getLength(); i++) {  
85 - fields.add(new TAPField(nodeList.item(i)));  
86 - }  
87 -  
88 - // Get byte array  
89 - String stream = doc.getElementsByTagName(VOTableTags.TAG_NAME_STREAM).item(0)  
90 - .getTextContent()  
91 - .replaceAll("(\\r|\\n)", ""); //$NON-NLS-1$ //$NON-NLS-2$  
92 - byteArray = Base64.getDecoder().decode(stream);  
93 - }  
94 -  
95 - /**  
96 - * Fill the services list from the byte array.  
97 - */  
98 - public void fillServices() {  
99 - List<TAPService> services = new ArrayList<>();  
100 - TAPService service = new TAPService();  
101 -  
102 - for (int cursor = 0, nValue = 0; cursor < byteArray.length; nValue++) {  
103 - TAPField column = fields.get(nValue % fields.size());  
104 - Object value = null;  
105 -  
106 - if (column.getDatatype().equals(VOTableTags.SHORT_TYPE)) {  
107 - byte[] shortArray = { byteArray[cursor + 0], byteArray[cursor + 1] };  
108 - value = Integer.valueOf(shortArray[0] * (2 ^ 8) + shortArray[1]);  
109 - cursor += shortArray.length;  
110 - } else {  
111 - byte[] head = { byteArray[cursor + 0], byteArray[cursor + 1], byteArray[cursor + 2],  
112 - byteArray[cursor + 3] };  
113 - int charSize = column.getDatatype().equals(VOTableTags.UNICODE_CHAR_TYPE) ? 2 : 1;  
114 - int stringLength = ByteBuffer.wrap(head).getInt() * charSize;  
115 - cursor += head.length;  
116 -  
117 - value = new String();  
118 - for (int j = 0; j < stringLength  
119 - && cursor < byteArray.length; cursor += charSize, j += charSize) {  
120 - int c = (0xFF) & (charSize == 2  
121 - ? (int) (byteArray[cursor] * (2 ^ 8) + byteArray[cursor + 1])  
122 - : byteArray[cursor]);  
123 - value = value + Character.toString((char) c);  
124 - }  
125 - }  
126 -  
127 - if (nValue % fields.size() == 0) {  
128 - service = new TAPService();  
129 - } else if (nValue % fields.size() == fields.size() - 1) {  
130 - services.add(service);  
131 - } else {  
132 - service.setProperty(column.getName(), value);  
133 - }  
134 - }  
135 -  
136 - tapServices = services;  
137 - }  
138 -  
139 - /**  
140 - * @return The list of services.  
141 - */  
142 - public List<TAPService> getServices() {  
143 - return tapServices;  
144 - }  
145 -  
146 - /**  
147 - * @return The list of VOTable columns.  
148 - */  
149 - public List<TAPField> getFileds() {  
150 - return fields;  
151 - }  
152 -  
153 - /**  
154 - * Print the content of all the services in the specified file in JSON format.  
155 - *  
156 - * @param fileName The name of the file where the services lists is printed.  
157 - */  
158 - public void printToFile(String fileName) {  
159 - PrintWriter writer;  
160 - String json = new Gson().toJson(tapServices);  
161 - try {  
162 - writer = new PrintWriter(fileName, Const.CHARACTER_SET);  
163 - writer.println(json);  
164 - writer.close();  
165 - } catch (FileNotFoundException e1) {  
166 - Log.LOGGER.log(Level.SEVERE, Err.NOT_FOUND, e1);  
167 - } catch (UnsupportedEncodingException e2) {  
168 - Log.LOGGER.log(Level.SEVERE, Err.WRONG_ENCODING, e2);  
169 - }  
170 - }  
171 -}