static Principal[] reduce(Collection c){
  try {
    return reduce0((Principal[])c.toArray(new Principal[c.size()]));
  }
 catch (  ArrayStoreException e) {
    throw new IllegalArgumentException("element of collection is not a Principal");
  }
}

static Principal [ ] reduce ( Collection c ) { try { return reduce0 ( ( Principal [ ] ) c . toArray ( new Principal [ c . size ( ) ] ) ) ; } catch ( ArrayStoreException e ) { throw new IllegalArgumentException ( "element of collection is not a Principal" ) ; } }
verifies that all elements of the collection are instances of principal classes , and that there is at least one element , and returns an array of the elements , in arbitrary order , with duplicates removed .
