Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: 8cdeb0802be7cd852a45e2c14634d0e3ea109b91 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
 * Copyright (c) 2010 Artem Tikhomirov 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:
 *    Artem Tikhomirov (independent) - Initial API and implementation
 */

«IMPORT 'http://www.eclipse.org/gmf/2009/GenModel'»

«DEFINE fields FOR gmfgen::ExpressionLabelParser-»
«IF not viewExpression.oclIsUndefined() and viewExpression.provider.oclIsKindOf(gmfgen::GenExpressionInterpreter)»
	«EXPAND xpt::Common::generatedMemberComment»
	private final «holder.editorGen.expressionProviders.getAbstractExpressionQualifiedClassName()» printExpression;
«ENDIF-»

«IF not editExpression.oclIsUndefined() and editExpression.provider.oclIsKindOf(gmfgen::GenExpressionInterpreter)»
	«EXPAND xpt::Common::generatedMemberComment»
	private final «holder.editorGen.expressionProviders.getAbstractExpressionQualifiedClassName()» editExpression;
«ENDIF-»

«IF not validateExpression.oclIsUndefined() and validateExpression.provider.oclIsKindOf(gmfgen::GenExpressionInterpreter)»
	«EXPAND xpt::Common::generatedMemberComment»
	private final «holder.editorGen.expressionProviders.getAbstractExpressionQualifiedClassName()» validateExpression;
«ENDIF-»
«ENDDEFINE»

«DEFINE cons(String name) FOR gmfgen::ExpressionLabelParser-»
	«EXPAND xpt::Common::generatedMemberComment»
	public «name»() {
	«IF not viewExpression.oclIsUndefined() and viewExpression.provider.oclIsKindOf(gmfgen::GenExpressionInterpreter)-»
		this.printExpression = «EXPAND xpt::expressions::getExpression::getExpression(viewExpression, self.expressionContext) FOR viewExpression.provider.oclAsType(gmfgen::GenExpressionInterpreter)»;«EXPAND xpt::Common::nonNLS»
	«ENDIF-»
	«IF not editExpression.oclIsUndefined() and editExpression.provider.oclIsKindOf(gmfgen::GenExpressionInterpreter)-»
		this.editExpression = «EXPAND xpt::expressions::getExpression::getExpression(editExpression, self.expressionContext) FOR editExpression.provider.oclAsType(gmfgen::GenExpressionInterpreter)»;«EXPAND xpt::Common::nonNLS»
	«ENDIF-»
	«IF not validateExpression.oclIsUndefined() and validateExpression.provider.oclIsKindOf(gmfgen::GenExpressionInterpreter)-»
		this.validateExpression = «EXPAND xpt::expressions::getExpression::getExpression(validateExpression, 'org.eclipse.emf.ecore.EcorePackage.eINSTANCE.getEString()') FOR validateExpression.provider.oclAsType(gmfgen::GenExpressionInterpreter)»;«EXPAND xpt::Common::nonNLS»
	«ENDIF-»
	}
«ENDDEFINE»

«DEFINE accessEditExpression FOR gmfgen::ExpressionLabelParser-»
«IF editExpression.oclIsUndefined()-»
	return getPrintString(element, flags);
«ELSE-»
«EXPAND _evaluateAndReturnExpressionResult('this.editExpression', 'evaluateEditExpression', editExpression) FOR editExpression.provider-»
«ENDIF-»
«ENDDEFINE»

«DEFINE accessViewExpression FOR gmfgen::ExpressionLabelParser-»
«IF viewExpression.oclIsUndefined()-»
	// TODO
	throw new UnsupportedOperationException();
«ELSE-»
«EXPAND _evaluateAndReturnExpressionResult('this.printExpression', 'evaluatePrintExpression', viewExpression) FOR viewExpression.provider-»
«ENDIF-»
«ENDDEFINE»

