1 package org.molwind.view; 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 import java.util.Iterator; 20 21 import org.molwind.model.LayeredPosition; 22 import org.molwind.model.RelationshipResolver; 23 import org.molwind.view.TopologyManager; 24 25 /** 26 * AbstractTopologyManager determines and places visible chemical structures. 27 * 28 * @author <a href="mailto:oliver.karch@molwind.org">Oliver Karch</a> 29 * @version 1.0 30 */ 31 public abstract class AbstractTopologyManager implements TopologyManager { 32 private Iterator entityIterator; 33 private RelationshipResolver relationshipResolver; 34 35 /** 36 * Creates a new topology manager to place chemical entities. 37 */ 38 protected AbstractTopologyManager() { 39 entityIterator = null; 40 relationshipResolver = null; 41 } 42 43 /** 44 * Get the EntityIterator value. 45 * 46 * @return 47 * the EntityIterator value 48 */ 49 public Iterator getEntityIterator() { 50 return entityIterator; 51 } 52 53 /** 54 * Set the EntityIterator value. 55 * 56 * @param newEntityIterator 57 * the new EntityIterator value 58 */ 59 public void setEntityIterator(final Iterator newEntityIterator) { 60 this.entityIterator = newEntityIterator; 61 } 62 63 /** 64 * Get the RelationshipResolver value. 65 * 66 * @return 67 * the RelationshipResolver value 68 */ 69 public RelationshipResolver getRelationshipResolver() { 70 return relationshipResolver; 71 } 72 73 /** 74 * Set the RelationshipResolver value. 75 * 76 * @param newRelationshipResolver 77 * the new RelationshipResolver value 78 */ 79 public void setRelationshipResolver( 80 final RelationshipResolver newRelationshipResolver) { 81 this.relationshipResolver = newRelationshipResolver; 82 } 83 84 /** 85 * Determines the visible entities for the given position. 86 * 87 * @param position 88 * the position (longitude/latitude/level) 89 * @return 90 * an (possibly empty) iterator of entities 91 */ 92 public abstract Iterator getVisibleEntities(final LayeredPosition position); 93 94 }