@Override public void completeChannel(FPLocationParser.ParsedFPLocation parsedLocation, String channel) throws FPLocationParserException, ProvisioningException { Producer<?> p = getProducer(parsedLocation, pmSession); if (p == null) { return; } for (Channel c : p.getChannels()) { if (c.getName().equals(channel)) { // Do nothing, do not inline separators. Separators are to be added explicitly // this could be revisited. candidates.add(channel); } else if (c.getName().startsWith(channel)) { candidates.add(c.getName()); } } }
private static List<String> getAllBuilds(UniverseSpec spec, Producer<?> producer, Channel channel) { FeaturePackLocation loc = new FeaturePackLocation(spec, producer.getName(), channel.getName(), null, null); List<String> build = Collections.emptyList(); try { build = channel.getAllBuilds(loc); } catch (ProvisioningException ex) { // OK, no build. } return build; }
private void getAllProducers(String name, UniverseSpec spec, Universe<?> universe, List<String> candidates) throws ProvisioningException { for (Producer<?> p : universe.getProducers()) { for (Channel c : p.getChannels()) { if (!candidates.contains(p.getName())) { candidates.add(p.getName() + FeaturePackLocation.CHANNEL_START + c.getName()); } } } }
private void getProducers(String producerName, String universeName, Universe<?> universe, List<String> candidates) throws ProvisioningException { for (Producer<?> p : universe.getProducers()) { if (!candidates.contains(p.getName())) { // Display producer:channel as a whole, makes it clear that we require both. if (p.getName().startsWith(producerName)) { if (universeName == null) { for (Channel c : p.getChannels()) { candidates.add(p.getName() + FeaturePackLocation.CHANNEL_START + c.getName()); } } else { for (Channel c : p.getChannels()) { candidates.add(p.getName() + FeaturePackLocation.UNIVERSE_START + universeName + FeaturePackLocation.CHANNEL_START + c.getName()); } } } } } }
private static String getBuild(UniverseSpec spec, Producer<?> producer, Channel channel, String freq) { FeaturePackLocation loc = new FeaturePackLocation(spec, producer.getName(), channel.getName(), freq, null); String build = null; try { build = channel.getLatestBuild(loc); } catch (ProvisioningException ex) { // OK, no build. } return build; }
return; FeaturePackLocation ploc = new FeaturePackLocation(builtinUniverseSpec, p.getName(), c.getName(), null, null); deps.add(ploc);
private static void visit(UniverseVisitor visitor, Universe<?> universe, UniverseSpec universeSpec, boolean allBuilds) throws ProvisioningException { for (Producer<?> producer : universe.getProducers()) { for (Channel channel : producer.getChannels()) { if (allBuilds) { List<String> builds = getAllBuilds(universeSpec, producer, channel); if (builds != null && !builds.isEmpty()) { for (String build : builds) { visitor.visit(producer, new FeaturePackLocation(universeSpec, producer.getName(), channel.getName(), null, build)); } } } for (String freq : producer.getFrequencies()) { String build = getBuild(universeSpec, producer, channel, freq); // We have a latest build for the frequency. if (build != null) { FeaturePackLocation loc = new FeaturePackLocation(universeSpec, producer.getName(), channel.getName(), freq, build); visitor.visit(producer, loc); } } } } }