<commit_before>package org.jpc;

import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;

import org.jconverter.converter.CheckedConverterEvaluator;
import org.jconverter.converter.ConversionException;
import org.jconverter.converter.Converter;
import org.jconverter.instantiation.InstantiationManager;
import org.jconverter.instantiation.JGumInstantiationManager;
import org.jgum.JGum;
import org.jgum.strategy.ChainOfResponsibility;
import org.jpc.converter.FromTermConverter;
import org.jpc.converter.FromTermConverterAdapter;
import org.jpc.converter.JpcConverterManager;
import org.jpc.converter.catalog.jterm.FromJTermConverter;
import org.jpc.converter.catalog.jterm.FromSerializedConverter;
import org.jpc.converter.typesolver.JGumTypeSolverManager;
import org.jpc.converter.typesolver.TypeSolverManager;
import org.jpc.converter.typesolver.UnrecognizedObjectException;
import org.jpc.error.handling.DefaultJpcErrorHandler;
import org.jpc.error.handling.ErrorHandler;
import org.jpc.term.Term;
import org.jpc.term.Var;
import org.jpc.term.jterm.JTermManager;
import org.jpc.term.jterm.JTermUtil;
import org.minitoolbox.reflection.IncompatibleTypesException;
import org.minitoolbox.reflection.typewrapper.TypeWrapper;


public class DefaultJpc extends Jpc {
	
	
	
	//private final VarConverter nullConverter = new VarConverter();
	private final ChainOfResponsibility<Converter<?,?>,?> fromTermSystemConverter;
	private final JTermManager jTermManager;
	private final ErrorHandler errorHandler;
	//private final JpcPreferences preferences;
	private final TypeSolverManager typeSolverManager; //responsible of recommending types for the result of a conversion.
	
	public DefaultJpc() {
		this(new JGum());
	}
	
	private DefaultJpc(JGum jgum) {
		this(JpcConverterManager.createDefault(jgum),
				JGumInstantiationManager.createDefault(jgum), 
				JGumTypeSolverManager.createDefault(jgum), 
				JTermUtil.getJTermManager(), 
				new DefaultJpcErrorHandler());
	}
	
	public DefaultJpc(JpcConverterManager converterManager, InstantiationManager instantiationManager, TypeSolverManager typeSolverManager, JTermManager jTermManager, ErrorHandler errorHandler) {
		super(converterManager, instantiationManager, typeSolverManager);
		this.typeSolverManager = typeSolverManager;
		this.jTermManager = jTermManager;
		this.errorHandler = errorHandler;
		fromTermSystemConverter = getFromTermSystemConverter();
	}
	<commit_msg>changed DefaultJpc constructor<commit_after>package org.jpc;

import java.lang.reflect.Type;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;

import org.jconverter.converter.CheckedConverterEvaluator;
import org.jconverter.converter.ConversionException;
import org.jconverter.converter.Converter;
import org.jconverter.instantiation.InstantiationManager;
import org.jconverter.instantiation.JGumInstantiationManager;
import org.jgum.JGum;
import org.jgum.strategy.ChainOfResponsibility;
import org.jpc.converter.FromTermConverter;
import org.jpc.converter.FromTermConverterAdapter;
import org.jpc.converter.JpcConverterManager;
import org.jpc.converter.catalog.jterm.FromJTermConverter;
import org.jpc.converter.catalog.jterm.FromSerializedConverter;
import org.jpc.converter.typesolver.JGumTypeSolverManager;
import org.jpc.converter.typesolver.TypeSolverManager;
import org.jpc.converter.typesolver.UnrecognizedObjectException;
import org.jpc.error.handling.DefaultJpcErrorHandler;
import org.jpc.error.handling.ErrorHandler;
import org.jpc.term.Term;
import org.jpc.term.Var;
import org.jpc.term.jterm.JTermManager;
import org.jpc.term.jterm.JTermUtil;
import org.minitoolbox.reflection.IncompatibleTypesException;
import org.minitoolbox.reflection.typewrapper.TypeWrapper;


public class DefaultJpc extends Jpc {
	
	//private final VarConverter nullConverter = new VarConverter();
	private final ChainOfResponsibility<Converter<?,?>,?> fromTermSystemConverter;
	private final JTermManager jTermManager;
	private final ErrorHandler errorHandler;
	//private final JpcPreferences preferences;
	private final TypeSolverManager typeSolverManager; //responsible of recommending types for the result of a conversion.
	
	public DefaultJpc() {
		this(new JGum());
	}
	
	protected DefaultJpc(JGum jgum) {
		this(JpcConverterManager.createDefault(jgum),
				JGumInstantiationManager.createDefault(jgum), 
				JGumTypeSolverManager.createDefault(jgum), 
				JTermUtil.getJTermManager(), 
				new DefaultJpcErrorHandler());
	}
	
	protected DefaultJpc(JpcConverterManager converterManager, InstantiationManager instantiationManager, TypeSolverManager typeSolverManager, JTermManager jTermManager, ErrorHandler errorHandler) {
		super(converterManager, instantiationManager, typeSolverManager);
		this.typeSolverManager = typeSolverManager;
		this.jTermManager = jTermManager;
		this.errorHandler = errorHandler;
		fromTermSystemConverter = getFromTermSystemConverter();
	}
	
{'fraction_non_alphanumeric': 0.08343409915356712, 'fraction_numerical': 0.0, 'mean_word_length': 7.017770597738288, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, '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': '1351352', 'n_tokens_mistral': 1575, 'n_tokens_neox': 1499, 'n_words': 266}