package com.dobbinsoft.fw.launcher.controller;
|
|
import com.dobbinsoft.fw.launcher.exception.LauncherExceptionDefinition;
|
import com.dobbinsoft.fw.launcher.manager.ApiDocumentModel;
|
import com.dobbinsoft.fw.launcher.manager.ClusterApiManager;
|
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.servlet.ModelAndView;
|
|
import java.lang.reflect.Field;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
/**
|
* Created with IntelliJ IDEA.
|
* Description:
|
* User: rize
|
* Date: 2018-09-13
|
* Time: 上午9:31
|
*/
|
@Controller
|
@RequestMapping("/info")
|
public class DocumentController implements InitializingBean {
|
|
@Autowired
|
private ClusterApiManager clusterApiManager;
|
|
private List exceptionDefinitionList;
|
|
@RequestMapping("/")
|
public ModelAndView index() {
|
ApiDocumentModel.Group group = clusterApiManager.generateDocumentModel().getGroups().get(0);
|
ModelAndView mv = new ModelAndView("redirect:/info/group/" + group.getName());
|
return mv;
|
}
|
|
@RequestMapping("/api")
|
public ModelAndView indexApi() {
|
ApiDocumentModel.Group group = clusterApiManager.generateDocumentModel().getGroups().get(0);
|
ModelAndView mv = new ModelAndView("redirect:/info/group/" + group.getName());
|
return mv;
|
}
|
|
@RequestMapping("/group/{gp}")
|
public ModelAndView group(@PathVariable("gp") String group) {
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("document");
|
modelAndView.addObject("model", clusterApiManager.generateGroupModel(group));
|
modelAndView.addObject("groupNames", clusterApiManager.generateDocumentModel().getGroups());
|
return modelAndView;
|
}
|
|
|
@RequestMapping("/api/{gp}/{mt}")
|
public ModelAndView api(@PathVariable("gp") String gp, @PathVariable("mt") String mt) {
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("method");
|
modelAndView.addObject("methods", clusterApiManager.methods(gp));
|
modelAndView.addObject("model", clusterApiManager.generateMethodModel(gp, mt));
|
modelAndView.addObject("gp", gp);
|
modelAndView.addObject("exceptionList", exceptionDefinitionList);
|
return modelAndView;
|
}
|
|
@RequestMapping("/open")
|
public ModelAndView openIndex() {
|
ApiDocumentModel.Group group = clusterApiManager.generateOpenDocumentModel().getGroups().get(0);
|
ModelAndView mv = new ModelAndView("redirect:/open/info/group/" + group.getName());
|
return mv;
|
}
|
|
@RequestMapping("/open/group/{gp}")
|
public ModelAndView openGroup(@PathVariable("gp") String group) {
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("open_document");
|
modelAndView.addObject("model", clusterApiManager.generateOpenGroupModel(group));
|
modelAndView.addObject("groupNames", clusterApiManager.generateOpenDocumentModel().getGroups());
|
return modelAndView;
|
}
|
|
@RequestMapping("/open/api/{gp}/{mt}")
|
public ModelAndView openApi(@PathVariable("gp") String gp, @PathVariable("mt") String mt) {
|
ModelAndView modelAndView = new ModelAndView();
|
modelAndView.setViewName("open_method");
|
modelAndView.addObject("methods", clusterApiManager.methods(gp));
|
modelAndView.addObject("model", clusterApiManager.generateOpenMethodModel(gp, mt));
|
modelAndView.addObject("gp", gp);
|
modelAndView.addObject("exceptionList", exceptionDefinitionList);
|
return modelAndView;
|
}
|
|
|
@Override
|
public void afterPropertiesSet() throws Exception {
|
exceptionDefinitionList = new LinkedList<>();
|
Field[] fields = LauncherExceptionDefinition.class.getFields();
|
for (Field field : fields) {
|
exceptionDefinitionList.add(field.get(LauncherExceptionDefinition.class));
|
}
|
}
|
}
|