protected void addBwmetaMedia(List<YExportable> bwmeta, String docNewId, DocumentProtos.DocumentWrapper.Builder builder) throws UnsupportedEncodingException { for (YExportable ex : bwmeta) { if (ex instanceof YElement) { if (((YElement) ex).getStructure(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL) != null && HierarchyWithLevelIds.EXT_LEVEL_JOURNAL_ARTICLE.equalsIgnoreCase(((YElement) ex) .getStructure(HierarchyWithLevelIds.EXT_HIERARCHY_JOURNAL).getCurrent().getLevel())) { if (NON_ID_CHARS.matcher(ex.getId()).find()) { String nid = docNewId; nid = nid.replaceAll("[^a-zA-Z0-9\\-_]", "_"); ((YElement) ex).setId(nid); } } else { if (NON_ID_CHARS.matcher(ex.getId()).find()) { String nid = ex.getId(); nid = nid.replaceAll("[^a-zA-Z0-9\\-_]", "_"); ((YElement) ex).setId(nid); } } } } String bwmetas = ywriter.write(bwmeta); builder.getMediaContainerBuilder().addMediaBuilder(). setKey(BWMeta2Constants.KEY_BWMETA2_RECORD). setMediaType(BWMeta2Constants.TYPE_BWMETA2_RECORD). setContent(ByteString.copyFrom(bwmetas.getBytes("utf-8"))); }
mediaBuild.setMediaType(CrossrefConstants.TYPE_CROSSREF_UNIXREF_RECORD); mediaBuild.setContent(ByteString.copyFrom(m)); build.getMediaContainerBuilder().addMedia(mediaBuild); mediaBuild.setMediaType(CrossrefConstants.TYPE_CROSSREF_JSON_RECORD); mediaBuild.setContent(ByteString.copyFrom(m)); build.getMediaContainerBuilder().addMedia(mediaBuild);
@Override public boolean transform(DocumentProtos.Media media, String docNewId, MultiTypeParseResult dmBuider, DocumentProtos.MediaContainerOrBuilder mediaToCopy) { DocumentProtos.DocumentWrapperOrBuilder dwo=findWrapperForThisId(docNewId, dmBuider); DocumentProtos.DocumentWrapper.Builder dwb; if (dwo!=null) { dwb=(dwo instanceof DocumentProtos.DocumentWrapper.Builder)? (DocumentProtos.DocumentWrapper.Builder)dwo:((DocumentProtos.DocumentWrapper)dwo).toBuilder(); dmBuider.getDocuments().remove(dwo); } else { dwb=DocumentProtos.DocumentWrapper.newBuilder(); DocumentProtos.MediaContainer.Builder builder=dwb.getMediaContainerBuilder(); for (Media m:mediaToCopy.getMediaList()) { Media.Builder mb=m.toBuilder(); builder.addMedia(mb); } } boolean transform=transform(media, docNewId, dwb.getDocumentMetadataBuilder(),dwb); if (transform) { dpu.setIDFor(dwb, docNewId); dmBuider.add(dwb); } return transform; }