<commit_before>
package kalang.compiler.core;

import kalang.compiler.AstNotFoundException;
import kalang.compiler.ast.ClassNode;
import kalang.compiler.compile.AstLoader;
import kalang.compiler.exception.Exceptions;
import kalang.type.Function;
import kalang.type.FunctionClasses;
import org.apache.commons.collections4.bidimap.DualHashBidiMap;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author <NAME>
 */
public class Types {
    
    private static Map<String,PrimitiveType> primitiveTypes = new HashMap();
    private static Map<List,ArrayType> arrayTypes = new HashMap();
    
    //private static Map<List,ObjectType> classTypes  = new HashMap<>();
            
    private static final Map<List,ClassType> classTypes = new HashMap();

    private final static DualHashBidiMap<PrimitiveType,String> primitive2class = new DualHashBidiMap<>();

    public static final String NULL_NAME = "null";
    public static final String VOID_NAME = "void";
    public static final String BOOLEAN_NAME = "boolean";
    public static final String BYTE_NAME = "byte";
    public static final String CHAR_NAME = "char";
    public static final String SHORT_NAME = "short";
    public static final String INT_NAME = "int";
    public static final String FLOAT_NAME = "float";
    public static final String LONG_NAME = "long";
    public static final String DOUBLE_NAME = "double";



    public static final PrimitiveType 
            BOOLEAN_TYPE = getPrimitiveType(BOOLEAN_NAME)
            ,BYTE_TYPE = getPrimitiveType(BYTE_NAME)
            ,CHAR_TYPE = getPrimitiveType(CHAR_NAME)
            ,SHORT_TYPE = getPrimitiveType(SHORT_NAME)
            ,INT_TYPE = getPrimitiveType(INT_NAME)
           , LONG_TYPE = getPrimitiveType(LONG_NAME)
            ,FLOAT_TYPE = getPrimitiveType(FLOAT_NAME)
            ,DOUBLE_TYPE = getPrimitiveType(DOUBLE_NAME)
            ,NULL_TYPE = getPrimitiveType(NULL_NAME)
            ,VOID_TYPE = getPrimitiveType(VOID_NAME)
    ;

    public static final String FLOAT_CLASS_NAME = "java.lang.Float";
    public static final String DOUBLE_CLASS_NAME = "java.lang.Double";

    public static final String INT_CLASS_NAME = "java.lang.Integer";
    public static final String LONG_CLASS_NAME = "java.lang.Long";

    public static final String BOOLEAN_CLASS_NAME = "java.lang.Boolean";

    public static final String CHAR_CLASS_NAME = "java.lang.Character";

    public static final String STRING_CLASS_NAME = "java.lang.String";

    public static final String VOID_CLASS_NAME = "java.lang.Void";

    public static final String SHORT_CLASS_NAME = "java.lang.Short";

    public static final String BYTE_CLASS_NAME = "java.lang.Byte";

    public static final String ROOT_CLASS_NAME = "java.lang.Object";
    
    public static final String SCRIPT_CLASS_NAME = "kalang.Script";
    
    public static final String MAP_IMPL_CLASS_NAME = "java.util.HashMap";
    
    public static final String LIST_IMPL_CLASS_NAME = "java.util.LinkedList";
    
    public final static String EXCEPTION_CLASS_NAME = "java.lang.Exception";
    public final static String CLASS_CLASS_NAME = "java.lang.Class";
    
    public final static String ITERABLE_CLASS_NAME = "java.lang.Iterable";
    
    public final static String ASSERTION_ERROR_CLASS_NAME = AssertionError.class.getName()
            ,FUNCTION_CLASS_NAME = Function.class.getName()
            ;
            <commit_msg>feat: update default map implementation<commit_after>
package kalang.compiler.core;

import kalang.compiler.AstNotFoundException;
import kalang.compiler.ast.ClassNode;
import kalang.compiler.compile.AstLoader;
import kalang.compiler.exception.Exceptions;
import kalang.type.Function;
import kalang.type.FunctionClasses;
import org.apache.commons.collections4.bidimap.DualHashBidiMap;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author <NAME>
 */
public class Types {
    
