blob: a96ec609a3131318e24df952263f50fd40ed162a [file] [log] [blame]
/*
* Copyright (c) 2007, 2009 Borland Software Corporation
*
* 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:
* Artem Tikhomirov (Borland) - initial API and implementation
*/
«IMPORT 'http://www.eclipse.org/gmf/2009/GenModel'»
«EXTENSION xpt::GenAuditRoot»
«EXTENSION xpt::GenEditorGenerator»
«EXTENSION gmf::CodeGenerationUtils»
«DEFINE extensions FOR gmfgen::GenEditorGenerator
«IF hasAudits(self)»«EXPAND extensions FOR audits»«ENDIF
«ENDDEFINE»
«DEFINE extensions FOR gmfgen::GenAuditRoot
«EXPAND extensions_emfv_constraintProviders»
«EXPAND extensions_emfv_constraintBindings»
«EXPAND extensions_emfv_uiContexts»
«ENDDEFINE»
//
// Extension point: org.eclipse.emf.validation.constraintProviders
//
«DEFINE extensions_emfv_constraintProviders FOR gmfgen::GenAuditRoot
<extension point="org.eclipse.emf.validation.constraintProviders">
«EXPAND xpt::Common::xmlGeneratedTag»
«EXPAND declareCategory FOREACH categories
<constraintProvider cache="true">
«FOREACH getAllTargetedModelPackages(self) AS p
<package namespaceUri="«p.ecorePackage.nsURI»"/>
«ENDFOREACH
«EXPAND defineCategory FOREACH categories
</constraintProvider>
</extension>
«ENDDEFINE»
//
// Extension point: org.eclipse.emf.validation.constraintBindings
//
«DEFINE extensions_emfv_constraintBindings FOR gmfgen::GenAuditRoot
<extension point="org.eclipse.emf.validation.constraintBindings">
«EXPAND xpt::Common::xmlGeneratedTag»
«FOREACH clientContexts->asSequence() AS ctx
<clientContext default="false" id="«getQualifiedIdentity(ctx)»">
<selector class="«ctx.getQualifiedClassName()»"/>
</clientContext>
<binding context="«getQualifiedIdentity(ctx)»">
«FOREACH rules->select(r | r.target <> null and r.target.contextSelector = ctx)->asSequence() /*alternative: ctx.ruleTargets.contains(r.target)*/ AS rule
<constraint ref="«editorGen.plugin.iD».«escapeXML(rule.id)»"/>
«ENDFOREACH
</binding>
«ENDFOREACH
</extension>
«ENDDEFINE»
//
// Extension point: org.eclipse.emf.validation.ui.UIRegisteredClientContext
//
«DEFINE extensions_emfv_uiContexts FOR gmfgen::GenAuditRoot
«IF editorGen.diagram.liveValidationUIFeedback»
<extension point="org.eclipse.emf.validation.ui.UIRegisteredClientContext">
«EXPAND xpt::Common::xmlGeneratedTag»
«FOREACH clientContexts->asSequence() AS ctx
<clientContext id="«getQualifiedIdentity(ctx)»"/>
«ENDFOREACH
</extension>
«ENDIF
«ENDDEFINE»
«DEFINE declareCategory FOR gmfgen::GenAuditContainer
<category id="«EXPAND _pathMap»" mandatory="false" name="«IF name <> null»«escapeXML(name)»«ELSE»«EXPAND _pathMap»«ENDIF»">
<![CDATA[«(if description <> null then description else '' endif)»]]>
</category>
«ENDDEFINE»
«DEFINE defineCategory FOR gmfgen::GenAuditContainer
<constraints categories="«EXPAND _pathMap»">
«FOREACH audits->select(a | a.target <> null and a.target.getTargetClass() <> null)->asSequence() AS audit
<constraint id="«escapeXML(audit.id)»"
«IF audit.requiresConstraintAdapter»lang="Java" class="«audit.getConstraintAdapterQualifiedClassName()»"«ELSE»lang="OCL"«ENDIF»
name="«escapeXML((if audit.name <> null then audit.name else audit.id endif))»"
mode="«IF audit.useInLiveMode»Live«ELSE»Batch«ENDIF»"
severity="«audit.severity.repr()»" statusCode="200">
«IF not audit.requiresConstraintAdapter»<![CDATA[«(if audit.rule <> null then audit.rule.body else '' endif)»]]>«ENDIF»
<description><![CDATA[«(if audit.description <> null then audit.description else '' endif)»]]></description>
<message><![CDATAIF audit.message <> null»«audit.message»«ELSE»«(if audit.name <> null then audit.name else audit.id endif audit violated«ENDIF»]]></message>
<target class="«audit.target.getTargetClassModelQualifiedName()»"/>
</constraint>
«ENDFOREACH
</constraints>
«ENDDEFINE»
«DEFINE _pathMap FOR gmfgen::GenAuditContainer»«FOREACH path->asSequence() AS p SEPARATOR '/' »«escapeXML(p.id)»«ENDFOREACH»«ENDDEFINE»