package com.ifpdos.udi.sdk.service.doc.mkdocs;

import com.ifpdos.udi.sdk.kotlin.comment.parser.CommentDetails;
import com.ifpdos.udi.sdk.service.doc.base.ApiInfo;
import com.ifpdos.udi.sdk.service.doc.base.ClassParser;
import com.ifpdos.udi.sdk.service.doc.base.IClassWrapper;
import com.ifpdos.udi.sdk.service.doc.base.IDocGenerator;
import com.ifpdos.udi.sdk.service.doc.base.IFieldWrapper;
import com.ifpdos.udi.sdk.service.doc.base.Notify;
import com.ifpdos.udi.sdk.service.doc.base.Permission;
import com.ifpdos.udi.sdk.service.doc.base.Request;
import com.ifpdos.udi.sdk.service.doc.base.Utils;
import com.seewo.vcommons.constants.SeewoIntent;
import com.seewo.vcommons.utils.ShellCommandUtils;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import kotlin.Metadata;
import kotlin.collections.CollectionsKt;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.StringsKt;
import kotlinx.serialization.json.internal.AbstractJsonLexerKt;

/* JADX INFO: compiled from: MkDocsGenerator.kt */
/* JADX INFO: loaded from: classes.dex */
@Metadata(d1 = {"\u0000x\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010 \n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010%\n\u0002\u0010\u000e\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u000e\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010#\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0004\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J.\u0010\u0013\u001a\u00020\u00142\f\u0010\u0003\u001a\b\u0012\u0004\u0012\u00020\u00050\u00042\u0006\u0010\u0011\u001a\u00020\u00122\u0006\u0010\u0006\u001a\u00020\u00072\u0006\u0010\u0015\u001a\u00020\u0016H\u0016J\u0010\u0010\u0017\u001a\u00020\n2\u0006\u0010\u0018\u001a\u00020\nH\u0002J\u0010\u0010\u0019\u001a\u00020\u001a2\u0006\u0010\u001b\u001a\u00020\u0005H\u0002J\u0016\u0010\u001c\u001a\b\u0012\u0004\u0012\u00020\u001d0\u00042\u0006\u0010\u001b\u001a\u00020\u0005H\u0002J\u001c\u0010\u001e\u001a\b\u0012\u0004\u0012\u00020\u001f0\u00042\f\u0010 \u001a\b\u0012\u0004\u0012\u00020\u00100\u0004H\u0002J\u0018\u0010!\u001a\u00020\u000b2\u0006\u0010\"\u001a\u00020\u000f2\u0006\u0010#\u001a\u00020\u0010H\u0002J\u0010\u0010$\u001a\u00020\n2\u0006\u0010%\u001a\u00020\nH\u0002J\u0010\u0010&\u001a\u00020\n2\u0006\u0010\"\u001a\u00020\nH\u0002J\u0010\u0010'\u001a\u00020\n2\u0006\u0010\"\u001a\u00020\nH\u0002J\u0010\u0010(\u001a\u00020\n2\u0006\u0010)\u001a\u00020\u0005H\u0002J\u0010\u0010*\u001a\u00020\u00142\u0006\u0010\"\u001a\u00020\u000fH\u0002J\u001e\u0010+\u001a\u00020\u00142\u0006\u0010\"\u001a\u00020\u000f2\f\u0010 \u001a\b\u0012\u0004\u0012\u00020\u00100\u0004H\u0002J\u0010\u0010,\u001a\u00020\u00142\u0006\u0010%\u001a\u00020\nH\u0002J \u0010-\u001a\u0004\u0018\u00010.2\u0006\u0010\u001b\u001a\u00020\u00052\f\u0010/\u001a\b\u0012\u0004\u0012\u00020\n00H\u0002J \u00101\u001a\u0004\u0018\u0001022\u0006\u0010\u001b\u001a\u00020\u00052\f\u0010/\u001a\b\u0012\u0004\u0012\u00020\n00H\u0002J \u00103\u001a\u0004\u0018\u00010.2\u0006\u0010\u001b\u001a\u00020\u00052\f\u0010/\u001a\b\u0012\u0004\u0012\u00020\n00H\u0002J\u0010\u00104\u001a\u00020\u00142\u0006\u00105\u001a\u00020\u0016H\u0002R\u0014\u0010\u0003\u001a\b\u0012\u0004\u0012\u00020\u00050\u0004X\u0082.¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0007X\u0082.¢\u0006\u0002\n\u0000R \u0010\b\u001a\u0014\u0012\u0004\u0012\u00020\n\u0012\n\u0012\b\u0012\u0004\u0012\u00020\u000b0\u00040\tX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\f\u001a\u00020\rX\u0082\u0004¢\u0006\u0002\n\u0000R \u0010\u000e\u001a\u0014\u0012\u0004\u0012\u00020\u000f\u0012\n\u0012\b\u0012\u0004\u0012\u00020\u00100\u00040\tX\u0082\u0004¢\u0006\u0002\n\u0000R\u000e\u0010\u0011\u001a\u00020\u0012X\u0082.¢\u0006\u0002\n\u0000¨\u00066"}, d2 = {"Lcom/ifpdos/udi/sdk/service/doc/mkdocs/MkDocsGenerator;", "Lcom/ifpdos/udi/sdk/service/doc/base/IDocGenerator;", "()V", "apis", "", "Lcom/ifpdos/udi/sdk/service/doc/base/ApiInfo;", "classParser", "Lcom/ifpdos/udi/sdk/service/doc/base/ClassParser;", "classes", "", "", "Lcom/ifpdos/udi/sdk/service/doc/mkdocs/FieldInfo;", "demoCodeGenerator", "Lcom/ifpdos/udi/sdk/service/doc/mkdocs/CodeContentTab;", "enums", "Lcom/ifpdos/udi/sdk/service/doc/base/IClassWrapper;", "Lcom/ifpdos/udi/sdk/service/doc/base/IFieldWrapper;", "serviceComment", "Lcom/ifpdos/udi/sdk/kotlin/comment/parser/CommentDetails;", "genDoc", "", "docDir", "Ljava/io/File;", "getApiDocName", SeewoIntent.KEY_FILE_URI, "getApiProtocol", "Lcom/ifpdos/udi/sdk/service/doc/mkdocs/ProtocolDefine;", "info", "getApiSummaries", "Lcom/ifpdos/udi/sdk/service/doc/mkdocs/ApiSummary;", "getEnumValueDefines", "Lcom/ifpdos/udi/sdk/service/doc/mkdocs/EnumValueDefine;", "value", "getFieldInfo", "clazz", "field", "getGenericSimpleNameWithoutPackage", "className", "getLink", "getSimpleName", "getSummary", "api", "onParserClass", "onParserEnum", "parserClass", "parserGetter", "Lcom/ifpdos/udi/sdk/service/doc/mkdocs/RequestDefine;", "filter", "", "parserNotifyDefine", "Lcom/ifpdos/udi/sdk/service/doc/mkdocs/NotifyDefine;", "parserSetter", "prepareOutputDir", "output", "doc-mkdocs"}, k = 1, mv = {1, 6, 0}, xi = 48)
public final class MkDocsGenerator implements IDocGenerator {
    private List<ApiInfo> apis;
    private ClassParser classParser;
    private CommentDetails serviceComment;
    private final Map<String, List<FieldInfo>> classes = new LinkedHashMap();
    private final Map<IClassWrapper, List<IFieldWrapper>> enums = new LinkedHashMap();
    private final CodeContentTab demoCodeGenerator = new CodeContentTab();

