[jboss-svn-commits] JBL Code SVN: r5367 - in labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags: . service

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jul 31 16:59:16 EDT 2006


Author: szimano
Date: 2006-07-31 16:59:07 -0400 (Mon, 31 Jul 2006)
New Revision: 5367

Modified:
   labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java
   labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java
Log:
getAllTagsNames for resourceId


Modified: labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java
===================================================================
--- labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java	2006-07-31 17:07:05 UTC (rev 5366)
+++ labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/TagService.java	2006-07-31 20:59:07 UTC (rev 5367)
@@ -105,11 +105,12 @@
      */
     public String getFeedLink(FeedType feedType, List<String> dataList, String type);
 
-    /**Gets all the tag names.
+    /**Gets all the tag names for given resourceId.
+     * @param resourceId Resource ID
      * @return Tag list
      * @throws TagGetException
      */
-    public List<String> getAllTagsNames() throws TagGetException;
+    public List<String> getAllTagsNames(String resourceId) throws TagGetException;
 
     /**Gets all the tags
      * @return Tag list

Modified: labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java
===================================================================
--- labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java	2006-07-31 17:07:05 UTC (rev 5366)
+++ labs/shotoku/trunk/shotoku-tags/src/java/org/jboss/shotoku/tags/service/TagServiceImpl.java	2006-07-31 20:59:07 UTC (rev 5367)
@@ -58,646 +58,648 @@
 @Local(TagServiceLocal.class)
 @Management(TagService.class)
 @Depends(Constants.SHOTOKU_SERVICE_NAME)
-public class TagServiceImpl extends AdministratedServiceImpl
-        implements TagService, TagServiceLocal {
-    private static final Logger log = Logger.getLogger(AdministratedService.class);
+public class TagServiceImpl extends AdministratedServiceImpl implements
+		TagService, TagServiceLocal {
+	private static final Logger log = Logger
+			.getLogger(AdministratedService.class);
 
-    private boolean syncOn;
-    private ContentManager cm;
+	private boolean syncOn;
 
-    @SuppressWarnings({"UNUSED_SYMBOL"})
-    @PersistenceUnit
-    private EntityManagerFactory emf;
+	private ContentManager cm;
 
-    /*
-     * Service lifecycle management.
-     */
+	@SuppressWarnings( { "UNUSED_SYMBOL" })
+	@PersistenceUnit
+	private EntityManagerFactory emf;
 
-    public void create() throws Exception {
-        super.create();
+	/*
+	 * Service lifecycle management.
+	 */
 
-        setTimerInterval(ContentManager.getProperty(
-                org.jboss.shotoku.tags.tools.Constants.PROPERTY_INTERVAL, 10000));
+	public void create() throws Exception {
+		super.create();
 
-        syncOn = ContentManager.getProperty(
-                org.jboss.shotoku.tags.tools.Constants.PROPERTY_SYNC, 0) == 1;
-        if (syncOn) {
-            cm = ContentManager.getContentManager(
-                    ContentManager.getProperty(
-                            org.jboss.shotoku.tags.tools.Constants.PROPERTY_CMID,
-                            Constants.DEFAULT_ID),
-                    ContentManager.getProperty(
-                            org.jboss.shotoku.tags.tools.Constants.PROPERTY_CMDIR, ""));
-        }
+		setTimerInterval(ContentManager
+				.getProperty(
+						org.jboss.shotoku.tags.tools.Constants.PROPERTY_INTERVAL,
+						10000));
 
-        super.afterCreate();
-    }
+		syncOn = ContentManager.getProperty(
+				org.jboss.shotoku.tags.tools.Constants.PROPERTY_SYNC, 0) == 1;
+		if (syncOn) {
+			cm = ContentManager.getContentManager(ContentManager.getProperty(
+					org.jboss.shotoku.tags.tools.Constants.PROPERTY_CMID,
+					Constants.DEFAULT_ID), ContentManager.getProperty(
+					org.jboss.shotoku.tags.tools.Constants.PROPERTY_CMDIR, ""));
+		}
 
-    public void start() throws Exception {
-        super.start();
-        startUpdateThread();
-        log.info("Tag service started with update interval: "
-                + getTimerInterval());
-    }
+		super.afterCreate();
+	}
 
-    public void destroy() {
+	public void start() throws Exception {
+		super.start();
+		startUpdateThread();
+		log.info("Tag service started with update interval: "
+				+ getTimerInterval());
+	}
 
-    }
+	public void destroy() {
 
-    /*
-      * Timer-handling functions.
-      */
+	}
 
