// Path: src/main/java/renaming/history/RepentDataParser.java
// public static class Renaming {
// 	public String fromVersion;
// 	public String toVersion;
// 	String filename;
// 	String nameBefore;
// 	String nameAfter;
// 	public Range<Integer> linesBefore;
// 	public Range<Integer> linesAfter;
// 
// 	/*
// 	 * (non-Javadoc)
// 	 * 
// 	 * @see java.lang.Object#toString()
// 	 */
// 	@Override
// 	public String toString() {
// 		final StringBuilder builder = new StringBuilder();
// 		builder.append("Renaming [fromVersion=");
// 		builder.append(fromVersion);
// 		builder.append(", toVersion=");
// 		builder.append(toVersion);
// 		builder.append(", filename=");
// 		builder.append(filename);
// 		builder.append(", nameBefore=");
// 		builder.append(nameBefore);
// 		builder.append(", nameAfter=");
// 		builder.append(nameAfter);
// 		builder.append(", linesBefore=");
// 		builder.append(linesBefore);
// 		builder.append(", linesAfter=");
// 		builder.append(linesAfter);
// 		builder.append("]");
// 		return builder.toString();
// 	}
// 
// }


import static com.google.common.base.Preconditions.checkArgument;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.function.Predicate;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.NoHeadException;
import org.eclipse.jgit.errors.NoWorkTreeException;
import org.eclipse.jgit.revwalk.RevCommit;
import renaming.history.RepentDataParser.Renaming;
import codemining.java.codeutils.binding.JavaApproximateVariableBindingExtractor;
import codemining.java.codeutils.binding.JavaMethodDeclarationBindingExtractor;
import codemining.java.codeutils.binding.tui.JavaBindingsToJson.SerializableResolvedSourceCode;
import codemining.languagetools.bindings.ResolvedSourceCode;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import com.google.gson.Gson;
import com.google.gson.JsonIOException;
import committools.data.RepositoryFileWalker;
package renaming.history;






public class RenamingDatasetExtractor {

	public static class BindingExtractor extends RepositoryFileWalker {

		List<RenamedSerializableResolvedSourceCode> renamedVariablesDatapoints = Lists
				.newArrayList();

		List<RenamedSerializableResolvedSourceCode> renamedMethodDeclarationsDatapoints = Lists
				.newArrayList();

// Path: src/main/java/renaming/history/RepentDataParser.java
// public static class Renaming {
// 	public String fromVersion;
// 	public String toVersion;
// 	String filename;
// 	String nameBefore;
// 	String nameAfter;
// 	public Range<Integer> linesBefore;
// 	public Range<Integer> linesAfter;
// 
// 	/*
// 	 * (non-Javadoc)
// 	 * 
// 	 * @see java.lang.Object#toString()
// 	 */
// 	@Override
// 	public String toString() {
// 		final StringBuilder builder = new StringBuilder();
// 		builder.append("Renaming [fromVersion=");
// 		builder.append(fromVersion);
// 		builder.append(", toVersion=");
// 		builder.append(toVersion);
// 		builder.append(", filename=");
// 		builder.append(filename);
// 		builder.append(", nameBefore=");
// 		builder.append(nameBefore);
// 		builder.append(", nameAfter=");
// 		builder.append(nameAfter);
// 		builder.append(", linesBefore=");
// 		builder.append(linesBefore);
// 		builder.append(", linesAfter=");
// 		builder.append(linesAfter);
// 		builder.append("]");
// 		return builder.toString();
// 	}
// 
// }


// Path: src/main/java/renaming/history/RenamingDatasetExtractor.java
import static com.google.common.base.Preconditions.checkArgument;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.function.Predicate;
import org.eclipse.jdt.core.dom.ASTNode;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.NoHeadException;
import org.eclipse.jgit.errors.NoWorkTreeException;
import org.eclipse.jgit.revwalk.RevCommit;
import renaming.history.RepentDataParser.Renaming;
import codemining.java.codeutils.binding.JavaApproximateVariableBindingExtractor;
import codemining.java.codeutils.binding.JavaMethodDeclarationBindingExtractor;
import codemining.java.codeutils.binding.tui.JavaBindingsToJson.SerializableResolvedSourceCode;
import codemining.languagetools.bindings.ResolvedSourceCode;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import com.google.gson.Gson;
import com.google.gson.JsonIOException;
import committools.data.RepositoryFileWalker;

package renaming.history;






public class RenamingDatasetExtractor {

	public static class BindingExtractor extends RepositoryFileWalker {

		List<RenamedSerializableResolvedSourceCode> renamedVariablesDatapoints = Lists
				.newArrayList();

		List<RenamedSerializableResolvedSourceCode> renamedMethodDeclarationsDatapoints = Lists
				.newArrayList();

		final Multimap<String, Renaming> renamings;