001package org.kuali.common.util.metainf.spring;
002
003import org.kuali.common.util.Assert;
004import org.kuali.common.util.metainf.service.MetaInfUtils;
005
006public class MetaInfConfigUtils {
007
008        private static final String INCLUDES = "includes";
009        private static final String EXCLUDES = "excludes";
010
011        /**
012         * <code>group</code> is optional
013         * 
014         * <pre>
015         * metainf.[prefix].[group].[suffix]
016         * 
017         * metainf.[prefix].[suffix]
018         * </pre>
019         */
020        public static String getKey(String prefix, MetaInfGroup group, String suffix) {
021                Assert.noNullsWithMsg("prefix and suffix are required", prefix, suffix);
022                StringBuilder sb = new StringBuilder();
023                sb.append(MetaInfUtils.PROPERTY_PREFIX);
024                sb.append(".");
025                sb.append(prefix);
026                if (group != null) {
027                        sb.append(".");
028                        sb.append(group.name().toLowerCase());
029                }
030                sb.append(".");
031                sb.append(suffix);
032                return sb.toString();
033        }
034
035        /**
036         * <code>metainf.[prefix].includes</code>
037         */
038        public static String getIncludesKey(String prefix) {
039                return getKey(prefix, null, INCLUDES);
040        }
041
042        /**
043         * <code>metainf.[prefix].excludes</code>
044         */
045        public static String getExcludesKey(String prefix) {
046                return getKey(prefix, null, EXCLUDES);
047        }
048
049        /**
050         * <code>metainf.[prefix].[group].includes</code>
051         */
052        public static String getIncludesKey(MetaInfGroup group, String prefix) {
053                return getKey(prefix, group, INCLUDES);
054        }
055
056        /**
057         * <code>metainf.[prefix].[group].excludes</code>
058         */
059        public static String getExcludesKey(MetaInfGroup group, String prefix) {
060                return getKey(prefix, group, EXCLUDES);
061        }
062
063}