    private final void prepareOutputDir(File output) {
        if (output.exists()) {
            File[] fileArrListFiles = output.listFiles();
            if (fileArrListFiles != null) {
                for (File file : fileArrListFiles) {
                    file.delete();
                }
                return;
            }
            return;
        }
        output.mkdirs();
    }

    @Override // com.ifpdos.udi.sdk.service.doc.base.IDocGenerator
    public void genDoc(List<ApiInfo> apis, CommentDetails serviceComment, ClassParser classParser, File docDir) {
        Intrinsics.checkNotNullParameter(apis, "apis");
        Intrinsics.checkNotNullParameter(serviceComment, "serviceComment");
        Intrinsics.checkNotNullParameter(classParser, "classParser");
        Intrinsics.checkNotNullParameter(docDir, "docDir");
        this.apis = apis;
        this.serviceComment = serviceComment;
        this.classParser = classParser;
        this.classes.put(Utils.EMPTY_BODY, CollectionsKt.emptyList());
        File file = new File(docDir, "doc-mkdocs");
        if (!file.exists()) {
            file.mkdirs();
        }
        String serviceName = Utils.INSTANCE.getServiceName(serviceComment);
        prepareOutputDir(new File(file, serviceName));
        int i = 0;
        for (Object obj : apis) {
            int i2 = i + 1;
            if (i < 0) {
                CollectionsKt.throwIndexOverflow();
            }
            ApiInfo apiInfo = (ApiInfo) obj;
            new DocRenderer(classParser).write(serviceComment, getApiSummaries(apiInfo), getApiProtocol(apiInfo), new File(new File(file, serviceName), StringsKt.padStart(String.valueOf(i2), 4, '0') + '_' + getApiDocName(apiInfo.getUri().getMqttTopic())));
            i = i2;
        }
        String serviceModuleUrl = Utils.INSTANCE.getServiceModuleUrl(serviceComment);
        if (serviceModuleUrl != null) {
            new DocRenderer(classParser).createAPIsDocument(serviceModuleUrl, serviceComment, new File(new File(file, serviceName), "0000_" + getApiDocName(serviceModuleUrl)));
        }
    }

