/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank.dao; /* * #%L * Data Access * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * #L% */ import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.intuit.tank.project.JobRegion; import com.intuit.tank.vm.api.enumerated.VMRegion; /** * JobInstance * * @author dangleton * */ public class JobRegionDao extends BaseDao<JobRegion> { private static final Logger LOG = LogManager.getLogger(JobRegionDao.class); /** * @param entityClass */ public JobRegionDao() { super(); setReloadEntities(true); } /** * @param jobRegions * @return */ public static Set<JobRegion> cleanRegions(Collection<JobRegion> jobRegions) { Map<VMRegion, JobRegion> map = new HashMap<VMRegion, JobRegion>(); for (JobRegion region : jobRegions) { JobRegion existing = map.get(region.getRegion()); if (existing != null) { LOG.warn("found duplicte JobRegion = " + region + "; Existing region = " + existing); if (existing.getCreated() != null || region.getCreated() != null && region.getCreated().compareTo(existing.getCreated()) < 0) { LOG.warn("duplicte JobRegion = is earlier than existing. keeping existing."); region = existing; } } map.put(region.getRegion(), region); } return new HashSet<JobRegion>(map.values()); } }