package de.ivu.elect.business.gebietsbaum.entity;

import java.io.Serializable;
import java.util.List;

public class SvgMap implements Serializable {

  private final List<SvgPath> paths;

  public SvgMap(List<SvgPath> paths) {
    this.paths = paths;
  }

  public List<SvgPath> getPaths() {
    return paths;
  }


  public long getViewBoxWidth() {
    return Math.max(1, getMaxX());
  }

  private long getMaxX() {

    long x = 0;
    for (SvgPath svgPath : getPaths()) {
      if (svgPath.getSvgPathElement() != null && x < svgPath.getSvgPathElement().getMaxX()) {
        x = svgPath.getSvgPathElement().getMaxX();
      }
    }

    return x;
  }

  private long getMaxY() {

    long y = 0;
    for (SvgPath svgPath : getPaths()) {
      if (svgPath.getSvgPathElement() != null && y < svgPath.getSvgPathElement().getMaxY()) {
        y = svgPath.getSvgPathElement().getMaxY();
      }
    }

    return y;
  }

  public long getViewBoxHeight() {
    return Math.max(1, getMaxY());
  }

  public boolean isPathPresent() {
    for (SvgPath svgPath : getPaths()) {
      if (svgPath.getSvgPathElement() != null && svgPath.getSvgPathElement().isPathPresent()) {
        return true;
      }
    }
    return false;
  }

}