    private final void parserClass(String className) {
        ClassParser classParser = this.classParser;
        ClassParser classParser2 = null;
        if (classParser == null) {
            Intrinsics.throwUninitializedPropertyAccessException("classParser");
            classParser = null;
        }
        IClassWrapper rVar = classParser.parser(className);
        if (rVar != null) {
            if (rVar.isEnum()) {
                ClassParser classParser3 = this.classParser;
                if (classParser3 == null) {
                    Intrinsics.throwUninitializedPropertyAccessException("classParser");
                } else {
                    classParser2 = classParser3;
                }
                onParserEnum(rVar, classParser2.getEnumValues(rVar));
                return;
            }
            onParserClass(rVar);
        }
    }

    private final RequestDefine parserGetter(ApiInfo info, Set<String> filter) {
        String responseClass;
        Request getterRequest = info.getGetterRequest();
        ClassParser classParser = null;
        if (getterRequest == null) {
            return null;
        }
        filter.add(getterRequest.getRequestClass());
        filter.add(getterRequest.getResponseClass());
        parserClass(getterRequest.getRequestClass());
        parserClass(getterRequest.getResponseClass());
        CodeContentTab codeContentTab = this.demoCodeGenerator;
        ClassParser classParser2 = this.classParser;
        if (classParser2 == null) {
            Intrinsics.throwUninitializedPropertyAccessException("classParser");
        } else {
            classParser = classParser2;
        }
        String strGenGetRequestDemo = codeContentTab.genGetRequestDemo(info, classParser);
        if (Utils.INSTANCE.isListType(getterRequest.getResponseClass())) {
            responseClass = Utils.INSTANCE.getTypeByList(getterRequest.getResponseClass());
        } else {
            responseClass = getterRequest.getResponseClass();
        }
        String requestClass = getterRequest.getRequestClass();
        List<FieldInfo> list = this.classes.get(getterRequest.getRequestClass());
        Intrinsics.checkNotNull(list);
        String responseClass2 = getterRequest.getResponseClass();
        List<FieldInfo> list2 = this.classes.get(responseClass);
        Intrinsics.checkNotNull(list2);
        return new RequestDefine(requestClass, list, responseClass2, list2, strGenGetRequestDemo, getterRequest.getPermission());
    }

