
org.nbnResolving.resolver.EpicurResolverResponse Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of resolver-core Show documentation
Show all versions of resolver-core Show documentation
Java classes providing resolving functionality for Persistent Identifiers.
Main focus is on National Bibliography Numbers, but some other known systems are also supported.
See the official URN:NBN Resolver http://nbn-resolving.org or http://persid.org
The newest version!
/* *********************************************************************
* Class EpicurResolverResponse
*
* Copyright (c) 2010-2012, German National Library/Deutsche Nationalbibliothek
* Adickesallee 1, D-60322 Frankfurt am Main, Federal Republic of Germany
*
* This program is free software.
* For your convenience it is dual licensed.
* You can redistribute it and/or modify it under the terms of
* one of the following licenses:
*
* 1.)
* 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.
* You should have received a copy of the GNU General Public License
* along with this program (gpl-3.0.txt); if not please read
* http://www.gnu.org/licenses/gpl.html
*
* 2.)
* The European Union Public Licence as published by
* The European Commission (executive body of the European Union);
* either version 1.1 of the License, or (at your option) any later version.
* You should have received a copy of the European Union Public Licence
* along with this program (eupl_v1.1_en.pdf); if not please read
* http://www.osor.eu/eupl
*
* 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 above licenses for more details.
*
* Kadir Karaca Kocer -- German National Library
*
**********************************************************************/
/* ********************************************************************
* CHANGELOG:
*
* 2012-04-03 Port to Maven by Timo Heck & Karaca Kocer
* 2011-12-01 Refactored PIDEF generation -> own generator.
* Renamed due to naming problems
* Refactored to PIDEF Schema
* Created on 2010-08-02 by Karaca Kocer
********************************************************************/
package org.nbnResolving.resolver;
import org.nbnResolving.pidef.DataType;
import org.nbnResolving.pidef.PidefDocument;
import eu.europeanaconnect.erds.ResourceDescription;
/**
* Class representing a detailed response of the local resolver.
* Because of detailed database queries a local resolver can return
* much more information than a remote resolver that is called via HTTP.
*
* @see eu.europeanaconnect.erds.ResolverResponse
* @author Kadir Karaca Kocer, German National Library
*/
public class EpicurResolverResponse extends eu.europeanaconnect.erds.ResolverResponse {
//ResourceDescription resourceDescription = null;
protected String dataProviderId = "Data provider id not set!";
protected PidefDocument doc;
/**
* Default Constructor. Generates a new XML document and sets some default values.
* @see PidefDocumentGenerator
*/
public EpicurResolverResponse() {
super();
this.doc = PidefDocumentGenerator.generateNewPidefDocument();
}
/**
* @param requestString User request (URI) as Java String.
*/
public EpicurResolverResponse(String requestString) {
this();
this.getDoc().getPidef().getHeader().setRequest(requestString);
}
/**
* @return The URL with the highest priority (it is assumed that the URLs are sorted according
* to their importance. EpicurLocalResolver does this with a SQL "ORDEY BY" command.)
*/
@Override
public String getUrl() {
String ret = null;
DataType data = this.doc.getPidef().getData();
if (data != null) {
if (data.getResolvingInformation() != null) {
if ((data.getResolvingInformation().getUrlInfoArray() != null) && (data.getResolvingInformation().getUrlInfoArray().length > 0)){
ret = data.getResolvingInformation().getUrlInfoArray(0).getUrl();
}
} else {
if (data.getLinks() != null) {
if (data.getLinks().getLinkArray() != null) {
ret = data.getLinks().getLinkArray(0);
}
}
}
}
return ret;
}
/**
* @param url the url to set (not active in this class.
*/
@Override
public void setUrl(String url) {
//this functionality does not make sense in this class
}
/**
* @return ATTENTION: in this class this returns always NULL!
*/
@Override
public ResourceDescription getResourceDescription() {
return null;
}
/**
* @param resourceDescription the resourceDescription to set
*/
@Override
public void setResourceDescription(ResourceDescription resourceDescription) {
//this functionality does not make sense in this class
}
/**
* @return the dataProviderId
*/
@Override
public String getDataProviderId() {
return this.dataProviderId;
}
/**
* @param providerId the dataProviderId to set
*/
@Override
public void setDataProviderId(String providerId) {
this.dataProviderId = providerId;
}
/**
* @return the returnCode
*/
public int getReturnCode() {
return this.doc.getPidef().getHeader().getStatusCode();
}
/**
* @param returnCode the returnCode to set
*/
public void setReturnCode(short returnCode) {
this.doc.getPidef().getHeader().setStatusCode(returnCode);
}
/**
* @return The document
*/
public PidefDocument getDoc() {
return this.doc;
}
/**
* @param pidefDoc the PIDEF to set
*/
public void setDoc(PidefDocument pidefDoc) {
this.doc = pidefDoc;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy