Improved PersistenceManager with new methods to handle incoming entities
This commit is contained in:
		| @@ -109,6 +109,61 @@ public class PersistenceManager { | |||||||
| 		entityManager.getTransaction().commit(); | 		entityManager.getTransaction().commit(); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Deletes a {@link User} in the database. | ||||||
|  | 	 * | ||||||
|  | 	 * @param user the {@link User} to delete | ||||||
|  | 	 * @since Envoy Server Standalone v0.1-alpha | ||||||
|  | 	 */ | ||||||
|  | 	public void deleteUser(User user) { | ||||||
|  | 		entityManager.getTransaction().begin(); | ||||||
|  | 		entityManager.remove(user); | ||||||
|  | 		entityManager.getTransaction().commit(); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Deletes a {@link Message} in the database. | ||||||
|  | 	 * | ||||||
|  | 	 * @param message the {@link Message} to delete | ||||||
|  | 	 * @since Envoy Server Standalone v0.1-alpha | ||||||
|  | 	 */ | ||||||
|  | 	public void deleteMessage(Message message) { | ||||||
|  | 		entityManager.getTransaction().begin(); | ||||||
|  | 		entityManager.remove(message); | ||||||
|  | 		entityManager.getTransaction().commit(); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * @param action the action that should be applied for this entity. Case does | ||||||
|  | 	 *               <b>not</b> matter.<br> | ||||||
|  | 	 *               Currently supported values are:<br> | ||||||
|  | 	 *               -"add"/"persist" to add an object to the database<br> | ||||||
|  | 	 *               -"update"/"merge" to update this object in the database<br> | ||||||
|  | 	 *               -"delete"/"remove" to delete this object in the database | ||||||
|  | 	 * @param entity the object to apply the action to | ||||||
|  | 	 * @since Envoy Server Standalone v0.1-alpha | ||||||
|  | 	 */ | ||||||
|  | 	public void applyAction(String action, Object entity) { | ||||||
|  | 		entityManager.getTransaction().begin(); | ||||||
|  | 		switch (action.trim().toLowerCase()) { | ||||||
|  | 			case "add": | ||||||
|  | 			case "persist": | ||||||
|  | 				entityManager.persist(entity); | ||||||
|  | 				break; | ||||||
|  | 			case "update": | ||||||
|  | 			case "merge": | ||||||
|  | 				entityManager.merge(entity); | ||||||
|  | 				break; | ||||||
|  | 			case "delete": | ||||||
|  | 			case "remove": | ||||||
|  | 				entityManager.remove(entity); | ||||||
|  | 				break; | ||||||
|  | 			default: | ||||||
|  | 				throw new IllegalStateException("Unknown action: " + action + " was selected to be executed in the database"); | ||||||
|  | 		} | ||||||
|  | 		entityManager.getTransaction().commit(); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Searches for a {@link User} with a specific id. | 	 * Searches for a {@link User} with a specific id. | ||||||
| 	 * | 	 * | ||||||
| @@ -173,7 +228,11 @@ public class PersistenceManager { | |||||||
| 	 * @param status the new status of that user | 	 * @param status the new status of that user | ||||||
| 	 * @since Envoy Server Standalone v0.1-alpha | 	 * @since Envoy Server Standalone v0.1-alpha | ||||||
| 	 */ | 	 */ | ||||||
| 	public void updateUserStatusInDatabase(User user, UserStatus status) { | 	public void updateUserStatus(User user, UserStatus status) { | ||||||
|  | 		if (user.getStatus().equals(status)) { | ||||||
|  | 			System.out.println("Received an UserStatus for User" + user.getId() + "to update that this user already has"); | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
| 		user.setStatus(status); | 		user.setStatus(status); | ||||||
| 		persistenceManager.updateUser(user); | 		persistenceManager.updateUser(user); | ||||||
| 	} | 	} | ||||||
|   | |||||||
| @@ -52,7 +52,7 @@ public class UserStatusChangeProcessor implements ObjectProcessor<UserStatusChan | |||||||
| 		PersistenceManager		perMan	= PersistenceManager.getPersistenceManager(); | 		PersistenceManager		perMan	= PersistenceManager.getPersistenceManager(); | ||||||
| 		envoy.server.data.User	user	= perMan.getUserById(evt.getId()); | 		envoy.server.data.User	user	= perMan.getUserById(evt.getId()); | ||||||
| 		// handling for newly logged in clients | 		// handling for newly logged in clients | ||||||
| 		perMan.updateUserStatusInDatabase(user, evt.get()); | 		perMan.updateUserStatus(user, evt.get()); | ||||||
|  |  | ||||||
| 		// handling for contacts that are already online | 		// handling for contacts that are already online | ||||||
| 		notifyContacts(evt, user, writeProxy); | 		notifyContacts(evt, user, writeProxy); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 delvh
					delvh