From cfede9f44ea013702539da38bd5b809ae6b652e8 Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Fri, 12 Oct 2018 14:25:31 +0200 Subject: [PATCH] imported patch MET-ModelExpressionTransformationIdentity.patch --- ...ModelExpressionTransformationIdentity.java | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 prism/src/explicit/ModelExpressionTransformationIdentity.java diff --git a/prism/src/explicit/ModelExpressionTransformationIdentity.java b/prism/src/explicit/ModelExpressionTransformationIdentity.java new file mode 100644 index 00000000..01bab2a3 --- /dev/null +++ b/prism/src/explicit/ModelExpressionTransformationIdentity.java @@ -0,0 +1,101 @@ +//============================================================================== +// +// Copyright (c) 2015- +// Authors: +// * Joachim Klein (TU Dresden) +// +//------------------------------------------------------------------------------ +// +// This file is part of PRISM. +// +// PRISM is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// PRISM is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with PRISM; if not, write to the Free Software Foundation, +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +//============================================================================== + +package explicit; + +import java.util.BitSet; + +import parser.ast.Expression; + +/** + * A ModelExpressionTransformation where only the expression changes, not the model. + * @param the model type + */ +public class ModelExpressionTransformationIdentity implements ModelExpressionTransformation { + /** The model */ + private M model; + + /** The original expression */ + private Expression originalExpression; + + /** The transformed expression */ + private Expression transformedExpression; + + /** The original (and transformed) states of interest */ + private BitSet statesOfInterest; + + /** + * Constructor. + * @param model the model + * @param originalExpression the original expression + * @param transformedExpression the transformed expression + * @param statesOfInterest the states of interest + */ + public ModelExpressionTransformationIdentity(M model, Expression originalExpression, Expression transformedExpression, BitSet statesOfInterest) + { + this.model = model; + this.originalExpression = originalExpression; + this.transformedExpression = transformedExpression; + this.statesOfInterest = statesOfInterest; + } + + @Override + public M getOriginalModel() + { + return model; + } + + @Override + public M getTransformedModel() + { + return model; + } + + @Override + public StateValues projectToOriginalModel(StateValues svTransformedModel) + { + return svTransformedModel; + } + + @Override + public Expression getTransformedExpression() + { + return transformedExpression; + } + + @Override + public Expression getOriginalExpression() + { + return originalExpression; + } + + @Override + public BitSet getTransformedStatesOfInterest() + { + return statesOfInterest; + } + +}