code: private OClass addBaseClasses(final OClass iBaseClass) {
      if (baseClasses == null)
        baseClasses = new ArrayList<OClass>();
  
      if (baseClasses.contains(iBaseClass))
        return this;
  
      baseClasses.add(iBaseClass);
  
      // ADD CLUSTER IDS OF BASE CLASS TO THIS CLASS AND ALL SUPER-CLASSES
      OClassImpl currentClass = this;
      while (currentClass != null) {
        currentClass.addPolymorphicClusterIds((OClassImpl) iBaseClass);
        currentClass = (OClassImpl) currentClass.getSuperClass();
      }
  
      return this;
    }
docs: Adds a base class to the current one. It adds also the base class cluster ids to the polymorphic cluster ids array.
  
  @param iBaseClass
  The base class to add.