org.bigtester.ate.model.data.dao.ElementInputDataDaoImpl.java Source code

Java tutorial

Introduction

Here is the source code for org.bigtester.ate.model.data.dao.ElementInputDataDaoImpl.java

Source

/*******************************************************************************
 * ATE, Automation Test Engine
 *
 * Copyright 2014, Montreal PROT, or individual contributors as
 * indicated by the @author tags or express copyright attribution
 * statements applied by the authors.  All third-party contributions are
 * distributed under license by Montreal PROT.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *******************************************************************************/
package org.bigtester.ate.model.data.dao;

import java.util.List;

import javax.persistence.TypedQuery;

import org.bigtester.ate.constant.ExceptionErrorCode;
import org.bigtester.ate.constant.ExceptionMessage;
import org.bigtester.ate.model.data.dbtable.ElementInputData;
import org.bigtester.ate.model.data.exception.RepeatTestDataException;
import org.bigtester.ate.model.data.exception.TestDataException;
import org.eclipse.jdt.annotation.Nullable;
import org.springframework.transaction.annotation.Transactional;

// TODO: Auto-generated Javadoc
/**
 * This class ElementInputDataDaoImpl defines ....
 * 
 * @author Peidong Hu
 *
 */
@Transactional
public class ElementInputDataDaoImpl extends BaseDaoImpl {

    /**
     * Save.
     *
     * @param eid
     *            the eid
     * @return the long
     */
    public String save(ElementInputData eid) {
        String retVal;
        getDbEM().persist(eid);
        retVal = eid.getStepEIDsetID();
        return retVal;
    }

    /**
     * Gets the all.
     *
     * @return the all
     */
    public @Nullable List<ElementInputData> getAll() {
        return getDbEM().createQuery("SELECT p FROM ElementInputData p", ElementInputData.class).getResultList();
    }

    /**
     * Gets the value.
     *
     * @param inputDataID
     *            the input data id
     * @return the value
     */
    public String getValue(String inputDataID) throws TestDataException {

        List<ElementInputData> sERs = (List<ElementInputData>) getDbEM().createQuery(
                "select p from ElementInputData p where FirstTimeExecution= 'Yes' and p.stepEIDsetID = :stepEIDsetID",
                ElementInputData.class).setParameter("stepEIDsetID", inputDataID)// NOPMD
                .getResultList();
        if (sERs.isEmpty()) {
            throw new TestDataException(ExceptionMessage.MSG_TESTDATA_NOTFOUND,
                    ExceptionErrorCode.TESTDATA_NOTFOUND);
        } else if (sERs.size() > 1) { // NOPMD
            throw new TestDataException(ExceptionMessage.MSG_TESTDATA_DUPLICATED,
                    ExceptionErrorCode.TESTDATA_NOTFOUND);
        } else {
            return sERs.get(0).getDataValue();
        }

    }

    /**
     * Gets the value.
     *
     * @param inputDataID
     *            the input data id
     * @return the value
     */
    public String getValue(String inputDataID, String repeatStepName, String repeatStepExternalLoopPath,
            int iteration) throws RepeatTestDataException {

        if ("".equals(repeatStepExternalLoopPath))
            return getValue(inputDataID, repeatStepName, iteration);//NOPMD
        List<ElementInputData> retVal;
        String sql = "select p from ElementInputData p where repeatStepExternalLoopPath=:repeatStepExternalLoopPath and FirstTimeExecution= 'No' and p.stepEIDsetID = :stepEIDsetID and p.repeatStepName=:repeatStepName and p.iteration=:iteration";
        TypedQuery<ElementInputData> query = getDbEM().createQuery(sql, ElementInputData.class);
        query.setParameter("repeatStepExternalLoopPath", repeatStepExternalLoopPath);
        query.setParameter("stepEIDsetID", inputDataID);
        query.setParameter("repeatStepName", repeatStepName);
        query.setParameter("iteration", iteration);
        retVal = (List<ElementInputData>) query.getResultList();
        if (retVal.isEmpty()) {
            throw new RepeatTestDataException(ExceptionMessage.MSG_TESTDATA_NOTFOUND,
                    ExceptionErrorCode.REPEATTESTDATA_NOTFOUND, repeatStepName, repeatStepExternalLoopPath,
                    iteration);
        } else if (retVal.size() > 1) { // NOPMD
            throw new RepeatTestDataException(ExceptionMessage.MSG_TESTDATA_DUPLICATED,
                    ExceptionErrorCode.REPEATTESTDATA_DUPLICATED, repeatStepName, repeatStepExternalLoopPath,
                    iteration);
        } else {
            return retVal.get(0).getDataValue();
        }

    }

    /**
     * Gets the value.
     *
     * @param inputDataID
     *            the input data id
     * @return the value
     */
    public String getValue(String inputDataID, String repeatStepName, int iteration)
            throws RepeatTestDataException {
        List<ElementInputData> retVal;
        String sql = "select p from ElementInputData p where repeatStepExternalLoopPath is null and FirstTimeExecution= 'No' and p.stepEIDsetID = :stepEIDsetID and p.repeatStepName=:repeatStepName and p.iteration=:iteration";
        TypedQuery<ElementInputData> query = getDbEM().createQuery(sql, ElementInputData.class);
        query.setParameter("stepEIDsetID", inputDataID);
        query.setParameter("repeatStepName", repeatStepName);
        query.setParameter("iteration", iteration);
        retVal = (List<ElementInputData>) query.getResultList();
        if (retVal.isEmpty()) {
            throw new RepeatTestDataException(ExceptionMessage.MSG_TESTDATA_NOTFOUND,
                    ExceptionErrorCode.REPEATTESTDATA_NOTFOUND, repeatStepName, "", iteration);
        } else if (retVal.size() > 1) { // NOPMD
            throw new RepeatTestDataException(ExceptionMessage.MSG_TESTDATA_DUPLICATED,
                    ExceptionErrorCode.REPEATTESTDATA_DUPLICATED, repeatStepName, "", iteration);
        } else {
            return retVal.get(0).getDataValue();
        }

    }

}