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 }