1 /*******************************************************************************
2 * Copyright (c) 2016 Association for Decentralized Information Management
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
10 * THTH ry - initial API and implementation
11 *******************************************************************************/
12 package org.simantics.debug.browser.content;
14 import java.util.Arrays;
15 import java.util.Comparator;
17 import org.osgi.framework.BundleContext;
18 import org.osgi.util.tracker.ServiceTracker;
19 import org.simantics.debug.browser.internal.Activator;
21 public class ResourceBrowserRewriterRepository {
22 private static ServiceTracker<ResourceBrowserRewriter, ResourceBrowserRewriter> TRACKER;
24 private static final Comparator<ResourceBrowserRewriter> REWRITER_COMPARATOR =
25 new Comparator<ResourceBrowserRewriter>() {
27 public int compare(ResourceBrowserRewriter o1,
28 ResourceBrowserRewriter o2) {
29 return Double.compare(o1.getPriority(), o2.getPriority());
33 public static ResourceBrowserRewriter[] getRewriters() {
35 BundleContext context = Activator.getContext();
36 TRACKER = new ServiceTracker<ResourceBrowserRewriter, ResourceBrowserRewriter>(
37 context, ResourceBrowserRewriter.class, null);
40 ResourceBrowserRewriter[] rewriters =
41 TRACKER.getServices(new ResourceBrowserRewriter[TRACKER.getTrackingCount()]);
42 Arrays.sort(rewriters, REWRITER_COMPARATOR);