/** * Returns a collection of composite sniffers that recognized some parts of the passed archive as * components their container handle. * * <p>If no sniffer recognize the passed archive, an empty collection is returned. * * @param context deployment context * @return possibly empty collection of sniffers that handle the passed archive. */ public Collection<CompositeSniffer> getCompositeSniffers(DeploymentContext context) { // it is important to keep an ordered sequence here to keep sniffers // in their natural order. List<CompositeSniffer> appSniffers = getApplicableSniffers(context, getCompositeSniffers(), false); // call handles method of the sniffers for (CompositeSniffer sniffer : getCompositeSniffers()) { if (!appSniffers.contains(sniffer) && sniffer.handles(context)) { appSniffers.add(sniffer); } } return appSniffers; }
public Collection<Sniffer> getSniffers(DeploymentContext context, List<URI> uris, Types types) { // it is important to keep an ordered sequence here to keep sniffers // in their natural order. List<Sniffer> regularSniffers = new ArrayList<Sniffer>(); for (Sniffer sniffer : getSniffers()) { if (!(sniffer instanceof CompositeSniffer)) regularSniffers.add(sniffer); } // scan for registered annotations and retrieve applicable sniffers List<Sniffer> appSniffers = this.getApplicableSniffers(uris, types, regularSniffers, true); // call handles method of the sniffers for (Sniffer sniffer : regularSniffers) { if (!appSniffers.contains(sniffer) && sniffer.handles(context)) { appSniffers.add(sniffer); } } return appSniffers; }