<commit_before>import java.util.ArrayList;

/**
 * 
 */

/**
 * @author wgf2104
 *
 */
public class Element {

	private String name;
	private String type;
	private Element parent;
	private ArrayList<Element> children;

	public Element(String name, String type) {
		this.name = name;
		this.type = type;
		this.parent = null;
		this.children = new ArrayList<Element>();
	}
	
	public Element(String name, String type, Element parent) {
		this.name = name;
		this.type = type;
		this.parent = parent;
		this.children = new ArrayList<Element>();
	}
	
	public Element(String name, String type, ArrayList<Element> children) {
		this.name = name;
		this.type = type;
		this.parent = null;
		this.children = children;
	}
	
	//sub-folders and zips
	public Element(String name, String type, Element parent, ArrayList<Element> children) {
		this.name = name;
		this.type = type;
		this.parent = parent;
		this.children = new ArrayList<Element>();
	}
	
	
	public String getPath() {
		return "/" + name;
	}
<commit_msg>some comments to keep track of constructors within generic element type<commit_after>import java.util.ArrayList;

/**
 * 
 */

/**
 * @author wgf2104
 *
 */
public class Element {

	private String name;
	private String type;
	private Element parent;
	private ArrayList<Element> children;

	//drives
	public Element(String name, String type) {
		this.name = name;
		this.type = type;
		this.parent = null;
		this.children = new ArrayList<Element>();
	}
	
	//folders, zips and text files
	public Element(String name, String type, Element parent) {
		this.name = name;
		this.type = type;
		this.parent = parent;
		//maybe a little bloated for text files to all have an empty set of children, 
		//but so much simpler to just check type in addChild instead of both here and
		//there.
		this.children = new ArrayList<Element>();
	}
	
	//probably don't need to recreate drives... for completeness I guess though?
	public Element(String name, String type, ArrayList<Element> children) {
		this.name = name;
		this.type = type;
		this.parent = null;
		this.children = children;
	}
	
	//probably don't need to recreate sub-folders and zips with predefined children sets
	public Element(String name, String type, Element parent, ArrayList<Element> children) {
		this.name = name;
		this.type = type;
		this.parent = parent;
		this.children = new ArrayList<Element>();
	}
	
	
	public String getPath() {
		return "/" + name;
	}

{'fraction_non_alphanumeric': 0.11344884488448845, 'fraction_numerical': 0.0033003300330033004, 'mean_word_length': 3.5242537313432836, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7407093', 'n_tokens_mistral': 806, 'n_tokens_neox': 728, 'n_words': 247}