-    public void update() {
-        if (!syncOn) {
-            // Synchronization is turned off.
-            return;
-        }
+	/*
+	 * Timer-handling functions.
+	 */
 
-        EntityManager em = emf.createEntityManager();
+	public void update() {
+		if (!syncOn) {
+			// Synchronization is turned off.
+			return;
+		}
 
-        try {
-            // Performing synchronization (tags -> shotoku).
-            // noinspection unchecked
-            List<TagEntity> result = em.createQuery("FROM TagEntity " +
-                    "WHERE synced = 0 OR synced IS NULL")
-                    .getResultList();
+		EntityManager em = emf.createEntityManager();
 
-            if (result.size() == 0) {
-                return;
-            }
+		try {
+			// Performing synchronization (tags -> shotoku).
+			// noinspection unchecked
+			List<TagEntity> result = em.createQuery(
+					"FROM TagEntity " + "WHERE synced = 0 OR synced IS NULL")
+					.getResultList();
 
-            Set<Resource> toSave = new HashSet<Resource>();
-            for (TagEntity te : result) {
-                if (org.jboss.shotoku.tags.tools.Constants.SHOTOKU_TAG.equals
-                        (te.getType())) {
-                    try {
-                        Node n = cm.getNode(te.getResourceId());
-                        n.setProperty(te.getShotokuPropReprName(),
-                                te.getShotokuPropReprValue());
-                        toSave.add(n);
-                    } catch (ResourceDoesNotExist e) {
-                        log.warn("Unable to synchronize tag with Shotoku resource, " +
-                                "the tagged resource does not exist.", e);
-                    }
-                }
-            }
+			if (result.size() == 0) {
+				return;
+			}
 
-            try {
-                cm.save("", toSave);
-            } catch (SaveException e) {
-                log.warn(e);
-                return;
-            }
+			Set<Resource> toSave = new HashSet<Resource>();
+			for (TagEntity te : result) {
+				if (org.jboss.shotoku.tags.tools.Constants.SHOTOKU_TAG
+						.equals(te.getType())) {
+					try {
+						Node n = cm.getNode(te.getResourceId());
+						n.setProperty(te.getShotokuPropReprName(), te
+								.getShotokuPropReprValue());
+						toSave.add(n);
+					} catch (ResourceDoesNotExist e) {
+						log
+								.warn(
+										"Unable to synchronize tag with Shotoku resource, "
+												+ "the tagged resource does not exist.",
+										e);
+					}
+				}
+			}
 
-            UserTransaction tran = null;
-            try {
-                InitialContext jndiCntx = new InitialContext();
-                tran = (UserTransaction) jndiCntx.lookup("UserTransaction");
+			try {
+				cm.save("", toSave);
+			} catch (SaveException e) {
+				log.warn(e);
+				return;
+			}
 
-                tran.begin();
-                em.joinTransaction();
+			UserTransaction tran = null;
+			try {
+				InitialContext jndiCntx = new InitialContext();
+				tran = (UserTransaction) jndiCntx.lookup("UserTransaction");
 
-                for (TagEntity te : result) {
-                    te.setSynced(true);
-                }
+				tran.begin();
+				em.joinTransaction();
 
-                tran.commit();
-            } catch (Throwable t) {
-                if (tran != null) {
-                    try {
-                        tran.rollback();
-                    } catch (SystemException e) {
-                        // Oh well ...
-                    }
-                }
+				for (TagEntity te : result) {
+					te.setSynced(true);
+				}
 
-                log.warn("Unable to synchronize tags.", t);
-            }
-        } finally {
-            em.close();
-        }
-    }
+				tran.commit();
+			} catch (Throwable t) {
+				if (tran != null) {
+					try {
+						tran.rollback();
+					} catch (SystemException e) {
+						// Oh well ...
+					}
+				}
 
-    public String getServiceId() {
-        return "ShotokuTagService";
-    }
+				log.warn("Unable to synchronize tags.", t);
+			}
+		} finally {
+			em.close();
+		}
+	}
 
-    public String getServiceName() {
-        return "Tag service";
-    }
+	public String getServiceId() {
+		return "ShotokuTagService";
+	}
 
-    public String getServiceDescription() {
-        return "Shotoku tag service";
-    }
+	public String getServiceName() {
+		return "Tag service";
+	}
 
-    public AdministratedService getServiceInstance() {
-        return TagTools.getService();
-    }
+	public String getServiceDescription() {
+		return "Shotoku tag service";
+	}
 
-    /*
-     * TagService implementation.
-     */
+	public AdministratedService getServiceInstance() {
+		return TagTools.getService();
+	}
 
