/** * Finds a facet of the specific type (including subtypes.) * @param <T> Class of the {@link FingerprintFacet} * @return First matching facet of the specified class * @since 1.556 */ public @CheckForNull <T extends FingerprintFacet> T getFacet(Class<T> type) { for (FingerprintFacet f : getFacets()) { if (type.isInstance(f)) return type.cast(f); } return null; }
/** * Sorts {@link FingerprintFacet}s by their timestamps. * @return Sorted list of {@link FingerprintFacet}s */ public @Nonnull Collection<FingerprintFacet> getSortedFacets() { List<FingerprintFacet> r = new ArrayList<FingerprintFacet>(getFacets()); Collections.sort(r,new Comparator<FingerprintFacet>() { public int compare(FingerprintFacet o1, FingerprintFacet o2) { long a = o1.getTimestamp(); long b = o2.getTimestamp(); if (a<b) return -1; if (a==b) return 0; return 1; } }); return r; }
/** * Returns the actions contributed from {@link #getFacets()} */ public @Nonnull List<Action> getActions() { List<Action> r = new ArrayList<Action>(); for (FingerprintFacet ff : getFacets()) ff.createActions(r); return Collections.unmodifiableList(r); }
/** * Finds a facet of the specific type (including subtypes.) * @param <T> Class of the {@link FingerprintFacet} * @return First matching facet of the specified class * @since 1.556 */ public @CheckForNull <T extends FingerprintFacet> T getFacet(Class<T> type) { for (FingerprintFacet f : getFacets()) { if (type.isInstance(f)) return type.cast(f); } return null; }
/** * Sorts {@link FingerprintFacet}s by their timestamps. * @return Sorted list of {@link FingerprintFacet}s */ public @Nonnull Collection<FingerprintFacet> getSortedFacets() { List<FingerprintFacet> r = new ArrayList<FingerprintFacet>(getFacets()); Collections.sort(r,new Comparator<FingerprintFacet>() { public int compare(FingerprintFacet o1, FingerprintFacet o2) { long a = o1.getTimestamp(); long b = o2.getTimestamp(); if (a<b) return -1; if (a==b) return 0; return 1; } }); return r; }
/** * Returns the actions contributed from {@link #getFacets()} */ public @Nonnull List<Action> getActions() { List<Action> r = new ArrayList<Action>(); for (FingerprintFacet ff : getFacets()) ff.createActions(r); return Collections.unmodifiableList(r); }
public List<DockerFingerprintFacet> getDockerFacets(String imageId) { List<DockerFingerprintFacet> res = new LinkedList<DockerFingerprintFacet>(); final Fingerprint fp = getFingerprint(imageId); if (fp != null) { for (final FingerprintFacet f : fp.getFacets()) { if (f instanceof DockerFingerprintFacet) { res.add((DockerFingerprintFacet) f); } } } return res; }
/** * Retrieves a facet from the {@link Fingerprint}. * @param <TFacet> Facet type to be retrieved * @param fingerprint Fingerprint, which stores facets * @param facetClass Class to be retrieved * @return First matching facet. */ @SuppressWarnings("unchecked") public static @CheckForNull <TFacet extends FingerprintFacet> TFacet getFacet (@Nonnull Fingerprint fingerprint, @Nonnull Class<TFacet> facetClass) { for ( FingerprintFacet facet : fingerprint.getFacets()) { if (facetClass.isAssignableFrom(facet.getClass())) { return (TFacet)facet; } } return null; }
public List<DockerFingerprintFacet> getDockerFacets(String imageId) { List<DockerFingerprintFacet> res = new LinkedList<DockerFingerprintFacet>(); final Fingerprint fp = getFingerprint(imageId); if (fp != null) { for (final FingerprintFacet f : fp.getFacets()) { if (f instanceof DockerFingerprintFacet) { res.add((DockerFingerprintFacet) f); } } } return res; }
/** * Retrieves a facet from the {@link Fingerprint}. * @param <TFacet> Facet type to be retrieved * @param fingerprint Fingerprint, which stores facets * @param facetClass Class to be retrieved * @return First matching facet. */ @SuppressWarnings("unchecked") public static @CheckForNull <TFacet extends FingerprintFacet> TFacet getFacet (@Nonnull Fingerprint fingerprint, @Nonnull Class<TFacet> facetClass) { for ( FingerprintFacet facet : fingerprint.getFacets()) { if (facetClass.isAssignableFrom(facet.getClass())) { return (TFacet)facet; } } return null; }
/** * Retrieves facets from the {@link Fingerprint}. * @param <TFacet> Facet type to be retrieved * @param fingerprint Fingerprint, which stores facets * @param facetClass Facet class to be retrieved * @return All found facets */ public static @Nonnull @SuppressWarnings("unchecked") <TFacet extends FingerprintFacet> Collection<TFacet> getFacets (@Nonnull Fingerprint fingerprint, @Nonnull Class<TFacet> facetClass) { final List<TFacet> res = new LinkedList<TFacet>(); for ( FingerprintFacet facet : fingerprint.getFacets()) { if (facetClass.isAssignableFrom(facet.getClass())) { res.add((TFacet)facet); } } return res; }
/** * Retrieves facets from the {@link Fingerprint}. * @param <TFacet> Facet type to be retrieved * @param fingerprint Fingerprint, which stores facets * @param facetClass Facet class to be retrieved * @return All found facets */ public static @Nonnull @SuppressWarnings("unchecked") <TFacet extends FingerprintFacet> Collection<TFacet> getFacets (@Nonnull Fingerprint fingerprint, @Nonnull Class<TFacet> facetClass) { final List<TFacet> res = new LinkedList<TFacet>(); for ( FingerprintFacet facet : fingerprint.getFacets()) { if (facetClass.isAssignableFrom(facet.getClass())) { res.add((TFacet)facet); } } return res; }
@Nonnull private synchronized TriggerEntry getOrCreateEntry(@Nonnull final PushNotification pushNotification) throws IOException, InterruptedException { Fingerprint fingerprint = jenkins.getFingerprintMap().getOrCreate(null, pushNotification.getRepoName(), pushNotification.sha()); TriggerEntry entry = fingerprint.getFacet(TriggerEntry.class); if (entry==null) fingerprint.getFacets().add(entry=new TriggerEntry(fingerprint,pushNotification)); return entry; }
BulkChange change = new BulkChange(fingerprint); try { Collection<FingerprintFacet> facets = fingerprint.getFacets();
BulkChange change = new BulkChange(fingerprint); try { Collection<FingerprintFacet> facets = fingerprint.getFacets();
BulkChange change = new BulkChange(fingerprint); try { Collection<FingerprintFacet> facets = fingerprint.getFacets();
/** * Registers a fingerprint for the given workspace's id. * * @param exws the workspace to register the fingerprint for * @throws IOException if fingerprint load operation fails */ private void registerFingerprint(ExternalWorkspace exws) throws IOException { FingerprintMap map = Jenkins.getActiveInstance().getFingerprintMap(); Fingerprint f = map.getOrCreate(run, exws.getDisplayName(), exws.getId()); if (f.getFacet(WorkspaceBrowserFacet.class) == null) { f.getFacets().add(new WorkspaceBrowserFacet(f, System.currentTimeMillis(), exws)); } f.save(); }
BulkChange change = new BulkChange(fingerprint); try { Collection<FingerprintFacet> facets = fingerprint.getFacets();
/** * Adds a new {@link ContainerRecord} for the specified image, creating necessary intermediate objects as it goes. */ public static void addRunFacet(@Nonnull ContainerRecord record, @Nonnull Run<?,?> run) throws IOException { String imageId = record.getImageId(); Fingerprint f = forImage(run, imageId); Collection<FingerprintFacet> facets = f.getFacets(); DockerRunFingerprintFacet runFacet = null; for (FingerprintFacet facet : facets) { if (facet instanceof DockerRunFingerprintFacet) { runFacet = (DockerRunFingerprintFacet) facet; break; } } BulkChange bc = new BulkChange(f); try { if (runFacet == null) { runFacet = new DockerRunFingerprintFacet(f, System.currentTimeMillis(), imageId); facets.add(runFacet); } runFacet.add(record); runFacet.addFor(run); DockerFingerprintAction.addToRun(f, imageId, run); bc.commit(); } finally { bc.abort(); } }
/** * Adds a new {@link ContainerRecord} for the specified image, creating necessary intermediate objects as it goes. */ public static void addRunFacet(@Nonnull ContainerRecord record, @Nonnull Run<?,?> run) throws IOException { String imageId = record.getImageId(); Fingerprint f = forImage(run, imageId); Collection<FingerprintFacet> facets = f.getFacets(); DockerRunFingerprintFacet runFacet = null; for (FingerprintFacet facet : facets) { if (facet instanceof DockerRunFingerprintFacet) { runFacet = (DockerRunFingerprintFacet) facet; break; } } BulkChange bc = new BulkChange(f); try { if (runFacet == null) { runFacet = new DockerRunFingerprintFacet(f, System.currentTimeMillis(), imageId); facets.add(runFacet); } runFacet.add(record); runFacet.addFor(run); DockerFingerprintAction.addToRun(f, imageId, run); bc.commit(); } finally { bc.abort(); } }