diff options
Diffstat (limited to 'host/migration/src/RowParser.java')
-rw-r--r-- | host/migration/src/RowParser.java | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/host/migration/src/RowParser.java b/host/migration/src/RowParser.java new file mode 100644 index 0000000..e1c0de7 --- /dev/null +++ b/host/migration/src/RowParser.java @@ -0,0 +1,50 @@ +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * Created by adnan on 11/17/15. + */ +public class RowParser { + private static final String REGEX = "=(.+)"; + private static Pattern p = Pattern.compile(REGEX); + + public static Setting parseAndPopulate(boolean fromCursor, String line) { + Setting setting = new Setting(); + String[] splitStrings = line.split(","); + for (int i = 0; i < 4; i++) { + Matcher matcher = p.matcher(splitStrings[i]); + while (matcher.find()) { + String value = matcher.group(0).replace("=", "").trim(); + switch (i) { + case 0: + setting.setKey(value); + break; + case 1: + //Seriously? + if (fromCursor) { + setting.setKeyType( + Setting.SettingType.mapNumericToType( + Integer.parseInt(value))); + } else { + setting.setKeyType(value); + } + break; + case 2: + setting.setValue(value); + break; + case 3: + //Who the fuck decided to do this? + if (fromCursor) { + setting.setValueType( + Setting.SettingType.mapNumericToType( + Integer.parseInt(value))); + } else { + setting.setValueType(value); + } + break; + } + } + } + return setting; + } +} |