aboutsummaryrefslogtreecommitdiffstats
path: root/jtosca/src/main/java/org/openecomp/sdc/toscaparser/parameters/Output.java
blob: 9a05855e767aa336b23cdda461527931aca5b7d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
package org.openecomp.sdc.toscaparser.parameters;

import java.util.LinkedHashMap;

import org.openecomp.sdc.toscaparser.common.ExceptionCollector;

public class Output {
	
	private static final String DESCRIPTION = "description";
	public static final String VALUE = "value";
	private static final String OUTPUTFIELD[] = {DESCRIPTION, VALUE};
	
	private String name;
	private LinkedHashMap<String,Object> attrs;//TYPE???
	
	public Output(String oname,LinkedHashMap<String,Object> oattrs) {
		name = oname;
		attrs = oattrs;
	}
	
	public String getDescription() {
		return (String)attrs.get(DESCRIPTION);
	}

	public Object getValue() {
		return attrs.get(VALUE);
	}
	
	public void validate() {
		_validateField();
	}
	
	private void _validateField() {
		if(!(attrs instanceof LinkedHashMap)) {
			//TODO wrong error message...
            ExceptionCollector.appendException(String.format(
                    "ValidationError: Output \"%s\" has wrong type. Expecting a dict",
                    name));
		}
		
		if(getValue() == null) {
            ExceptionCollector.appendException(String.format(
                    "MissingRequiredFieldError: Output \"%s\" is missing required \"%s\"",
                    name,VALUE));
		}
        for(String key: attrs.keySet()) {
    		boolean bFound = false;
    		for(String of: OUTPUTFIELD) {
    			if(key.equals(of)) {
    				bFound = true;
    				break;
    			}
    		}
    		if(!bFound) {
                ExceptionCollector.appendException(String.format(
                    "UnknownFieldError: Output \"%s\" contains unknown field \"%s\"",
                    name,key));
            }
        }
	}
	
	// getter/setter
	
	public String getName() {
		return name;
	}
	
	public void setAttr(String name,Object value) {
		attrs.put(name, value);
	}
}

/*python

class Output(object):

    OUTPUTFIELD = (DESCRIPTION, VALUE) = ('description', 'value')

    def __init__(self, name, attrs):
        self.name = name
        self.attrs = attrs

    @property
    def description(self):
        return self.attrs.get(self.DESCRIPTION)

    @property
    def value(self):
        return self.attrs.get(self.VALUE)

    def validate(self):
        self._validate_field()

    def _validate_field(self):
        if not isinstance(self.attrs, dict):
            ExceptionCollector.appendException(
                MissingRequiredFieldError(what='Output "%s"' % self.name,
                                          required=self.VALUE))
        if self.value is None:
            ExceptionCollector.appendException(
                MissingRequiredFieldError(what='Output "%s"' % self.name,
                                          required=self.VALUE))
        for name in self.attrs:
            if name not in self.OUTPUTFIELD:
                ExceptionCollector.appendException(
                    UnknownFieldError(what='Output "%s"' % self.name,
                                      field=name))
*/