    private final RequestDefine parserSetter(ApiInfo info, Set<String> filter) {
        List<FieldInfo> listListOf;
        Request setterRequest = info.getSetterRequest();
        ClassParser classParser = null;
        if (setterRequest == null) {
            return null;
        }
        filter.add(setterRequest.getRequestClass());
        filter.add(setterRequest.getResponseClass());
        parserClass(setterRequest.getRequestClass());
        parserClass(setterRequest.getResponseClass());
        CodeContentTab codeContentTab = this.demoCodeGenerator;
        ClassParser classParser2 = this.classParser;
        if (classParser2 == null) {
            Intrinsics.throwUninitializedPropertyAccessException("classParser");
        } else {
            classParser = classParser2;
        }
        String strGenDemoPostRequest = codeContentTab.genDemoPostRequest(info, classParser);
        if (Utils.INSTANCE.isListType(setterRequest.getRequestClass())) {
            listListOf = CollectionsKt.listOf(new FieldInfo("", "", getLink(setterRequest.getRequestClass()), ""));
        } else {
            listListOf = this.classes.get(setterRequest.getRequestClass());
        }
        List<FieldInfo> list = listListOf;
        String requestClass = setterRequest.getRequestClass();
        Intrinsics.checkNotNull(list);
        String responseClass = setterRequest.getResponseClass();
        List<FieldInfo> list2 = this.classes.get(setterRequest.getResponseClass());
        Intrinsics.checkNotNull(list2);
        return new RequestDefine(requestClass, list, responseClass, list2, strGenDemoPostRequest, setterRequest.getPermission());
    }

    private final NotifyDefine parserNotifyDefine(ApiInfo info, Set<String> filter) {
        Notify notify = info.getNotify();
        ClassParser classParser = null;
        if (notify == null) {
            return null;
        }
        String notifyClass = notify.getNotifyClass();
        filter.add(notifyClass);
        parserClass(notifyClass);
        CodeContentTab codeContentTab = this.demoCodeGenerator;
        ClassParser classParser2 = this.classParser;
        if (classParser2 == null) {
            Intrinsics.throwUninitializedPropertyAccessException("classParser");
        } else {
            classParser = classParser2;
        }
        String strGenDemoNotifyRegister = codeContentTab.genDemoNotifyRegister(info, classParser);
        List<FieldInfo> list = this.classes.get(notifyClass);
        Intrinsics.checkNotNull(list);
        return new NotifyDefine(notifyClass, list, strGenDemoNotifyRegister, notify.getPermission());
    }

    private final ProtocolDefine getApiProtocol(ApiInfo info) {
        String total;
        CommentDetails comment;
        LinkedHashSet linkedHashSet = new LinkedHashSet();
        ArrayList arrayList = new ArrayList();
        arrayList.add(new ApiDefine(getSummary(info), info.getUri(), info.getAlias(), parserGetter(info, linkedHashSet), parserSetter(info, linkedHashSet), parserNotifyDefine(info, linkedHashSet), info.getComment()));
        Map<String, List<FieldInfo>> map = this.classes;
        ArrayList arrayList2 = new ArrayList(map.size());
        for (Map.Entry<String, List<FieldInfo>> entry : map.entrySet()) {
            String key = entry.getKey();
            String genericSimpleNameWithoutPackage = getGenericSimpleNameWithoutPackage(entry.getKey());
            String simpleName = getSimpleName(entry.getKey());
            ClassParser classParser = this.classParser;
            String total2 = null;
            if (classParser == null) {
                Intrinsics.throwUninitializedPropertyAccessException("classParser");
                classParser = null;
            }
            IClassWrapper rVar = classParser.parser(entry.getKey());
            if (rVar != null && (comment = rVar.getComment()) != null) {
                total2 = comment.getTotal();
            }
            arrayList2.add(new ClassDefine(key, genericSimpleNameWithoutPackage, simpleName, total2, entry.getValue()));
        }
        ArrayList arrayList3 = arrayList2;
        Map<IClassWrapper, List<IFieldWrapper>> map2 = this.enums;
        ArrayList arrayList4 = new ArrayList(map2.size());
        for (Map.Entry<IClassWrapper, List<IFieldWrapper>> entry2 : map2.entrySet()) {
            String simpleName2 = getSimpleName(entry2.getKey().getFullName());
            CommentDetails comment2 = entry2.getKey().getComment();
            if (comment2 == null || (total = comment2.getTotal()) == null) {
                total = "";
            }
            arrayList4.add(new EnumDefine(entry2.getKey().getFullName(), simpleName2, total, getEnumValueDefines(entry2.getValue())));
        }
        return new ProtocolDefine(arrayList, arrayList3, arrayList4);
    }

