View Javadoc

1   package org.molwind.io;
2   
3   /*
4    * This file is part of Molwind.
5    *
6    * Molwind is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU General Public License as published by
8    * the Free Software Foundation, either version 3 of the License, or
9    * (at your option) any later version.
10   *
11   * Molwind is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14   * GNU General Public License for more details.
15   *
16   * You should have received a copy of the GNU General Public License
17   * along with Molwind. If not, see <http://www.gnu.org/licenses/>.
18   */
19  
20  import java.io.IOException;
21  
22  import org.molwind.model.MolwindWorld;
23  import org.molwind.util.ConfigException;
24  import org.molwind.util.Configurable;
25  import org.molwind.util.Configurator;
26  
27  /**
28   * AbstractWorldLocator adds logging functionality which can be used by
29   * sub-classes.
30   *
31   * @author <a href="mailto:oliver.karch@molwind.org">Oliver Karch</a>
32   * @version 1.0
33   */
34  public abstract class AbstractWorldLocator
35  implements WorldLocator, Configurable {
36  
37      /**
38       * Configures this object from a given configurator.
39       *
40       * @param config
41       *      the configurator
42       * @throws org.molwind.util.ConfigException
43       *      is thrown upon config error
44       */
45      public void configure(final Configurator config)
46      throws ConfigException {
47          config.setup(this);
48      }
49  
50  	/**
51  	 * Returns a (possibly empty) list of locatable worlds 
52  	 *
53  	 * @return 
54  	 *      an array of world names
55  	 */
56  	
57      public abstract String[] getWorldNames();
58  
59      /**
60       * Locates a world with the given name.
61       *
62       * @param worldName
63       *      the name of the world
64       * @return
65       *      a molwind world descriptor
66       * @throws java.io.IOException
67       *      is thrown upon i/o error
68       */
69      public abstract MolwindWorld locateWorld(String worldName)
70      throws IOException;
71  
72  }