001/* 002 * JDrupes Builder 003 * Copyright (C) 2026 Michael N. Lipp 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <https://www.gnu.org/licenses/>. 017 */ 018 019package org.jdrupes.builder.bnd; 020 021import java.util.Collections; 022import java.util.Map; 023import org.jdrupes.builder.api.PropertyKey; 024 025/// This enum defines bnd specific property keys. 026/// 027public enum BndProperties implements PropertyKey { 028 029 /// Supports the definition of Bnd instructions as project properties. 030 /// Typically, this property is set for the root project to define 031 /// default values. 032 /// 033 /// Note that the [BndAnalyzer] does not pick up these instructions 034 /// automatically. Rather, they have to be added explicitly with 035 /// [BndAnalyzer#instructions(Map)]. 036 /// 037 @SuppressWarnings("PMD.FieldNamingConventions") 038 BndInstructions; 039 040 @Override 041 public Class<?> propertyType() { 042 return Map.class; 043 } 044 045 @Override 046 @SuppressWarnings("unchecked") 047 public <T> T defaultValue() { 048 return (T) Collections.emptyMap(); 049 } 050}