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 ; }
Adds a base class to the current one . It adds also the base class cluster ids to the polymorphic cluster ids array .