| /******************************************************************************* |
| * Copyright (C) 2021 the Eclipse BaSyx Authors |
| * |
| * This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License 2.0 |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| ******************************************************************************/ |
| package org.eclipse.basyx.aas.metamodel.api; |
| |
| import java.util.Collection; |
| import java.util.Map; |
| |
| import org.eclipse.basyx.aas.metamodel.api.parts.IConceptDictionary; |
| import org.eclipse.basyx.aas.metamodel.api.parts.IView; |
| import org.eclipse.basyx.aas.metamodel.api.parts.asset.IAsset; |
| import org.eclipse.basyx.aas.metamodel.api.security.ISecurity; |
| import org.eclipse.basyx.submodel.metamodel.api.IElement; |
| import org.eclipse.basyx.submodel.metamodel.api.ISubModel; |
| import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier; |
| import org.eclipse.basyx.submodel.metamodel.api.qualifier.IHasDataSpecification; |
| import org.eclipse.basyx.submodel.metamodel.api.qualifier.IIdentifiable; |
| import org.eclipse.basyx.submodel.metamodel.api.reference.IReference; |
| import org.eclipse.basyx.submodel.metamodel.map.SubModel; |
| |
| /** |
| * Asset Administration Shell (AAS) interface |
| * |
| * @author kuhn, schnicke |
| * |
| */ |
| |
| public interface IAssetAdministrationShell extends IElement, IIdentifiable, IHasDataSpecification { |
| /** |
| * Return all registered submodels of this AAS |
| * |
| * @return IdShort -> ISubmodel |
| */ |
| public Map<String, ISubModel> getSubModels(); |
| |
| /** |
| * Return the references to all registered submodels |
| * |
| * @return |
| */ |
| public Collection<IReference> getSubmodelReferences(); |
| |
| /** |
| * Add a submodel to the AAS |
| * |
| * @param subModel |
| * The added sub model |
| */ |
| public void addSubModel(SubModel subModel); |
| |
| /** |
| * Removes a submodel from the AAS |
| * |
| * @param id |
| */ |
| public void removeSubmodel(IIdentifier id); |
| |
| /** |
| * Gets a submodel from the AAS |
| * |
| * @param id |
| */ |
| public ISubModel getSubmodel(IIdentifier id); |
| |
| /** |
| * Gets the definition of the security relevant aspects of the AAS. |
| * |
| * @return |
| */ |
| public ISecurity getSecurity(); |
| |
| /** |
| * Gets the reference to the AAS the AAS was derived from. |
| * |
| * @return |
| */ |
| public IReference getDerivedFrom(); |
| |
| /** |
| * Gets the asset the AAS is representing. |
| * |
| * @return |
| */ |
| public IAsset getAsset(); |
| |
| /** |
| * Gets the reference to the asset the AAS is representing. |
| * |
| * @return |
| */ |
| public IReference getAssetReference(); |
| |
| |
| /** |
| * Gets the views associated with the AAS. <br/> |
| * If needed stakeholder specific views can be defined on the elements of the |
| * AAS. |
| * |
| * @return |
| */ |
| public Collection<IView> getViews(); |
| |
| /** |
| * Gets the concept dictionaries associated with the AAS. <br/> |
| * An AAS may have one or more concept dictionaries assigned to it. The concept |
| * dictionaries typically contain only descriptions for elements that are also |
| * used within the AAS (via HasSemantics). |
| * |
| * @return |
| */ |
| public Collection<IConceptDictionary> getConceptDictionary(); |
| } |