/** * Sets a metrics configuration filter and returns {@link MetricsConfiguration} * object for method chaining. The metrics configuration will only include objects that meet the filter's criteria. * * The filter may be omitted to get metrics for the entire bucket. */ public MetricsConfiguration withFilter(MetricsFilter filter) { setFilter(filter); return this; } }
@Override public void accept(MetricsPredicateVisitor metricsPredicateVisitor) { metricsPredicateVisitor.visit(this); } }
/** * Sets the identifier used to represent a metrics configuration * and return this object for method chaining. */ public MetricsConfiguration withId(String id) { setId(id); return this; }
if (in("MetricsConfiguration")) { if (name.equals("Id")) { configuration.setId(getText()); } else if (name.equals("Filter")) { configuration.setFilter(filter); filter = null; filter.setPredicate(new MetricsPrefixPredicate(getText())); } else if (name.equals("Tag")) { filter.setPredicate(new MetricsTagPredicate(new Tag(currentTagKey, currentTagValue))); currentTagKey = null; currentTagValue = null; } else if (name.equals("And")) { filter.setPredicate(new MetricsAndOperator(andOperandsList)); andOperandsList = null; andOperandsList.add(new MetricsPrefixPredicate(getText())); } else if (name.equals("Tag")) { andOperandsList.add(new MetricsTagPredicate( new Tag(currentTagKey, currentTagValue))); currentTagKey = null;
@Override public void visit(MetricsAndOperator metricsAndOperator) { xml.start("And"); for (MetricsFilterPredicate predicate : metricsAndOperator.getOperands()) { predicate.accept(this); } xml.end(); } }
@Override protected void doStartElement( String uri, String name, String qName, Attributes attrs) { if (in("ListMetricsConfigurationsResult")) { if (name.equals("MetricsConfiguration")) { currentConfiguration = new MetricsConfiguration(); } } else if (in("ListMetricsConfigurationsResult", "MetricsConfiguration")) { if (name.equals("Filter")) { currentFilter = new MetricsFilter(); } } else if (in("ListMetricsConfigurationsResult", "MetricsConfiguration", "Filter")) { if (name.equals("And")) { andOperandsList = new ArrayList<MetricsFilterPredicate>(); } } }
@Override public void visit(MetricsTagPredicate metricsTagPredicate) { writeTag(xml, metricsTagPredicate.getTag()); }
@Override public void visit(MetricsPrefixPredicate metricsPrefixPredicate) { writePrefix(xml, metricsPrefixPredicate.getPrefix()); }
/** * Sets the {@link MetricsFilterPredicate} to be used when evaluating a metrics filter * and returns the {@link MetricsFilter} object for method chaining. * * The predicate should be one of {@link MetricsPrefixPredicate}, {@link MetricsTagPredicate} * or {@link MetricsAndOperator}. */ public MetricsFilter withPredicate(MetricsFilterPredicate predicate) { setPredicate(predicate); return this; } }
private void writeMetricsFilter(XmlWriter xml, MetricsFilter filter) { if (filter == null) { return; } xml.start("Filter"); writeMetricsFilterPredicate(xml, filter.getPredicate()); xml.end(); }
@Override public SetBucketMetricsConfigurationResult setBucketMetricsConfiguration( SetBucketMetricsConfigurationRequest setBucketMetricsConfigurationRequest) throws AmazonServiceException, SdkClientException { setBucketMetricsConfigurationRequest = beforeClientExecution(setBucketMetricsConfigurationRequest); new SetBucketMetricsConfigurationRequest(); rejectNull(setBucketMetricsConfigurationRequest, "The request cannot be null"); final String bucketName = assertStringNotEmpty(setBucketMetricsConfigurationRequest.getBucketName(), "BucketName"); final MetricsConfiguration metricsConfiguration = assertNotNull( setBucketMetricsConfigurationRequest.getMetricsConfiguration(), "Metrics Configuration"); final String id = assertNotNull(metricsConfiguration.getId(), "Metrics Id"); Request<SetBucketMetricsConfigurationRequest> request = createRequest(bucketName, null, setBucketMetricsConfigurationRequest, HttpMethodName.PUT); request.addHandlerContext(HandlerContextKey.OPERATION_NAME, "PutBucketMetricsConfiguration"); request.addParameter("metrics", null); request.addParameter("id", id); byte[] bytes = bucketConfigurationXmlFactory.convertToXmlByteArray(metricsConfiguration); request.addHeader("Content-Length", String.valueOf(bytes.length)); request.addHeader("Content-Type", "application/xml"); request.setContent(new ByteArrayInputStream(bytes)); return invoke(request, new Unmarshallers.SetBucketMetricsConfigurationUnmarshaller(), bucketName, null); }
private void writeMetricsFilterPredicate(XmlWriter xml, MetricsFilterPredicate predicate) { if (predicate == null) { return; } predicate.accept(new MetricsPredicateVisitorImpl(xml)); }
@Override protected void doStartElement( String uri, String name, String qName, Attributes attrs) { if (in("MetricsConfiguration")) { if (name.equals("Filter")) { filter = new MetricsFilter(); } } else if (in("MetricsConfiguration", "Filter")) { if (name.equals("And")) { andOperandsList = new ArrayList<MetricsFilterPredicate>(); } } }
currentConfiguration.setId(getText()); } else if (name.equals("Filter")) { currentConfiguration.setFilter(currentFilter); currentFilter = null; currentFilter.setPredicate(new MetricsPrefixPredicate(getText())); } else if (name.equals("Tag")) { currentFilter.setPredicate(new MetricsTagPredicate(new Tag(currentTagKey, currentTagValue))); currentTagKey = null; currentTagValue = null; } else if (name.equals("And")) { currentFilter.setPredicate(new MetricsAndOperator(andOperandsList)); andOperandsList = null; andOperandsList.add(new MetricsPrefixPredicate(getText())); } else if (name.equals("Tag")) { andOperandsList.add(new MetricsTagPredicate(new Tag(currentTagKey, currentTagValue))); currentTagKey = null; currentTagValue = null;
@Override public void visit(MetricsAndOperator metricsAndOperator) { xml.start("And"); for (MetricsFilterPredicate predicate : metricsAndOperator.getOperands()) { predicate.accept(this); } xml.end(); } }
@Override public void visit(MetricsTagPredicate metricsTagPredicate) { writeTag(xml, metricsTagPredicate.getTag()); }
@Override public void visit(MetricsPrefixPredicate metricsPrefixPredicate) { writePrefix(xml, metricsPrefixPredicate.getPrefix()); }
@Override public void accept(MetricsPredicateVisitor metricsPredicateVisitor) { metricsPredicateVisitor.visit(this); } }
@Override public void accept(MetricsPredicateVisitor metricsPredicateVisitor) { metricsPredicateVisitor.visit(this); } }