    private final List<EnumValueDefine> getEnumValueDefines(List<? extends IFieldWrapper> value) {
        String summary;
        List<? extends IFieldWrapper> list = value;
        ArrayList arrayList = new ArrayList(CollectionsKt.collectionSizeOrDefault(list, 10));
        for (IFieldWrapper iFieldWrapper : list) {
            CommentDetails comment = iFieldWrapper.getComment();
            if (comment == null || (summary = comment.getSummary()) == null) {
                summary = "";
            }
            arrayList.add(new EnumValueDefine(iFieldWrapper.getName(), summary));
        }
        return arrayList;
    }

    private final String getSummary(ApiInfo api) {
        return StringsKt.replace$default(api.getComment().getSummary(), ShellCommandUtils.COMMAND_LINE_END, "<br>", false, 4, (Object) null);
    }

    private final List<ApiSummary> getApiSummaries(ApiInfo info) {
        Permission permission;
        String string;
        Permission permission2;
        String string2;
        Permission permission3;
        String string3;
        String summary = getSummary(info);
        String path = info.getUri().getPath();
        Request getterRequest = info.getGetterRequest();
        String str = (getterRequest == null || (permission3 = getterRequest.getPermission()) == null || (string3 = Integer.valueOf(permission3.getPermission()).toString()) == null) ? "-" : string3;
        Request setterRequest = info.getSetterRequest();
        String str2 = (setterRequest == null || (permission2 = setterRequest.getPermission()) == null || (string2 = Integer.valueOf(permission2.getPermission()).toString()) == null) ? "-" : string2;
        Notify notify = info.getNotify();
        return CollectionsKt.listOf(new ApiSummary(summary, path, str, str2, (notify == null || (permission = notify.getPermission()) == null || (string = Integer.valueOf(permission.getPermission()).toString()) == null) ? "-" : string));
    }

    private final String getLink(String clazz) {
        if (Utils.INSTANCE.isListType(clazz)) {
            return "List&lt;" + getLink(Utils.INSTANCE.getTypeByList(clazz)) + "&gt;";
        }
        if (Utils.INSTANCE.isMapType(clazz)) {
            return "Map&lt;" + getLink(Utils.INSTANCE.getTypeByMapKey(clazz)) + AbstractJsonLexerKt.COMMA + getLink(Utils.INSTANCE.getTypeByMapValue(clazz)) + "&gt;";
        }
        String wrapperTypeIfIsRawBuildInType = Utils.INSTANCE.toWrapperTypeIfIsRawBuildInType(getSimpleName(clazz));
        if (Utils.INSTANCE.isBuildType(clazz)) {
            return wrapperTypeIfIsRawBuildInType;
        }
        StringBuilder sbAppend = new StringBuilder("[").append(wrapperTypeIfIsRawBuildInType).append("](#");
        String lowerCase = wrapperTypeIfIsRawBuildInType.toLowerCase(Locale.ROOT);
        Intrinsics.checkNotNullExpressionValue(lowerCase, "this as java.lang.String).toLowerCase(Locale.ROOT)");
        return sbAppend.append(lowerCase).append(')').toString();
    }

