/* This file is part of ZamiaDroid.
*
* ZamiaDroid 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.
*
* ZamiaDroid 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 ZamiaDroid. If not, see <http://www.gnu.org/licenses/>.
*/
package uni.projecte.dataLayer.CitationManager.Xflora;
import java.nio.charset.Charset;
import java.text.Normalizer;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.http.util.EncodingUtils;
import uni.projecte.dataLayer.CitationManager.CitationExporter;
import uni.projecte.dataLayer.utils.StringASCIIFormat;
import android.annotation.TargetApi;
import android.util.Log;
@TargetApi(9)
public class XfloraExporter extends CitationExporter {
private String result;
private String taxonLine;
private String sureness;
private String naturenessLine;
private String fieldsLine;
private XfloraTags XFloraParser;
public XfloraExporter(String projectName, String thesaurusName,String projectType) {
super(projectName, thesaurusName, projectType);
XFloraParser= new XfloraTags();
result="";
}
@Override
public void openCitation(){
taxonLine="";
naturenessLine="";
sureness="";
fieldsLine="";
}
@Override
public void closeCitation(){
if(naturenessLine.equals("")) naturenessLine="{"+XfloraTags.NATURENESS+"} Espontània";
result=result+
XFloraParser.getCitationInit()+sureness+
taxonLine+"\n"+
naturenessLine+"\n"+
XFloraParser.getFieldsInit()+fieldsLine+"\n\n";
}
@Override
public void createCitationField(String fieldName, String fieldLabel, String value,String category){
//value = StringASCIIFormat.toASCII(value);
value=value.trim();
if(fieldName.equals("OriginalTaxonName")){
taxonLine=XFloraParser.createTaxonLine(value);
}
else if(fieldName.equals("Natureness")){
naturenessLine="{"+XfloraTags.NATURENESS+"} "+value;
}
else if(fieldName.equals("CitationNotes")){
addFieldValue(XFloraParser.getObservationComment(value));
}
else if(fieldName.equals("Sureness")){
sureness=XFloraParser.getSurenessCod(value);
}
else if(fieldName.equals("ObservationAuthor")){
addFieldValue(XFloraParser.getObservationAuthor(value));
}
else if(fieldName.equals("Locality")){
addFieldValue(value);
}
else if(fieldName.equals("altitude")){
addFieldValue(XFloraParser.getAltitude(value));
}
else{
}
}
@Override
public void writeCitationCoordinateLatLong(double latitude, double longitude) {
}
@Override
public void writeCitationCoordinateUTM(String utmShortForm) {
addFieldValue(XFloraParser.getUTMCod(utmShortForm.replace("_","")));
}
@Override
public void writeCitationDate(String dateString) {
SimpleDateFormat inFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
SimpleDateFormat outputFormatter = new SimpleDateFormat("dd/MM/yyyy");
try {
Date date = inFormat.parse(dateString);
String XfloraDate = outputFormatter.format(date);
addFieldValue(XFloraParser.getDateCod(XfloraDate));
} catch (ParseException e) {
e.printStackTrace();
}
}
@Override
public void openDocument(){
}
private void addFieldValue(String value) {
fieldsLine=fieldsLine+" "+value;
}
@Override
public void closeDocument(){
setFormat(".txt");
setResult(result);
}
}