aboutsummaryrefslogtreecommitdiffstats
path: root/ccsdk-app-common/src/main/java/org/onap/ccsdk/dashboard/model/inventory/Blueprint.java
blob: c0b7b3720e48d981c24bfd0af2fc35b7bafab897 (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
package org.onap.ccsdk.dashboard.model.inventory;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import java.util.Scanner;

import org.onap.ccsdk.dashboard.exceptions.inventory.BlueprintParseException;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Blueprint {

	private static final ObjectMapper YAML_MAPPER = new ObjectMapper(new YAMLFactory());

	static {
		YAML_MAPPER.registerModule(new Jdk8Module());
	}

	@JsonProperty("inputs")
	private Map<String, BlueprintInput> inputs;
	@JsonProperty("description")
	private String description;

	public static Blueprint parse(String blueprint) throws BlueprintParseException {
		try {
			return getYamlMapper().readValue(blueprint, Blueprint.class);
		} catch (IOException e) {
			throw new BlueprintParseException(e);
		}
	}

	private static ObjectMapper getYamlMapper() {
		return YAML_MAPPER;
	}

	public Map<String, BlueprintInput> getInputs() {
		return inputs;
	}

	public String getDescription() {
		return description;
	}

	@Override
	public String toString() {
		return "inputs: " + ((getInputs() != null) ? getInputs().toString() : "{}");
	}
	
	public static void main(String args[]) throws Exception {

		File file = new File("C:\\Temp\\testBP.yaml");
		StringBuilder fileContents = new StringBuilder((int)file.length());
		Scanner scanner = new Scanner(file);
		String lineSeparator = System.getProperty("line.separator");
		try {
			while(scanner.hasNextLine()) {
				fileContents.append(scanner.nextLine() + lineSeparator);
		    }
			Blueprint bp = Blueprint.parse(fileContents.toString());
			System.out.println("blueprint contents: " + bp.toString());
		    } finally {
		        scanner.close();
		    }	
	}
}