View Javadoc

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 }