blob: 66ea53627b654e19722199fdb56464c0717ad147 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<!-- Copyright (c) 2005, 2010 IBM Corporation 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: -->
<!-- IBM Corporation - initial API and implementation -->
<plugin>
<extension point="org.eclipse.emf.ecore.generated_package">
<package
uri = "http:///org.eclipse.gmf.tests.runtime.emf.type.core/Employee.ecore"
class = "org.eclipse.gmf.tests.runtime.emf.type.core.employee.EmployeePackage" />
</extension>
<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
<!-- client context that is bound to a set of element types and advice -->
<clientContext id="org.eclipse.gmf.tests.runtime.emf.type.core.ClientContext1">
<enablement>
<test
property="org.eclipse.gmf.runtime.emf.core.editingDomain"
value="org.eclipse.gmf.tests.runtime.emf.type.core.EditingDomain"/>
<test
property="org.eclipse.gmf.tests.runtime.emf.type.core.resourceURI"
value="null://org.eclipse.gmf.tests.runtime.emf.type.core.context"/>
</enablement>
</clientContext>
<binding
context="org.eclipse.gmf.tests.runtime.emf.type.core.ClientContext1">
<elementType pattern="org.eclipse.gmf.tests.runtime.emf.type.core.context.*"/>
<advice pattern="org.eclipse.gmf.tests.runtime.emf.type.core.context.*"/>
<advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
</binding>
<!-- another client context that is bound to a set of element types and advice -->
<clientContext id="org.eclipse.gmf.tests.runtime.emf.type.core.ClientContext2">
<enablement>
<test
property="org.eclipse.gmf.runtime.emf.core.editingDomain"
value="org.eclipse.gmf.tests.runtime.emf.type.core.EditingDomain"/>
<test
property="org.eclipse.gmf.tests.runtime.emf.type.core.resourceURI"
value="null://org.eclipse.gmf.tests.runtime.emf.type.core.context"/>
</enablement>
</clientContext>
<binding
context="org.eclipse.gmf.tests.runtime.emf.type.core.ClientContext2">
<elementType pattern="org.eclipse.gmf.tests.runtime.emf.type.core.context.*"/>
<advice pattern="org.eclipse.gmf.tests.runtime.emf.type.core.context.*"/>
<advice ref="org.eclipse.gmf.runtime.diagram.core.advice.notationDepdendents"/>
</binding>
<!-- client context that is not bound to any element types or advice -->
<clientContext id="org.eclipse.gmf.tests.runtime.emf.type.core.UnboundClientContext">
<matcher
class="org.eclipse.gmf.runtime.emf.type.core.NullElementMatcher">
</matcher>
</clientContext>
</extension>
<!-- Types and advice contributed in this extension are NOT bound to a client context -->
<extension
point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
<!-- Test custom element type factory -->
<elementTypeFactory
factory="org.eclipse.gmf.tests.runtime.emf.type.core.internal.SecurityClearedElementTypeFactory"
kind = "org.eclipse.gmf.tests.runtime.emf.type.core.internal.ISecurityCleared"
params = "securityClearance">
</elementTypeFactory>
<!-- Test metamodel -->
<metamodel
nsURI="http:///org.eclipse.gmf.tests.runtime.emf.type.core/Employee.ecore">
<!-- Test metamodel types -->
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.department"
name="Department"
eclass="Department"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.DepartmentEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.employee"
name="Employee"
eclass="Employee"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.EmployeeEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.student"
name="Student"
eclass="Student"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.StudentEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.highSchoolStudent"
name="High School Student"
eclass="HighSchoolStudent">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.office"
name="Office"
eclass="Office"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.OfficeEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.customer"
name="Customer"
eclass="Customer"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.CustomerEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.client"
name="Client"
eclass="Client"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ClientEditHelper">
</metamodelType>
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.secretDepartment"
name="Secret Department"
kind="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ISecurityCleared">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.department"/>
<matcher class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.SecretDepartmentMatcher"/>
</specializationType>
<!-- Test specialization type with eContainer and matcher -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.manager"
name="Manager"
edithelperadvice="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ManagerEditHelperAdvice">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.employee"/>
<eContainer>
<eContainmentFeature qname="Department.manager"/>
</eContainer>
<matcher class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ManagerMatcher"/>
</specializationType>
<!-- Test specialization type with enablement -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.executive"
name="Executive"
edithelperadvice="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ExecutiveEditHelperAdvice">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.manager"/>
<enablement>
<test property="org.eclipse.gmf.tests.runtime.emf.type.core.officeHasDoor" value="true"/>
</enablement>
</specializationType>
<!-- Test custom specialization type -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.topSecret"
name="TopSecret"
kind="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ISecurityCleared">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.employee"/>
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.manager"/>
<param name="securityClearance" value = "topSecret"/>
</specializationType>
<!-- Test advice binding with eContainer -->
<adviceBinding
id="org.eclipse.gmf.tests.runtime.emf.type.core.financeEmployee"
typeId="org.eclipse.gmf.tests.runtime.emf.type.core.employee"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.FinanceEditHelperAdvice"
inheritance="all">
<eContainer>
<enablement>
<test property="org.eclipse.gmf.tests.runtime.emf.type.core.departmentName" value="Finance"/>
</enablement>
</eContainer>
</adviceBinding>
<adviceBinding
id="org.eclipse.gmf.tests.runtime.emf.type.core.notInheritedEmployeeAdvice"
typeId="org.eclipse.gmf.tests.runtime.emf.type.core.employee"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.NotInheritedEditHelperAdvice">
</adviceBinding>
<!-- Test duplicate metamodel type ID -->
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.employee"
name="DuplicateEmployee"
eclass="Employee"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.EmployeeEditHelper">
</metamodelType>
<!-- Test specializing more than one metamodel type -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.multipleMetamodelTypes"
name="MultipleMetamodelTypes"
edithelperadvice="org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.student"/>
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.department"/>
</specializationType>
<!-- Test specializing non-existent type -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.SpecializesNoSuchType"
name="NoSuchType">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.noSuchType"/>
</specializationType>
<!-- Advice for dependents of Clients -->
<adviceBinding
id="org.eclipse.gmf.tests.runtime.emf.type.core.clientDependentsAdvice"
typeId="org.eclipse.gmf.tests.runtime.emf.type.core.client"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ClientDependentsAdvice">
</adviceBinding>
<!-- Advice for destruction of Customers -->
<adviceBinding
id="org.eclipse.gmf.tests.runtime.emf.type.core.destroyCustomerAdvice"
typeId="*"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.DestroyCustomerAdvice">
</adviceBinding>
</metamodel>
<!-- Test metamodel that doesn't exist -->
<metamodel nsURI="http:///org.eclipse.gmf.tests.runtime.emf.type.core/Does.not.exist">
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.noMetamodel"
name="NoMetamodel"
eclass="None"
edithelper="org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice">
</metamodelType>
</metamodel>
<!-- Text specialization that doesn't need a metamodel -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.nullSpecialization"
name="NullSpecialization"
edithelperadvice = "org.eclipse.gmf.tests.runtime.emf.type.core.internal.NullElementTypeAdvice">
<specializes id="org.eclipse.gmf.runtime.emf.type.core.null"/>
</specializationType>
</extension>
<!-- Types and advice contributed in this extension ARE bound to a client context -->
<extension
point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
<!-- Test metamodel -->
<metamodel
nsURI="http:///org.eclipse.gmf.tests.runtime.emf.type.core/Employee.ecore">
<!-- Test metamodel types -->
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.department"
name="Department"
eclass="Department"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.DepartmentEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.employee"
name="Employee"
eclass="Employee"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.EmployeeEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.student"
name="Student"
eclass="Student"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.StudentEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.office"
name="Office"
eclass="Office"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.OfficeEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.customer"
name="Customer"
eclass="Customer"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.CustomerEditHelper">
</metamodelType>
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.client"
name="Client"
eclass="Client"
edithelper="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ClientEditHelper">
</metamodelType>
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.secretDepartment"
name="Secret Department"
kind="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ISecurityCleared">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.context.department"/>
<matcher class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.SecretDepartmentMatcher"/>
</specializationType>
<!-- Test specialization type with eContainer and matcher -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.manager"
name="Manager"
edithelperadvice="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ManagerEditHelperAdvice">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.context.employee"/>
<eContainer>
<eContainmentFeature qname="Department.manager"/>
</eContainer>
<matcher class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ManagerMatcher"/>
</specializationType>
<!-- Test specialization type with enablement -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.executive"
name="Executive"
edithelperadvice="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ExecutiveEditHelperAdvice">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.context.manager"/>
<enablement>
<test property="org.eclipse.gmf.tests.runtime.emf.type.core.officeHasDoor" value="true"/>
</enablement>
</specializationType>
<!-- Test custom specialization type -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.topSecret"
name="TopSecret"
kind="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ISecurityCleared">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.context.employee"/>
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.context.manager"/>
<param name="securityClearance" value = "topSecret"/>
</specializationType>
<!-- Test advice binding with eContainer -->
<adviceBinding
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.financeEmployee"
typeId="org.eclipse.gmf.tests.runtime.emf.type.core.context.employee"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.FinanceEditHelperAdvice"
inheritance="all">
<eContainer>
<enablement>
<test property="org.eclipse.gmf.tests.runtime.emf.type.core.departmentName" value="FinanceWithContext"/>
</enablement>
</eContainer>
</adviceBinding>
<adviceBinding
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.notInheritedEmployeeAdvice"
typeId="org.eclipse.gmf.tests.runtime.emf.type.core.context.employee"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.NotInheritedEditHelperAdvice">
</adviceBinding>
<!-- Advice for dependents of Clients -->
<adviceBinding
id="org.eclipse.gmf.tests.runtime.emf.type.core.context.clientDependentsAdvice"
typeId="org.eclipse.gmf.tests.runtime.emf.type.core.context.client"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ClientDependentsAdvice">
</adviceBinding>
<!-- Specialization types with IDs that doesn't match the client context patterns -->
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.example1.employee"
name="Example1Employee">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.context.employee"/>
</specializationType>
<specializationType
id="org.eclipse.gmf.tests.runtime.emf.type.example2.employee"
name="Example2Employee">
<specializes id="org.eclipse.gmf.tests.runtime.emf.type.core.context.employee"/>
</specializationType>
</metamodel>
</extension>
<!-- Employee type for testing bugzilla 157788 -->
<extension
point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
<metamodel
nsURI="http:///org.eclipse.gmf.tests.runtime.emf.type.core/Employee.ecore">
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.157788.employee"
name="Employee"
eclass="Employee">
</metamodelType>
</metamodel>
</extension>
<!-- client context that is bound to the employee type for bugzilla 157788 -->
<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
<clientContext id="org.eclipse.gmf.tests.runtime.emf.type.core.157788_context">
<enablement>
<test
property="org.eclipse.gmf.runtime.emf.core.editingDomain"
value="org.eclipse.gmf.tests.runtime.emf.type.core.EditingDomain"/>
<test
property="org.eclipse.gmf.tests.runtime.emf.type.core.resourceURI"
value="null://org.eclipse.gmf.tests.runtime.emf.type.core.157788"/>
</enablement>
</clientContext>
<binding
context="org.eclipse.gmf.tests.runtime.emf.type.core.157788_context">
<elementType ref="org.eclipse.gmf.tests.runtime.emf.type.core.157788.employee"/>
</binding>
</extension>
<!-- EObject type for testing bugzilla 298661 -->
<extension
point="org.eclipse.gmf.runtime.emf.type.core.elementTypes">
<metamodel
nsURI="http://www.eclipse.org/emf/2002/Ecore">
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.298661.eObject"
name="EObject"
eclass="EObject">
</metamodelType>
</metamodel>
<metamodel
nsURI="http:///org.eclipse.gmf.tests.runtime.emf.type.core/Employee.ecore">
<metamodelType
id="org.eclipse.gmf.tests.runtime.emf.type.core.298661.student"
name="Student"
eclass="Student">
</metamodelType>
</metamodel>
</extension>
<!-- client context that is bound to the EObject type for bugzilla 298661 -->
<extension point="org.eclipse.gmf.runtime.emf.type.core.elementTypeBindings">
<clientContext id="org.eclipse.gmf.tests.runtime.emf.type.core.298661_context">
<enablement>
<test
property="org.eclipse.gmf.runtime.emf.core.editingDomain"
value="org.eclipse.gmf.tests.runtime.emf.type.core.EditingDomain"/>
<test
property="org.eclipse.gmf.tests.runtime.emf.type.core.resourceURI"
value="null://org.eclipse.gmf.tests.runtime.emf.type.core.298661"/>
</enablement>
</clientContext>
<binding
context="org.eclipse.gmf.tests.runtime.emf.type.core.298661_context">
<elementType pattern="org.eclipse.gmf.tests.runtime.emf.type.core.298661.*"/>
</binding>
</extension>
<extension point="org.eclipse.core.expressions.propertyTesters">
<propertyTester
id="org.eclipse.gmf.tests.runtime.emf.type.core.OfficeTester"
type="org.eclipse.gmf.tests.runtime.emf.type.core.employee.Employee"
namespace="org.eclipse.gmf.tests.runtime.emf.type.core"
properties="officeHasDoor, officeWindowCount"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.OfficeTester">
</propertyTester>
<propertyTester
id="org.eclipse.gmf.tests.runtime.emf.type.core.DepartmentTester"
type="org.eclipse.gmf.tests.runtime.emf.type.core.employee.Department"
namespace="org.eclipse.gmf.tests.runtime.emf.type.core"
properties="departmentName"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.DepartmentTester">
</propertyTester>
<propertyTester
id="org.eclipse.gmf.tests.runtime.emf.type.core.internal.resourceTester"
type="org.eclipse.emf.ecore.EObject"
namespace="org.eclipse.gmf.tests.runtime.emf.type.core"
properties="resourceURI"
class="org.eclipse.gmf.tests.runtime.emf.type.core.internal.ResourceTester">
</propertyTester>
</extension>
</plugin>