blob: 4daafd26a1cc30281a7686e75fca7378f09263c8 [file] [log] [blame]
/**
* This file was copied and re-packaged automatically by
* org.eclipse.ocl.examples.build.GenerateAutoCSModels.mwe2
* from
* ..\..\..\org.eclipse.qvtd\plugins\org.eclipse.qvtd.runtime\src\org\eclipse\qvtd\runtime\evaluation\ObjectManager.java
*
* Do not edit this file.
*/
/*******************************************************************************
* Copyright (c) 2013, 2015 Willink Transformations 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
*******************************************************************************/
package org.eclipse.ocl.pivot.evaluation.tx;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
/**
* An ObjectManager supervises the state of relevant properties in objects used by a mapping invocation.
*
* getting should be invoked as a pre-access guard to cause the invocation to fail if a not-ready property is accessed.
*
* assigned should be invoked to invocation that a property whose access is guarded is now assigned.
*
* @since 1.1
* @noimplement clients should derive from AbstractObjectManager
*/
public interface ObjectManager extends ExecutionVisitable
{
/**
* Mark the eFeature of eObject as assigned with an ecoreValue. Ordered child assignments may be ordered by the childKey.
*/
void assigned(@NonNull Object eObject, /*@NonNull*/ EStructuralFeature eFeature, @Nullable Object ecoreValue, @Nullable Object childKey);
/**
* Mark the eFeature of eObject as assigned with an ecoreValue by an invocation. Ordered child assignments may be ordered by the childKey.
*/
void assigned(Invocation.@NonNull Incremental invocation, @NonNull Object eObject, /*@NonNull*/ EStructuralFeature eFeature, @Nullable Object ecoreValue, @Nullable Object childKey);
/**
* Identify the creation of eObject by the current mapping invocation.
*/
void created(Invocation.@NonNull Incremental invocation, @NonNull Object eObject);
@NonNull Iterable<@NonNull ? extends Object> getObjects();
@NonNull Iterable<@NonNull ? extends SlotState> getSlotStates(@NonNull Object object);
/**
* Throw an InvocationFailedException if the eFeature of eObject has not yet been assigned.
* If isOpposite, the eFeature's opposite is to be be assessed.
*/
void getting(@NonNull Object eObject, /*@NonNull*/ EStructuralFeature eFeature, boolean isOpposite) throws InvocationFailedException;
/**
* Identify that the read of eFeature of eObject return ecoreValue.
*/
void got(Invocation.@NonNull Incremental invocation, @NonNull Object eObject, /*@NonNull*/ EStructuralFeature eFeature, @Nullable Object ecoreValue);
void unblock(@NonNull Invocation anInvocation);
}