/* * Gets a list of Revision's from the CSProcessor database for a specific * content spec */ public List<Object[]> getContentSpecRevisionsById(final Integer csId) { final List<Object[]> results = new ArrayList<Object[]>(); try { final List<String> additionalKeys = CollectionUtilities.toArrayList("revision", "topic" + csId); final BaseRestCollectionV1<RESTTopicV1, RESTTopicCollectionV1> topicRevisions; if (collectionsCache.containsKey(RESTTopicV1.class, additionalKeys)) { topicRevisions = collectionsCache.get(RESTTopicV1.class, RESTTopicCollectionV1.class, additionalKeys); } else { /* We need to expand the Revisions collection */ final ExpandDataTrunk expand = new ExpandDataTrunk(); final ExpandDataTrunk expandTags = new ExpandDataTrunk(new ExpandDataDetails("tags")); final ExpandDataTrunk expandRevs = new ExpandDataTrunk(new ExpandDataDetails("revisions")); expandTags.setBranches( CollectionUtilities.toArrayList( new ExpandDataTrunk(new ExpandDataDetails("categories")))); expandRevs.setBranches( CollectionUtilities.toArrayList( expandTags, new ExpandDataTrunk(new ExpandDataDetails("sourceUrls")), new ExpandDataTrunk(new ExpandDataDetails("properties")), new ExpandDataTrunk(new ExpandDataDetails("outgoingRelationships")), new ExpandDataTrunk(new ExpandDataDetails("incomingRelationships")))); expand.setBranches(CollectionUtilities.toArrayList(expandTags, expandRevs)); final String expandString = mapper.writeValueAsString(expand); // final String expandEncodedString = URLEncoder.encode(expandString, "UTF-8"); final RESTTopicV1 topic = client.getJSONTopic(csId, expandString); // Check that the topic is a content spec if (!ComponentBaseTopicV1.hasTag(topic, CSConstants.CONTENT_SPEC_TAG_ID)) return null; // Add the content spec revisions to the cache collectionsCache.add(RESTTopicV1.class, topic.getRevisions(), additionalKeys, true); topicRevisions = topic.getRevisions(); } // Create the unique array from the revisions if (topicRevisions != null && topicRevisions.getItems() != null) { for (RESTTopicV1 topicRev : topicRevisions.getItems()) { Object[] revision = new Object[2]; revision[0] = topicRev.getRevision(); revision[1] = topicRev.getLastModified(); results.add(revision); } } return results; } catch (Exception e) { log.error(ExceptionUtilities.getStackTrace(e)); } return null; }