Révision 4005

TXM/trunk/bundles/org.txm.groovy.core/src/groovy/org/txm/macro/debug/ExtensionPointsMacro.groovy (revision 4005)
1
// Copyright © 2023 MY_INSTITUTION
2
// Licensed under the terms of the GNU General Public License version 3 (http://www.gnu.org/licenses/gpl-3.0.html)
3
// @author mdecorde
4

  
5
// STANDARD DECLARATIONS
6
package org.txm.macro.debug
7

  
8
import org.kohsuke.args4j.*
9
import groovy.transform.Field
10
import org.txm.rcp.swt.widget.parameters.*
11
import org.eclipse.core.runtime.RegistryFactory;
12
import org.txm.core.results.TXMResult;
13

  
14

  
15
@Field @Option(name="extension_point_filter", usage="Positive filter by name", widget="String", required=false, def=".+")
16
def extension_point_filter
17

  
18
@Field @Option(name="extension_attribute_filter", usage="Positive filter by name", widget="String", required=false, def="")
19
def extension_attribute_filter
20

  
21
@Field @Option(name="extension_attribute_value_filter", usage="Positive filter by name", widget="String", required=false, def=".+")
22
def extension_attribute_value_filter
23

  
24
// Open the parameters input dialog box
25
if (!ParametersDialog.open(this)) return;
26

  
27
extension_point_filter = /$extension_point_filter/
28
extension_attribute_value_filter = /$extension_attribute_value_filter/
29

  
30
println "Extensions points: "
31
def eps = RegistryFactory.getRegistry().getExtensionPoints()
32
eps.sort()
33
for (def ep : eps) {
34
	
35
	if (!(ep.getUniqueIdentifier() =~ extension_point_filter)) continue;
36
	
37
	
38
	System.out.println(ep.getUniqueIdentifier());
39
	for (def c : RegistryFactory.getRegistry().getConfigurationElementsFor(ep.getUniqueIdentifier())) {
40
		if (extension_attribute_filter.length() > 0) {
41
			if (extension_attribute_value_filter.length() == 0) {
42
				if (c.getAttribute(extension_attribute_filter) == null) continue;
43
			} else {
44
				if (!(c.getAttribute(extension_attribute_filter) =~ extension_attribute_value_filter)) continue;
45
			}
46
		}
47
		
48
		println "\t"+c+": "+c.getAttributeNames().collect() { it-> it + "="+c.getAttribute(it) }.join(", ")
49
	}
50
}
51

  

Formats disponibles : Unified diff