blob: ad46e4d1fe051605e7772f6d5a30263ae4e6b2b8 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
/*
* Copyright (c) 2004 - 2011 Eike Stepper (Berlin, Germany) and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Eike Stepper - initial API and implementation
*/
package org.eclipse.net4j.util.properties;
import org.eclipse.core.expressions.PropertyTester;
import java.util.List;
/**
* Tests properties of receiver objects against expected values.
*
* @author Eike Stepper
* @since 3.2
*/
public class DefaultPropertyTester<RECEIVER> extends PropertyTester implements IProperties<RECEIVER>
{
private final String namespace;
private final IProperties<RECEIVER> properties;
public DefaultPropertyTester(String namespace, IProperties<RECEIVER> properties)
{
this.namespace = namespace;
this.properties = properties;
}
public final String getNamespace()
{
return namespace;
}
public Class<RECEIVER> getReceiverType()
{
return properties.getReceiverType();
}
public Property<RECEIVER> getProperty(String name)
{
return properties.getProperty(name);
}
public List<Property<RECEIVER>> getProperties()
{
return properties.getProperties();
}
public void add(Property<RECEIVER> property)
{
properties.add(property);
}
public boolean test(Object receiver, String propertyName, Object[] args, Object expectedValue)
{
Property<RECEIVER> property = getProperty(propertyName);
if (property == null)
{
return false;
}
@SuppressWarnings("unchecked")
RECEIVER typed = (RECEIVER)receiver;
return property.testValue(typed, args, expectedValue);
}
public void dumpContributionMarkup()
{
System.out.println(" <extension point=\"org.eclipse.core.expressions.propertyTesters\">");
System.out.println(" <propertyTester");
System.out.println(" id=\"" + getNamespace() + ".properties\"");
System.out.println(" type=\"" + getReceiverType().getName() + "\"");
System.out.println(" namespace=\"" + getNamespace() + "\"");
System.out.print(" properties=\"");
boolean first = true;
for (Property<RECEIVER> property : getProperties())
{
if (first)
{
first = false;
}
else
{
System.out.print(",");
}
System.out.print(property.getName());
}
System.out.println("\"");
System.out.println(" class=\"" + getClass().getName() + "\"/>");
System.out.println(" </extension>");
}
}
|