Package org.eclipse.core.expressions
Class PropertyTester
java.lang.Object
org.eclipse.core.expressions.PropertyTester
- All Implemented Interfaces:
IPropertyTester
- Direct Known Subclasses:
OpenPerspectivePropertyTester
Abstract superclass of all property testers. Implementation classes of
the extension point
org.eclipse.core.expresssions.propertyTesters
must extend PropertyTester
.
A property tester implements the property tests enumerated in the property tester extension point. For the following property test extension
<propertyTester namespace="org.eclipse.jdt.core" id="org.eclipse.jdt.core.IPackageFragmentTester" properties="isDefaultPackage" type="org.eclipse.jdt.core.IPackageFragment" class="org.eclipse.demo.MyPackageFragmentTester"> </propertyTester>the corresponding implementation class looks like:
public class MyPackageFragmentTester extends PropertyTester { public boolean test(Object receiver, String property, Object[] args, Object expectedValue) { IPackageFragment fragment= (IPackageFragment)receiver; if ("isDefaultPackage".equals(property)) { return expectedValue == null ? fragment.isDefaultPackage() : fragment.isDefaultPackage() == ((Boolean)expectedValue).booleanValue(); } Assert.isTrue(false); return false; } }The property can then be used in a test expression as follows:
<instanceof value="org.eclipse.core.IPackageFragment"/> <test property="org.eclipse.jdt.core.isDefaultPackage"/>
There is no guarantee that the same instance of a property tester is used to handle <test property="..."/> requests. So property testers should always be implemented in a stateless fashion.
- Since:
- 3.0
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal boolean
Returns whether the property tester can handle the given property or not.final IPropertyTester
Loads the implementation class for this property tester and returns an instance of this class.final org.eclipse.core.internal.expressions.PropertyTesterDescriptor
Note: this method is for internal use only.final void
internalInitialize
(org.eclipse.core.internal.expressions.PropertyTesterDescriptor descriptor) Initialize the property tester with the given name space and property.boolean
Returnstrue
if the implementation class of this property tester can be loaded.final boolean
Returns whether the implementation class for this property tester is loaded or not.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.eclipse.core.expressions.IPropertyTester
test
-
Constructor Details
-
PropertyTester
public PropertyTester()
-
-
Method Details
-
internalInitialize
public final void internalInitialize(org.eclipse.core.internal.expressions.PropertyTesterDescriptor descriptor) Initialize the property tester with the given name space and property.Note: this method is for internal use only. Clients must not call this method.
- Parameters:
descriptor
- the descriptor object for this tester- Restriction:
- This method is not intended to be referenced by clients.
-
internalCreateDescriptor
public final org.eclipse.core.internal.expressions.PropertyTesterDescriptor internalCreateDescriptor()Note: this method is for internal use only. Clients must not call this method.- Returns:
- the property tester descriptor
- Restriction:
- This method is not intended to be referenced by clients.
-
handles
Description copied from interface:IPropertyTester
Returns whether the property tester can handle the given property or not.- Specified by:
handles
in interfaceIPropertyTester
- Parameters:
namespace
- the name space to be consideredproperty
- the property to test- Returns:
true
if the tester provides an implementation for the given property; otherwisefalse
is returned
-
isInstantiated
public final boolean isInstantiated()Description copied from interface:IPropertyTester
Returns whether the implementation class for this property tester is loaded or not.- Specified by:
isInstantiated
in interfaceIPropertyTester
- Returns:
true
if the implementation class is loaded;false
otherwise
-
isDeclaringPluginActive
public boolean isDeclaringPluginActive()Description copied from interface:IPropertyTester
Returnstrue
if the implementation class of this property tester can be loaded. This is the case if the plug-in providing the implementation class is active. Returnsfalse
otherwise.- Specified by:
isDeclaringPluginActive
in interfaceIPropertyTester
- Returns:
- whether the implementation class can be loaded or not
-
instantiate
Description copied from interface:IPropertyTester
Loads the implementation class for this property tester and returns an instance of this class.- Specified by:
instantiate
in interfaceIPropertyTester
- Returns:
- an instance of the implementation class for this property tester
-