blob: 04737e9c3c23a4a5d05fb8e04d53689e7c64d325 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?<!--
Copyright (c) 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
-->
><!--
Copyright (c) 2006, 2010 Soyatec (http://www.soyatec.com) 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:
Soyatec - initial API and implementation
-->
<merge:options
indent=" "
braceStyle="matching"
redirect="Gen"
block="\s*@\s*generated\s*NOT\s*(?:\n\r?|\r\n?)"
noImport="\s*//\s*import\s+([\w.*]*)\s*;\s*(?:\n\r?|\r\n?)"
xmlns:merge="http://www.eclipse.org/org/eclipse/emf/codegen/jmerge/Options">
<!-- Tabbed Standard
indent="&#x9;"
braceStyle="standard"
-->
<!-- this accepts both new and old style markup. -->
<merge:dictionaryPattern
name="modelMembers"
select="Member/getComment"
match="@\s*(model)"/>
<merge:dictionaryPattern
name="generatedUnmodifiableMembers"
select="Member/getComment"
match="@\s*(gen)erated\s*(This field/method[^(?:\n\r?|\r\n?)]*)*(?:\n\r?|\r\n?)"/>
<merge:dictionaryPattern
name="generatedModifiableMembers"
select="Member/getComment"
match="@\s*generated\s*(modifiable)\s*(?:\n\r?|\r\n?)"/>
<!-- This is like the above, but for backward compatibility -->
<merge:dictionaryPattern
name="generatedLastGenMembers"
select="Member/getComment"
match="@\s*(lastgen).*(?:\n\r?|\r\n?)"/>
<merge:dictionaryPattern
name="orderedMembers"
select="Member/getComment"
match="@\s*(ordered)\s*(?:\n\r?|\r\n?)"/>
<!-- Only push Annotations for the Members marked by gen-->
<merge:push targetParentMarkup="^gen$" select="Annotation"/>
<merge:pull
sourceMarkup="^modifiable$"
sourceGet="Member/getComment"
sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
targetMarkup="^modifiable$"
targetPut="Member/setComment"/>
<merge:pull
sourceMarkup="^gen$"
sourceGet="Member/getComment"
sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
targetMarkup="^gen$"
targetPut="Member/setComment"/>
<merge:pull
sourceGet="Member/getFlags"
targetMarkup="^gen$"
equals="Member/getName"
targetPut="Member/setFlags"/>
<merge:pull
sourceMarkup="^gen$"
sourceGet="AbstractType/getComment"
sourceTransfer="(\s*&lt;!--\s*begin-user-doc.*?end-user-doc\s*-->\s*)(?:\n\r?|\r\n?)"
targetMarkup="^modifiable$"
targetPut="AbstractType/setComment"/>
<merge:pull
sourceGet="Type/getTypeParameters"
targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
targetPut="Type/setTypeParameters"/>
<merge:pull
sourceGet="Type/getSuperclass"
targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
targetPut="Type/setSuperclass"/>
<merge:pull
sourceGet="Type/getSuperInterfaces"
sourceTransfer="(\s*@\s*extends|\s*@\s*implements)(.*?)(?:&lt;!--|(?:\n\r?|\r\n?))"
targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
targetPut="Type/addSuperInterface"/>
<merge:pull
sourceGet="Enum/getSuperInterfaces"
sourceTransfer="(\s*@\s*extends|\s*@\s*implements)(.*?)(?:&lt;!--|(?:\n\r?|\r\n?))"
targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
targetPut="Enum/addSuperInterface"/>
<merge:pull
sourceGet="EnumConstant/getArguments"
targetMarkup="^lastgen$|^gen$|^modifiable$|^model$"
targetPut="EnumConstant/setArguments"/>
<merge:pull
sourceGet="EnumConstant/getBody"
targetMarkup="^lastgen$|^gen$|^modifiable$|^model$$"
targetPut="EnumConstant/setBody"/>
<merge:pull
sourceGet="AnnotationTypeMember/getType"
targetMarkup="^gen$"
targetPut="AnnotationTypeMember/setType"/>
<merge:pull
sourceGet="AnnotationTypeMember/getDefaultValue"
targetMarkup="^gen$"
targetPut="AnnotationTypeMember/setDefaultValue"/>
<merge:pull
sourceGet="Initializer/getBody"
targetMarkup="^gen$"
targetPut="Initializer/setBody"/>
<merge:pull
sourceGet="Field/getType"
targetMarkup="^gen$"
targetPut="Field/setType"/>
<merge:pull
sourceGet="Field/getInitializer"
targetMarkup="^gen$"
targetPut="Field/setInitializer"/>
<merge:pull
sourceGet="Method/getTypeParameters"
targetMarkup="^gen$"
targetPut="Method/setTypeParameters"/>
<merge:pull
sourceGet="Method/getReturnType"
targetMarkup="^gen$|^model$"
targetPut="Method/setReturnType"/>
<merge:pull
sourceGet="Method/getParameters"
targetMarkup="^gen$"
targetPut="Method/setParameters"/>
<merge:pull
sourceGet="Method/getBody"
targetMarkup="^gen$"
targetPut="Method/setBody"/>
<merge:pull
sourceGet="Method/getExceptions"
targetMarkup="^gen$"
targetPut="Method/addException"/>
<merge:sweep markup="^gen$" select="Member"/>
<merge:sweep markup="^org.eclipse.emf.ecore.EMetaObject$" select="Import"/>
<merge:sweep markup="^org.eclipse.emf.ecore.impl.EMetaObjectImpl$" select="Import"/>
<merge:sweep markup="^org.eclipse.emf.ecore.util.EObjectCompositeEList$" select="Import"/>
<merge:sweep markup="^org.eclipse.emf.ecore.util.EObjectCompositeWithInverseEList$" select="Import"/>
<merge:sweep markup="^org.eclipse.emf.common.util.AbstractEnumerator$" select="Import"/>
<merge:sort markup="^ordered$" select="Field"/>
<merge:sort markup="^ordered$" select="EnumConstant"/>
<!--Generate Header always.-->
<merge:pull
sourceGet="CompilationUnit/getHeader"
targetPut="CompilationUnit/setHeader"/>
<!-- Basic Rules
<merge:pull
sourceGet="Package/getName"
targetPut="Package/setName"/>
<merge:pull
sourceGet="Member/getFlags"
targetPut="Member/setFlags"/>
<merge:pull
sourceGet="Member/getComment"
targetPut="Member/setComment"/>
<merge:pull
sourceGet="Type/getSuperclass"
targetPut="Type/setSuperclass"/>
<merge:pull
sourceGet="Type/getSuperInterfaces"
targetPut="Type/addSuperInterface"/>
<merge:pull
sourceGet="Initializer/getBody"
targetPut="Initializer/setBody"/>
<merge:pull
sourceGet="Field/getType"
targetPut="Field/setType"/>
<merge:pull
sourceGet="Field/getInitializer"
targetPut="Field/setInitializer"/>
<merge:pull
sourceGet="Method/getBody"
targetPut="Method/setBody"/>
<merge:pull
sourceGet="Method/getReturnType"
targetPut="Method/setReturnType"/>
<merge:pull
sourceGet="Method/getExceptions"
targetPut="Method/addException"/>
-->
<!-- Push Enum Constants only for generated Enums -->
<!--
<merge:push targetParentMarkup="^gen$" select="EnumConstant"/>
-->
<!-- Push Annotation Type Members only for generated Annotation Types -->
<!--
<merge:push targetParentMarkup="^gen$" select="AnnotationTypeMember"/>
-->
<!-- Sets the content of annotations if the parent is marked with gen -->
<!--
<merge:pull
sourceGet="Annotation/getContents"
targetParentMarkup="^gen$"
targetPut="Annotation/setContents"/>
-->
<!-- Remove annotations of generated target nodes if the annotation is not in the source -->
<!--
<merge:sweep parentMarkup="^gen$" select="Annotation"/>
-->
<!--
<merge:pull
sourceMarkup="^modifiable$"
sourceGet="Member/getComment"
targetMarkup="^gen$"
targetPut="Member/setComment"/>
-->
</merge:options>