/* * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Portions copyright 2006-2009 James Murty. Please see LICENSE.txt * for applicable license terms and NOTICE.txt for applicable notices. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.s3.model; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.model.BucketNotificationConfiguration.TopicConfiguration; import java.util.ArrayList; import java.util.Collection; import java.util.List; public class BucketTaggingConfiguration { private List<TagSet> tagSets = null; /** * <p> * Creates a new bucket tagging configuration. By default, the newly created * configuration is empty. * </p> * <p> * Passing the new configuration directly to * {@link AmazonS3#setBucketTaggingConfiguration(String,BucketTaggingConfiguration)} * will remove any existing bucket tagging configuration. * </p> * * @see BucketTaggingConfiguration#BucketTaggingConfiguration(Collection) */ public BucketTaggingConfiguration() { this.tagSets = new ArrayList<TagSet>(1); } /** * <p> * Creates a new bucket Tagging configuration containing the specified * <code>TopicConfigurations</code>. * </p> * <p> * Passing the new configuration directly to * {@link AmazonS3#setBucketTaggingConfiguration(String,BucketTaggingConfiguration)} * will set the bucket's Tagging configuration and overwrite any existing * configuration. * </p> * * @see BucketTaggingConfiguration#BucketTaggingConfiguration() */ public BucketTaggingConfiguration(Collection<TagSet> tagSets) { this.tagSets = new ArrayList<TagSet>(1); this.tagSets.addAll(tagSets); } /** * <p> * Sets the {@link TagSet} <code>TagSets</code> and returns this object, * enabling additional method calls to be chained together. * </p> * <p> * Calling this method will overwrite any previously set * <code>TagSets</code> for this object. * </p> * * @param tagSets A set of TagSet objects. * @return The updated {@link BucketTaggingConfiguration} object, enabling * additional method calls to be chained together. * @see BucketTaggingConfiguration#setTagSets(Collection) */ public BucketTaggingConfiguration withTagSets(TagSet... tagSets) { this.tagSets.clear(); for (int index = 0; index < tagSets.length; index++) { this.tagSets.add(tagSets[index]); } return this; } /** * <p> * Sets the {@link TagSet}. * </p> * <p> * Calling this method will overwrite any previously set * <code>TagSets</code> for this object. * </p> * * @param tagSets A collection of TagSet objects. * @see BucketTaggingConfiguration#withTopicConfigurations(TopicConfiguration) */ public void setTagSets(Collection<TagSet> tagSets) { this.tagSets.clear(); this.tagSets.addAll(tagSets); } /** * <p> * Gets the list of {@link TagSet} objects contained in this object. This * method may return an empty list if no <code>TagSet</code> objects are * present. * </p> * * @return The list of <code>TagSet</code> objects contained in this object. * May return an empty list. */ public List<TagSet> getAllTagSets() { return this.tagSets; } /** * <p> * Gets the first {@link TagSet} object contained in this object. This * method may return null list if no <code>TagSet</code> objects are * present. * </p> * * @return The first <code>TagSet</code> object contained in the object */ public TagSet getTagSet() { return this.tagSets.get(0); } /** * <p> * Gets the {@link TagSet} object at the specified index contained in this * object. * </p> * * @param index The index of the <code>TagSet</code> object to return * @return The <code>TagSet</code> object contained in the object */ public TagSet getTagSetAtIndex(int index) { return this.tagSets.get(index); } @Override public String toString() { StringBuffer sb = new StringBuffer(); sb.append("{"); sb.append("TagSets: " + this.getAllTagSets()); sb.append("}"); return sb.toString(); } }