d34195cfd74be8e95e18310b5f65c44ffd8f3604
[so.git] / cloudify-client / src / main / java / org / onap / so / cloudify / v3 / model / DeploymentOutputs.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.cloudify.v3.model;
22
23 import java.io.IOException;
24 import java.io.Serializable;
25 import java.util.Map;
26
27 import com.fasterxml.jackson.annotation.JsonIgnore;
28 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
29 import com.fasterxml.jackson.annotation.JsonProperty;
30 import com.fasterxml.jackson.databind.ObjectMapper;
31
32 @JsonIgnoreProperties(ignoreUnknown = true)
33 //@JsonRootName("outputs")
34 public class DeploymentOutputs implements Serializable {
35
36         private static final long serialVersionUID = 1L;
37         
38     @JsonProperty("deployment_id")
39     private String deploymentId;
40     
41     @JsonProperty("outputs")
42     private Map<String, Object> outputs = null;
43     
44     public Map<String, Object> getOutputs() {
45         return this.outputs;
46     }
47     public void setOutputs(Map<String, Object> outputs) {
48         this.outputs = outputs;
49     }
50     
51         public String getDeploymentId() {
52                 return deploymentId;
53         }
54         public void setDeploymentId(String deploymentId) {
55                 this.deploymentId = deploymentId;
56         }
57         
58         /*
59          * Return an  output as a Json-mapped Object of the provided type.
60          * This is useful for json-object outputs.
61          */
62         public <T> T getMapValue (Map<String,Object> map, String key, Class<T> type)
63         {
64         
65                 ObjectMapper mapper = new ObjectMapper();
66
67                 if (map.containsKey(key)) {
68                         try {
69                                 String s = mapper.writeValueAsString(map.get(key));
70                                 return (mapper.readValue(s, type));
71                         }
72                         catch (IOException e) {
73                                 return null;
74                         }
75                 }
76                 return null;
77         }
78
79         @Override
80     public String toString() {
81         return "DeploymentOutputs{" +
82                 "deploymentId='" + deploymentId + '\'' +
83                 ", outputs='" + outputs + '\'' +
84                 '}';
85     }
86
87 }