import java.util.Random; public class DrawningEntities { public T[] _entities; public U[] _illuminator; int entitiesCount = 0; int illumCount = 0; String indx; String indy; public DrawningEntities(int countE,int countI){ _entities = (T[]) new EntityPlane[countE]; _illuminator = (U[]) new IDrawningIlluminator[countI]; } public int Insert(T plane){ if(entitiesCount < _entities.length){ _entities[entitiesCount] = plane; entitiesCount++; return entitiesCount - 1; } return -1; } public int Insert(U illuminator){ if(illumCount < _illuminator.length){ _illuminator[illumCount] = illuminator; illumCount++; return illumCount - 1; } return -1; } public void SetIndexs(int ind1, int ind2) { indx=Integer.toString(ind1); indy=Integer.toString(ind2); } public DrawningPlane CreatePlane(){ Random random = new Random(); int indEnt = 0; int indIllum = 0; if(entitiesCount - 1 != 0 & illumCount - 1 != 0){ indEnt = random.nextInt(0,entitiesCount - 1); indIllum = random.nextInt(0, illumCount - 1); } T plane = (T)_entities[indEnt]; U illum = (U)_illuminator[indIllum]; SetIndexs(indEnt,indIllum); if(plane instanceof EntityAirbus){ return new DrawningAirbus(plane,illum); } return new DrawningPlane(plane,illum); } }