1 package org.molwind.model;
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.util.Iterator;
21
22 import org.molwind.view.TopologyManager;
23
24 /**
25 * AbstractMolwindWorld represents an abstract molwind world description which
26 * can be used for sub-classing.
27 *
28 * @author <a href="mailto:oliver.karch@molwind.org">Oliver Karch</a>
29 * @version 1.0
30 */
31 public abstract class AbstractMolwindWorld implements MolwindWorld {
32
33 private String worldName;
34 private RelationshipResolver relationshipResolver;
35 private TopologyManager topologyManager;
36
37 /**
38 * Constructor of this class.
39 *
40 * @param newWorldName
41 * the new Name value
42 */
43 protected AbstractMolwindWorld(final String newWorldName) {
44 this.worldName = newWorldName;
45 }
46
47 /**
48 * Returns the name of the world.
49 *
50 * @return
51 * the world's name
52 */
53 public String getName() {
54 return worldName;
55 }
56
57 /**
58 * Set the Name value.
59 *
60 * @param newWorldName
61 * the new Name value
62 */
63 public void setName(final String newWorldName) {
64 this.worldName = newWorldName;
65 }
66
67 /**
68 * Returns a strategy object to resolve relationships among entities.
69 *
70 * @return
71 * a resolver for entity reader for this world
72 */
73 public RelationshipResolver getRelationshipResolver() {
74 return relationshipResolver;
75 }
76
77 /**
78 * Set the RelationshipResolver value.
79 *
80 * @param newResolver
81 * the new RelationshipResolver value
82 */
83 public void setRelationshipResolver(
84 final RelationshipResolver newResolver) {
85 this.relationshipResolver = newResolver;
86 }
87
88 /**
89 * Get the TopologyManager value.
90 *
91 * @return
92 * the TopologyManager value
93 */
94 public TopologyManager getTopologyManager() {
95 return topologyManager;
96 }
97
98 /**
99 * Set the TopologyManager value.
100 *
101 * @param newTopologyManager
102 * the new TopologyManager value
103 */
104 public void setTopologyManager(final TopologyManager newTopologyManager) {
105 this.topologyManager = newTopologyManager;
106 }
107
108 /**
109 * Returns an iterator over the world's entities.
110 *
111 * @return
112 * an entity reader for this world
113 */
114 public abstract Iterator getEntityIterator();
115
116 /**
117 * Returns an instance of a tile generator.
118 *
119 * @return
120 * a tile generator which visualizes the entities of this world
121 */
122 public abstract org.molwind.view.TileGenerator getTileGenerator();
123
124 }