]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.debug.browser/src/org/simantics/debug/browser/content/ResourceBrowserRewriterRepository.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.debug.browser / src / org / simantics / debug / browser / content / ResourceBrowserRewriterRepository.java
1 /*******************************************************************************
2  * Copyright (c) 2016 Association for Decentralized Information Management
3  * in Industry THTH ry.
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
8  *
9  * Contributors:
10  *     THTH ry - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.debug.browser.content;
13
14 import java.util.Arrays;
15 import java.util.Comparator;
16
17 import org.osgi.framework.BundleContext;
18 import org.osgi.util.tracker.ServiceTracker;
19 import org.simantics.debug.browser.internal.Activator;
20
21 public class ResourceBrowserRewriterRepository {
22     private static ServiceTracker<ResourceBrowserRewriter, ResourceBrowserRewriter> TRACKER;
23
24     private static final Comparator<ResourceBrowserRewriter> REWRITER_COMPARATOR =
25             new Comparator<ResourceBrowserRewriter>() {
26         @Override
27         public int compare(ResourceBrowserRewriter o1,
28                 ResourceBrowserRewriter o2) {
29             return Double.compare(o1.getPriority(), o2.getPriority());
30         }
31     };
32
33     public static ResourceBrowserRewriter[] getRewriters() {
34         if(TRACKER == null) {
35             BundleContext context = Activator.getContext();
36             TRACKER = new ServiceTracker<ResourceBrowserRewriter, ResourceBrowserRewriter>(
37                     context, ResourceBrowserRewriter.class, null);
38             TRACKER.open();
39         }
40         ResourceBrowserRewriter[] rewriters =
41                 TRACKER.getServices(new ResourceBrowserRewriter[TRACKER.getTrackingCount()]);
42         Arrays.sort(rewriters, REWRITER_COMPARATOR);
43         return rewriters;
44     }
45 }