package org.dresdenocl.essentialocl.standardlibrary;
import org.dresdenocl.modelinstancetype.types.IModelInstanceObject;
import org.dresdenocl.pivotmodel.Operation;
import org.dresdenocl.pivotmodel.Property;
/**
* A model element that can be used as a standard library element. Inherits from
* {@link OclAny} to support operations like "oclIsUndefined" on model types.
*
* @author Michael Thiele
*
*/
public interface OclModelInstanceObject extends OclAny {
/**
* Returns the adapted {@link IModelInstanceObject}.
*
* @return the adapted {@link IModelInstanceObject}
*/
IModelInstanceObject getModelInstanceObject();
/**
* {@inheritDoc}
*/
OclAny invokeOperation(Operation operation, OclAny... args);
/**
* Returns the property value that can be retrieved with the given property.
*
* @param property
* the property to call
* @return the property value that can be retrieved with the given property
*/
OclAny getProperty(Property property);
}