[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