parent
							
								
									294b58a7f6
								
							
						
					
					
						commit
						8e0677a86e
					
				@ -1,83 +0,0 @@ | 
				
			||||
package com.gitee.sop.websiteserver.manager; | 
				
			||||
 | 
				
			||||
import com.alibaba.fastjson.JSONArray; | 
				
			||||
import com.alibaba.fastjson.JSONObject; | 
				
			||||
import com.gitee.sop.websiteserver.bean.DocInfo; | 
				
			||||
import com.gitee.sop.websiteserver.bean.DocItem; | 
				
			||||
import com.gitee.sop.websiteserver.bean.DocModule; | 
				
			||||
import com.gitee.sop.websiteserver.bean.DocParameter; | 
				
			||||
 | 
				
			||||
import java.util.ArrayList; | 
				
			||||
import java.util.Collections; | 
				
			||||
import java.util.List; | 
				
			||||
import java.util.stream.Collectors; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * @author tanghc | 
				
			||||
 */ | 
				
			||||
public class EasyopenDocParser implements DocParser { | 
				
			||||
    @Override | 
				
			||||
    public DocInfo parseJson(JSONObject docRoot) { | 
				
			||||
        String title = docRoot.getString("title"); | 
				
			||||
        List<DocItem> docItems = new ArrayList<>(); | 
				
			||||
        JSONArray apiModules = docRoot.getJSONArray("apiModules"); | 
				
			||||
        for (int i = 0; i < apiModules.size(); i++) { | 
				
			||||
            JSONObject module = apiModules.getJSONObject(i); | 
				
			||||
            JSONArray moduleItems = module.getJSONArray("moduleItems"); | 
				
			||||
            for (int k = 0; k < moduleItems.size(); k++) { | 
				
			||||
                JSONObject docInfo = moduleItems.getJSONObject(k); | 
				
			||||
                DocItem docItem = buildDocItem(docInfo); | 
				
			||||
                docItem.setModule(module.getString("name")); | 
				
			||||
                docItems.add(docItem); | 
				
			||||
            } | 
				
			||||
        } | 
				
			||||
 | 
				
			||||
        List<DocModule> docModuleList = docItems.stream() | 
				
			||||
                .collect(Collectors.groupingBy(DocItem::getModule)) | 
				
			||||
                .entrySet() | 
				
			||||
                .stream() | 
				
			||||
                .map(entry -> { | 
				
			||||
                    DocModule docModule = new DocModule(); | 
				
			||||
                    docModule.setModule(entry.getKey()); | 
				
			||||
                    docModule.setDocItems(entry.getValue()); | 
				
			||||
                    return docModule; | 
				
			||||
                }) | 
				
			||||
                .collect(Collectors.toList()); | 
				
			||||
 | 
				
			||||
        DocInfo docInfo = new DocInfo(); | 
				
			||||
        docInfo.setTitle(title); | 
				
			||||
        docInfo.setDocModuleList(docModuleList); | 
				
			||||
        return docInfo; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    protected DocItem buildDocItem(JSONObject docInfo) { | 
				
			||||
        DocItem docItem = new DocItem(); | 
				
			||||
        docItem.setName(docInfo.getString("name")); | 
				
			||||
        docItem.setVersion(docInfo.getString("version")); | 
				
			||||
        docItem.setSummary(docInfo.getString("description")); | 
				
			||||
        docItem.setDescription(docInfo.getString("description")); | 
				
			||||
        List<DocParameter> docParameterList = this.buildParameterList(docInfo, "paramDefinitions"); | 
				
			||||
        docItem.setRequestParameters(docParameterList); | 
				
			||||
 | 
				
			||||
        List<DocParameter> responseParameterList = this.buildParameterList(docInfo, "resultDefinitions"); | 
				
			||||
        docItem.setResponseParameters(responseParameterList); | 
				
			||||
 | 
				
			||||
        return docItem; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    protected List<DocParameter> buildParameterList(JSONObject docInfo, String key) { | 
				
			||||
        JSONArray params = docInfo.getJSONArray(key); | 
				
			||||
        if (params == null) { | 
				
			||||
            return Collections.emptyList(); | 
				
			||||
        } | 
				
			||||
        List<DocParameter> docParameterList = new ArrayList<>(); | 
				
			||||
        for (int i = 0; i < params.size(); i++) { | 
				
			||||
            JSONObject jsonObject = params.getJSONObject(i); | 
				
			||||
            DocParameter docParameter = jsonObject.toJavaObject(DocParameter.class); | 
				
			||||
            docParameter.setType(jsonObject.getString("dataType")); | 
				
			||||
            docParameterList.add(docParameter); | 
				
			||||
        } | 
				
			||||
        return docParameterList; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue