diff options
author | ddunne | 2011-05-24 22:43:30 +0000 |
---|---|---|
committer | Ryan D. Brooks | 2011-05-24 22:43:30 +0000 |
commit | f28113b5cd91d824b975255c6ca0cd51bb1b84ee (patch) | |
tree | 6b37e929e8a54858c272bbc70e9cad8e6b7004a8 /plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core | |
parent | ec251295444641a088d3acc3622d9a2c0fe10fb0 (diff) | |
download | org.eclipse.osee-f28113b5cd91d824b975255c6ca0cd51bb1b84ee.tar.gz org.eclipse.osee-f28113b5cd91d824b975255c6ca0cd51bb1b84ee.tar.xz org.eclipse.osee-f28113b5cd91d824b975255c6ca0cd51bb1b84ee.zip |
refactor: Create IBasicUser and UserToken
Diffstat (limited to 'plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core')
10 files changed, 106 insertions, 63 deletions
diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/BootStrapUser.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/BootStrapUser.java index 9154ab92852..de254e5c224 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/BootStrapUser.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/BootStrapUser.java @@ -11,8 +11,8 @@ package org.eclipse.osee.framework.skynet.core; -import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; +import org.eclipse.osee.framework.core.enums.SystemUser; import org.eclipse.osee.framework.core.exception.OseeCoreException; /** @@ -36,7 +36,7 @@ public class BootStrapUser extends User { private static final long serialVersionUID = 1L; @Override - public String getEmail() { + public String getEmail() throws OseeCoreException { return SystemUser.BootStrap.getEmail(); } @@ -46,12 +46,12 @@ public class BootStrapUser extends User { } @Override - public String getUserId() { - return SystemUser.BootStrap.getUserID(); + public String getUserId() throws OseeCoreException { + return SystemUser.BootStrap.getUserId(); } @Override - public Boolean isActive() { + public boolean isActive() throws OseeCoreException { return SystemUser.BootStrap.isActive(); } diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java index 6295568d9df..5142edae7ba 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/ClientUser.java @@ -15,7 +15,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.osee.framework.core.client.ClientSessionManager; -import org.eclipse.osee.framework.core.data.SystemUser; +import org.eclipse.osee.framework.core.enums.SystemUser; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeStateException; import org.eclipse.osee.framework.core.exception.UserNotInDatabase; @@ -68,19 +68,19 @@ final class ClientUser { if (ClientSessionManager.isSessionValid()) { String userId = ClientSessionManager.getSession().getUserId(); try { - if (userId.equals(SystemUser.BootStrap.getUserID())) { + if (userId.equals(SystemUser.BootStrap.getUserId())) { setCurrentUser(BootStrapUser.getInstance()); } else { if (ClientSessionManager.isUserCreationRequired()) { SkynetTransaction transaction = new SkynetTransaction(BranchManager.getCommonBranch(), "Populate current user"); - UserManager.createMainUser(ClientSessionManager.getCurrentUserInfo(), transaction); - setCurrentUser(UserManager.getUserByUserId(ClientSessionManager.getCurrentUserInfo().getUserID())); + UserManager.createMainUser(ClientSessionManager.getCurrentUserToken(), transaction); + setCurrentUser(UserManager.getUserByUserId(ClientSessionManager.getCurrentUserToken().getUserId())); Operations.executeWorkAndCheckStatus(transaction); ClientSessionManager.clearUserCreationRequired(); } else { - setCurrentUser(UserManager.getUserByUserId(ClientSessionManager.getCurrentUserInfo().getUserID())); + setCurrentUser(UserManager.getUserByUserId(ClientSessionManager.getCurrentUserToken().getUserId())); } } } catch (UserNotInDatabase ex) { diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/User.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/User.java index 005137c1143..97a848d86a1 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/User.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/User.java @@ -17,13 +17,13 @@ import java.util.Collection; import java.util.HashSet; import org.eclipse.osee.framework.core.data.IArtifactType; import org.eclipse.osee.framework.core.data.IOseeBranch; -import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.enums.BranchArchivedState; import org.eclipse.osee.framework.core.enums.BranchType; import org.eclipse.osee.framework.core.enums.CoreAttributeTypes; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.OseeExceptions; import org.eclipse.osee.framework.core.model.Branch; +import org.eclipse.osee.framework.core.model.IBasicUser; import org.eclipse.osee.framework.jdk.core.type.PropertyStore; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; import org.eclipse.osee.framework.skynet.core.artifact.ArtifactFactory; @@ -33,7 +33,7 @@ import org.eclipse.osee.framework.skynet.core.artifact.BranchManager; /** * @author Donald G. Dunne */ -public class User extends Artifact { +public class User extends Artifact implements IBasicUser { private PropertyStore userSettings; public User(ArtifactFactory parentFactory, String guid, String humanReadableId, Branch branch, IArtifactType artifactType) throws OseeCoreException { @@ -65,6 +65,7 @@ public class User extends Artifact { } } + @Override public String getUserId() throws OseeCoreException { return getSoleAttributeValue(CoreAttributeTypes.UserId, ""); } @@ -89,7 +90,8 @@ public class User extends Artifact { setSoleAttributeValue(CoreAttributeTypes.Phone, phone); } - public Boolean isActive() throws OseeCoreException { + @Override + public boolean isActive() throws OseeCoreException { return getSoleAttributeValue(CoreAttributeTypes.Active); } @@ -177,11 +179,7 @@ public class User extends Artifact { } public boolean isSystemUser() throws OseeCoreException { - if (this.equals(UserManager.getUser(SystemUser.OseeSystem)) || this.equals(UserManager.getUser(SystemUser.UnAssigned)) || this.equals(UserManager.getUser(SystemUser.Guest))) { - return true; - } - - return false; + return UserManager.isSystemUser(this); } public void setBooleanSetting(String key, boolean value) throws OseeCoreException { diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/UserManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/UserManager.java index cceadab9b7a..688f21df62f 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/UserManager.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/UserManager.java @@ -17,17 +17,20 @@ import java.util.Collections; import java.util.List; import java.util.logging.Level; import org.eclipse.osee.framework.core.client.ClientSessionManager; -import org.eclipse.osee.framework.core.data.IOseeUser; -import org.eclipse.osee.framework.core.data.SystemUser; +import org.eclipse.osee.framework.core.data.IUserToken; import org.eclipse.osee.framework.core.enums.CoreArtifactTypes; import org.eclipse.osee.framework.core.enums.CoreAttributeTypes; import org.eclipse.osee.framework.core.enums.CoreBranches; import org.eclipse.osee.framework.core.enums.CoreRelationTypes; +import org.eclipse.osee.framework.core.enums.SystemUser; import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; import org.eclipse.osee.framework.core.exception.OseeArgumentException; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.exception.UserInDatabaseMultipleTimes; import org.eclipse.osee.framework.core.exception.UserNotInDatabase; +import org.eclipse.osee.framework.core.model.IBasicUser; +import org.eclipse.osee.framework.jdk.core.util.GUID; +import org.eclipse.osee.framework.jdk.core.util.HumanReadableId; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.artifact.Artifact; @@ -65,8 +68,8 @@ public final class UserManager { ClientUser.releaseUser(); } - public static List<User> getUsersByUserId(Collection<String> userIds) throws OseeCoreException { - List<User> users = new ArrayList<User>(); + public static List<IBasicUser> getUsersByUserId(Collection<String> userIds) throws OseeCoreException { + List<IBasicUser> users = new ArrayList<IBasicUser>(); for (String userId : userIds) { try { users.add(getUserByUserId(userId)); @@ -183,6 +186,18 @@ public final class UserManager { return (User) ArtifactCache.cacheByTextId(CACHE_PREFIX + userToCache.getUserId(), userToCache); } + public static User getUser(IBasicUser user) throws OseeCoreException { + return getUserByUserId(user.getUserId()); + } + + public static User getUser(IUserToken user) throws OseeCoreException { + return getUserByUserId(user.getUserId()); + } + + public static String getEmail(IBasicUser user) throws OseeCoreException { + return getUser(user).getEmail(); + } + public static User getUserByUserId(String userId) throws OseeCoreException { if (!Strings.isValid(userId)) { throw new OseeArgumentException("UserId can't be null or \"\""); @@ -202,10 +217,6 @@ public final class UserManager { return user; } - public static User getUser(IOseeUser userEnum) throws OseeCoreException { - return getUserByUserId(userEnum.getUserID()); - } - private static synchronized void ensurePopulated() throws OseeCoreException { if (!userCacheIsLoaded) { List<Artifact> artifactsFound = @@ -236,29 +247,30 @@ public final class UserManager { return duringMainUserCreation; } - public static synchronized User createMainUser(IOseeUser userEnum, SkynetTransaction transaction) throws OseeCoreException { + public static synchronized User createMainUser(IUserToken userEnum, SkynetTransaction transaction) throws OseeCoreException { duringMainUserCreation = true; User user = createUser(userEnum, transaction); duringMainUserCreation = false; return user; } - public static synchronized User createUser(IOseeUser userEnum, SkynetTransaction transaction) throws OseeCoreException { + public static synchronized User createUser(IUserToken userToken, SkynetTransaction transaction) throws OseeCoreException { ensurePopulated(); // Determine if user with id has already been created; boot strap issue with dbInit - User user = getFromCacheByUserId(userEnum.getUserID()); + User user = getFromCacheByUserId(userToken.getUserId()); if (user != null) { // Update user with this enum data - user.setName(userEnum.getName()); - user.setEmail(userEnum.getEmail()); - user.setActive(userEnum.isActive()); + user.setName(userToken.getName()); + user.setEmail(userToken.getEmail()); + user.setActive(userToken.isActive()); } else { + String guid = GUID.isValid(userToken.getGuid()) ? userToken.getGuid() : GUID.create(); user = (User) ArtifactTypeManager.addArtifact(CoreArtifactTypes.User, BranchManager.getCommonBranch(), - userEnum.getName()); - user.setActive(userEnum.isActive()); - user.setUserID(userEnum.getUserID()); - user.setEmail(userEnum.getEmail()); + userToken.getName(), guid, HumanReadableId.generate()); + user.setActive(userToken.isActive()); + user.setUserID(userToken.getUserId()); + user.setEmail(userToken.getEmail()); addUserToUserGroups(user); cacheByUserId(user); @@ -282,8 +294,8 @@ public final class UserManager { } } - public static boolean isUserInactive(Collection<User> users) throws OseeCoreException { - for (User user : users) { + public static boolean isUserInactive(Collection<IBasicUser> users) throws OseeCoreException { + for (IBasicUser user : users) { if (!user.isActive()) { return true; } @@ -291,18 +303,27 @@ public final class UserManager { return false; } - public static boolean isUserSystem(Collection<User> users) throws OseeCoreException { - for (User user : users) { - if (user.isSystemUser()) { + public static boolean isUserSystem(Collection<IBasicUser> users) throws OseeCoreException { + for (IBasicUser user : users) { + if (isSystemUser(user)) { return true; } } return false; } - public static boolean isUserCurrentUser(Collection<User> users) throws OseeCoreException { - for (User user : users) { - if (user.equals(UserManager.getUser())) { + public static boolean isSystemUser(IBasicUser user) throws OseeCoreException { + if (UserManager.getUser(SystemUser.OseeSystem).equals(user) || UserManager.getUser(SystemUser.UnAssigned).equals( + user) || UserManager.getUser(SystemUser.Guest).equals(user)) { + return true; + } + + return false; + } + + public static boolean isUserCurrentUser(Collection<IBasicUser> users) throws OseeCoreException { + for (IBasicUser user : users) { + if (UserManager.getUser().equals(user)) { return true; } } @@ -321,4 +342,11 @@ public final class UserManager { getUser().setSetting(key, value); } + public static Collection<User> getUsers(Collection<IBasicUser> users) throws OseeCoreException { + List<User> arts = new ArrayList<User>(); + for (IBasicUser user : users) { + arts.add(UserManager.getUser(user)); + } + return arts; + } }
\ No newline at end of file diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java index 06ad05b9814..b7b5fc568a0 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/Artifact.java @@ -32,7 +32,6 @@ import org.eclipse.osee.framework.core.data.IRelationSorterId; import org.eclipse.osee.framework.core.data.IRelationType; import org.eclipse.osee.framework.core.data.IRelationTypeSide; import org.eclipse.osee.framework.core.data.NamedIdentity; -import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.enums.CoreAttributeTypes; import org.eclipse.osee.framework.core.enums.CoreRelationTypes; import org.eclipse.osee.framework.core.enums.DeletionFlag; @@ -41,6 +40,7 @@ import org.eclipse.osee.framework.core.enums.ModificationType; import org.eclipse.osee.framework.core.enums.PermissionEnum; import org.eclipse.osee.framework.core.enums.RelationOrderBaseTypes; import org.eclipse.osee.framework.core.enums.RelationSide; +import org.eclipse.osee.framework.core.enums.SystemUser; import org.eclipse.osee.framework.core.exception.ArtifactDoesNotExist; import org.eclipse.osee.framework.core.exception.AttributeDoesNotExist; import org.eclipse.osee.framework.core.exception.MultipleArtifactsExist; diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/BranchManager.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/BranchManager.java index 73e9c970e4b..7a289432ee0 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/BranchManager.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/BranchManager.java @@ -24,12 +24,12 @@ import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.jobs.IJobChangeListener; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.osee.framework.core.data.IOseeBranch; -import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.data.TokenFactory; import org.eclipse.osee.framework.core.enums.BranchArchivedState; import org.eclipse.osee.framework.core.enums.BranchState; import org.eclipse.osee.framework.core.enums.BranchType; import org.eclipse.osee.framework.core.enums.CoreBranches; +import org.eclipse.osee.framework.core.enums.SystemUser; import org.eclipse.osee.framework.core.exception.BranchDoesNotExist; import org.eclipse.osee.framework.core.exception.MultipleBranchesExist; import org.eclipse.osee.framework.core.exception.OseeCoreException; diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/operation/UpdateBranchOperation.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/operation/UpdateBranchOperation.java index 864974893f2..1d0d4e61b49 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/operation/UpdateBranchOperation.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/artifact/operation/UpdateBranchOperation.java @@ -11,8 +11,8 @@ package org.eclipse.osee.framework.skynet.core.artifact.operation; import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.enums.BranchState; +import org.eclipse.osee.framework.core.enums.SystemUser; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.model.Branch; import org.eclipse.osee.framework.core.operation.AbstractOperation; diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/httpRequests/CreateBranchHttpRequestOperation.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/httpRequests/CreateBranchHttpRequestOperation.java index 723c69124ee..c2456972da2 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/httpRequests/CreateBranchHttpRequestOperation.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/httpRequests/CreateBranchHttpRequestOperation.java @@ -14,10 +14,10 @@ import java.util.HashMap; import java.util.Map; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.osee.framework.core.data.OseeServerContext; -import org.eclipse.osee.framework.core.data.SystemUser; import org.eclipse.osee.framework.core.enums.BranchType; import org.eclipse.osee.framework.core.enums.CoreTranslatorId; import org.eclipse.osee.framework.core.enums.Function; +import org.eclipse.osee.framework.core.enums.SystemUser; import org.eclipse.osee.framework.core.exception.OseeCoreException; import org.eclipse.osee.framework.core.message.BranchCreationRequest; import org.eclipse.osee.framework.core.message.BranchCreationResponse; diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/Artifacts.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/Artifacts.java index 9ea1c223e0f..aa537abaede 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/Artifacts.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/Artifacts.java @@ -59,22 +59,38 @@ public final class Artifacts { return guids; } - public static String commaArts(Collection<? extends Artifact> artifacts) { - return toTextList(artifacts, ", "); + /** + * getName() all artifacts, else toString() + */ + public static String commaArts(Collection<? extends Object> objects) { + return toTextList(objects, ", "); } - public static String semmicolonArts(Collection<? extends Artifact> artifacts) { - return toTextList(artifacts, "; "); + /** + * getName() all artifacts, else toString() + */ + public static String semmicolonArts(Collection<? extends Object> objects) { + return toTextList(objects, "; "); } - public static String toString(String separator, Collection<? extends Artifact> artifacts) { - return toTextList(artifacts, separator); + /** + * getName() all artifacts, else toString() + */ + public static String toString(String separator, Collection<? extends Object> objects) { + return toTextList(objects, separator); } - public static String toTextList(Collection<? extends Artifact> artifacts, String separator) { + /** + * getName() all artifacts, else toString() + */ + public static String toTextList(Collection<? extends Object> objects, String separator) { StringBuilder sb = new StringBuilder(); - for (Artifact art : artifacts) { - sb.append(art.getName()); + for (Object obj : objects) { + if (obj instanceof Artifact) { + sb.append(((Artifact) obj).getName()); + } else { + sb.append(obj.toString()); + } sb.append(separator); } if (sb.length() > separator.length()) { diff --git a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/UsersByIds.java b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/UsersByIds.java index d371d09be4d..cf78234a264 100644 --- a/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/UsersByIds.java +++ b/plugins/org.eclipse.osee.framework.skynet.core/src/org/eclipse/osee/framework/skynet/core/utility/UsersByIds.java @@ -10,13 +10,14 @@ *******************************************************************************/ package org.eclipse.osee.framework.skynet.core.utility; +import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; -import java.util.Set; +import java.util.List; import java.util.logging.Level; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.eclipse.osee.framework.core.exception.OseeCoreException; +import org.eclipse.osee.framework.core.model.IBasicUser; import org.eclipse.osee.framework.jdk.core.util.Strings; import org.eclipse.osee.framework.logging.OseeLog; import org.eclipse.osee.framework.skynet.core.User; @@ -30,16 +31,16 @@ public class UsersByIds { public static Pattern userPattern = Pattern.compile("<(.*?)>"); - public static String getStorageString(Collection<User> users) throws OseeCoreException { + public static String getStorageString(Collection<IBasicUser> users) throws OseeCoreException { StringBuffer sb = new StringBuffer(); - for (User u : users) { + for (IBasicUser u : users) { sb.append("<" + u.getUserId() + ">"); } return sb.toString(); } - public static Collection<User> getUsers(String sorageString) { - Set<User> users = new HashSet<User>(); + public static List<IBasicUser> getUsers(String sorageString) { + List<IBasicUser> users = new ArrayList<IBasicUser>(); Matcher m = userPattern.matcher(sorageString); while (m.find()) { String userId = m.group(1); |