@Override public boolean isSupported() { if (factory instanceof OptionalFeature) { return ((OptionalFeature) factory).isSupported(); } else { return true; } }
@Override public boolean isSupported() { if (factory instanceof OptionalFeature) { return ((OptionalFeature) factory).isSupported(); } else { return true; } }
static <S extends OptionalFeature, T, E extends NamedFactory<T>> List<NamedFactory<T>> setUpTransformedFactories( boolean ignoreUnsupported, Collection<? extends S> preferred, Function<? super S, ? extends E> xform) { return preferred.stream() .filter(f -> ignoreUnsupported || f.isSupported()) .map(xform) .collect(Collectors.toList()); }
static <T, E extends NamedFactory<T> & OptionalFeature> List<NamedFactory<T>> setUpBuiltinFactories( boolean ignoreUnsupported, Collection<? extends E> preferred) { return preferred.stream() .filter(f -> ignoreUnsupported || f.isSupported()) .collect(Collectors.toList()); } }
static <T, E extends NamedFactory<T> & OptionalFeature> List<NamedFactory<T>> setUpBuiltinFactories( boolean ignoreUnsupported, Collection<? extends E> preferred) { return preferred.stream() .filter(f -> ignoreUnsupported || f.isSupported()) .collect(Collectors.toList()); } }
static <S extends OptionalFeature, T, E extends NamedFactory<T>> List<NamedFactory<T>> setUpTransformedFactories( boolean ignoreUnsupported, Collection<? extends S> preferred, Function<? super S, ? extends E> xform) { return preferred.stream() .filter(f -> ignoreUnsupported || f.isSupported()) .map(xform) .collect(Collectors.toList()); }
static OptionalFeature any(Collection<? extends OptionalFeature> features) { return () -> { if (GenericUtils.isEmpty(features)) { return false; } for (OptionalFeature f : features) { if (f.isSupported()) { return true; } } return false; }; } }
static OptionalFeature all(Collection<? extends OptionalFeature> features) { return () -> { if (GenericUtils.isEmpty(features)) { return false; } for (OptionalFeature f : features) { if (!f.isSupported()) { return false; } } return true; }; }
static OptionalFeature all(Collection<? extends OptionalFeature> features) { return () -> { if (GenericUtils.isEmpty(features)) { return false; } for (OptionalFeature f : features) { if (!f.isSupported()) { return false; } } return true; }; }
static OptionalFeature any(Collection<? extends OptionalFeature> features) { return () -> { if (GenericUtils.isEmpty(features)) { return false; } for (OptionalFeature f : features) { if (f.isSupported()) { return true; } } return false; }; } }
protected void appendExtensions(Buffer buffer, String supportedVersions) { appendVersionsExtension(buffer, supportedVersions); appendNewlineExtension(buffer, resolveNewlineValue(getServerSession())); appendVendorIdExtension(buffer, VersionProperties.getVersionProperties()); appendOpenSSHExtensions(buffer); appendAclSupportedExtension(buffer); Map<String, OptionalFeature> extensions = getSupportedClientExtensions(); int numExtensions = GenericUtils.size(extensions); List<String> extras = (numExtensions <= 0) ? Collections.emptyList() : new ArrayList<>(numExtensions); if (numExtensions > 0) { ServerSession session = getServerSession(); boolean debugEnabled = log.isDebugEnabled(); extensions.forEach((name, f) -> { if (!f.isSupported()) { if (debugEnabled) { log.debug("appendExtensions({}) skip unsupported extension={}", session, name); } return; } extras.add(name); }); } appendSupportedExtension(buffer, extras); appendSupported2Extension(buffer, extras); }