summaryrefslogtreecommitdiffstats
path: root/rba.tool.editor/src/rba/tool/editor/RBAModelRuntimeModule.xtend
blob: dabff8fc21d1abeaaa6ffcfeb421dbe553f5f8ab (plain)
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
/*
 * generated by Xtext 2.12.0
 */
package rba.tool.editor

import com.google.inject.Binder
import com.google.inject.Provider
import com.google.inject.name.Names
import org.eclipse.xtext.linking.impl.DefaultLinkingService
import org.eclipse.xtext.scoping.IScopeProvider
import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider
import org.eclipse.xtext.validation.CompositeEValidator
import rba.tool.editor.generator.RBAModelGeneratorExtensions
import rba.tool.editor.generator.z3.ConstraintGeneratorImpl
import rba.tool.editor.generator.z3.IConstraintGenerator
import rba.tool.editor.generator.z3.ISortValueGenerator
import rba.tool.editor.generator.z3.SortValueGeneratorImpl
import rba.tool.editor.linking.RBAModelLinker
import rba.tool.editor.linking.RBAModelLinkingService
import rba.tool.editor.naming.RBAModelSimpleNameProvider
import rba.tool.editor.resource.RBAModelLocationInFileProvider
import rba.tool.editor.scoping.IExpressionScope
import rba.tool.editor.scoping.RBAModelExpressionScope
import rba.tool.editor.scoping.RBAModelImportedNamespaceAwareLocalScopeProvider
import rba.tool.editor.scoping.internal.RBAModelMemberFieldScopes
import rba.tool.editor.scoping.internal.RBAModelMemberOperationScopes
import rba.tool.editor.validation.RBADiagnostician
import rba.tool.editor.validation.RBAModelCompositeEValidatorProvider

/**
 * Use this class to register components to be used at runtime / without the Equinox extension registry.
 */
class RBAModelRuntimeModule extends AbstractRBAModelRuntimeModule {

	override bindIQualifiedNameProvider() {
		return RBAModelSimpleNameProvider;
	}

	override bindILinker() {
		return RBAModelLinker;
	}

	def public Class<? extends ISortValueGenerator> bindISortValueGenerator() {
		return SortValueGeneratorImpl;
	}


	def public Class<? extends IConstraintGenerator> bindIConstraintGenerator() {
		return ConstraintGeneratorImpl;
	}

	override bindILocationInFileProvider() {
		return RBAModelLocationInFileProvider;
	}

	def public Class<? extends RBAModelGeneratorExtensions> bindRBAModelGeneratorExtensions() {
		return RBAModelGeneratorExtensions;
	}

	override bindDiagnostician() {
		return RBADiagnostician;
	}

	def public Class<? extends IExpressionScope> bindIExpressionScope() {
		return RBAModelExpressionScope;
	}

	def public Class<? extends RBAModelMemberFieldScopes> bindRBAModelMemberFieldScopes() {
		return RBAModelMemberFieldScopes;
	}

	def public Class<? extends RBAModelMemberOperationScopes> bindRBAModelMemberOperationScopes() {
		return RBAModelMemberOperationScopes;
	}

	def public Class<? extends Provider<CompositeEValidator>> provideRBAModelCompositeEValidatorProvider() {
		return RBAModelCompositeEValidatorProvider;
	}

	def public Class<? extends DefaultLinkingService> bindRBAModelLinkingService() {
		return RBAModelLinkingService;
	}

	override configureIScopeProviderDelegate(Binder binder) {
		binder.bind(IScopeProvider).annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)).to(RBAModelImportedNamespaceAwareLocalScopeProvider);
	}

}