-    /**
-     * MIN_SIMILARITY - minimal similarity for checking relatedTags needed
-     */
-    private double MIN_SIMILARITY = 0.7d;
+	/*
+	 * TagService implementation.
+	 */
 
-    private TagEntity getTagEntity(Tag t) {
-        TagEntity te = new TagEntity();
+	/**
+	 * MIN_SIMILARITY - minimal similarity for checking relatedTags needed
+	 */
+	private double MIN_SIMILARITY = 0.7d;
 
-        te.setAuthor(t.getAuthor());
-        te.setData(t.getData());
-        te.setDateCreated(t.getDateCreated());
-        te.setName(t.getName());
-        te.setResourceId(t.getResourceId());
-        te.setType(t.getType());
+	private TagEntity getTagEntity(Tag t) {
+		TagEntity te = new TagEntity();
 
-        return te;
-    }
+		te.setAuthor(t.getAuthor());
+		te.setData(t.getData());
+		te.setDateCreated(t.getDateCreated());
+		te.setName(t.getName());
+		te.setResourceId(t.getResourceId());
+		te.setType(t.getType());
 
-    public void addTag(Tag t) throws TagAddException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            manager.persist(getTagEntity(t).normalizeName());
-        } catch (Throwable e) {
-            throw new TagAddException(e);
-        } finally {
-            manager.close();
-        }
-    }
+		return te;
+	}
 
-    public void deleteTag(Tag t) throws TagDeleteException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            manager.remove(getTagEntity(t));
-        } catch (Throwable e) {
-            throw new TagDeleteException(e);
-        } finally {
-            manager.close();
-        }
-    }
+	public void addTag(Tag t) throws TagAddException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			manager.persist(getTagEntity(t).normalizeName());
+		} catch (Throwable e) {
+			throw new TagAddException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-    private void sortTagsByDate(List<Tag> tags) {
-        Collections.sort(tags, new Comparator<Tag>() {
-            public int compare(Tag o1, Tag o2) {
-                return o1.getDateCreated().compareTo(o2.getDateCreated());
-            }
-        });
-    }
+	public void deleteTag(Tag t) throws TagDeleteException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			manager.remove(getTagEntity(t));
+		} catch (Throwable e) {
+			throw new TagDeleteException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-    public List<Tag> getTags(String resourceId) throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            // noinspection unchecked
-            List<TagEntity> result = manager
-                    .createQuery(
-                            "from TagEntity where resourceId = :resourceId order by dateCreated desc")
-                    .setParameter("resourceId", resourceId).getResultList();
+	private void sortTagsByDate(List<Tag> tags) {
+		Collections.sort(tags, new Comparator<Tag>() {
+			public int compare(Tag o1, Tag o2) {
+				return o1.getDateCreated().compareTo(o2.getDateCreated());
+			}
+		});
+	}
 
-            List<Tag> ret = new ArrayList<Tag>();
-            for (TagEntity te : result) {
-                ret.add(te.getTag());
-            }
+	public List<Tag> getTags(String resourceId) throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			// noinspection unchecked
+			List<TagEntity> result = manager
+					.createQuery(
+							"from TagEntity where resourceId = :resourceId order by dateCreated desc")
+					.setParameter("resourceId", resourceId).getResultList();
 
-            return ret;
-        } catch (Throwable e) {
-            throw new TagGetException(e);
-        } finally {
-            manager.close();
-        }
-    }
+			List<Tag> ret = new ArrayList<Tag>();
+			for (TagEntity te : result) {
+				ret.add(te.getTag());
+			}
 
-    public Tag getTag(String tagName) throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            // noinspection unchecked
-            TagEntity result = (TagEntity) manager.createQuery(
-                    "from TagEntity where name = :name").setParameter("name",
-                    tagName).getSingleResult();
+			return ret;
+		} catch (Throwable e) {
+			throw new TagGetException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-            if (result == null) {
-                return null;
-            }
+	public Tag getTag(String tagName) throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			// noinspection unchecked
+			TagEntity result = (TagEntity) manager.createQuery(
+					"from TagEntity where name = :name").setParameter("name",
+					tagName).getSingleResult();
 
-            return result.getTag();
-        } catch (Throwable e) {
-            throw new TagGetException(e);
-        } finally {
-            manager.close();
-        }
-    }
+			if (result == null) {
+				return null;
+			}
 
