X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FSoneParser.java;h=24b856fc20751767525f69627886069f3c84422f;hp=5851b1834959e2f83c6375f998b345803f21cb17;hb=00a434a23c9ea1e57c63d8a3c0fc4b09277af431;hpb=224be7a31fee673fa438cb02c4bb2105d01a52cc diff --git a/src/main/java/net/pterodactylus/sone/core/SoneParser.java b/src/main/java/net/pterodactylus/sone/core/SoneParser.java index 5851b18..24b856f 100644 --- a/src/main/java/net/pterodactylus/sone/core/SoneParser.java +++ b/src/main/java/net/pterodactylus/sone/core/SoneParser.java @@ -20,6 +20,8 @@ import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; import net.pterodactylus.sone.data.PostReply; import net.pterodactylus.sone.data.Profile; +import net.pterodactylus.sone.data.Profile.DuplicateField; +import net.pterodactylus.sone.data.Profile.EmptyFieldName; import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.database.PostBuilder; import net.pterodactylus.sone.database.PostReplyBuilder; @@ -27,6 +29,7 @@ import net.pterodactylus.sone.database.SoneBuilder; import net.pterodactylus.util.xml.SimpleXML; import net.pterodactylus.util.xml.XML; +import com.google.common.base.Optional; import org.w3c.dom.Document; /** @@ -36,7 +39,7 @@ import org.w3c.dom.Document; */ public class SoneParser { - private static final Logger logger = getLogger("Sone.Parser"); + private static final Logger logger = getLogger(SoneParser.class.getName()); private static final int MAX_PROTOCOL_VERSION = 0; private final Core core; @@ -150,8 +153,11 @@ public class SoneParser { } try { profile.addField(fieldName.trim()).setValue(fieldValue); - } catch (IllegalArgumentException iae1) { - logger.log(Level.WARNING, String.format("Duplicate field: %s", fieldName), iae1); + } catch (EmptyFieldName efn1) { + logger.log(Level.WARNING, "Empty field name!", efn1); + return null; + } catch (DuplicateField df1) { + logger.log(Level.WARNING, String.format("Duplicate field: %s", fieldName), df1); return null; } } @@ -261,10 +267,10 @@ public class SoneParser { logger.log(Level.WARNING, String.format("Downloaded Sone %s contains invalid album!", sone)); return null; } - Album parent = null; + Optional parent = Optional.absent(); if (parentId != null) { parent = core.getAlbum(parentId); - if (parent == null) { + if (!parent.isPresent()) { logger.log(Level.WARNING, String.format("Downloaded Sone %s has album with invalid parent!", sone)); return null; } @@ -277,8 +283,8 @@ public class SoneParser { .setTitle(title) .setDescription(description) .update(); - if (parent != null) { - parent.addAlbum(album); + if (parent.isPresent()) { + parent.get().addAlbum(album); } else { topLevelAlbums.add(album); }