blob: 08848126a58834d7bf13d2a5d8bd8dbe347665d6 [file] [log] [blame]
/**
* <copyright>
*
* Copyright (c) 2012 E.D.Willink 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:
* E.D.Willink - Initial API and implementation
*
* </copyright>
*************************************************************************
* This code is 100% auto-generated
* from: pivot
* using: org.eclipse.ocl.examples.codegen.tables.model2tables.mtl
*
* Do not edit it.
*/
package org.eclipse.ocl.examples.pivot.bodies;
import org.eclipse.ocl.examples.domain.elements.DomainCollectionType;
import org.eclipse.ocl.examples.domain.elements.DomainStandardLibrary;
import org.eclipse.ocl.examples.domain.elements.DomainType;
import org.eclipse.ocl.examples.domain.evaluation.DomainEvaluator;
import org.eclipse.ocl.examples.domain.evaluation.InvalidValueException;
import org.eclipse.ocl.examples.domain.library.AbstractUnaryOperation;
import org.eclipse.ocl.examples.domain.library.LibraryBinaryOperation;
import org.eclipse.ocl.examples.domain.library.LibraryProperty;
import org.eclipse.ocl.examples.domain.library.LibraryUnaryOperation;
import org.eclipse.ocl.examples.domain.values.Value;
import org.eclipse.ocl.examples.domain.values.ValueFactory;
import org.eclipse.ocl.examples.library.executor.ExecutorOperation;
import org.eclipse.ocl.examples.library.executor.ExecutorProperty;
import org.eclipse.ocl.examples.library.executor.ExecutorType;
import org.eclipse.ocl.examples.library.oclstdlib.OCLstdlibTables;
import org.eclipse.ocl.examples.pivot.PivotTables;
/**
* OperationCallExpBodies provides the Java implementation bodies of OCL-defined OperationCallExp operations and properties.
*/
@SuppressWarnings("nls")
public class OperationCallExpBodies
{
/**
* Implementation of the OperationCallExp 'ArgumentCount' invariant.
*/
public static class _invariant_ArgumentCount extends AbstractUnaryOperation
{
public static _invariant_ArgumentCount INSTANCE = new _invariant_ArgumentCount();
/*
argument->size() = referredOperation.ownedParameter->size()
*/
public Value evaluate(DomainEvaluator evaluator, DomainType returnType, final Value self) throws InvalidValueException {
final ValueFactory valueFactory = evaluator.getValueFactory();
final DomainStandardLibrary standardLibrary = valueFactory.getStandardLibrary();
final ExecutorType T_Boolean = OCLstdlibTables.Types._Boolean;
final ExecutorOperation O_Real__eq_ = OCLstdlibTables.Operations._Real___eq_;
final ExecutorType T_Integer = OCLstdlibTables.Types._Integer;
final ExecutorOperation O_Collection_size = OCLstdlibTables.Operations._Collection__size;
final ExecutorType T_Pivot_ecore__pivot__OclExpression = PivotTables.Types._OclExpression;
final DomainCollectionType T_OrderedSet_Pivot_ecore__pivot__OclExpression_ = standardLibrary.getOrderedSetType(T_Pivot_ecore__pivot__OclExpression);
final ExecutorProperty P_OperationCallExp_argument = PivotTables.Properties._OperationCallExp__argument;
final LibraryProperty IP_OperationCallExp_argument = P_OperationCallExp_argument.getImplementation();
final ExecutorType T_Pivot_ecore__pivot__Parameter = PivotTables.Types._Parameter;
final DomainCollectionType T_OrderedSet_Pivot_ecore__pivot__Parameter_ = standardLibrary.getOrderedSetType(T_Pivot_ecore__pivot__Parameter);
final ExecutorProperty P_Operation_ownedParameter = PivotTables.Properties._Operation__ownedParameter;
final LibraryProperty IP_Operation_ownedParameter = P_Operation_ownedParameter.getImplementation();
final ExecutorType T_Pivot_ecore__pivot__Operation = PivotTables.Types._Operation;
final ExecutorProperty P_OperationCallExp_referredOperation = PivotTables.Properties._OperationCallExp__referredOperation;
final LibraryProperty IP_OperationCallExp_referredOperation = P_OperationCallExp_referredOperation.getImplementation();
Value A_symbol_368 = IP_OperationCallExp_argument.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__OclExpression_, self, P_OperationCallExp_argument);
DomainType static_A_symbol_369 = valueFactory.typeOf(A_symbol_368);
LibraryUnaryOperation dynamic_A_symbol_369 = (LibraryUnaryOperation)static_A_symbol_369.lookupImplementation(standardLibrary, O_Collection_size);
Value A_symbol_369 = dynamic_A_symbol_369.evaluate(evaluator, T_Integer, A_symbol_368);
Value A_symbol_370 = IP_OperationCallExp_referredOperation.evaluate(evaluator, T_Pivot_ecore__pivot__Operation, self, P_OperationCallExp_referredOperation);
Value A_symbol_371 = IP_Operation_ownedParameter.evaluate(evaluator, T_OrderedSet_Pivot_ecore__pivot__Parameter_, A_symbol_370, P_Operation_ownedParameter);
DomainType static_A_symbol_372 = valueFactory.typeOf(A_symbol_371);
LibraryUnaryOperation dynamic_A_symbol_372 = (LibraryUnaryOperation)static_A_symbol_372.lookupImplementation(standardLibrary, O_Collection_size);
Value A_symbol_372 = dynamic_A_symbol_372.evaluate(evaluator, T_Integer, A_symbol_371);
DomainType static_A_symbol_373 = valueFactory.typeOf(A_symbol_369, A_symbol_372);
LibraryBinaryOperation dynamic_A_symbol_373 = (LibraryBinaryOperation)static_A_symbol_373.lookupImplementation(standardLibrary, O_Real__eq_);
Value A_symbol_373 = dynamic_A_symbol_373.evaluate(evaluator, T_Boolean, A_symbol_369, A_symbol_372);
return A_symbol_373;
}
}
}