import net.pterodactylus.sone.database.PostBuilder.PostCreated;
import net.pterodactylus.sone.database.PostReplyBuilder;
import net.pterodactylus.sone.database.PostReplyBuilder.PostReplyCreated;
-import net.pterodactylus.sone.database.memory.MemoryDatabase;
import net.pterodactylus.util.number.Numbers;
import net.pterodactylus.util.xml.SimpleXML;
import net.pterodactylus.util.xml.XML;
private static final Logger logger = Logger.getLogger(SoneParser.class.getName());
private static final int MAX_PROTOCOL_VERSION = 0;
- private final Core core;
-
- public SoneParser(Core core) {
- this.core = core;
- }
/**
* Parses a Sone from the given input stream and creates a new Sone from the
* @param soneInputStream
* The input stream to parse the Sone from
* @return The parsed Sone
- * @throws SoneException
- * if a parse error occurs, or the protocol is invalid
*/
- public Sone parseSone(Database database, Sone originalSone, InputStream soneInputStream) throws SoneException {
+ public Sone parseSone(Database database, Sone originalSone, InputStream soneInputStream) {
/* TODO - impose a size limit? */
Document document;
}
if (document == null) {
/* TODO - mark Sone as bad. */
- logger.log(Level.WARNING, String.format("Could not parse XML for Sone %s!", originalSone));
+ logger.log(Level.WARNING, String.format("Could not parse XML for Sone %s!", originalSone.getId()));
return null;
}
Optional<SimpleXML> soneXml = parseXml(originalSone, document);
if (!soneXml.isPresent()) {
- logger.log(Level.WARNING, String.format("XML for Sone %s can not be parsed!", originalSone));
+ logger.log(Level.WARNING, String.format("XML for Sone %s can not be parsed!", originalSone.getId()));
return null;
}
Optional<Integer> protocolVersion = parseProtocolVersion(soneXml.get());
if (protocolVersion.isPresent()) {
if (protocolVersion.get() < 0) {
- logger.log(Level.WARNING, String.format("Invalid protocol version: %d! Not parsing Sone.", protocolVersion));
+ logger.log(Level.WARNING, String.format("Invalid protocol version: %d! Not parsing Sone.", protocolVersion.get()));
return null;
}
if (protocolVersion.get() > MAX_PROTOCOL_VERSION) {
- logger.log(Level.WARNING, String.format("Unknown protocol version: %d! Not parsing Sone.", protocolVersion));
+ logger.log(Level.WARNING, String.format("Unknown protocol version: %d! Not parsing Sone.", protocolVersion.get()));
return null;
}
}
}
/* process avatar. */
- if (avatarId != null) {
- profile.setAvatar(core.getImage(avatarId).orNull());
- }
+ profile.setAvatar(fromNullable(avatarId));
/* okay, apparently everything was parsed correctly. Now import. */
sone.setProfile(profile);