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}