public SimpleFeature next() {
   try {
     return RetypingFeatureCollection.retype(delegate.next(), builder);
   } catch (IllegalAttributeException e) {
     throw new RuntimeException(e);
   }
 }
 public SimpleFeature next() throws IOException {
   try {
     current = delegate.next();
     retyped = RetypingFeatureCollection.retype(current, builder);
     return retyped;
   } catch (IllegalAttributeException e) {
     throw (IOException) new IOException("Error occurred while retyping feature").initCause(e);
   }
 }
 public SimpleFeature next()
     throws IOException, IllegalAttributeException, NoSuchElementException {
   return RetypingFeatureCollection.retype(delegate.next(), builder);
 }