public LinkedHashMap<String, Object> getData() {
		LinkedHashMap<String, Object> data = Maps.newLinkedHashMap();

		if (type == Type.BOOLEAN) {
			enumeration.clear();
			enumeration.add("true");
			enumeration.add("false");
			enumDescriptions.clear();
			enumDescriptions.add("True");
			enumDescriptions.add("False");
		}

		if (location == Location.body) {
			data.put("type", "textarea");
		} else {
			data.put("type", type.name);
		}
			
		data.put("location", location + "");
		data.put("description", description);
		data.put("default", defaultValue);
		
		if (required) data.put("required", true);

		if (!enumDescriptions.isEmpty()	&& enumeration.size() != enumDescriptions.size()) {
			data.put("warning", "Enumeration size ("
				+ enumeration.size()
				+ ") is not equal to enumeration description size ("
				+ enumDescriptions.size() + ")");
		}

		if (!enumeration.isEmpty()) {
			data.put("enum", enumeration);
			if (!enumDescriptions.isEmpty()) {
				data.put("enumDescriptions", enumDescriptions);
			}
		}
		
		return data;
	}