From 34d14228685cf07300a2bb55ae70eddbcd4329dc Mon Sep 17 00:00:00 2001 From: jendib Date: Sat, 13 Feb 2016 18:47:13 +0100 Subject: [PATCH 01/24] #65: Add subject and identifier metadata --- .../docs/core/dao/jpa/DocumentDao.java | 6 +- .../docs/core/dao/jpa/dto/DocumentDto.java | 102 +++++------------- .../docs/core/dao/lucene/LuceneDao.java | 12 ++- .../sismics/docs/core/model/jpa/Document.java | 100 +++++------------ .../src/main/resources/config.properties | 2 +- .../resources/db/update/dbupdate-006-0.sql | 3 + docs-web/src/dev/resources/config.properties | 2 +- .../docs/rest/resource/DocumentResource.java | 19 +++- .../src/partial/docs/document.edit.html | 14 +++ .../partial/docs/document.view.content.html | 6 ++ .../main/webapp/src/partial/share/share.html | 6 ++ docs-web/src/prod/resources/config.properties | 2 +- .../src/stress/resources/config.properties | 2 +- .../docs/rest/TestDocumentResource.java | 6 ++ 14 files changed, 126 insertions(+), 156 deletions(-) create mode 100644 docs-core/src/main/resources/db/update/dbupdate-006-0.sql diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java index 9be63b68..0d58e3b1 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java @@ -89,7 +89,7 @@ public class DocumentDao { */ public DocumentDto getDocument(String id) { EntityManager em = ThreadLocalContext.get().getEntityManager(); - StringBuilder sb = new StringBuilder("select d.DOC_ID_C, d.DOC_TITLE_C, d.DOC_DESCRIPTION_C, d.DOC_CREATEDATE_D, d.DOC_LANGUAGE_C, "); + StringBuilder sb = new StringBuilder("select d.DOC_ID_C, d.DOC_TITLE_C, d.DOC_DESCRIPTION_C, d.DOC_SUBJECT_C, d.DOC_IDENTIFIER_C, d.DOC_CREATEDATE_D, d.DOC_LANGUAGE_C, "); sb.append(" (select count(s.SHA_ID_C) from T_SHARE s, T_ACL ac where ac.ACL_SOURCEID_C = d.DOC_ID_C and ac.ACL_TARGETID_C = s.SHA_ID_C and ac.ACL_DELETEDATE_D is null and s.SHA_DELETEDATE_D is null), "); sb.append(" (select count(f.FIL_ID_C) from T_FILE f where f.FIL_DELETEDATE_D is null and f.FIL_IDDOC_C = d.DOC_ID_C), "); sb.append(" u.USE_USERNAME_C "); @@ -109,6 +109,8 @@ public class DocumentDao { documentDto.setId((String) o[i++]); documentDto.setTitle((String) o[i++]); documentDto.setDescription((String) o[i++]); + documentDto.setSubject((String) o[i++]); + documentDto.setIdentifier((String) o[i++]); documentDto.setCreateTimestamp(((Timestamp) o[i++]).getTime()); documentDto.setLanguage((String) o[i++]); documentDto.setShared(((Number) o[i++]).intValue() > 0); @@ -296,6 +298,8 @@ public class DocumentDao { // Update the document documentFromDb.setTitle(document.getTitle()); documentFromDb.setDescription(document.getDescription()); + documentFromDb.setSubject(document.getSubject()); + documentFromDb.setIdentifier(document.getIdentifier()); documentFromDb.setCreateDate(document.getCreateDate()); documentFromDb.setLanguage(document.getLanguage()); diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java index 38414c80..e67a7f7d 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java @@ -24,6 +24,16 @@ public class DocumentDto { */ private String description; + /** + * Subject. + */ + private String subject; + + /** + * Identifier. + */ + private String identifier; + /** * Language. */ @@ -49,142 +59,82 @@ public class DocumentDto { */ private String creator; - /** - * Getter de id. - * - * @return the id - */ public String getId() { return id; } - /** - * Setter de id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter de title. - * - * @return the title - */ public String getTitle() { return title; } - /** - * Setter de title. - * - * @param title title - */ public void setTitle(String title) { this.title = title; } - /** - * Getter de description. - * - * @return the description - */ public String getDescription() { return description; } - /** - * Setter de description. - * - * @param description description - */ public void setDescription(String description) { this.description = description; } - /** - * Getter de createTimestamp. - * - * @return the createTimestamp - */ + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + public Long getCreateTimestamp() { return createTimestamp; } - /** - * Setter of createTimestamp. - * - * @param createTimestamp createTimestamp - */ public void setCreateTimestamp(Long createTimestamp) { this.createTimestamp = createTimestamp; } - /** - * Getter of shared. - * - * @return the shared - */ public Boolean getShared() { return shared; } - /** - * Setter of shared. - * - * @param shared shared - */ public void setShared(Boolean shared) { this.shared = shared; } - /** - * Getter of language. - * - * @return the language - */ public String getLanguage() { return language; } - /** - * Setter of language. - * - * @param language language - */ public void setLanguage(String language) { this.language = language; } - /** - * Getter of fileCount. - * @return fileCount - */ public Integer getFileCount() { return fileCount; } - /** - * Setter of fileCount. - * @param fileCount fileCount - */ public void setFileCount(Integer fileCount) { this.fileCount = fileCount; } - /** - * Getter of creator. - * @return creator - */ public String getCreator() { return creator; } - /** - * Setter of creator. - * @param creator creator - */ public void setCreator(String creator) { this.creator = creator; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/lucene/LuceneDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/lucene/LuceneDao.java index c76113c7..cd2d1d0c 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/lucene/LuceneDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/lucene/LuceneDao.java @@ -159,6 +159,8 @@ public class LuceneDao { BooleanQuery query = new BooleanQuery(); query.add(qpHelper.parse(searchQuery, "title"), Occur.SHOULD); query.add(qpHelper.parse(searchQuery, "description"), Occur.SHOULD); + query.add(qpHelper.parse(searchQuery, "subject"), Occur.SHOULD); + query.add(qpHelper.parse(searchQuery, "identifier"), Occur.SHOULD); query.add(qpHelper.parse(fullSearchQuery, "content"), Occur.SHOULD); // Search @@ -198,12 +200,16 @@ public class LuceneDao { org.apache.lucene.document.Document luceneDocument = new org.apache.lucene.document.Document(); luceneDocument.add(new StringField("id", document.getId(), Field.Store.YES)); luceneDocument.add(new StringField("type", "document", Field.Store.YES)); - if (document.getTitle() != null) { - luceneDocument.add(new TextField("title", document.getTitle(), Field.Store.NO)); - } + luceneDocument.add(new TextField("title", document.getTitle(), Field.Store.NO)); if (document.getDescription() != null) { luceneDocument.add(new TextField("description", document.getDescription(), Field.Store.NO)); } + if (document.getSubject() != null) { + luceneDocument.add(new TextField("subject", document.getSubject(), Field.Store.NO)); + } + if (document.getIdentifier() != null) { + luceneDocument.add(new TextField("identifier", document.getIdentifier(), Field.Store.NO)); + } return luceneDocument; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Document.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Document.java index 12cb5a7c..2964a02d 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Document.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Document.java @@ -39,7 +39,7 @@ public class Document implements Loggable { /** * Title. */ - @Column(name = "DOC_TITLE_C", length = 100) + @Column(name = "DOC_TITLE_C", nullable = false, length = 100) private String title; /** @@ -48,6 +48,18 @@ public class Document implements Loggable { @Column(name = "DOC_DESCRIPTION_C", length = 4000) private String description; + /** + * Subject. + */ + @Column(name = "DOC_SUBJECT_C", length = 500) + private String subject; + + /** + * Identifer. + */ + @Column(name = "DOC_IDENTIFIER_C", length = 500) + private String identifier; + /** * Creation date. */ @@ -60,129 +72,75 @@ public class Document implements Loggable { @Column(name = "DOC_DELETEDATE_D") private Date deleteDate; - /** - * Getter of id. - * - * @return the id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of language. - * - * @return the language - */ public String getLanguage() { return language; } - /** - * Setter of language. - * - * @param language language - */ public void setLanguage(String language) { this.language = language; } - /** - * Getter of userId. - * - * @return the userId - */ public String getUserId() { return userId; } - /** - * Setter of userId. - * - * @param userId userId - */ public void setUserId(String userId) { this.userId = userId; } - /** - * Getter of title. - * - * @return the title - */ public String getTitle() { return title; } - /** - * Setter of title. - * - * @param title title - */ public void setTitle(String title) { this.title = title; } - /** - * Getter of description. - * - * @return the description - */ public String getDescription() { return description; } - /** - * Setter of description. - * - * @param description description - */ public void setDescription(String description) { this.description = description; } + + public String getSubject() { + return subject; + } + + public void setSubject(String subject) { + this.subject = subject; + } + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } - /** - * Getter of createDate. - * - * @return the createDate - */ public Date getCreateDate() { return createDate; } - /** - * Setter of createDate. - * - * @param createDate createDate - */ public void setCreateDate(Date createDate) { this.createDate = createDate; } - /** - * Getter of deleteDate. - * - * @return the deleteDate - */ @Override public Date getDeleteDate() { return deleteDate; } - /** - * Setter of deleteDate. - * - * @param deleteDate deleteDate - */ public void setDeleteDate(Date deleteDate) { this.deleteDate = deleteDate; } diff --git a/docs-core/src/main/resources/config.properties b/docs-core/src/main/resources/config.properties index a8182ebd..cff11a73 100644 --- a/docs-core/src/main/resources/config.properties +++ b/docs-core/src/main/resources/config.properties @@ -1 +1 @@ -db.version=5 \ No newline at end of file +db.version=6 \ No newline at end of file diff --git a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql new file mode 100644 index 00000000..3213010c --- /dev/null +++ b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql @@ -0,0 +1,3 @@ +alter table T_DOCUMENT add column DOC_SUBJECT_C varchar(500); +alter table T_DOCUMENT add column DOC_IDENTIFIER_C varchar(500); +update T_CONFIG set CFG_VALUE_C = '6' where CFG_ID_C = 'DB_VERSION'; diff --git a/docs-web/src/dev/resources/config.properties b/docs-web/src/dev/resources/config.properties index 680c36e5..6c2faf82 100644 --- a/docs-web/src/dev/resources/config.properties +++ b/docs-web/src/dev/resources/config.properties @@ -1,3 +1,3 @@ api.current_version=${project.version} api.min_version=1.0 -db.version=5 \ No newline at end of file +db.version=6 \ No newline at end of file diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java index 2dda9242..e206b9cd 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java @@ -128,7 +128,8 @@ public class DocumentResource extends BaseResource { } // Below is specific to GET /document/id - + document.add("subject", JsonUtil.nullable(documentDto.getSubject())); + document.add("identifier", JsonUtil.nullable(documentDto.getIdentifier())); document.add("creator", documentDto.getCreator()); // Add ACL @@ -390,6 +391,8 @@ public class DocumentResource extends BaseResource { public Response add( @FormParam("title") String title, @FormParam("description") String description, + @FormParam("subject") String subject, + @FormParam("identifier") String identifier, @FormParam("tags") List tagList, @FormParam("language") String language, @FormParam("create_date") String createDateStr) { @@ -401,6 +404,8 @@ public class DocumentResource extends BaseResource { title = ValidationUtil.validateLength(title, "title", 1, 100, false); language = ValidationUtil.validateLength(language, "language", 3, 3, false); description = ValidationUtil.validateLength(description, "description", 0, 4000, true); + subject = ValidationUtil.validateLength(subject, "subject", 0, 500, true); + identifier = ValidationUtil.validateLength(identifier, "description", 0, 500, true); Date createDate = ValidationUtil.validateDate(createDateStr, "create_date", true); if (!Constants.SUPPORTED_LANGUAGES.contains(language)) { throw new ClientException("ValidationError", MessageFormat.format("{0} is not a supported language", language)); @@ -412,6 +417,8 @@ public class DocumentResource extends BaseResource { document.setUserId(principal.getId()); document.setTitle(title); document.setDescription(description); + document.setSubject(subject); + document.setIdentifier(identifier); document.setLanguage(language); if (createDate == null) { document.setCreateDate(new Date()); @@ -461,6 +468,8 @@ public class DocumentResource extends BaseResource { @PathParam("id") String id, @FormParam("title") String title, @FormParam("description") String description, + @FormParam("subject") String subject, + @FormParam("identifier") String identifier, @FormParam("tags") List tagList, @FormParam("language") String language, @FormParam("create_date") String createDateStr) { @@ -472,6 +481,8 @@ public class DocumentResource extends BaseResource { title = ValidationUtil.validateLength(title, "title", 1, 100, true); language = ValidationUtil.validateLength(language, "language", 3, 3, true); description = ValidationUtil.validateLength(description, "description", 0, 4000, true); + subject = ValidationUtil.validateLength(subject, "subject", 0, 500, true); + identifier = ValidationUtil.validateLength(identifier, "identifier", 0, 500, true); Date createDate = ValidationUtil.validateDate(createDateStr, "create_date", true); if (language != null && !Constants.SUPPORTED_LANGUAGES.contains(language)) { throw new ClientException("ValidationError", MessageFormat.format("{0} is not a supported language", language)); @@ -492,6 +503,12 @@ public class DocumentResource extends BaseResource { if (!StringUtils.isEmpty(description)) { document.setDescription(description); } + if (!StringUtils.isEmpty(subject)) { + document.setSubject(subject); + } + if (!StringUtils.isEmpty(identifier)) { + document.setIdentifier(identifier); + } if (createDate != null) { document.setCreateDate(createDate); } diff --git a/docs-web/src/main/webapp/src/partial/docs/document.edit.html b/docs-web/src/main/webapp/src/partial/docs/document.edit.html index 736f1136..50738c40 100644 --- a/docs-web/src/main/webapp/src/partial/docs/document.edit.html +++ b/docs-web/src/main/webapp/src/partial/docs/document.edit.html @@ -18,6 +18,20 @@ name="description" ng-model="document.description" ng-disabled="fileIsUploading"> +
+ +
+ +
+
+
+ +
+ +
+
diff --git a/docs-web/src/main/webapp/src/partial/docs/document.view.content.html b/docs-web/src/main/webapp/src/partial/docs/document.view.content.html index 4d5d7a9d..a2d7b591 100644 --- a/docs-web/src/main/webapp/src/partial/docs/document.view.content.html +++ b/docs-web/src/main/webapp/src/partial/docs/document.view.content.html @@ -1,4 +1,10 @@

+
+
Subject
+
{{ document.subject }}
+
Identifier
+
{{ document.identifier }}
+
diff --git a/docs-web/src/main/webapp/src/partial/share/share.html b/docs-web/src/main/webapp/src/partial/share/share.html index 1f1e1d26..1f6a0964 100644 --- a/docs-web/src/main/webapp/src/partial/share/share.html +++ b/docs-web/src/main/webapp/src/partial/share/share.html @@ -34,6 +34,12 @@

