public static String generateID(COSKey key) { return String.valueOf(key.getNumber() + " " + key.getGeneration()); }
public void addTo(final Map<COSKey, Long> offsets) { for (Map.Entry<Integer, COSXRefEntry> entry : this.entries.entrySet()) { final COSKey key = new COSKey(entry.getKey(), entry.getValue().generation); if (entry.getValue().free == 'n') { offsets.put(key, entry.getValue().offset); } else { offsets.remove(new COSKey(key.getNumber(), key.getGeneration() - 1)); } } }
public void add(final COSKey key, final long offset, final char free) { this.entries.put(key.getNumber(), new COSXRefEntry(offset, key.getGeneration(), free)); }
/** * Constructor from decoded object stream data and COSStream. * * @param inputStream contains decoded object stream. * @param objectStream is COSStream that is being parsed. * @param streamKey is key of given COSStream. * @throws IOException */ public DecodedObjectStreamParser(final ASInputStream inputStream, COSStream objectStream, COSKey streamKey, COSDocument doc) throws IOException { super(doc, inputStream); this.objectStream = objectStream; this.internalOffsets = new HashMap<>(); try { calculateInternalOffsets(); } catch (IOException e) { throw new IOException("Object stream " + streamKey.getNumber() + " " + streamKey.getGeneration() + " has invalid N value", e); } }
/** * Gets a byte string consisting of object number and object generation * concatenated. * * @param objectKey is key of object. * @return byte string consisting of object number and object generation * concatenated. */ public static byte[] getObjectKeyDigest(COSKey objectKey) { byte[] res = new byte[5]; System.arraycopy(EncryptionToolsRevision4.intToBytesLowOrderFirst( objectKey.getNumber()), 0, res, 0, 3); System.arraycopy(EncryptionToolsRevision4.intToBytesLowOrderFirst( objectKey.getGeneration()), 0, res, 3, 2); return res; } }
@Override public String getdestOutputProfileIndirect() { COSObject obj = simplePDObject.getKey(ASAtom.DEST_OUTPUT_PROFILE); if (!obj.empty() && obj.isIndirect().booleanValue()) { COSKey key = obj.getKey(); return String.valueOf(key.getNumber() + " " + key.getGeneration()); } return null; }
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; }
protected void write(final COSKey value) throws IOException { final COSKey newKey = getKeyToWrite(value); this.write(newKey.getNumber()); this.write(" "); this.write(newKey.getGeneration()); }
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; }
public GFPDObject(PDContentStream contentStream, final String type) { super(type); this.contentStream = contentStream; COSObject simpleObject = ((org.verapdf.pd.PDObject) contentStream).getObject(); if (simpleObject != null && !simpleObject.empty()) { COSKey key = simpleObject.getObjectKey(); id = key != null ? key.getNumber() + " " + key.getGeneration() + " obj " + this.getObjectType() : super.getID(); } }
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 GFPDObject(PDCMap pdcMap, final String type) { super(type); this.pdcMap = pdcMap; this.simplePDObject = pdcMap; if (simplePDObject != null && !simplePDObject.getObject().empty()) { this.simpleCOSObject = simplePDObject.getObject(); COSKey key = simplePDObject.getObject().getObjectKey(); id = key != null ? key.getNumber() + " " + key.getGeneration() + " obj " + this.getObjectType() : super.getID(); } }
public GFPDObject(org.verapdf.pd.PDObject simplePDObject, final String type) { super(type); this.simplePDObject = simplePDObject; if (simplePDObject != null && !simplePDObject.getObject().empty()) { this.simpleCOSObject = simplePDObject.getObject(); COSKey key = simplePDObject.getObject().getObjectKey(); id = key != null ? key.getNumber() + " " + key.getGeneration() + " obj " + this.getObjectType() : super.getID(); } }
if (!super.containsKey(key)) { LOGGER.log(Level.FINE, "Trying to get object " + key.getNumber() + " " + key.getGeneration() + " that is not present in the document"); return null;