| package org.eclipse.basyx.submodel.restapi.api; |
| |
| import java.util.Collection; |
| |
| import org.eclipse.basyx.submodel.metamodel.api.ISubModel; |
| import org.eclipse.basyx.submodel.metamodel.api.submodelelement.ISubmodelElement; |
| import org.eclipse.basyx.submodel.metamodel.api.submodelelement.operation.IOperation; |
| |
| /** |
| * Specifies overall Submodel API |
| * |
| * @author schnicke |
| * |
| */ |
| public interface ISubmodelAPI { |
| |
| /** |
| * Retrieves the underlying submodel |
| * |
| * @return the submodel |
| */ |
| public ISubModel getSubmodel(); |
| |
| /** |
| * Adds a submodelElement to the submodel |
| * |
| * @param elem |
| * the submodelElement to be added |
| */ |
| public void addSubmodelElement(ISubmodelElement elem); |
| |
| /** |
| * Adds a submodelElement to the submodel |
| * |
| * @param idShortPath |
| * the idShort path to the submodelElement |
| * @param elem |
| * the submodelElement to be added |
| */ |
| public void addSubmodelElement(String idShortPath, ISubmodelElement elem); |
| |
| /** |
| * Retrieves a submodelElement |
| * |
| * @param idShortPath |
| * the idShort Path to the submodelElement |
| * @return the submodelElement |
| */ |
| public ISubmodelElement getSubmodelElement(String idShortPath); |
| |
| /** |
| * Removes a submodelElement from the submodel |
| * |
| * @param idShortPath |
| * the idShort path to the submodelElement, which is to be removed |
| */ |
| public void deleteSubmodelElement(String idShortPath); |
| |
| |
| /** |
| * Helper function for quick access of operations |
| * |
| * @return all operations contained by the submodel |
| */ |
| public Collection<IOperation> getOperations(); |
| |
| /** |
| * Helper function for quick access of submodelElements |
| * |
| * @return all submodelElements contained by the submodel |
| */ |
| public Collection<ISubmodelElement> getSubmodelElements(); |
| |
| /** |
| * Updates the value of a submodelElement |
| * |
| * @param idShortPath |
| * the idShort path to the submodelElement |
| * @param newValue |
| * new value of the submodelElement |
| */ |
| public void updateSubmodelElement(String idShortPath, Object newValue); |
| |
| /** |
| * Retrieves the value of a submodelElement |
| * |
| * @param idShortPath |
| * the idShort path to the submodelElement |
| * @return submodelElement value |
| */ |
| public Object getSubmodelElementValue(String idShortPath); |
| |
| |
| /** |
| * Invokes an operation |
| * |
| * @param idShortPath |
| * the idShort path to the operation |
| * @param params |
| * to be passed to the operation |
| * @return the result of the operation |
| */ |
| public Object invokeOperation(String idShortPath, Object... params); |
| |
| |
| /** |
| * Invoke an operation asynchronously |
| * |
| * @param idShortPath |
| * the idShort path to the operation |
| * @param params |
| * to be passed to the operation |
| * @return the requestId of the invocation |
| */ |
| public Object invokeAsync(String idShortPath, Object... params); |
| |
| /** |
| * Gets the result of an asynchronously invoked operation |
| * |
| * @param idShort |
| * of the operation |
| * @param requestId |
| * the requestId of the invocation |
| * @return the result of the Operation or a Message that it is not finished yet |
| */ |
| public Object getOperationResult(String idShort, String requestId); |
| |
| } |