    private static Map<String,PrimitiveType> primitiveTypes = new HashMap();
    private static Map<List,ArrayType> arrayTypes = new HashMap();
    
    //private static Map<List,ObjectType> classTypes  = new HashMap<>();
            
    private static final Map<List,ClassType> classTypes = new HashMap();

    private final static DualHashBidiMap<PrimitiveType,String> primitive2class = new DualHashBidiMap<>();

    public static final String NULL_NAME = "null";
    public static final String VOID_NAME = "void";
    public static final String BOOLEAN_NAME = "boolean";
    public static final String BYTE_NAME = "byte";
    public static final String CHAR_NAME = "char";
    public static final String SHORT_NAME = "short";
    public static final String INT_NAME = "int";
    public static final String FLOAT_NAME = "float";
    public static final String LONG_NAME = "long";
    public static final String DOUBLE_NAME = "double";



    public static final PrimitiveType 
            BOOLEAN_TYPE = getPrimitiveType(BOOLEAN_NAME)
            ,BYTE_TYPE = getPrimitiveType(BYTE_NAME)
            ,CHAR_TYPE = getPrimitiveType(CHAR_NAME)
            ,SHORT_TYPE = getPrimitiveType(SHORT_NAME)
            ,INT_TYPE = getPrimitiveType(INT_NAME)
           , LONG_TYPE = getPrimitiveType(LONG_NAME)
            ,FLOAT_TYPE = getPrimitiveType(FLOAT_NAME)
            ,DOUBLE_TYPE = getPrimitiveType(DOUBLE_NAME)
            ,NULL_TYPE = getPrimitiveType(NULL_NAME)
            ,VOID_TYPE = getPrimitiveType(VOID_NAME)
    ;

    public static final String FLOAT_CLASS_NAME = "java.lang.Float";
    public static final String DOUBLE_CLASS_NAME = "java.lang.Double";

    public static final String INT_CLASS_NAME = "java.lang.Integer";
    public static final String LONG_CLASS_NAME = "java.lang.Long";

    public static final String BOOLEAN_CLASS_NAME = "java.lang.Boolean";

    public static final String CHAR_CLASS_NAME = "java.lang.Character";

    public static final String STRING_CLASS_NAME = "java.lang.String";

    public static final String VOID_CLASS_NAME = "java.lang.Void";

    public static final String SHORT_CLASS_NAME = "java.lang.Short";

    public static final String BYTE_CLASS_NAME = "java.lang.Byte";

    public static final String ROOT_CLASS_NAME = "java.lang.Object";
    
    public static final String SCRIPT_CLASS_NAME = "kalang.Script";
    
    public static final String MAP_IMPL_CLASS_NAME = "java.util.LinkedHashMap";
    
    public static final String LIST_IMPL_CLASS_NAME = "java.util.LinkedList";
    
    public final static String EXCEPTION_CLASS_NAME = "java.lang.Exception";
    public final static String CLASS_CLASS_NAME = "java.lang.Class";
    
    public final static String ITERABLE_CLASS_NAME = "java.lang.Iterable";
    
    public final static String ASSERTION_ERROR_CLASS_NAME = AssertionError.class.getName()
            ,FUNCTION_CLASS_NAME = Function.class.getName()
            ;
            
{'fraction_non_alphanumeric': 0.0839943342776204, 'fraction_numerical': 0.0005665722379603399, 'mean_word_length': 3.6668869795109056, 'pattern_counts': {'":': 0, '<': 19, '<?xml version=': 0, '>': 19, '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': '2970749', 'n_tokens_mistral': 2041, 'n_tokens_neox': 2016, 'n_words': 520}