public List filterDescriptors(Object context, Iterable descriptors) { return DescriptorVisibilityFilter.apply(context,descriptors); }
public static <T extends Descriptor> List<T> apply(Object context, Iterable<T> source) { ExtensionList<DescriptorVisibilityFilter> filters = all(); List<T> r = new ArrayList<T>(); Class<?> contextClass = context == null ? null : context.getClass(); if (contextClass != null && !f.filterType(contextClass, d)) { if (LOGGER.isLoggable(Level.CONFIG)) { LOGGER.config("Filter " + f + " hides " + d + " in contexts of type " + contextClass); if (!f.filter(context, d)) { if (LOGGER.isLoggable(Level.CONFIG)) { LOGGER.config("Filter " + f + " hides " + d + " in context " + context); throw e; } catch (Throwable e) { LOGGER.log(logLevelFor(f), "Uncaught exception from filter " + f + " for context " + context, e); continue OUTER; // veto-ed. not shown
/** * Returns the list of {@link RetentionStrategy} descriptors appropriate to the supplied {@link Slave}. * * @param it the {@link Slave} or {@code null} to assume the slave is of type {@link #clazz}. * @return the filtered list * @since 2.12 */ @Nonnull @SuppressWarnings("unchecked") // used by Jelly EL only @Restricted(NoExternalUse.class) // used by Jelly EL only public final List<Descriptor<RetentionStrategy<?>>> retentionStrategyDescriptors(@CheckForNull Slave it) { return it == null ? DescriptorVisibilityFilter.applyType(clazz, RetentionStrategy.all()) : DescriptorVisibilityFilter.apply(it, RetentionStrategy.all()); }
public static <T extends Descriptor> List<T> applyType(Class<?> contextClass, Iterable<T> source) { ExtensionList<DescriptorVisibilityFilter> filters = all(); List<T> r = new ArrayList<T>(); if (contextClass != null && !f.filterType(contextClass, d)) { if (LOGGER.isLoggable(Level.CONFIG)) { LOGGER.config("Filter " + f + " hides " + d + " in contexts of type " + contextClass); throw e; } catch (Throwable e) { LOGGER.log(logLevelFor(f), "Uncaught exception from filter " + f + " for context of type " + contextClass, e); continue OUTER; // veto-ed. not shown
public static <T extends Descriptor> List<T> apply(Object context, Iterable<T> source) { ExtensionList<DescriptorVisibilityFilter> filters = all(); List<T> r = new ArrayList<T>(); OUTER: for (T d : source) { for (DescriptorVisibilityFilter f : filters) { if (!f.filter(context,d)) continue OUTER; // veto-ed. not shown } r.add(d); } return r; } }
/** * Creates the list of {@link ListViewColumn}s to be used for newly created {@link ListView}s and their likes. * * @see ListView#initColumns() * @since 2.37 */ public static List<ListViewColumn> createDefaultInitialColumnList(Class<? extends View> context) { return createDefaultInitialColumnList(DescriptorVisibilityFilter.applyType(context, ListViewColumn.all())); }
public static <T extends Descriptor> List<T> apply(Object context, Iterable<T> source) { ExtensionList<DescriptorVisibilityFilter> filters = all(); List<T> r = new ArrayList<T>(); OUTER: for (T d : source) { for (DescriptorVisibilityFilter f : filters) { if (!f.filter(context, d)) { continue OUTER; // veto-ed. not shown } } r.add(d); } return r; } }
public static <T extends Descriptor> List<T> applyType(Class<?> contextClass, Iterable<T> source) { ExtensionList<DescriptorVisibilityFilter> filters = all(); List<T> r = new ArrayList<T>(); if (contextClass != null && !f.filterType(contextClass, d)) { if (LOGGER.isLoggable(Level.CONFIG)) { LOGGER.config("Filter " + f + " hides " + d + " in contexts of type " + contextClass); throw e; } catch (Throwable e) { LOGGER.log(logLevelFor(f), "Uncaught exception from filter " + f + " for context of type " + contextClass, e); continue OUTER; // veto-ed. not shown
/** * Creates the list of {@link ListViewColumn}s to be used for newly created {@link ListView}s and their likes. * * @see ListView#initColumns() * @since 2.37 */ public static List<ListViewColumn> createDefaultInitialColumnList(Class<? extends View> context) { return createDefaultInitialColumnList(DescriptorVisibilityFilter.applyType(context, ListViewColumn.all())); }
public static List<JobPropertyDescriptor> getJobPropertyDescriptors(Job job) { return DescriptorVisibilityFilter.apply(job, JobPropertyDescriptor.getPropertyDescriptors(job.getClass())); }
/** * Returns the list of {@link ComputerLauncher} descriptors appropriate to the supplied {@link Slave}. * * @param it the {@link Slave} or {@code null} to assume the slave is of type {@link #clazz}. * @return the filtered list * @since 2.12 */ @Nonnull @Restricted(NoExternalUse.class) // intended for use by Jelly EL only (plus hack in DelegatingComputerLauncher) public final List<Descriptor<ComputerLauncher>> computerLauncherDescriptors(@CheckForNull Slave it) { DescriptorExtensionList<ComputerLauncher, Descriptor<ComputerLauncher>> all = Jenkins.getInstance().<ComputerLauncher, Descriptor<ComputerLauncher>>getDescriptorList( ComputerLauncher.class); return it == null ? DescriptorVisibilityFilter.applyType(clazz, all) : DescriptorVisibilityFilter.apply(it, all); }
public static <T extends Descriptor> List<T> apply(Object context, Iterable<T> source) { ExtensionList<DescriptorVisibilityFilter> filters = all(); List<T> r = new ArrayList<T>(); OUTER: for (T d : source) { for (DescriptorVisibilityFilter f : filters) { if (!f.filter(context,d)) continue OUTER; // veto-ed. not shown } r.add(d); } return r; } }
public static <T extends Descriptor> List<T> apply(Object context, Iterable<T> source) { ExtensionList<DescriptorVisibilityFilter> filters = all(); List<T> r = new ArrayList<T>(); Class<?> contextClass = context == null ? null : context.getClass(); if (contextClass != null && !f.filterType(contextClass, d)) { if (LOGGER.isLoggable(Level.CONFIG)) { LOGGER.config("Filter " + f + " hides " + d + " in contexts of type " + contextClass); if (!f.filter(context, d)) { if (LOGGER.isLoggable(Level.CONFIG)) { LOGGER.config("Filter " + f + " hides " + d + " in context " + context); throw e; } catch (Throwable e) { LOGGER.log(logLevelFor(f), "Uncaught exception from filter " + f + " for context " + context, e); continue OUTER; // veto-ed. not shown
/** * Get a list of all {@link NodePropertyDescriptor}s we can use to define DockerSlave NodeProperties. */ public List<NodePropertyDescriptor> getNodePropertiesDescriptors() { // Copy/paste hudson.model.Slave.SlaveDescriptor.nodePropertyDescriptors marked as @Restricted for reasons I don't get List<NodePropertyDescriptor> result = new ArrayList<>(); Collection<NodePropertyDescriptor> list = (Collection) Jenkins.getInstance().getDescriptorList(NodeProperty.class); for (NodePropertyDescriptor npd : DescriptorVisibilityFilter.applyType(DockerTransientNode.class, list)) { if (npd.isApplicable(DockerTransientNode.class)) { result.add(npd); } } final Iterator<NodePropertyDescriptor> iterator = result.iterator(); while (iterator.hasNext()) { final NodePropertyDescriptor de = iterator.next(); // see https://issues.jenkins-ci.org/browse/JENKINS-47697 if ("org.jenkinsci.plugins.matrixauth.AuthorizationMatrixNodeProperty".equals(de.getKlass().toJavaClass().getName())) { iterator.remove(); } } return result; }
/** * Creates the list of {@link ListViewColumn}s to be used for a {@link ListView}s and their likes. * * @see View#getColumns() * @since 2.37 */ public static List<ListViewColumn> createDefaultInitialColumnList(View view) { return createDefaultInitialColumnList(DescriptorVisibilityFilter.apply(view, ListViewColumn.all())); }
/** * Returns the list of {@link NodePropertyDescriptor} appropriate to the supplied {@link Slave}. * * @param it the {@link Slave} or {@code null} to assume the slave is of type {@link #clazz}. * @return the filtered list * @since 2.12 */ @Nonnull @SuppressWarnings("unchecked") // used by Jelly EL only @Restricted(NoExternalUse.class) // used by Jelly EL only public final List<NodePropertyDescriptor> nodePropertyDescriptors(@CheckForNull Slave it) { List<NodePropertyDescriptor> result = new ArrayList<NodePropertyDescriptor>(); Collection<NodePropertyDescriptor> list = (Collection) Jenkins.getInstance().getDescriptorList(NodeProperty.class); for (NodePropertyDescriptor npd : it == null ? DescriptorVisibilityFilter.applyType(clazz, list) : DescriptorVisibilityFilter.apply(it, list)) { if (npd.isApplicable(clazz)) { result.add(npd); } } return result; }
public static <T extends Descriptor> List<T> apply(Object context, Iterable<T> source) { ExtensionList<DescriptorVisibilityFilter> filters = all(); List<T> r = new ArrayList<T>(); OUTER: for (T d : source) { for (DescriptorVisibilityFilter f : filters) { if (!f.filter(context,d)) continue OUTER; // veto-ed. not shown } r.add(d); } return r; } }
for (Tag d : r) answer.add(d.d); return DescriptorVisibilityFilter.apply(Jenkins.getInstance(),answer);
/** * Possible {@link ListViewColumnDescriptor}s that can be used with this view. */ public List<Descriptor<ListViewColumn>> getColumnsDescriptors() { StaplerRequest request = Stapler.getCurrentRequest(); if (request != null) { View view = request.findAncestorObject(clazz); return view == null ? DescriptorVisibilityFilter.applyType(clazz, ListViewColumn.all()) : DescriptorVisibilityFilter.apply(view, ListViewColumn.all()); } return ListViewColumn.all(); }
/** * Returns {@code true} if this {@link CredentialsProvider} is enabled in the specified context. * * @param context the context. * @return {@code true} if this {@link CredentialsProvider} is enabled in the specified context. * @since 2.0 */ public boolean isEnabled(Object context) { if (!isEnabled()) { return false; } for (DescriptorVisibilityFilter filter : DescriptorVisibilityFilter.all()) { if (!filter.filter(context, this)) { return false; } } return true; }