From: Aron Roberts Date: Thu, 15 Oct 2009 05:14:43 +0000 (+0000) Subject: CSPACE-520: ID Service generates full lists that now include nearly all pertinent... X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=1c1caf5999d3252c79bb2e9a1d5dd704f7051951;p=tmp%2Fjakarta-migration.git CSPACE-520: ID Service generates full lists that now include nearly all pertinent details of ID generator instances. --- diff --git a/services/id/service/src/main/java/org/collectionspace/services/id/IDGeneratorInstance.java b/services/id/service/src/main/java/org/collectionspace/services/id/IDGeneratorInstance.java new file mode 100644 index 000000000..2664e463d --- /dev/null +++ b/services/id/service/src/main/java/org/collectionspace/services/id/IDGeneratorInstance.java @@ -0,0 +1,62 @@ +/** + * This document is a part of the source code and related artifacts + * for CollectionSpace, an open source collections management system + * for museums and related institutions: + * + * http://www.collectionspace.org + * http://wiki.collectionspace.org + * + * Copyright © 2009 Regents of the University of California + * + * Licensed under the Educational Community License (ECL), Version 2.0. + * You may not use this file except in compliance with this License. + * + * You may obtain a copy of the ECL 2.0 License at + * https://source.collectionspace.org/collection-space/LICENSE.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.collectionspace.services.id; + +/** + * IDGeneratorInstance. + * + * $LastChangedRevision: 850 $ + * $LastChangedDate: 2009-10-12 15:17:09 -0700 (Mon, 12 Oct 2009) $ + */ +public class IDGeneratorInstance { + + private String displayName; + private String description; + private String generatorState; + + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getGeneratorState() { + return generatorState; + } + + public void setGeneratorState(String generatorState) { + this.generatorState = generatorState; + } + +} diff --git a/services/id/service/src/main/java/org/collectionspace/services/id/IDResource.java b/services/id/service/src/main/java/org/collectionspace/services/id/IDResource.java index f21642c20..41328a8a1 100644 --- a/services/id/service/src/main/java/org/collectionspace/services/id/IDResource.java +++ b/services/id/service/src/main/java/org/collectionspace/services/id/IDResource.java @@ -340,7 +340,8 @@ public class IDResource { // or may not be a good idea. try { - Map generators = service.readIDGeneratorsList(); + Map generators = + service.readIDGeneratorsList(); // @TODO Filtering by role will likely take place here ... @@ -474,7 +475,8 @@ public class IDResource { * * @return A summary list of ID generator instances. */ - private String formattedSummaryList(Map generators) { + private String formattedSummaryList( + Map generators) { Document doc = DocumentHelper.createDocument(); Element root = doc.addElement(ID_GENERATOR_LIST_NAME); @@ -517,7 +519,8 @@ public class IDResource { * * @return A full list of ID generator instances. */ - private String formattedFullList(Map generators) { + private String formattedFullList( + Map generators) { Document doc = DocumentHelper.createDocument(); Element root = doc.addElement(ID_GENERATOR_LIST_NAME); @@ -528,10 +531,13 @@ public class IDResource { Element listitem = null; Element csid = null; Element uri = null; + Element displayname = null; + Element description = null; Element generator = null; Element generatorRoot = null; String generatorStr = ""; Document generatorDoc = null; + IDGeneratorInstance instance = null; for (String csidValue : generators.keySet() ) { listitem = root.addElement(ID_GENERATOR_LIST_ITEM_NAME); @@ -539,10 +545,15 @@ public class IDResource { csid.addText(csidValue); uri = listitem.addElement("uri"); uri.addText(getRelativePath(csidValue)); + instance = generators.get(csidValue); + displayname = listitem.addElement("displayname"); + displayname.addText(instance.getDisplayName()); + description = listitem.addElement("description"); + description.addText(instance.getDescription()); generator = listitem.addElement("idgenerator"); // Using the CSID as a key, get the XML string // representation of the ID generator. - generatorStr = generators.get(csidValue); + generatorStr = instance.getGeneratorState(); // Convert the XML string representation of the // ID generator to a new XML document, copy its // root element, and append it to the relevant location diff --git a/services/id/service/src/main/java/org/collectionspace/services/id/IDService.java b/services/id/service/src/main/java/org/collectionspace/services/id/IDService.java index 4fad0e29a..26a1a8a46 100644 --- a/services/id/service/src/main/java/org/collectionspace/services/id/IDService.java +++ b/services/id/service/src/main/java/org/collectionspace/services/id/IDService.java @@ -69,7 +69,8 @@ public interface IDService { // Read a list of objects (aka read multiple) // and return a list (map) of those objects and their identifiers. - public Map readIDGeneratorsList() throws IllegalStateException; + public Map readIDGeneratorsList() + throws IllegalStateException; // Update public void updateIDGenerator(String csid, String serializedIDGenerator) diff --git a/services/id/service/src/main/java/org/collectionspace/services/id/IDServiceJdbcImpl.java b/services/id/service/src/main/java/org/collectionspace/services/id/IDServiceJdbcImpl.java index 7ae3ef4fd..8ee6824f8 100644 --- a/services/id/service/src/main/java/org/collectionspace/services/id/IDServiceJdbcImpl.java +++ b/services/id/service/src/main/java/org/collectionspace/services/id/IDServiceJdbcImpl.java @@ -623,11 +623,13 @@ public class IDServiceJdbcImpl implements IDService { * @throws IllegalStateException if a storage-related error occurred. */ @Override - public Map readIDGeneratorsList() throws IllegalStateException { + public Map readIDGeneratorsList() + throws IllegalStateException { logger.debug("> in readIDGeneratorsList"); - Map generators = new HashMap(); + Map generators = + new HashMap(); Connection conn = null; try { @@ -636,15 +638,21 @@ public class IDServiceJdbcImpl implements IDService { Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery( - "SELECT csid, id_generator_state FROM id_generators"); + "SELECT csid, displayname, description, " + + "id_generator_state FROM id_generators"); boolean moreRows = rs.next(); if (! moreRows) { return generators; } + IDGeneratorInstance instance = null; while (moreRows = rs.next()) { - generators.put(rs.getString(1), rs.getString(2)); + instance = new IDGeneratorInstance(); + instance.setDisplayName(rs.getString(2)); + instance.setDescription(rs.getString(3)); + instance.setGeneratorState(rs.getString(4)); + generators.put(rs.getString(1), instance); } rs.close(); diff --git a/services/id/service/src/test/java/org/collectionspace/services/id/test/IDServiceJdbcImplTest.java b/services/id/service/src/test/java/org/collectionspace/services/id/test/IDServiceJdbcImplTest.java index 35ab978df..f6f2874fa 100644 --- a/services/id/service/src/test/java/org/collectionspace/services/id/test/IDServiceJdbcImplTest.java +++ b/services/id/service/src/test/java/org/collectionspace/services/id/test/IDServiceJdbcImplTest.java @@ -93,7 +93,7 @@ public class IDServiceJdbcImplTest { {"hasRequiredDatabaseTable", "createIDGenerator", "readIDGenerator"}) public void readIDGeneratorsList() throws IllegalStateException { - Map generators = jdbc.readIDGeneratorsList(); + Map generators = jdbc.readIDGeneratorsList(); // @TODO Replace this placeholder test, which just // verifies that no error occurred while retrieving the list, @@ -106,7 +106,7 @@ public class IDServiceJdbcImplTest { "readIDGeneratorsList"}) public void readIDGeneratorsSummaryList() throws IllegalStateException { - Map generators = jdbc.readIDGeneratorsList(); + Map generators = jdbc.readIDGeneratorsList(); // @TODO Replace this placeholder test, which just // verifies that no error occurred while retrieving the list,