@Override public void registerProvider(DriverProvider provider) { provider.getDrivers().forEach(driver -> { Driver d = addDriver(driver); driverByKey.put(key(driver.manufacturer(), driver.hwVersion(), driver.swVersion()), d); d.behaviours().forEach(b -> { Class<? extends Behaviour> implementation = d.implementation(b); classes.put(b.getName(), b); classes.put(implementation.getName(), implementation); }); post(new DriverEvent(DRIVER_ENHANCED, driver)); }); providers.add(provider); checkRequiredDrivers(); }
driver.behaviours().forEach(behaviour -> { ObjectNode entry = context.mapper().createObjectNode() .put(BEHAVIORS_NAME, behaviour.getCanonicalName())
private void printDriver(Driver driver, boolean first) { if (outputJson()) { json(driver); } else if (nameOnly) { print("%s", driver.name()); } else { List<Driver> parents = Optional.ofNullable(driver.parents()) .orElse(ImmutableList.of()); List<String> parentsNames = parents.stream() .map(Driver::name).collect(Collectors.toList()); if (first) { print(FMT, driver.name(), parentsNames, driver.manufacturer(), driver.hwVersion(), driver.swVersion()); } else { print(" Inherited from %s", driver.name()); } driver.behaviours().forEach(b -> printBehaviour(b, driver)); driver.properties().forEach((k, v) -> print(FMT_P, k, v)); //recursion call to print each parent parents.stream().forEach(parent -> printDriver(parent, false)); } }