blob: af0cf1e98cc3ea189aae65cd87f2621450b9f0e9 [file] [log] [blame]
package org.eclipse.basyx.aas.manager.api;
import java.util.Collection;
import java.util.Map;
import org.eclipse.basyx.aas.metamodel.api.IAssetAdministrationShell;
import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell;
import org.eclipse.basyx.submodel.metamodel.api.ISubModel;
import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier;
import org.eclipse.basyx.submodel.metamodel.map.SubModel;
/**
* Technology independent interface to technology specific Asset Administration Shell (AAS) manager class.
*
* @author schoeffler, ziesche, kuhn
*
*/
public interface IAssetAdministrationShellManager {
/**
* Retrieve an AAS based on its ID
*/
public IAssetAdministrationShell retrieveAAS(IIdentifier aasId) throws Exception;
/**
* Retrieve all local AAS from the technology layer
*/
public Collection<IAssetAdministrationShell> retrieveAASAll();
/**
* Creates an AAS on a remote server.
*/
@Deprecated
void createAAS(AssetAdministrationShell aas, IIdentifier aasId, String endpoint);
/**
* Creates an AAS on a remote server
*
* @param aas
* @param aasId
* @param endpoint
*/
void createAAS(AssetAdministrationShell aas, String endpoint);
/**
* Unlink an AAS from the system
*/
void deleteAAS(IIdentifier id) throws Exception;
/**
* Retrieves a submodel
*/
ISubModel retrieveSubModel(IIdentifier aasId, IIdentifier subModelId);
/**
* Creates a submodel on a remote server. Assumes that the AAS is already
* registered in the directory
*/
void createSubModel(IIdentifier aasId, SubModel submodel);
/**
* Deletes a submodel on a remote server and removes its registry entry
*
* @param aasId
* @param submodelId
*/
void deleteSubModel(IIdentifier aasId, IIdentifier submodelId);
/**
* Retrieves all submodels in a specific AAS
*/
Map<String, ISubModel> retrieveSubmodels(IIdentifier aasId);
}