/******************************************************************************* * ATE, Automation Test Engine * * Copyright 2015, 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.casestep; import java.util.Arrays; import javax.swing.tree.TreeNode; import org.bigtester.ate.GlobalUtils; import org.springframework.context.ApplicationEvent; // TODO: Auto-generated Javadoc /** * This class RepeatDataRefreshEvent defines .... * * @author Peidong Hu * */ public class RepeatDataRefreshEvent extends ApplicationEvent { /** * */ private static final long serialVersionUID = -6313585724147559106L; /** The iteration. */ final private int iteration; /** The repeat step path nodes. */ final private TreeNode[] repeatStepInvokePathNodes; /** * Instantiates a new repeat data refresh event. * * @param source * the source * @param repeatStepInvokePathNodes * the repeat step invoke path nodes * @param iteration * the iteration */ public RepeatDataRefreshEvent(RepeatStep source, TreeNode[] repeatStepInvokePathNodes, int iteration) { super(source); TreeNode[] temp = Arrays.copyOf(repeatStepInvokePathNodes, repeatStepInvokePathNodes.length); if (null == temp) throw GlobalUtils .createInternalError("error in copying array, repeatStepInvokePathNodes"); else this.repeatStepInvokePathNodes = temp; this.iteration = iteration; } /** * @param repeatStep * @param i */ public RepeatDataRefreshEvent(Object source) { super(source); this.iteration = 0; this.repeatStepInvokePathNodes = new TreeNode[0]; } /** * Gets the repeat step name. * * @return the repeat step name */ public String getRepeatStepName() { RepeatStepExecutionLoggerNode retVal = (RepeatStepExecutionLoggerNode) repeatStepInvokePathNodes[repeatStepInvokePathNodes.length - 1]; String retV = (String) retVal.getUserObject(); if (null == retV) throw GlobalUtils .createInternalError("repeat step name conversion error"); else return retV; } /** * Gets the repeat step loop path. * * @return the repeat step loop path, if repeat step loop path is null, return "" empty string. */ public String getRepeatStepExternalLoopPath() { StringBuilder builder = new StringBuilder(""); for (int index=0; index<=repeatStepInvokePathNodes.length - 2; index++) { RepeatStepExecutionLoggerNode tempNode = (RepeatStepExecutionLoggerNode) repeatStepInvokePathNodes[index]; builder.append( (String) tempNode.getUserObject()); if (index < repeatStepInvokePathNodes.length - 2) builder.append("->"); } String retVal = builder.toString(); if (null == retVal) throw GlobalUtils.createInternalError("get repeat step loop path."); return retVal; } /** * @return the iteration */ public int getIteration() { return iteration; } /** * @return the repeatStepInvokePathNodes */ public TreeNode[] getRepeatStepInvokePathNodes() { TreeNode[] temp = Arrays.copyOf(repeatStepInvokePathNodes, repeatStepInvokePathNodes.length); if (null == temp) throw GlobalUtils .createInternalError("error in copying array, repeatStepInvokePathNodes"); else return temp; } }