public DescribeAvailabilityZonesResult unmarshall(StaxUnmarshallerContext context) throws Exception { DescribeAvailabilityZonesResult describeAvailabilityZonesResult = new DescribeAvailabilityZonesResult(); int originalDepth = context.getCurrentDepth(); int targetDepth = originalDepth + 1; if (context.isStartOfDocument()) targetDepth += 1; while (true) { XMLEvent xmlEvent = context.nextEvent(); if (xmlEvent.isEndDocument()) return describeAvailabilityZonesResult; if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) { if (context.testExpression("availabilityZoneInfo", targetDepth)) { describeAvailabilityZonesResult.withAvailabilityZones(new ArrayList<AvailabilityZone>()); continue; } if (context.testExpression("availabilityZoneInfo/item", targetDepth)) { describeAvailabilityZonesResult.withAvailabilityZones(AvailabilityZoneStaxUnmarshaller.getInstance().unmarshall(context)); continue; } } else if (xmlEvent.isEndElement()) { if (context.getCurrentDepth() < originalDepth) { return describeAvailabilityZonesResult; } } } }
public DescribeAvailabilityZonesResult unmarshall(StaxUnmarshallerContext context) throws Exception { DescribeAvailabilityZonesResult describeAvailabilityZonesResult = new DescribeAvailabilityZonesResult(); int originalDepth = context.getCurrentDepth(); int targetDepth = originalDepth + 1; if (context.isStartOfDocument()) targetDepth += 1; while (true) { int xmlEvent = context.nextEvent(); if (xmlEvent == XmlPullParser.END_DOCUMENT) return describeAvailabilityZonesResult; if (xmlEvent == XmlPullParser.START_TAG) { if (context.testExpression("availabilityZoneInfo/item", targetDepth)) { describeAvailabilityZonesResult.getAvailabilityZones().add(AvailabilityZoneStaxUnmarshaller.getInstance().unmarshall(context)); continue; } } else if (xmlEvent == XmlPullParser.END_TAG) { if (context.getCurrentDepth() < originalDepth) { return describeAvailabilityZonesResult; } } } }
@Override public DescribeAvailabilityZonesResult describeAvailabilityZones(AmazonEC2Client ec2Client, DescribeAvailabilityZonesRequest describeAvailabilityZonesRequest) { List<AvailabilityZone> availabilityZones = new ArrayList<>(); List<String> requestedZoneNames = describeAvailabilityZonesRequest.getZoneNames(); // add all AZ if request is empty (this is AWS behavior) if (requestedZoneNames.isEmpty()) { requestedZoneNames.addAll(mockAvailabilityZones.keySet()); } for (String requestedZoneName : requestedZoneNames) { // ignore AZ name which does not exist (this is AWS behavior) MockAvailabilityZone mockAvailabilityZone = mockAvailabilityZones.get(requestedZoneName); if (mockAvailabilityZone != null) { availabilityZones.add(mockAvailabilityZone.toAwsObject()); } } DescribeAvailabilityZonesResult describeAvailabilityZonesResult = new DescribeAvailabilityZonesResult(); describeAvailabilityZonesResult.setAvailabilityZones(availabilityZones); return describeAvailabilityZonesResult; }
public DescribeAvailabilityZonesResult unmarshall(StaxUnmarshallerContext context) throws Exception { DescribeAvailabilityZonesResult describeAvailabilityZonesResult = new DescribeAvailabilityZonesResult(); int originalDepth = context.getCurrentDepth(); int targetDepth = originalDepth + 1; if (context.isStartOfDocument()) targetDepth += 1; while (true) { XMLEvent xmlEvent = context.nextEvent(); if (xmlEvent.isEndDocument()) return describeAvailabilityZonesResult; if (xmlEvent.isAttribute() || xmlEvent.isStartElement()) { if (context.testExpression("availabilityZoneInfo", targetDepth)) { describeAvailabilityZonesResult.withAvailabilityZones(new ArrayList<AvailabilityZone>()); continue; } if (context.testExpression("availabilityZoneInfo/item", targetDepth)) { describeAvailabilityZonesResult.withAvailabilityZones(AvailabilityZoneStaxUnmarshaller.getInstance().unmarshall(context)); continue; } } else if (xmlEvent.isEndElement()) { if (context.getCurrentDepth() < originalDepth) { return describeAvailabilityZonesResult; } } } }