Class(ClassElement element, Library library)

Source

Class(ClassElement element, Library library) : super(element, library) {
  Package p = library.package;
  _modelType = new ElementType(_cls.type, this);

  _mixins = _cls.mixins
      .map((f) {
        Library lib = new Library(f.element.library, p);
        ElementType t =
            new ElementType(f, new ModelElement.from(f.element, lib));
        return t;
      })
      .where((mixin) => mixin != null)
      .toList(growable: false);

  if (_cls.supertype != null && _cls.supertype.element.supertype != null) {
    Library lib = package.findOrCreateLibraryFor(_cls.supertype.element);

    _supertype = new ElementType(
        _cls.supertype, new ModelElement.from(_cls.supertype.element, lib));
  }

  _interfaces = _cls.interfaces
      .map((f) {
        var lib = new Library(f.element.library, p);
        var t = new ElementType(f, new ModelElement.from(f.element, lib));
        var exclude = t.element.element.isPrivate;
        if (exclude) {
          return null;
        } else {
          return t;
        }
      })
      .where((it) => it != null)
      .toList(growable: false);
}