<commit_before>package trikita.anvil;

import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;

import java.lang.reflect.InvocationTargetException;
import java.util.*;

public class Render {

	public interface Renderable {
		ViewNode view();
		ViewGroup getRootView();
	}

	//
	// Little trick to get type-safety.
	// T here is "View" if node is applicable to views and viewgroups
	// T here is "ViewGroup" if node is applicable to viewgroups only
	// Then v(Class<T>, INode<? super T>...) will:
	// - accept View class and INode<View> nodes
	// - accept ViewGroup class and INode<View> nodes
	// - accept ViewGroup class and INode<ViewGroup> nodes
	// - not accept View class and INode<ViewGroup> nodes (ViewGroup is not super of View)
	//
	public interface INode<T> {} // Node type signature

	// Nested views can be used with viewgroups only
	public static class ViewNode implements INode<ViewGroup> {
		Class<? extends View> viewClass;
		List<ViewNode> children = new ArrayList<ViewNode>();
		List<AttrNode> attrs = new ArrayList<AttrNode>();

		public ViewNode(Class<? extends View> c) {
			this.viewClass = c;
		}<commit_msg>changed class name for Anvil<commit_after>package trikita.anvil;

import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;

import java.lang.reflect.InvocationTargetException;
import java.util.*;

public class Anvil {

	public interface Renderable {
		ViewNode view();
		ViewGroup getRootView();
	}

	//
	// Little trick to get type-safety.
	// T here is "View" if node is applicable to views and viewgroups
	// T here is "ViewGroup" if node is applicable to viewgroups only
	// Then v(Class<T>, INode<? super T>...) will:
	// - accept View class and INode<View> nodes
	// - accept ViewGroup class and INode<View> nodes
	// - accept ViewGroup class and INode<ViewGroup> nodes
	// - not accept View class and INode<ViewGroup> nodes (ViewGroup is not super of View)
	//
	public interface INode<T> {} // Node type signature

	// Nested views can be used with viewgroups only
	public static class ViewNode implements INode<ViewGroup> {
		Class<? extends View> viewClass;
		List<ViewNode> children = new ArrayList<ViewNode>();
		List<AttrNode> attrs = new ArrayList<AttrNode>();

		public ViewNode(Class<? extends View> c) {
			this.viewClass = c;
		}
{'fraction_non_alphanumeric': 0.10337837837837838, 'fraction_numerical': 0.0, 'mean_word_length': 4.3544303797468356, 'pattern_counts': {'":': 0, '<': 31, '<?xml version=': 0, '>': 31, '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': '7478757', 'n_tokens_mistral': 889, 'n_tokens_neox': 864, 'n_words': 292}