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 }