// Copyright (c) 2012-2021 Wojciech Figat. All rights reserved.
using System;
using System.Collections.Generic;
namespace Flax.Build.Bindings
{
///
/// The native class/structure information for bindings generator.
///
public abstract class ClassStructInfo : ApiTypeInfo
{
public AccessLevel Access;
public AccessLevel BaseTypeInheritance;
public TypeInfo BaseType;
public List Interfaces; // Optional
public List InterfaceNames; // Optional
public override void Init(Builder.BuildData buildData)
{
base.Init(buildData);
if (Interfaces == null && InterfaceNames != null && InterfaceNames.Count != 0)
{
Interfaces = new List();
for (var i = 0; i < InterfaceNames.Count; i++)
{
var interfaceName = InterfaceNames[i];
var apiTypeInfo = BindingsGenerator.FindApiTypeInfo(buildData, interfaceName, this);
if (apiTypeInfo is InterfaceInfo interfaceInfo)
{
Interfaces.Add(interfaceInfo);
}
}
if (Interfaces.Count == 0)
Interfaces = null;
}
}
}
}