/*
 * This program was produced for the U.S. Agency for International Development. It was prepared by the USAID | DELIVER PROJECT, Task Order 4. It is part of a project which utilizes code originally licensed under the terms of the Mozilla Public License (MPL) v2 and therefore is licensed under MPL v2 or later.
 *
 * This program is free software: you can redistribute it and/or modify it under the terms of the Mozilla Public License as published by the Mozilla Foundation, either version 2 of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Mozilla Public License for more details.
 *
 * You should have received a copy of the Mozilla Public License along with this program. If not, see http://www.mozilla.org/MPL/
 */

package org.openlmis.equipment.repository;

import org.openlmis.core.domain.Program;
import org.openlmis.equipment.domain.EquipmentInventory;
import org.openlmis.equipment.repository.mapper.EquipmentInventoryMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import java.util.Arrays;
import java.util.List;

@Repository
public class EquipmentInventoryRepository {

  @Autowired
  EquipmentInventoryMapper mapper;

  public List<EquipmentInventory> getFacilityInventory(Long facilityId, Long programId){
    return mapper.getInventoryByFacilityAndProgram(facilityId, programId);
  }

  public List<EquipmentInventory> getInventory(Long programId, Long equipmentTypeId, long[] facilityIds){
    return mapper.getInventory(programId, equipmentTypeId, Arrays.toString(facilityIds).replace('[', '{').replace(']', '}'));
  }

  public EquipmentInventory getInventoryById(Long id){
    return mapper.getInventoryById(id);
  }

  public void insert(EquipmentInventory inventory){
    mapper.insert(inventory);
  }

  public void update(EquipmentInventory inventory){
    mapper.update( inventory );
  }

}

@@ -1675,16 +1675,259 @@
 tyIds)%7B%0A
+    // Convert ids into string format for the mapper to use%0A    StringBuilder str = new StringBuilder();%0A    str.append(%22%7B%22);%0A    for (int i = 0; i %3C facilityIds.length; i++) %7B%0A      str.append(facilityIds%5Bi%5D);%0A    %7D%0A    str.append(%22%7D%22);%0A    %0A
     retu
@@ -1977,22 +1977,19 @@
 TypeId, 
-Arrays
+str
 .toStrin
@@ -1994,55 +1994,8 @@
 ing(
-facilityIds).replace('%5B', '%7B').replace('%5D', '%7D'
 ));%0A

Fix inefficiency in array to string conversion for SQL statement