// Path: tools/src/main/java/com/giddyplanet/embrace/tools/model/TypeResolver.java
// public interface TypeResolver {
//     Definition resolve(String type);
// }
// 
// Path: tools/src/main/java/com/giddyplanet/embrace/tools/model/webidl/Enumeration.java
// public class Enumeration implements Definition {
//     private List<String> values = new ArrayList<>();
//     private String name;
// 
//     public Enumeration(String name) {
//         this.name = name;
//     }
// 
//     public void addValue(String text) {
//         values.add(text);
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public List<String> getValues() {
//         return values;
//     }
// }


import com.giddyplanet.embrace.tools.model.TypeResolver;
import com.giddyplanet.embrace.tools.model.java.*;
import com.giddyplanet.embrace.tools.model.webidl.*;
import com.giddyplanet.embrace.tools.model.webidl.Enumeration;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
import java.util.*;

        return resolved == null || "Object".equals(type) ? "Object" : resolved instanceof Interface ? ((Interface) resolved).getJavaName() : type;
    }

    private String box(String type) {
        switch (type) {
            case "int":
            case "integer":
                return "Integer";
            case "double":
                return "Double";
        }
        return type;
    }

    private String fixName(String name) {
        switch (name) {
            case "interface":
                return "interface_";
            case "default":
                return "return_";
            default:
                return name;
        }
    }

    private String makeIdentifier(String s) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
// Path: tools/src/main/java/com/giddyplanet/embrace/tools/model/TypeResolver.java
// public interface TypeResolver {
//     Definition resolve(String type);
// }
// 
// Path: tools/src/main/java/com/giddyplanet/embrace/tools/model/webidl/Enumeration.java
// public class Enumeration implements Definition {
//     private List<String> values = new ArrayList<>();
//     private String name;
// 
//     public Enumeration(String name) {
//         this.name = name;
//     }
// 
//     public void addValue(String text) {
//         values.add(text);
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public List<String> getValues() {
//         return values;
//     }
// }


// Path: tools/src/main/java/com/giddyplanet/embrace/tools/javawriter/JavaWriter.java
import com.giddyplanet.embrace.tools.model.TypeResolver;
import com.giddyplanet.embrace.tools.model.java.*;
import com.giddyplanet.embrace.tools.model.webidl.*;
import com.giddyplanet.embrace.tools.model.webidl.Enumeration;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
import java.util.*;


        return resolved == null || "Object".equals(type) ? "Object" : resolved instanceof Interface ? ((Interface) resolved).getJavaName() : type;
    }

    private String box(String type) {
        switch (type) {
            case "int":
            case "integer":
                return "Integer";
            case "double":
                return "Double";
        }
        return type;
    }

    private String fixName(String name) {
        switch (name) {
            case "interface":
                return "interface_";
            case "default":
                return "return_";
            default:
                return name;
        }
    }

    private String makeIdentifier(String s) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (i == 0 && Character.isJavaIdentifierStart(c)) {