Project

General

Profile

« Previous | Next » 

Revision 55169

Fixed datacite problem because they sucks!

View differences:

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