public <R extends MediaMultipart> R parse(ParseSource parseSource, InputProperties inputProperties, Class<R> resultClass) throws ServiceException { Preconditions.checkArgument( MediaMultipart.class.isAssignableFrom(resultClass), "Result class must extend " + MediaMultipart.class.getName()); InputStream inputStream = parseSource.getInputStream(); Preconditions.checkNotNull(inputStream, "Parse source must be stream-based"); InputProperties prevProperties = null; try { prevProperties = GDataContentHandler.setThreadInputProperties(inputProperties); MediaMultipart result = createMultipart(parseSource, inputProperties); return resultClass.cast(result); } catch (MessagingException me) { throw new InvalidEntryException(me.getMessage(), me); } finally { GDataContentHandler.setThreadInputProperties(prevProperties); } } }
public <R extends MediaMultipart> R parse(ParseSource parseSource, InputProperties inputProperties, Class<R> resultClass) throws ServiceException { Preconditions.checkArgument( MediaMultipart.class.isAssignableFrom(resultClass), "Result class must extend " + MediaMultipart.class.getName()); InputStream inputStream = parseSource.getInputStream(); Preconditions.checkNotNull(inputStream, "Parse source must be stream-based"); InputProperties prevProperties = null; try { prevProperties = GDataContentHandler.setThreadInputProperties(inputProperties); MediaMultipart result = createMultipart(parseSource, inputProperties); return resultClass.cast(result); } catch (MessagingException me) { throw new InvalidEntryException(me.getMessage(), me); } finally { GDataContentHandler.setThreadInputProperties(prevProperties); } } }