    private final FieldInfo getFieldInfo(IClassWrapper clazz, IFieldWrapper field) {
        String summary;
        String wrapperTypeIfIsRawBuildInType = Utils.INSTANCE.toWrapperTypeIfIsRawBuildInType(field.getType());
        String link = getLink(wrapperTypeIfIsRawBuildInType);
        CommentDetails comment = field.getComment();
        if (comment == null || (summary = comment.getSummary()) == null) {
            summary = "";
        }
        return new FieldInfo(field.getName(), wrapperTypeIfIsRawBuildInType, link, summary);
    }

    private final void onParserEnum(IClassWrapper clazz, List<? extends IFieldWrapper> value) {
        if (this.enums.containsKey(clazz)) {
            return;
        }
        this.enums.put(clazz, value);
    }

    private final void onParserClass(IClassWrapper clazz) {
        if (this.classes.containsKey(clazz.getFullName())) {
            return;
        }
        Map<String, List<FieldInfo>> map = this.classes;
        String fullName = clazz.getFullName();
        List fields$default = IClassWrapper.DefaultImpls.getFields$default(clazz, false, 1, null);
        ArrayList arrayList = new ArrayList(CollectionsKt.collectionSizeOrDefault(fields$default, 10));
        Iterator it = fields$default.iterator();
        while (it.hasNext()) {
            arrayList.add(getFieldInfo(clazz, (IFieldWrapper) it.next()));
        }
        map.put(fullName, arrayList);
        Iterator it2 = IClassWrapper.DefaultImpls.getFields$default(clazz, false, 1, null).iterator();
        while (it2.hasNext()) {
            parserClass(((IFieldWrapper) it2.next()).getType());
        }
    }

    private final String getSimpleName(String clazz) {
        return (String) CollectionsKt.last(StringsKt.split$default((CharSequence) clazz, new String[]{"."}, false, 0, 6, (Object) null));
    }

    private final String getApiDocName(String uri) {
        if (StringsKt.startsWith$default(uri, "/", false, 2, (Object) null)) {
            StringBuilder sb = new StringBuilder();
            String strSubstring = uri.substring(1);
            Intrinsics.checkNotNullExpressionValue(strSubstring, "this as java.lang.String).substring(startIndex)");
            return sb.append(StringsKt.replace$default(StringsKt.replace$default(StringsKt.replace$default(strSubstring, "/", "_", false, 4, (Object) null), "{", "", false, 4, (Object) null), "}", "", false, 4, (Object) null)).append(".zh.md").toString();
        }
        return StringsKt.replace$default(StringsKt.replace$default(StringsKt.replace$default(uri, "/", "_", false, 4, (Object) null), "{", "", false, 4, (Object) null), "}", "", false, 4, (Object) null) + ".zh.md";
    }

    private final String getGenericSimpleNameWithoutPackage(String className) {
        String str = className;
        if (!StringsKt.contains$default((CharSequence) str, (CharSequence) "<", false, 2, (Object) null)) {
            return (String) CollectionsKt.last(StringsKt.split$default((CharSequence) str, new String[]{"."}, false, 0, 6, (Object) null));
        }
        String strSubstring = className.substring(StringsKt.indexOf$default((CharSequence) str, "<", 0, false, 6, (Object) null) + 1, StringsKt.indexOf$default((CharSequence) str, ">", 0, false, 6, (Object) null) + 1);
        Intrinsics.checkNotNullExpressionValue(strSubstring, "this as java.lang.String…ing(startIndex, endIndex)");
        String strSubstring2 = className.substring(0, StringsKt.indexOf$default((CharSequence) str, "<", 0, false, 6, (Object) null) + 1);
        Intrinsics.checkNotNullExpressionValue(strSubstring2, "this as java.lang.String…ing(startIndex, endIndex)");
        String str2 = ((String) CollectionsKt.last(StringsKt.split$default((CharSequence) strSubstring2, new String[]{"."}, false, 0, 6, (Object) null))) + ((String) CollectionsKt.last(StringsKt.split$default((CharSequence) strSubstring, new String[]{"."}, false, 0, 6, (Object) null)));
        Intrinsics.checkNotNullExpressionValue(str2, "{\n            val generi…Name.toString()\n        }");
        return str2;
    }
}
