package mapper; import api.v1.Position; import api.v1.WorklistItem; import api.v1.WorklistItemStatus; import models.OrderModel; import models.PositionTagModel; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class WorklistMapper { public List<WorklistItem> mapToApi(List<OrderModel> mOrders) { List<WorklistItem> worklistItems = new ArrayList<>(); for (OrderModel mOrder : mOrders) { WorklistItem item = mapToApi(mOrder); worklistItems.add(item); } return worklistItems; } public WorklistItem mapToApi(OrderModel order) { WorklistItem worklistItem = new WorklistItem(); Position p = new PositionMapper().mapToApi(order.position); if (p != null) { worklistItem.position_name = p.name; worklistItem.position_alias = order.position_name; worklistItem.latitude = String.format("%02d", p.dms.latDeg) + "° " + String.format("%02d", p.dms.latMin) + "' " + p.dms.latDirection; worklistItem.longitude = String.format("%03d", p.dms.longDeg) + "° " + String.format("%02d", p.dms.longMin) + "' " + p.dms.longDirection; worklistItem.longitude_dec = p.dec.getLongitude(); worklistItem.latitude_dec = p.dec.getLatitude(); } else { worklistItem.position_name = order.taskDescription; worklistItem.status = WorklistItemStatus.READY; } worklistItem.customerName = order.customer.name; worklistItem.infoForMeteorologist = order.info_for_meteorologist; worklistItem.metref = order.met_ref; worklistItem.product = new ProductMapper().mapToApi(order.product); if ( order.position != null ) { worklistItem.tags = new String[order.position.tags.size()]; { int i = 0; for (Iterator<PositionTagModel> iterator = order.position.tags.iterator(); iterator.hasNext(); ) { PositionTagModel tag = iterator.next(); worklistItem.tags[i] = tag.name; i++; } } } return worklistItem; } }