package uni.projecte.dataLayer.RemoteDBManager;
import edu.ub.bio.biogeolib.CoordConverter;
import edu.ub.bio.biogeolib.CoordinateLatLon;
import edu.ub.bio.biogeolib.CoordinateUTM;
import uni.projecte.R;
import uni.projecte.dataLayer.RemoteDBManager.dataParsers.BiocatDBResponseHandler;
import uni.projecte.dataTypes.RemoteCitationSet;
import uni.projecte.dataTypes.RemoteTaxonSet;
import uni.projecte.dataTypes.Utilities;
import uni.projecte.maps.UTMDisplay;
import android.content.Context;
public abstract class BVeganaDBConnection extends AbstractDBConnection {
protected BiocatDBResponseHandler bioResp;
protected String utm;
protected String utm1x1;
protected String filumLetter;
protected String serviceTaxonList;
public BVeganaDBConnection(Context baseContext,String filum,String language) {
super(baseContext,filum,language);
bioResp=new BiocatDBResponseHandler();
filumLetter=getFilumLetter(filum);
}
@Override
public void setLocation(double latitude, double longitude, boolean utm1x1){
super.setLocation(latitude, longitude, false);
CoordinateUTM utmConverter = CoordConverter.getInstance().toUTM(new CoordinateLatLon(latitude,longitude));
if(!utm1x1)utm=UTMDisplay.getBdbcUTM10x10(utmConverter.getShortForm());
else utm=UTMDisplay.get1x1UTM(utmConverter.getShortForm());
}
@Override
public int serviceGetTaxonList(){
projList=new RemoteTaxonSet(utm);
String url=getServiceTaxonListURL();
bioResp.loadTaxons(url, projList);
return projList.numElements();
}
protected abstract String getServiceTaxonListURL();
@Override
public int serviceGetTaxonCitations(String codiOrc){
String url=getServiceTaxonList()+filumLetter+"6.b@"+utm+"%25codi_e_orc%3D"+codiOrc;
citList=new RemoteCitationSet(utm);
int result=bioResp.loadCitations(url, citList);
/* BiocatRemoteTaxonList rTL= new BiocatRemoteTaxonList(utm);
if(level==2) {
rTL.connect("http://biodiver.bio.ub.es/biocat/servlet/biocat.ZamiaLlistaDeTaxonsUTM?"+filum+"6.b@"+utm+"%25codi_e_orc%3D"+codiOrc,false);
}
if(level==3){
rTL.connect("http://www.sivim.info/sivi/ZamiaLlistaDeTaxonsUTM?"+filum+"6.b@"+utm+"%25codi_e_orc%3D"+codiOrc,false);
}
else rTL.connect("http://biodiver.bio.ub.es/biocat/servlet/biocat.ZamiaLlistaDeTaxonsUTM?"+filum+"6.b@"+utm+"%25codi_e_orc%3D"+codiOrc,false);
remoteList=rTL.getCitList();
*/
return result;
}
@Override
public String getPrettyLocation(){
return utm.replace("_", "");
}
protected abstract String getServiceTaxonList();
/*
*
* Utilities
*
*/
private String getFilumLetter(String currentLanguageName){
String[] biocatNamesEnglish = baseContext.getResources().getStringArray(R.array.thesaurusFilumsEnglish);
int pos=Utilities.findString(biocatNamesEnglish, currentLanguageName);
if(pos>-1) {
String[] biocatFilumsLetters = baseContext.getResources().getStringArray(R.array.thesaurusFilumsLetters);
return biocatFilumsLetters[pos];
}
else return "";
}
@Override
public boolean useThId() {
return false;
}
}