View Javadoc

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  }