public void add(final Drawable dobj) { if (dobj instanceof Composite) { Composite cmplx = (Composite) dobj; Primitive[] primes = null; if (cmplx.getCategory() != null) { super.add(cmplx); // BufForDrawables.add(Composite) ensureNonNullShadowBuf(); primes = cmplx.getPrimitives(); for (int idx = 0; idx < primes.length; idx++) shadowbuf.add(primes[idx]); } else { ensureNonNullShadowBuf(); primes = cmplx.getPrimitives(); for (int idx = 0; idx < primes.length; idx++) { super.add(primes[idx]); // BufForDrawables.add(Primitive) shadowbuf.add(primes[idx]); } } } else { // if ( dobj instanceof Primitive ) Primitive prime = (Primitive) dobj; super.add(prime); // BufForDrawables.add(Primitive) ensureNonNullShadowBuf(); shadowbuf.add(prime); } }