1 56 57 package org.objectstyle.cayenne.dataview.dvmodeler; 58 59 import java.util.*; 60 import java.io.*; 61 62 67 68 public class DataMap extends DVObject { 69 private CayenneProject cayenneProject; 70 private List objEntities = new ArrayList(); 71 private List objRelationships = new ArrayList(); 72 private File file; 73 74 public DataMap(CayenneProject cayenneProject, String name, File file){ 75 setName(name); 76 this.cayenneProject = cayenneProject; 77 this.file = file; 78 } 79 80 public DataMap(CayenneProject cayenneProject, File file){ 81 setName(file.getName()); 82 this.cayenneProject = cayenneProject; 83 this.file = file; 84 } 85 86 public CayenneProject getCayenneProject(){ 87 return cayenneProject; 88 } 89 90 public void addObjEntityView(ObjEntityView objEntityView){ 91 String objEntityName = objEntityView.getObjEntity().getName(); 92 ObjEntity entity = this.getObjEntity(objEntityName); 93 entity.addObjEntityView(objEntityView); 94 } 95 96 public void addObjRelationship(ObjRelationship objRelationship){ 97 98 objRelationships.add(objRelationship); 99 } 100 101 public List getObjRelationshipsBySource(ObjEntity objEntity){ 102 List list = new ArrayList(); 103 Iterator itr = objRelationships.iterator(); 104 while (itr.hasNext()){ 105 Object o = itr.next(); 106 ObjRelationship objRelationship = (ObjRelationship)o; 107 if (objRelationship.getSourceObjEntity() == objEntity){ 108 list.add(objRelationship); 109 } 110 } 111 return Collections.unmodifiableList(list); 112 } 113 114 public List getObjRelationshipsBySourceToOne(ObjEntity objEntity){ 115 List list = new ArrayList(); 116 Iterator itr = objRelationships.iterator(); 117 while (itr.hasNext()){ 118 Object o = itr.next(); 119 ObjRelationship objRelationship = (ObjRelationship)o; 120 if ((objRelationship.getSourceObjEntity() == objEntity) 121 && (!objRelationship.isToMany())){ 122 list.add(objRelationship); 123 } 124 } 125 return Collections.unmodifiableList(list); 126 } 127 128 public List getObjRelationshipsByTarget(ObjEntity objEntity){ 129 List list = new ArrayList(); 130 Iterator itr = objRelationships.iterator(); 131 while (itr.hasNext()){ 132 Object o = itr.next(); 133 ObjRelationship objRelationship = (ObjRelationship)o; 134 if (objRelationship.getTargetObjEntity() == objEntity){ 135 list.add(objRelationship); 136 } 137 } 138 return Collections.unmodifiableList(list); 139 } 140 141 public ObjRelationship getObjRelationship(String name, ObjEntity source){ 142 Iterator itr = objRelationships.iterator(); 143 while (itr.hasNext()){ 144 Object o = itr.next(); 145 ObjRelationship objRelationship = (ObjRelationship)o; 146 if ((objRelationship.getSourceObjEntity() == source) && (objRelationship.getName().equals(name))){ 147 return objRelationship; 148 } 149 } 150 return null; 151 } 152 153 public void setFile(File file){ 154 this.file = file; 155 } 156 157 public File getFile(){ 158 return file; 159 } 160 161 public List getObjEntities() { 162 return Collections.unmodifiableList(objEntities); 163 } 164 165 public void addObjEntity(ObjEntity objEntity){ 166 objEntities.add(objEntity); 167 } 168 169 public ObjEntity getObjEntity(String name){ 170 Iterator itr = objEntities.iterator(); 171 while (itr.hasNext()){ 172 Object o = itr.next(); 173 ObjEntity objEnt = (ObjEntity)o; 174 if (objEnt.getName().equals(name)){ 175 return objEnt; 176 } 177 } 178 return null; 179 } 180 181 public ObjEntity getObjEntity(int index){ 182 return (ObjEntity)(objEntities.get(index)); 183 } 184 185 public int getIndexOfObjEntity(ObjEntity objEntity){ 186 return objEntities.indexOf(objEntity); 187 } 188 189 190 public int getObjEntityCount(){ 191 return objEntities.size(); 192 } 193 194 public void clear(){ 195 Iterator itr = objEntities.iterator(); 196 while (itr.hasNext()){ 197 Object o = itr.next(); 198 ObjEntity entity =(ObjEntity)o; 199 for(int i = 0; i < entity.getObjEntityViewCount(); i++){ 200 entity.getObjEntityView(i).clearObjEntity(); 201 } 202 } 203 objEntities.clear(); 204 objRelationships.clear(); 205 } 206 207 public String toString(){ 208 return this.getName(); 209 } 210 } 211 | Popular Tags |