<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
    http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
-->
<?eclipse version="3.2"?>
<plugin>
   <extension
         point="org.eclipse.core.expressions.propertyTesters">
      <propertyTester
            class="org.cauldron.sigil.utils.properties.EditorPropertyTester"
            id="org.cauldron.sigil.utils.editorPropertyTester"
            namespace="org.cauldron.sigil"
            properties="isEditorOfType"
            type="org.eclipse.ui.IWorkbenchPart">
      </propertyTester>
      <propertyTester
            class="org.cauldron.sigil.utils.properties.PartKindPropertyTester"
            id="org.cauldron.sigil.runtime.PartKindPropertyTester"
            namespace="org.cauldron.sigil"
            properties="partKind,partId"
            type="org.eclipse.ui.IWorkbenchPart">
      </propertyTester>
      <propertyTester
            class="org.cauldron.sigil.utils.properties.ResourceTypePropertyTester"
            id="org.cauldron.sigil.utils.ResourcePropertyTester"
            namespace="org.cauldron.sigil"
            properties="isResourceOfType"
            type="org.eclipse.core.resources.IResource">
      </propertyTester>
   </extension>

</plugin>
