From 6c7ac2d215c95bcc3d469bdfb730a4fbc4369f18 Mon Sep 17 00:00:00 2001 From: rbrooks Date: Mon, 20 Sep 2010 14:46:02 -0700 Subject: refactor: Convert nested class FindResults.FindResultsIterator to a top level class --- .../relation/Import/ExtractTestRelations.java | 3 +- .../META-INF/MANIFEST.MF | 3 +- .../osee/framework/jdk/core/text/FindResults.java | 55 +---------------- .../jdk/core/text/tool/FindResultsIterator.java | 70 ++++++++++++++++++++++ .../jdk/core/text/tool/FunctionCallStats.java | 2 +- 5 files changed, 78 insertions(+), 55 deletions(-) create mode 100644 plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/tool/FindResultsIterator.java (limited to 'plugins') diff --git a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/relation/Import/ExtractTestRelations.java b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/relation/Import/ExtractTestRelations.java index 53ba46e2d63..95d2b07abfa 100644 --- a/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/relation/Import/ExtractTestRelations.java +++ b/plugins/org.eclipse.osee.define/src/org/eclipse/osee/define/relation/Import/ExtractTestRelations.java @@ -28,6 +28,7 @@ import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.jdk.core.text.FindResults; import org.eclipse.osee.framework.jdk.core.text.tool.Find; +import org.eclipse.osee.framework.jdk.core.text.tool.FindResultsIterator; import org.eclipse.osee.framework.jdk.core.util.Lib; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -56,7 +57,7 @@ public class ExtractTestRelations { app.find(999999, true); FindResults results = app.getResults(); - for (FindResults.FindResultsIterator i = results.iterator(); i.hasNext();) { + for (FindResultsIterator i = results.iterator(); i.hasNext();) { try { addRelationToDatabaseIfNotAlreadyThere(AWorkspace.fileToIFile(i.currentFile), i.currentRegion); } catch (Exception ex) { diff --git a/plugins/org.eclipse.osee.framework.core.test/META-INF/MANIFEST.MF b/plugins/org.eclipse.osee.framework.core.test/META-INF/MANIFEST.MF index bbc54f3a93a..62ff07de859 100644 --- a/plugins/org.eclipse.osee.framework.core.test/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.osee.framework.core.test/META-INF/MANIFEST.MF @@ -9,4 +9,5 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: org.junit4;bundle-version="4.5.0" Export-Package: org.eclipse.osee.framework.core.test, org.eclipse.osee.framework.core.test.mocks -Import-Package: org.eclipse.osee.framework.jdk.core.text.tool +Import-Package: org.eclipse.osee.framework.jdk.core.text, + org.eclipse.osee.framework.jdk.core.text.tool diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/FindResults.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/FindResults.java index 6a903215a8e..b9740d46d2e 100644 --- a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/FindResults.java +++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/FindResults.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import org.eclipse.osee.framework.jdk.core.text.tool.FindResultsIterator; /** * @author Ryan D. Brooks @@ -49,7 +50,7 @@ public class FindResults { } public void writeFindResutls(Writer out) throws IOException { - for (FindResults.FindResultsIterator i = iterator(); i.hasNext();) { + for (FindResultsIterator i = iterator(); i.hasNext();) { // write out the file name, pattern, and region surrounding match out.write(i.currentPattern); out.write('@'); @@ -63,57 +64,7 @@ public class FindResults { } public FindResultsIterator iterator() { - return new FindResultsIterator(); - } - - /** - * @author Ryan D. Brooks - */ - public class FindResultsIterator { - private Iterator>>> patternIterator; - private Iterator>> fileIterator; - private Iterator listIterator; - private boolean more; - public String currentPattern; - public File currentFile; - public String currentRegion; - - private FindResultsIterator() { - reset(); - } - - public void reset() { - this.more = true; - this.patternIterator = results.entrySet().iterator(); - this.listIterator = null; - this.fileIterator = null; - } - - // assumption every the list and file itorator's will have at least one item - private void primePump() { - if (listIterator == null || !listIterator.hasNext()) { - if (fileIterator == null || !fileIterator.hasNext()) { - if (!patternIterator.hasNext()) { - more = false; - return; - } - Map.Entry>> entry = patternIterator.next(); - currentPattern = entry.getKey(); - HashMap> fileMatches = entry.getValue(); - fileIterator = fileMatches.entrySet().iterator(); - } - Map.Entry> entry = fileIterator.next(); - currentFile = entry.getKey(); - List list = entry.getValue(); - listIterator = list.iterator(); - } - currentRegion = listIterator.next(); - } - - public boolean hasNext() { - primePump(); - return more; - } + return new FindResultsIterator(results); } /** diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/tool/FindResultsIterator.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/tool/FindResultsIterator.java new file mode 100644 index 00000000000..78b9c4240e7 --- /dev/null +++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/tool/FindResultsIterator.java @@ -0,0 +1,70 @@ +/******************************************************************************* + * Copyright (c) 2004, 2007 Boeing. + * 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: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.framework.jdk.core.text.tool; + +import java.io.File; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +/** + * @author Ryan D. Brooks + */ +public class FindResultsIterator { + private Iterator>>> patternIterator; + private Iterator>> fileIterator; + private Iterator listIterator; + private boolean more; + public String currentPattern; + public File currentFile; + public String currentRegion; + private final HashMap>> results; + + public FindResultsIterator(HashMap>> results) { + this.results = results; + reset(); + } + + public void reset() { + this.more = true; + this.patternIterator = results.entrySet().iterator(); + this.listIterator = null; + this.fileIterator = null; + } + + // assumption every the list and file itorator's will have at least one item + private void primePump() { + if (listIterator == null || !listIterator.hasNext()) { + if (fileIterator == null || !fileIterator.hasNext()) { + if (!patternIterator.hasNext()) { + more = false; + return; + } + Map.Entry>> entry = patternIterator.next(); + currentPattern = entry.getKey(); + HashMap> fileMatches = entry.getValue(); + fileIterator = fileMatches.entrySet().iterator(); + } + Map.Entry> entry = fileIterator.next(); + currentFile = entry.getKey(); + List list = entry.getValue(); + listIterator = list.iterator(); + } + currentRegion = listIterator.next(); + } + + public boolean hasNext() { + primePump(); + return more; + } +} \ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/tool/FunctionCallStats.java b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/tool/FunctionCallStats.java index 6c4b123a0ae..d7d7b265f01 100644 --- a/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/tool/FunctionCallStats.java +++ b/plugins/org.eclipse.osee.framework.jdk.core/src/org/eclipse/osee/framework/jdk/core/text/tool/FunctionCallStats.java @@ -59,7 +59,7 @@ public class FunctionCallStats { String lastFileName = null; HashMap functions = new HashMap(1000); - for (FindResults.FindResultsIterator i = results.iterator(); i.hasNext();) { + for (FindResultsIterator i = results.iterator(); i.hasNext();) { String currentFileName = i.currentFile.getName(); if (i.currentRegion != null) { -- cgit v1.2.3