source: java/Framclipse/com.framsticks.framclipse/src/com/framsticks/framclipse/framScript/ProposableFunctionImpl.java @ 437

Last change on this file since 437 was 437, checked in by Mateusz Poszwa, 9 years ago

Added Framclipse as developed by Bartosz Kukawka and Tomek Maciejewski in 2010

  • Property svn:eol-style set to native
File size: 1.5 KB
Line 
1package com.framsticks.framclipse.framScript;
2
3import java.util.LinkedHashMap;
4import java.util.List;
5import java.util.Map;
6
7import com.framsticks.framclipse.framScript.impl.FunctionImpl;
8import com.framsticks.framclipse.script.model.Argument;
9import com.framsticks.framclipse.script.model.Element;
10
11public class ProposableFunctionImpl extends FunctionImpl implements Proposable {
12
13        private final String display;
14        private final String proposal;
15        private final Map<String, String> description = new LinkedHashMap<String, String>();
16
17        public ProposableFunctionImpl(Element element) {
18                assert element.isFunction();
19                name = element.getName();
20                display = name + element.argumentsString(true) + " : " + element.returnType();
21                proposal = name + element.argumentsString(false) + ("void".equals(element.returnType()) ? ";" : "");
22                createDescription(element);
23        }
24
25        private void createDescription(Element element) {
26                description.put("Description", element.getDescription());
27                description.put("Returns", element.returnType());
28                description.put("Arguments", createArguments(element.getArguments()));
29        }
30
31        private String createArguments(List<Argument> args) {
32                StringBuilder builder = new StringBuilder();
33                for (int i = 0; i < args.size(); i++) {
34                        Argument a = args.get(i);
35                        builder.append(a.getName(i) + " : " + a.getType() + "\n");
36                }
37                return builder.toString();
38        }
39
40        @Override
41        public String display() {
42                return display;
43        }
44
45        @Override
46        public String proposal() {
47                return proposal;
48        }
49
50        @Override
51        public Map<String, String> description() {
52                return description;
53        }
54
55}
Note: See TracBrowser for help on using the repository browser.