blob: 876b0a4287b3be0df0cf5c07817018997967b419 [file] [log] [blame]
/*******************************************************************************
* 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();
}