![JAR search and dependency download from the Maven repository](/logo.png)
net.dubboclub.restful.util.ServicesUtil Maven / Gradle / Ivy
package net.dubboclub.restful.util;
import net.dubboclub.restful.export.mapping.MethodHandler;
import net.dubboclub.restful.export.mapping.ServiceHandler;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @date: 2016/3/4.
* @author:bieber.
* @project:dubbo-side.
* @package:net.dubboclub.restful.util.
* @version:1.0.0
* @fix:
* @description: 描述功能
*/
public class ServicesUtil {
private static final byte[] TD="td".getBytes();
private static final byte[] SLASH="/".getBytes();
private static final byte[] TR="tr".getBytes();
private static final byte[] GREAT_THAN=">".getBytes();
private static final byte[] LESS_THAN="<".getBytes();
private static final byte[] QUOT="\"".getBytes();
private static final byte[] ROWSPAN="rowspan".getBytes();
private static final byte[] SPACE=" ".getBytes();
private static final byte[] EQUALITY="=".getBytes();
private static final String STYPE="";
private static final String HEADER=" \n" +
" Restful service list \n" +
" \n" +
" ";
public static void writeServicesHtml(OutputStream outputStream,ConcurrentHashMap serviceHandlerConcurrentHashMap) throws IOException {
writeHtmlStart(outputStream);
writeHeader(outputStream);
writeStyle(outputStream);
writeBodyStart(outputStream);
writeHead(outputStream);
writeTableStart(outputStream);
writeServiceHead(outputStream);
for(Map.Entry entry:serviceHandlerConcurrentHashMap.entrySet()){
writeService(outputStream,entry.getKey(),entry.getValue());
}
writeTableEnd(outputStream);
writeBodyEnd(outputStream);
writeHtmlEnd(outputStream);
}
private static void writeHtmlStart(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes(""));
}
private static void writeHeader(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes(HEADER));
}
private static void writeHtmlEnd(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes(""));
}
private static void writeTableStart(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes(""));
}
private static void writeStyle(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes(STYPE));
}
private static void writeBodyStart(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes(""));
}
private static void writeBodyEnd(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes(""));
}
private static void writeTableEnd(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes("
"));
}
private static void writeHead(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes("Dubbo Restful Services Info
"));
}
private static void writeServiceHead(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes("Service Type Methods Service Path Group Version "));
}
private static void writeMethodHead(OutputStream outputStream) throws IOException {
outputStream.write(encodeBytes("MethodName Args "));
}
private static void writeService(OutputStream outputStream,String path,ServiceHandler serviceHandler) throws IOException {
startTR(outputStream);
int size= serviceHandler.getMethodHandlerList().size()+1;
writeTD(outputStream,serviceHandler.getServiceType().getName(),size,"serviceType");
writeMethodHead(outputStream);
writeTD(outputStream,path,size,"path");
writeTD(outputStream, StringUtils.isEmpty(serviceHandler.getGroup())?"*":serviceHandler.getGroup(),size,"group");
writeTD(outputStream, StringUtils.isEmpty(serviceHandler.getVersion())?"*":serviceHandler.getVersion(),size,"version");
endTR(outputStream);
for(int i=0;i").append(methodName).append("");
return stringBuffer.toString();
}
private static void startTR(OutputStream outputStream) throws IOException {
outputStream.write(LESS_THAN);
outputStream.write(TR);
outputStream.write(GREAT_THAN);
}
private static void endTR(OutputStream outputStream) throws IOException {
outputStream.write(LESS_THAN);
outputStream.write(SLASH);
outputStream.write(TR);
outputStream.write(GREAT_THAN);
}
private static void writeTD(OutputStream outputStream,String message,int rowspan,String customTag) throws IOException {
outputStream.write(LESS_THAN);
outputStream.write(TD);
if(rowspan>0){
outputStream.write(SPACE);
outputStream.write(ROWSPAN);
outputStream.write(EQUALITY);
outputStream.write(QUOT);
outputStream.write(encodeBytes(rowspan+""));
outputStream.write(QUOT);
}
outputStream.write(GREAT_THAN);
if(!StringUtils.isEmpty(customTag)){
outputStream.write(LESS_THAN);
outputStream.write(encodeBytes(customTag));
outputStream.write(GREAT_THAN);
}
outputStream.write(encodeBytes(message));
if(!StringUtils.isEmpty(customTag)){
outputStream.write(LESS_THAN);
outputStream.write(SLASH);
outputStream.write(encodeBytes(customTag));
outputStream.write(GREAT_THAN);
}
outputStream.write(LESS_THAN);
outputStream.write(SLASH);
outputStream.write(TD);
outputStream.write(GREAT_THAN);
}
private static byte[] encodeBytes(String message){
return message.getBytes();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy