1 /*
2 * Copyright (C) 2017-2019 Centre National d'Etudes Spatiales (CNES).
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 3.0 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17 * MA 02110-1301 USA
18 */
19 package fr.cnes.doi.plugin;
20
21 import fr.cnes.doi.exception.DoiRuntimeException;
22
23 /**
24 * Provides validation for plugin configuration.
25 *
26 * @author Jean-Christophe Malapert (jean-christophe.malapert@cnes.fr)
27 */
28 public interface PluginConfiguration {
29
30 /**
31 * Validates the parameters in the configuration file.
32 *
33 * @return the error messages.
34 */
35 public StringBuilder validate();
36
37 /**
38 * Sets the configuration.
39 *
40 * @param configuration configuration parameters
41 */
42 public void setConfiguration(final Object configuration);
43
44 /**
45 * Checks if the plugin is already configured
46 *
47 * @return True when the plugin is already configured otherwise false
48 */
49 public boolean isConfigured();
50
51 /**
52 * Inits the connection
53 *
54 * @throws DoiRuntimeException When an connection error happens
55 */
56 public void initConnection() throws DoiRuntimeException;
57
58 /**
59 * Release the plugin.
60 */
61 public void release();
62
63 }