Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.util / org.gvsig.tools.util.api / src / main / java / org / gvsig / simplehttpservice / commands / Help.java @ 2213

History | View | Annotate | Download (2.47 KB)

1

    
2
package org.gvsig.simplehttpservice.commands;
3

    
4
import java.util.Map;
5
import javax.json.Json;
6
import javax.json.JsonArrayBuilder;
7
import javax.json.JsonObject;
8
import javax.json.JsonObjectBuilder;
9
import org.apache.commons.lang3.StringUtils;
10
import org.gvsig.htmlbuilder.HTMLBuilder;
11
import org.gvsig.htmlbuilder.HTMLBuilder.HTMLComplexElement;
12
import org.gvsig.simplehttpservice.SimpleServer;
13
import org.gvsig.tools.util.ToolsUtilLocator;
14

    
15
/**
16
 *
17
 * @author gvSIG Team
18
 */
19
public class Help extends AbstractCommand {
20

    
21
    public Help(CommandFactory factory,  SimpleServer server) {
22
        super(factory,server);
23
    }
24

    
25
    
26
    @Override
27
    public Object call(int argc, String[] args) {
28
        Map<String, Command> commands = this.getServer().getCommands();
29
        if( argc>0 && StringUtils.equalsIgnoreCase("asjson", args[1]) ) {
30
            JsonArrayBuilder builder = Json.createArrayBuilder();
31
            for (Command command : commands.values()) {
32
                builder.add(this.getCommandDescription(command));
33
            }
34
            return builder.toString();
35
        } else {
36
            HTMLBuilder builder = ToolsUtilLocator.getToolsUtilManager().createHTMLBuilder();
37
            HTMLComplexElement table = builder.table(
38
                0,1,4,
39
                builder.thead(
40
                    builder.tr(
41
                            builder.th("Return type"),
42
                            builder.th("Name"),
43
                            builder.th("Description")
44
                    )
45
                )
46
            );
47
            
48
            for (Command command : commands.values()) {
49
                HTMLComplexElement tr = builder.tr(HTMLBuilder.valign_top).contents(
50
                        builder.td(command.getMimeType()),
51
                        builder.td(command.getName()),
52
                        builder.td(
53
                                builder.plainWithNl(command.getDescription()+"\n\n")
54
                        )
55
                );
56
                table.contents(tr);
57
            }
58
            return table.toHTML();
59
        }
60
    }
61
    
62
    public JsonObject getCommandDescription(Command command) {
63
        JsonObjectBuilder builder = Json.createObjectBuilder();
64
        builder.add("Name", command.getName());
65
        builder.add("NumArgs", command.getNumArgs().toString());
66
        builder.add("MimeType", StringUtils.defaultString(command.getMimeType()));
67
        builder.add("Description", StringUtils.defaultString(command.getDescription()));
68
        return builder.build();
69
    }
70
}