Commit 544cd9f5 authored by Valentin Suhnjov's avatar Valentin Suhnjov

Merge branch 'releases/release-0.3.0' into master

parents 03db303c d82426d6
......@@ -5,7 +5,7 @@
<groupId>ee.eesti.riha</groupId>
<artifactId>rest</artifactId>
<version>0.2.0</version>
<version>0.3.0</version>
<packaging>war</packaging>
......
......@@ -108,7 +108,6 @@ CREATE TABLE riha.main_resource
parent_uri character varying(150), -- Hierarhilise ressursi puhul on siin näidatud vanema URI
main_resource_parent_id integer, -- Hierarhilise ressursi puhul on siin näidatud vanema ID
kind character varying(150), -- Ressursi liik (infosystem, classifier, service, dictionary, xmlresource vms.)
access_restriction integer, -- Kui on 0, siis on avalik kirje, kui suurem nullist siis sõltub tasemest, kelle eest varjatud
state character(1), -- Ressursi olek (C-current, O-old, T-temporary, D-deleted jms.) Vaikimisi 'C'.
start_date timestamp without time zone, -- Käesoleva versiooni kehtivuse algus
end_date timestamp without time zone, -- Käesoleva versiooni kehtivuse lõpp
......@@ -140,7 +139,6 @@ COMMENT ON COLUMN riha.main_resource.json_content IS 'Ressursi kirjelduse täisi
COMMENT ON COLUMN riha.main_resource.parent_uri IS 'Hierarhilise ressursi puhul on siin näidatud vanema URI';
COMMENT ON COLUMN riha.main_resource.main_resource_parent_id IS 'Hierarhilise ressursi puhul on siin näidatud vanema ID';
COMMENT ON COLUMN riha.main_resource.kind IS 'Ressursi liik (infosystem, classifier, service, dictionary, xmlresource vms.)';
COMMENT ON COLUMN riha.main_resource.access_restriction IS 'Kui on 0, siis on avalik kirje, kui suurem nullist siis sõltub tasemest, kelle eest varjatud';
COMMENT ON COLUMN riha.main_resource.state IS 'Ressursi olek (C-current, O-old, T-temporary, D-deleted jms.) Vaikimisi ''C''.';
COMMENT ON COLUMN riha.main_resource.start_date IS 'Käesoleva versiooni kehtivuse algus';
COMMENT ON COLUMN riha.main_resource.end_date IS 'Käesoleva versiooni kehtivuse lõpp';
......@@ -193,7 +191,6 @@ CREATE TABLE riha.data_object
json_content jsonb, -- Andmeobjekti sisu kirjeldus esitatuna json struktuurina.
data_object_parent_id integer, -- Hierarhilise andmeobjekti puhul on siin vanema ID
kind character varying(150), -- Andmeobjekti tüüp (databse, table, field, json, input, output jne)
access_restriction integer, -- Juurdepääsupiirang. Värtus 0 või väärtuse puudumine tähedab, et tegemist on avaliku infoga, sellest erinev väärtus tähistab juurdepääsupiiranguga infot.
state character(1), -- Andmeobjekti staatus (C-current, O-old, T-temporary, D-deleted jne)
start_date timestamp without time zone, -- Andmeobjekti versiooni kehtivuse algus
end_date timestamp without time zone, -- Andmeobjekti versiooni kehtivuse lõpp
......@@ -227,7 +224,6 @@ COMMENT ON COLUMN riha.data_object.main_resource_id IS 'Ressursi ID, mille alla
COMMENT ON COLUMN riha.data_object.json_content IS 'Andmeobjekti sisu kirjeldus esitatuna json struktuurina.';
COMMENT ON COLUMN riha.data_object.data_object_parent_id IS 'Hierarhilise andmeobjekti puhul on siin vanema ID';
COMMENT ON COLUMN riha.data_object.kind IS 'Andmeobjekti tüüp (databse, table, field, json, input, output jne)';
COMMENT ON COLUMN riha.data_object.access_restriction IS 'Juurdepääsupiirang. Värtus 0 või väärtuse puudumine tähedab, et tegemist on avaliku infoga, sellest erinev väärtus tähistab juurdepääsupiiranguga infot.';
COMMENT ON COLUMN riha.data_object.state IS 'Andmeobjekti staatus (C-current, O-old, T-temporary, D-deleted jne)';
COMMENT ON COLUMN riha.data_object.start_date IS 'Andmeobjekti versiooni kehtivuse algus';
COMMENT ON COLUMN riha.data_object.end_date IS 'Andmeobjekti versiooni kehtivuse lõpp';
......@@ -269,7 +265,6 @@ CREATE TABLE riha.document
filename character varying(150), -- Dokumendifaili nimi serveri failisüsteemis dokumentidele ette nähtud kausta suhtes. Võib olla ka tühi, kui dokument on antud URL abil.
mime character varying(150), -- MIME tüüp, kui see on teada
json_content jsonb, -- Dokumendi info esitatuna json struktuurina.
access_restriction integer,
state character(1), -- Dokumendi staatus (C-current, D-deleted, O-old, T-temporary jne)
start_date timestamp without time zone, -- Dokumendi kehtivuse algus
end_date timestamp without time zone, -- Dokumendi kehtivuse lõpp
......@@ -320,22 +315,18 @@ GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE riha.document TO riha;
CREATE TABLE riha.comment
(
comment_id integer NOT NULL, -- Kommentaari unikaalne ID.
uri character varying(50), -- Kommentaari unikaalne URI. See on ühine kogu ühe kommentaari hierarhiale
comment_parent_id integer, -- Kui on tegemist hierarhilise kommentaariumiga, siis viitab vanemale
organization character varying(50), -- Kommentaari loonud ettevõtte kood
json_content jsonb, -- Kommentaari väljade esitus json formaadis.
main_resource_uri character varying(150), -- Potentsiaalne viide põhiressursi URI-le
data_object_uri character varying(150), -- Potentsiaalne viide andmeobjekti URI-le
document_uri character varying(150), -- Potentsiaalne viide dokumendi URI-le
comment_uri character varying(150), -- Potentsiaalne viide kommentaari URI-le
access_restriction integer, -- Juurdepääsupiirangu määrang. Kui väärtus on puudu või 0, on tegemist avaliku infoga, vastasel korral on tegemist piiratud juurdepääsuga infoga.
state character(1), -- Kommentaari staatus (A-active, D-deleted jne)
creator character varying(150), -- Kirje tekitanud isiku isikukood või muu identifikaator
modifier character varying(150), -- Kirjet viimati muutnud isiku isikukood või muu identifikaator
creation_date timestamp without time zone, -- Kirje tekitamise ajamoment.
modified_date timestamp without time zone, -- Kirje viimase muutmise ajamoment.
kind character varying(150),
infosystem_uuid UUID NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000',
comment varchar(1000),
author_name VARCHAR(255),
author_personal_code VARCHAR(11),
organization_name VARCHAR(255),
organization_code VARCHAR(50),
status VARCHAR(150),
type VARCHAR(150),
CONSTRAINT pk_comment PRIMARY KEY (comment_id),
CONSTRAINT fk_comment_comment FOREIGN KEY (comment_parent_id)
REFERENCES riha.comment (comment_id) MATCH SIMPLE
......@@ -347,21 +338,19 @@ OIDS=FALSE
COMMENT ON TABLE riha.comment
IS 'Tabelis hoitakse põhiressursside või andmeobjektide kohta esitatud kommentaare. Kommentaarid pole ühegi ressursi ega andmeobjekti ametlik kirjelduse koosseisu kuuluv info, vaid aitab kirjeldada ja lahti seletada ametlikku infot. Muuhulgas esitatakse ka kommentaaridena näiteks kooskõlastajate poolt tehtud märkused infosüsteemi kirjelduse kohta ja ka infosüsteemi omaniku endapoolsed kommentaarid kooskõlastajatele.';
COMMENT ON COLUMN riha.comment.comment_id IS 'Kommentaari unikaalne ID.';
COMMENT ON COLUMN riha.comment.uri IS 'Kommentaari unikaalne URI. See on ühine kogu ühe kommentaari hierarhiale';
COMMENT ON COLUMN riha.comment.comment_parent_id IS 'Kui on tegemist hierarhilise kommentaariumiga, siis viitab vanemale';
COMMENT ON COLUMN riha.comment.organization IS 'Kommentaari loonud ettevõtte kood ';
COMMENT ON COLUMN riha.comment.json_content IS 'Kommentaari väljade esitus json formaadis.';
COMMENT ON COLUMN riha.comment.main_resource_uri IS 'Potentsiaalne viide põhiressursi URI-le';
COMMENT ON COLUMN riha.comment.data_object_uri IS 'Potentsiaalne viide andmeobjekti URI-le';
COMMENT ON COLUMN riha.comment.document_uri IS 'Potentsiaalne viide dokumendi URI-le';
COMMENT ON COLUMN riha.comment.comment_uri IS 'Potentsiaalne viide kommentaari URI-le';
COMMENT ON COLUMN riha.comment.access_restriction IS 'Juurdepääsupiirangu määrang. Kui väärtus on puudu või 0, on tegemist avaliku infoga, vastasel korral on tegemist piiratud juurdepääsuga infoga.';
COMMENT ON COLUMN riha.comment.state IS 'Kommentaari staatus (A-active, D-deleted jne)';
COMMENT ON COLUMN riha.comment.creator IS 'Kirje tekitanud isiku isikukood või muu identifikaator';
COMMENT ON COLUMN riha.comment.modifier IS 'Kirjet viimati muutnud isiku isikukood või muu identifikaator';
COMMENT ON COLUMN riha.comment.creation_date IS 'Kirje tekitamise ajamoment.';
COMMENT ON COLUMN riha.comment.modified_date IS 'Kirje viimase muutmise ajamoment.';
COMMENT ON COLUMN riha.comment.infosystem_uuid IS 'InfoSystem uuid';
COMMENT ON COLUMN riha.comment.comment IS 'Hinnangu või kommentaari sisu';
COMMENT ON COLUMN riha.comment.author_name IS 'Hinnangu/kommentaari kasutaja nimi või muu identifikaator';
COMMENT ON COLUMN riha.comment.author_personal_code IS 'Hinnangu/kommentaari kasutaja isikukood';
COMMENT ON COLUMN riha.comment.organization_name IS 'Hinnangu/kommentaari kasutaja asutuse numetus';
COMMENT ON COLUMN riha.comment.organization_code IS 'Hinnangu/kommentaari kasutaja asutuse kood';
COMMENT ON COLUMN riha.comment.status IS 'Hinnangu staatus';
COMMENT ON COLUMN riha.comment.type IS 'Hinnangu tüüp';
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE riha.comment TO riha;
......
-- Comment table refactoring for approval support
-- Remove unused columns
ALTER TABLE riha.comment DROP uri;
ALTER TABLE riha.comment DROP organization;
ALTER TABLE riha.comment DROP state;
ALTER TABLE riha.comment DROP main_resource_uri;
ALTER TABLE riha.comment DROP data_object_uri;
ALTER TABLE riha.comment DROP document_uri;
ALTER TABLE riha.comment DROP comment_uri;
ALTER TABLE riha.comment DROP creator;
ALTER TABLE riha.comment DROP modifier;
ALTER TABLE riha.comment DROP kind;
ALTER TABLE riha.comment DROP json_content;
-- Add new approval columns
ALTER TABLE riha.comment ADD author_name VARCHAR(255) NULL;
ALTER TABLE riha.comment ADD author_personal_code VARCHAR(11) NULL;
ALTER TABLE riha.comment ADD organization_name VARCHAR(255) NULL;
ALTER TABLE riha.comment ADD organization_code VARCHAR(50) NULL;
ALTER TABLE riha.comment ADD status VARCHAR(150) NULL;
ALTER TABLE riha.comment ADD type VARCHAR(150) NULL;
ALTER TABLE riha.comment ADD title VARCHAR(255) NULL;
-- Remove limit from comment
ALTER TABLE riha.comment ALTER COLUMN comment TYPE VARCHAR USING comment::VARCHAR;
\ No newline at end of file
-- Remove access restriction
ALTER TABLE riha.main_resource DROP access_restriction;
ALTER TABLE riha.data_object DROP access_restriction;
ALTER TABLE riha.document DROP access_restriction;
ALTER TABLE riha.comment DROP access_restriction;
\ No newline at end of file
......@@ -11,7 +11,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.google.gson.Gson;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject;
import com.google.gson.reflect.TypeToken;
......@@ -36,7 +35,7 @@ import ee.eesti.riha.rest.model.readonly.Kind;
* @param <T> the generic type
*/
@Component
public class TableEntryCreateLogic<T> {
public class TableEntryCreateLogic<T extends BaseModel> {
@Autowired
UtilitiesDAO<T> utilitiesDAO;
......@@ -107,6 +106,8 @@ public class TableEntryCreateLogic<T> {
} else {
fromJson = fromJsonContentToObj(json, classRepresentingTable);
}
} else {
fromJson = fromJsonContentToObj(json, classRepresentingTable);
}
} catch (Exception e) {
......@@ -181,7 +182,6 @@ public class TableEntryCreateLogic<T> {
* @return the t
*/
private T fromJsonToObjHelper(JsonObject jsonContent, Integer pkId, Class<T> classRepresentingTable) {
T constructedJsonObj;
Gson gson = JsonHelper.GSON;
Date dt = new Date();
......@@ -195,26 +195,22 @@ public class TableEntryCreateLogic<T> {
String adjustedJsonObj = gson.toJson(jsonContent);
// let gson construct blindly the table entry fields by fields
// it can find from provided json
// Map json to fields of class that represents table
T entity = gson.fromJson(adjustedJsonObj, classRepresentingTable);
if (JsonContentBasedTable.isJsonContentBasedTable(classRepresentingTable)) {
BaseModel objToCreate = (BaseModel) gson.fromJson(adjustedJsonObj, classRepresentingTable);
// store json_content into objToCreate
objToCreate.callSetId(pkId);
objToCreate.setJson_content(jsonContent);
constructedJsonObj = (T) objToCreate;
} else {
throw new IllegalArgumentException("can not convert " + classRepresentingTable + " with chosen method");
}
// Set required fields
entity.callSetId(pkId);
if (((BaseModel) constructedJsonObj).getJson_content() == null) {
throw new IllegalArgumentException("JsonContent can't be null! JsonContent " + jsonContent + " Created object "
+ constructedJsonObj);
// When dealing with json content table, initialize json_content field with source json and check if it was set correctly
if (JsonContentBasedTable.isJsonContentBasedTable(classRepresentingTable)) {
entity.setJson_content(jsonContent);
if (entity.getJson_content() == null) {
throw new IllegalArgumentException("JsonContent can't be null! JsonContent " + jsonContent + " Created object "
+ entity);
}
}
return constructedJsonObj;
return entity;
}
/**
......@@ -323,9 +319,9 @@ public class TableEntryCreateLogic<T> {
/**
* Purpose of this class is just to be holder for json and its parse (json to object) results.
*/
public class JsonParseData {
public class JsonParseData<U> {
private String json;
private T result;
private U result;
/**
* Instantiates a new json parse data.
......@@ -333,7 +329,7 @@ public class TableEntryCreateLogic<T> {
* @param json the json
* @param result the result
*/
public JsonParseData(String json, T result) {
public JsonParseData(String json, U result) {
this.json = json;
this.result = result;
}
......@@ -352,7 +348,7 @@ public class TableEntryCreateLogic<T> {
*
* @return the result
*/
public T getResult() {
public U getResult() {
return result;
}
}
......
......@@ -122,7 +122,4 @@ public interface BaseModel {
*/
void setKind(String kind);
Integer getAccess_restriction();
void setAccess_restriction(Integer aAccess_restriction);
}
package ee.eesti.riha.rest.model;
import java.util.Date;
import java.util.UUID;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
import org.springframework.transaction.annotation.Transactional;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonRawValue;
import com.google.gson.JsonObject;
import ee.eesti.riha.rest.logic.Finals;
import ee.eesti.riha.rest.model.hibernate.JsonObjectUserType;
import ee.eesti.riha.rest.model.util.DisallowUseMethodForUpdate;
import ee.eesti.riha.rest.model.util.FieldIsPK;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.*;
import java.util.Date;
import java.util.UUID;
// TODO: Auto-generated Javadoc
/**
......@@ -42,26 +33,7 @@ public class Comment implements BaseModel {
@Id
@Column(updatable = false)
private Integer comment_id;
private String uri;
private Integer comment_parent_id;
private String organization;
// http://stackoverflow.com/questions/15974474/mapping-postgresql-json-column-to-hibernate-value-type
// @Type(type = "StringJsonObject")
@JsonRawValue
// otherwise mapping exception
@Type(type = "JsonObject")
private JsonObject json_content;
private String main_resource_uri;
private String data_object_uri;
private String document_uri;
private String comment_uri;
private Integer access_restriction;
private Character state;
private String creator;
private String modifier;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = Finals.DATE_FORMAT)
@Temporal(TemporalType.TIMESTAMP)
......@@ -71,9 +43,32 @@ public class Comment implements BaseModel {
@Temporal(TemporalType.TIMESTAMP)
private Date modified_date;
private String kind;
@Type(type="pg-uuid")
private UUID infosystem_uuid;
@Column(name = "title")
private String title;
@Column(name = "comment")
private String comment;
@Column(name = "author_name")
private String author_name;
@Column(name = "author_personal_code")
private String author_personal_code;
@Column(name = "organization_name")
private String organization_name;
@Column(name = "organization_code")
private String organization_code;
@Column(name = "status")
private String status;
@Column(name = "type")
private String type;
/*
* (non-Javadoc)
*
......@@ -94,6 +89,26 @@ public class Comment implements BaseModel {
setComment_id(id);
}
/**
* @return null
* @deprecated not used anymore and will be removed in the future
*/
@Override
@Deprecated
@Transient
public String getUri() {
return null;
}
/**
* @deprecated not used anymore and will be removed in the future
*/
@Override
@Deprecated
@Transient
public void setUri(String uri) {
}
/**
* Gets the comment_id.
*
......@@ -113,27 +128,6 @@ public class Comment implements BaseModel {
comment_id = aComment_id;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#getUri()
*/
@Override
public String getUri() {
return uri;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#setUri(java.lang.String)
*/
@Override
@DisallowUseMethodForUpdate
public void setUri(String aUri) {
uri = aUri;
}
/**
* Gets the comment_parent_id.
*
......@@ -153,192 +147,63 @@ public class Comment implements BaseModel {
}
/**
* Gets the organization.
*
* @return the organization
*/
public String getOrganization() {
return organization;
}
/**
* Sets the organization.
*
* @param aOrganization the new organization
*/
public void setOrganization(String aOrganization) {
organization = aOrganization;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#getJson_content()
* @return null
* @deprecated not used anymore and will be removed in the future
*/
@Override
@Deprecated
@Transient
public JsonObject getJson_content() {
return json_content;
return null;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#setJson_content(com.google.gson.JsonObject)
/**
* @deprecated not used anymore and will be removed in the future
*/
@Override
@Deprecated
@Transient
public void setJson_content(JsonObject aJson_content) {
json_content = aJson_content;
}
/**
* Gets the main_resource_uri.
*
* @return the main_resource_uri
*/
public String getMain_resource_uri() {
return main_resource_uri;
}
/**
* Sets the main_resource_uri.
*
* @param aMain_resource_uri the new main_resource_uri
*/
public void setMain_resource_uri(String aMain_resource_uri) {
main_resource_uri = aMain_resource_uri;
}
/**
* Gets the data_object_uri.
*
* @return the data_object_uri
*/
public String getData_object_uri() {
return data_object_uri;
}
/**
* Sets the data_object_uri.
*
* @param aData_object_uri the new data_object_uri
*/
public void setData_object_uri(String aData_object_uri) {
data_object_uri = aData_object_uri;
}
/**
* Gets the document_uri.
*
* @return the document_uri
*/
public String getDocument_uri() {
return document_uri;
}
/**
* Sets the document_uri.
*
* @param aDocument_uri the new document_uri
*/
public void setDocument_uri(String aDocument_uri) {
document_uri = aDocument_uri;
}
/**
* Gets the comment_uri.
*
* @return the comment_uri
*/
public String getComment_uri() {
return comment_uri;
}
/**
* Sets the comment_uri.
*
* @param aComment_uri the new comment_uri
*/
public void setComment_uri(String aComment_uri) {
comment_uri = aComment_uri;
}
/**
* Gets the access_restriction.
*
* @return the access_restriction
* @return null
* @deprecated not used anymore and will be removed in the future
*/
@Override
public Integer getAccess_restriction() {
return access_restriction;
@Deprecated
@Transient
public String getCreator() {
return null;
}
/**
* Sets the access_restriction.
*
* @param aAccess_restriction the new access_restriction
* @deprecated not used anymore and will be removed in the future
*/
@Override
public void setAccess_restriction(Integer aAccess_restriction) {
access_restriction = aAccess_restriction;
@Deprecated
@Transient
public void setCreator(String creator) {
}
/**
* Gets the state.
*
* @return the state
*/
public Character getState() {
return state;
}
/**
* Sets the state.
*
* @param aState the new state
*/
public void setState(Character aState) {
state = aState;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#getCreator()
*/
@Override
public String getCreator() {
return creator;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#setCreator(java.lang.String)
*/
@Override
@DisallowUseMethodForUpdate
public void setCreator(String aCreator) {
creator = aCreator;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#getModifier()
* @return null
* @deprecated not used anymore and will be removed in the future
*/
@Override
@Deprecated
@Transient
public String getModifier() {
return modifier;
return null;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#setModifier(java.lang.String)
/**
* @deprecated not used anymore and will be removed in the future
*/
@Override
public void setModifier(String aModifier) {
modifier = aModifier;
@Deprecated
@Transient
public void setModifier(String modifier) {
}
/*
......@@ -382,25 +247,25 @@ public class Comment implements BaseModel {
modified_date = aModified_date;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#getKind()
/**
* @return null
* @deprecated not used anymore and will be removed in the future
*/
@Override
@Deprecated
@Transient
public String getKind() {
return kind;
return null;
}
/*
* (non-Javadoc)
*
* @see ee.eesti.riha.rest.model.BaseModel#setKind(java.lang.String)
/**
* @deprecated not used anymore and will be removed in the future
*/
@Override
@Deprecated
@Transient
@DisallowUseMethodForUpdate
public void setKind(String aKind) {
kind = aKind;
}
public UUID getInfosystem_uuid() {
......@@ -411,4 +276,68 @@ public class Comment implements BaseModel {
public void setInfosystem_uuid(UUID infosystem_uuid) {
this.infosystem_uuid = infosystem_uuid;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
public String getAuthor_name() {
return author_name;
}
public void setAuthor_name(String author_name) {
this.author_name = author_name;
}
public String getAuthor_personal_code() {
return author_personal_code;
}
public void setAuthor_personal_code(String author_personal_code) {
this.author_personal_code = author_personal_code;
}
public String getOrganization_name() {
return organization_name;
}
public void setOrganization_name(String organization_name) {
this.organization_name = organization_name;
}
public String getOrganization_code() {
return organization_code;