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      @SuppressWarnings("unchecked")
029      final Iterable<String> keywords = (Iterable<String>)yamlMap.get("keywords");
030      if (keywords != null) {
031        metadataBuilder.addAllKeywords(keywords);
032      }
033      @SuppressWarnings("unchecked")
034      final Iterable<? extends Map<?, ?>> maintainers = (Iterable<? extends Map<?, ?>>)yamlMap.get("maintainers");
035      if (maintainers != null) {
036        for (final Map<?, ?> maintainer : maintainers) {
037          if (maintainer != null) {
038            final Maintainer.Builder maintainerBuilder = metadataBuilder.addMaintainersBuilder();
039            assert maintainerBuilder != null;
040            final String maintainerName = (String)maintainer.get("name");
041            if (maintainerName != null) {
042              maintainerBuilder.setName(maintainerName);
043            }
044            final String maintainerEmail = (String)maintainer.get("email");
045            if (maintainerEmail != null) {
046              maintainerBuilder.setEmail(maintainerEmail);
047            }
048          }
049        }
050      }
051      @SuppressWarnings("unchecked")
052      final Iterable<String> sources = (Iterable<String>)yamlMap.get("sources");
053      if (sources != null) {
054        metadataBuilder.addAllSources(sources);
055      }
056      final String name = (String)yamlMap.get("name");
057      if (name != null) {
058        metadataBuilder.setName(name);
059      }
060      final String version = (String)yamlMap.get("version");
061      if (version != null) {
062        metadataBuilder.setVersion(version);
063      }
064      final String description = (String)yamlMap.get("description");
065      if (description != null) {
066        metadataBuilder.setDescription(description);
067      }
068      final String engine = (String)yamlMap.get("engine");
069      if (engine != null) {
070        metadataBuilder.setEngine(engine);
071      }
072      final String icon = (String)yamlMap.get("icon");
073      if (icon != null) {
074        metadataBuilder.setIcon(icon);
075      }
076      final String appVersion = (String)yamlMap.get("appVersion");
077      if (appVersion != null) {
078        metadataBuilder.setAppVersion(appVersion);
079      }
080      final String tillerVersion = (String)yamlMap.get("tillerVersion");
081      if (tillerVersion != null) {
082        metadataBuilder.setTillerVersion(tillerVersion);
083      }
084      metadataBuilder.setDeprecated("true".equals(String.valueOf(yamlMap.get("deprecated"))));
085    }
086  }
087  
088}