56 lines
1.5 KiB
Java
Raw Normal View History

package com.iluwatar.featuretoggle.user;
import java.util.ArrayList;
import java.util.List;
2016-01-26 19:20:28 +00:00
/**
2016-01-28 21:14:40 +00:00
* Contains the lists of users of different groups paid and free. Used to demonstrate the tiered example of feature
* toggle. Allowing certain features to be available to only certain groups of users.
*
* @see User
2016-01-26 19:20:28 +00:00
*/
public class UserGroup {
2016-01-26 19:20:28 +00:00
private static List<User> freeGroup = new ArrayList<>();
private static List<User> paidGroup = new ArrayList<>();
2016-01-26 23:38:28 +00:00
2016-01-26 19:20:28 +00:00
/**
2016-01-28 21:14:40 +00:00
* Add the passed {@link User} to the free user group list.
2016-01-26 19:20:28 +00:00
*
* @param user {@link User} to be added to the free group
2016-01-28 21:14:40 +00:00
* @throws IllegalArgumentException
* @see User
2016-01-26 19:20:28 +00:00
*/
2016-01-28 21:14:40 +00:00
public static void addUserToFreeGroup(final User user) throws IllegalArgumentException {
2016-01-26 19:20:28 +00:00
if (paidGroup.contains(user)) {
throw new IllegalArgumentException("User all ready member of paid group.");
} else {
if (!freeGroup.contains(user)) {
freeGroup.add(user);
}
}
2016-01-26 19:20:28 +00:00
}
2016-01-26 19:20:28 +00:00
/**
2016-01-28 21:14:40 +00:00
* Add the passed {@link User} to the paid user group list.
2016-01-26 19:20:28 +00:00
*
* @param user {@link User} to be added to the paid group
2016-01-28 21:14:40 +00:00
* @throws IllegalArgumentException
* @see User
2016-01-26 19:20:28 +00:00
*/
2016-01-28 21:14:40 +00:00
public static void addUserToPaidGroup(final User user) throws IllegalArgumentException {
2016-01-26 19:20:28 +00:00
if (freeGroup.contains(user)) {
throw new IllegalArgumentException("User all ready member of free group.");
} else {
if (!paidGroup.contains(user)) {
paidGroup.add(user);
}
}
2016-01-26 19:20:28 +00:00
}
2016-01-26 19:20:28 +00:00
public static boolean isPaid(User user) {
return paidGroup.contains(user);
}
}