-    public List<Tag> getTags(List<String> tagNames) throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            StringBuffer querySb = new StringBuffer("FROM TagEntity WHERE ");
-            int i = 0;
-            for (Iterator iter = tagNames.iterator(); iter.hasNext();) {
-                querySb.append("name").append(" = :name").append(i);
+			return result.getTag();
+		} catch (Throwable e) {
+			throw new TagGetException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-                iter.next();
+	public List<Tag> getTags(List<String> tagNames) throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			StringBuffer querySb = new StringBuffer("FROM TagEntity WHERE ");
+			int i = 0;
+			for (Iterator iter = tagNames.iterator(); iter.hasNext();) {
+				querySb.append("name").append(" = :name").append(i);
 
-                if (iter.hasNext()) {
-                    querySb.append(" OR ");
-                }
+				iter.next();
 
-                i++;
-            }
+				if (iter.hasNext()) {
+					querySb.append(" OR ");
+				}
 
-            Query query = manager.createQuery(querySb.toString());
-            i = 0;
-            for (String tagName : tagNames) {
-                query.setParameter("name" + i++, tagName);
-            }
+				i++;
+			}
 
-            // noinspection unchecked
-            List<TagEntity> result = query.getResultList();
+			Query query = manager.createQuery(querySb.toString());
+			i = 0;
+			for (String tagName : tagNames) {
+				query.setParameter("name" + i++, tagName);
+			}
 
-            List<Tag> ret = new ArrayList<Tag>();
-            for (TagEntity te : result) {
-                ret.add(te.getTag());
-            }
+			// noinspection unchecked
+			List<TagEntity> result = query.getResultList();
 
-            return ret;
-        } catch (Throwable e) {
-            throw new TagGetException(e);
-        } finally {
-            manager.close();
-        }
-    }
+			List<Tag> ret = new ArrayList<Tag>();
+			for (TagEntity te : result) {
+				ret.add(te.getTag());
+			}
 
-    public List<Tag> getUniqueTags(List<String> tagNames) throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            StringBuffer querySb = new StringBuffer(
-                    "SELECT name, resourceId, min(dateCreated) " +
-                            "FROM TagEntity WHERE ");
-            int i = 0;
-            for (Iterator iter = tagNames.iterator(); iter.hasNext();) {
-                querySb.append("name").append(" = :name").append(i);
+			return ret;
+		} catch (Throwable e) {
+			throw new TagGetException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-                iter.next();
+	public List<Tag> getUniqueTags(List<String> tagNames)
+			throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			StringBuffer querySb = new StringBuffer(
+					"SELECT name, resourceId, min(dateCreated) "
+							+ "FROM TagEntity WHERE ");
+			int i = 0;
+			for (Iterator iter = tagNames.iterator(); iter.hasNext();) {
+				querySb.append("name").append(" = :name").append(i);
 
-                if (iter.hasNext()) {
-                    querySb.append(" OR ");
-                }
+				iter.next();
 
-                i++;
-            }
+				if (iter.hasNext()) {
+					querySb.append(" OR ");
+				}
 
-            querySb.append(" GROUP BY name, resourceId");
+				i++;
+			}
 
-            Query query = manager.createQuery(querySb.toString());
-            i = 0;
-            for (String tagName : tagNames) {
-                query.setParameter("name" + i++, tagName);
-            }
+			querySb.append(" GROUP BY name, resourceId");
 
-            // noinspection unchecked
-            List<Object[]> result = query.getResultList();
+			Query query = manager.createQuery(querySb.toString());
+			i = 0;
+			for (String tagName : tagNames) {
+				query.setParameter("name" + i++, tagName);
+			}
 
-            List<Tag> ret = new ArrayList<Tag>();
-            for (Object[] o : result) {
-                ret.add(new DummyTag((String) o[0], null, (String) o[1],
-                        null, (Date) o[2]));
-            }
+			// noinspection unchecked
+			List<Object[]> result = query.getResultList();
 
-            sortTagsByDate(ret);
+			List<Tag> ret = new ArrayList<Tag>();
+			for (Object[] o : result) {
+				ret.add(new DummyTag((String) o[0], null, (String) o[1], null,
+						(Date) o[2]));
+			}
 
-            return ret;
-        } catch (Throwable e) {
-            throw new TagGetException(e);
-        } finally {
-            manager.close();
-        }
-    }
+			sortTagsByDate(ret);
 
