aboutsummaryrefslogtreecommitdiff
path: root/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java
diff options
context:
space:
mode:
Diffstat (limited to 'basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java')
-rw-r--r--basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java232
1 files changed, 232 insertions, 0 deletions
diff --git a/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java b/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java
new file mode 100644
index 0000000..c8b21f3
--- /dev/null
+++ b/basebuilder-3.6.2/org.eclipse.releng.basebuilder/plugins/org.eclipse.test.performance.ui/src/org/eclipse/test/internal/performance/results/model/ComponentResultsElement.java
@@ -0,0 +1,232 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * 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
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.test.internal.performance.results.model;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
+
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.InstanceScope;
+import org.eclipse.test.internal.performance.results.db.AbstractResults;
+import org.eclipse.test.internal.performance.results.db.ComponentResults;
+import org.eclipse.test.internal.performance.results.db.PerformanceResults;
+import org.eclipse.test.internal.performance.results.db.ScenarioResults;
+import org.eclipse.test.internal.performance.results.utils.IPerformancesConstants;
+import org.eclipse.test.internal.performance.results.utils.Util;
+import org.eclipse.ui.views.properties.IPropertyDescriptor;
+import org.eclipse.ui.views.properties.PropertyDescriptor;
+import org.eclipse.ui.views.properties.TextPropertyDescriptor;
+
+public class ComponentResultsElement extends ResultsElement {
+
+ // Property descriptors
+ static final String P_ID_NAME = "ComponentResultsElement.name"; //$NON-NLS-1$
+ static final String P_ID_CURRENT_BUILD = "ComponentResultsElement.currentbuild"; //$NON-NLS-1$
+ static final String P_ID_BASELINE_BUILD = "ComponentResultsElement.baselinebuild"; //$NON-NLS-1$
+
+ static final String P_STR_NAME = "name"; //$NON-NLS-1$
+ static final String P_STR_CURRENT_BUILD = "current build"; //$NON-NLS-1$
+ static final String P_STR_BASELINE_BUILD = "baseline build"; //$NON-NLS-1$
+
+ private static final TextPropertyDescriptor NAME_DESCRIPTOR = new TextPropertyDescriptor(P_ID_NAME, P_STR_NAME);
+ private static final PropertyDescriptor CURRENT_BUILD_DESCRIPTOR = new PropertyDescriptor(P_ID_CURRENT_BUILD, P_STR_CURRENT_BUILD);
+ private static final PropertyDescriptor BASELINE_BUILD_DESCRIPTOR = new PropertyDescriptor(P_ID_BASELINE_BUILD, P_STR_BASELINE_BUILD);
+
+ private static Vector DESCRIPTORS;
+ static Vector initDescriptors(int status) {
+ DESCRIPTORS = new Vector();
+ // Status category
+ DESCRIPTORS.add(getInfosDescriptor(status));
+ DESCRIPTORS.add(getWarningsDescriptor(status));
+ DESCRIPTORS.add(ERROR_DESCRIPTOR);
+ ERROR_DESCRIPTOR.setCategory("Status");
+ // Results category
+ DESCRIPTORS.addElement(NAME_DESCRIPTOR);
+ NAME_DESCRIPTOR.setCategory("Results");
+ DESCRIPTORS.addElement(CURRENT_BUILD_DESCRIPTOR);
+ CURRENT_BUILD_DESCRIPTOR.setCategory("Results");
+ DESCRIPTORS.addElement(BASELINE_BUILD_DESCRIPTOR);
+ BASELINE_BUILD_DESCRIPTOR.setCategory("Results");
+ // Survey category
+ DESCRIPTORS.add(COMMENT_DESCRIPTOR);
+ COMMENT_DESCRIPTOR.setCategory("Survey");
+ return DESCRIPTORS;
+ }
+ static Vector getDescriptors() {
+ return DESCRIPTORS;
+ }
+
+public ComponentResultsElement(String name, ResultsElement parent) {
+ super(name, parent);
+}
+
+public ComponentResultsElement(AbstractResults results, ResultsElement parent) {
+ super(results, parent);
+}
+
+/*
+ * Do not create non-fingerprint child when only fingerprint is specified.
+ *
+ * @see org.eclipse.test.internal.performance.results.model.ResultsElement#createChild(org.eclipse.test.internal.performance.results.db.AbstractResults)
+ */
+ResultsElement createChild(AbstractResults testResults) {
+// if (onlyFingerprints()) {
+// ScenarioResults scenarioResults = (ScenarioResults) testResults;
+// if (!scenarioResults.hasSummary()) {
+// return null;
+// }
+// }
+ return new ScenarioResultsElement(testResults, this);
+}
+
+/**
+ * Get all results numbers for a given machine of the current component.
+ *
+ * @param configName The name of the configuration to get numbers
+ * @param fingerprints Set whether only fingerprints scenario should be taken into account
+ * @return A list of lines. Each line represent a build and is a list of either strings or values.
+ */
+public List getConfigNumbers(String configName, boolean fingerprints) {
+ if (this.results == null) return null;
+ return ((ComponentResults)this.results).getConfigNumbers(configName, fingerprints, new ArrayList());
+}
+
+/* (non-Javadoc)
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyDescriptors()
+ */
+public IPropertyDescriptor[] getPropertyDescriptors() {
+ Vector descriptors = getDescriptors();
+ if (descriptors == null) {
+ descriptors = initDescriptors(getStatus());
+ }
+ int size = descriptors.size();
+ IPropertyDescriptor[] descriptorsArray = new IPropertyDescriptor[size];
+ descriptorsArray[0] = getInfosDescriptor(getStatus());
+ descriptorsArray[1] = getWarningsDescriptor(getStatus());
+ for (int i=2; i<size; i++) {
+ descriptorsArray[i] = (IPropertyDescriptor) descriptors.get(i);
+ }
+ return descriptorsArray;
+}
+
+/* (non-Javadoc)
+ * @see org.eclipse.ui.views.properties.IPropertySource#getPropertyValue(java.lang.Object)
+ */
+public Object getPropertyValue(Object propKey) {
+ if (propKey.equals(P_ID_NAME)) {
+ return getName();
+ }
+ if (propKey.equals(P_ID_CURRENT_BUILD)) {
+ if (this.results == null) {
+ PerformanceResultsElement performanceResultsElement = (PerformanceResultsElement) getParent(null);
+ return performanceResultsElement.getName();
+ }
+ PerformanceResults performanceResults = (PerformanceResults) this.results.getParent();
+ return performanceResults.getName();
+ }
+ if (propKey.equals(P_ID_BASELINE_BUILD)) {
+ if (this.results == null) {
+ return "?";
+ }
+ PerformanceResults performanceResults = (PerformanceResults) this.results.getParent();
+ return performanceResults.getBaselineName();
+ }
+ return super.getPropertyValue(propKey);
+}
+
+/**
+ * Get the list of the scenarios results from the model. Put only fingerprint ones if specified.
+ *
+ * @param fingerprint Tell whether only fingerprint scenarios are expected or not.
+ * @return A list of {@link ScenarioResults}.
+ */
+public List getScenarios(boolean fingerprint) {
+ if (!fingerprint) {
+ return Arrays.asList(this.results.getChildren());
+ }
+ List scenarios = new ArrayList();
+ if (this.results != null) {
+ Iterator iterator = this.results.getResults();
+ while (iterator.hasNext()) {
+ ScenarioResults scenarioResults = (ScenarioResults) iterator.next();
+ if (scenarioResults.hasSummary()) {
+ scenarios.add(scenarioResults);
+ }
+ }
+ }
+ return scenarios;
+}
+
+/**
+ * Get the list of the scenarios names. Put only fingerprint ones if specified.
+ *
+ * @param fingerprint Tell whether only fingerprint scenarios are expected or not.
+ * @return A list of {@link String}.
+ */
+public List getScenariosLabels(boolean fingerprint) {
+ List labels = new ArrayList();
+ if (this.results != null) {
+ AbstractResults[] scenarios = this.results.getChildren();
+ int length = scenarios.length;
+ for (int i=0; i<length; i++) {
+ ScenarioResults scenarioResults = (ScenarioResults) scenarios[i];
+ if (!fingerprint || scenarioResults.hasSummary()) {
+ labels.add(scenarioResults.getLabel());
+ }
+ }
+ }
+ return labels;
+}
+
+/*
+ * (non-Javadoc)
+ * @see org.eclipse.test.internal.performance.results.model.ResultsElement#initStatus()
+ */
+void initStatus() {
+ if (this.results == null) {
+ this.status = UNREAD;
+ } else {
+ super.initStatus();
+ }
+}
+
+StringBuffer writableStatus(StringBuffer buffer, int kind, StringBuffer excluded) {
+ // Write status for scenarios having error
+ if ((getStatus() & ERROR_MASK) != 0) {
+
+ // Get children status
+ StringBuffer childrenBuffer = super.writableStatus(new StringBuffer(), kind, excluded);
+
+ // Write status on file if not excluded
+ if (childrenBuffer.length() > 0) {
+ buffer.append(getName());
+ IEclipsePreferences preferences = new InstanceScope().getNode(IPerformancesConstants.PLUGIN_ID);
+ String comment = preferences.get(getId(), null);
+ if (comment != null) {
+ if ((kind & IPerformancesConstants.STATUS_VALUES) != 0) {
+ buffer.append(" ");
+ } else {
+ buffer.append(" ");
+ }
+ buffer.append(comment);
+ }
+ buffer.append(Util.LINE_SEPARATOR);
+ buffer.append(childrenBuffer);
+ buffer.append(Util.LINE_SEPARATOR);
+ }
+ }
+ return buffer;
+}
+
+}