/** * 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.List; import javax.annotation.Nonnull; import javax.annotation.Nullable; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.intuit.tank.project.Script; import com.intuit.tank.project.ScriptGroup; import com.intuit.tank.project.ScriptGroupStep; import com.intuit.tank.project.TestPlan; import com.intuit.tank.project.Workload; /** * ProductDao * * @author dangleton * */ public class WorkloadDao extends BaseDao<Workload> { @SuppressWarnings("unused") private static final Logger LOG = LogManager.getLogger(WorkloadDao.class); /** * @param entityClass */ public WorkloadDao() { super(); setReloadEntities(true); } /** * This is an override of the BaseEntity to initiate eager loading when needed. * * @param id * the primary key * @return the entity or null */ @Nullable @Override public Workload findById(@Nonnull Integer id) { Workload workload = null; try { begin(); workload = getEntityManager().find(Workload.class, id); if(workload != null) { workload.getJobConfiguration(); for ( TestPlan tp : workload.getTestPlans() ) { for (ScriptGroup sg : tp.getScriptGroups() ) { sg.getScriptGroupSteps(); } } } commit(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } finally { cleanup(); } return workload; } public Workload loadScriptsForWorkload(Workload workload) { ScriptDao sd = new ScriptDao(); for (TestPlan testPlan : workload.getTestPlans()) { List<ScriptGroup> scriptGroups = testPlan.getScriptGroups(); for (ScriptGroup scriptGroup : scriptGroups) { List<ScriptGroupStep> scriptGroupSteps = scriptGroup.getScriptGroupSteps(); for (ScriptGroupStep scriptGroupStep : scriptGroupSteps) { Script script = scriptGroupStep.getScript(); sd.loadScriptSteps(script); } } } return workload; } }