public List<FlavorDescriptor> getFlavorsExtending(String flavor) { List<FlavorDescriptor> res = new ArrayList<FlavorDescriptor>(); for (FlavorDescriptor f : themePageFlavors.values()) { if (f != null) { String extendsFlavor = f.getExtendsFlavor(); if (!StringUtils.isBlank(extendsFlavor) && extendsFlavor.equals(flavor)) { res.add(f); } } } return res; }
protected List<IconDescriptor> computeIcons(FlavorDescriptor flavor, List<String> flavors) { if (flavor != null) { List<IconDescriptor> localIcons = flavor.getFavicons(); if (localIcons == null || localIcons.isEmpty()) { String extendsFlavorName = flavor.getExtendsFlavor(); if (!StringUtils.isBlank(extendsFlavorName)) { if (flavors.contains(extendsFlavorName)) { // cyclic dependency => abort log.error("Cyclic dependency detected in flavor '" + flavor.getName() + "' hierarchy"); return null; } else { // retrieved the extended icons flavors.add(flavor.getName()); FlavorDescriptor extendedFlavor = getFlavor(extendsFlavorName); if (extendedFlavor != null) { localIcons = computeIcons(extendedFlavor, flavors); } else { log.warn("Extended flavor '" + extendsFlavorName + "' not found"); } } } } return localIcons; } return null; }
protected List<FlavorPresets> computePresets(FlavorDescriptor flavor, List<String> flavors) { List<FlavorPresets> presets = new ArrayList<>(); if (flavor != null) { List<FlavorPresets> localPresets = flavor.getPresets(); if (localPresets != null) { presets.addAll(localPresets); } String extendsFlavorName = flavor.getExtendsFlavor(); if (!StringUtils.isBlank(extendsFlavorName)) { if (flavors.contains(extendsFlavorName)) { // cyclic dependency => abort log.error("Cyclic dependency detected in flavor '" + flavor.getName() + "' hierarchy"); return presets; } else { // retrieve the extended presets flavors.add(flavor.getName()); FlavorDescriptor extendedFlavor = getFlavor(extendsFlavorName); if (extendedFlavor != null) { List<FlavorPresets> parentPresets = computePresets(extendedFlavor, flavors); if (parentPresets != null) { presets.addAll(0, parentPresets); } } else { log.warn("Extended flavor '" + extendsFlavorName + "' not found"); } } } } return presets; }
protected PalettePreview computePalettePreview(FlavorDescriptor flavor, List<String> flavors) { if (flavor != null) { PalettePreview localPalette = flavor.getPalettePreview(); if (localPalette == null) { String extendsFlavorName = flavor.getExtendsFlavor(); if (!StringUtils.isBlank(extendsFlavorName)) { if (flavors.contains(extendsFlavorName)) { // cyclic dependency => abort log.error("Cyclic dependency detected in flavor '" + flavor.getName() + "' hierarchy"); return null; } else { // retrieved the extended colors flavors.add(flavor.getName()); FlavorDescriptor extendedFlavor = getFlavor(extendsFlavorName); if (extendedFlavor != null) { localPalette = computePalettePreview(extendedFlavor, flavors); } else { log.warn("Extended flavor '" + extendsFlavorName + "' not found"); } } } } return localPalette; } return null; }
protected LogoDescriptor computeLogo(FlavorDescriptor flavor, List<String> flavors) { if (flavor != null) { LogoDescriptor localLogo = flavor.getLogo(); if (localLogo == null) { String extendsFlavorName = flavor.getExtendsFlavor(); if (!StringUtils.isBlank(extendsFlavorName)) { if (flavors.contains(extendsFlavorName)) { // cyclic dependency => abort log.error("Cyclic dependency detected in flavor '" + flavor.getName() + "' hierarchy"); return null; } else { // retrieved the extended logo flavors.add(flavor.getName()); FlavorDescriptor extendedFlavor = getFlavor(extendsFlavorName); if (extendedFlavor != null) { localLogo = computeLogo(extendedFlavor, flavors); } else { log.warn("Extended flavor '" + extendsFlavorName + "' not found"); } } } } return localLogo; } return null; }
clone.setPalettePreview(pp.clone()); clone.setExtendsFlavor(getExtendsFlavor()); clone.setAppendPresets(getAppendPresets()); List<FlavorPresets> presets = getPresets();
public void merge(FlavorDescriptor src) { String newExtend = src.getExtendsFlavor(); if (newExtend != null) { setExtendsFlavor(newExtend);