001/* -*- mode: Java; c-basic-offset: 2; indent-tabs-mode: nil; coding: utf-8-unix -*-
002 *
003 * Copyright © 2017 MicroBean.
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 *     http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
014 * implied.  See the License for the specific language governing
015 * permissions and limitations under the License.
016 */
017package org.microbean.helm.chart;
018
019import java.util.Map;
020
021import hapi.chart.MetadataOuterClass.Maintainer;
022import hapi.chart.MetadataOuterClass.Metadata;
023
024public final class Metadatas {
025
026  public static final void populateMetadataBuilder(Metadata.Builder metadataBuilder, final Map<?, ?> yamlMap) {
027    if (metadataBuilder != null && yamlMap != null && !yamlMap.isEmpty()) {
028
029      @SuppressWarnings("unchecked")
030      final Map<String, String> annotationsMap = (Map<String, String>)yamlMap.get("annotations");
031      if (annotationsMap != null) {
032        metadataBuilder.putAllAnnotations(annotationsMap);
033      }
034      
035      final String apiVersion = (String)yamlMap.get("apiVersion");
036      if (apiVersion != null) {
037        metadataBuilder.setApiVersion(apiVersion);
038      }
039      
040      final String appVersion = (String)yamlMap.get("appVersion");
041      if (appVersion != null) {
042        metadataBuilder.setAppVersion(appVersion);
043      }
044
045      final String condition = (String)yamlMap.get("condition");
046      if (condition != null) {
047        metadataBuilder.setCondition(condition);
048      }
049      
050      metadataBuilder.setDeprecated("true".equals(String.valueOf(yamlMap.get("deprecated"))));
051      
052      final String description = (String)yamlMap.get("description");
053      if (description != null) {
054        metadataBuilder.setDescription(description);
055      }
056      
057      final String engine = (String)yamlMap.get("engine");
058      if (engine != null) {
059        metadataBuilder.setEngine(engine);
060      }
061
062      final String home = (String)yamlMap.get("home");
063      if (home != null) {
064        metadataBuilder.setHome(home);
065      }
066      
067      final String icon = (String)yamlMap.get("icon");
068      if (icon != null) {
069        metadataBuilder.setIcon(icon);
070      }
071      
072      @SuppressWarnings("unchecked")
073      final Iterable<String> keywords = (Iterable<String>)yamlMap.get("keywords");
074      if (keywords != null) {
075        metadataBuilder.addAllKeywords(keywords);
076      }
077      
078      @SuppressWarnings("unchecked")
079      final Iterable<? extends Map<?, ?>> maintainers = (Iterable<? extends Map<?, ?>>)yamlMap.get("maintainers");
080      if (maintainers != null) {
081        for (final Map<?, ?> maintainer : maintainers) {
082          if (maintainer != null) {
083            final Maintainer.Builder maintainerBuilder = metadataBuilder.addMaintainersBuilder();
084            assert maintainerBuilder != null;
085            final String maintainerName = (String)maintainer.get("name");
086            if (maintainerName != null) {
087              maintainerBuilder.setName(maintainerName);
088            }
089            final String maintainerEmail = (String)maintainer.get("email");
090            if (maintainerEmail != null) {
091              maintainerBuilder.setEmail(maintainerEmail);
092            }
093          }
094        }
095      }
096
097      final String name = (String)yamlMap.get("name");
098      if (name != null) {
099        metadataBuilder.setName(name);
100      }
101      
102      @SuppressWarnings("unchecked")
103      final Iterable<String> sources = (Iterable<String>)yamlMap.get("sources");
104      if (sources != null) {
105        metadataBuilder.addAllSources(sources);
106      }
107
108      final String tags = (String)yamlMap.get("tags");
109      if (tags != null) {
110        metadataBuilder.setTags(tags);
111      }
112
113      final String tillerVersion = (String)yamlMap.get("tillerVersion");
114      if (tillerVersion != null) {
115        metadataBuilder.setTillerVersion(tillerVersion);
116      }
117      
118      final String version = (String)yamlMap.get("version");
119      if (version != null) {
120        metadataBuilder.setVersion(version);
121      }
122      
123
124    }
125  }
126  
127}