api: Fix findByXId to findByUuid in EntityManager and ApiDispatcher Signed-off-by: Rohit Yadav <[email protected]>
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/22ee4200 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/22ee4200 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/22ee4200 Branch: refs/heads/api_refactoring Commit: 22ee4200c32912b06027618be1793a2c336cc0f6 Parents: ba5fba9 Author: Rohit Yadav <[email protected]> Authored: Tue Dec 18 16:25:25 2012 -0800 Committer: Rohit Yadav <[email protected]> Committed: Tue Dec 18 17:44:17 2012 -0800 ---------------------------------------------------------------------- api/src/com/cloud/dao/EntityManager.java | 9 +++++++++ server/src/com/cloud/api/ApiDispatcher.java | 4 ++-- server/src/com/cloud/dao/EntityManagerImpl.java | 10 ++++++++-- 3 files changed, 19 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/22ee4200/api/src/com/cloud/dao/EntityManager.java ---------------------------------------------------------------------- diff --git a/api/src/com/cloud/dao/EntityManager.java b/api/src/com/cloud/dao/EntityManager.java index 4ddfcec..4e4b9c2 100644 --- a/api/src/com/cloud/dao/EntityManager.java +++ b/api/src/com/cloud/dao/EntityManager.java @@ -39,6 +39,15 @@ public interface EntityManager { public <T, K extends Serializable> T findById(Class<T> entityType, K id); /** + * Finds a unique entity by uuid string + * @param <T> entity class + * @param entityType type of entity you're looking for. + * @param uuid the unique id + * @return T if found, null if not. + */ + public <T> T findByUuid(Class<T> entityType, String uuid); + + /** * Finds an entity by external id which is always String * @param <T> entity class * @param entityType type of entity you're looking for. http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/22ee4200/server/src/com/cloud/api/ApiDispatcher.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index e75a15c..32f8107 100755 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -626,8 +626,8 @@ public class ApiDispatcher { // Go through each entity which is an interface to a VO class and get a VO object // Try to getId() for the object using reflection, break on first non-null value for (Class<?> entity: entities) { - // findByXId returns a VO object using uuid, use reflect to get the Id - Object objVO = s_instance._entityMgr.findByXId(entity, paramObj.toString()); + // findByUuid returns one VO object using uuid, use reflect to get the Id + Object objVO = s_instance._entityMgr.findByUuid(entity, paramObj.toString()); if (objVO == null) { continue; } http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/22ee4200/server/src/com/cloud/dao/EntityManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/dao/EntityManagerImpl.java b/server/src/com/cloud/dao/EntityManagerImpl.java index 4d7f7fb..2eee445 100644 --- a/server/src/com/cloud/dao/EntityManagerImpl.java +++ b/server/src/com/cloud/dao/EntityManagerImpl.java @@ -45,9 +45,15 @@ public class EntityManagerImpl implements EntityManager, Manager { } @Override - public <T> T findByXId(Class<T> entityType, String xid) { + public <T> T findByUuid(Class<T> entityType, String uuid) { + // Finds and returns a unique VO using uuid, null if entity not found in db GenericDao<? extends T, String> dao = (GenericDao<? extends T, String>)GenericDaoBase.getDao(entityType); - return dao.findByXId(xid); + return dao.findByUuid(uuid); + } + + @Override + public <T> T findByXId(Class<T> entityType, String xid) { + return null; } @Override