«DEFINE _evaluateAndReturnExpressionResult(String expressionFieldName, String javaMethodName, ValueExpression expression) FOR gmfgen::GenExpressionProviderBase»«ERROR 'Abstract template call: _evaluateAndReturnExpressionResult'»«ENDDEFINE»
«DEFINE _evaluateAndReturnExpressionResult(String expressionFieldName, String javaMethodName, ValueExpression expression) FOR gmfgen::GenExpressionInterpreter-»
org.eclipse.emf.ecore.EObject target = (org.eclipse.emf.ecore.EObject) element.getAdapter(org.eclipse.emf.ecore.EObject.class);
Object result = «expressionFieldName».evaluate(target);
return String.valueOf(result);
«ENDDEFINE»
«DEFINE _evaluateAndReturnExpressionResult(String expressionFieldName, String javaMethodName, ValueExpression expression) FOR gmfgen::GenJavaExpressionProvider-»
return «javaMethodName»((org.eclipse.emf.ecore.EObject) element.getAdapter(org.eclipse.emf.ecore.EObject.class));
«ENDDEFINE»
«DEFINE _evaluateAndReturnExpressionResult(String expressionFieldName, String javaMethodName, ValueExpression expression) FOR gmfgen::GenLiteralExpressionProvider-»
return «expression.body»;
«ENDDEFINE»


«DEFINE accessValidateExpression FOR gmfgen::ExpressionLabelParser-»
«IF not validateExpression.oclIsUndefined() -»
	if («IF validateExpression.provider.getLanguage() = gmfgen::GenLanguage::_literal»!«validateExpression.body»«ELSE»Boolean.FALSE.equals(«IF validateExpression.provider.oclIsKindOf(gmfgen::GenExpressionInterpreter)»this.validateExpression.evaluate(editString)«ELSEIF validateExpression.provider.oclIsKindOf(gmfgen::GenJavaExpressionProvider)»evaluateValidateExpression(editString)«ENDIF»)«ENDIF») {
		return org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus.UNEDITABLE_STATUS;
	} // else fall-through
«ENDIF-»
	return org.eclipse.gmf.runtime.common.ui.services.parser.ParserEditStatus.EDITABLE_STATUS;
«ENDDEFINE»

«DEFINE extraMethods FOR gmfgen::ExpressionLabelParser-»
«IF not viewExpression.oclIsUndefined() and viewExpression.provider.oclIsKindOf(gmfgen::GenJavaExpressionProvider)»
	«EXPAND _javaMethod('evaluatePrintExpression', 'String', 'org.eclipse.emf.ecore.EObject', viewExpression) FOR viewExpression.provider.oclAsType(gmfgen::GenJavaExpressionProvider)-»
«ENDIF-»
«IF not editExpression.oclIsUndefined() and editExpression.provider.oclIsKindOf(gmfgen::GenJavaExpressionProvider)»
	«EXPAND _javaMethod('evaluateEditExpression', 'String', 'org.eclipse.emf.ecore.EObject', editExpression) FOR editExpression.provider.oclAsType(gmfgen::GenJavaExpressionProvider)-»
«ENDIF-»
«IF not validateExpression.oclIsUndefined() and validateExpression.provider.oclIsKindOf(gmfgen::GenJavaExpressionProvider)»
	«EXPAND _javaMethod('evaluateValidateExpression', 'Boolean', 'String', validateExpression) FOR validateExpression.provider.oclAsType(gmfgen::GenJavaExpressionProvider)-»
«ENDIF-»
«ENDDEFINE»

«DEFINE _javaMethod(String methodName, String returnType, String paramType, ValueExpression expression) FOR gmfgen::GenJavaExpressionProvider-»
	«EXPAND xpt::Common::generatedMemberComment»
	private «returnType» «methodName»(«paramType» self) {
«IF injectExpressionBody and (expression.body <> null and expression.body.size() > 0)-»
		«expression.body»
«ELSEIF throwException or (injectExpressionBody and (expression.body = null or expression.body.size() = 0))-»
		// TODO: implement this method to return «returnType» value  
		// Ensure that you remove @generated or mark it @generated NOT
		throw new java.lang.UnsupportedOperationException("No user java implementation provided in '«methodName»' operation");«EXPAND xpt::Common::nonNLS»
«ELSE-»
		return null;
«ENDIF-»	
	}
«ENDDEFINE»

Back to the top