@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 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); }
/** * 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; } }
/** * 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; }
@Override public SetBucketMetricsConfigurationResult setBucketMetricsConfiguration( SetBucketMetricsConfigurationRequest setBucketMetricsConfigurationRequest) throws AmazonServiceException, AmazonClientException { new SetBucketMetricsConfigurationRequest(); assertParameterNotNull(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"); final Request<SetBucketMetricsConfigurationRequest> request = createRequest(bucketName, null, setBucketMetricsConfigurationRequest, HttpMethodName.PUT); request.addParameter("metrics", null); request.addParameter("id", id); final 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); }
/** * @param filter a metrics configuration filter * @return the {@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. */ @SuppressWarnings("checkstyle:hiddenfield") public MetricsConfiguration withFilter(MetricsFilter filter) { setFilter(filter); return this; } }
/** * @param id the identifier used to represent a metrics configuration * @return this object for method chaining. */ @SuppressWarnings("checkstyle:hiddenfield") public MetricsConfiguration withId(String id) { setId(id); return this; }
/** * Converts the specified * {@link com.amazonaws.services.s3.model.metrics.MetricsConfiguration} * object to an XML fragment that can be sent to Amazon S3. * * @param config The * {@link com.amazonaws.services.s3.model.metrics.MetricsConfiguration} * . */ /* * <MetricsConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> * <Id>metrics-id</Id> <Filter> <!-- A filter should have only one of * Prefix, Tag or And--> <Prefix>prefix</Prefix> <Tag> <Key>Project</Key> * <Value>Foo</Value> </Tag> <And> <Prefix>documents/</Prefix> <Tag> * <Key>foo</Key> <Value>bar</Value> </Tag> </And> </Filter> * </MetricsConfiguration> */ public byte[] convertToXmlByteArray(MetricsConfiguration config) throws AmazonClientException { final XmlWriter xml = new XmlWriter(); xml.start("MetricsConfiguration", "xmlns", Constants.XML_NAMESPACE); addParameterIfNotNull(xml, "Id", config.getId()); writeMetricsFilter(xml, config.getFilter()); xml.end(); return xml.getBytes(); }
@Override public SetBucketMetricsConfigurationResult setBucketMetricsConfiguration( SetBucketMetricsConfigurationRequest setBucketMetricsConfigurationRequest) throws AmazonServiceException, AmazonClientException { new SetBucketMetricsConfigurationRequest(); assertParameterNotNull(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"); final Request<SetBucketMetricsConfigurationRequest> request = createRequest(bucketName, null, setBucketMetricsConfigurationRequest, HttpMethodName.PUT); request.addParameter("metrics", null); request.addParameter("id", id); final 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); }
/** * 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; } }
/** * @param id the identifier used to represent a metrics configuration * @return this object for method chaining. */ @SuppressWarnings("checkstyle:hiddenfield") public MetricsConfiguration withId(String id) { setId(id); return this; }
@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>(); } } }
@Test public void getResponse_unmarshalls_properly() throws Exception { MetricsConfiguration configuration = parseGetBucketMetricsConfigurationResponse(GET_RESPONSE).getMetricsConfiguration(); MetricsFilter filter = configuration.getFilter(); assertEquals("metrics-id", configuration.getId()); List<MetricsFilterPredicate> operands = ((MetricsAndOperator) filter.getPredicate()).getOperands(); assertEquals(3, operands.size()); assertEquals("documents/", ((MetricsPrefixPredicate) operands.get(0)).getPrefix()); assertEquals("foo", ((MetricsTagPredicate) operands.get(1)).getTag().getKey()); assertEquals("bar", ((MetricsTagPredicate) operands.get(1)).getTag().getValue()); assertEquals("", ((MetricsTagPredicate) operands.get(2)).getTag().getKey()); assertEquals("", ((MetricsTagPredicate) operands.get(2)).getTag().getValue()); }
@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.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); }
/** * @param filter a metrics configuration filter * @return the {@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. */ @SuppressWarnings("checkstyle:hiddenfield") public MetricsConfiguration withFilter(MetricsFilter filter) { setFilter(filter); return 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; }