/*
 * Copyright (c) 2015 Spotify AB.
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License 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.spotify.heroic.common;

import java.util.Set;

public interface UsableGroupManager<G extends Grouped> {
    G useDefaultGroup();

    G useGroup(final String group);

    G useGroups(final Set<String> groups);
}

@@ -902,127 +902,815 @@
 t;%0A%0A
-public interface UsableGroupManager%3CG extends Grouped%3E %7B%0A    G useDefaultGroup();%0A%0A    G useGroup(final String group);%0A
+/**%0A * Container for a set of Grouped objects.%0A * %3Cp%3E%0A * These grouped objects can be combined to form a uniform group of the same type (e.g. through%0A * %7B@link #useGroups(java.util.Set)%7D.%0A *%0A * @param %3CG%3E The type of the grouped objects.%0A */%0Apublic interface UsableGroupManager%3CG extends Grouped%3E %7B%0A    /**%0A     * Use the default group.%0A     *%0A     * @return The default group.%0A     */%0A    G useDefaultGroup();%0A%0A    /**%0A     * Use the given group.%0A     *%0A     * @param group The name of the group to use.%0A     * @return The group corresponding to the name.%0A     */%0A    G useGroup(final String group);%0A%0A    /**%0A     * Use the the given group, based on a set of groups.%0A     *%0A     * @param groups The names of the groups to use.%0A     * @return A group corresponding to a combination of all the names.%0A     */
 %0A   

document UsableGroupManager