1 package org.nuiton.eugene.models.extension.tagvalue; 2 3 /*- 4 * #%L 5 * EUGene :: EUGene 6 * %% 7 * Copyright (C) 2004 - 2016 CodeLutin 8 * %% 9 * This program is free software: you can redistribute it and/or modify 10 * it under the terms of the GNU Lesser General Public License as 11 * published by the Free Software Foundation, either version 3 of the 12 * License, or (at your option) any later version. 13 * 14 * This program is distributed in the hope that it will be useful, 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17 * GNU General Lesser Public License for more details. 18 * 19 * You should have received a copy of the GNU General Lesser Public 20 * License along with this program. If not, see 21 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 22 * #L% 23 */ 24 25 import org.nuiton.eugene.models.extension.tagvalue.matcher.TagValueDefinitionMatcher; 26 27 import java.util.Set; 28 29 /** 30 * Created on 24/09/16. 31 * 32 * @author Tony Chemit - chemit@codelutin.com 33 */ 34 public interface TagValueMetadata { 35 36 /** 37 * Get the stereotype name. 38 * 39 * @return the stereotype name 40 */ 41 String getName(); 42 43 /** 44 * Define the types of object model api which can use this tag value. 45 * 46 * @return the set of target object model element which can accept the tag value. 47 */ 48 Set<Class<?>> getTargets(); 49 50 /** 51 * Get the i18n documentation key. 52 * 53 * @return the i18n documentation key 54 */ 55 String getDescription(); 56 57 /** 58 * @return default value for this tag value 59 */ 60 String getDefaultValue(); 61 62 /** 63 * @return {@code true} if this stereotype is deprecated 64 */ 65 boolean isDeprecated(); 66 67 /** 68 * @return the tag value type 69 */ 70 Class<?> getType(); 71 72 Class<? extends TagValueDefinitionMatcher> getMatcherClass(); 73 }