/* Ara - capture species and specimen data
*
* Copyright (C) 2009 INBio (Instituto Nacional de Biodiversidad)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.inbio.ara.eao.reports.impl;
import org.inbio.ara.eao.reports.*;
import javax.ejb.Stateless;
import javax.persistence.Query;
import org.inbio.ara.eao.BaseEAOImpl;
import org.inbio.ara.persistence.reports.PlinianCoreFlat;
/**
*
* @author esmata
*/
@Stateless
public class PlinianCoreFlatEAOImpl extends BaseEAOImpl<PlinianCoreFlat,String>
implements PlinianCoreFlatEAOLocal {
/**
* Metodo que realiza el snapshot plinian core primario, el cual serĂ¡
* utilizado para los reportes y para crear snapshots personalizados
*/
public boolean reloadPlinianCoreTable(String dbSchema) {
String creationString = "Create table "+dbSchema+".plinian_core_flat"+
"(GlobalUniqueIdentifier varchar,"+
"ScientificName varchar,"+
"InstitutionCode varchar,"+
"DateLastModified timestamp,"+
"TaxonRecordID varchar,"+
"Language varchar,"+
"Creators varchar,"+
"Distribution varchar,"+
"Abstract varchar,"+
"KingdomTaxon varchar,"+
"PhylumTaxon varchar,"+
"ClassTaxon varchar,"+
"OrderTaxon varchar,"+
"FamilyTaxon varchar,"+
"GenusTaxon varchar,"+
"Synonyms varchar,"+
"AuthorYearOfScientificName varchar,"+
"SpeciesPublicationReference varchar,"+
"CommonNames varchar,"+
"Typification varchar,"+
"Contributors varchar,"+
"DateCreated timestamp, "+
"Habit varchar,"+
"LifeCycle varchar,"+
"Reproduction varchar,"+
"AnnualCycle varchar,"+
"ScientificDescription varchar,"+
"BriefDescription varchar,"+
"Feeding varchar,"+
"Behavior varchar,"+
"Interactions varchar,"+
"ChromosomicNumberN varchar,"+
"MolecularData varchar,"+
"PopulationBiology varchar,"+
"ThreatStatus varchar,"+
"Legislation varchar,"+
"Habitat varchar,"+
"Territory varchar,"+
"Endemicity varchar,"+
"TheUses varchar,"+
"TheManagement varchar,"+
"Folklore varchar,"+
"TheReferences varchar,"+
"UnstructuredDocumentation varchar,"+
"OtherInformationSources varchar,"+
"Papers varchar,"+
"IdentificationKeys varchar,"+
"MigratoryData varchar,"+
"EcologicalSignificance varchar,"+
"UnstructuredNaturalHistory varchar,"+
"InvasivenessData varchar,"+
"TargetAudiences varchar,"+
"Version varchar,"+
"URLImage1 varchar,"+
"CaptionImage1 varchar,"+
"URLImage2 varchar,"+
"CaptionImage2 varchar,"+
"URLImage3 varchar,"+
"CaptionImage3 varchar,"+
"PRIMARY KEY ( GlobalUniqueIdentifier));";
String insertString = "Insert into "+dbSchema+".plinian_core_flat"+
"(GlobalUniqueIdentifier,"+
"ScientificName,"+
"InstitutionCode,"+
"DateLastModified ,"+
"TaxonRecordID ,"+
"Language,"+
"Creators ,"+
"Distribution,"+
"Abstract,"+
"KingdomTaxon,"+
"PhylumTaxon,"+
"ClassTaxon,"+
"OrderTaxon,"+
"FamilyTaxon,"+
"GenusTaxon,"+
"Synonyms,"+
"AuthorYearOfScientificName,"+
"SpeciesPublicationReference,"+
"CommonNames,"+
"Typification,"+
"Contributors,"+
"DateCreated, "+
"Habit,"+
"LifeCycle,"+
"Reproduction,"+
"AnnualCycle,"+
"ScientificDescription,"+
"BriefDescription,"+
"Feeding,"+
"Behavior,"+
"Interactions,"+
"ChromosomicNumberN,"+
"MolecularData,"+
"PopulationBiology,"+
"ThreatStatus,"+
"Legislation,"+
"Habitat,"+
"Territory ,"+
"Endemicity,"+
"TheUses,"+
"TheManagement,"+
"Folklore,"+
"TheReferences,"+
"UnstructuredDocumentation,"+
"OtherInformationSources,"+
"Papers,"+
"IdentificationKeys,"+
"MigratoryData,"+
"EcologicalSignificance,"+
"UnstructuredNaturalHistory ,"+
"InvasivenessData ,"+
"TargetAudiences ,"+
"Version ,"+
"URLImage1,"+
"CaptionImage1,"+
"URLImage2 ,"+
"CaptionImage2 ,"+
"URLImage3 ,"+
"CaptionImage3 )"+
"select to_char(td.taxon_id, '000000000000') || ':' || coalesce(rtrim(i.INSTITUTION_CODE), '') || ':' || to_char(td.taxon_description_sequence, '000000') as GlobalUniqueIdentifier,"+
"t.default_name as ScientificName,"+
"i.INSTITUTION_CODE as InstitutionCode,"+
"td.last_modification_date as DateLastModified,"+
"t.taxon_id as TaxonRecordID,"+
"cp.name as Language,"+
dbSchema+".species_record_person(td.taxon_id, td.taxon_description_sequence,', ') as Creators,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Distribution', 0, ' ') as distribution, "+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Abstract', 0, '') as Abstract,"+
"r.default_name as Kingdom,"+
"fl.default_name as Phylum,"+
"c.default_name as Class, "+
"tor.default_name as OrderRank,"+
"tf.default_name as Family,"+
"g.default_name as genus,"+
"'' as Synonyms,"+
"'' as AuthorYearOfScientificName,"+
"'' as SpeciesPublicationReference,"+
dbSchema+".taxon_nomenclatural_group_list(td.taxon_id, '; ') as CommonNames,"+
"'' as Typification,"+
"'' as Contributors,"+
"null as DateCreated,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Habit', 0, '') as Habit,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'LifeCycle', 0, '') as LifeCycle,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Reproduction', 0, '') as Reproduction,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'AnnualCycle', 0, '') as AnnualCycle,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'ScientificDescription', 0, '') as ScientificDescription,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'BriefDescription', 0, '') as BriefDescription,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Feeding', 0, '') as Feeding ,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Behavior', 0, '') as Behavior,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Interactions', 1, '. ') as Interactions,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'ChromosomicNumberN', 0, '') as ChromosomicNumberN,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'MolecularData', 0, '') as MolecularData,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'PopulationBiology', 0, '') as PopulationBiology,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'ThreatStatus', 1, ' ') as ThreatStatus,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Legislation', 1, ' ') as Legislation,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Habitat', 0, '') as Habitat,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Territory', 0, '') as Territory,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Endemicity', 1, ' ') as Endemicity ,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Uses', 0, '') as theUses,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Management', 0, '') as theManagement,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Folkclore', 0, '') as Folklore,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'References', 0, '. '),"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'UnstructuredDocumentation', 0, ' ') as UnstructuredDocumentation,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'OtherInformationSources', 0, ' ') as OtherInformationSources,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'Papers', 0, ' ') as Papers,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'IdentificationKeys', 0, ' ') as IdentificationKeys,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'MigratoryData', 0, ' ') as MigratoryData,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'EcologicalSignificance', 0, ' ') as EcologicalSignificance,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'UnstructuredNaturalHistory', 0, ' ') as UnstructuredNaturalHistory,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'InvasivenessData', 0, ' ') as InvasivenessData,"+
dbSchema+".taxon_description_audience_list(td.taxon_id, td.taxon_description_sequence ,'; ') as TargetAudiences,"+
"td.taxon_description_sequence as Version ,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'URLImage1', 0, '') as URLImage1,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'CaptionImage1', 0, '') as CaptionImage1,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'URLImage2', 0, '') as URLImage2 ,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'CaptionImage2', 0, '') as CaptionImage2 ,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'URLImage3', 0, '') as URLImage3 ,"+
dbSchema+".species_standard_element_content(td.taxon_id, td.taxon_description_sequence, 'CaptionImage3', 0, '') as CaptionImage3 "+
"from "+dbSchema+".taxon_description td "+
"left outer join "+dbSchema+".taxon t on (t.taxon_id = td.taxon_id)"+
"left outer join "+dbSchema+".language l on (l.language_id = td.language_id) "+
"left outer join "+dbSchema+".concept cp on (l.language_id = cp.concept_id) "+
"left outer join "+dbSchema+".taxon r on (r.taxon_id = t.kingdom_taxon_id)"+
"left outer join "+dbSchema+".taxon fl on (fl.taxon_id = t.phylum_division_taxon_id)"+
"left outer join "+dbSchema+".taxon c on (c.taxon_id = t.class_taxon_id )"+
"left outer join "+dbSchema+".taxon tor on (tor.taxon_id = t.order_taxon_id ) "+
"left outer join "+dbSchema+".taxon tf on (tf.taxon_id = t.family_taxon_id)"+
"left outer join "+dbSchema+".taxon g on (g.taxon_id = t.genus_taxon_id)"+
"left outer join "+dbSchema+".taxon s on (s.taxon_id = t.genus_taxon_id)"+
"left outer join "+dbSchema+".institution i on (td.institution_id = i.institution_id);";
try{
Query q1 = em.createNativeQuery("drop table "+dbSchema+".plinian_core_flat;");
System.out.println(q1.executeUpdate() + " drop plinian_core_flat");
}
catch(Exception e){return false;}
try{
Query q2 = em.createNativeQuery(creationString);
System.out.println(q2.executeUpdate() + " create plinian_core_flat");
}
catch(Exception e){return false;}
try{
Query q3 = em.createNativeQuery(insertString);
System.out.println(q3.executeUpdate() + " inserts plinian_core_flat");
}
catch(Exception e){System.out.println(e.getCause());return false;}
return true;
}
}