private static Object parse(InputStream in, AwsConfig awsConfig) { final DocumentBuilder builder; try { builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = builder.parse(in); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); Util.streamXML(doc, baos); final byte[] bytes = baos.toByteArray(); // final ByteArrayInputStream bais = new ByteArrayInputStream(bytes); // Reader reader = new BufferedReader(new InputStreamReader(bais)); // int n; // char[] buffer = new char[1024]; // Writer writer = new StringWriter(); // while ((n = reader.read(buffer)) != -1) { // writer.write(buffer, 0, n); // } // System.out.println(writer.toString()); Element element = doc.getDocumentElement(); NodeHolder elementNodeHolder = new NodeHolder(element); List<String> names = new ArrayList<String>(); List<NodeHolder> reservationset = elementNodeHolder.getSubNodes("reservationset"); for (NodeHolder reservation : reservationset) { List<NodeHolder> items = reservation.getSubNodes("item"); for (NodeHolder item : items) { NodeHolder instancesset = item.getSub("instancesset"); names.addAll(instancesset.getList("privateipaddress", awsConfig)); } } return names; } catch (Exception e) { logger.log(Level.WARNING, e.getMessage(), e); } return new ArrayList<String>(); }
private boolean applyFilter(Node node, String filter, String set, String filterField) { boolean passed = (nullOrEmpty(filter)); if (!passed) { for (NodeHolder group : new NodeHolder(node).getSub(set).getSubNodes("item")) { NodeHolder nh = group.getSub(filterField); if (nh != null && nh.getNode().getFirstChild() != null && filter.equals(nh.getNode().getFirstChild().getNodeValue())) { passed = true; } } } return passed; }
private boolean keyEquals(String keyExpected, NodeHolder group) { NodeHolder nhKey = group.getSub("key"); return nhKey != null && nhKey.getNode().getFirstChild() != null && keyExpected.equals(nhKey.getNode().getFirstChild().getNodeValue()); }
private boolean valueEquals(String valueExpected, NodeHolder group) { NodeHolder nhValue = group.getSub("value"); return nhValue != null && nhValue.getNode().getFirstChild() != null && valueExpected.equals(nhValue.getNode().getFirstChild().getNodeValue()); }