package jdepend.client.report.way.mapui.model;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import jdepend.model.Element;
import jdepend.model.Relation;
import jdepend.client.report.way.mapui.layout.specifiedposition.CommandSpecifiedPosition;
import jdepend.client.report.way.mapui.layout.specifiedposition.SpecifiedNodePosition;
import jdepend.client.report.way.mapui.layout.specifiedposition.SpecifiedPositionMgr;
public class MapData {
private String group;
private String command;
private Collection<Element> elements;
private Map<String, Element> elementForNames;
private Collection<Relation> relations;
public MapData(String group, String command, Collection<Relation> relations) {
super();
this.group = group;
this.command = command;
this.relations = relations;
elements = Relation.calElements(relations);
elementForNames = new HashMap<String, Element>();
for (Element element : elements) {
elementForNames.put(element.getName(), element);
}
}
public Element getTheElement(String name) {
return this.elementForNames.get(name);
}
public Collection<Relation> getRelations() {
return relations;
}
public Collection<Element> getElements() {
return elements;
}
public String getGroup() {
return group;
}
public String getCommand() {
return command;
}
public boolean isHaveSpecifiedPosition() {
if (group != null && command != null) {
CommandSpecifiedPosition commandSpecifiedPosition = SpecifiedPositionMgr.getInstance()
.getTheCommandSpecifiedPosition(group, command);
if (commandSpecifiedPosition != null
&& commandSpecifiedPosition.getNodePositions().size() == elements.size()) {
return true;
}
}
return false;
}
public double getX(String elementName) {
CommandSpecifiedPosition commandSpecifiedPosition = SpecifiedPositionMgr.getInstance()
.getTheCommandSpecifiedPosition(group, command);
for (SpecifiedNodePosition specifiedNodePosition : commandSpecifiedPosition.getNodePositions()) {
if (specifiedNodePosition.getName().equals(elementName)) {
return specifiedNodePosition.getX();
}
}
return 0D;
}
public double getY(String elementName) {
CommandSpecifiedPosition commandSpecifiedPosition = SpecifiedPositionMgr.getInstance()
.getTheCommandSpecifiedPosition(group, command);
for (SpecifiedNodePosition specifiedNodePosition : commandSpecifiedPosition.getNodePositions()) {
if (specifiedNodePosition.getName().equals(elementName)) {
return specifiedNodePosition.getY();
}
}
return 0D;
}
}