Commit 76a922bcec2b0e95b404cb3ca7359e15e84e5f99

Authored by Nathanael Jourdane
1 parent fd93317f
Exists in master

Improve Javadoc.

Showing 21 changed files with 373 additions and 137 deletions   Show diff stats
src/main/java/eu/omp/irap/vespa/epntapclient/gui/mainpanel/MainPanelCtrl.java
@@ -92,14 +92,23 @@ public class MainPanelCtrl extends EpnTapController { @@ -92,14 +92,23 @@ public class MainPanelCtrl extends EpnTapController {
92 return requestPanelCtrl; 92 return requestPanelCtrl;
93 } 93 }
94 94
  95 + /**
  96 + * @return The controller of the service panel.
  97 + */
95 public ServicesPanelCtrl getServicePanelCtrl() { 98 public ServicesPanelCtrl getServicePanelCtrl() {
96 return servicesPanelCtrl; 99 return servicesPanelCtrl;
97 } 100 }
98 101
  102 + /**
  103 + * @return The controller of the result panel.
  104 + */
99 public ResultPanelCtrl getResultPanelCtrl() { 105 public ResultPanelCtrl getResultPanelCtrl() {
100 return resultPanelCtrl; 106 return resultPanelCtrl;
101 } 107 }
102 108
  109 + /**
  110 + * @return The main view of the application.
  111 + */
