FeaturePackConfig next() { if(!hasNext()) { throw new IndexOutOfBoundsException((currentFp + 1) + " exceeded " + fpConfigs.size()); } return fpConfigs.get(++currentFp); }
boolean isFilteredOut(ProducerSpec producer, ConfigId configId, boolean fromPrevLevel) { int i = levels.size() - (fromPrevLevel ? 2 : 1); while(i >= 0) { if(levels.get(i--).isFilteredOut(producer, configId)) { return true; } } return isFilteredOut(config, configId); }
boolean isPackageFilteredOut(ProducerSpec producer, String packageName, boolean fromPrevLevel) { int i = levels.size() - (fromPrevLevel ? 2 : 1); if(i < 0) { return false; } Level level = levels.get(i--); Boolean filteredOut = level.isPackageFilteredOut(producer, packageName); if(filteredOut != null && filteredOut) { return true; } while (i >= 0) { level = levels.get(i--); if(filteredOut == null && !level.isInheritPackages()) { return true; } filteredOut = level.isPackageFilteredOut(producer, packageName); if(filteredOut != null && filteredOut) { return true; } } if(filteredOut == null && !level.isInheritPackages()) { return true; } return false; } }
boolean configsInherited = true; for(int i = levels.size() - 1; i >= 0; --i) { if(!levels.get(i).isInheritConfigs()) { configsInherited = false; break; boolean configsInherited = true; for(int i = levels.size() - 1; i >= 0; --i) { if(!levels.get(i).isInheritModelOnlyConfigs()) { configsInherited = false; break;
boolean isPackageIncluded(ProducerSpec producer, String packageName) { final FeaturePackConfig fpConfig = getFpConfig(producer); return fpConfig == null ? false : fpConfig.isPackageIncluded(packageName); }
boolean isPackageExcluded(ProducerSpec producer, String packageName) { final FeaturePackConfig fpConfig = getFpConfig(producer); return fpConfig == null ? false : fpConfig.isPackageExcluded(packageName); }
private int isInheritPackages(ProducerSpec producer) { int result = INHERIT_PKGS_NOT_FOUND; for(int i = levels.size() - 1; i >= 0; --i) { final int levelResult = levels.get(i).isInheritPackages(producer); if(levelResult < 0) { return levelResult; } if(levelResult > result) { result = levelResult; } } return result; }
Boolean isPackageFilteredOut(ProducerSpec producer, String packageName) { final FeaturePackConfig fpConfig = getFpConfig(producer); if(fpConfig == null) { return null; } if(fpConfig.isInheritPackages()) { return fpConfig.isPackageExcluded(packageName); } return !fpConfig.isPackageIncluded(packageName); }
boolean push(FeaturePackConfig fpConfig, boolean extendCurrentLevel) { if(!isRelevant(fpConfig)) { return false; } if(extendCurrentLevel) { lastPushed.addFpConfig(fpConfig); return true; } final Level newLevel = new Level(); newLevel.addFpConfig(fpConfig); levels.add(newLevel); lastPushed = newLevel; return true; }
boolean isPackageExcluded(ProducerSpec producer, String packageName) { for(int i = levels.size() - 1; i >= 0; --i) { if(levels.get(i).isPackageExcluded(producer, packageName)) { return true; } } return false; }
int isInheritPackages(ProducerSpec producer) { final FeaturePackConfig fpConfig = getFpConfig(producer); if(fpConfig == null) { return INHERIT_PKGS_NOT_FOUND; } if(!fpConfig.isInheritPackages()) { return INHERIT_PKGS_FALSE; } return fpConfig.isTransitive() ? INHERIT_PKGS_TRANSITIVE : INHERIT_PKGS_TRUE; }
boolean hasNext() { if(lastPushed == null) { return false; } return lastPushed.hasNext(); }