Revision 55169
Added by Sandro La Bruzzo about 5 years ago
AbstractPIDResolver.java | ||
---|---|---|
45 | 45 |
} |
46 | 46 |
}; |
47 | 47 |
|
48 |
// public abstract void setDatasourceProvenance(final ObjectProvenance provenance, final String namespacePrefix); |
|
48 |
public ResolvedObject retrievePIDfromCache(final String pid, final String pidType) { |
|
49 |
final String dnetIdentifier = storeManager.generateDNetIdentifier(pid, pidType); |
|
50 |
final Element item = cache.get(dnetIdentifier); |
|
49 | 51 |
|
52 |
if (item != null) return (ResolvedObject) item.getObjectValue(); |
|
53 |
|
|
54 |
return storeManager.getRecord(dnetIdentifier); |
|
55 |
} |
|
56 |
|
|
50 | 57 |
public ResolvedObject retrievePID(final String pid, final String pidType, boolean offline) { |
58 |
if (offline && !isAvailableOffline()) |
|
59 |
return null; |
|
60 |
if (!canResolvePid(pidType)) return null; |
|
51 | 61 |
final String dnetIdentifier = storeManager.generateDNetIdentifier(pid, pidType); |
52 | 62 |
final Element item = cache.get(dnetIdentifier); |
63 |
|
|
53 | 64 |
if (item != null) return (ResolvedObject) item.getObjectValue(); |
54 |
if (offline && !isAvailableOffline()) |
|
55 |
return null; |
|
65 |
|
|
56 | 66 |
ResolvedObject resolvedObject = storeManager.getRecord(dnetIdentifier); |
57 |
log.debug("Cache miss for pid:" + pid + " and type :" + pidType); |
|
58 | 67 |
|
59 | 68 |
if (resolvedObject != null) { |
60 | 69 |
cache.put(new Element(storeManager.generateDNetIdentifier(pid, pidType), resolvedObject)); |
61 | 70 |
return resolvedObject; |
62 | 71 |
} |
63 |
if (!canResolvePid(pidType)) return null; |
|
64 | 72 |
|
65 |
resolvedObject = resolve(pid, pidType); |
|
73 |
log.debug("Cache miss for pid:" + pid + " and type :" + pidType); |
|
74 |
resolvedObject = resolve(pid, pidType); |
|
66 | 75 |
if (resolvedObject != null) { |
67 | 76 |
storeManager.insertRecord(getName(), resolvedObject); |
68 | 77 |
cache.put(new Element(storeManager.generateDNetIdentifier(pid, pidType), resolvedObject)); |
Also available in: Unified diff
Fixed datacite problem because they sucks!