private static String parseFilters(COSBase base) { StringBuilder filters = new StringBuilder(); if (base == null) { return null; } else if (base instanceof COSName) { return base.getString(); } else if (base instanceof COSArray) { Iterator<?> iterator = ((COSArray) base).iterator(); while (iterator.hasNext()) { COSBase filter = (COSBase) iterator.next(); if (filter instanceof COSName) { filters.append(((COSName) filter).getName()).append(" "); } else { LOGGER.log(Level.SEVERE, "Incorrect type for stream filter " + filter.getClass().getName()); } } } else { LOGGER.log(Level.SEVERE, "Incorrect type for stream filter " + base.getClass().getName()); return null; } // need to discard last white space return filters.substring(0, filters.length() - 1); }
private static String getRequirementsString(COSArray reqArray) { String result = ""; Iterator<COSObject> iterator = reqArray.iterator(); while (iterator.hasNext()) { COSObject element = iterator.next(); COSBase base = element.getDirectBase(); if (base.getType() == COSObjType.COS_DICT) { result += getRequirementsString((COSDictionary) base); result += " "; } } return result; }
/** * Get all elements of array. * * @return elements of array */ private List<CosObject> getElements() { List<CosObject> list = new ArrayList<>(this.getsize().intValue()); Iterator<?> iterator = ((COSArray) this.baseObject).iterator(); while (iterator.hasNext()) { COSObject object = (COSObject) iterator.next(); if (object != null && object.get() != null) { list.add(getFromValue(object.get())); } } return Collections.unmodifiableList(list); }