JNUSLib/src/de/mas/wiiu/jnus/implementations/woomy/WoomyMetaParser.java

68 lines
2.3 KiB
Java
Raw Normal View History

package de.mas.wiiu.jnus.implementations.woomy;
2016-12-12 21:01:12 +01:00
import java.io.InputStream;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import de.mas.wiiu.jnus.utils.XMLParser;
2016-12-12 21:01:12 +01:00
import lombok.extern.java.Log;
@Log
public final class WoomyMetaParser extends XMLParser {
2016-12-12 21:01:12 +01:00
private static final String WOOMY_METADATA_NAME = "name";
private static final String WOOMY_METADATA_ICON = "icon";
2016-12-12 21:01:12 +01:00
private static final String WOOMY_METADATA_ENTRIES = "entries";
private static final String WOOMY_METADATA_ENTRY_NAME = "name";
private static final String WOOMY_METADATA_ENTRY_FOLDER = "folder";
private static final String WOOMY_METADATA_ENTRY_ENTRIES = "entries";
2016-12-12 21:01:12 +01:00
/**
* Overwrite the default constructor to force the user to use the factory.
*/
private WoomyMetaParser() {
2016-12-12 21:01:12 +01:00
}
public static WoomyMeta parseMeta(InputStream data) {
XMLParser parser = new WoomyMetaParser();
String resultName = "";
int resultIcon = 0;
2016-12-12 21:01:12 +01:00
try {
parser.loadDocument(data);
} catch (Exception e) {
2016-12-12 21:01:12 +01:00
log.info("Error while loading the data into the WoomyMetaParser");
return null;
}
2016-12-12 21:01:12 +01:00
String name = parser.getValueOfElement(WOOMY_METADATA_NAME);
if (name != null && !name.isEmpty()) {
resultName = name;
2016-12-12 21:01:12 +01:00
}
2016-12-12 21:01:12 +01:00
String icon = parser.getValueOfElement(WOOMY_METADATA_ICON);
if (icon != null && !icon.isEmpty()) {
int icon_val = Integer.parseInt(icon);
resultIcon = icon_val;
2016-12-12 21:01:12 +01:00
}
WoomyMeta result = new WoomyMeta(resultName, resultIcon);
2016-12-12 21:01:12 +01:00
Node entries_node = parser.getNodeByValue(WOOMY_METADATA_ENTRIES);
2016-12-12 21:01:12 +01:00
NodeList entry_list = entries_node.getChildNodes();
for (int i = 0; i < entry_list.getLength(); i++) {
2016-12-12 21:01:12 +01:00
Node node = entry_list.item(i);
2016-12-12 21:01:12 +01:00
String folder = getAttributeValueFromNode(node, WOOMY_METADATA_ENTRY_FOLDER);
String entry_name = getAttributeValueFromNode(node, WOOMY_METADATA_ENTRY_NAME);
String entry_count = getAttributeValueFromNode(node, WOOMY_METADATA_ENTRY_ENTRIES);
int entry_count_val = Integer.parseInt(entry_count);
result.addEntry(entry_name, folder, entry_count_val);
}
2016-12-12 21:01:12 +01:00
return result;
}
}