aboutsummaryrefslogtreecommitdiffstats
path: root/Solvers/VIATRA-Solver/org.eclipse.viatra.dse/src/org/eclipse/viatra/dse/api/DSETransformationRule.java
blob: 8c3511aedc55bcaaf037a279e5f69bf90206488f (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
/*******************************************************************************
 * Copyright (c) 2010-2014, Miklos Foldenyi, Andras Szabolcs Nagy, Abel Hegedus, Akos Horvath, Zoltan Ujhelyi and Daniel Varro
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0 which is available at
 * http://www.eclipse.org/legal/epl-v20.html.
 * 
 * SPDX-License-Identifier: EPL-2.0
 *******************************************************************************/
package org.eclipse.viatra.dse.api;

import java.util.Objects;
import java.util.function.Consumer;

import org.eclipse.viatra.query.runtime.api.IPatternMatch;
import org.eclipse.viatra.query.runtime.api.IQuerySpecification;
import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher;
import org.eclipse.viatra.transformation.runtime.emf.rules.batch.BatchTransformationRule;

/**
 * An instance of this class is a specification of a graph transformation rule on a given metamodel. Such a rule
 * consists of a left hand side (LHS), which is specified by an {@link IQuerySpecification} and a right hand side (RHS),
 * which is specified by an {@link Consumer}.
 * 
 * @author Andras Szabolcs Nagy
 * 
 * @param <Match>
 *            A VIATRA Query pattern match - left hand side of the rule
 * @param <Matcher>
 *            A VIATRA Query pattern matcher - left hand side of the rule
 * @deprecated
 */
@Deprecated
public class DSETransformationRule<Match extends IPatternMatch, Matcher extends ViatraQueryMatcher<Match>> extends
        BatchTransformationRule<Match, Matcher> {

    public DSETransformationRule(String name, IQuerySpecification<Matcher> querySpec,
            Consumer<Match> action) {
        super(name, querySpec, BatchTransformationRule.STATELESS_RULE_LIFECYCLE, action);

        Objects.requireNonNull(name);
        Objects.requireNonNull(querySpec);
        Objects.requireNonNull(action);

    }

    public DSETransformationRule(IQuerySpecification<Matcher> querySpec,
            Consumer<Match> action) {
        this(querySpec.getFullyQualifiedName(), querySpec, action);
    }

}