/*
* Copyright (c) 2015 Daimler AG / Moovel GmbH
*
* All rights reserved
*/
package com.car2go.maps.google.adapter;
import com.car2go.maps.model.LatLng;
import com.car2go.maps.model.Polygon;
import java.util.ArrayList;
import java.util.List;
/**
* Adapts Google Polygon to AnyMap Polygon
*/
public class PolygonAdapter implements Polygon {
private final com.google.android.gms.maps.model.Polygon polygon;
public PolygonAdapter(com.google.android.gms.maps.model.Polygon polygon) {
this.polygon = polygon;
}
@Override
public void setHoles(List<List<LatLng>> holes) {
polygon.setHoles(mapHoles(holes));
}
@Override
public List<LatLng> getPoints() {
return AnyMapAdapter.adaptList(com.google.android.gms.maps.model.LatLng.class, polygon.getPoints());
}
private List<? extends List<com.google.android.gms.maps.model.LatLng>> mapHoles(List<List<LatLng>> holes) {
ArrayList<List<com.google.android.gms.maps.model.LatLng>> result = new ArrayList<>();
for (List<LatLng> hole : holes) {
List<com.google.android.gms.maps.model.LatLng> googleHole = AnyMapAdapter.adaptList(LatLng.class, hole);
result.add(googleHole);
}
return result;
}
@Override
public void setVisible(boolean visible) {
polygon.setVisible(visible);
}
@Override
public void remove() {
polygon.remove();
}
}