-    @SuppressWarnings({"unchecked"})
-    public List<Tag> getRelatedTags(List<Tag> relateTo) throws TagGetException {
-        List<Tag> ret = new ArrayList<Tag>();
+			return ret;
+		} catch (Throwable e) {
+			throw new TagGetException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-        Map<String, List<Tag>> otherResources = new HashMap<String, List<Tag>>();
+	@SuppressWarnings( { "unchecked" })
+	public List<Tag> getRelatedTags(List<Tag> relateTo) throws TagGetException {
+		List<Tag> ret = new ArrayList<Tag>();
 
-        EntityManager manager = emf.createEntityManager();
-        try {
-            for (Tag relatedTag : relateTo) {
-                List<TagEntity> result = manager.createQuery(
-                        "from TagEntity where name = :name").setParameter("name",
-                        relatedTag.getName()).getResultList();
+		Map<String, List<Tag>> otherResources = new HashMap<String, List<Tag>>();
 
-                for (TagEntity otherTag : result) {
-                    if (!otherResources.containsKey(otherTag.getResourceId())) {
-                        otherResources.put(otherTag.getResourceId(),
-                                getTags(otherTag.getResourceId()));
-                    }
-                }
-            }
+		EntityManager manager = emf.createEntityManager();
+		try {
+			for (Tag relatedTag : relateTo) {
+				List<TagEntity> result = manager.createQuery(
+						"from TagEntity where name = :name").setParameter(
+						"name", relatedTag.getName()).getResultList();
 
-            for (List<Tag> tagList : otherResources.values()) {
-                if (checkSimilarity(relateTo, tagList) >= MIN_SIMILARITY) {
-                    ret.addAll(tagList);
-                }
-            }
+				for (TagEntity otherTag : result) {
+					if (!otherResources.containsKey(otherTag.getResourceId())) {
+						otherResources.put(otherTag.getResourceId(),
+								getTags(otherTag.getResourceId()));
+					}
+				}
+			}
 
-            // don't return "relateTo" members
-            List<Tag> endRet = new ArrayList<Tag>(ret);
-            for (Tag tag : ret) {
-                if (tagListContainsTag(tag, relateTo)) {
-                    endRet.remove(tag);
-                }
-            }
+			for (List<Tag> tagList : otherResources.values()) {
+				if (checkSimilarity(relateTo, tagList) >= MIN_SIMILARITY) {
+					ret.addAll(tagList);
+				}
+			}
 
-            return endRet;
-        } finally {
-            manager.close();
-        }
-    }
+			// don't return "relateTo" members
+			List<Tag> endRet = new ArrayList<Tag>(ret);
+			for (Tag tag : ret) {
+				if (tagListContainsTag(tag, relateTo)) {
+					endRet.remove(tag);
+				}
+			}
 
-    private boolean tagListContainsTag(Tag tag, List<Tag> listToCheck) {
-        for (Tag tag2 : listToCheck) {
-            if (tag.getName().equals(tag2.getName())) {
-                return true;
-            }
-        }
+			return endRet;
+		} finally {
+			manager.close();
+		}
+	}
 
-        return false;
-    }
+	private boolean tagListContainsTag(Tag tag, List<Tag> listToCheck) {
+		for (Tag tag2 : listToCheck) {
+			if (tag.getName().equals(tag2.getName())) {
+				return true;
+			}
+		}
 
-    private double checkSimilarity(List<Tag> givenTags, List<Tag> listToCheck) {
-        double ret = 0;
+		return false;
+	}
 
-        for (Tag tag : givenTags) {
-            if (tagListContainsTag(tag, listToCheck)) {
-                ret++;
-            }
-        }
+	private double checkSimilarity(List<Tag> givenTags, List<Tag> listToCheck) {
+		double ret = 0;
 
-        return ret / (double) givenTags.size();
-    }
+		for (Tag tag : givenTags) {
+			if (tagListContainsTag(tag, listToCheck)) {
+				ret++;
+			}
+		}
 
-    public List<Tag> getTagsByAuthor(String author) throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            // noinspection unchecked
-            List<TagEntity> result = manager
-                    .createQuery(
-                            "from TagEntity where author = :author order by dateCreated desc")
-                    .setParameter("author", author).getResultList();
+		return ret / (double) givenTags.size();
+	}
 
-            List<Tag> ret = new ArrayList<Tag>();
-            for (TagEntity te : result) {
-                ret.add(te.getTag());
-            }
+	public List<Tag> getTagsByAuthor(String author) throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			// noinspection unchecked
+			List<TagEntity> result = manager
+					.createQuery(
+							"from TagEntity where author = :author order by dateCreated desc")
+					.setParameter("author", author).getResultList();
 
-            return ret;
-        } catch (Throwable e) {
-            throw new TagGetException(e);
-        } finally {
-            manager.close();
-        }
-    }
+			List<Tag> ret = new ArrayList<Tag>();
+			for (TagEntity te : result) {
+				ret.add(te.getTag());
+			}
 
