Converts a list of tags into a mapping of categories to tags. The key is the Category and the value is a List
of Tags for that category.

@param tags The List of tags to be converted.
@return The mapping of Categories to Tags.
761970
public static Map<Integer, List<TagWrapper>> getCategoryMappingFromTagList(final Collection<TagWrapper> tags) {
        final HashMap<Integer, List<TagWrapper>> mapping = new HashMap<Integer, List<TagWrapper>>();
        for (final TagWrapper tag : tags) {
            final List<CategoryInTagWrapper> catList = tag.getCategories().getItems();
            if (catList != null) {
                for (final CategoryInTagWrapper cat : catList) {
                    if (!mapping.containsKey(cat.getId())) {
                        mapping.put(cat.getId(), new ArrayList<TagWrapper>());
                    }
                    mapping.get(cat.getId()).add(tag);
                }
            }
        }
        return mapping;
    }
897460
public GetFunctionDefinitionResult withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
359418
public ProjectDescription withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
1236847
public void setTags(java.util.Collection<java.util.Map<String, String>> tags) {
        if (tags == null) {
            this.tags = null;
            return;
        }

        this.tags = new java.util.ArrayList<java.util.Map<String, String>>(tags);
    }
44740
public static List<String> tagsFromCSV(String tags) {
        ArrayList<String> list = new ArrayList<String>();
        for (String tag: tags.split(",")) {
            list.add(tag);
        }
        return list;
    }
908213
public CreateApplicationRequest withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
238157
public static Tags of(@Nullable Iterable<? extends Tag> tags) {
        if (tags == null || !tags.iterator().hasNext()) {
            return Tags.empty();
        } else if (tags instanceof Tags) {
            return (Tags) tags;
        } else if (tags instanceof Collection) {
            Collection<? extends Tag> tagsCollection = (Collection<? extends Tag>) tags;
            return new Tags(tagsCollection.toArray(new Tag[0]));
        } else {
            return new Tags(StreamSupport.stream(tags.spliterator(), false).toArray(Tag[]::new));
        }
    }
120504
public TagProjectResult withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
968892
public ApplicationResponse withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
17286
public void setTags( Collection<String> tags ) {

		synchronized( this.tags ) {
			this.tags.clear();
			if( tags != null )
				this.tags.addAll( tags );
		}
	}
961866
public Input withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
209495
public CreateRobotApplicationResult withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
877658
public DescribeConfigurationResult withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
965942
public EntityFilter withTags(java.util.Collection<java.util.Map<String, String>> tags) {
        setTags(tags);
        return this;
    }
337363
public ListQueueTagsResult withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
544391
public SegmentResponse withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }
181566
public CreateFunctionDefinitionRequest withTags(java.util.Map<String, String> tags) {
        setTags(tags);
        return this;
    }