aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/language/src/main/java/tools/refinery/language/parser/ProblemEcoreElementFactory.java
blob: 7d2461174b7f0251ea7982cb1a70b37e1f3d92c7 (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
/*
 * SPDX-FileCopyrightText: 2024 The Refinery Authors <https://refinery.tools/>
 *
 * SPDX-License-Identifier: EPL-2.0
 */
package tools.refinery.language.parser;

import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.conversion.ValueConverterException;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.parser.DefaultEcoreElementFactory;
import tools.refinery.language.model.problem.Problem;
import tools.refinery.language.model.problem.ProblemPackage;

public class ProblemEcoreElementFactory extends DefaultEcoreElementFactory {
	@Override
	public void set(
			EObject object, String feature, Object value, String ruleName, INode node) throws ValueConverterException {
		super.set(object, feature, value, ruleName, node);
		if (object instanceof Problem problem && ProblemPackage.Literals.PROBLEM__KIND.getName().equals(feature)) {
			problem.setExplicitKind(true);
		}
	}
}