-    public List<Tag> getUniqueTagsByAuthor(String author)
-            throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            // noinspection unchecked
-            List<Object[]> result = manager
-                    .createQuery(
-                            "SELECT name, min(dateCreated) FROM TagEntity " +
-                                    "WHERE author =  :author " +
-                                    "GROUP BY name") //+
-                            //"ORDER BY mdc DESC")
-                    .setParameter("author", author).getResultList();
+			return ret;
+		} catch (Throwable e) {
+			throw new TagGetException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-            List<Tag> ret = new ArrayList<Tag>();
-            for (Object[] o : result) {
-                ret.add(new DummyTag((String) o[0], author, null,
-                        null, (Date) o[1]));
-            }
+	public List<Tag> getUniqueTagsByAuthor(String author)
+			throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			// noinspection unchecked
+			List<Object[]> result = manager.createQuery(
+					"SELECT name, min(dateCreated) FROM TagEntity "
+							+ "WHERE author =  :author " + "GROUP BY name") // +
+					// "ORDER BY mdc DESC")
+					.setParameter("author", author).getResultList();
 
-            sortTagsByDate(ret);
+			List<Tag> ret = new ArrayList<Tag>();
+			for (Object[] o : result) {
+				ret.add(new DummyTag((String) o[0], author, null, null,
+						(Date) o[1]));
+			}
 
-            return ret;
-        } catch (Throwable e) {
-            throw new TagGetException(e);
-        } finally {
-            manager.close();
-        }
-    }
+			sortTagsByDate(ret);
 
-    public List<Tag> getTags(String name, String author)
-            throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            // noinspection unchecked
-            List<TagEntity> result = (List<TagEntity>) manager.createQuery(
-                    "FROM TagEntity WHERE name = :name AND " +
-                            "author = :author").setParameter("name", name).
-                    setParameter("author", author).getResultList();
+			return ret;
+		} catch (Throwable e) {
+			throw new TagGetException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-            if (result == null) {
-                return null;
-            }
+	public List<Tag> getTags(String name, String author) throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			// noinspection unchecked
+			List<TagEntity> result = (List<TagEntity>) manager.createQuery(
+					"FROM TagEntity WHERE name = :name AND "
+							+ "author = :author").setParameter("name", name)
+					.setParameter("author", author).getResultList();
 
-            List<Tag> ret = new ArrayList<Tag>();
-            for (TagEntity te : result) {
-                ret.add(te.getTag());
-            }
+			if (result == null) {
+				return null;
+			}
 
-            return ret;
-        } catch (Throwable e) {
-            throw new TagGetException(e);
-        } finally {
-            manager.close();
-        }
-    }
+			List<Tag> ret = new ArrayList<Tag>();
+			for (TagEntity te : result) {
+				ret.add(te.getTag());
+			}
 
-    public List<Tag> getUniqueTags(String resourceId)
-            throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            // noinspection unchecked
-            List<Object[]> result = manager
-                    .createQuery(
-                            "SELECT name, min(dateCreated) FROM TagEntity " +
-                                    "WHERE resourceId = :resourceId " +
-                                    "GROUP BY name") // +
-                            //"ORDER BY min(dateCreated) DESC")
-                    .setParameter("resourceId", resourceId).getResultList();
+			return ret;
+		} catch (Throwable e) {
+			throw new TagGetException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-            List<Tag> ret = new ArrayList<Tag>();
-            for (Object[] o : result) {
-                ret.add(new DummyTag((String) o[0], null, resourceId,
-                        null, (Date) o[1]));
-            }
+	public List<Tag> getUniqueTags(String resourceId) throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			// noinspection unchecked
+			List<Object[]> result = manager.createQuery(
+					"SELECT name, min(dateCreated) FROM TagEntity "
+							+ "WHERE resourceId = :resourceId "
+							+ "GROUP BY name") // +
+					// "ORDER BY min(dateCreated) DESC")
+					.setParameter("resourceId", resourceId).getResultList();
 
-            sortTagsByDate(ret);
+			List<Tag> ret = new ArrayList<Tag>();
+			for (Object[] o : result) {
+				ret.add(new DummyTag((String) o[0], null, resourceId, null,
+						(Date) o[1]));
+			}
 
-            return ret;
-        } catch (Throwable e) {
-            throw new TagGetException(e);
-        } finally {
-            manager.close();
-        }
-    }
+			sortTagsByDate(ret);
 
-    public String getFeedLink(FeedType feedType, String data, String type) {
-        return "/feeds/tag/" + feedType.toString() + "/"
-                    + Tools.encodeURL(data) + "/" + type;
-    }
+			return ret;
+		} catch (Throwable e) {
+			throw new TagGetException(e);
+		} finally {
+			manager.close();
+		}
+	}
 
