// Path: test/src/lombok/ast/grammar/RunForEachFileInDirRunner.java
// public static String fixLineEndings(String in) {
// 	String plaf = System.getProperty("line.separator", "\n");
// 	if (plaf.equals("\n")) return in;
// 	return in.replace(plaf, "\n");
// }
// 
// Path: test/src/lombok/ast/grammar/RunForEachFileInDirRunner.java
// @Data
// public static final class DirDescriptor implements Comparable<DirDescriptor> {
// 	private final File directory;
// 	private final Pattern inclusionPattern;
// 	private final Pattern exclusionPattern;
// 	private final File mirrorDirectory;
// 	private final boolean recurse;
// 		
// 	public static DirDescriptor of(File directory, boolean recurse) {
// 		return new DirDescriptor(directory, Pattern.compile("^.*\\.java$"), null, null, recurse);
// 	}
// 		
// 	public DirDescriptor withExclusion(Pattern pattern) {
// 		return new DirDescriptor(directory, inclusionPattern, pattern, mirrorDirectory, recurse);
// 	}
// 		
// 	public DirDescriptor withInclusion(Pattern pattern) {
// 		return new DirDescriptor(directory, pattern, exclusionPattern, mirrorDirectory, recurse);
// 	}
// 		
// 	public DirDescriptor withMirror(File mirror) {
// 		return new DirDescriptor(directory, inclusionPattern, exclusionPattern, mirror, recurse);
// 	}
// 		
// 	@Override
// 	public int compareTo(DirDescriptor other) {
// 		int result = directory.getAbsolutePath().compareTo(other.directory.getAbsolutePath());
// 		if (result != 0) return result;
// 		if (mirrorDirectory != null && other.mirrorDirectory == null) return +1;
// 		if (mirrorDirectory == null && other.mirrorDirectory != null) return -1;
// 		if (mirrorDirectory != null) result = mirrorDirectory.getAbsolutePath().compareTo(other.mirrorDirectory.getAbsolutePath());
// 		if (result != 0) return result;
// 		if (recurse && !other.recurse) return +1;
// 		if (!recurse && other.recurse) return -1;
// 		if (inclusionPattern != null && other.inclusionPattern == null) return +1;
// 		if (inclusionPattern == null && other.inclusionPattern != null) return -1;
// 		if (inclusionPattern != null) result = inclusionPattern.pattern().compareTo(other.inclusionPattern.pattern());
// 		if (result != 0) return result;
// 		if (exclusionPattern != null && other.exclusionPattern == null) return +1;
// 		if (exclusionPattern == null && other.exclusionPattern != null) return -1;
// 		if (exclusionPattern != null) result = exclusionPattern.pattern().compareTo(other.exclusionPattern.pattern());
// 		return result;
// 	}
// }


import static org.junit.Assert.*;
import static lombok.ast.grammar.RunForEachFileInDirRunner.fixLineEndings;
import java.io.File;
import java.util.Arrays;
import java.util.Collection;
import lombok.ast.grammar.RunForEachFileInDirRunner.DirDescriptor;
/*
 * Copyright (C) 2010 The Project Lombok Authors.
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
package lombok.ast.grammar;




abstract class TreeBuilderRunner<N> extends RunForEachFileInDirRunner.SourceFileBasedTester {
	private final boolean lombokIsActual;
	
	protected TreeBuilderRunner(boolean lombokIsActual) {
		this.lombokIsActual = lombokIsActual;
		
	}
	
	@Override
	protected Collection<DirDescriptor> getDirDescriptors() {
		return Arrays.asList(
				DirDescriptor.of(new File("test/resources/idempotency"), true),
				DirDescriptor.of(new File("test/resources/alias"), true),
// Path: test/src/lombok/ast/grammar/RunForEachFileInDirRunner.java
// public static String fixLineEndings(String in) {
// 	String plaf = System.getProperty("line.separator", "\n");
// 	if (plaf.equals("\n")) return in;
// 	return in.replace(plaf, "\n");
// }
// 
// Path: test/src/lombok/ast/grammar/RunForEachFileInDirRunner.java
// @Data
// public static final class DirDescriptor implements Comparable<DirDescriptor> {
// 	private final File directory;
// 	private final Pattern inclusionPattern;
// 	private final Pattern exclusionPattern;
// 	private final File mirrorDirectory;
// 	private final boolean recurse;
// 		
// 	public static DirDescriptor of(File directory, boolean recurse) {
// 		return new DirDescriptor(directory, Pattern.compile("^.*\\.java$"), null, null, recurse);
// 	}
// 		
// 	public DirDescriptor withExclusion(Pattern pattern) {
// 		return new DirDescriptor(directory, inclusionPattern, pattern, mirrorDirectory, recurse);
// 	}
// 		
// 	public DirDescriptor withInclusion(Pattern pattern) {
// 		return new DirDescriptor(directory, pattern, exclusionPattern, mirrorDirectory, recurse);
// 	}
// 		
// 	public DirDescriptor withMirror(File mirror) {
// 		return new DirDescriptor(directory, inclusionPattern, exclusionPattern, mirror, recurse);
// 	}
// 		
// 	@Override
// 	public int compareTo(DirDescriptor other) {
// 		int result = directory.getAbsolutePath().compareTo(other.directory.getAbsolutePath());
// 		if (result != 0) return result;
// 		if (mirrorDirectory != null && other.mirrorDirectory == null) return +1;
// 		if (mirrorDirectory == null && other.mirrorDirectory != null) return -1;
// 		if (mirrorDirectory != null) result = mirrorDirectory.getAbsolutePath().compareTo(other.mirrorDirectory.getAbsolutePath());
// 		if (result != 0) return result;
// 		if (recurse && !other.recurse) return +1;
// 		if (!recurse && other.recurse) return -1;
// 		if (inclusionPattern != null && other.inclusionPattern == null) return +1;
// 		if (inclusionPattern == null && other.inclusionPattern != null) return -1;
// 		if (inclusionPattern != null) result = inclusionPattern.pattern().compareTo(other.inclusionPattern.pattern());
// 		if (result != 0) return result;
// 		if (exclusionPattern != null && other.exclusionPattern == null) return +1;
// 		if (exclusionPattern == null && other.exclusionPattern != null) return -1;
// 		if (exclusionPattern != null) result = exclusionPattern.pattern().compareTo(other.exclusionPattern.pattern());
// 		return result;
// 	}
// }


// Path: test/src/lombok/ast/grammar/TreeBuilderRunner.java
import static org.junit.Assert.*;
import static lombok.ast.grammar.RunForEachFileInDirRunner.fixLineEndings;
import java.io.File;
import java.util.Arrays;
import java.util.Collection;
import lombok.ast.grammar.RunForEachFileInDirRunner.DirDescriptor;

/*
 * Copyright (C) 2010 The Project Lombok Authors.
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
package lombok.ast.grammar;




abstract class TreeBuilderRunner<N> extends RunForEachFileInDirRunner.SourceFileBasedTester {
	private final boolean lombokIsActual;
	
	protected TreeBuilderRunner(boolean lombokIsActual) {
		this.lombokIsActual = lombokIsActual;
		
	}
	
	@Override
	protected Collection<DirDescriptor> getDirDescriptors() {
		return Arrays.asList(
				DirDescriptor.of(new File("test/resources/idempotency"), true),
				DirDescriptor.of(new File("test/resources/alias"), true),
				DirDescriptor.of(new File("test/resources/special"), true));