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}