+
+
Subject
+
{{ document.subject }}
+
Identifier
+
{{ document.identifier }}
+
diff --git a/docs-web/src/prod/resources/config.properties b/docs-web/src/prod/resources/config.properties index 680c36e5..6c2faf82 100644 --- a/docs-web/src/prod/resources/config.properties +++ b/docs-web/src/prod/resources/config.properties @@ -1,3 +1,3 @@ api.current_version=${project.version} api.min_version=1.0 -db.version=5 \ No newline at end of file +db.version=6 \ No newline at end of file diff --git a/docs-web/src/stress/resources/config.properties b/docs-web/src/stress/resources/config.properties index 680c36e5..6c2faf82 100644 --- a/docs-web/src/stress/resources/config.properties +++ b/docs-web/src/stress/resources/config.properties @@ -1,3 +1,3 @@ api.current_version=${project.version} api.min_version=1.0 -db.version=5 \ No newline at end of file +db.version=6 \ No newline at end of file diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java index e48ada16..2bb7072c 100644 --- a/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java +++ b/docs-web/src/test/java/com/sismics/docs/rest/TestDocumentResource.java @@ -62,6 +62,8 @@ public class TestDocumentResource extends BaseJerseyTest { .put(Entity.form(new Form() .param("title", "My super title document 1") .param("description", "My super description for document 1") + .param("subject", "Subject document 1") + .param("identifier", "Identifier document 1") .param("tags", tag1Id) .param("language", "eng") .param("create_date", Long.toString(create1Date))), JsonObject.class); @@ -160,6 +162,8 @@ public class TestDocumentResource extends BaseJerseyTest { Assert.assertEquals(1, searchDocuments("full:title", document1Token)); Assert.assertEquals(1, searchDocuments("title", document1Token)); Assert.assertEquals(1, searchDocuments("super description", document1Token)); + Assert.assertEquals(1, searchDocuments("subject", document1Token)); + Assert.assertEquals(1, searchDocuments("identifier", document1Token)); Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy").print(new Date().getTime()), document1Token)); Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy-MM").print(new Date().getTime()), document1Token)); Assert.assertEquals(1, searchDocuments("at:" + DateTimeFormat.forPattern("yyyy-MM-dd").print(new Date().getTime()), document1Token)); @@ -190,6 +194,8 @@ public class TestDocumentResource extends BaseJerseyTest { Assert.assertEquals(true, json.getBoolean("shared")); Assert.assertEquals("My super title document 1", json.getString("title")); Assert.assertEquals("My super description for document 1", json.getString("description")); + Assert.assertEquals("Subject document 1", json.getString("subject")); + Assert.assertEquals("Identifier document 1", json.getString("identifier")); Assert.assertEquals("eng", json.getString("language")); Assert.assertEquals(create1Date, json.getJsonNumber("create_date").longValue()); tags = json.getJsonArray("tags"); From 7f2f480b25e895151d4587dd7cd8efbeb6b57a2a Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 14 Feb 2016 01:58:32 +0100 Subject: [PATCH 02/24] #65: Init vocabulary resource --- .../docs/core/dao/jpa/VocabularyDao.java | 9 + .../sismics/docs/core/model/jpa/AuditLog.java | 60 ---- .../core/model/jpa/AuthenticationToken.java | 66 ----- .../docs/core/model/jpa/BaseFunction.java | 10 - .../sismics/docs/core/model/jpa/Comment.java | 60 ---- .../sismics/docs/core/model/jpa/Config.java | 20 -- .../docs/core/model/jpa/DocumentTag.java | 40 --- .../com/sismics/docs/core/model/jpa/Role.java | 40 --- .../docs/core/model/jpa/RoleBaseFunction.java | 50 ---- .../sismics/docs/core/model/jpa/Share.java | 40 --- .../com/sismics/docs/core/model/jpa/Tag.java | 70 ----- .../docs/core/model/jpa/Vocabulary.java | 69 +++++ .../resources/db/update/dbupdate-006-0.sql | 275 ++++++++++++++++++ .../rest/resource/VocabularyResource.java | 12 + .../docs/rest/TestVocabularyResource.java | 19 ++ 15 files changed, 384 insertions(+), 456 deletions(-) create mode 100644 docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java create mode 100644 docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java create mode 100644 docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java create mode 100644 docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java new file mode 100644 index 00000000..a7cef7b0 --- /dev/null +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java @@ -0,0 +1,9 @@ +package com.sismics.docs.core.dao.jpa; + +/** + * Vocabulary DAO. + * + * @author bgamard + */ +public class VocabularyDao { +} diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuditLog.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuditLog.java index 6e38c780..ce29e1f9 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuditLog.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuditLog.java @@ -58,110 +58,50 @@ public class AuditLog { @Column(name = "LOG_CREATEDATE_D", nullable = false) private Date createDate; - /** - * Getter of id. - * - * @return id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of entityId. - * - * @return entityId - */ public String getEntityId() { return entityId; } - /** - * Setter of entityId. - * - * @param entityId entityId - */ public void setEntityId(String entityId) { this.entityId = entityId; } - /** - * Getter of entityClass. - * - * @return entityClass - */ public String getEntityClass() { return entityClass; } - /** - * Setter of entityClass. - * - * @param entityClass entityClass - */ public void setEntityClass(String entityClass) { this.entityClass = entityClass; } - /** - * Getter of message. - * - * @return message - */ public String getMessage() { return message; } - /** - * Setter of message. - * - * @param message message - */ public void setMessage(String message) { this.message = message; } - /** - * Getter of type. - * - * @return type - */ public AuditLogType getType() { return type; } - /** - * Setter of type. - * - * @param type type - */ public void setType(AuditLogType type) { this.type = type; } - /** - * Getter of createDate. - * - * @return createDate - */ public Date getCreateDate() { return createDate; } - /** - * Setter of createDate. - * - * @param createDate createDate - */ public void setCreateDate(Date createDate) { this.createDate = createDate; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuthenticationToken.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuthenticationToken.java index 2d41a3ed..c5030e0d 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuthenticationToken.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuthenticationToken.java @@ -60,124 +60,58 @@ public class AuthenticationToken { @Column(name = "AUT_LASTCONNECTIONDATE_D") private Date lastConnectionDate; - /** - * Getter of id. - * - * @return id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of userId. - * - * @return userId - */ public String getUserId() { return userId; } - /** - * Setter of userId. - * - * @param userId userId - */ public void setUserId(String userId) { this.userId = userId; } - /** - * Getter of longLasted. - * - * @return longLasted - */ public boolean isLongLasted() { return longLasted; } - /** - * Setter of longLasted. - * - * @param longLasted longLasted - */ public void setLongLasted(boolean longLasted) { this.longLasted = longLasted; } - /** - * Getter of ip. - * @return ip - */ public String getIp() { return ip; } - /** - * Setter of ip. - * @param ip ip - */ public void setIp(String ip) { this.ip = ip; } - /** - * Getter of userAgent. - * @return userAgent - */ public String getUserAgent() { return userAgent; } - /** - * Setter of userAgent. - * @param userAgent userAgent - */ public void setUserAgent(String userAgent) { this.userAgent = userAgent; } - /** - * Getter of creationDate. - * - * @return creationDate - */ public Date getCreationDate() { return creationDate; } - /** - * Setter of creationDate. - * - * @param creationDate creationDate - */ public void setCreationDate(Date creationDate) { this.creationDate = creationDate; } - /** - * Getter of lastConnectionDate. - * - * @return lastConnectionDate - */ public Date getLastConnectionDate() { return lastConnectionDate; } - /** - * Setter of lastConnectionDate. - * - * @param lastConnectionDate lastConnectionDate - */ public void setLastConnectionDate(Date lastConnectionDate) { this.lastConnectionDate = lastConnectionDate; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/BaseFunction.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/BaseFunction.java index 56bc1418..530d9fe8 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/BaseFunction.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/BaseFunction.java @@ -22,20 +22,10 @@ public class BaseFunction { @Column(name = "BAF_ID_C", length = 10) private String id; - /** - * Getter of id. - * - * @return id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Comment.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Comment.java index 9b3fd2bf..574eedc7 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Comment.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Comment.java @@ -54,111 +54,51 @@ public class Comment implements Loggable { @Column(name = "COM_DELETEDATE_D") private Date deleteDate; - /** - * Getter of id. - * - * @return the id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of documentId. - * - * @return the documentId - */ public String getDocumentId() { return documentId; } - /** - * Setter of documentId. - * - * @param documentId documentId - */ public void setDocumentId(String documentId) { this.documentId = documentId; } - /** - * Getter of createDate. - * - * @return the createDate - */ public Date getCreateDate() { return createDate; } - /** - * Setter of createDate. - * - * @param createDate createDate - */ public void setCreateDate(Date createDate) { this.createDate = createDate; } - /** - * Getter of deleteDate. - * - * @return the deleteDate - */ @Override public Date getDeleteDate() { return deleteDate; } - /** - * Setter of deleteDate. - * - * @param deleteDate deleteDate - */ public void setDeleteDate(Date deleteDate) { this.deleteDate = deleteDate; } - /** - * Getter of content. - * - * @return the content - */ public String getContent() { return content; } - /** - * Setter of content. - * - * @param content content - */ public void setContent(String content) { this.content = content; } - /** - * Getter of userId. - * - * @return the userId - */ public String getUserId() { return userId; } - /** - * Setter of userId. - * - * @param userId userId - */ public void setUserId(String userId) { this.userId = userId; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Config.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Config.java index 26f89601..65c196d6 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Config.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Config.java @@ -32,38 +32,18 @@ public class Config { @Column(name = "CFG_VALUE_C", length = 250) private String value; - /** - * Getter of id. - * - * @return id - */ public ConfigType getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(ConfigType id) { this.id = id; } - /** - * Getter of value. - * - * @return value - */ public String getValue() { return value; } - /** - * Setter of value. - * - * @param value value - */ public void setValue(String value) { this.value = value; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/DocumentTag.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/DocumentTag.java index af8451c5..51b0d51a 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/DocumentTag.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/DocumentTag.java @@ -48,74 +48,34 @@ public class DocumentTag implements Serializable { @Column(name = "DOT_DELETEDATE_D") private Date deleteDate; - /** - * Getter of id. - * - * @return id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter de documentId. - * - * @return the documentId - */ public String getDocumentId() { return documentId; } - /** - * Setter de documentId. - * - * @param documentId documentId - */ public void setDocumentId(String documentId) { this.documentId = documentId; } - /** - * Getter de tagId. - * - * @return the tagId - */ public String getTagId() { return tagId; } - /** - * Setter de tagId. - * - * @param tagId tagId - */ public void setTagId(String tagId) { this.tagId = tagId; } - /** - * Getter of deleteDate. - * - * @return the deleteDate - */ public Date getDeleteDate() { return deleteDate; } - /** - * Setter of deleteDate. - * - * @param deleteDate deleteDate - */ public void setDeleteDate(Date deleteDate) { this.deleteDate = deleteDate; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Role.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Role.java index bfdf1449..287401d6 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Role.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Role.java @@ -42,74 +42,34 @@ public class Role { @Column(name = "ROL_DELETEDATE_D") private Date deleteDate; - /** - * Getter of id. - * - * @return id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of name. - * - * @return name - */ public String getName() { return name; } - /** - * Setter of name. - * - * @param name name - */ public void setName(String name) { this.name = name; } - /** - * Getter of createDate. - * - * @return createDate - */ public Date getCreateDate() { return createDate; } - /** - * Setter of createDate. - * - * @param createDate createDate - */ public void setCreateDate(Date createDate) { this.createDate = createDate; } - /** - * Getter of deleteDate. - * - * @return deleteDate - */ public Date getDeleteDate() { return deleteDate; } - /** - * Setter of deleteDate. - * - * @param deleteDate deleteDate - */ public void setDeleteDate(Date deleteDate) { this.deleteDate = deleteDate; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/RoleBaseFunction.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/RoleBaseFunction.java index d3f7303f..d4600244 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/RoleBaseFunction.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/RoleBaseFunction.java @@ -48,92 +48,42 @@ public class RoleBaseFunction { @Column(name = "RBF_DELETEDATE_D") private Date deleteDate; - /** - * Getter of id. - * - * @return id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of roleId. - * - * @return roleId - */ public String getRoleId() { return roleId; } - /** - * Setter of roleId. - * - * @param roleId roleId - */ public void setRoleId(String roleId) { this.roleId = roleId; } - /** - * Getter of baseFunctionId. - * - * @return baseFunctionId - */ public String getBaseFunctionId() { return baseFunctionId; } - /** - * Setter of baseFunctionId. - * - * @param baseFunctionId baseFunctionId - */ public void setBaseFunctionId(String baseFunctionId) { this.baseFunctionId = baseFunctionId; } - /** - * Getter of createDate. - * - * @return createDate - */ public Date getCreateDate() { return createDate; } - /** - * Setter of createDate. - * - * @param createDate createDate - */ public void setCreateDate(Date createDate) { this.createDate = createDate; } - /** - * Getter of deleteDate. - * - * @return deleteDate - */ public Date getDeleteDate() { return deleteDate; } - /** - * Setter of deleteDate. - * - * @param deleteDate deleteDate - */ public void setDeleteDate(Date deleteDate) { this.deleteDate = deleteDate; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Share.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Share.java index 565d4c2a..f27b6a65 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Share.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Share.java @@ -40,74 +40,34 @@ public class Share { @Column(name = "SHA_DELETEDATE_D") private Date deleteDate; - /** - * Getter of id. - * - * @return the id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of name. - * - * @return the name - */ public String getName() { return name; } - /** - * Setter of name. - * - * @param name name - */ public void setName(String name) { this.name = name; } - /** - * Getter of createDate. - * - * @return the createDate - */ public Date getCreateDate() { return createDate; } - /** - * Setter of createDate. - * - * @param createDate createDate - */ public void setCreateDate(Date createDate) { this.createDate = createDate; } - /** - * Getter of deleteDate. - * - * @return the deleteDate - */ public Date getDeleteDate() { return deleteDate; } - /** - * Setter of deleteDate. - * - * @param deleteDate deleteDate - */ public void setDeleteDate(Date deleteDate) { this.deleteDate = deleteDate; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Tag.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Tag.java index 708eb6ae..82a2f2cd 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Tag.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Tag.java @@ -60,129 +60,59 @@ public class Tag implements Loggable { @Column(name = "TAG_COLOR_C", nullable = false, length = 7) private String color; - /** - * Getter of id. - * - * @return id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of userId. - * - * @return the userId - */ public String getUserId() { return userId; } - /** - * Setter of userId. - * - * @param userId userId - */ public void setUserId(String userId) { this.userId = userId; } - /** - * Getter of name. - * - * @return name - */ public String getName() { return name; } - /** - * Setter of name. - * - * @param name name - */ public void setName(String name) { this.name = name; } - /** - * Getter of createDate. - * - * @return createDate - */ public Date getCreateDate() { return createDate; } - /** - * Setter of createDate. - * - * @param createDate createDate - */ public void setCreateDate(Date createDate) { this.createDate = createDate; } - /** - * Getter of color. - * - * @return the color - */ public String getColor() { return color; } - /** - * Setter of color. - * - * @param color color - */ public void setColor(String color) { this.color = color; } - /** - * Getter of deleteDate. - * - * @return deleteDate - */ @Override public Date getDeleteDate() { return deleteDate; } - /** - * Setter of deleteDate. - * - * @param deleteDate deleteDate - */ public void setDeleteDate(Date deleteDate) { this.deleteDate = deleteDate; } - /** - * Getter of parentId. - * - * @return parentId - */ public String getParentId() { return parentId; } - /** - * Setter of parentId. - * - * @param parentId parentId - */ public void setParentId(String parentId) { this.parentId = parentId; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java new file mode 100644 index 00000000..79a721a9 --- /dev/null +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java @@ -0,0 +1,69 @@ +package com.sismics.docs.core.model.jpa; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +import com.google.common.base.MoreObjects; + +/** + * Vocabulary entity. + * + * @author bgamard + */ +@Entity +@Table(name = "T_VOCABULARY") +public class Vocabulary { + /** + * Vocabulary ID. + */ + @Id + @Column(name = "VOC_ID_C", length = 50) + private String id; + + /** + * Vocabulary value. + */ + @Column(name = "VOC_VALUE_C", length = 100) + private String value; + + /** + * Vocabulary order. + */ + @Column(name = "VOC_ORDER_N") + private int order; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add("id", id) + .add("value", value) + .add("order", order) + .toString(); + } +} diff --git a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql index 3213010c..be2e0966 100644 --- a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql +++ b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql @@ -1,3 +1,278 @@ alter table T_DOCUMENT add column DOC_SUBJECT_C varchar(500); alter table T_DOCUMENT add column DOC_IDENTIFIER_C varchar(500); +create memory table T_VOCABULARY ( VOC_ID_C varchar(50) not null, VOC_VALUE_C varchar(100) not null, VOC_ORDER_N int not null ); + +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Collection', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Dataset', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Event', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Image', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Interactive Resource', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Moving Image', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Physical Object', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Service', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Software', 8); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Sound', 9); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Still Image', 10); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Text', 11); + +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Afghanistan', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Åland Islands', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Albania', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Algeria', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'American Samoa', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Andorra', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Angola', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Anguilla', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Antarctica', 8); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Antigua and Barbuda', 9); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Argentina', 10); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Armenia', 11); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Aruba', 12); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Australia', 13); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Austria', 14); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Azerbaijan', 15); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bahamas', 16); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bahrain', 17); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bangladesh', 18); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Barbados', 19); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Belarus', 20); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Belgium', 21); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Belize', 22); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Benin', 23); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bermuda', 24); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bhutan', 25); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bolivia (Plurinational State of)', 26); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bonaire, Sint Eustatius and Saba', 27); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bosnia and Herzegovina', 28); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Botswana', 29); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bouvet Island', 30); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Brazil', 31); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'British Indian Ocean Territory', 32); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Brunei Darussalam', 33); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bulgaria', 34); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Burkina Faso', 35); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Burundi', 36); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cabo Verde', 37); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cambodia', 38); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cameroon', 39); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Canada', 40); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cayman Islands', 41); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Central African Republic', 42); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Chad', 43); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Chile', 44); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'China', 45); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Christmas Island', 46); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cocos (Keeling) Islands', 47); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Colombia', 48); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Comoros', 49); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Congo', 50); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Congo (Democratic Republic of the)', 51); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cook Islands', 52); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Costa Rica', 53); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Côte d''Ivoire', 54); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Croatia', 55); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cuba', 56); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Curaçao', 57); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cyprus', 58); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Czech Republic', 59); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Denmark', 60); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Djibouti', 61); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Dominica', 62); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Dominican Republic', 63); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ecuador', 64); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Egypt', 65); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'El Salvador', 66); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Equatorial Guinea', 67); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Eritrea', 68); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Estonia', 69); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ethiopia', 70); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Falkland Islands (Malvinas)', 71); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Faroe Islands', 72); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Fiji', 73); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Finland', 74); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'France', 75); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'French Guiana', 76); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'French Polynesia', 77); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'French Southern Territories', 78); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Gabon', 79); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Gambia', 80); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Georgia', 81); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Germany', 82); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ghana', 83); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Gibraltar', 84); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Greece', 85); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Greenland', 86); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Grenada', 87); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guadeloupe', 88); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guam', 89); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guatemala', 90); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guernsey', 91); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guinea', 92); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guinea-Bissau', 93); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guyana', 94); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Haiti', 95); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Heard Island and McDonald Islands', 96); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Holy See', 97); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Honduras', 98); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Hong Kong', 99); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Hungary', 100); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Iceland', 101); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'India', 102); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Indonesia', 103); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Iran (Islamic Republic of)', 104); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Iraq', 105); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ireland', 106); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Isle of Man', 107); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Israel', 108); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Italy', 109); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Jamaica', 110); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Japan', 111); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Jersey', 112); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Jordan', 113); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kazakhstan', 114); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kenya', 115); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kiribati', 116); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Korea (Democratic People''s Republic of)', 117); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Korea (Republic of)', 118); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kuwait', 119); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kyrgyzstan', 120); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Lao People''s Democratic Republic', 121); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Latvia', 122); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Lebanon', 123); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Lesotho', 124); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Liberia', 125); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Libya', 126); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Liechtenstein', 127); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Lithuania', 128); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Luxembourg', 129); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Macao', 130); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Macedonia (the former Yugoslav Republic of)', 131); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Madagascar', 132); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Malawi', 133); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Malaysia', 134); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Maldives', 135); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mali', 136); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Malta', 137); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Marshall Islands', 138); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Martinique', 139); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mauritania', 140); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mauritius', 141); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mayotte', 142); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mexico', 143); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Micronesia (Federated States of)', 144); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Moldova (Republic of)', 145); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Monaco', 146); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mongolia', 147); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Montenegro', 148); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Montserrat', 149); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Morocco', 150); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mozambique', 151); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Myanmar', 152); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Namibia', 153); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Nauru', 154); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Nepal', 155); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Netherlands', 156); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'New Caledonia', 157); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'New Zealand', 158); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Nicaragua', 159); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Niger', 160); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Nigeria', 161); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Niue', 162); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Norfolk Island', 163); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Northern Mariana Islands', 164); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Norway', 165); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Oman', 166); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Pakistan', 167); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Palau', 168); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Palestine, State of', 169); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Panama', 170); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Papua New Guinea', 171); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Paraguay', 172); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Peru', 173); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Philippines', 174); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Pitcairn', 175); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Poland', 176); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Portugal', 177); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Puerto Rico', 178); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Qatar', 179); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Réunion', 180); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Romania', 181); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Russian Federation', 182); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Rwanda', 183); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Barthélemy', 184); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Helena, Ascension and Tristan da Cunha', 185); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Kitts and Nevis', 186); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Lucia', 187); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Martin (French part)', 188); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Pierre and Miquelon', 189); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Vincent and the Grenadines', 190); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Samoa', 191); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'San Marino', 192); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sao Tome and Principe', 193); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saudi Arabia', 194); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Senegal', 195); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Serbia', 196); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Seychelles', 197); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sierra Leone', 198); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Singapore', 199); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sint Maarten (Dutch part)', 200); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Slovakia', 201); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Slovenia', 202); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Solomon Islands', 203); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Somalia', 204); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'South Africa', 205); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'South Georgia and the South Sandwich Islands', 206); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'South Sudan', 207); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Spain', 208); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sri Lanka', 209); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sudan', 210); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Suriname', 211); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Svalbard and Jan Mayen', 212); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Swaziland', 213); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sweden', 214); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Switzerland', 215); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Syrian Arab Republic', 216); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Taiwan, Province of China', 217); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tajikistan', 218); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tanzania, United Republic of', 219); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Thailand', 220); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Timor-Leste', 221); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Togo', 222); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tokelau', 223); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tonga', 224); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Trinidad and Tobago', 225); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tunisia', 226); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Turkey', 227); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Turkmenistan', 228); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Turks and Caicos Islands', 229); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tuvalu', 230); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Uganda', 231); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ukraine', 232); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'United Arab Emirates', 233); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'United Kingdom of Great Britain and Northern Ireland', 234); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'United States of America', 235); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'United States Minor Outlying Islands', 236); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Uruguay', 237); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Uzbekistan', 238); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Vanuatu', 239); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Venezuela (Bolivarian Republic of)', 240); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Viet Nam', 241); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Virgin Islands (British)', 242); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Virgin Islands (U.S.)', 243); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Wallis and Futuna', 244); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Western Sahara', 245); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Yemen', 246); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Zambia', 247); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Zimbabwe', 248); + +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'All Rights Reserved', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Public Domain', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-NonCommercial-ShareAlike License', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-NonCommercial License', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-NonCommercial-NoDerivs License', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution License', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-ShareAlike License', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-NoDerivs License', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'No known copyright restrictions', 8); + update T_CONFIG set CFG_VALUE_C = '6' where CFG_ID_C = 'DB_VERSION'; diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java new file mode 100644 index 00000000..4dc9ca2d --- /dev/null +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java @@ -0,0 +1,12 @@ +package com.sismics.docs.rest.resource; + +import javax.ws.rs.Path; + +/** + * Vocabulary REST resources. + * + * @author bgamard + */ +@Path("/vocabulary") +public class VocabularyResource extends BaseResource { +} diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java new file mode 100644 index 00000000..a26a69c9 --- /dev/null +++ b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java @@ -0,0 +1,19 @@ +package com.sismics.docs.rest; + +import org.junit.Test; + +/** + * Exhaustive test of the vocabulary resource. + * + * @author bgamard + */ +public class TestVocabularyResource extends BaseJerseyTest { + /** + * Test the vocabulary resource. + * + * @throws Exception + */ + @Test + public void testVocabularyResource() throws Exception { + } +} \ No newline at end of file From d3a74ed361a1b5c79e7343bcc73a9083575be064 Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 14 Feb 2016 19:23:44 +0100 Subject: [PATCH 03/24] #65: PUT /vocabulary resource --- .../docs/core/dao/jpa/VocabularyDao.java | 24 + .../docs/core/model/jpa/Vocabulary.java | 19 +- .../resources/db/update/dbupdate-006-0.sql | 542 +++++++++--------- .../rest/resource/VocabularyResource.java | 47 ++ .../docs/rest/TestVocabularyResource.java | 20 + 5 files changed, 379 insertions(+), 273 deletions(-) diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java index a7cef7b0..6eecb247 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java @@ -1,9 +1,33 @@ package com.sismics.docs.core.dao.jpa; +import java.util.UUID; + +import javax.persistence.EntityManager; + +import com.sismics.docs.core.model.jpa.Vocabulary; +import com.sismics.util.context.ThreadLocalContext; + /** * Vocabulary DAO. * * @author bgamard */ public class VocabularyDao { + /** + * Creates a new vocabulary entry. + * + * @param vocabulary Vocabulary + * @return New ID + * @throws Exception + */ + public String create(Vocabulary vocabulary) { + // Create the UUID + vocabulary.setId(UUID.randomUUID().toString()); + + // Create the comment + EntityManager em = ThreadLocalContext.get().getEntityManager(); + em.persist(vocabulary); + + return vocabulary.getId(); + } } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java index 79a721a9..934ec1ed 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java @@ -19,13 +19,19 @@ public class Vocabulary { * Vocabulary ID. */ @Id - @Column(name = "VOC_ID_C", length = 50) + @Column(name = "VOC_ID_C", nullable = false, length = 36) private String id; + /** + * Vocabulary name. + */ + @Column(name = "VOC_NAME_C", nullable = false, length = 50) + private String name; + /** * Vocabulary value. */ - @Column(name = "VOC_VALUE_C", length = 100) + @Column(name = "VOC_VALUE_C", nullable = false, length = 100) private String value; /** @@ -42,6 +48,14 @@ public class Vocabulary { this.id = id; } + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + public String getValue() { return value; } @@ -62,6 +76,7 @@ public class Vocabulary { public String toString() { return MoreObjects.toStringHelper(this) .add("id", id) + .add("name", name) .add("value", value) .add("order", order) .toString(); diff --git a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql index be2e0966..87cbf9d5 100644 --- a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql +++ b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql @@ -1,278 +1,278 @@ alter table T_DOCUMENT add column DOC_SUBJECT_C varchar(500); alter table T_DOCUMENT add column DOC_IDENTIFIER_C varchar(500); -create memory table T_VOCABULARY ( VOC_ID_C varchar(50) not null, VOC_VALUE_C varchar(100) not null, VOC_ORDER_N int not null ); +create memory table T_VOCABULARY ( VOC_ID_C varchar(36) not null, VOC_NAME_C varchar(50) not null, VOC_VALUE_C varchar(100) not null, VOC_ORDER_N int not null ); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Collection', 0); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Dataset', 1); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Event', 2); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Image', 3); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Interactive Resource', 4); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Moving Image', 5); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Physical Object', 6); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Service', 7); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Software', 8); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Sound', 9); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Still Image', 10); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('TYPE', 'Text', 11); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_collection, 'TYPE', 'Collection', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_dataset', 'TYPE', 'Dataset', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_event', 'TYPE', 'Event', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_image', 'TYPE', 'Image', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_interactive_resource', 'TYPE', 'Interactive Resource', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_moving_image', 'TYPE', 'Moving Image', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_physical_object', 'TYPE', 'Physical Object', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_service', 'TYPE', 'Service', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_software', 'TYPE', 'Software', 8); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_sound', 'TYPE', 'Sound', 9); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_still_image', 'TYPE', 'Still Image', 10); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_text', 'TYPE', 'Text', 11); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Afghanistan', 0); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Åland Islands', 1); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Albania', 2); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Algeria', 3); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'American Samoa', 4); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Andorra', 5); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Angola', 6); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Anguilla', 7); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Antarctica', 8); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Antigua and Barbuda', 9); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Argentina', 10); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Armenia', 11); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Aruba', 12); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Australia', 13); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Austria', 14); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Azerbaijan', 15); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bahamas', 16); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bahrain', 17); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bangladesh', 18); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Barbados', 19); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Belarus', 20); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Belgium', 21); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Belize', 22); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Benin', 23); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bermuda', 24); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bhutan', 25); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bolivia (Plurinational State of)', 26); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bonaire, Sint Eustatius and Saba', 27); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bosnia and Herzegovina', 28); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Botswana', 29); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bouvet Island', 30); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Brazil', 31); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'British Indian Ocean Territory', 32); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Brunei Darussalam', 33); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Bulgaria', 34); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Burkina Faso', 35); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Burundi', 36); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cabo Verde', 37); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cambodia', 38); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cameroon', 39); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Canada', 40); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cayman Islands', 41); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Central African Republic', 42); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Chad', 43); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Chile', 44); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'China', 45); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Christmas Island', 46); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cocos (Keeling) Islands', 47); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Colombia', 48); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Comoros', 49); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Congo', 50); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Congo (Democratic Republic of the)', 51); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cook Islands', 52); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Costa Rica', 53); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Côte d''Ivoire', 54); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Croatia', 55); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cuba', 56); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Curaçao', 57); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Cyprus', 58); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Czech Republic', 59); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Denmark', 60); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Djibouti', 61); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Dominica', 62); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Dominican Republic', 63); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ecuador', 64); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Egypt', 65); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'El Salvador', 66); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Equatorial Guinea', 67); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Eritrea', 68); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Estonia', 69); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ethiopia', 70); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Falkland Islands (Malvinas)', 71); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Faroe Islands', 72); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Fiji', 73); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Finland', 74); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'France', 75); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'French Guiana', 76); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'French Polynesia', 77); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'French Southern Territories', 78); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Gabon', 79); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Gambia', 80); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Georgia', 81); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Germany', 82); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ghana', 83); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Gibraltar', 84); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Greece', 85); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Greenland', 86); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Grenada', 87); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guadeloupe', 88); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guam', 89); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guatemala', 90); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guernsey', 91); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guinea', 92); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guinea-Bissau', 93); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Guyana', 94); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Haiti', 95); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Heard Island and McDonald Islands', 96); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Holy See', 97); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Honduras', 98); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Hong Kong', 99); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Hungary', 100); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Iceland', 101); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'India', 102); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Indonesia', 103); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Iran (Islamic Republic of)', 104); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Iraq', 105); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ireland', 106); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Isle of Man', 107); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Israel', 108); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Italy', 109); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Jamaica', 110); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Japan', 111); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Jersey', 112); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Jordan', 113); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kazakhstan', 114); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kenya', 115); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kiribati', 116); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Korea (Democratic People''s Republic of)', 117); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Korea (Republic of)', 118); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kuwait', 119); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Kyrgyzstan', 120); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Lao People''s Democratic Republic', 121); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Latvia', 122); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Lebanon', 123); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Lesotho', 124); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Liberia', 125); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Libya', 126); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Liechtenstein', 127); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Lithuania', 128); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Luxembourg', 129); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Macao', 130); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Macedonia (the former Yugoslav Republic of)', 131); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Madagascar', 132); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Malawi', 133); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Malaysia', 134); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Maldives', 135); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mali', 136); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Malta', 137); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Marshall Islands', 138); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Martinique', 139); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mauritania', 140); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mauritius', 141); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mayotte', 142); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mexico', 143); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Micronesia (Federated States of)', 144); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Moldova (Republic of)', 145); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Monaco', 146); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mongolia', 147); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Montenegro', 148); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Montserrat', 149); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Morocco', 150); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Mozambique', 151); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Myanmar', 152); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Namibia', 153); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Nauru', 154); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Nepal', 155); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Netherlands', 156); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'New Caledonia', 157); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'New Zealand', 158); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Nicaragua', 159); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Niger', 160); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Nigeria', 161); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Niue', 162); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Norfolk Island', 163); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Northern Mariana Islands', 164); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Norway', 165); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Oman', 166); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Pakistan', 167); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Palau', 168); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Palestine, State of', 169); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Panama', 170); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Papua New Guinea', 171); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Paraguay', 172); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Peru', 173); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Philippines', 174); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Pitcairn', 175); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Poland', 176); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Portugal', 177); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Puerto Rico', 178); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Qatar', 179); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Réunion', 180); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Romania', 181); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Russian Federation', 182); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Rwanda', 183); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Barthélemy', 184); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Helena, Ascension and Tristan da Cunha', 185); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Kitts and Nevis', 186); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Lucia', 187); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Martin (French part)', 188); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Pierre and Miquelon', 189); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saint Vincent and the Grenadines', 190); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Samoa', 191); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'San Marino', 192); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sao Tome and Principe', 193); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Saudi Arabia', 194); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Senegal', 195); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Serbia', 196); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Seychelles', 197); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sierra Leone', 198); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Singapore', 199); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sint Maarten (Dutch part)', 200); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Slovakia', 201); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Slovenia', 202); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Solomon Islands', 203); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Somalia', 204); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'South Africa', 205); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'South Georgia and the South Sandwich Islands', 206); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'South Sudan', 207); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Spain', 208); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sri Lanka', 209); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sudan', 210); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Suriname', 211); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Svalbard and Jan Mayen', 212); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Swaziland', 213); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Sweden', 214); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Switzerland', 215); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Syrian Arab Republic', 216); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Taiwan, Province of China', 217); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tajikistan', 218); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tanzania, United Republic of', 219); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Thailand', 220); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Timor-Leste', 221); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Togo', 222); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tokelau', 223); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tonga', 224); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Trinidad and Tobago', 225); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tunisia', 226); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Turkey', 227); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Turkmenistan', 228); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Turks and Caicos Islands', 229); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Tuvalu', 230); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Uganda', 231); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Ukraine', 232); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'United Arab Emirates', 233); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'United Kingdom of Great Britain and Northern Ireland', 234); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'United States of America', 235); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'United States Minor Outlying Islands', 236); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Uruguay', 237); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Uzbekistan', 238); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Vanuatu', 239); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Venezuela (Bolivarian Republic of)', 240); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Viet Nam', 241); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Virgin Islands (British)', 242); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Virgin Islands (U.S.)', 243); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Wallis and Futuna', 244); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Western Sahara', 245); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Yemen', 246); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Zambia', 247); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('COVERAGE', 'Zimbabwe', 248); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_afg', 'COVERAGE', 'Afghanistan', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ala', 'COVERAGE', 'Åland Islands', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_alb', 'COVERAGE', 'Albania', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dza', 'COVERAGE', 'Algeria', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_asm', 'COVERAGE', 'American Samoa', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_and', 'COVERAGE', 'Andorra', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ago', 'COVERAGE', 'Angola', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_aia', 'COVERAGE', 'Anguilla', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ata', 'COVERAGE', 'Antarctica', 8); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_atg', 'COVERAGE', 'Antigua and Barbuda', 9); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_arg', 'COVERAGE', 'Argentina', 10); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_arm', 'COVERAGE', 'Armenia', 11); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_abw', 'COVERAGE', 'Aruba', 12); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_aus', 'COVERAGE', 'Australia', 13); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_aut', 'COVERAGE', 'Austria', 14); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_aze', 'COVERAGE', 'Azerbaijan', 15); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bhs', 'COVERAGE', 'Bahamas', 16); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bhr', 'COVERAGE', 'Bahrain', 17); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bgd', 'COVERAGE', 'Bangladesh', 18); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_brb', 'COVERAGE', 'Barbados', 19); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_blr', 'COVERAGE', 'Belarus', 20); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bel', 'COVERAGE', 'Belgium', 21); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_blz', 'COVERAGE', 'Belize', 22); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ben', 'COVERAGE', 'Benin', 23); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bmu', 'COVERAGE', 'Bermuda', 24); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_btn', 'COVERAGE', 'Bhutan', 25); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bol', 'COVERAGE', 'Bolivia (Plurinational State of)', 26); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bes', 'COVERAGE', 'Bonaire, Sint Eustatius and Saba', 27); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bih', 'COVERAGE', 'Bosnia and Herzegovina', 28); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bwa', 'COVERAGE', 'Botswana', 29); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bvt', 'COVERAGE', 'Bouvet Island', 30); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bra', 'COVERAGE', 'Brazil', 31); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_iot', 'COVERAGE', 'British Indian Ocean Territory', 32); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_brn', 'COVERAGE', 'Brunei Darussalam', 33); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bgr', 'COVERAGE', 'Bulgaria', 34); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bfa', 'COVERAGE', 'Burkina Faso', 35); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bdi', 'COVERAGE', 'Burundi', 36); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cpv', 'COVERAGE', 'Cabo Verde', 37); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_khm', 'COVERAGE', 'Cambodia', 38); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cmr', 'COVERAGE', 'Cameroon', 39); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_can', 'COVERAGE', 'Canada', 40); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cym', 'COVERAGE', 'Cayman Islands', 41); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_caf', 'COVERAGE', 'Central African Republic', 42); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tcd', 'COVERAGE', 'Chad', 43); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_chl', 'COVERAGE', 'Chile', 44); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_chn', 'COVERAGE', 'China', 45); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cxr', 'COVERAGE', 'Christmas Island', 46); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cck', 'COVERAGE', 'Cocos (Keeling) Islands', 47); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_col', 'COVERAGE', 'Colombia', 48); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_com', 'COVERAGE', 'Comoros', 49); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cog', 'COVERAGE', 'Congo', 50); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cod', 'COVERAGE', 'Congo (Democratic Republic of the)', 51); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cok', 'COVERAGE', 'Cook Islands', 52); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cri', 'COVERAGE', 'Costa Rica', 53); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_civ', 'COVERAGE', 'Côte d''Ivoire', 54); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hrv', 'COVERAGE', 'Croatia', 55); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cub', 'COVERAGE', 'Cuba', 56); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cuw', 'COVERAGE', 'Curaçao', 57); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cyp', 'COVERAGE', 'Cyprus', 58); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cze', 'COVERAGE', 'Czech Republic', 59); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dnk', 'COVERAGE', 'Denmark', 60); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dji', 'COVERAGE', 'Djibouti', 61); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dma', 'COVERAGE', 'Dominica', 62); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dom', 'COVERAGE', 'Dominican Republic', 63); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ecu', 'COVERAGE', 'Ecuador', 64); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_egy', 'COVERAGE', 'Egypt', 65); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_slv', 'COVERAGE', 'El Salvador', 66); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gnq', 'COVERAGE', 'Equatorial Guinea', 67); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_eri', 'COVERAGE', 'Eritrea', 68); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_est', 'COVERAGE', 'Estonia', 69); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_eth', 'COVERAGE', 'Ethiopia', 70); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_flk', 'COVERAGE', 'Falkland Islands (Malvinas)', 71); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fro', 'COVERAGE', 'Faroe Islands', 72); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fji', 'COVERAGE', 'Fiji', 73); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fin', 'COVERAGE', 'Finland', 74); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fra', 'COVERAGE', 'France', 75); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_guf', 'COVERAGE', 'French Guiana', 76); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pyf', 'COVERAGE', 'French Polynesia', 77); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_atf', 'COVERAGE', 'French Southern Territories', 78); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gab', 'COVERAGE', 'Gabon', 79); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gmb', 'COVERAGE', 'Gambia', 80); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_geo', 'COVERAGE', 'Georgia', 81); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_deu', 'COVERAGE', 'Germany', 82); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gha', 'COVERAGE', 'Ghana', 83); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gib', 'COVERAGE', 'Gibraltar', 84); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_grc', 'COVERAGE', 'Greece', 85); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_grl', 'COVERAGE', 'Greenland', 86); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_grd', 'COVERAGE', 'Grenada', 87); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_glp', 'COVERAGE', 'Guadeloupe', 88); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gum', 'COVERAGE', 'Guam', 89); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gtm', 'COVERAGE', 'Guatemala', 90); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ggy', 'COVERAGE', 'Guernsey', 91); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gin', 'COVERAGE', 'Guinea', 92); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gnb', 'COVERAGE', 'Guinea-Bissau', 93); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_guy', 'COVERAGE', 'Guyana', 94); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hti', 'COVERAGE', 'Haiti', 95); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hmd', 'COVERAGE', 'Heard Island and McDonald Islands', 96); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vat', 'COVERAGE', 'Holy See', 97); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hnd', 'COVERAGE', 'Honduras', 98); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hkg', 'COVERAGE', 'Hong Kong', 99); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hun', 'COVERAGE', 'Hungary', 100); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_isl', 'COVERAGE', 'Iceland', 101); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ind', 'COVERAGE', 'India', 102); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_idn', 'COVERAGE', 'Indonesia', 103); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_irn', 'COVERAGE', 'Iran (Islamic Republic of)', 104); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_irq', 'COVERAGE', 'Iraq', 105); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_irl', 'COVERAGE', 'Ireland', 106); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_imn', 'COVERAGE', 'Isle of Man', 107); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_isr', 'COVERAGE', 'Israel', 108); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ita', 'COVERAGE', 'Italy', 109); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_jam', 'COVERAGE', 'Jamaica', 110); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_jpn', 'COVERAGE', 'Japan', 111); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_jey', 'COVERAGE', 'Jersey', 112); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_jor', 'COVERAGE', 'Jordan', 113); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kaz', 'COVERAGE', 'Kazakhstan', 114); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ken', 'COVERAGE', 'Kenya', 115); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kir', 'COVERAGE', 'Kiribati', 116); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_prk', 'COVERAGE', 'Korea (Democratic People''s Republic of)', 117); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kor', 'COVERAGE', 'Korea (Republic of)', 118); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kwt', 'COVERAGE', 'Kuwait', 119); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kgz', 'COVERAGE', 'Kyrgyzstan', 120); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lao', 'COVERAGE', 'Lao People''s Democratic Republic', 121); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lva', 'COVERAGE', 'Latvia', 122); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lbn', 'COVERAGE', 'Lebanon', 123); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lso', 'COVERAGE', 'Lesotho', 124); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lbr', 'COVERAGE', 'Liberia', 125); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lby', 'COVERAGE', 'Libya', 126); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lie', 'COVERAGE', 'Liechtenstein', 127); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ltu', 'COVERAGE', 'Lithuania', 128); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lux', 'COVERAGE', 'Luxembourg', 129); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mac', 'COVERAGE', 'Macao', 130); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mkd', 'COVERAGE', 'Macedonia (the former Yugoslav Republic of)', 131); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mdg', 'COVERAGE', 'Madagascar', 132); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mwi', 'COVERAGE', 'Malawi', 133); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mys', 'COVERAGE', 'Malaysia', 134); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mdv', 'COVERAGE', 'Maldives', 135); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mli', 'COVERAGE', 'Mali', 136); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mlt', 'COVERAGE', 'Malta', 137); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mhl', 'COVERAGE', 'Marshall Islands', 138); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mtq', 'COVERAGE', 'Martinique', 139); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mrt', 'COVERAGE', 'Mauritania', 140); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mus', 'COVERAGE', 'Mauritius', 141); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_myt', 'COVERAGE', 'Mayotte', 142); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mex', 'COVERAGE', 'Mexico', 143); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fsm', 'COVERAGE', 'Micronesia (Federated States of)', 144); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mda', 'COVERAGE', 'Moldova (Republic of)', 145); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mco', 'COVERAGE', 'Monaco', 146); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mng', 'COVERAGE', 'Mongolia', 147); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mne', 'COVERAGE', 'Montenegro', 148); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_msr', 'COVERAGE', 'Montserrat', 149); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mar', 'COVERAGE', 'Morocco', 150); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_moz', 'COVERAGE', 'Mozambique', 151); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mmr', 'COVERAGE', 'Myanmar', 152); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nam', 'COVERAGE', 'Namibia', 153); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nru', 'COVERAGE', 'Nauru', 154); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_npl', 'COVERAGE', 'Nepal', 155); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nld', 'COVERAGE', 'Netherlands', 156); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ncl', 'COVERAGE', 'New Caledonia', 157); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nzl', 'COVERAGE', 'New Zealand', 158); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nic', 'COVERAGE', 'Nicaragua', 159); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ner', 'COVERAGE', 'Niger', 160); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nga', 'COVERAGE', 'Nigeria', 161); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_niu', 'COVERAGE', 'Niue', 162); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nfk', 'COVERAGE', 'Norfolk Island', 163); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mnp', 'COVERAGE', 'Northern Mariana Islands', 164); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nor', 'COVERAGE', 'Norway', 165); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_omn', 'COVERAGE', 'Oman', 166); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pak', 'COVERAGE', 'Pakistan', 167); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_plw', 'COVERAGE', 'Palau', 168); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pse', 'COVERAGE', 'Palestine, State of', 169); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pan', 'COVERAGE', 'Panama', 170); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_png', 'COVERAGE', 'Papua New Guinea', 171); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pry', 'COVERAGE', 'Paraguay', 172); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_per', 'COVERAGE', 'Peru', 173); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_phl', 'COVERAGE', 'Philippines', 174); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pcn', 'COVERAGE', 'Pitcairn', 175); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pol', 'COVERAGE', 'Poland', 176); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_prt', 'COVERAGE', 'Portugal', 177); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pri', 'COVERAGE', 'Puerto Rico', 178); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_qat', 'COVERAGE', 'Qatar', 179); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_reu', 'COVERAGE', 'Réunion', 180); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_rou', 'COVERAGE', 'Romania', 181); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_rus', 'COVERAGE', 'Russian Federation', 182); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_rwa', 'COVERAGE', 'Rwanda', 183); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_blm', 'COVERAGE', 'Saint Barthélemy', 184); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_shn', 'COVERAGE', 'Saint Helena, Ascension and Tristan da Cunha', 185); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kna', 'COVERAGE', 'Saint Kitts and Nevis', 186); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lca', 'COVERAGE', 'Saint Lucia', 187); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_maf', 'COVERAGE', 'Saint Martin (French part)', 188); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_spm', 'COVERAGE', 'Saint Pierre and Miquelon', 189); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vct', 'COVERAGE', 'Saint Vincent and the Grenadines', 190); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_wsm', 'COVERAGE', 'Samoa', 191); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_smr', 'COVERAGE', 'San Marino', 192); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_stp', 'COVERAGE', 'Sao Tome and Principe', 193); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sau', 'COVERAGE', 'Saudi Arabia', 194); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sen', 'COVERAGE', 'Senegal', 195); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_srb', 'COVERAGE', 'Serbia', 196); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_syc', 'COVERAGE', 'Seychelles', 197); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sle', 'COVERAGE', 'Sierra Leone', 198); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sgp', 'COVERAGE', 'Singapore', 199); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sxm', 'COVERAGE', 'Sint Maarten (Dutch part)', 200); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_svk', 'COVERAGE', 'Slovakia', 201); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_svn', 'COVERAGE', 'Slovenia', 202); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_slb', 'COVERAGE', 'Solomon Islands', 203); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_som', 'COVERAGE', 'Somalia', 204); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_zaf', 'COVERAGE', 'South Africa', 205); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sgs', 'COVERAGE', 'South Georgia and the South Sandwich Islands', 206); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ssd', 'COVERAGE', 'South Sudan', 207); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_esp', 'COVERAGE', 'Spain', 208); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lka', 'COVERAGE', 'Sri Lanka', 209); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sdn', 'COVERAGE', 'Sudan', 210); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sur', 'COVERAGE', 'Suriname', 211); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sjm', 'COVERAGE', 'Svalbard and Jan Mayen', 212); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_swz', 'COVERAGE', 'Swaziland', 213); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_swe', 'COVERAGE', 'Sweden', 214); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_che', 'COVERAGE', 'Switzerland', 215); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_syr', 'COVERAGE', 'Syrian Arab Republic', 216); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_twn', 'COVERAGE', 'Taiwan, Province of China', 217); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tjk', 'COVERAGE', 'Tajikistan', 218); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tza', 'COVERAGE', 'Tanzania, United Republic of', 219); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tha', 'COVERAGE', 'Thailand', 220); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tls', 'COVERAGE', 'Timor-Leste', 221); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tgo', 'COVERAGE', 'Togo', 222); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tkl', 'COVERAGE', 'Tokelau', 223); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ton', 'COVERAGE', 'Tonga', 224); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tto', 'COVERAGE', 'Trinidad and Tobago', 225); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tun', 'COVERAGE', 'Tunisia', 226); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tur', 'COVERAGE', 'Turkey', 227); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tkm', 'COVERAGE', 'Turkmenistan', 228); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tca', 'COVERAGE', 'Turks and Caicos Islands', 229); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tuv', 'COVERAGE', 'Tuvalu', 230); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_uga', 'COVERAGE', 'Uganda', 231); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ukr', 'COVERAGE', 'Ukraine', 232); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_are', 'COVERAGE', 'United Arab Emirates', 233); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gbr', 'COVERAGE', 'United Kingdom of Great Britain and Northern Ireland', 234); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_usa', 'COVERAGE', 'United States of America', 235); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_umi', 'COVERAGE', 'United States Minor Outlying Islands', 236); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ury', 'COVERAGE', 'Uruguay', 237); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_uzb', 'COVERAGE', 'Uzbekistan', 238); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vut', 'COVERAGE', 'Vanuatu', 239); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ven', 'COVERAGE', 'Venezuela (Bolivarian Republic of)', 240); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vnm', 'COVERAGE', 'Viet Nam', 241); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vgb', 'COVERAGE', 'Virgin Islands (British)', 242); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vir', 'COVERAGE', 'Virgin Islands (U.S.)', 243); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_wlf', 'COVERAGE', 'Wallis and Futuna', 244); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_esh', 'COVERAGE', 'Western Sahara', 245); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_yem', 'COVERAGE', 'Yemen', 246); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_zmb', 'COVERAGE', 'Zambia', 247); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_zwe', 'COVERAGE', 'Zimbabwe', 248); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'All Rights Reserved', 0); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Public Domain', 1); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-NonCommercial-ShareAlike License', 2); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-NonCommercial License', 3); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-NonCommercial-NoDerivs License', 4); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution License', 5); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-ShareAlike License', 6); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'Attribution-NoDerivs License', 7); -insert into T_VOCABULARY(VOC_ID_C, VOC_VALUE_C, VOC_ORDER_N) values('RIGHTS', 'No known copyright restrictions', 8); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_all_rights_reserved', 'RIGHTS', 'All Rights Reserved', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_public_domain', 'RIGHTS', 'Public Domain', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_ancsa', 'RIGHTS', 'Attribution-NonCommercial-ShareAlike License', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_anc', 'RIGHTS', 'Attribution-NonCommercial License', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_ancnd', 'RIGHTS', 'Attribution-NonCommercial-NoDerivs License', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_a', 'RIGHTS', 'Attribution License', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_asa', 'RIGHTS', 'Attribution-ShareAlike License', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_and', 'RIGHTS', 'Attribution-NoDerivs License', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_no_copyright', 'RIGHTS', 'No known copyright restrictions', 8); update T_CONFIG set CFG_VALUE_C = '6' where CFG_ID_C = 'DB_VERSION'; diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java index 4dc9ca2d..5f2758aa 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java @@ -1,6 +1,16 @@ package com.sismics.docs.rest.resource; +import javax.json.Json; +import javax.json.JsonObjectBuilder; +import javax.ws.rs.FormParam; +import javax.ws.rs.PUT; import javax.ws.rs.Path; +import javax.ws.rs.core.Response; + +import com.sismics.docs.core.dao.jpa.VocabularyDao; +import com.sismics.docs.core.model.jpa.Vocabulary; +import com.sismics.rest.exception.ForbiddenClientException; +import com.sismics.rest.util.ValidationUtil; /** * Vocabulary REST resources. @@ -9,4 +19,41 @@ import javax.ws.rs.Path; */ @Path("/vocabulary") public class VocabularyResource extends BaseResource { + /** + * Add a vocabulary. + * + * @param name Name + * @param value Value + * @param order Order + * @return Response + */ + @PUT + public Response add(@FormParam("name") String name, + @FormParam("value") String value, + @FormParam("order") String orderStr) { + if (!authenticate()) { + throw new ForbiddenClientException(); + } + + // Validate input data + name = ValidationUtil.validateLength(name, "name", 1, 50, false); + value = ValidationUtil.validateLength(value, "value", 1, 100, false); + Integer order = ValidationUtil.validateInteger(orderStr, "order"); + + // Create the comment + VocabularyDao vocabularyDao = new VocabularyDao(); + Vocabulary vocabulary = new Vocabulary(); + vocabulary.setName(name); + vocabulary.setValue(value); + vocabulary.setOrder(order); + vocabularyDao.create(vocabulary); + + // Returns the comment + JsonObjectBuilder response = Json.createObjectBuilder() + .add("id", vocabulary.getId()) + .add("name", vocabulary.getName()) + .add("value", vocabulary.getValue()) + .add("order", Integer.toString(vocabulary.getOrder())); + return Response.ok().entity(response.build()).build(); + } } diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java index a26a69c9..a30392e2 100644 --- a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java +++ b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java @@ -1,7 +1,14 @@ package com.sismics.docs.rest; +import javax.json.JsonObject; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.Form; + +import org.junit.Assert; import org.junit.Test; +import com.sismics.util.filter.TokenBasedSecurityFilter; + /** * Exhaustive test of the vocabulary resource. * @@ -15,5 +22,18 @@ public class TestVocabularyResource extends BaseJerseyTest { */ @Test public void testVocabularyResource() throws Exception { + // Login vocabulary1 + clientUtil.createUser("vocabulary1"); + String vocabulary1Token = clientUtil.login("vocabulary1"); + + // Create a vocabulary entry with vocabulary1 + JsonObject json = target().path("/vocabulary").request() + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .put(Entity.form(new Form() + .param("name", "TEST_VOC_1") + .param("value", "First value") + .param("order", "0")), JsonObject.class); + String vocabulary1Id = json.getString("id"); + Assert.assertNotNull(vocabulary1Id); } } \ No newline at end of file From 98497f2a376299c6cb40193436718326d8d3f069 Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 14 Feb 2016 21:00:21 +0100 Subject: [PATCH 04/24] #65: Vocabulary resource --- .../sismics/docs/core/dao/jpa/CommentDao.java | 4 +- .../docs/core/dao/jpa/VocabularyDao.java | 71 +++ .../docs/core/model/jpa/Vocabulary.java | 2 +- .../com/sismics/util/jpa/DbOpenHelper.java | 3 +- .../resources/db/update/dbupdate-006-0.sql | 542 +++++++++--------- .../com/sismics/rest/util/ValidationUtil.java | 6 + .../docs/rest/resource/CommentResource.java | 3 - .../rest/resource/VocabularyResource.java | 123 +++- .../docs/rest/TestVocabularyResource.java | 75 ++- 9 files changed, 546 insertions(+), 283 deletions(-) diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/CommentDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/CommentDao.java index 23ad1b46..59f9ac6c 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/CommentDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/CommentDao.java @@ -52,12 +52,12 @@ public class CommentDao { public void delete(String id) { EntityManager em = ThreadLocalContext.get().getEntityManager(); - // Get the document + // Get the comment Query q = em.createQuery("select c from Comment c where c.id = :id and c.deleteDate is null"); q.setParameter("id", id); Comment commentDb = (Comment) q.getSingleResult(); - // Delete the document + // Delete the comment Date dateNow = new Date(); commentDb.setDeleteDate(dateNow); diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java index 6eecb247..fe500a26 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/VocabularyDao.java @@ -1,8 +1,11 @@ package com.sismics.docs.core.dao.jpa; +import java.util.List; import java.util.UUID; import javax.persistence.EntityManager; +import javax.persistence.NoResultException; +import javax.persistence.Query; import com.sismics.docs.core.model.jpa.Vocabulary; import com.sismics.util.context.ThreadLocalContext; @@ -30,4 +33,72 @@ public class VocabularyDao { return vocabulary.getId(); } + + /** + * Get all vocabulary entries sharing a single name + * + * @param name Name + * @return Vocabulary entries + */ + @SuppressWarnings("unchecked") + public List getByName(String name) { + EntityManager em = ThreadLocalContext.get().getEntityManager(); + + // Get the entries + Query q = em.createQuery("select v from Vocabulary v where v.name = :name order by v.order"); + q.setParameter("name", name); + return q.getResultList(); + } + + /** + * Get a vocabulary entry by ID. + * + * @param id ID + * @return Vocabulary + */ + public Vocabulary getById(String id) { + EntityManager em = ThreadLocalContext.get().getEntityManager(); + try { + return em.find(Vocabulary.class, id); + } catch (NoResultException e) { + return null; + } + } + + /** + * Update a vocabulary entry. + * + * @param vocabulary Vocabulary to update + */ + public Vocabulary update(Vocabulary vocabulary) { + EntityManager em = ThreadLocalContext.get().getEntityManager(); + + // Get the vocabulary entry + Query q = em.createQuery("select v from Vocabulary v where v.id = :id"); + q.setParameter("id", vocabulary.getId()); + Vocabulary vocabularyFromDb = (Vocabulary) q.getSingleResult(); + + // Update the vocabulary entry + vocabularyFromDb.setName(vocabulary.getName()); + vocabularyFromDb.setValue(vocabulary.getValue()); + vocabularyFromDb.setOrder(vocabulary.getOrder()); + + return vocabularyFromDb; + } + + /** + * Deletes a vocabulary entry. + * + * @param id Vocabulary ID + */ + public void delete(String id) { + EntityManager em = ThreadLocalContext.get().getEntityManager(); + + // Get the vocabulary + Query q = em.createQuery("select v from Vocabulary v where v.id = :id"); + q.setParameter("id", id); + Vocabulary vocabularyDb = (Vocabulary) q.getSingleResult(); + + em.remove(vocabularyDb); + } } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java index 934ec1ed..384e7e16 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java @@ -8,7 +8,7 @@ import javax.persistence.Table; import com.google.common.base.MoreObjects; /** - * Vocabulary entity. + * Vocabulary entry entity. * * @author bgamard */ diff --git a/docs-core/src/main/java/com/sismics/util/jpa/DbOpenHelper.java b/docs-core/src/main/java/com/sismics/util/jpa/DbOpenHelper.java index 6ac6e64d..d742f670 100644 --- a/docs-core/src/main/java/com/sismics/util/jpa/DbOpenHelper.java +++ b/docs-core/src/main/java/com/sismics/util/jpa/DbOpenHelper.java @@ -89,7 +89,7 @@ public abstract class DbOpenHelper { oldVersion = Integer.parseInt(oldVersionStr); } } catch (Exception e) { - if (e.getMessage().contains("object not found")) { + if (e.getMessage().contains("not found")) { log.info("Unable to get database version: Table T_CONFIG not found"); } else { log.error("Unable to get database version", e); @@ -120,6 +120,7 @@ public abstract class DbOpenHelper { log.error("Unable to complete schema update", e); } finally { try { + connection.commit(); if (stmt != null) { stmt.close(); stmt = null; diff --git a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql index 87cbf9d5..4d3e8248 100644 --- a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql +++ b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql @@ -1,278 +1,278 @@ alter table T_DOCUMENT add column DOC_SUBJECT_C varchar(500); alter table T_DOCUMENT add column DOC_IDENTIFIER_C varchar(500); -create memory table T_VOCABULARY ( VOC_ID_C varchar(36) not null, VOC_NAME_C varchar(50) not null, VOC_VALUE_C varchar(100) not null, VOC_ORDER_N int not null ); +create memory table T_VOCABULARY ( VOC_ID_C varchar(36) not null, VOC_NAME_C varchar(50) not null, VOC_VALUE_C varchar(100) not null, VOC_ORDER_N int not null, primary key (VOC_ID_C) ); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_collection, 'TYPE', 'Collection', 0); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_dataset', 'TYPE', 'Dataset', 1); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_event', 'TYPE', 'Event', 2); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_image', 'TYPE', 'Image', 3); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_interactive_resource', 'TYPE', 'Interactive Resource', 4); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_moving_image', 'TYPE', 'Moving Image', 5); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_physical_object', 'TYPE', 'Physical Object', 6); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_service', 'TYPE', 'Service', 7); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_software', 'TYPE', 'Software', 8); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_sound', 'TYPE', 'Sound', 9); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_still_image', 'TYPE', 'Still Image', 10); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type_text', 'TYPE', 'Text', 11); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-collection', 'type', 'Collection', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-dataset', 'type', 'Dataset', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-event', 'type', 'Event', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-image', 'type', 'Image', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-interactive_resource', 'type', 'Interactive Resource', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-moving_image', 'type', 'Moving Image', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-physical_object', 'type', 'Physical Object', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-service', 'type', 'Service', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-software', 'type', 'Software', 8); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-sound', 'type', 'Sound', 9); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-still_image', 'type', 'Still Image', 10); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-text', 'type', 'Text', 11); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_afg', 'COVERAGE', 'Afghanistan', 0); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ala', 'COVERAGE', 'Åland Islands', 1); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_alb', 'COVERAGE', 'Albania', 2); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dza', 'COVERAGE', 'Algeria', 3); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_asm', 'COVERAGE', 'American Samoa', 4); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_and', 'COVERAGE', 'Andorra', 5); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ago', 'COVERAGE', 'Angola', 6); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_aia', 'COVERAGE', 'Anguilla', 7); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ata', 'COVERAGE', 'Antarctica', 8); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_atg', 'COVERAGE', 'Antigua and Barbuda', 9); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_arg', 'COVERAGE', 'Argentina', 10); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_arm', 'COVERAGE', 'Armenia', 11); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_abw', 'COVERAGE', 'Aruba', 12); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_aus', 'COVERAGE', 'Australia', 13); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_aut', 'COVERAGE', 'Austria', 14); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_aze', 'COVERAGE', 'Azerbaijan', 15); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bhs', 'COVERAGE', 'Bahamas', 16); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bhr', 'COVERAGE', 'Bahrain', 17); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bgd', 'COVERAGE', 'Bangladesh', 18); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_brb', 'COVERAGE', 'Barbados', 19); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_blr', 'COVERAGE', 'Belarus', 20); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bel', 'COVERAGE', 'Belgium', 21); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_blz', 'COVERAGE', 'Belize', 22); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ben', 'COVERAGE', 'Benin', 23); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bmu', 'COVERAGE', 'Bermuda', 24); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_btn', 'COVERAGE', 'Bhutan', 25); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bol', 'COVERAGE', 'Bolivia (Plurinational State of)', 26); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bes', 'COVERAGE', 'Bonaire, Sint Eustatius and Saba', 27); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bih', 'COVERAGE', 'Bosnia and Herzegovina', 28); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bwa', 'COVERAGE', 'Botswana', 29); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bvt', 'COVERAGE', 'Bouvet Island', 30); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bra', 'COVERAGE', 'Brazil', 31); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_iot', 'COVERAGE', 'British Indian Ocean Territory', 32); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_brn', 'COVERAGE', 'Brunei Darussalam', 33); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bgr', 'COVERAGE', 'Bulgaria', 34); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bfa', 'COVERAGE', 'Burkina Faso', 35); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_bdi', 'COVERAGE', 'Burundi', 36); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cpv', 'COVERAGE', 'Cabo Verde', 37); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_khm', 'COVERAGE', 'Cambodia', 38); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cmr', 'COVERAGE', 'Cameroon', 39); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_can', 'COVERAGE', 'Canada', 40); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cym', 'COVERAGE', 'Cayman Islands', 41); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_caf', 'COVERAGE', 'Central African Republic', 42); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tcd', 'COVERAGE', 'Chad', 43); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_chl', 'COVERAGE', 'Chile', 44); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_chn', 'COVERAGE', 'China', 45); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cxr', 'COVERAGE', 'Christmas Island', 46); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cck', 'COVERAGE', 'Cocos (Keeling) Islands', 47); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_col', 'COVERAGE', 'Colombia', 48); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_com', 'COVERAGE', 'Comoros', 49); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cog', 'COVERAGE', 'Congo', 50); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cod', 'COVERAGE', 'Congo (Democratic Republic of the)', 51); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cok', 'COVERAGE', 'Cook Islands', 52); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cri', 'COVERAGE', 'Costa Rica', 53); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_civ', 'COVERAGE', 'Côte d''Ivoire', 54); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hrv', 'COVERAGE', 'Croatia', 55); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cub', 'COVERAGE', 'Cuba', 56); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cuw', 'COVERAGE', 'Curaçao', 57); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cyp', 'COVERAGE', 'Cyprus', 58); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_cze', 'COVERAGE', 'Czech Republic', 59); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dnk', 'COVERAGE', 'Denmark', 60); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dji', 'COVERAGE', 'Djibouti', 61); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dma', 'COVERAGE', 'Dominica', 62); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_dom', 'COVERAGE', 'Dominican Republic', 63); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ecu', 'COVERAGE', 'Ecuador', 64); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_egy', 'COVERAGE', 'Egypt', 65); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_slv', 'COVERAGE', 'El Salvador', 66); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gnq', 'COVERAGE', 'Equatorial Guinea', 67); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_eri', 'COVERAGE', 'Eritrea', 68); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_est', 'COVERAGE', 'Estonia', 69); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_eth', 'COVERAGE', 'Ethiopia', 70); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_flk', 'COVERAGE', 'Falkland Islands (Malvinas)', 71); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fro', 'COVERAGE', 'Faroe Islands', 72); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fji', 'COVERAGE', 'Fiji', 73); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fin', 'COVERAGE', 'Finland', 74); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fra', 'COVERAGE', 'France', 75); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_guf', 'COVERAGE', 'French Guiana', 76); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pyf', 'COVERAGE', 'French Polynesia', 77); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_atf', 'COVERAGE', 'French Southern Territories', 78); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gab', 'COVERAGE', 'Gabon', 79); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gmb', 'COVERAGE', 'Gambia', 80); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_geo', 'COVERAGE', 'Georgia', 81); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_deu', 'COVERAGE', 'Germany', 82); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gha', 'COVERAGE', 'Ghana', 83); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gib', 'COVERAGE', 'Gibraltar', 84); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_grc', 'COVERAGE', 'Greece', 85); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_grl', 'COVERAGE', 'Greenland', 86); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_grd', 'COVERAGE', 'Grenada', 87); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_glp', 'COVERAGE', 'Guadeloupe', 88); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gum', 'COVERAGE', 'Guam', 89); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gtm', 'COVERAGE', 'Guatemala', 90); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ggy', 'COVERAGE', 'Guernsey', 91); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gin', 'COVERAGE', 'Guinea', 92); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gnb', 'COVERAGE', 'Guinea-Bissau', 93); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_guy', 'COVERAGE', 'Guyana', 94); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hti', 'COVERAGE', 'Haiti', 95); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hmd', 'COVERAGE', 'Heard Island and McDonald Islands', 96); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vat', 'COVERAGE', 'Holy See', 97); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hnd', 'COVERAGE', 'Honduras', 98); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hkg', 'COVERAGE', 'Hong Kong', 99); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_hun', 'COVERAGE', 'Hungary', 100); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_isl', 'COVERAGE', 'Iceland', 101); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ind', 'COVERAGE', 'India', 102); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_idn', 'COVERAGE', 'Indonesia', 103); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_irn', 'COVERAGE', 'Iran (Islamic Republic of)', 104); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_irq', 'COVERAGE', 'Iraq', 105); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_irl', 'COVERAGE', 'Ireland', 106); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_imn', 'COVERAGE', 'Isle of Man', 107); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_isr', 'COVERAGE', 'Israel', 108); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ita', 'COVERAGE', 'Italy', 109); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_jam', 'COVERAGE', 'Jamaica', 110); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_jpn', 'COVERAGE', 'Japan', 111); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_jey', 'COVERAGE', 'Jersey', 112); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_jor', 'COVERAGE', 'Jordan', 113); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kaz', 'COVERAGE', 'Kazakhstan', 114); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ken', 'COVERAGE', 'Kenya', 115); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kir', 'COVERAGE', 'Kiribati', 116); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_prk', 'COVERAGE', 'Korea (Democratic People''s Republic of)', 117); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kor', 'COVERAGE', 'Korea (Republic of)', 118); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kwt', 'COVERAGE', 'Kuwait', 119); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kgz', 'COVERAGE', 'Kyrgyzstan', 120); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lao', 'COVERAGE', 'Lao People''s Democratic Republic', 121); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lva', 'COVERAGE', 'Latvia', 122); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lbn', 'COVERAGE', 'Lebanon', 123); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lso', 'COVERAGE', 'Lesotho', 124); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lbr', 'COVERAGE', 'Liberia', 125); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lby', 'COVERAGE', 'Libya', 126); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lie', 'COVERAGE', 'Liechtenstein', 127); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ltu', 'COVERAGE', 'Lithuania', 128); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lux', 'COVERAGE', 'Luxembourg', 129); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mac', 'COVERAGE', 'Macao', 130); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mkd', 'COVERAGE', 'Macedonia (the former Yugoslav Republic of)', 131); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mdg', 'COVERAGE', 'Madagascar', 132); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mwi', 'COVERAGE', 'Malawi', 133); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mys', 'COVERAGE', 'Malaysia', 134); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mdv', 'COVERAGE', 'Maldives', 135); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mli', 'COVERAGE', 'Mali', 136); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mlt', 'COVERAGE', 'Malta', 137); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mhl', 'COVERAGE', 'Marshall Islands', 138); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mtq', 'COVERAGE', 'Martinique', 139); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mrt', 'COVERAGE', 'Mauritania', 140); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mus', 'COVERAGE', 'Mauritius', 141); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_myt', 'COVERAGE', 'Mayotte', 142); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mex', 'COVERAGE', 'Mexico', 143); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_fsm', 'COVERAGE', 'Micronesia (Federated States of)', 144); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mda', 'COVERAGE', 'Moldova (Republic of)', 145); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mco', 'COVERAGE', 'Monaco', 146); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mng', 'COVERAGE', 'Mongolia', 147); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mne', 'COVERAGE', 'Montenegro', 148); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_msr', 'COVERAGE', 'Montserrat', 149); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mar', 'COVERAGE', 'Morocco', 150); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_moz', 'COVERAGE', 'Mozambique', 151); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mmr', 'COVERAGE', 'Myanmar', 152); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nam', 'COVERAGE', 'Namibia', 153); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nru', 'COVERAGE', 'Nauru', 154); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_npl', 'COVERAGE', 'Nepal', 155); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nld', 'COVERAGE', 'Netherlands', 156); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ncl', 'COVERAGE', 'New Caledonia', 157); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nzl', 'COVERAGE', 'New Zealand', 158); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nic', 'COVERAGE', 'Nicaragua', 159); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ner', 'COVERAGE', 'Niger', 160); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nga', 'COVERAGE', 'Nigeria', 161); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_niu', 'COVERAGE', 'Niue', 162); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nfk', 'COVERAGE', 'Norfolk Island', 163); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_mnp', 'COVERAGE', 'Northern Mariana Islands', 164); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_nor', 'COVERAGE', 'Norway', 165); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_omn', 'COVERAGE', 'Oman', 166); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pak', 'COVERAGE', 'Pakistan', 167); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_plw', 'COVERAGE', 'Palau', 168); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pse', 'COVERAGE', 'Palestine, State of', 169); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pan', 'COVERAGE', 'Panama', 170); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_png', 'COVERAGE', 'Papua New Guinea', 171); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pry', 'COVERAGE', 'Paraguay', 172); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_per', 'COVERAGE', 'Peru', 173); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_phl', 'COVERAGE', 'Philippines', 174); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pcn', 'COVERAGE', 'Pitcairn', 175); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pol', 'COVERAGE', 'Poland', 176); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_prt', 'COVERAGE', 'Portugal', 177); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_pri', 'COVERAGE', 'Puerto Rico', 178); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_qat', 'COVERAGE', 'Qatar', 179); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_reu', 'COVERAGE', 'Réunion', 180); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_rou', 'COVERAGE', 'Romania', 181); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_rus', 'COVERAGE', 'Russian Federation', 182); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_rwa', 'COVERAGE', 'Rwanda', 183); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_blm', 'COVERAGE', 'Saint Barthélemy', 184); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_shn', 'COVERAGE', 'Saint Helena, Ascension and Tristan da Cunha', 185); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_kna', 'COVERAGE', 'Saint Kitts and Nevis', 186); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lca', 'COVERAGE', 'Saint Lucia', 187); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_maf', 'COVERAGE', 'Saint Martin (French part)', 188); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_spm', 'COVERAGE', 'Saint Pierre and Miquelon', 189); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vct', 'COVERAGE', 'Saint Vincent and the Grenadines', 190); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_wsm', 'COVERAGE', 'Samoa', 191); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_smr', 'COVERAGE', 'San Marino', 192); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_stp', 'COVERAGE', 'Sao Tome and Principe', 193); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sau', 'COVERAGE', 'Saudi Arabia', 194); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sen', 'COVERAGE', 'Senegal', 195); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_srb', 'COVERAGE', 'Serbia', 196); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_syc', 'COVERAGE', 'Seychelles', 197); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sle', 'COVERAGE', 'Sierra Leone', 198); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sgp', 'COVERAGE', 'Singapore', 199); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sxm', 'COVERAGE', 'Sint Maarten (Dutch part)', 200); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_svk', 'COVERAGE', 'Slovakia', 201); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_svn', 'COVERAGE', 'Slovenia', 202); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_slb', 'COVERAGE', 'Solomon Islands', 203); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_som', 'COVERAGE', 'Somalia', 204); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_zaf', 'COVERAGE', 'South Africa', 205); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sgs', 'COVERAGE', 'South Georgia and the South Sandwich Islands', 206); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ssd', 'COVERAGE', 'South Sudan', 207); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_esp', 'COVERAGE', 'Spain', 208); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_lka', 'COVERAGE', 'Sri Lanka', 209); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sdn', 'COVERAGE', 'Sudan', 210); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sur', 'COVERAGE', 'Suriname', 211); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_sjm', 'COVERAGE', 'Svalbard and Jan Mayen', 212); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_swz', 'COVERAGE', 'Swaziland', 213); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_swe', 'COVERAGE', 'Sweden', 214); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_che', 'COVERAGE', 'Switzerland', 215); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_syr', 'COVERAGE', 'Syrian Arab Republic', 216); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_twn', 'COVERAGE', 'Taiwan, Province of China', 217); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tjk', 'COVERAGE', 'Tajikistan', 218); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tza', 'COVERAGE', 'Tanzania, United Republic of', 219); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tha', 'COVERAGE', 'Thailand', 220); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tls', 'COVERAGE', 'Timor-Leste', 221); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tgo', 'COVERAGE', 'Togo', 222); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tkl', 'COVERAGE', 'Tokelau', 223); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ton', 'COVERAGE', 'Tonga', 224); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tto', 'COVERAGE', 'Trinidad and Tobago', 225); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tun', 'COVERAGE', 'Tunisia', 226); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tur', 'COVERAGE', 'Turkey', 227); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tkm', 'COVERAGE', 'Turkmenistan', 228); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tca', 'COVERAGE', 'Turks and Caicos Islands', 229); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_tuv', 'COVERAGE', 'Tuvalu', 230); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_uga', 'COVERAGE', 'Uganda', 231); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ukr', 'COVERAGE', 'Ukraine', 232); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_are', 'COVERAGE', 'United Arab Emirates', 233); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_gbr', 'COVERAGE', 'United Kingdom of Great Britain and Northern Ireland', 234); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_usa', 'COVERAGE', 'United States of America', 235); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_umi', 'COVERAGE', 'United States Minor Outlying Islands', 236); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ury', 'COVERAGE', 'Uruguay', 237); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_uzb', 'COVERAGE', 'Uzbekistan', 238); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vut', 'COVERAGE', 'Vanuatu', 239); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_ven', 'COVERAGE', 'Venezuela (Bolivarian Republic of)', 240); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vnm', 'COVERAGE', 'Viet Nam', 241); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vgb', 'COVERAGE', 'Virgin Islands (British)', 242); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_vir', 'COVERAGE', 'Virgin Islands (U.S.)', 243); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_wlf', 'COVERAGE', 'Wallis and Futuna', 244); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_esh', 'COVERAGE', 'Western Sahara', 245); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_yem', 'COVERAGE', 'Yemen', 246); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_zmb', 'COVERAGE', 'Zambia', 247); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage_zwe', 'COVERAGE', 'Zimbabwe', 248); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-afg', 'coverage', 'Afghanistan', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ala', 'coverage', 'Åland Islands', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-alb', 'coverage', 'Albania', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-dza', 'coverage', 'Algeria', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-asm', 'coverage', 'American Samoa', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-and', 'coverage', 'Andorra', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ago', 'coverage', 'Angola', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-aia', 'coverage', 'Anguilla', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ata', 'coverage', 'Antarctica', 8); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-atg', 'coverage', 'Antigua and Barbuda', 9); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-arg', 'coverage', 'Argentina', 10); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-arm', 'coverage', 'Armenia', 11); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-abw', 'coverage', 'Aruba', 12); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-aus', 'coverage', 'Australia', 13); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-aut', 'coverage', 'Austria', 14); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-aze', 'coverage', 'Azerbaijan', 15); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bhs', 'coverage', 'Bahamas', 16); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bhr', 'coverage', 'Bahrain', 17); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bgd', 'coverage', 'Bangladesh', 18); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-brb', 'coverage', 'Barbados', 19); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-blr', 'coverage', 'Belarus', 20); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bel', 'coverage', 'Belgium', 21); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-blz', 'coverage', 'Belize', 22); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ben', 'coverage', 'Benin', 23); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bmu', 'coverage', 'Bermuda', 24); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-btn', 'coverage', 'Bhutan', 25); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bol', 'coverage', 'Bolivia (Plurinational State of)', 26); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bes', 'coverage', 'Bonaire, Sint Eustatius and Saba', 27); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bih', 'coverage', 'Bosnia and Herzegovina', 28); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bwa', 'coverage', 'Botswana', 29); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bvt', 'coverage', 'Bouvet Island', 30); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bra', 'coverage', 'Brazil', 31); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-iot', 'coverage', 'British Indian Ocean Territory', 32); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-brn', 'coverage', 'Brunei Darussalam', 33); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bgr', 'coverage', 'Bulgaria', 34); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bfa', 'coverage', 'Burkina Faso', 35); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-bdi', 'coverage', 'Burundi', 36); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cpv', 'coverage', 'Cabo Verde', 37); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-khm', 'coverage', 'Cambodia', 38); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cmr', 'coverage', 'Cameroon', 39); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-can', 'coverage', 'Canada', 40); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cym', 'coverage', 'Cayman Islands', 41); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-caf', 'coverage', 'Central African Republic', 42); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tcd', 'coverage', 'Chad', 43); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-chl', 'coverage', 'Chile', 44); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-chn', 'coverage', 'China', 45); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cxr', 'coverage', 'Christmas Island', 46); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cck', 'coverage', 'Cocos (Keeling) Islands', 47); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-col', 'coverage', 'Colombia', 48); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-com', 'coverage', 'Comoros', 49); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cog', 'coverage', 'Congo', 50); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cod', 'coverage', 'Congo (Democratic Republic of the)', 51); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cok', 'coverage', 'Cook Islands', 52); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cri', 'coverage', 'Costa Rica', 53); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-civ', 'coverage', 'Côte d''Ivoire', 54); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-hrv', 'coverage', 'Croatia', 55); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cub', 'coverage', 'Cuba', 56); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cuw', 'coverage', 'Curaçao', 57); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cyp', 'coverage', 'Cyprus', 58); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-cze', 'coverage', 'Czech Republic', 59); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-dnk', 'coverage', 'Denmark', 60); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-dji', 'coverage', 'Djibouti', 61); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-dma', 'coverage', 'Dominica', 62); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-dom', 'coverage', 'Dominican Republic', 63); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ecu', 'coverage', 'Ecuador', 64); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-egy', 'coverage', 'Egypt', 65); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-slv', 'coverage', 'El Salvador', 66); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gnq', 'coverage', 'Equatorial Guinea', 67); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-eri', 'coverage', 'Eritrea', 68); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-est', 'coverage', 'Estonia', 69); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-eth', 'coverage', 'Ethiopia', 70); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-flk', 'coverage', 'Falkland Islands (Malvinas)', 71); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-fro', 'coverage', 'Faroe Islands', 72); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-fji', 'coverage', 'Fiji', 73); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-fin', 'coverage', 'Finland', 74); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-fra', 'coverage', 'France', 75); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-guf', 'coverage', 'French Guiana', 76); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-pyf', 'coverage', 'French Polynesia', 77); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-atf', 'coverage', 'French Southern Territories', 78); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gab', 'coverage', 'Gabon', 79); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gmb', 'coverage', 'Gambia', 80); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-geo', 'coverage', 'Georgia', 81); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-deu', 'coverage', 'Germany', 82); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gha', 'coverage', 'Ghana', 83); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gib', 'coverage', 'Gibraltar', 84); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-grc', 'coverage', 'Greece', 85); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-grl', 'coverage', 'Greenland', 86); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-grd', 'coverage', 'Grenada', 87); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-glp', 'coverage', 'Guadeloupe', 88); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gum', 'coverage', 'Guam', 89); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gtm', 'coverage', 'Guatemala', 90); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ggy', 'coverage', 'Guernsey', 91); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gin', 'coverage', 'Guinea', 92); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gnb', 'coverage', 'Guinea-Bissau', 93); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-guy', 'coverage', 'Guyana', 94); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-hti', 'coverage', 'Haiti', 95); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-hmd', 'coverage', 'Heard Island and McDonald Islands', 96); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-vat', 'coverage', 'Holy See', 97); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-hnd', 'coverage', 'Honduras', 98); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-hkg', 'coverage', 'Hong Kong', 99); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-hun', 'coverage', 'Hungary', 100); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-isl', 'coverage', 'Iceland', 101); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ind', 'coverage', 'India', 102); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-idn', 'coverage', 'Indonesia', 103); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-irn', 'coverage', 'Iran (Islamic Republic of)', 104); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-irq', 'coverage', 'Iraq', 105); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-irl', 'coverage', 'Ireland', 106); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-imn', 'coverage', 'Isle of Man', 107); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-isr', 'coverage', 'Israel', 108); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ita', 'coverage', 'Italy', 109); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-jam', 'coverage', 'Jamaica', 110); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-jpn', 'coverage', 'Japan', 111); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-jey', 'coverage', 'Jersey', 112); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-jor', 'coverage', 'Jordan', 113); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-kaz', 'coverage', 'Kazakhstan', 114); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ken', 'coverage', 'Kenya', 115); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-kir', 'coverage', 'Kiribati', 116); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-prk', 'coverage', 'Korea (Democratic People''s Republic of)', 117); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-kor', 'coverage', 'Korea (Republic of)', 118); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-kwt', 'coverage', 'Kuwait', 119); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-kgz', 'coverage', 'Kyrgyzstan', 120); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lao', 'coverage', 'Lao People''s Democratic Republic', 121); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lva', 'coverage', 'Latvia', 122); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lbn', 'coverage', 'Lebanon', 123); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lso', 'coverage', 'Lesotho', 124); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lbr', 'coverage', 'Liberia', 125); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lby', 'coverage', 'Libya', 126); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lie', 'coverage', 'Liechtenstein', 127); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ltu', 'coverage', 'Lithuania', 128); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lux', 'coverage', 'Luxembourg', 129); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mac', 'coverage', 'Macao', 130); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mkd', 'coverage', 'Macedonia (the former Yugoslav Republic of)', 131); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mdg', 'coverage', 'Madagascar', 132); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mwi', 'coverage', 'Malawi', 133); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mys', 'coverage', 'Malaysia', 134); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mdv', 'coverage', 'Maldives', 135); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mli', 'coverage', 'Mali', 136); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mlt', 'coverage', 'Malta', 137); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mhl', 'coverage', 'Marshall Islands', 138); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mtq', 'coverage', 'Martinique', 139); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mrt', 'coverage', 'Mauritania', 140); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mus', 'coverage', 'Mauritius', 141); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-myt', 'coverage', 'Mayotte', 142); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mex', 'coverage', 'Mexico', 143); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-fsm', 'coverage', 'Micronesia (Federated States of)', 144); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mda', 'coverage', 'Moldova (Republic of)', 145); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mco', 'coverage', 'Monaco', 146); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mng', 'coverage', 'Mongolia', 147); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mne', 'coverage', 'Montenegro', 148); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-msr', 'coverage', 'Montserrat', 149); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mar', 'coverage', 'Morocco', 150); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-moz', 'coverage', 'Mozambique', 151); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mmr', 'coverage', 'Myanmar', 152); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-nam', 'coverage', 'Namibia', 153); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-nru', 'coverage', 'Nauru', 154); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-npl', 'coverage', 'Nepal', 155); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-nld', 'coverage', 'Netherlands', 156); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ncl', 'coverage', 'New Caledonia', 157); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-nzl', 'coverage', 'New Zealand', 158); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-nic', 'coverage', 'Nicaragua', 159); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ner', 'coverage', 'Niger', 160); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-nga', 'coverage', 'Nigeria', 161); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-niu', 'coverage', 'Niue', 162); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-nfk', 'coverage', 'Norfolk Island', 163); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-mnp', 'coverage', 'Northern Mariana Islands', 164); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-nor', 'coverage', 'Norway', 165); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-omn', 'coverage', 'Oman', 166); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-pak', 'coverage', 'Pakistan', 167); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-plw', 'coverage', 'Palau', 168); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-pse', 'coverage', 'Palestine, State of', 169); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-pan', 'coverage', 'Panama', 170); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-png', 'coverage', 'Papua New Guinea', 171); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-pry', 'coverage', 'Paraguay', 172); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-per', 'coverage', 'Peru', 173); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-phl', 'coverage', 'Philippines', 174); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-pcn', 'coverage', 'Pitcairn', 175); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-pol', 'coverage', 'Poland', 176); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-prt', 'coverage', 'Portugal', 177); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-pri', 'coverage', 'Puerto Rico', 178); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-qat', 'coverage', 'Qatar', 179); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-reu', 'coverage', 'Réunion', 180); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-rou', 'coverage', 'Romania', 181); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-rus', 'coverage', 'Russian Federation', 182); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-rwa', 'coverage', 'Rwanda', 183); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-blm', 'coverage', 'Saint Barthélemy', 184); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-shn', 'coverage', 'Saint Helena, Ascension and Tristan da Cunha', 185); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-kna', 'coverage', 'Saint Kitts and Nevis', 186); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lca', 'coverage', 'Saint Lucia', 187); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-maf', 'coverage', 'Saint Martin (French part)', 188); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-spm', 'coverage', 'Saint Pierre and Miquelon', 189); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-vct', 'coverage', 'Saint Vincent and the Grenadines', 190); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-wsm', 'coverage', 'Samoa', 191); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-smr', 'coverage', 'San Marino', 192); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-stp', 'coverage', 'Sao Tome and Principe', 193); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sau', 'coverage', 'Saudi Arabia', 194); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sen', 'coverage', 'Senegal', 195); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-srb', 'coverage', 'Serbia', 196); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-syc', 'coverage', 'Seychelles', 197); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sle', 'coverage', 'Sierra Leone', 198); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sgp', 'coverage', 'Singapore', 199); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sxm', 'coverage', 'Sint Maarten (Dutch part)', 200); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-svk', 'coverage', 'Slovakia', 201); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-svn', 'coverage', 'Slovenia', 202); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-slb', 'coverage', 'Solomon Islands', 203); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-som', 'coverage', 'Somalia', 204); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-zaf', 'coverage', 'South Africa', 205); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sgs', 'coverage', 'South Georgia and the South Sandwich Islands', 206); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ssd', 'coverage', 'South Sudan', 207); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-esp', 'coverage', 'Spain', 208); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-lka', 'coverage', 'Sri Lanka', 209); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sdn', 'coverage', 'Sudan', 210); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sur', 'coverage', 'Suriname', 211); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-sjm', 'coverage', 'Svalbard and Jan Mayen', 212); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-swz', 'coverage', 'Swaziland', 213); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-swe', 'coverage', 'Sweden', 214); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-che', 'coverage', 'Switzerland', 215); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-syr', 'coverage', 'Syrian Arab Republic', 216); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-twn', 'coverage', 'Taiwan, Province of China', 217); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tjk', 'coverage', 'Tajikistan', 218); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tza', 'coverage', 'Tanzania, United Republic of', 219); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tha', 'coverage', 'Thailand', 220); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tls', 'coverage', 'Timor-Leste', 221); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tgo', 'coverage', 'Togo', 222); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tkl', 'coverage', 'Tokelau', 223); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ton', 'coverage', 'Tonga', 224); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tto', 'coverage', 'Trinidad and Tobago', 225); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tun', 'coverage', 'Tunisia', 226); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tur', 'coverage', 'Turkey', 227); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tkm', 'coverage', 'Turkmenistan', 228); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tca', 'coverage', 'Turks and Caicos Islands', 229); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-tuv', 'coverage', 'Tuvalu', 230); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-uga', 'coverage', 'Uganda', 231); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ukr', 'coverage', 'Ukraine', 232); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-are', 'coverage', 'United Arab Emirates', 233); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-gbr', 'coverage', 'United Kingdom of Great Britain and Northern Ireland', 234); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-usa', 'coverage', 'United States of America', 235); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-umi', 'coverage', 'United States Minor Outlying Islands', 236); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ury', 'coverage', 'Uruguay', 237); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-uzb', 'coverage', 'Uzbekistan', 238); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-vut', 'coverage', 'Vanuatu', 239); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-ven', 'coverage', 'Venezuela (Bolivarian Republic of)', 240); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-vnm', 'coverage', 'Viet Nam', 241); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-vgb', 'coverage', 'Virgin Islands (British)', 242); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-vir', 'coverage', 'Virgin Islands (U.S.)', 243); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-wlf', 'coverage', 'Wallis and Futuna', 244); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-esh', 'coverage', 'Western Sahara', 245); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-yem', 'coverage', 'Yemen', 246); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-zmb', 'coverage', 'Zambia', 247); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-zwe', 'coverage', 'Zimbabwe', 248); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_all_rights_reserved', 'RIGHTS', 'All Rights Reserved', 0); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_public_domain', 'RIGHTS', 'Public Domain', 1); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_ancsa', 'RIGHTS', 'Attribution-NonCommercial-ShareAlike License', 2); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_anc', 'RIGHTS', 'Attribution-NonCommercial License', 3); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_ancnd', 'RIGHTS', 'Attribution-NonCommercial-NoDerivs License', 4); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_a', 'RIGHTS', 'Attribution License', 5); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_asa', 'RIGHTS', 'Attribution-ShareAlike License', 6); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_cc_and', 'RIGHTS', 'Attribution-NoDerivs License', 7); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights_no_copyright', 'RIGHTS', 'No known copyright restrictions', 8); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-all-rights-reserved', 'rights', 'All Rights Reserved', 0); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-pubic-domain', 'rights', 'Public Domain', 1); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-cc-ancsa', 'rights', 'Attribution-NonCommercial-ShareAlike License', 2); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-cc-anc', 'rights', 'Attribution-NonCommercial License', 3); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-cc-ancnd', 'rights', 'Attribution-NonCommercial-NoDerivs License', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-cc-a', 'rights', 'Attribution License', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-cc-asa', 'rights', 'Attribution-ShareAlike License', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-cc-and', 'rights', 'Attribution-NoDerivs License', 7); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('rights-no-copyright', 'rights', 'No known copyright restrictions', 8); update T_CONFIG set CFG_VALUE_C = '6' where CFG_ID_C = 'DB_VERSION'; diff --git a/docs-web-common/src/main/java/com/sismics/rest/util/ValidationUtil.java b/docs-web-common/src/main/java/com/sismics/rest/util/ValidationUtil.java index 1d146641..ef962fb1 100644 --- a/docs-web-common/src/main/java/com/sismics/rest/util/ValidationUtil.java +++ b/docs-web-common/src/main/java/com/sismics/rest/util/ValidationUtil.java @@ -143,6 +143,12 @@ public class ValidationUtil { } } + public static void validateRegex(String s, String name, String regex) throws ClientException { + if (!Pattern.compile(regex).matcher(s).matches()) { + throw new ClientException("ValidationError", MessageFormat.format("{0} must match {1}", name, regex)); + } + } + /** * Checks if the string is a number. * diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/CommentResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/CommentResource.java index a940e989..95376208 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/CommentResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/CommentResource.java @@ -86,9 +86,6 @@ public class CommentResource extends BaseResource { throw new ForbiddenClientException(); } - // Validate input data - ValidationUtil.validateRequired(id, "id"); - // Get the comment CommentDao commentDao = new CommentDao(); Comment comment = commentDao.getActiveById(id); diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java index 5f2758aa..7e74bd94 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java @@ -1,11 +1,19 @@ package com.sismics.docs.rest.resource; +import java.util.List; + import javax.json.Json; +import javax.json.JsonArrayBuilder; import javax.json.JsonObjectBuilder; +import javax.ws.rs.DELETE; import javax.ws.rs.FormParam; +import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.PUT; import javax.ws.rs.Path; +import javax.ws.rs.PathParam; import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; import com.sismics.docs.core.dao.jpa.VocabularyDao; import com.sismics.docs.core.model.jpa.Vocabulary; @@ -19,6 +27,30 @@ import com.sismics.rest.util.ValidationUtil; */ @Path("/vocabulary") public class VocabularyResource extends BaseResource { + @GET + @Path("{name: [a-z0-9\\-]+}") + public Response get(@PathParam("name") String name) { + if (!authenticate()) { + throw new ForbiddenClientException(); + } + + // Assemble results + VocabularyDao vocabularyDao = new VocabularyDao(); + List vocabularyList = vocabularyDao.getByName(name); + JsonArrayBuilder entries = Json.createArrayBuilder(); + for (Vocabulary vocabulary : vocabularyList) { + entries.add(Json.createObjectBuilder() + .add("id", vocabulary.getId()) + .add("value", vocabulary.getValue()) + .add("order", vocabulary.getOrder())); + } + + // Always return OK + JsonObjectBuilder response = Json.createObjectBuilder() + .add("entries", entries); + return Response.ok().entity(response.build()).build(); + } + /** * Add a vocabulary. * @@ -37,10 +69,11 @@ public class VocabularyResource extends BaseResource { // Validate input data name = ValidationUtil.validateLength(name, "name", 1, 50, false); + ValidationUtil.validateRegex(name, "name", "[a-z0-9\\-]+"); value = ValidationUtil.validateLength(value, "value", 1, 100, false); Integer order = ValidationUtil.validateInteger(orderStr, "order"); - // Create the comment + // Create the vocabulary VocabularyDao vocabularyDao = new VocabularyDao(); Vocabulary vocabulary = new Vocabulary(); vocabulary.setName(name); @@ -48,12 +81,96 @@ public class VocabularyResource extends BaseResource { vocabulary.setOrder(order); vocabularyDao.create(vocabulary); - // Returns the comment + // Returns the vocabulary JsonObjectBuilder response = Json.createObjectBuilder() .add("id", vocabulary.getId()) .add("name", vocabulary.getName()) .add("value", vocabulary.getValue()) - .add("order", Integer.toString(vocabulary.getOrder())); + .add("order", vocabulary.getOrder()); + return Response.ok().entity(response.build()).build(); + } + + /** + * Update a vocabulary. + * + * @param name Name + * @param value Value + * @param order Order + * @return Response + */ + @POST + @Path("{id: [a-z0-9\\-]+}") + public Response update(@PathParam("id") String id, + @FormParam("name") String name, + @FormParam("value") String value, + @FormParam("order") String orderStr) { + if (!authenticate()) { + throw new ForbiddenClientException(); + } + + // Validate input data + name = ValidationUtil.validateLength(name, "name", 1, 50, true); + ValidationUtil.validateRegex(name, "name", "[a-z0-9\\-]+"); + value = ValidationUtil.validateLength(value, "value", 1, 100, true); + Integer order = null; + if (orderStr != null) { + order = ValidationUtil.validateInteger(orderStr, "order"); + } + + // Get the vocabulary entry + VocabularyDao vocabularyDao = new VocabularyDao(); + Vocabulary vocabulary = vocabularyDao.getById(id); + if (vocabulary == null) { + return Response.status(Status.NOT_FOUND).build(); + } + + // Update the vocabulary + if (name != null) { + vocabulary.setName(name); + } + if (value != null) { + vocabulary.setValue(value); + } + if (order != null) { + vocabulary.setOrder(order); + } + vocabularyDao.update(vocabulary); + + // Returns the vocabulary + JsonObjectBuilder response = Json.createObjectBuilder() + .add("id", vocabulary.getId()) + .add("name", vocabulary.getName()) + .add("value", vocabulary.getValue()) + .add("order", vocabulary.getOrder()); + return Response.ok().entity(response.build()).build(); + } + + /** + * Delete a vocabulary. + * + * @param id ID + * @return Response + */ + @DELETE + @Path("{id: [a-z0-9\\-]+}") + public Response delete(@PathParam("id") String id) { + if (!authenticate()) { + throw new ForbiddenClientException(); + } + + // Get the vocabulary + VocabularyDao vocabularyDao = new VocabularyDao(); + Vocabulary vocabulary = vocabularyDao.getById(id); + if (vocabulary == null) { + return Response.status(Status.NOT_FOUND).build(); + } + + // Delete the vocabulary + vocabularyDao.delete(id); + + // Always return OK + JsonObjectBuilder response = Json.createObjectBuilder() + .add("status", "ok"); return Response.ok().entity(response.build()).build(); } } diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java index a30392e2..07314f92 100644 --- a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java +++ b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java @@ -3,6 +3,8 @@ package com.sismics.docs.rest; import javax.json.JsonObject; import javax.ws.rs.client.Entity; import javax.ws.rs.core.Form; +import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; import org.junit.Assert; import org.junit.Test; @@ -26,14 +28,83 @@ public class TestVocabularyResource extends BaseJerseyTest { clientUtil.createUser("vocabulary1"); String vocabulary1Token = clientUtil.login("vocabulary1"); + // Get coverage vocabularies entries + JsonObject json = target().path("/vocabulary/coverage").request() + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .get(JsonObject.class); + Assert.assertEquals(249, json.getJsonArray("entries").size()); + JsonObject entry = json.getJsonArray("entries").getJsonObject(0); + Assert.assertEquals("coverage-afg", entry.getString("id")); + Assert.assertEquals("Afghanistan", entry.getString("value")); + Assert.assertEquals(0, entry.getJsonNumber("order").intValue()); + entry = json.getJsonArray("entries").getJsonObject(248); + Assert.assertEquals("coverage-zwe", entry.getString("id")); + Assert.assertEquals("Zimbabwe", entry.getString("value")); + Assert.assertEquals(248, entry.getJsonNumber("order").intValue()); + // Create a vocabulary entry with vocabulary1 - JsonObject json = target().path("/vocabulary").request() + json = target().path("/vocabulary").request() .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) .put(Entity.form(new Form() - .param("name", "TEST_VOC_1") + .param("name", "test-voc-1") .param("value", "First value") .param("order", "0")), JsonObject.class); String vocabulary1Id = json.getString("id"); Assert.assertNotNull(vocabulary1Id); + Assert.assertEquals("test-voc-1", json.getString("name")); + Assert.assertEquals("First value", json.getString("value")); + Assert.assertEquals(0, json.getJsonNumber("order").intValue()); + + // Create a vocabulary entry with vocabulary1 + Response response = target().path("/vocabulary").request() + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .put(Entity.form(new Form() + .param("name", "NOT_VALID") + .param("value", "First value") + .param("order", "0"))); + Assert.assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus()); + + // Get test-voc-1 vocabularies entries + json = target().path("/vocabulary/test-voc-1").request() + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .get(JsonObject.class); + Assert.assertEquals(1, json.getJsonArray("entries").size()); + entry = json.getJsonArray("entries").getJsonObject(0); + Assert.assertEquals(vocabulary1Id, entry.getString("id")); + Assert.assertEquals("First value", entry.getString("value")); + Assert.assertEquals(0, entry.getJsonNumber("order").intValue()); + + // Update a vocabulary entry with vocabulary1 + json = target().path("/vocabulary/" + vocabulary1Id).request() + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .post(Entity.form(new Form() + .param("name", "test-voc-1-updated") + .param("value", "First value updated") + .param("order", "1")), JsonObject.class); + Assert.assertEquals(vocabulary1Id, json.getString("id")); + Assert.assertEquals("test-voc-1-updated", json.getString("name")); + Assert.assertEquals("First value updated", json.getString("value")); + Assert.assertEquals(1, json.getJsonNumber("order").intValue()); + + // Get test-voc-1-updated vocabularies entries + json = target().path("/vocabulary/test-voc-1-updated").request() + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .get(JsonObject.class); + Assert.assertEquals(1, json.getJsonArray("entries").size()); + entry = json.getJsonArray("entries").getJsonObject(0); + Assert.assertEquals(vocabulary1Id, entry.getString("id")); + Assert.assertEquals("First value updated", entry.getString("value")); + Assert.assertEquals(1, entry.getJsonNumber("order").intValue()); + + // Delete a vocabulary entry with vocabulary1 + json = target().path("/vocabulary/" + vocabulary1Id).request() + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .delete(JsonObject.class); + + // Get test-voc-1-updated vocabularies entries + json = target().path("/vocabulary/test-voc-1-updated").request() + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .get(JsonObject.class); + Assert.assertEquals(0, json.getJsonArray("entries").size()); } } \ No newline at end of file From 47082ceee9e131365e5fd8b47e49d9e899cb0da7 Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 14 Feb 2016 21:06:39 +0100 Subject: [PATCH 05/24] #65: Vocabulary modification for admin only --- .../docs/rest/resource/UserResource.java | 5 ----- .../rest/resource/VocabularyResource.java | 4 ++++ .../docs/rest/TestVocabularyResource.java | 19 +++++++++++-------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java index 0460d069..0568191a 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java @@ -74,7 +74,6 @@ public class UserResource extends BaseResource { @FormParam("password") String password, @FormParam("email") String email, @FormParam("storage_quota") String storageQuotaStr) { - if (!authenticate()) { throw new ForbiddenClientException(); } @@ -132,7 +131,6 @@ public class UserResource extends BaseResource { public Response update( @FormParam("password") String password, @FormParam("email") String email) { - if (!authenticate()) { throw new ForbiddenClientException(); } @@ -176,7 +174,6 @@ public class UserResource extends BaseResource { @FormParam("password") String password, @FormParam("email") String email, @FormParam("storage_quota") String storageQuotaStr) { - if (!authenticate()) { throw new ForbiddenClientException(); } @@ -225,7 +222,6 @@ public class UserResource extends BaseResource { @Path("check_username") public Response checkUsername( @QueryParam("username") String username) { - UserDao userDao = new UserDao(); User user = userDao.getActiveByUsername(username); @@ -255,7 +251,6 @@ public class UserResource extends BaseResource { @FormParam("username") String username, @FormParam("password") String password, @FormParam("remember") boolean longLasted) { - // Validate the input data username = StringUtils.strip(username); password = StringUtils.strip(password); diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java index 7e74bd94..cb99c733 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java @@ -17,6 +17,7 @@ import javax.ws.rs.core.Response.Status; import com.sismics.docs.core.dao.jpa.VocabularyDao; import com.sismics.docs.core.model.jpa.Vocabulary; +import com.sismics.docs.rest.constant.BaseFunction; import com.sismics.rest.exception.ForbiddenClientException; import com.sismics.rest.util.ValidationUtil; @@ -66,6 +67,7 @@ public class VocabularyResource extends BaseResource { if (!authenticate()) { throw new ForbiddenClientException(); } + checkBaseFunction(BaseFunction.ADMIN); // Validate input data name = ValidationUtil.validateLength(name, "name", 1, 50, false); @@ -107,6 +109,7 @@ public class VocabularyResource extends BaseResource { if (!authenticate()) { throw new ForbiddenClientException(); } + checkBaseFunction(BaseFunction.ADMIN); // Validate input data name = ValidationUtil.validateLength(name, "name", 1, 50, true); @@ -157,6 +160,7 @@ public class VocabularyResource extends BaseResource { if (!authenticate()) { throw new ForbiddenClientException(); } + checkBaseFunction(BaseFunction.ADMIN); // Get the vocabulary VocabularyDao vocabularyDao = new VocabularyDao(); diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java index 07314f92..98ea2194 100644 --- a/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java +++ b/docs-web/src/test/java/com/sismics/docs/rest/TestVocabularyResource.java @@ -28,6 +28,9 @@ public class TestVocabularyResource extends BaseJerseyTest { clientUtil.createUser("vocabulary1"); String vocabulary1Token = clientUtil.login("vocabulary1"); + // Login admin + String adminAuthenticationToken = clientUtil.login("admin", "admin", false); + // Get coverage vocabularies entries JsonObject json = target().path("/vocabulary/coverage").request() .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) @@ -42,9 +45,9 @@ public class TestVocabularyResource extends BaseJerseyTest { Assert.assertEquals("Zimbabwe", entry.getString("value")); Assert.assertEquals(248, entry.getJsonNumber("order").intValue()); - // Create a vocabulary entry with vocabulary1 + // Create a vocabulary entry with admin json = target().path("/vocabulary").request() - .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken) .put(Entity.form(new Form() .param("name", "test-voc-1") .param("value", "First value") @@ -55,9 +58,9 @@ public class TestVocabularyResource extends BaseJerseyTest { Assert.assertEquals("First value", json.getString("value")); Assert.assertEquals(0, json.getJsonNumber("order").intValue()); - // Create a vocabulary entry with vocabulary1 + // Create a vocabulary entry with admin Response response = target().path("/vocabulary").request() - .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken) .put(Entity.form(new Form() .param("name", "NOT_VALID") .param("value", "First value") @@ -74,9 +77,9 @@ public class TestVocabularyResource extends BaseJerseyTest { Assert.assertEquals("First value", entry.getString("value")); Assert.assertEquals(0, entry.getJsonNumber("order").intValue()); - // Update a vocabulary entry with vocabulary1 + // Update a vocabulary entry with admin json = target().path("/vocabulary/" + vocabulary1Id).request() - .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken) .post(Entity.form(new Form() .param("name", "test-voc-1-updated") .param("value", "First value updated") @@ -96,9 +99,9 @@ public class TestVocabularyResource extends BaseJerseyTest { Assert.assertEquals("First value updated", entry.getString("value")); Assert.assertEquals(1, entry.getJsonNumber("order").intValue()); - // Delete a vocabulary entry with vocabulary1 + // Delete a vocabulary entry with admin json = target().path("/vocabulary/" + vocabulary1Id).request() - .cookie(TokenBasedSecurityFilter.COOKIE_NAME, vocabulary1Token) + .cookie(TokenBasedSecurityFilter.COOKIE_NAME, adminAuthenticationToken) .delete(JsonObject.class); // Get test-voc-1-updated vocabularies entries From ed51b77b0ec7c3f0acc57e920d019bdc2281ac1a Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 14 Feb 2016 21:51:46 +0100 Subject: [PATCH 06/24] #65: Vocabulary admin UI --- docs-web/src/main/webapp/src/app/docs/app.js | 9 ++++ .../app/docs/controller/SettingsVocabulary.js | 42 +++++++++++++++ docs-web/src/main/webapp/src/index.html | 1 + .../webapp/src/partial/docs/settings.html | 1 + .../src/partial/docs/settings.vocabulary.html | 51 +++++++++++++++++++ 5 files changed, 104 insertions(+) create mode 100644 docs-web/src/main/webapp/src/app/docs/controller/SettingsVocabulary.js create mode 100644 docs-web/src/main/webapp/src/partial/docs/settings.vocabulary.html diff --git a/docs-web/src/main/webapp/src/app/docs/app.js b/docs-web/src/main/webapp/src/app/docs/app.js index 9e1891fa..4a1f981e 100644 --- a/docs-web/src/main/webapp/src/app/docs/app.js +++ b/docs-web/src/main/webapp/src/app/docs/app.js @@ -106,6 +106,15 @@ angular.module('docs', } } }) + .state('settings.vocabulary', { + url: '/vocabulary', + views: { + 'settings': { + templateUrl: 'partial/docs/settings.vocabulary.html', + controller: 'SettingsVocabulary' + } + } + }) .state('document', { url: '/document', abstract: true, diff --git a/docs-web/src/main/webapp/src/app/docs/controller/SettingsVocabulary.js b/docs-web/src/main/webapp/src/app/docs/controller/SettingsVocabulary.js new file mode 100644 index 00000000..e23cf437 --- /dev/null +++ b/docs-web/src/main/webapp/src/app/docs/controller/SettingsVocabulary.js @@ -0,0 +1,42 @@ +'use strict'; + +/** + * Settings vocabulary page controller. + */ +angular.module('docs').controller('SettingsVocabulary', function($scope, Restangular) { + $scope.entries = []; + + // Watch for vocabulary selection change + $scope.$watch('vocabulary', function(name) { + if (_.isUndefined(name) || name == '') { + $scope.entries = []; + return; + } + + // Load entries + Restangular.one('vocabulary', name).get().then(function(result) { + $scope.entries = result.entries; + }); + }); + + // Delete an entry + $scope.deleteEntry = function(entry) { + Restangular.one('vocabulary', entry.id).remove().then(function() { + $scope.entries.splice($scope.entries.indexOf(entry), 1); + }); + }; + + // Update an entry + $scope.updateEntry = function(entry) { + Restangular.one('vocabulary', entry.id).post('', entry); + }; + + // Add an entry + $scope.addEntry = function(entry) { + entry.name = $scope.vocabulary; + Restangular.one('vocabulary').put(entry).then(function() { + $scope.entries.push(entry); + $scope.entry = {}; + }); + }; +}); \ No newline at end of file diff --git a/docs-web/src/main/webapp/src/index.html b/docs-web/src/main/webapp/src/index.html index e17c2c29..a49b177c 100644 --- a/docs-web/src/main/webapp/src/index.html +++ b/docs-web/src/main/webapp/src/index.html @@ -60,6 +60,7 @@ + diff --git a/docs-web/src/main/webapp/src/partial/docs/settings.html b/docs-web/src/main/webapp/src/partial/docs/settings.html index d3246e12..4bc1a5d0 100644 --- a/docs-web/src/main/webapp/src/partial/docs/settings.html +++ b/docs-web/src/main/webapp/src/partial/docs/settings.html @@ -12,6 +12,7 @@
General settings
diff --git a/docs-web/src/main/webapp/src/partial/docs/settings.vocabulary.html b/docs-web/src/main/webapp/src/partial/docs/settings.vocabulary.html new file mode 100644 index 00000000..0ec5abd9 --- /dev/null +++ b/docs-web/src/main/webapp/src/partial/docs/settings.vocabulary.html @@ -0,0 +1,51 @@ +

Vocabulary entries

+ +
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
ValueOrder
+ + + + + +
 
+ + + + + +
+
\ No newline at end of file From 359f5b5f49e8db6980244dfdd71c4c60a222b41e Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 14 Feb 2016 22:47:49 +0100 Subject: [PATCH 07/24] #65: Publisher, format, source metadata --- .../docs/core/dao/jpa/DocumentDao.java | 14 +- .../docs/core/dao/jpa/dto/DocumentDto.java | 78 ++++++++++ .../docs/core/dao/lucene/LuceneDao.java | 24 +++ .../sismics/docs/core/model/jpa/Document.java | 84 +++++++++++ .../resources/db/update/dbupdate-006-0.sql | 14 +- .../docs/rest/resource/DocumentResource.java | 56 ++++++- .../rest/resource/VocabularyResource.java | 5 +- .../src/partial/docs/document.edit.html | 139 +++++++++++------- .../partial/docs/document.view.content.html | 6 + .../docs/rest/TestDocumentResource.java | 34 +++++ .../docs/rest/TestVocabularyResource.java | 2 + 11 files changed, 394 insertions(+), 62 deletions(-) diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java index 0d58e3b1..ebf3a45b 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java @@ -89,7 +89,7 @@ public class DocumentDao { */ public DocumentDto getDocument(String id) { EntityManager em = ThreadLocalContext.get().getEntityManager(); - StringBuilder sb = new StringBuilder("select d.DOC_ID_C, d.DOC_TITLE_C, d.DOC_DESCRIPTION_C, d.DOC_SUBJECT_C, d.DOC_IDENTIFIER_C, d.DOC_CREATEDATE_D, d.DOC_LANGUAGE_C, "); + StringBuilder sb = new StringBuilder("select d.DOC_ID_C, d.DOC_TITLE_C, d.DOC_DESCRIPTION_C, d.DOC_SUBJECT_C, d.DOC_IDENTIFIER_C, d.DOC_PUBLISHER_C, d.DOC_FORMAT_C, d.DOC_SOURCE_C, d.DOC_TYPE_C, d.DOC_COVERAGE_C, d.DOC_RIGHTS_C, d.DOC_CREATEDATE_D, d.DOC_LANGUAGE_C, "); sb.append(" (select count(s.SHA_ID_C) from T_SHARE s, T_ACL ac where ac.ACL_SOURCEID_C = d.DOC_ID_C and ac.ACL_TARGETID_C = s.SHA_ID_C and ac.ACL_DELETEDATE_D is null and s.SHA_DELETEDATE_D is null), "); sb.append(" (select count(f.FIL_ID_C) from T_FILE f where f.FIL_DELETEDATE_D is null and f.FIL_IDDOC_C = d.DOC_ID_C), "); sb.append(" u.USE_USERNAME_C "); @@ -111,6 +111,12 @@ public class DocumentDao { documentDto.setDescription((String) o[i++]); documentDto.setSubject((String) o[i++]); documentDto.setIdentifier((String) o[i++]); + documentDto.setPublisher((String) o[i++]); + documentDto.setFormat((String) o[i++]); + documentDto.setSource((String) o[i++]); + documentDto.setType((String) o[i++]); + documentDto.setCoverage((String) o[i++]); + documentDto.setRights((String) o[i++]); documentDto.setCreateTimestamp(((Timestamp) o[i++]).getTime()); documentDto.setLanguage((String) o[i++]); documentDto.setShared(((Number) o[i++]).intValue() > 0); @@ -300,6 +306,12 @@ public class DocumentDao { documentFromDb.setDescription(document.getDescription()); documentFromDb.setSubject(document.getSubject()); documentFromDb.setIdentifier(document.getIdentifier()); + documentFromDb.setPublisher(document.getPublisher()); + documentFromDb.setFormat(document.getFormat()); + documentFromDb.setSource(document.getSource()); + documentFromDb.setType(document.getType()); + documentFromDb.setCoverage(document.getCoverage()); + documentFromDb.setRights(document.getRights()); documentFromDb.setCreateDate(document.getCreateDate()); documentFromDb.setLanguage(document.getLanguage()); diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java index e67a7f7d..e5ed2eb1 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java @@ -34,6 +34,36 @@ public class DocumentDto { */ private String identifier; + /** + * Publisher. + */ + private String publisher; + + /** + * Format. + */ + private String format; + + /** + * Source. + */ + private String source; + + /** + * Type. + */ + private String type; + + /** + * Coverage. + */ + private String coverage; + + /** + * Rights. + */ + private String rights; + /** * Language. */ @@ -98,6 +128,54 @@ public class DocumentDto { public void setIdentifier(String identifier) { this.identifier = identifier; } + + public String getPublisher() { + return publisher; + } + + public void setPublisher(String publisher) { + this.publisher = publisher; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getCoverage() { + return coverage; + } + + public void setCoverage(String coverage) { + this.coverage = coverage; + } + + public String getRights() { + return rights; + } + + public void setRights(String rights) { + this.rights = rights; + } public Long getCreateTimestamp() { return createTimestamp; diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/lucene/LuceneDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/lucene/LuceneDao.java index cd2d1d0c..a96f807a 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/lucene/LuceneDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/lucene/LuceneDao.java @@ -161,6 +161,12 @@ public class LuceneDao { query.add(qpHelper.parse(searchQuery, "description"), Occur.SHOULD); query.add(qpHelper.parse(searchQuery, "subject"), Occur.SHOULD); query.add(qpHelper.parse(searchQuery, "identifier"), Occur.SHOULD); + query.add(qpHelper.parse(searchQuery, "publisher"), Occur.SHOULD); + query.add(qpHelper.parse(searchQuery, "format"), Occur.SHOULD); + query.add(qpHelper.parse(searchQuery, "source"), Occur.SHOULD); + query.add(qpHelper.parse(searchQuery, "type"), Occur.SHOULD); + query.add(qpHelper.parse(searchQuery, "coverage"), Occur.SHOULD); + query.add(qpHelper.parse(searchQuery, "rights"), Occur.SHOULD); query.add(qpHelper.parse(fullSearchQuery, "content"), Occur.SHOULD); // Search @@ -210,6 +216,24 @@ public class LuceneDao { if (document.getIdentifier() != null) { luceneDocument.add(new TextField("identifier", document.getIdentifier(), Field.Store.NO)); } + if (document.getPublisher() != null) { + luceneDocument.add(new TextField("publisher", document.getPublisher(), Field.Store.NO)); + } + if (document.getFormat() != null) { + luceneDocument.add(new TextField("format", document.getFormat(), Field.Store.NO)); + } + if (document.getSource() != null) { + luceneDocument.add(new TextField("source", document.getSource(), Field.Store.NO)); + } + if (document.getType() != null) { + luceneDocument.add(new TextField("type", document.getType(), Field.Store.NO)); + } + if (document.getCoverage() != null) { + luceneDocument.add(new TextField("coverage", document.getCoverage(), Field.Store.NO)); + } + if (document.getRights() != null) { + luceneDocument.add(new TextField("rights", document.getRights(), Field.Store.NO)); + } return luceneDocument; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Document.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Document.java index 2964a02d..7b9da6f2 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Document.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Document.java @@ -60,6 +60,42 @@ public class Document implements Loggable { @Column(name = "DOC_IDENTIFIER_C", length = 500) private String identifier; + /** + * Publisher. + */ + @Column(name = "DOC_PUBLISHER_C", length = 500) + private String publisher; + + /** + * Format. + */ + @Column(name = "DOC_FORMAT_C", length = 500) + private String format; + + /** + * Source. + */ + @Column(name = "DOC_SOURCE_C", length = 500) + private String source; + + /** + * Type. + */ + @Column(name = "DOC_TYPE_C", length = 100) + private String type; + + /** + * Coverage. + */ + @Column(name = "DOC_COVERAGE_C", length = 100) + private String coverage; + + /** + * Rights. + */ + @Column(name = "DOC_RIGHTS_C", length = 100) + private String rights; + /** * Creation date. */ @@ -127,6 +163,54 @@ public class Document implements Loggable { public void setIdentifier(String identifier) { this.identifier = identifier; } + + public String getPublisher() { + return publisher; + } + + public void setPublisher(String publisher) { + this.publisher = publisher; + } + + public String getFormat() { + return format; + } + + public void setFormat(String format) { + this.format = format; + } + + public String getSource() { + return source; + } + + public void setSource(String source) { + this.source = source; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getCoverage() { + return coverage; + } + + public void setCoverage(String coverage) { + this.coverage = coverage; + } + + public String getRights() { + return rights; + } + + public void setRights(String rights) { + this.rights = rights; + } public Date getCreateDate() { return createDate; diff --git a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql index 4d3e8248..3ec07e0e 100644 --- a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql +++ b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql @@ -1,18 +1,24 @@ alter table T_DOCUMENT add column DOC_SUBJECT_C varchar(500); alter table T_DOCUMENT add column DOC_IDENTIFIER_C varchar(500); +alter table T_DOCUMENT add column DOC_PUBLISHER_C varchar(500); +alter table T_DOCUMENT add column DOC_FORMAT_C varchar(500); +alter table T_DOCUMENT add column DOC_SOURCE_C varchar(500); +alter table T_DOCUMENT add column DOC_TYPE_C varchar(100); +alter table T_DOCUMENT add column DOC_COVERAGE_C varchar(100); +alter table T_DOCUMENT add column DOC_RIGHTS_C varchar(100); create memory table T_VOCABULARY ( VOC_ID_C varchar(36) not null, VOC_NAME_C varchar(50) not null, VOC_VALUE_C varchar(100) not null, VOC_ORDER_N int not null, primary key (VOC_ID_C) ); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-collection', 'type', 'Collection', 0); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-dataset', 'type', 'Dataset', 1); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-event', 'type', 'Event', 2); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-image', 'type', 'Image', 3); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-interactive_resource', 'type', 'Interactive Resource', 4); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-moving_image', 'type', 'Moving Image', 5); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-physical_object', 'type', 'Physical Object', 6); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-interactive-resource', 'type', 'Interactive Resource', 4); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-moving-image', 'type', 'Moving Image', 5); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-physical-object', 'type', 'Physical Object', 6); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-service', 'type', 'Service', 7); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-software', 'type', 'Software', 8); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-sound', 'type', 'Sound', 9); -insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-still_image', 'type', 'Still Image', 10); +insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-still-image', 'type', 'Still Image', 10); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-text', 'type', 'Text', 11); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('coverage-afg', 'coverage', 'Afghanistan', 0); diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java index e206b9cd..bb798b1a 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java @@ -130,6 +130,12 @@ public class DocumentResource extends BaseResource { // Below is specific to GET /document/id document.add("subject", JsonUtil.nullable(documentDto.getSubject())); document.add("identifier", JsonUtil.nullable(documentDto.getIdentifier())); + document.add("publisher", JsonUtil.nullable(documentDto.getPublisher())); + document.add("format", JsonUtil.nullable(documentDto.getFormat())); + document.add("source", JsonUtil.nullable(documentDto.getSource())); + document.add("type", JsonUtil.nullable(documentDto.getType())); + document.add("coverage", JsonUtil.nullable(documentDto.getCoverage())); + document.add("rights", JsonUtil.nullable(documentDto.getRights())); document.add("creator", documentDto.getCreator()); // Add ACL @@ -393,6 +399,12 @@ public class DocumentResource extends BaseResource { @FormParam("description") String description, @FormParam("subject") String subject, @FormParam("identifier") String identifier, + @FormParam("publisher") String publisher, + @FormParam("format") String format, + @FormParam("source") String source, + @FormParam("type") String type, + @FormParam("coverage") String coverage, + @FormParam("rights") String rights, @FormParam("tags") List tagList, @FormParam("language") String language, @FormParam("create_date") String createDateStr) { @@ -405,7 +417,13 @@ public class DocumentResource extends BaseResource { language = ValidationUtil.validateLength(language, "language", 3, 3, false); description = ValidationUtil.validateLength(description, "description", 0, 4000, true); subject = ValidationUtil.validateLength(subject, "subject", 0, 500, true); - identifier = ValidationUtil.validateLength(identifier, "description", 0, 500, true); + identifier = ValidationUtil.validateLength(identifier, "identifier", 0, 500, true); + publisher = ValidationUtil.validateLength(publisher, "publisher", 0, 500, true); + format = ValidationUtil.validateLength(format, "format", 0, 500, true); + source = ValidationUtil.validateLength(source, "source", 0, 500, true); + type = ValidationUtil.validateLength(type, "type", 0, 100, true); + coverage = ValidationUtil.validateLength(coverage, "coverage", 0, 100, true); + rights = ValidationUtil.validateLength(rights, "rights", 0, 100, true); Date createDate = ValidationUtil.validateDate(createDateStr, "create_date", true); if (!Constants.SUPPORTED_LANGUAGES.contains(language)) { throw new ClientException("ValidationError", MessageFormat.format("{0} is not a supported language", language)); @@ -419,6 +437,12 @@ public class DocumentResource extends BaseResource { document.setDescription(description); document.setSubject(subject); document.setIdentifier(identifier); + document.setPublisher(publisher); + document.setFormat(format); + document.setSource(source); + document.setType(type); + document.setCoverage(coverage); + document.setRights(rights); document.setLanguage(language); if (createDate == null) { document.setCreateDate(new Date()); @@ -470,6 +494,12 @@ public class DocumentResource extends BaseResource { @FormParam("description") String description, @FormParam("subject") String subject, @FormParam("identifier") String identifier, + @FormParam("publisher") String publisher, + @FormParam("format") String format, + @FormParam("source") String source, + @FormParam("type") String type, + @FormParam("coverage") String coverage, + @FormParam("rights") String rights, @FormParam("tags") List tagList, @FormParam("language") String language, @FormParam("create_date") String createDateStr) { @@ -483,6 +513,12 @@ public class DocumentResource extends BaseResource { description = ValidationUtil.validateLength(description, "description", 0, 4000, true); subject = ValidationUtil.validateLength(subject, "subject", 0, 500, true); identifier = ValidationUtil.validateLength(identifier, "identifier", 0, 500, true); + publisher = ValidationUtil.validateLength(publisher, "publisher", 0, 500, true); + format = ValidationUtil.validateLength(format, "format", 0, 500, true); + source = ValidationUtil.validateLength(source, "source", 0, 500, true); + type = ValidationUtil.validateLength(type, "type", 0, 100, true); + coverage = ValidationUtil.validateLength(coverage, "coverage", 0, 100, true); + rights = ValidationUtil.validateLength(rights, "rights", 0, 100, true); Date createDate = ValidationUtil.validateDate(createDateStr, "create_date", true); if (language != null && !Constants.SUPPORTED_LANGUAGES.contains(language)) { throw new ClientException("ValidationError", MessageFormat.format("{0} is not a supported language", language)); @@ -509,6 +545,24 @@ public class DocumentResource extends BaseResource { if (!StringUtils.isEmpty(identifier)) { document.setIdentifier(identifier); } + if (!StringUtils.isEmpty(publisher)) { + document.setPublisher(publisher); + } + if (!StringUtils.isEmpty(format)) { + document.setFormat(format); + } + if (!StringUtils.isEmpty(source)) { + document.setSource(source); + } + if (!StringUtils.isEmpty(type)) { + document.setType(type); + } + if (!StringUtils.isEmpty(coverage)) { + document.setCoverage(coverage); + } + if (!StringUtils.isEmpty(rights)) { + document.setRights(rights); + } if (createDate != null) { document.setCreateDate(createDate); } diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java index cb99c733..5941e28e 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java @@ -42,6 +42,7 @@ public class VocabularyResource extends BaseResource { for (Vocabulary vocabulary : vocabularyList) { entries.add(Json.createObjectBuilder() .add("id", vocabulary.getId()) + .add("name", vocabulary.getName()) .add("value", vocabulary.getValue()) .add("order", vocabulary.getOrder())); } @@ -113,7 +114,9 @@ public class VocabularyResource extends BaseResource { // Validate input data name = ValidationUtil.validateLength(name, "name", 1, 50, true); - ValidationUtil.validateRegex(name, "name", "[a-z0-9\\-]+"); + if (name != null) { + ValidationUtil.validateRegex(name, "name", "[a-z0-9\\-]+"); + } value = ValidationUtil.validateLength(value, "value", 1, 100, true); Integer order = null; if (orderStr != null) { diff --git a/docs-web/src/main/webapp/src/partial/docs/document.edit.html b/docs-web/src/main/webapp/src/partial/docs/document.edit.html index 50738c40..f25c1be5 100644 --- a/docs-web/src/main/webapp/src/partial/docs/document.edit.html +++ b/docs-web/src/main/webapp/src/partial/docs/document.edit.html @@ -2,70 +2,99 @@
-
- -
- +
+ Primary metadata +
+ +
+ +
-
-
- -
- +
+ +
+ +
-
-
- -
- +
+ +
+ +
-
-
- -
- +
+ +
+ +
-
-
- -
- +
+ +
+ +
+
+ + {{ orphanFiles.length }} file{{ orphanFiles.length > 1 ? 's' : '' }} +
-
-
- -
- +
+ +
+ +
-
-
- -
- + + +
+ Additional metadata +
+ +
+ +
-
- + {{ orphanFiles.length }} file{{ orphanFiles.length > 1 ? 's' : '' }} +
+ +
+ +
-
-
- -
- +
+ +
+ +
-
+
+ +
+ +
+
+
+ +
+ +
+
+
+
diff --git a/docs-web/src/main/webapp/src/partial/docs/document.view.content.html b/docs-web/src/main/webapp/src/partial/docs/document.view.content.html index a2d7b591..41b78fb7 100644 --- a/docs-web/src/main/webapp/src/partial/docs/document.view.content.html +++ b/docs-web/src/main/webapp/src/partial/docs/document.view.content.html @@ -4,6 +4,12 @@
{{ document.subject }}
Identifier
{{ document.identifier }}
+
Publisher
+
{{ document.publisher }}
+
Format
+
{{ document.format }}
+
Source
+
{{ document.source }}
Date: Sun, 14 Feb 2016 23:08:27 +0100 Subject: [PATCH 08/24] Closes #65: Type, coverage, rights metadata --- .../src/app/docs/controller/DocumentEdit.js | 13 ++++++++++ .../src/partial/docs/document.edit.html | 25 +++++++++++++++++++ .../partial/docs/document.view.content.html | 6 +++++ 3 files changed, 44 insertions(+) diff --git a/docs-web/src/main/webapp/src/app/docs/controller/DocumentEdit.js b/docs-web/src/main/webapp/src/app/docs/controller/DocumentEdit.js index 139689ef..653133a0 100644 --- a/docs-web/src/main/webapp/src/app/docs/controller/DocumentEdit.js +++ b/docs-web/src/main/webapp/src/app/docs/controller/DocumentEdit.js @@ -7,6 +7,9 @@ angular.module('docs').controller('DocumentEdit', function($rootScope, $scope, $ // Alerts $scope.alerts = []; + // Vocabularies + $scope.vocabularies = []; + // Orphan files to add $scope.orphanFiles = $stateParams.files ? $stateParams.files.split(',') : []; @@ -219,4 +222,14 @@ angular.module('docs').controller('DocumentEdit', function($rootScope, $scope, $ } else { $scope.resetForm(); } + + // Load vocabularies + $scope.loadVocabulary = function(name) { + Restangular.one('vocabulary', name).get().then(function(result) { + $scope.vocabularies[name] = result.entries; + }); + }; + $scope.loadVocabulary('type'); + $scope.loadVocabulary('coverage'); + $scope.loadVocabulary('rights'); }); \ No newline at end of file diff --git a/docs-web/src/main/webapp/src/partial/docs/document.edit.html b/docs-web/src/main/webapp/src/partial/docs/document.edit.html index f25c1be5..5a147655 100644 --- a/docs-web/src/main/webapp/src/partial/docs/document.edit.html +++ b/docs-web/src/main/webapp/src/partial/docs/document.edit.html @@ -93,6 +93,31 @@ placeholder="A related resource from which the described resource is derived" name="source" ng-model="document.source" ng-disabled="fileIsUploading" />
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
diff --git a/docs-web/src/main/webapp/src/partial/docs/document.view.content.html b/docs-web/src/main/webapp/src/partial/docs/document.view.content.html index 41b78fb7..0e3e7d2b 100644 --- a/docs-web/src/main/webapp/src/partial/docs/document.view.content.html +++ b/docs-web/src/main/webapp/src/partial/docs/document.view.content.html @@ -10,6 +10,12 @@
{{ document.format }}
Source
{{ document.source }}
+
Type
+
{{ document.type }}
+
Coverage
+
{{ document.coverage }}
+
rights
+
{{ document.rights }}
Date: Sun, 14 Feb 2016 23:11:24 +0100 Subject: [PATCH 09/24] #65: Limit vocabulary values to 500 characters --- .../java/com/sismics/docs/core/model/jpa/Vocabulary.java | 2 +- docs-core/src/main/resources/db/update/dbupdate-006-0.sql | 8 ++++---- .../sismics/docs/rest/resource/VocabularyResource.java | 4 ++-- .../main/webapp/src/partial/docs/settings.vocabulary.html | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java index 384e7e16..8e484a28 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/Vocabulary.java @@ -31,7 +31,7 @@ public class Vocabulary { /** * Vocabulary value. */ - @Column(name = "VOC_VALUE_C", nullable = false, length = 100) + @Column(name = "VOC_VALUE_C", nullable = false, length = 500) private String value; /** diff --git a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql index 3ec07e0e..175567c7 100644 --- a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql +++ b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql @@ -3,10 +3,10 @@ alter table T_DOCUMENT add column DOC_IDENTIFIER_C varchar(500); alter table T_DOCUMENT add column DOC_PUBLISHER_C varchar(500); alter table T_DOCUMENT add column DOC_FORMAT_C varchar(500); alter table T_DOCUMENT add column DOC_SOURCE_C varchar(500); -alter table T_DOCUMENT add column DOC_TYPE_C varchar(100); -alter table T_DOCUMENT add column DOC_COVERAGE_C varchar(100); -alter table T_DOCUMENT add column DOC_RIGHTS_C varchar(100); -create memory table T_VOCABULARY ( VOC_ID_C varchar(36) not null, VOC_NAME_C varchar(50) not null, VOC_VALUE_C varchar(100) not null, VOC_ORDER_N int not null, primary key (VOC_ID_C) ); +alter table T_DOCUMENT add column DOC_TYPE_C varchar(500); +alter table T_DOCUMENT add column DOC_COVERAGE_C varchar(500); +alter table T_DOCUMENT add column DOC_RIGHTS_C varchar(500); +create memory table T_VOCABULARY ( VOC_ID_C varchar(36) not null, VOC_NAME_C varchar(50) not null, VOC_VALUE_C varchar(500) not null, VOC_ORDER_N int not null, primary key (VOC_ID_C) ); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-collection', 'type', 'Collection', 0); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-dataset', 'type', 'Dataset', 1); diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java index 5941e28e..479d86d2 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/VocabularyResource.java @@ -73,7 +73,7 @@ public class VocabularyResource extends BaseResource { // Validate input data name = ValidationUtil.validateLength(name, "name", 1, 50, false); ValidationUtil.validateRegex(name, "name", "[a-z0-9\\-]+"); - value = ValidationUtil.validateLength(value, "value", 1, 100, false); + value = ValidationUtil.validateLength(value, "value", 1, 500, false); Integer order = ValidationUtil.validateInteger(orderStr, "order"); // Create the vocabulary @@ -117,7 +117,7 @@ public class VocabularyResource extends BaseResource { if (name != null) { ValidationUtil.validateRegex(name, "name", "[a-z0-9\\-]+"); } - value = ValidationUtil.validateLength(value, "value", 1, 100, true); + value = ValidationUtil.validateLength(value, "value", 1, 500, true); Integer order = null; if (orderStr != null) { order = ValidationUtil.validateInteger(orderStr, "order"); diff --git a/docs-web/src/main/webapp/src/partial/docs/settings.vocabulary.html b/docs-web/src/main/webapp/src/partial/docs/settings.vocabulary.html index 0ec5abd9..a7a1e82a 100644 --- a/docs-web/src/main/webapp/src/partial/docs/settings.vocabulary.html +++ b/docs-web/src/main/webapp/src/partial/docs/settings.vocabulary.html @@ -23,7 +23,7 @@ - + @@ -37,7 +37,7 @@ - + From 831e2e60edac4132694189310caa09e7dc7697aa Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 14 Feb 2016 23:14:39 +0100 Subject: [PATCH 10/24] #65: Update README.md with Dublin Core metadata --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dd5ff95c..887d6878 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Features - Support image, PDF, ODT and DOCX files - Flexible search engine - Full text search in image and PDF +- All [Dublin Core](http://dublincore.org/) metadata - 256-bit AES encryption - Tag system with relations - Multi-users ACL system From d8d01b077d53b006b07ed13a73b3825952ddddc3 Mon Sep 17 00:00:00 2001 From: jendib Date: Mon, 15 Feb 2016 22:28:13 +0100 Subject: [PATCH 11/24] Closes #69: Save and display originating user in audit log --- .../com/sismics/docs/core/dao/jpa/AclDao.java | 10 ++-- .../docs/core/dao/jpa/AuditLogDao.java | 14 +++--- .../sismics/docs/core/dao/jpa/CommentDao.java | 10 ++-- .../docs/core/dao/jpa/DocumentDao.java | 15 +++--- .../sismics/docs/core/dao/jpa/FileDao.java | 10 ++-- .../com/sismics/docs/core/dao/jpa/TagDao.java | 15 +++--- .../sismics/docs/core/dao/jpa/UserDao.java | 22 +++++---- .../sismics/docs/core/dao/jpa/dto/AclDto.java | 3 -- .../docs/core/dao/jpa/dto/AuditLogDto.java | 16 +++++-- .../docs/core/dao/jpa/dto/CommentDto.java | 3 -- .../docs/core/dao/jpa/dto/DocumentDto.java | 3 -- .../sismics/docs/core/dao/jpa/dto/TagDto.java | 3 -- .../docs/core/dao/jpa/dto/UserDto.java | 48 ++----------------- .../sismics/docs/core/model/jpa/AuditLog.java | 14 ++++++ .../sismics/docs/core/util/AuditLogUtil.java | 3 +- .../resources/db/update/dbupdate-006-0.sql | 2 + .../sismics/docs/core/dao/jpa/TestJpa.java | 2 +- .../docs/rest/resource/AclResource.java | 4 +- .../docs/rest/resource/AuditLogResource.java | 1 + .../docs/rest/resource/CommentResource.java | 4 +- .../docs/rest/resource/DocumentResource.java | 10 ++-- .../docs/rest/resource/FileResource.java | 4 +- .../docs/rest/resource/ShareResource.java | 2 +- .../docs/rest/resource/TagResource.java | 6 +-- .../docs/rest/resource/UserResource.java | 14 +++--- .../src/partial/docs/directive.auditlog.html | 8 +++- .../src/partial/docs/document.view.html | 3 +- .../docs/rest/TestAuditLogResource.java | 35 +++++++++++++- 28 files changed, 157 insertions(+), 127 deletions(-) diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/AclDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/AclDao.java index 5609fd98..af6f726c 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/AclDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/AclDao.java @@ -26,10 +26,11 @@ public class AclDao { * Creates a new ACL. * * @param acl ACL + * @param userId User ID * @return New ID * @throws Exception */ - public String create(Acl acl) { + public String create(Acl acl, String userId) { // Create the UUID acl.setId(UUID.randomUUID().toString()); @@ -38,7 +39,7 @@ public class AclDao { em.persist(acl); // Create audit log - AuditLogUtil.create(acl, AuditLogType.CREATE); + AuditLogUtil.create(acl, AuditLogType.CREATE, userId); return acl.getId(); } @@ -125,9 +126,10 @@ public class AclDao { * @param sourceId Source ID * @param perm Permission * @param targetId Target ID + * @param userId User ID */ @SuppressWarnings("unchecked") - public void delete(String sourceId, PermType perm, String targetId) { + public void delete(String sourceId, PermType perm, String targetId, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Create audit log @@ -137,7 +139,7 @@ public class AclDao { q.setParameter("targetId", targetId); List aclList = q.getResultList(); for (Acl acl : aclList) { - AuditLogUtil.create(acl, AuditLogType.DELETE); + AuditLogUtil.create(acl, AuditLogType.DELETE, userId); } // Soft delete the ACLs diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/AuditLogDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/AuditLogDao.java index 0f87adbd..68609859 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/AuditLogDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/AuditLogDao.java @@ -59,12 +59,13 @@ public class AuditLogDao { public void findByCriteria(PaginatedList paginatedList, AuditLogCriteria criteria, SortCriteria sortCriteria) throws Exception { Map parameterMap = new HashMap(); - String baseQuery = "select l.LOG_ID_C c0, l.LOG_CREATEDATE_D c1, l.LOG_IDENTITY_C c2, l.LOG_CLASSENTITY_C c3, l.LOG_TYPE_C c4, l.LOG_MESSAGE_C c5 from T_AUDIT_LOG l "; + StringBuilder baseQuery = new StringBuilder("select l.LOG_ID_C c0, l.LOG_CREATEDATE_D c1, u.USE_USERNAME_C c2, l.LOG_IDENTITY_C c3, l.LOG_CLASSENTITY_C c4, l.LOG_TYPE_C c5, l.LOG_MESSAGE_C c6 from T_AUDIT_LOG l "); + baseQuery.append(" join T_USER u on l.LOG_IDUSER_C = u.USE_ID_C "); List queries = Lists.newArrayList(); // Adds search criteria if (criteria.getDocumentId() != null) { - // ACL on document is not checked here, it's assumed + // ACL on document is not checked here, rights have been checked before queries.add(baseQuery + " where l.LOG_IDENTITY_C = :documentId "); queries.add(baseQuery + " where l.LOG_IDENTITY_C in (select f.FIL_ID_C from T_FILE f where f.FIL_IDDOC_C = :documentId) "); queries.add(baseQuery + " where l.LOG_IDENTITY_C in (select c.COM_ID_C from T_COMMENT c where c.COM_IDDOC_C = :documentId) "); @@ -73,11 +74,9 @@ public class AuditLogDao { } if (criteria.getUserId() != null) { - queries.add(baseQuery + " where l.LOG_IDENTITY_C = :userId "); - queries.add(baseQuery + " where l.LOG_IDENTITY_C in (select t.TAG_ID_C from T_TAG t where t.TAG_IDUSER_C = :userId) "); - // Show only logs from owned documents, ACL are lost on delete - queries.add(baseQuery + " where l.LOG_IDENTITY_C in (select d.DOC_ID_C from T_DOCUMENT d where d.DOC_IDUSER_C = :userId) "); - queries.add(baseQuery + " where l.LOG_IDENTITY_C in (select c.COM_ID_C from T_COMMENT c where c.COM_IDUSER_C = :userId) "); + // Get all logs originating from the user, not necessarly on owned items + // Filter out ACL logs + queries.add(baseQuery + " where l.LOG_IDUSER_C = :userId and l.LOG_CLASSENTITY_C != 'Acl' "); parameterMap.put("userId", criteria.getUserId()); } @@ -92,6 +91,7 @@ public class AuditLogDao { AuditLogDto auditLogDto = new AuditLogDto(); auditLogDto.setId((String) o[i++]); auditLogDto.setCreateTimestamp(((Timestamp) o[i++]).getTime()); + auditLogDto.setUsername((String) o[i++]); auditLogDto.setEntityId((String) o[i++]); auditLogDto.setEntityClass((String) o[i++]); auditLogDto.setType(AuditLogType.valueOf((String) o[i++])); diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/CommentDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/CommentDao.java index 59f9ac6c..12dee544 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/CommentDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/CommentDao.java @@ -26,10 +26,11 @@ public class CommentDao { * Creates a new comment. * * @param comment Comment + * @param userId User ID * @return New ID * @throws Exception */ - public String create(Comment comment) { + public String create(Comment comment, String userId) { // Create the UUID comment.setId(UUID.randomUUID().toString()); @@ -39,7 +40,7 @@ public class CommentDao { em.persist(comment); // Create audit log - AuditLogUtil.create(comment, AuditLogType.CREATE); + AuditLogUtil.create(comment, AuditLogType.CREATE, userId); return comment.getId(); } @@ -48,8 +49,9 @@ public class CommentDao { * Deletes a comment. * * @param id Comment ID + * @param userId User ID */ - public void delete(String id) { + public void delete(String id, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the comment @@ -62,7 +64,7 @@ public class CommentDao { commentDb.setDeleteDate(dateNow); // Create audit log - AuditLogUtil.create(commentDb, AuditLogType.DELETE); + AuditLogUtil.create(commentDb, AuditLogType.DELETE, userId); } /** diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java index ebf3a45b..f20090d6 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/DocumentDao.java @@ -38,10 +38,11 @@ public class DocumentDao { * Creates a new document. * * @param document Document + * @param userId User ID * @return New ID * @throws Exception */ - public String create(Document document) { + public String create(Document document, String userId) { // Create the UUID document.setId(UUID.randomUUID().toString()); @@ -50,7 +51,7 @@ public class DocumentDao { em.persist(document); // Create audit log - AuditLogUtil.create(document, AuditLogType.CREATE); + AuditLogUtil.create(document, AuditLogType.CREATE, userId); return document.getId(); } @@ -152,8 +153,9 @@ public class DocumentDao { * Deletes a document. * * @param id Document ID + * @param userId User ID */ - public void delete(String id) { + public void delete(String id, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the document @@ -182,7 +184,7 @@ public class DocumentDao { q.executeUpdate(); // Create audit log - AuditLogUtil.create(documentDb, AuditLogType.DELETE); + AuditLogUtil.create(documentDb, AuditLogType.DELETE, userId); } /** @@ -291,9 +293,10 @@ public class DocumentDao { * Update a document. * * @param document Document to update + * @param userId User ID * @return Updated document */ - public Document update(Document document) { + public Document update(Document document, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the document @@ -316,7 +319,7 @@ public class DocumentDao { documentFromDb.setLanguage(document.getLanguage()); // Create audit log - AuditLogUtil.create(documentFromDb, AuditLogType.UPDATE); + AuditLogUtil.create(documentFromDb, AuditLogType.UPDATE, userId); return documentFromDb; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/FileDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/FileDao.java index 3aa3e310..96fe6eab 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/FileDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/FileDao.java @@ -23,10 +23,11 @@ public class FileDao { * Creates a new file. * * @param file File + * @param userId User ID * @return New ID * @throws Exception */ - public String create(File file) { + public String create(File file, String userId) { // Create the UUID file.setId(UUID.randomUUID().toString()); @@ -36,7 +37,7 @@ public class FileDao { em.persist(file); // Create audit log - AuditLogUtil.create(file, AuditLogType.CREATE); + AuditLogUtil.create(file, AuditLogType.CREATE, userId); return file.getId(); } @@ -107,8 +108,9 @@ public class FileDao { * Deletes a file. * * @param id File ID + * @param userId User ID */ - public void delete(String id) { + public void delete(String id, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the file @@ -121,7 +123,7 @@ public class FileDao { fileDb.setDeleteDate(dateNow); // Create audit log - AuditLogUtil.create(fileDb, AuditLogType.DELETE); + AuditLogUtil.create(fileDb, AuditLogType.DELETE, userId); } /** diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/TagDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/TagDao.java index e12d91aa..9f0a8f4f 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/TagDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/TagDao.java @@ -170,10 +170,11 @@ public class TagDao { * Creates a new tag. * * @param tag Tag + * @param userId User ID * @return New ID * @throws Exception */ - public String create(Tag tag) { + public String create(Tag tag, String userId) { // Create the UUID tag.setId(UUID.randomUUID().toString()); @@ -183,7 +184,7 @@ public class TagDao { em.persist(tag); // Create audit log - AuditLogUtil.create(tag, AuditLogType.CREATE); + AuditLogUtil.create(tag, AuditLogType.CREATE, userId); return tag.getId(); } @@ -230,8 +231,9 @@ public class TagDao { * Deletes a tag. * * @param tagId Tag ID + * @param userId User ID */ - public void delete(String tagId) { + public void delete(String tagId, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the tag @@ -250,7 +252,7 @@ public class TagDao { q.executeUpdate(); // Create audit log - AuditLogUtil.create(tagDb, AuditLogType.DELETE); + AuditLogUtil.create(tagDb, AuditLogType.DELETE, userId); } /** @@ -272,9 +274,10 @@ public class TagDao { * Update a tag. * * @param tag Tag to update + * @param userId User ID * @return Updated tag */ - public Tag update(Tag tag) { + public Tag update(Tag tag, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the tag @@ -288,7 +291,7 @@ public class TagDao { tagFromDb.setParentId(tag.getParentId()); // Create audit log - AuditLogUtil.create(tagFromDb, AuditLogType.UPDATE); + AuditLogUtil.create(tagFromDb, AuditLogType.UPDATE, userId); return tagFromDb; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/UserDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/UserDao.java index 55f1a134..ff005b5d 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/UserDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/UserDao.java @@ -58,10 +58,11 @@ public class UserDao { * Creates a new user. * * @param user User to create + * @param userId User ID * @return User ID * @throws Exception */ - public String create(User user) throws Exception { + public String create(User user, String userId) throws Exception { // Create the user UUID user.setId(UUID.randomUUID().toString()); @@ -80,7 +81,7 @@ public class UserDao { em.persist(user); // Create audit log - AuditLogUtil.create(user, AuditLogType.CREATE); + AuditLogUtil.create(user, AuditLogType.CREATE, userId); return user.getId(); } @@ -89,9 +90,10 @@ public class UserDao { * Updates a user. * * @param user User to update + * @param userId User ID * @return Updated user */ - public User update(User user) { + public User update(User user, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the user @@ -99,13 +101,13 @@ public class UserDao { q.setParameter("id", user.getId()); User userFromDb = (User) q.getSingleResult(); - // Update the user + // Update the user (except password) userFromDb.setEmail(user.getEmail()); userFromDb.setStorageQuota(user.getStorageQuota()); userFromDb.setStorageCurrent(user.getStorageCurrent()); // Create audit log - AuditLogUtil.create(userFromDb, AuditLogType.UPDATE); + AuditLogUtil.create(userFromDb, AuditLogType.UPDATE, userId); return user; } @@ -134,9 +136,10 @@ public class UserDao { * Update the user password. * * @param user User to update + * @param userId User ID * @return Updated user */ - public User updatePassword(User user) { + public User updatePassword(User user, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the user @@ -148,7 +151,7 @@ public class UserDao { userFromDb.setPassword(hashPassword(user.getPassword())); // Create audit log - AuditLogUtil.create(userFromDb, AuditLogType.UPDATE); + AuditLogUtil.create(userFromDb, AuditLogType.UPDATE, userId); return user; } @@ -206,8 +209,9 @@ public class UserDao { * Deletes a user. * * @param username User's username + * @param userId User ID */ - public void delete(String username) { + public void delete(String username, String userId) { EntityManager em = ThreadLocalContext.get().getEntityManager(); // Get the user @@ -245,7 +249,7 @@ public class UserDao { q.executeUpdate(); // Create audit log - AuditLogUtil.create(userFromDb, AuditLogType.DELETE); + AuditLogUtil.create(userFromDb, AuditLogType.DELETE, userId); } /** diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/AclDto.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/AclDto.java index 85051a38..4f8cd254 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/AclDto.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/AclDto.java @@ -1,7 +1,5 @@ package com.sismics.docs.core.dao.jpa.dto; -import javax.persistence.Id; - import com.sismics.docs.core.constant.PermType; /** @@ -13,7 +11,6 @@ public class AclDto { /** * Acl ID. */ - @Id private String id; /** diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/AuditLogDto.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/AuditLogDto.java index 44e4e920..284efaa0 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/AuditLogDto.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/AuditLogDto.java @@ -1,7 +1,5 @@ package com.sismics.docs.core.dao.jpa.dto; -import javax.persistence.Id; - import com.sismics.docs.core.constant.AuditLogType; /** @@ -13,9 +11,13 @@ public class AuditLogDto { /** * Audit log ID. */ - @Id private String id; + /** + * Username. + */ + private String username; + /** * Entity ID. */ @@ -49,6 +51,14 @@ public class AuditLogDto { this.id = id; } + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + public String getEntityId() { return entityId; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/CommentDto.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/CommentDto.java index 1f2e6d41..648c4b25 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/CommentDto.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/CommentDto.java @@ -1,7 +1,5 @@ package com.sismics.docs.core.dao.jpa.dto; -import javax.persistence.Id; - /** * Comment DTO. * @@ -11,7 +9,6 @@ public class CommentDto { /** * Comment ID. */ - @Id private String id; /** diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java index e5ed2eb1..64009a0e 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/DocumentDto.java @@ -1,7 +1,5 @@ package com.sismics.docs.core.dao.jpa.dto; -import javax.persistence.Id; - /** * Document DTO. * @@ -11,7 +9,6 @@ public class DocumentDto { /** * Document ID. */ - @Id private String id; /** diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/TagDto.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/TagDto.java index 6666015d..c4f38506 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/TagDto.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/TagDto.java @@ -1,7 +1,5 @@ package com.sismics.docs.core.dao.jpa.dto; -import javax.persistence.Id; - /** * Tag DTO. * @@ -11,7 +9,6 @@ public class TagDto { /** * Tag ID. */ - @Id private String id; /** diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/UserDto.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/UserDto.java index 2dda296e..a8331909 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/UserDto.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/dto/UserDto.java @@ -37,69 +37,38 @@ public class UserDto { */ private Long storageCurrent; - /** - * Getter of id. - * - * @return id - */ public String getId() { return id; } - /** - * Setter of id. - * - * @param id id - */ public void setId(String id) { this.id = id; } - /** - * Getter of username. - * - * @return username - */ public String getUsername() { return username; } - /** - * Setter of username. - * - * @param username username - */ public void setUsername(String username) { this.username = username; } - /** - * Getter of email. - * - * @return email - */ public String getEmail() { return email; } - /** - * Setter of email. - * - * @param email email - */ public void setEmail(String email) { this.email = email; } - /** - * Getter of createTimestamp. - * - * @return createTimestamp - */ public Long getCreateTimestamp() { return createTimestamp; } + public void setCreateTimestamp(Long createTimestamp) { + this.createTimestamp = createTimestamp; + } + public Long getStorageQuota() { return storageQuota; } @@ -115,13 +84,4 @@ public class UserDto { public void setStorageCurrent(Long storageCurrent) { this.storageCurrent = storageCurrent; } - - /** - * Setter of createTimestamp. - * - * @param createTimestamp createTimestamp - */ - public void setCreateTimestamp(Long createTimestamp) { - this.createTimestamp = createTimestamp; - } } diff --git a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuditLog.java b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuditLog.java index ce29e1f9..3b831891 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuditLog.java +++ b/docs-core/src/main/java/com/sismics/docs/core/model/jpa/AuditLog.java @@ -27,6 +27,12 @@ public class AuditLog { @Column(name = "LOG_ID_C", length = 36) private String id; + /** + * User ID. + */ + @Column(name = "LOG_IDUSER_C", nullable = false, length = 36) + private String userId; + /** * Entity ID. */ @@ -66,6 +72,14 @@ public class AuditLog { this.id = id; } + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + public String getEntityId() { return entityId; } diff --git a/docs-core/src/main/java/com/sismics/docs/core/util/AuditLogUtil.java b/docs-core/src/main/java/com/sismics/docs/core/util/AuditLogUtil.java index ffc3d089..259c11d7 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/util/AuditLogUtil.java +++ b/docs-core/src/main/java/com/sismics/docs/core/util/AuditLogUtil.java @@ -20,7 +20,7 @@ public class AuditLogUtil { * @param entity Entity * @param type Audit log type */ - public static void create(Loggable loggable, AuditLogType type) { + public static void create(Loggable loggable, AuditLogType type, String userId) { // Get the entity ID EntityManager em = ThreadLocalContext.get().getEntityManager(); String entityId = (String) em.getEntityManagerFactory().getPersistenceUnitUtil().getIdentifier(loggable); @@ -28,6 +28,7 @@ public class AuditLogUtil { // Create the audit log AuditLogDao auditLogDao = new AuditLogDao(); AuditLog auditLog = new AuditLog(); + auditLog.setUserId(userId); auditLog.setEntityId(entityId); auditLog.setEntityClass(loggable.getClass().getSimpleName()); auditLog.setType(type); diff --git a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql index 175567c7..3b707784 100644 --- a/docs-core/src/main/resources/db/update/dbupdate-006-0.sql +++ b/docs-core/src/main/resources/db/update/dbupdate-006-0.sql @@ -6,6 +6,8 @@ alter table T_DOCUMENT add column DOC_SOURCE_C varchar(500); alter table T_DOCUMENT add column DOC_TYPE_C varchar(500); alter table T_DOCUMENT add column DOC_COVERAGE_C varchar(500); alter table T_DOCUMENT add column DOC_RIGHTS_C varchar(500); +alter table T_AUDIT_LOG add column LOG_IDUSER_C varchar(36) not null default 'admin'; + create memory table T_VOCABULARY ( VOC_ID_C varchar(36) not null, VOC_NAME_C varchar(50) not null, VOC_VALUE_C varchar(500) not null, VOC_ORDER_N int not null, primary key (VOC_ID_C) ); insert into T_VOCABULARY(VOC_ID_C, VOC_NAME_C, VOC_VALUE_C, VOC_ORDER_N) values('type-collection', 'type', 'Collection', 0); diff --git a/docs-core/src/test/java/com/sismics/docs/core/dao/jpa/TestJpa.java b/docs-core/src/test/java/com/sismics/docs/core/dao/jpa/TestJpa.java index 8abad9c7..f53a2847 100644 --- a/docs-core/src/test/java/com/sismics/docs/core/dao/jpa/TestJpa.java +++ b/docs-core/src/test/java/com/sismics/docs/core/dao/jpa/TestJpa.java @@ -23,7 +23,7 @@ public class TestJpa extends BaseTransactionalTest { user.setStorageCurrent(0l); user.setStorageQuota(10l); user.setPrivateKey("AwesomePrivateKey"); - String id = userDao.create(user); + String id = userDao.create(user, "me"); TransactionUtil.commit(); diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/AclResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/AclResource.java index 58ef4f02..5c978d41 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/AclResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/AclResource.java @@ -77,7 +77,7 @@ public class AclResource extends BaseResource { // Avoid duplicates if (!aclDao.checkPermission(acl.getSourceId(), acl.getPerm(), acl.getTargetId())) { - aclDao.create(acl); + aclDao.create(acl, principal.getId()); // Returns the ACL JsonObjectBuilder response = Json.createObjectBuilder() @@ -126,7 +126,7 @@ public class AclResource extends BaseResource { } // Delete the ACL - aclDao.delete(sourceId, perm, targetId); + aclDao.delete(sourceId, perm, targetId, principal.getId()); // Always return OK JsonObjectBuilder response = Json.createObjectBuilder() diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/AuditLogResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/AuditLogResource.java index a1ad4e72..8aa4ac24 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/AuditLogResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/AuditLogResource.java @@ -68,6 +68,7 @@ public class AuditLogResource extends BaseResource { for (AuditLogDto auditLogDto : paginatedList.getResultList()) { logs.add(Json.createObjectBuilder() .add("id", auditLogDto.getId()) + .add("username", auditLogDto.getUsername()) .add("target", auditLogDto.getEntityId()) .add("class", auditLogDto.getEntityClass()) .add("type", auditLogDto.getType().name()) diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/CommentResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/CommentResource.java index 95376208..28dc162d 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/CommentResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/CommentResource.java @@ -61,7 +61,7 @@ public class CommentResource extends BaseResource { comment.setContent(content); comment.setUserId(principal.getId()); CommentDao commentDao = new CommentDao(); - commentDao.create(comment); + commentDao.create(comment, principal.getId()); // Returns the comment JsonObjectBuilder response = Json.createObjectBuilder() @@ -103,7 +103,7 @@ public class CommentResource extends BaseResource { } // Delete the comment - commentDao.delete(id); + commentDao.delete(id, principal.getId()); // Always return OK JsonObjectBuilder response = Json.createObjectBuilder() diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java index bb798b1a..c99b1d46 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java @@ -449,7 +449,7 @@ public class DocumentResource extends BaseResource { } else { document.setCreateDate(createDate); } - String documentId = documentDao.create(document); + String documentId = documentDao.create(document, principal.getId()); // Create read ACL AclDao aclDao = new AclDao(); @@ -457,14 +457,14 @@ public class DocumentResource extends BaseResource { acl.setPerm(PermType.READ); acl.setSourceId(documentId); acl.setTargetId(principal.getId()); - aclDao.create(acl); + aclDao.create(acl, principal.getId()); // Create write ACL acl = new Acl(); acl.setPerm(PermType.WRITE); acl.setSourceId(documentId); acl.setTargetId(principal.getId()); - aclDao.create(acl); + aclDao.create(acl, principal.getId()); // Update tags updateTagList(documentId, tagList); @@ -570,7 +570,7 @@ public class DocumentResource extends BaseResource { document.setLanguage(language); } - document = documentDao.update(document); + document = documentDao.update(document, principal.getId()); // Update tags updateTagList(id, tagList); @@ -634,7 +634,7 @@ public class DocumentResource extends BaseResource { } // Delete the document - documentDao.delete(document.getId()); + documentDao.delete(document.getId(), principal.getId()); // Raise file deleted events for (File file : fileList) { diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/FileResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/FileResource.java index c79dba41..b371cff8 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/FileResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/FileResource.java @@ -145,7 +145,7 @@ public class FileResource extends BaseResource { file.setDocumentId(documentId); file.setMimeType(mimeType); file.setUserId(principal.getId()); - String fileId = fileDao.create(file); + String fileId = fileDao.create(file, principal.getId()); // Guess the mime type a second time, for open document format (first detected as simple ZIP file) file.setMimeType(MimeTypeUtil.guessOpenDocumentFormat(file, fileInputStream)); @@ -362,7 +362,7 @@ public class FileResource extends BaseResource { } // Delete the file - fileDao.delete(file.getId()); + fileDao.delete(file.getId(), principal.getId()); // Update the user quota UserDao userDao = new UserDao(); diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/ShareResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/ShareResource.java index 8a0d8949..869af2cb 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/ShareResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/ShareResource.java @@ -69,7 +69,7 @@ public class ShareResource extends BaseResource { acl.setSourceId(documentId); acl.setPerm(PermType.READ); acl.setTargetId(share.getId()); - aclDao.create(acl); + aclDao.create(acl, principal.getId()); // Returns the created ACL JsonObjectBuilder response = Json.createObjectBuilder() diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/TagResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/TagResource.java index e13fb78e..8caf253e 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/TagResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/TagResource.java @@ -137,7 +137,7 @@ public class TagResource extends BaseResource { tag.setColor(color); tag.setUserId(principal.getId()); tag.setParentId(parentId); - String id = tagDao.create(tag); + String id = tagDao.create(tag, principal.getId()); JsonObjectBuilder response = Json.createObjectBuilder() .add("id", id); @@ -203,7 +203,7 @@ public class TagResource extends BaseResource { // Parent tag is always updated to have the possibility to delete it tag.setParentId(parentId); - tagDao.update(tag); + tagDao.update(tag, principal.getId()); JsonObjectBuilder response = Json.createObjectBuilder() .add("id", id); @@ -232,7 +232,7 @@ public class TagResource extends BaseResource { } // Delete the tag - tagDao.delete(tagId); + tagDao.delete(tagId, principal.getId()); // Always return OK JsonObjectBuilder response = Json.createObjectBuilder() diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java index 0568191a..aed31171 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java @@ -105,7 +105,7 @@ public class UserResource extends BaseResource { // Create the user UserDao userDao = new UserDao(); try { - userDao.create(user); + userDao.create(user, principal.getId()); } catch (Exception e) { if ("AlreadyExistingUsername".equals(e.getMessage())) { throw new ServerException("AlreadyExistingUsername", "Login already used", e); @@ -145,12 +145,12 @@ public class UserResource extends BaseResource { if (email != null) { user.setEmail(email); } - user = userDao.update(user); + user = userDao.update(user, principal.getId()); // Change the password if (StringUtils.isNotBlank(password)) { user.setPassword(password); - userDao.updatePassword(user); + userDao.updatePassword(user, principal.getId()); } // Always return OK @@ -198,12 +198,12 @@ public class UserResource extends BaseResource { Long storageQuota = ValidationUtil.validateLong(storageQuotaStr, "storage_quota"); user.setStorageQuota(storageQuota); } - user = userDao.update(user); + user = userDao.update(user, principal.getId()); // Change the password if (StringUtils.isNotBlank(password)) { user.setPassword(password); - userDao.updatePassword(user); + userDao.updatePassword(user, principal.getId()); } // Always return OK @@ -356,7 +356,7 @@ public class UserResource extends BaseResource { // Delete the user UserDao userDao = new UserDao(); - userDao.delete(principal.getName()); + userDao.delete(principal.getName(), principal.getId()); // Raise deleted events for documents for (Document document : documentList) { @@ -413,7 +413,7 @@ public class UserResource extends BaseResource { List fileList = fileDao.findByUserId(user.getId()); // Delete the user - userDao.delete(user.getUsername()); + userDao.delete(user.getUsername(), principal.getId()); // Raise deleted events for documents for (Document document : documentList) { diff --git a/docs-web/src/main/webapp/src/partial/docs/directive.auditlog.html b/docs-web/src/main/webapp/src/partial/docs/directive.auditlog.html index 483bf18b..0b7734f1 100644 --- a/docs-web/src/main/webapp/src/partial/docs/directive.auditlog.html +++ b/docs-web/src/main/webapp/src/partial/docs/directive.auditlog.html @@ -1,6 +1,12 @@ - + +
{{ log.create_date | date: 'yyyy-MM-dd HH:mm' }}{{ log.create_date | date: 'yyyy-MM-dd HH:mm' }} + + + {{ log.username }} + + {{ log.class }} diff --git a/docs-web/src/main/webapp/src/partial/docs/document.view.html b/docs-web/src/main/webapp/src/partial/docs/document.view.html index 27fc32be..ec003ceb 100644 --- a/docs-web/src/main/webapp/src/partial/docs/document.view.html +++ b/docs-web/src/main/webapp/src/partial/docs/document.view.html @@ -36,7 +36,8 @@