103 public MainPanelView getView() { 112 public MainPanelView getView() {
104 return view; 113 return view;
105 } 114 }
src/main/java/eu/omp/irap/vespa/epntapclient/gui/mainpanel/MainPanelView.java
@@ -50,8 +50,7 @@ public class MainPanelView extends JPanel { @@ -50,8 +50,7 @@ public class MainPanelView extends JPanel {
50 /** 50 /**
51 * The main view constructor, which create all the panels. 51 * The main view constructor, which create all the panels.
52 * 52 *
53 - * @param voTableServicesView The view to put in the services panel, built by ServicesController  
54 - * @param voTableResultsView The view to put in the results panel, built by ResultsController. 53 + * @param mainPanelCtrl The controller of the main panel.
55 */ 54 */
56 55
57 public MainPanelView(MainPanelCtrl mainPanelCtrl) { 56 public MainPanelView(MainPanelCtrl mainPanelCtrl) {
@@ -62,7 +61,7 @@ public class MainPanelView extends JPanel { @@ -62,7 +61,7 @@ public class MainPanelView extends JPanel {
62 } 61 }
63 62
64 /** 63 /**
65 - * Build and fill the GUI. 64 + * Build the panel and add GUI elements on it.
66 */ 65 */
67 private void buildMainView() { 66 private void buildMainView() {
68 setLayout(new BorderLayout()); 67 setLayout(new BorderLayout());
@@ -77,6 +76,9 @@ public class MainPanelView extends JPanel { @@ -77,6 +76,9 @@ public class MainPanelView extends JPanel {
77 setSizes(); 76 setSizes();
78 } 77 }
79 78
  79 + /**
  80 + * Set the preferred and minimum size of panels.
  81 + */
80 private void setSizes() { 82 private void setSizes() {
81 servicesPanel.setPreferredSize( 83 servicesPanel.setPreferredSize(
82 new Dimension(GUIDim.LEFT_PANEL_WIDTH, GUIDim.TOP_PANEL_HEIGHT)); 84 new Dimension(GUIDim.LEFT_PANEL_WIDTH, GUIDim.TOP_PANEL_HEIGHT));
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/RequestPanelCtrl.java
@@ -29,26 +29,26 @@ public class RequestPanelCtrl extends RequestCtrl implements RequestPanelListene @@ -29,26 +29,26 @@ public class RequestPanelCtrl extends RequestCtrl implements RequestPanelListene
29 /** The logger for the class RequestPanelCtrl. */ 29 /** The logger for the class RequestPanelCtrl. */
30 private static final Logger LOGGER = Logger.getLogger(RequestPanelCtrl.class.getName()); 30 private static final Logger LOGGER = Logger.getLogger(RequestPanelCtrl.class.getName());
31 31
32 - MainPanelCtrl mainPanelCtrl; 32 + /** The controller of the main panel. */
  33 + private MainPanelCtrl mainPanelCtrl;
33 34
34 - RequestPanelView view; 35 + /** The view of the request panel. */
  36 + private RequestPanelView view;
35 37
36 38
37 /** 39 /**
38 * Constructor of RequestPanelCtrl 40 * Constructor of RequestPanelCtrl
39 * 41 *
40 - * @param epnTapCtrl 42 + * @param mainPanelCtrl The controller of the main panel.
41 */ 43 */
42 public RequestPanelCtrl(MainPanelCtrl mainPanelCtrl) { 44 public RequestPanelCtrl(MainPanelCtrl mainPanelCtrl) {
43 this.mainPanelCtrl = mainPanelCtrl; 45 this.mainPanelCtrl = mainPanelCtrl;
44 view = new RequestPanelView(this); 46 view = new RequestPanelView(this);
45 } 47 }
46 48
47 - public void setMainPanelCtrl(MainPanelCtrl mainPanelCtrl) {  
48 - this.mainPanelCtrl = mainPanelCtrl;  
49 - view = new RequestPanelView(this);  
50 - }  
51 - 49 + /**
  50 + * @return The view of the request panel.
  51 + */
52 public RequestPanelView getView() { 52 public RequestPanelView getView() {
53 return view; 53 return view;
54 } 54 }
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/RequestPanelListener.java
@@ -22,24 +22,24 @@ package eu.omp.irap.vespa.epntapclient.gui.requestpanel; @@ -22,24 +22,24 @@ package eu.omp.irap.vespa.epntapclient.gui.requestpanel;
22 public interface RequestPanelListener { 22 public interface RequestPanelListener {
23 23
24 /** 24 /**
25 - * ...  
26 - *  
27 - * @param text 25 + * Method called when the used click on the 'Send query' button.
  26 + *
  27 + * @param query The query
28 */ 28 */
29 - void onSendButtonClicked(String text); 29 + void onSendButtonClicked(String query);
30 30
31 /** 31 /**
32 - * ... 32 + * Method called when the user remove a parameter with a parameter field.
33 * 33 *
34 - * @param paramName 34 + * @param paramName The name of the removed parameter
35 */ 35 */
36 void onParameterRemoved(String paramName); 36 void onParameterRemoved(String paramName);
37 37
38 /** 38 /**
39 - * ... 39 + * Method called when the user change a parameter (add or update) with a parameter field.
40 * 40 *
41 - * @param paramName  
42 - * @param query 41 + * @param paramName The name of the changed parameter.
  42 + * @param paramValue The new value of the parameter.
43 */ 43 */
44 void onParameterChanged(String paramName, Object paramValue); 44 void onParameterChanged(String paramName, Object paramValue);
45 45
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/RequestPanelView.java
@@ -45,74 +45,114 @@ public class RequestPanelView extends JPanel { @@ -45,74 +45,114 @@ public class RequestPanelView extends JPanel {
45 /** The serial version UID. */ 45 /** The serial version UID. */
46 private static final long serialVersionUID = 1L; 46 private static final long serialVersionUID = 1L;
47 47
  48 + /** The height of the buttons panel. */
  49 + private static final int BUTTON_PANEL_HEIGHT = 20;
  50 +
  51 + /** The listener for the request panel. */
  52 + RequestPanelListener listener;
  53 +
48 /** The text area where the user write the query. */ 54 /** The text area where the user write the query. */
49 protected JTextArea queryArea; 55 protected JTextArea queryArea;
50 56
51 - /**  
52 - * The parameters fields for the request.  
53 - */ 57 + /** The parameters fields for the request. */
54 private List<ParamField> paramFields; 58 private List<ParamField> paramFields;
55 59
  60 + /** A field to set the target_name parameter. */
56 private TargetNameField targetNameField; 61 private TargetNameField targetNameField;
57 62
  63 + /** A field to set the time_range parameter. */
58 private DateRangeField timeRangeField; 64 private DateRangeField timeRangeField;
59 65
  66 + /** A field to set the spectral_range parameter. */
60 private FloatRangeField spectralRangeField; 67 private FloatRangeField spectralRangeField;
61 68
  69 + /** A field to set the dataproduct_type parameter. */
62 private DataProductTypeField dataProductTypeField; 70 private DataProductTypeField dataProductTypeField;
63 71
64 - /** The height of the buttons panel. */  
65 - private static final int BUTTON_PANEL_HEIGHT = 20;  
66 -  
67 - RequestPanelListener requestPanelListener; 72 + /** The GUI element of the button to send the query. */
  73 + private JButton buttonSend;
68 74
69 75
70 /** 76 /**
71 * Method constructor 77 * Method constructor
72 * 78 *
73 - * @param mainView The EPN-TAP main view. 79 + * @param requestPanelListener The listener of the request panel view.
74 */ 80 */
75 public RequestPanelView(RequestPanelListener requestPanelListener) { 81 public RequestPanelView(RequestPanelListener requestPanelListener) {
76 - this.requestPanelListener = requestPanelListener; 82 + listener = requestPanelListener;
77 buildRequestPanel(); 83 buildRequestPanel();
78 } 84 }
79 85
  86 + /**
  87 + * Add GUI elements to the request panel.
  88 + */
80 private void buildRequestPanel() { 89 private void buildRequestPanel() {
81 setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); 90 setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
82 91
83 - this.add(buildParamPanel(), this);  
84 - this.add(buildQueryPanel(), this);  
85 - this.add(buildButtonPanel(), this);  
86 - } 92 + JPanel queryPanel = new JPanel();
  93 + queryPanel.setBorder(BorderFactory.createTitledBorder("Query for the selected service(s)"));
  94 + queryPanel.setLayout(new BorderLayout());
  95 + queryPanel.add(getQueryArea(), BorderLayout.CENTER);
87 96
88 - /**  
89 - * Build a JPanel containing graphical elements to build the query user-friendly.  
90 - *  
91 - * @return The JPanel.  
92 - */  
93 - public JPanel buildParamPanel() {  
94 - paramFields = new ArrayList<>();  
95 - paramFields.add(getTargetNameField());  
96 - paramFields.add(getTimeRangeField());  
97 - paramFields.add(getSpectralRangeField());  
98 - paramFields.add(getDataProductTypeField());  
99 JPanel paramPanel = new JPanel(); 97 JPanel paramPanel = new JPanel();
100 paramPanel.setLayout(new BoxLayout(paramPanel, BoxLayout.Y_AXIS)); 98 paramPanel.setLayout(new BoxLayout(paramPanel, BoxLayout.Y_AXIS));
101 paramPanel.setBorder(BorderFactory.createTitledBorder("Query parameters")); 99 paramPanel.setBorder(BorderFactory.createTitledBorder("Query parameters"));
102 -  
103 - for (ParamField field : paramFields) { 100 + for (ParamField field : getParamFields()) {
104 paramPanel.add(field); 101 paramPanel.add(field);
105 } 102 }
106 103
107 - return paramPanel; 104 + JPanel buttonPanel = new JPanel();
  105 + buttonPanel.add(getButtonSend());
  106 + buttonPanel.setMaximumSize(new Dimension(1000, BUTTON_PANEL_HEIGHT));
  107 +
  108 + this.add(paramPanel, this);
  109 + this.add(queryPanel, this);
  110 + this.add(buttonPanel, this);
108 } 111 }
109 112
110 /** 113 /**
111 - * @return the data product field 114 + * Get the GUI element of the send button. If it doesn't exist, create it.
  115 + *
  116 + * @return The button.
  117 + */
  118 + public JButton getButtonSend() {
  119 + if (buttonSend == null) {
  120 + buttonSend = new JButton("Send query");
  121 + buttonSend.addActionListener(new ActionListener() {
  122 +
  123 + @Override
  124 + public void actionPerformed(ActionEvent e) {
  125 + listener.onSendButtonClicked(queryArea.getText());
  126 + }
  127 + });
  128 + }
  129 + return buttonSend;
  130 + }
  131 +
  132 + /**
  133 + * Get the GUI element of the parameters fields list. If it doesn't exist, create it.
  134 + *
  135 + * @return The parameters fields list.
  136 + */
  137 + public List<ParamField> getParamFields() {
  138 + if (paramFields == null) {
  139 + paramFields = new ArrayList<>();
  140 + paramFields.add(getTargetNameField());
  141 + paramFields.add(getTimeRangeField());
  142 + paramFields.add(getSpectralRangeField());
  143 + paramFields.add(getDataProductTypeField());
  144 + }
  145 + return paramFields;
  146 + }
  147 +
  148 + /**
  149 + * Get the GUI element of the data product field. If it doesn't exist, create it.
  150 + *
  151 + * @return The data product field.
112 */ 152 */
113 public DataProductTypeField getDataProductTypeField() { 153 public DataProductTypeField getDataProductTypeField() {
114 if (dataProductTypeField == null) { 154 if (dataProductTypeField == null) {
115 - dataProductTypeField = new DataProductTypeField(requestPanelListener, 155 + dataProductTypeField = new DataProductTypeField(listener,
116 "dataproduct_type"); 156 "dataproduct_type");
117 } 157 }
118 158
@@ -120,82 +160,64 @@ public class RequestPanelView extends JPanel { @@ -120,82 +160,64 @@ public class RequestPanelView extends JPanel {
120 } 160 }
121 161
122 /** 162 /**
123 - * @return the spectral range field 163 + * Get the GUI element of the spectral_range field. If it doesn't exist, create it.
  164 + *
  165 + * @return The spectral_range field.
124 */ 166 */
125 public FloatRangeField getSpectralRangeField() { 167 public FloatRangeField getSpectralRangeField() {
126 if (spectralRangeField == null) { 168 if (spectralRangeField == null) {
127 - spectralRangeField = new FloatRangeField(requestPanelListener, "spectral_range_"); 169 + spectralRangeField = new FloatRangeField(listener, "spectral_range_");
128 } 170 }
129 171
130 return spectralRangeField; 172 return spectralRangeField;
131 } 173 }
132 174
133 /** 175 /**
134 - * @return the time range field 176 + * Get the GUI element of the time range field. If it doesn't exist, create it.
  177 + *
  178 + * @return The time range field.
135 */ 179 */
136 public DateRangeField getTimeRangeField() { 180 public DateRangeField getTimeRangeField() {
137 if (timeRangeField == null) { 181 if (timeRangeField == null) {
138 - timeRangeField = new DateRangeField(requestPanelListener, "time_"); 182 + timeRangeField = new DateRangeField(listener, "time_");
139 } 183 }
140 184
141 return timeRangeField; 185 return timeRangeField;
142 } 186 }
143 187
144 /** 188 /**
145 - * @return the target name field 189 + * Get the GUI element of the target name field. If it doesn't exist, create it.
  190 + *
  191 + * @return The target name field.
146 */ 192 */
147 public TargetNameField getTargetNameField() { 193 public TargetNameField getTargetNameField() {
148 if (targetNameField == null) { 194 if (targetNameField == null) {
149 - targetNameField = new TargetNameField(requestPanelListener, "target_name"); 195 + targetNameField = new TargetNameField(listener, "target_name");
150 } 196 }
151 197
152 return targetNameField; 198 return targetNameField;
153 } 199 }
154 200
155 /** 201 /**
156 - * Build a JPanel containing a text-area where the query is displayed. 202 + * Get the GUI element of the query area. If it doesn't exist, create it.
157 * 203 *
158 - * @return The JPanel. 204 + * @return The target query area.
159 */ 205 */
160 - private JPanel buildQueryPanel() {  
161 - JPanel queryPanel = new JPanel();  
162 - queryPanel.setBorder(BorderFactory.createTitledBorder("Query for the selected service(s)"));  
163 - queryArea = new JTextArea("");  
164 - queryArea.setToolTipText("The query sent to the service(s).");  
165 - queryArea.setLineWrap(true);  
166 - queryPanel.setLayout(new BorderLayout());  
167 - queryPanel.add(queryArea, BorderLayout.CENTER);  
168 -  
169 - return queryPanel; 206 + public JTextArea getQueryArea() {
  207 + if (queryArea == null) {
  208 + queryArea = new JTextArea("");
  209 + queryArea.setToolTipText("The query sent to the service(s).");
  210 + queryArea.setLineWrap(true);
  211 + }
  212 + return queryArea;
170 } 213 }
171 214
172 /** 215 /**
173 - * Update the query JTextArea. 216 + * Update the query in the JTextArea.
174 * 217 *
175 * @param query The string literal to put in the text-area, which will override the old content. 218 * @param query The string literal to put in the text-area, which will override the old content.
176 */ 219 */
177 public void updateQueryArea(String query) { 220 public void updateQueryArea(String query) {
178 queryArea.setText(query); 221 queryArea.setText(query);
179 } 222 }
180 -  
181 - /**  
182 - * Build a JPanel containing the button(s), particularly the `Send` button.  
183 - *  
184 - * @return The JPanel .  
185 - */  
186 - private JPanel buildButtonPanel() {  
187 - JPanel buttonPanel = new JPanel();  
188 - JButton btnSend = new JButton("Send query");  
189 - btnSend.addActionListener(new ActionListener() {  
190 -  
191 - @Override  
192 - public void actionPerformed(ActionEvent e) {  
193 - requestPanelListener.onSendButtonClicked(queryArea.getText());  
194 - }  
195 - });  
196 - buttonPanel.add(btnSend);  
197 - buttonPanel.setMaximumSize(new Dimension(1000, BUTTON_PANEL_HEIGHT));  
198 -  
199 - return buttonPanel;  
200 - }  
201 } 223 }
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/paramfield/DataProductTypeField.java
@@ -41,7 +41,7 @@ public class DataProductTypeField extends ParamField { @@ -41,7 +41,7 @@ public class DataProductTypeField extends ParamField {
41 private static final long serialVersionUID = 1L; 41 private static final long serialVersionUID = 1L;
42 42
43 /** The comboBox used to select the data product type. */ 43 /** The comboBox used to select the data product type. */
44 - JComboBox<DataProductType> comboBox; 44 + private JComboBox<DataProductType> comboBox;
45 45
46 46
47 /** 47 /**
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/paramfield/DateRangeField.java
@@ -48,10 +48,10 @@ public class DateRangeField extends ParamField implements TextFieldListener { @@ -48,10 +48,10 @@ public class DateRangeField extends ParamField implements TextFieldListener {
48 private static final String DATE_REGEX = "(^(((0[1-9]|1[0-9]|2[0-8])[\\/](0[1-9]|1[012]))|((29|30|31)[\\/](0[13578]|1[02]))|((29|30)[\\/](0[4,6,9]|11)))[\\/](19|[2-9][0-9])\\d\\d$)|(^29[\\/]02[\\/](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)"; 48 private static final String DATE_REGEX = "(^(((0[1-9]|1[0-9]|2[0-8])[\\/](0[1-9]|1[012]))|((29|30|31)[\\/](0[13578]|1[02]))|((29|30)[\\/](0[4,6,9]|11)))[\\/](19|[2-9][0-9])\\d\\d$)|(^29[\\/]02[\\/](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)";
49 49
50 /** The JTextField used to put the parameter minimum value of the range. */ 50 /** The JTextField used to put the parameter minimum value of the range. */
51 - JTextField fieldMin; 51 + private JTextField fieldMin;
52 52
53 /** The JTextField used to put the parameter maximum value of the range. */ 53 /** The JTextField used to put the parameter maximum value of the range. */
54 - JTextField fieldMax; 54 + private JTextField fieldMax;
55 55
56 56
57 /** 57 /**
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/paramfield/FloatField.java
@@ -35,7 +35,7 @@ public class FloatField extends ParamField implements TextFieldListener { @@ -35,7 +35,7 @@ public class FloatField extends ParamField implements TextFieldListener {
35 private static final long serialVersionUID = 1L; 35 private static final long serialVersionUID = 1L;
36 36
37 /** The JTextField used to put the parameter value. */ 37 /** The JTextField used to put the parameter value. */
38 - JTextField field; 38 + private JTextField field;
39 39
40 40
41 /** 41 /**
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/paramfield/FloatRangeField.java
@@ -35,10 +35,10 @@ public class FloatRangeField extends ParamField implements TextFieldListener { @@ -35,10 +35,10 @@ public class FloatRangeField extends ParamField implements TextFieldListener {
35 private static final long serialVersionUID = 1L; 35 private static final long serialVersionUID = 1L;
36 36
37 /** The JTextField used to put the parameter minimum value of the range. */ 37 /** The JTextField used to put the parameter minimum value of the range. */
38 - JTextField fieldMin; 38 + private JTextField fieldMin;
39 39
40 /** The JTextField used to put the parameter maximum value of the range. */ 40 /** The JTextField used to put the parameter maximum value of the range. */
41 - JTextField fieldMax; 41 + private JTextField fieldMax;
42 42
43 43
44 /** 44 /**
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/paramfield/ParamField.java
@@ -42,31 +42,31 @@ public abstract class ParamField extends JPanel { @@ -42,31 +42,31 @@ public abstract class ParamField extends JPanel {
42 private static final long serialVersionUID = 1L; 42 private static final long serialVersionUID = 1L;
43 43
44 /** The logger for the class ParamField. */ 44 /** The logger for the class ParamField. */
45 - static final Logger LOGGER = Logger.getLogger(ParamField.class.getName()); 45 + protected static final Logger LOGGER = Logger.getLogger(ParamField.class.getName());
46 46
47 /** The minimum width of the field. */ 47 /** The minimum width of the field. */
48 - static final int MIN_FIELD_WIDTH = 30; 48 + protected static final int MIN_FIELD_WIDTH = 30;
49 49
50 /** The preferred field height. */ 50 /** The preferred field height. */
51 - static final int FIELD_HEIGHT = 20; 51 + protected static final int FIELD_HEIGHT = 20;
52 52
53 /** The maximum width of the field. */ 53 /** The maximum width of the field. */
54 - static final int MAX_FIELD_WIDTH = 400; 54 + protected static final int MAX_FIELD_WIDTH = 400;
55 55
56 /** The preferred label width. */ 56 /** The preferred label width. */
57 - static final int LABEL_WIDTH = 140; 57 + protected static final int LABEL_WIDTH = 140;
58 58
59 /** The suffix used in REG-TAP parameters names, indicating that it's a beginning of a range. */ 59 /** The suffix used in REG-TAP parameters names, indicating that it's a beginning of a range. */
60 - static final String MIN_SUFFIX = "min"; 60 + protected static final String MIN_SUFFIX = "min";
61 61
62 /** The suffix used in REG-TAP parameters names, indicating that it is a end of a range. */ 62 /** The suffix used in REG-TAP parameters names, indicating that it is a end of a range. */
63 - static final String MAX_SUFFIX = "max"; 63 + protected static final String MAX_SUFFIX = "max";
64 64
65 /** The main view of the application. */ 65 /** The main view of the application. */
66 - RequestPanelListener requestPanelListener; 66 + protected RequestPanelListener requestPanelListener;
67 67
68 /** The parameter name of the field */ 68 /** The parameter name of the field */
69 - String paramName; 69 + protected String paramName;
70 70
71 71
72 /** 72 /**
@@ -85,6 +85,9 @@ public abstract class ParamField extends JPanel { @@ -85,6 +85,9 @@ public abstract class ParamField extends JPanel {
85 buildParamField(); 85 buildParamField();
86 } 86 }
87 87
  88 + /**
  89 + * Build the panel and add GUI elements on it.
  90 + */
88 private void buildParamField() { 91 private void buildParamField() {
89 setLayout(new BoxLayout(this, BoxLayout.X_AXIS)); 92 setLayout(new BoxLayout(this, BoxLayout.X_AXIS));
90 93
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/paramfield/StringField.java
@@ -32,7 +32,7 @@ public class StringField extends ParamField implements TextFieldListener { @@ -32,7 +32,7 @@ public class StringField extends ParamField implements TextFieldListener {
32 private static final long serialVersionUID = 1L; 32 private static final long serialVersionUID = 1L;
33 33
34 /** The JTextField used to put the parameter value. */ 34 /** The JTextField used to put the parameter value. */
35 - JTextField field; 35 + private JTextField field;
36 36
37 37
38 /** 38 /**
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/paramfield/TargetClassField.java
@@ -39,7 +39,7 @@ public class TargetClassField extends ParamField { @@ -39,7 +39,7 @@ public class TargetClassField extends ParamField {
39 private static final long serialVersionUID = 1L; 39 private static final long serialVersionUID = 1L;
40 40
41 /** The comboBox used to select the target class. */ 41 /** The comboBox used to select the target class. */
42 - JComboBox<TargetClass> comboBox; 42 + private JComboBox<TargetClass> comboBox;
43 43
44 44
45 /** 45 /**
src/main/java/eu/omp/irap/vespa/epntapclient/gui/requestpanel/paramfield/TargetNameField.java
@@ -41,17 +41,17 @@ public class TargetNameField extends ParamField implements TextFieldListener { @@ -41,17 +41,17 @@ public class TargetNameField extends ParamField implements TextFieldListener {
41 private static final long serialVersionUID = 1L; 41 private static final long serialVersionUID = 1L;
42 42
43 /** The comboBox to enter the target_name and display target name propositions. */ 43 /** The comboBox to enter the target_name and display target name propositions. */
44 - JComboBox<String> comboBox; 44 + private JComboBox<String> comboBox;
45 45
46 /** The JTextField related to the ComboBox, allowing to listen for text content update. */ 46 /** The JTextField related to the ComboBox, allowing to listen for text content update. */
47 - JTextField field; 47 + private JTextField field;
48 48
49 /** 49 /**
50 * The content of the last entered value. It is used to avoid recursions, because each time an 50 * The content of the last entered value. It is used to avoid recursions, because each time an
51 * update event is detected, the resolver is called and the ComboBox is filled with new values, 51 * update event is detected, the resolver is called and the ComboBox is filled with new values,
52 * which trigger a new event. 52 * which trigger a new event.
53 */ 53 */
54 - String lastContent; 54 + private String lastContent;
55 55
56 56
57 /** 57 /**
@@ -70,6 +70,11 @@ public class TargetNameField extends ParamField implements TextFieldListener { @@ -70,6 +70,11 @@ public class TargetNameField extends ParamField implements TextFieldListener {
70 this.add(comboBox); 70 this.add(comboBox);
71 } 71 }
72 72
  73 + /**
  74 + * Constructor of TargetNameField without listener, in order to use only GUI elements.
  75 + *
  76 + * @param paraName The name of the parameter.
  77 + */
73 public TargetNameField(String paraName) { 78 public TargetNameField(String paraName) {
74 this(new RequestPanelListener() { 79 this(new RequestPanelListener() {
75 80
src/main/java/eu/omp/irap/vespa/epntapclient/gui/resultpanel/ResultPanelCtrl.java
@@ -20,8 +20,6 @@ import java.io.File; @@ -20,8 +20,6 @@ import java.io.File;
20 import java.io.IOException; 20 import java.io.IOException;
21 import java.nio.file.Files; 21 import java.nio.file.Files;
22 import java.nio.file.Paths; 22 import java.nio.file.Paths;
23 -import java.util.logging.Level;  
24 -import java.util.logging.Logger;  
25 23
26 import eu.omp.irap.vespa.epntapclient.gui.mainpanel.MainPanelCtrl; 24 import eu.omp.irap.vespa.epntapclient.gui.mainpanel.MainPanelCtrl;
27 import eu.omp.irap.vespa.votable.controller.VOTableController; 25 import eu.omp.irap.vespa.votable.controller.VOTableController;
@@ -31,14 +29,18 @@ import eu.omp.irap.vespa.votable.controller.VOTableController; @@ -31,14 +29,18 @@ import eu.omp.irap.vespa.votable.controller.VOTableController;
31 */ 29 */
32 public class ResultPanelCtrl extends VOTableController implements ResultPanelListener { 30 public class ResultPanelCtrl extends VOTableController implements ResultPanelListener {
33 31
34 - /** The logger for the class ResultPanelCtrl. */  
35 - private static final Logger LOGGER = Logger.getLogger(ResultPanelCtrl.class.getName());  
36 - 32 + /** The controller of the main panel. */
37 private MainPanelCtrl mainPanelCtrl; 33 private MainPanelCtrl mainPanelCtrl;
38 34
  35 + /** The result panel view. */
39 private ResultPanelView view; 36 private ResultPanelView view;
40 37
41 38
  39 + /**
  40 + * Constructor of ResultPanelCtrl.
  41 + *
  42 + * @param mainPanelCtrl The controller of the main panel.
  43 + */
42 public ResultPanelCtrl(MainPanelCtrl mainPanelCtrl) { 44 public ResultPanelCtrl(MainPanelCtrl mainPanelCtrl) {
43 this.mainPanelCtrl = mainPanelCtrl; 45 this.mainPanelCtrl = mainPanelCtrl;
44 view = new ResultPanelView(this); 46 view = new ResultPanelView(this);
@@ -50,10 +52,12 @@ public class ResultPanelCtrl extends VOTableController implements ResultPanelLis @@ -50,10 +52,12 @@ public class ResultPanelCtrl extends VOTableController implements ResultPanelLis
50 Files.copy(Paths.get(voTablePath), Paths.get(file.getAbsolutePath())); 52 Files.copy(Paths.get(voTablePath), Paths.get(file.getAbsolutePath()));
51 } catch (IOException e) { 53 } catch (IOException e) {
52 mainPanelCtrl.displayError("Can not save the file.", e); 54 mainPanelCtrl.displayError("Can not save the file.", e);
53 - LOGGER.log(Level.WARNING, "Can not save the file.", e);  
54 } 55 }
55 } 56 }
56 57
  58 + /**
  59 + * @return The view of the result panel.
  60 + */
57 public ResultPanelView getView() { 61 public ResultPanelView getView() {
58 return view; 62 return view;
59 } 63 }
src/main/java/eu/omp/irap/vespa/epntapclient/gui/resultpanel/ResultPanelListener.java
@@ -23,6 +23,11 @@ import java.io.File; @@ -23,6 +23,11 @@ import java.io.File;
23 */ 23 */
24 public interface ResultPanelListener { 24 public interface ResultPanelListener {
25 25
26 - /** Copy the VOTable to a specified location. */ 26 + /**
  27 + * Copy the VOTable to a specified location.
  28 + *
  29 + * @param file The file selected by the user in the FileChooser pop-up, corresponding to the
  30 + * place where save the VOTable.
  31 + */
27 public void onDownloadButtonClicked(File file); 32 public void onDownloadButtonClicked(File file);
28 } 33 }
src/main/java/eu/omp/irap/vespa/epntapclient/gui/resultpanel/ResultPanelView.java
@@ -35,11 +35,13 @@ public class ResultPanelView extends VOTableView { @@ -35,11 +35,13 @@ public class ResultPanelView extends VOTableView {
35 /** The serial version UID. */ 35 /** The serial version UID. */
36 private static final long serialVersionUID = 1L; 36 private static final long serialVersionUID = 1L;
37 37
38 - ResultPanelListener viewListener; 38 + /** The listener of the result panel. */
  39 + ResultPanelListener listener;
39 40
40 /** A label to display several informations (aka. status bar). */ 41 /** A label to display several informations (aka. status bar). */
41 private JLabel infoLabel; 42 private JLabel infoLabel;
42 43
  44 + /** The GUI element of the button to save the result of the query. */
43 private JButton fileButton; 45 private JButton fileButton;
44 46
45 47
@@ -50,23 +52,19 @@ public class ResultPanelView extends VOTableView { @@ -50,23 +52,19 @@ public class ResultPanelView extends VOTableView {
50 * @param mainView The main view of the application. 52 * @param mainView The main view of the application.
51 * @param voTableView The generic view of the VOTable panel. 53 * @param voTableView The generic view of the VOTable panel.
52 */ 54 */
53 - public ResultPanelView(ResultPanelListener viewListener) { 55 + public ResultPanelView(ResultPanelListener listener) {
54 super(); 56 super();
55 - this.viewListener = viewListener; 57 + this.listener = listener;
56 buildResultPanel(); 58 buildResultPanel();
57 } 59 }
58 60
59 public void buildResultPanel() { 61 public void buildResultPanel() {
60 - add(buildBottomBar(), BorderLayout.SOUTH);  
61 - }  
62 -  
63 - private JPanel buildBottomBar() {  
64 JPanel statusBar = new JPanel(); 62 JPanel statusBar = new JPanel();
65 statusBar.setLayout(new BorderLayout()); 63 statusBar.setLayout(new BorderLayout());
66 statusBar.add(getInfoLabel()); 64 statusBar.add(getInfoLabel());
67 statusBar.add(getFileButton(), BorderLayout.EAST); 65 statusBar.add(getFileButton(), BorderLayout.EAST);
68 66
69 - return statusBar; 67 + add(statusBar, BorderLayout.SOUTH);
70 } 68 }
71 69
72 public JLabel getInfoLabel() { 70 public JLabel getInfoLabel() {
@@ -89,7 +87,7 @@ public class ResultPanelView extends VOTableView { @@ -89,7 +87,7 @@ public class ResultPanelView extends VOTableView {
89 public void actionPerformed(ActionEvent e) { 87 public void actionPerformed(ActionEvent e) {
90 final JFileChooser fc = new JFileChooser(); 88 final JFileChooser fc = new JFileChooser();
91 fc.showOpenDialog(ResultPanelView.this); 89 fc.showOpenDialog(ResultPanelView.this);
92 - viewListener.onDownloadButtonClicked(fc.getSelectedFile()); 90 + listener.onDownloadButtonClicked(fc.getSelectedFile());
93 } 91 }
94 }); 92 });
95 } 93 }
src/main/java/eu/omp/irap/vespa/epntapclient/gui/servicespanel/ServicesPanelCtrl.java
@@ -32,16 +32,16 @@ public class ServicesPanelCtrl extends VOTableController implements ServicesPane @@ -32,16 +32,16 @@ public class ServicesPanelCtrl extends VOTableController implements ServicesPane
32 /** The logger for the class ServicesPanelCtrl. */ 32 /** The logger for the class ServicesPanelCtrl. */
33 private static final Logger LOGGER = Logger.getLogger(ServicesPanelCtrl.class.getName()); 33 private static final Logger LOGGER = Logger.getLogger(ServicesPanelCtrl.class.getName());
34 34
  35 + private MainPanelCtrl mainPanelCtrl;
  36 +
  37 + private ServicesPanelView view;
  38 +
35 /** The name of the table selected by the user on the table list panel. */ 39 /** The name of the table selected by the user on the table list panel. */
36 private String selectedTableName; 40 private String selectedTableName;
37 41
38 /** The URL of the service corresponding to the selected table. */ 42 /** The URL of the service corresponding to the selected table. */
39 private String selectedServiceURL; 43 private String selectedServiceURL;
40 44
41 - private MainPanelCtrl mainPanelCtrl;  
42 -  
43 - private ServicesPanelView view;  
44 -  
45 45
46 public ServicesPanelCtrl(MainPanelCtrl mainPanelCtrl) { 46 public ServicesPanelCtrl(MainPanelCtrl mainPanelCtrl) {
47 this.mainPanelCtrl = mainPanelCtrl; 47 this.mainPanelCtrl = mainPanelCtrl;
src/main/java/eu/omp/irap/vespa/epntapclient/gui/servicespanel/ServicesPanelView.java
@@ -37,7 +37,7 @@ public class ServicesPanelView extends VOTableView { @@ -37,7 +37,7 @@ public class ServicesPanelView extends VOTableView {
37 /** The serial version UID. */ 37 /** The serial version UID. */
38 private static final long serialVersionUID = 1L; 38 private static final long serialVersionUID = 1L;
39 39
40 - ServicesPanelListener viewListener; 40 + ServicesPanelListener listener;
41 41
42 private JButton serviceButton; 42 private JButton serviceButton;
43 43
@@ -55,7 +55,7 @@ public class ServicesPanelView extends VOTableView { @@ -55,7 +55,7 @@ public class ServicesPanelView extends VOTableView {
55 */ 55 */
56 public ServicesPanelView(final ServicesPanelListener viewListener) { 56 public ServicesPanelView(final ServicesPanelListener viewListener) {
57 super(); 57 super();
58 - this.viewListener = viewListener; 58 + this.listener = viewListener;
59 buildServicesPanel(); 59 buildServicesPanel();
60 } 60 }
61 61
@@ -64,7 +64,7 @@ public class ServicesPanelView extends VOTableView { @@ -64,7 +64,7 @@ public class ServicesPanelView extends VOTableView {
64 64
65 @Override 65 @Override
66 public void valueChanged(ListSelectionEvent evt) { 66 public void valueChanged(ListSelectionEvent evt) {
67 - viewListener.onServiceSelected(getTable().getSelectedRow()); 67 + listener.onServiceSelected(getTable().getSelectedRow());
68 } 68 }
69 }); 69 });
70 70
@@ -98,7 +98,7 @@ public class ServicesPanelView extends VOTableView { @@ -98,7 +98,7 @@ public class ServicesPanelView extends VOTableView {
98 98
99 @Override 99 @Override
100 public void actionPerformed(ActionEvent e) { 100 public void actionPerformed(ActionEvent e) {
101 - viewListener.onServiceSelected(-1); 101 + listener.onServiceSelected(-1);
102 } 102 }
103 }); 103 });
104 } 104 }
src/main/java/eu/omp/irap/vespa/epntapclient/service/Service.java
@@ -21,31 +21,88 @@ package eu.omp.irap.vespa.epntapclient.service; @@ -21,31 +21,88 @@ package eu.omp.irap.vespa.epntapclient.service;
21 */ 21 */
22 public class Service { 22 public class Service {
23 23
  24 + /**
  25 + * The ivoid of the service: <br/>
  26 + * <em>Unambiguous reference to the resource conforming to the IVOA
  27 + * standard for identifiers.</em>
  28 + */
24 private String ivoid; 29 private String ivoid;
25 30
  31 + /**
  32 + * The title of the service: <br/>
  33 + * <em>The full name given to the resource.</em>
  34 + */
26 private String title; 35 private String title;
27 36
  37 + /**
  38 + * The short_name of the service: <br/>
  39 + * <em> A short name or abbreviation given to something. This name will be used where brief
  40 + * annotations for the re- source name are required. Applications may use it to refer to the
  41 + * resource in a compact display. One word or a few letters is recommended. No more than sixteen
  42 + * characters are allowed.</em>
  43 + */
28 private String shortName; 44 private String shortName;
29 45
  46 + /**
  47 + * The type of the service: <br/>
  48 + * <em>Resource type (something like vs:datacollection, vs:catalogservice, etc).</em>
  49 + */
30 private String type; 50 private String type;
31 51
  52 + /**
  53 + * The description of the service: <br/>
  54 + * <em>An account of the nature of the resource.</em>
  55 + */
32 private String description; 56 private String description;
33 57
  58 + /**
  59 + * The creator of the service: <br/>
  60 + * <em>The creator(s) of the resource in the order given by the resource record author, separated by
  61 + * semicolons.</em>
  62 + */
34 private String creator; 63 private String creator;
35 64
  65 + /**
  66 + * The content_level of the service: <br/>
  67 + * <em> A hash-separated list of content levels specifying the intended audience.</em>
  68 + */
36 private String contentLevel; 69 private String contentLevel;
37 70
  71 + /**
  72 + * The reference_rul of the service: <br/>
  73 + * <em>URL pointing to a human-readable document describing this resource.</em>
  74 + */
38 private String referenceURL; 75 private String referenceURL;
39 76
  77 + /**
  78 + * The created date of the service, as a string: <br/>
  79 + * <em>The UTC date and time this resource metadata de- scription was created. This timestamp must
  80 + * not be in the future. This time is not required to be accurate; it should be at least
  81 + * accurate to the day. Any insignificant time elds should be set to zero.</em>
  82 + */
40 private String created; 83 private String created;
41 84
  85 + /**
  86 + * The updated date of the service, as a string: <br/>
  87 + * <em> The UTC date this resource metadata description was last updated. This timestamp must not be
  88 + * in the future. This time is not required to be accurate; it should be at least accurate to
  89 + * the day. Any insignificant time elds should be set to zero.</em>
  90 + */
42 private String updated; 91 private String updated;
43 92
44 93
45 - Service(String ivoid) { 94 + /**
  95 + * Constructor of Service
  96 + *
  97 + * @param ivoid The ivoID of the service.
  98 + */
  99 + public Service(String ivoid) {
46 this.ivoid = ivoid; 100 this.ivoid = ivoid;
47 } 101 }
48 102
  103 + /**
  104 + * @return true if all parameter of the service are not null.
  105 + */
49 public boolean isValid() { 106 public boolean isValid() {
50 boolean isValid = ivoid != null && title != null && shortName != null; 107 boolean isValid = ivoid != null && title != null && shortName != null;
51 isValid = isValid && type != null && description != null && creator != null; 108 isValid = isValid && type != null && description != null && creator != null;
@@ -53,78 +110,173 @@ public class Service { @@ -53,78 +110,173 @@ public class Service {
53 return isValid && updated != null; 110 return isValid && updated != null;
54 } 111 }
55 112
  113 + /**
  114 + * Get the service {@link #title}.
  115 + *
  116 + * @return The service {@link #title}.
  117 + */
56 public String getTitle() { 118 public String getTitle() {
57 return title; 119 return title;
58 } 120 }
59 121
60 - public void setTitle(String resTitle) {  
61 - title = resTitle; 122 + /**
  123 + * Set the service {@link #title}.
  124 + *
  125 + * @param title The service {@link #title}
  126 + */
  127 + public void setTitle(String title) {
  128 + this.title = title;
62 } 129 }
63 130
  131 + /**
  132 + * Get the service {@link #shortName}.
  133 + *
  134 + * @return The service {@link #shortName}.
  135 + */
64 public String getShortName() { 136 public String getShortName() {
65 return shortName; 137 return shortName;
66 } 138 }
67 139
  140 + /**
  141 + * Set the service {@link #shortName}.
  142 + *
  143 + * @param shortName The service {@link #shortName}
  144 + */
68 public void setShortName(String shortName) { 145 public void setShortName(String shortName) {
69 this.shortName = shortName; 146 this.shortName = shortName;
70 } 147 }
71 148
  149 + /**
  150 + * Get the service {@link #type}.
  151 + *
  152 + * @return The service {@link #type}.
  153 + */
72 public String getType() { 154 public String getType() {
73 return type; 155 return type;
74 } 156 }
75 157
  158 + /**
  159 + * Set the service {@link #type}.
  160 + *
  161 + * @param type The service {@link #type}
  162 + */
76 public void setType(String type) { 163 public void setType(String type) {
77 this.type = type; 164 this.type = type;
78 } 165 }
79 166
  167 + /**
  168 + * Get the service {@link #description}.
  169 + *
  170 + * @return The service {@link #description}.
  171 + */
80 public String getDescription() { 172 public String getDescription() {
81 return description; 173 return description;
82 } 174 }
83 175
  176 + /**
  177 + * Set the service {@link #description}.
  178 + *
  179 + * @param description The service {@link #description}
  180 + */
84 public void setDescription(String description) { 181 public void setDescription(String description) {
85 this.description = description; 182 this.description = description;
86 } 183 }
87 184
  185 + /**
  186 + * Get the service {@link #creator}.
  187 + *
  188 + * @return The service {@link #creator}.
  189 + */
88 public String getCreator() { 190 public String getCreator() {
89 return creator; 191 return creator;
90 } 192 }
91 193
  194 + /**
  195 + * Set the service {@link #creator}.
  196 + *
  197 + * @param creator The service {@link #creator}
  198 + */
92 public void setCreator(String creator) { 199 public void setCreator(String creator) {
93 this.creator = creator; 200 this.creator = creator;
94 } 201 }
95 202
  203 + /**
  204 + * Get the service {@link #contentLevel}.
  205 + *
  206 + * @return The service {@link #contentLevel}.
  207 + */
96 public String getContentLevel() { 208 public String getContentLevel() {
97 return contentLevel; 209 return contentLevel;
98 } 210 }
99 211
  212 + /**
  213 + * Set the service {@link #contentLevel}.
  214 + *
  215 + * @param contentLevel The service {@link #contentLevel}
  216 + */
100 public void setContentLevel(String contentLevel) { 217 public void setContentLevel(String contentLevel) {
101 this.contentLevel = contentLevel; 218 this.contentLevel = contentLevel;
102 } 219 }
103 220
  221 + /**
  222 + * Get the service {@link #referenceURL}.
  223 + *
  224 + * @return The service {@link #referenceURL}.
  225 + */
104 public String getReferenceURL() { 226 public String getReferenceURL() {
105 return referenceURL; 227 return referenceURL;
106 } 228 }
107 229
  230 + /**
  231 + * Set the service {@link #referenceURL}.
  232 + *
  233 + * @param referenceURL The service {@link #referenceURL}
  234 + */
108 public void setReferenceURL(String referenceURL) { 235 public void setReferenceURL(String referenceURL) {
109 this.referenceURL = referenceURL; 236 this.referenceURL = referenceURL;
110 } 237 }
111 238
  239 + /**
  240 + * Get the service {@link #created} date.
  241 + *
  242 + * @return The service {@link #created} date.
  243 + */
112 public String getCreated() { 244 public String getCreated() {
113 return created; 245 return created;
114 } 246 }
115 247
  248 + /**
  249 + * Set the service {@link #created}.
  250 + *
  251 + * @param created The service {@link #created}
  252 + */
116 public void setCreated(String created) { 253 public void setCreated(String created) {
117 this.created = created; 254 this.created = created;
118 } 255 }
119 256
  257 + /**
  258 + * Get the service {@link #updated} date.
  259 + *
  260 + * @return The service {@link #updated} date.
  261 + */
120 public String getUpdated() { 262 public String getUpdated() {
121 return updated; 263 return updated;
122 } 264 }
123 265
  266 + /**
  267 + * Set the service {@link #updated}.
  268 + *
  269 + * @param updated The service {@link #updated}
  270 + */
124 public void setUpdated(String updated) { 271 public void setUpdated(String updated) {
125 this.updated = updated; 272 this.updated = updated;
126 } 273 }
127 274
  275 + /**
  276 + * Get the service {@link #ivoid}.
  277 + *
  278 + * @return The service {@link #ivoid}.
  279 + */
128 public String getIvoid() { 280 public String getIvoid() {
129 return ivoid; 281 return ivoid;
130 } 282 }
src/main/java/eu/omp/irap/vespa/epntapclient/service/ServiceCore.java
@@ -20,11 +20,20 @@ package eu.omp.irap.vespa.epntapclient.service; @@ -20,11 +20,20 @@ package eu.omp.irap.vespa.epntapclient.service;
20 * @author N. Jourdane 20 * @author N. Jourdane
21 */ 21 */
22 public enum ServiceCore { 22 public enum ServiceCore {
23 - OBSCORE("ObsCore"), EPNCORE("EpnCore"); 23 + /** The ObsCore service appellation, used in several queries. */
  24 + OBSCORE("ObsCore"),
  25 + /** The EpnCore service appellation, used in several queries. */
  26 + EPNCORE("EpnCore");
24 27
  28 + /** The type of the service (ie. ObsCore, EpnCore, etc.). */
25 private String type; 29 private String type;
26 30
27 31
  32 + /**
  33 + * Constructor of ServiceCore enumeration.
  34 + *
  35 + * @param type The type of the service (ie. ObsCore, EpnCore, etc.).
  36 + */
28 ServiceCore(String type) { 37 ServiceCore(String type) {
29 this.type = type; 38 this.type = type;
30 } 39 }
src/main/java/eu/omp/irap/vespa/epntapclient/service/ServiceCtrl.java
@@ -41,12 +41,20 @@ import eu.omp.irap.vespa.votable.votabledata.VOTableDataParser; @@ -41,12 +41,20 @@ import eu.omp.irap.vespa.votable.votabledata.VOTableDataParser;
41 */ 41 */
42 public class ServiceCtrl { 42 public class ServiceCtrl {
43 43
  44 + /** The date format used to serialize date parameters. */
44 public static final String DATE_FORMAT = "yyyy/MM/dd HH:mm:ss"; 45 public static final String DATE_FORMAT = "yyyy/MM/dd HH:mm:ss";
45 46
46 47
  48 + /** Private constructor to hide the implicit public one. */
47 private ServiceCtrl() { 49 private ServiceCtrl() {
48 } 50 }
49 51
  52 + /**
  53 + * Parse a Resource and returns the corresponding Service.
  54 + *
  55 + * @param resource the resource to parse.
  56 + * @return The corresponding service.
  57 + */
50 public static final Service getService(Resource resource) { 58 public static final Service getService(Resource resource) {
51 Service service = new Service(resource.getIdentifier()); 59 Service service = new Service(resource.getIdentifier());
52 service.setTitle(resource.getTitle()); 60 service.setTitle(resource.getTitle());
@@ -74,6 +82,13 @@ public class ServiceCtrl { @@ -74,6 +82,13 @@ public class ServiceCtrl {
74 return service; 82 return service;
75 } 83 }
76 84
  85 + /**
  86 + * Parse a VOTableData and returns the corresponding list of services.
  87 + *
  88 + * @param data The VOTableData of the service, created by the VOTable parser. Each row of the
  89 + * data set is a service.
  90 + * @return The corresponding list of service.
  91 + */
77 public static final List<Service> getServices(VOTableData data) { 92 public static final List<Service> getServices(VOTableData data) {
78 List<Service> services = new ArrayList<>(); 93 List<Service> services = new ArrayList<>();
79 for (int i = 0; i < data.getNbRows(); i++) { 94 for (int i = 0; i < data.getNbRows(); i++) {
@@ -93,10 +108,22 @@ public class ServiceCtrl { @@ -93,10 +108,22 @@ public class ServiceCtrl {
93 return services; 108 return services;
94 } 109 }
95 110
  111 + /**
  112 + * @param query The query to get the service.
  113 + * @return The VOTableData
  114 + * @throws CantGetVOTableException Can not get the VOTable.
  115 + */
96 public static VOTableData getVoTableData(String query) throws CantGetVOTableException { 116 public static VOTableData getVoTableData(String query) throws CantGetVOTableException {
97 return getVoTableData(getVoTable(query)); 117 return getVoTableData(getVoTable(query));
98 } 118 }
99 119
  120 + /**
  121 + * Parse a VOTable and returns the corresponding VOTableData.
  122 + *
  123 + * @param voTable The VOTable parsed.
  124 + * @return The corresponding VOTableData.
  125 + * @throws CantGetVOTableException Can not get the VOTable.
  126 + */
100 public static VOTableData getVoTableData(VOTABLE voTable) throws CantGetVOTableException { 127 public static VOTableData getVoTableData(VOTABLE voTable) throws CantGetVOTableException {
101 VOTableController.checkVOTable(voTable); 128 VOTableController.checkVOTable(voTable);
102 129