-    public String getFeedLink(FeedType feedType, List<String> dataList,
-                              String type) {
-        StringBuffer sb = new StringBuffer();
+	public String getFeedLink(FeedType feedType, String data, String type) {
+		return "/feeds/tag/" + feedType.toString() + "/"
+				+ Tools.encodeURL(data) + "/" + type;
+	}
 
-        for (Iterator<String> iter = dataList.iterator(); iter.hasNext();) {
-            sb.append(iter.next());
-            if (iter.hasNext()) {
-                sb.append("+");
-            }
-        }
+	public String getFeedLink(FeedType feedType, List<String> dataList,
+			String type) {
+		StringBuffer sb = new StringBuffer();
 
-        return "/feeds/tag/" + feedType.toString() + "/"
-                    + Tools.encodeURL(sb.toString()) + "/" + type;
-    }
+		for (Iterator<String> iter = dataList.iterator(); iter.hasNext();) {
+			sb.append(iter.next());
+			if (iter.hasNext()) {
+				sb.append("+");
+			}
+		}
 
-    public List<String> getAllTagsNames() throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            //noinspection unchecked
-            return (List<String>) manager.createQuery("SELECT DISTINCT name FROM TagEntity")
-                    .getResultList();
-        } finally {
-            manager.close();
-        }
-    }
+		return "/feeds/tag/" + feedType.toString() + "/"
+				+ Tools.encodeURL(sb.toString()) + "/" + type;
+	}
 
-    public List<Tag> getAllTags() throws TagGetException {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            List<Tag> result = new ArrayList<Tag>();
-            //noinspection unchecked
-            List<TagEntity> tagEnitites = manager.createQuery("from TagEntity")
-                    .getResultList();
+	public List<String> getAllTagsNames(String resourceId)
+			throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		// noinspection unchecked
+		return (List<String>) manager
+				.createQuery(
+						"SELECT DISTINCT name FROM TagEntity WHERE resourceId = :resourceId")
+				.setParameter("resourceId", resourceId).getResultList();
+	}
 
-            for (TagEntity tagEnt : tagEnitites) {
-                result.add(tagEnt.getTag());
-            }
+	public List<Tag> getAllTags() throws TagGetException {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			List<Tag> result = new ArrayList<Tag>();
+			// noinspection unchecked
+			List<TagEntity> tagEnitites = manager.createQuery("from TagEntity")
+					.getResultList();
 
-            return result;
-        } finally {
-            manager.close();
-        }
-    }
+			for (TagEntity tagEnt : tagEnitites) {
+				result.add(tagEnt.getTag());
+			}
 
-    public List<Tag> searchTags(String tag, String author, String keyword) {
-        List<Tag> searchResult = new ArrayList<Tag>();
+			return result;
+		} finally {
+			manager.close();
+		}
+	}
 
-        log.debug("'" + tag + "' '" + author + "' '" + keyword + "'");
+	public List<Tag> searchTags(String tag, String author, String keyword) {
+		List<Tag> searchResult = new ArrayList<Tag>();
 
-        TagSearch tagSearch = new TagSearch(tag, author, keyword);
+		log.debug("'" + tag + "' '" + author + "' '" + keyword + "'");
 
-        try {
-            List<Tag> allTags = getAllTags();
+		TagSearch tagSearch = new TagSearch(tag, author, keyword);
 
-            for (Tag nextTag : allTags) {
-                if (tagSearch.matches(nextTag)) {
-                    searchResult.add(nextTag);
-                }
-            }
-        } catch (TagGetException e) {
-            e.printStackTrace();
-        }
+		try {
+			List<Tag> allTags = getAllTags();
 
-        return searchResult;
-    }
+			for (Tag nextTag : allTags) {
+				if (tagSearch.matches(nextTag)) {
+					searchResult.add(nextTag);
+				}
+			}
+		} catch (TagGetException e) {
+			e.printStackTrace();
+		}
 
-    public int getFeedHits(FeedType feedType, String data) {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            HitsEntity ce = manager.find(HitsEntity.class,
-                    new HitsIdEntity(data, feedType.toString()));
+		return searchResult;
+	}
 
-            return ce == null ? 0 : ce.getCount();
-        } finally {
-            manager.close();
-        }
-    }
+	public int getFeedHits(FeedType feedType, String data) {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			HitsEntity ce = manager.find(HitsEntity.class, new HitsIdEntity(
+					data, feedType.toString()));
 
-    public int getFeedVisits(FeedType feedType, String data) {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            VisitsEntity ve = manager.find(VisitsEntity.class,
-                    new VisitsIdEntity(data, feedType.toString()));
+			return ce == null ? 0 : ce.getCount();
+		} finally {
+			manager.close();
+		}
+	}
 
