public List<AndroidSDK> getSDKList() { if (buffer == null || buffer.length() < 1) return null; StringReader reader = new StringReader(buffer.toString()); BufferedReader read = new BufferedReader(reader); ArrayList<AndroidSDK> sdkList = new ArrayList<AndroidSDK>(); String line = null; try { AndroidSDK sdk = null; while ((line = read.readLine()) != null) { final int scolIdx = line.indexOf(':'); if (scolIdx < 0) { continue; } String[] pair = new String[2]; pair[0] = line.substring(0, scolIdx).trim(); pair[1] = line.substring(scolIdx + 1).trim(); if ("id".equalsIgnoreCase(pair[0])) { sdk = new AndroidSDK(); sdkList.add(sdk); int vIndex = pair[1].indexOf("or"); sdk.setId(pair[1].substring(vIndex + "or".length()).replace("\"", "")); } else if ("Type".equalsIgnoreCase(pair[0])) { Assert.isNotNull(sdk); sdk.setType(pair[1].trim()); } else if ("API level".equalsIgnoreCase(pair[0])) { Assert.isNotNull(sdk); sdk.setApiLevel(Integer.parseInt(pair[1])); } } } catch (IOException e) { AndroidCore.log(IStatus.ERROR, "Error parsing the SDK list", e); } finally { try { read.close(); reader.close(); } catch (IOException e) { // ignored } } return sdkList; }