blob: 0386f3cebd7d4d41829c1ec58f73befd107af14b [file] [log] [blame]
Constantin Ziesche857c7ab2020-02-25 11:24:51 +01001/*******************************************************************************
2* Copyright (c) 2020 Robert Bosch GmbH
3* Author: Constantin Ziesche (constantin.ziesche@bosch.com)
4*
5* This program and the accompanying materials are made available under the
6* terms of the Eclipse Public License 2.0 which is available at
7* http://www.eclipse.org/legal/epl-2.0
8*
9* SPDX-License-Identifier: EPL-2.0
10*******************************************************************************/
11using BaSyx.Models.Core.AssetAdministrationShell.References;
12using BaSyx.Models.Core.AssetAdministrationShell.Identification;
13using System.Runtime.Serialization;
14
Constantin Ziesche08215502020-09-21 19:08:32 +020015namespace BaSyx.Models.Core.AssetAdministrationShell.Generics
Constantin Ziesche857c7ab2020-02-25 11:24:51 +010016{
Constantin Ziesche310d2aa2020-03-25 11:48:26 +010017 /// <summary>
18 /// A relationship element is used to define a relationship between two referable elements.
19 /// </summary>
Constantin Ziesche857c7ab2020-02-25 11:24:51 +010020 public interface IRelationshipElement : ISubmodelElement
21 {
Constantin Ziesche310d2aa2020-03-25 11:48:26 +010022 /// <summary>
23 /// First element in the relationship taking the role of the subject.
24 /// </summary>
Constantin Ziesche857c7ab2020-02-25 11:24:51 +010025 [DataMember(EmitDefaultValue = false, IsRequired = false, Name = "first")]
26 IReference<IReferable> First { get; }
Constantin Ziesche310d2aa2020-03-25 11:48:26 +010027
28 /// <summary>
29 /// Second element in the relationship taking the role of the object.
30 /// </summary>
Constantin Ziesche857c7ab2020-02-25 11:24:51 +010031 [DataMember(EmitDefaultValue = false, IsRequired = false, Name = "second")]
32 IReference<IReferable> Second { get; }
33 }
34}