-            return ve == null ? 0 : ve.getCount();
-        } finally {
-            manager.close();
-        }
-    }
+	public int getFeedVisits(FeedType feedType, String data) {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			VisitsEntity ve = manager.find(VisitsEntity.class,
+					new VisitsIdEntity(data, feedType.toString()));
 
-    public void increaseFeedCounters(FeedType feedType, String data,
-                                     String ipAddress) {
-        EntityManager manager = emf.createEntityManager();
-        try {
-            // 1. Increasing the hit counter.
-            HitsEntity ce = manager.find(HitsEntity.class,
-                    new HitsIdEntity(data, feedType.toString()));
+			return ve == null ? 0 : ve.getCount();
+		} finally {
+			manager.close();
+		}
+	}
 
-            if (ce == null) {
-                manager.persist(new HitsEntity(
-                        new HitsIdEntity(data, feedType.toString()), 1));
-            } else {
-                ce.setCount(ce.getCount()+1);
-                manager.flush();
-            }
+	public void increaseFeedCounters(FeedType feedType, String data,
+			String ipAddress) {
+		EntityManager manager = emf.createEntityManager();
+		try {
+			// 1. Increasing the hit counter.
+			HitsEntity ce = manager.find(HitsEntity.class, new HitsIdEntity(
+					data, feedType.toString()));
 
-            // 2. Increasing the visits counter.
-            VisitsIpsEntity dbVie = manager.find(VisitsIpsEntity.class,
-                    new VisitsIpsIdEntity(data, feedType.toString(), ipAddress));
+			if (ce == null) {
+				manager.persist(new HitsEntity(new HitsIdEntity(data, feedType
+						.toString()), 1));
+			} else {
+				ce.setCount(ce.getCount() + 1);
+				manager.flush();
+			}
 
-            if (dbVie == null) {
-                // Storing the new ip address.
-                try {
-                    manager.persist(new VisitsIpsEntity(data,
-                            feedType.toString(), ipAddress));
-                } catch (Exception e) {
-                    // Somebody must have already added it.
-                    return;
-                }
+			// 2. Increasing the visits counter.
+			VisitsIpsEntity dbVie = manager
+					.find(VisitsIpsEntity.class, new VisitsIpsIdEntity(data,
+							feedType.toString(), ipAddress));
 
-                // Increasing the counter.
-                VisitsEntity ve = manager.find(VisitsEntity.class,
-                        new VisitsIdEntity(data, feedType.toString()));
+			if (dbVie == null) {
+				// Storing the new ip address.
+				try {
+					manager.persist(new VisitsIpsEntity(data, feedType
+							.toString(), ipAddress));
+				} catch (Exception e) {
+					// Somebody must have already added it.
+					return;
+				}
 
-                if (ve == null) {
-                    manager.persist(new VisitsEntity(
-                            new VisitsIdEntity(data, feedType.toString()), 1));
-                } else {
-                    ve.setCount(ve.getCount()+1);
-                    manager.flush();
-                }
-            }
-        } finally {
-            manager.close();
-        }
-    }
+				// Increasing the counter.
+				VisitsEntity ve = manager.find(VisitsEntity.class,
+						new VisitsIdEntity(data, feedType.toString()));
 
-    public Integer getAllSubscribers(String author) throws TagGetException {
-        Integer visits = 0;
+				if (ve == null) {
+					manager.persist(new VisitsEntity(new VisitsIdEntity(data,
+							feedType.toString()), 1));
+				} else {
+					ve.setCount(ve.getCount() + 1);
+					manager.flush();
+				}
+			}
+		} finally {
+			manager.close();
+		}
+	}
 
-        List<Tag> tagsByAuthor = getTagsByAuthor(author);
+	public Integer getAllSubscribers(String author) throws TagGetException {
+		Integer visits = 0;
 
-        for (Tag tag : tagsByAuthor) {
-            visits += getFeedVisits(FeedType.AUTHOR_TAG, tag.getName()+"+"+tag.getAuthor());
-        }
+		List<Tag> tagsByAuthor = getTagsByAuthor(author);
 
-        visits += getFeedVisits(FeedType.AUTHOR_ALL, author);
-        visits += getFeedVisits(FeedType.AUTHOR_UNIQUE, author);
+		for (Tag tag : tagsByAuthor) {
+			visits += getFeedVisits(FeedType.AUTHOR_TAG, tag.getName() + "+"
+					+ tag.getAuthor());
+		}
 
-        return visits;
-    }
+		visits += getFeedVisits(FeedType.AUTHOR_ALL, author);
+		visits += getFeedVisits(FeedType.AUTHOR_UNIQUE, author);
+
+		return visits;
+	}
 }




More information about the jboss-svn-commits mailing list