// Path: src/main/java/org/mybatis/generator/api/dom/OutputUtilities.java
// public static Set<String> calculateImports(
//         Set<FullyQualifiedJavaType> importedTypes) {
//     StringBuilder sb = new StringBuilder();
//     Set<String> importStrings = new TreeSet<String>();
//     for (FullyQualifiedJavaType fqjt : importedTypes) {
//         for (String importString : fqjt.getImportList()) {
//             sb.setLength(0);
//             sb.append("import "); //$NON-NLS-1$
//             sb.append(importString);
//             sb.append(';');
//             importStrings.add(sb.toString());
//         }
//     }
// 
//     return importStrings;
// }
// 
// Path: src/main/java/org/mybatis/generator/api/dom/OutputUtilities.java
// public static void javaIndent(StringBuilder sb, int indentLevel) {
//     for (int i = 0; i < indentLevel; i++) {
//         sb.append("    "); //$NON-NLS-1$
//     }
// }
// 
// Path: src/main/java/org/mybatis/generator/api/dom/OutputUtilities.java
// public static void newLine(StringBuilder sb) {
//     sb.append(lineSeparator);
// }


import static org.mybatis.generator.api.dom.OutputUtilities.calculateImports;
import static org.mybatis.generator.api.dom.OutputUtilities.javaIndent;
import static org.mybatis.generator.api.dom.OutputUtilities.newLine;
import static org.mybatis.generator.internal.util.StringUtility.stringHasValue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
    public Interface(FullyQualifiedJavaType type) {
        super();
        this.type = type;
        superInterfaceTypes = new LinkedHashSet<FullyQualifiedJavaType>();
        methods = new ArrayList<Method>();
        importedTypes = new TreeSet<FullyQualifiedJavaType>();
        fileCommentLines = new ArrayList<String>();
        staticImports = new TreeSet<String>();
    }

    public Interface(String type) {
        this(new FullyQualifiedJavaType(type));
    }

    public Set<FullyQualifiedJavaType> getImportedTypes() {
        return Collections.unmodifiableSet(importedTypes);
    }

    public void addImportedType(FullyQualifiedJavaType importedType) {
        if (importedType.isExplicitlyImported()
                && !importedType.getPackageName().equals(type.getPackageName())) {
            importedTypes.add(importedType);
        }
    }

    public String getFormattedContent() {
        StringBuilder sb = new StringBuilder();

        for (String commentLine : fileCommentLines) {
            sb.append(commentLine);
// Path: src/main/java/org/mybatis/generator/api/dom/OutputUtilities.java
// public static Set<String> calculateImports(
//         Set<FullyQualifiedJavaType> importedTypes) {
//     StringBuilder sb = new StringBuilder();
//     Set<String> importStrings = new TreeSet<String>();
//     for (FullyQualifiedJavaType fqjt : importedTypes) {
//         for (String importString : fqjt.getImportList()) {
//             sb.setLength(0);
//             sb.append("import "); //$NON-NLS-1$
//             sb.append(importString);
//             sb.append(';');
//             importStrings.add(sb.toString());
//         }
//     }
// 
//     return importStrings;
// }
// 
// Path: src/main/java/org/mybatis/generator/api/dom/OutputUtilities.java
// public static void javaIndent(StringBuilder sb, int indentLevel) {
//     for (int i = 0; i < indentLevel; i++) {
//         sb.append("    "); //$NON-NLS-1$
//     }
// }
// 
// Path: src/main/java/org/mybatis/generator/api/dom/OutputUtilities.java
// public static void newLine(StringBuilder sb) {
//     sb.append(lineSeparator);
// }


// Path: src/main/java/org/mybatis/generator/api/dom/java/Interface.java
import static org.mybatis.generator.api.dom.OutputUtilities.calculateImports;
import static org.mybatis.generator.api.dom.OutputUtilities.javaIndent;
import static org.mybatis.generator.api.dom.OutputUtilities.newLine;
import static org.mybatis.generator.internal.util.StringUtility.stringHasValue;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;

    public Interface(FullyQualifiedJavaType type) {
        super();
        this.type = type;
        superInterfaceTypes = new LinkedHashSet<FullyQualifiedJavaType>();
        methods = new ArrayList<Method>();
        importedTypes = new TreeSet<FullyQualifiedJavaType>();
        fileCommentLines = new ArrayList<String>();
        staticImports = new TreeSet<String>();
    }

    public Interface(String type) {
        this(new FullyQualifiedJavaType(type));
    }

    public Set<FullyQualifiedJavaType> getImportedTypes() {
        return Collections.unmodifiableSet(importedTypes);
    }

    public void addImportedType(FullyQualifiedJavaType importedType) {
        if (importedType.isExplicitlyImported()
                && !importedType.getPackageName().equals(type.getPackageName())) {
            importedTypes.add(importedType);
        }
    }

    public String getFormattedContent() {
        StringBuilder sb = new StringBuilder();

        for (String commentLine : fileCommentLines) {
            sb.append(commentLine);
            newLine(sb);