public void registerSourceConverters( MapperFactory mapperFactory, ClassMapBuilder classMapBuilder) { ConverterFactory converterFactory = mapperFactory.getConverterFactory(); converterFactory.registerConverter( "sourceOrcidConverter", new SourceOrcidConverter(orcidUrlManager)); converterFactory.registerConverter( "sourceClientIdConverter", new SourceClientIdConverter(orcidUrlManager)); converterFactory.registerConverter( "sourceNameConverter", new SourceNameConverter(sourceNameCacheManager)); classMapBuilder .fieldMap("source.sourceOrcid", "sourceId") .converter("sourceOrcidConverter") .add(); classMapBuilder .fieldMap("source.sourceClientId", "clientSourceId") .converter("sourceClientIdConverter") .add(); classMapBuilder .fieldMap("source.sourceName", "elementSourceId") .converter("sourceNameConverter") .add(); }
public MapperFacade getPeerReviewMapperFacade() { MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build(); ConverterFactory converterFactory = mapperFactory.getConverterFactory(); converterFactory.registerConverter( "workExternalIdentifiersConverterId", new WorkExternalIDsConverter()); converterFactory.registerConverter( "workExternalIdentifierConverterId", new PeerReviewWorkExternalIDConverter()); // do same as work ClassMapBuilder<PeerReview, PeerReviewEntity> classMap = mapperFactory.classMap(PeerReview.class, PeerReviewEntity.class); addV2CommonFields(classMap); registerSourceConverters(mapperFactory, classMap); classMap.field("url.value", "url"); classMap.field("organization.name", "org.name"); classMap.field("organization.address.city", "org.city"); classMap.field("organization.address.region", "org.region"); classMap.field("organization.address.country", "org.country"); classMap.field( "organization.disambiguatedOrganization.disambiguatedOrganizationIdentifier", "org.orgDisambiguated.sourceId"); classMap.field( "organization.disambiguatedOrganization.disambiguationSource", "org.orgDisambiguated.sourceType"); classMap.field("groupId", "groupId"); classMap.field("subjectType", "subjectType"); classMap.field("subjectUrl.value", "subjectUrl"); classMap.field("subjectName.title.content", "subjectName"); classMap.field("subjectName.translatedTitle.content", "subjectTranslatedName"); classMap.field("subjectName.translatedTitle.languageCode", "subjectTranslatedNameLanguageCode"); classMap.field("subjectContainerName.content", "subjectContainerName"); classMap .fieldMap("externalIdentifiers", "externalIdentifiersJson") .converter("workExternalIdentifiersConverterId") .add(); classMap .fieldMap("subjectExternalIdentifier", "subjectExternalIdentifiersJson") .converter("workExternalIdentifierConverterId") .add(); classMap.register(); ClassMapBuilder<PeerReviewSummary, PeerReviewEntity> peerReviewSummaryClassMap = mapperFactory.classMap(PeerReviewSummary.class, PeerReviewEntity.class); addV2CommonFields(peerReviewSummaryClassMap); registerSourceConverters(mapperFactory, peerReviewSummaryClassMap); peerReviewSummaryClassMap .fieldMap("externalIdentifiers", "externalIdentifiersJson") .converter("workExternalIdentifiersConverterId") .add(); peerReviewSummaryClassMap.field("organization.name", "org.name"); peerReviewSummaryClassMap.field("organization.address.city", "org.city"); peerReviewSummaryClassMap.field("organization.address.region", "org.region"); peerReviewSummaryClassMap.field("organization.address.country", "org.country"); peerReviewSummaryClassMap.field( "organization.disambiguatedOrganization.disambiguatedOrganizationIdentifier", "org.orgDisambiguated.sourceId"); peerReviewSummaryClassMap.field( "organization.disambiguatedOrganization.disambiguationSource", "org.orgDisambiguated.sourceType"); peerReviewSummaryClassMap.register(); mapperFactory .classMap(FuzzyDate.class, CompletionDateEntity.class) .field("year.value", "year") .field("month.value", "month") .field("day.value", "day") .register(); return mapperFactory.getMapperFacade(); }
public MapperFacade getFundingMapperFacade() { MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build(); ConverterFactory converterFactory = mapperFactory.getConverterFactory(); converterFactory.registerConverter( "fundingExternalIdentifiersConverterId", new FundingExternalIDsConverter()); converterFactory.registerConverter( "fundingContributorsConverterId", new JsonOrikaConverter<FundingContributors>()); ClassMapBuilder<Funding, ProfileFundingEntity> fundingClassMap = mapperFactory.classMap(Funding.class, ProfileFundingEntity.class); addV2CommonFields(fundingClassMap); registerSourceConverters(mapperFactory, fundingClassMap); fundingClassMap.field("type", "type"); fundingClassMap.field("organizationDefinedType.content", "organizationDefinedType"); fundingClassMap.field("title.title.content", "title"); fundingClassMap.field("title.translatedTitle.content", "translatedTitle"); fundingClassMap.field("title.translatedTitle.languageCode", "translatedTitleLanguageCode"); fundingClassMap.field("description", "description"); fundingClassMap.field("amount.content", "numericAmount"); fundingClassMap.field("amount.currencyCode", "currencyCode"); fundingClassMap.field("url.value", "url"); fundingClassMap.fieldBToA("org.name", "organization.name"); fundingClassMap.fieldBToA("org.city", "organization.address.city"); fundingClassMap.fieldBToA("org.region", "organization.address.region"); fundingClassMap.fieldBToA("org.country", "organization.address.country"); fundingClassMap.fieldBToA( "org.orgDisambiguated.sourceId", "organization.disambiguatedOrganization.disambiguatedOrganizationIdentifier"); fundingClassMap.fieldBToA( "org.orgDisambiguated.sourceType", "organization.disambiguatedOrganization.disambiguationSource"); fundingClassMap .fieldMap("externalIdentifiers", "externalIdentifiersJson") .converter("fundingExternalIdentifiersConverterId") .add(); fundingClassMap .fieldMap("contributors", "contributorsJson") .converter("fundingContributorsConverterId") .add(); fundingClassMap.register(); ClassMapBuilder<FundingSummary, ProfileFundingEntity> fundingSummaryClassMap = mapperFactory.classMap(FundingSummary.class, ProfileFundingEntity.class); addV2CommonFields(fundingSummaryClassMap); registerSourceConverters(mapperFactory, fundingSummaryClassMap); fundingSummaryClassMap.field("type", "type"); fundingSummaryClassMap.field("title.title.content", "title"); fundingSummaryClassMap.field("title.translatedTitle.content", "translatedTitle"); fundingSummaryClassMap.field( "title.translatedTitle.languageCode", "translatedTitleLanguageCode"); fundingSummaryClassMap .fieldMap("externalIdentifiers", "externalIdentifiersJson") .converter("fundingExternalIdentifiersConverterId") .add(); fundingSummaryClassMap.fieldBToA("org.name", "organization.name"); fundingSummaryClassMap.fieldBToA("org.city", "organization.address.city"); fundingSummaryClassMap.fieldBToA("org.region", "organization.address.region"); fundingSummaryClassMap.fieldBToA("org.country", "organization.address.country"); fundingSummaryClassMap.fieldBToA( "org.orgDisambiguated.sourceId", "organization.disambiguatedOrganization.disambiguatedOrganizationIdentifier"); fundingSummaryClassMap.fieldBToA( "org.orgDisambiguated.sourceType", "organization.disambiguatedOrganization.disambiguationSource"); fundingSummaryClassMap.register(); mapperFactory .classMap(FuzzyDate.class, StartDateEntity.class) .field("year.value", "year") .field("month.value", "month") .field("day.value", "day") .register(); mapperFactory .classMap(FuzzyDate.class, EndDateEntity.class) .field("year.value", "year") .field("month.value", "month") .field("day.value", "day") .register(); return mapperFactory.getMapperFacade(); }
public MapperFacade getWorkMapperFacade() { MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build(); ConverterFactory converterFactory = mapperFactory.getConverterFactory(); converterFactory.registerConverter( "workExternalIdentifiersConverterId", new WorkExternalIDsConverter()); converterFactory.registerConverter( "workContributorsConverterId", new JsonOrikaConverter<WorkContributors>()); ClassMapBuilder<Work, WorkEntity> workClassMap = mapperFactory.classMap(Work.class, WorkEntity.class); workClassMap.byDefault(); workClassMap.field("putCode", "id"); addV2DateFields(workClassMap); registerSourceConverters(mapperFactory, workClassMap); workClassMap.field("journalTitle.content", "journalTitle"); workClassMap.field("workTitle.title.content", "title"); workClassMap.field("workTitle.translatedTitle.content", "translatedTitle"); workClassMap.field("workTitle.translatedTitle.languageCode", "translatedTitleLanguageCode"); workClassMap.field("workTitle.subtitle.content", "subtitle"); workClassMap.field("shortDescription", "description"); workClassMap.field("workCitation.workCitationType", "citationType"); workClassMap.field("workCitation.citation", "citation"); workClassMap.field("workType", "workType"); workClassMap.field("publicationDate", "publicationDate"); workClassMap .fieldMap("workExternalIdentifiers", "externalIdentifiersJson") .converter("workExternalIdentifiersConverterId") .add(); workClassMap.field("url.value", "workUrl"); workClassMap .fieldMap("workContributors", "contributorsJson") .converter("workContributorsConverterId") .add(); workClassMap.field("languageCode", "languageCode"); workClassMap.field("country.value", "iso2Country"); workClassMap.register(); ClassMapBuilder<WorkSummary, WorkEntity> workSummaryClassMap = mapperFactory.classMap(WorkSummary.class, WorkEntity.class); registerSourceConverters(mapperFactory, workSummaryClassMap); workSummaryClassMap.field("putCode", "id"); workSummaryClassMap.field("title.title.content", "title"); workSummaryClassMap.field("title.translatedTitle.content", "translatedTitle"); workSummaryClassMap.field("title.translatedTitle.languageCode", "translatedTitleLanguageCode"); workSummaryClassMap.field("type", "workType"); workSummaryClassMap.field("publicationDate", "publicationDate"); workSummaryClassMap .fieldMap("externalIdentifiers", "externalIdentifiersJson") .converter("workExternalIdentifiersConverterId") .add(); workSummaryClassMap.byDefault(); workSummaryClassMap.register(); ClassMapBuilder<WorkSummary, MinimizedWorkEntity> workSummaryMinimizedClassMap = mapperFactory.classMap(WorkSummary.class, MinimizedWorkEntity.class); addV2CommonFields(workSummaryMinimizedClassMap); registerSourceConverters(mapperFactory, workSummaryMinimizedClassMap); workSummaryMinimizedClassMap.field("title.title.content", "title"); workSummaryMinimizedClassMap.field("title.translatedTitle.content", "translatedTitle"); workSummaryMinimizedClassMap.field( "title.translatedTitle.languageCode", "translatedTitleLanguageCode"); workSummaryMinimizedClassMap.field("type", "workType"); workSummaryMinimizedClassMap.field("publicationDate.year.value", "publicationYear"); workSummaryMinimizedClassMap.field("publicationDate.month.value", "publicationMonth"); workSummaryMinimizedClassMap.field("publicationDate.day.value", "publicationDay"); workSummaryMinimizedClassMap .fieldMap("externalIdentifiers", "externalIdentifiersJson") .converter("workExternalIdentifiersConverterId") .add(); workSummaryMinimizedClassMap.byDefault(); workSummaryMinimizedClassMap.register(); ClassMapBuilder<Work, MinimizedWorkEntity> minimizedWorkClassMap = mapperFactory.classMap(Work.class, MinimizedWorkEntity.class); minimizedWorkClassMap.byDefault(); registerSourceConverters(mapperFactory, minimizedWorkClassMap); minimizedWorkClassMap.field("putCode", "id"); minimizedWorkClassMap.field("journalTitle.content", "journalTitle"); minimizedWorkClassMap.field("workTitle.title.content", "title"); minimizedWorkClassMap.field("workTitle.translatedTitle.content", "translatedTitle"); minimizedWorkClassMap.field( "workTitle.translatedTitle.languageCode", "translatedTitleLanguageCode"); minimizedWorkClassMap.field("workTitle.subtitle.content", "subtitle"); minimizedWorkClassMap.field("shortDescription", "description"); minimizedWorkClassMap.field("workType", "workType"); minimizedWorkClassMap.field("publicationDate.year.value", "publicationYear"); minimizedWorkClassMap.field("publicationDate.month.value", "publicationMonth"); minimizedWorkClassMap.field("publicationDate.day.value", "publicationDay"); minimizedWorkClassMap .fieldMap("workExternalIdentifiers", "externalIdentifiersJson") .converter("workExternalIdentifiersConverterId") .add(); minimizedWorkClassMap.field("url.value", "workUrl"); minimizedWorkClassMap.register(); mapperFactory .classMap(PublicationDate.class, PublicationDateEntity.class) .field("year.value", "year") .field("month.value", "month") .field("day.value", "day") .register(); return mapperFactory.getMapperFacade(); }