public COSObject getObject(final COSKey key) { try { COSObject obj = this.body.get(key); if (!obj.empty()) { return obj; } COSObject newObj = this.reader.getObject(key); if (newObj == null) { return new COSObject(); } this.body.set(key, newObj); return this.body.get(key); } catch (IOException e) { //TODO : maybe not runtime, maybe no exception at all throw new RuntimeException("Error while parsing object : " + key.getNumber() + " " + key.getGeneration(), e); } }
public Map<COSKey, COSObject> getObjectsMap() { Map<COSKey, COSObject> result = new HashMap<>(); for (COSKey key : this.xref.getAllKeys()) { COSObject obj = this.body.get(key); if (!obj.empty()) { result.put(key, obj); } else { try { COSObject newObj = this.reader.getObject(key); this.body.set(key, newObj); result.put(key, newObj); } catch (IOException e) { LOGGER.log(Level.FINE, "Error while parsing object : " + key.getNumber() + " " + key.getGeneration(), e); } } } return result; }
public List<COSObject> getObjects() { List<COSObject> result = new ArrayList<>(); for (COSKey key : this.xref.getAllKeys()) { COSObject obj = this.body.get(key); if (!obj.empty()) { result.add(obj); } else { try { COSObject newObj = this.reader.getObject(key); this.body.set(key, newObj); result.add(newObj); } catch (IOException e) { LOGGER.log(Level.FINE, "Error while parsing object : " + key.getNumber() + " " + key.getGeneration(), e); } catch (StackOverflowError e) { // TODO: double check this StackOverfrow catching throw new LoopedException("Loop in getting object from reader", e); } } } return result; }
public List<COSObject> getObjectsByType(ASAtom type) { List<COSObject> result = new ArrayList<>(); for (COSKey key : this.xref.getAllKeys()) { COSObject obj = this.body.get(key); if (!obj.empty()) { addObjectWithTypeKeyCheck(result, obj, type); } else { try { COSObject newObj = this.reader.getObject(key); this.body.set(key, newObj); addObjectWithTypeKeyCheck(result, obj, type); } catch (IOException e) { LOGGER.log(Level.FINE, "Error while parsing object : " + key.getNumber() + " " + key.getGeneration(), e); } } } return result; }