Search in sources :

Example 1 with ParentInstance

use of org.folio.ParentInstance in project mod-inventory by folio-org.

the class InstanceUtil method mergeFieldsWhichAreNotControlled.

/**
 * Merges fields from Instances which are NOT controlled by the underlying SRS MARC
 * @param existing - Instance in DB
 * @param mapped - Instance after mapping
 * @return - result Instance
 */
public static Instance mergeFieldsWhichAreNotControlled(Instance existing, org.folio.Instance mapped) {
    mapped.setId(existing.getId());
    List<ParentInstance> parentInstances = constructParentInstancesList(existing);
    List<ChildInstance> childInstances = constructChildInstancesList(existing);
    // Fields which are not affects by default mapping.
    org.folio.Instance tmp = new org.folio.Instance().withId(existing.getId()).withVersion(Integer.parseInt(existing.getVersion())).withDiscoverySuppress(existing.getDiscoverySuppress()).withStaffSuppress(existing.getStaffSuppress()).withPreviouslyHeld(existing.getPreviouslyHeld()).withCatalogedDate(existing.getCatalogedDate()).withStatusId(existing.getStatusId()).withStatisticalCodeIds(existing.getStatisticalCodeIds()).withNatureOfContentTermIds(existing.getNatureOfContentTermIds()).withTags(new Tags().withTagList(existing.getTags())).withParentInstances(parentInstances).withChildInstances(childInstances);
    JsonObject existingInstanceAsJson = JsonObject.mapFrom(tmp);
    JsonObject mappedInstanceAsJson = JsonObject.mapFrom(mapped);
    JsonObject mergedInstanceAsJson = InstanceUtil.mergeInstances(existingInstanceAsJson, mappedInstanceAsJson);
    return Instance.fromJson(mergedInstanceAsJson);
}
Also used : ParentInstance(org.folio.ParentInstance) ParentInstance(org.folio.ParentInstance) ChildInstance(org.folio.ChildInstance) Instance(org.folio.inventory.domain.instances.Instance) JsonObject(io.vertx.core.json.JsonObject) ChildInstance(org.folio.ChildInstance) Tags(org.folio.Tags)

Example 2 with ParentInstance

use of org.folio.ParentInstance in project mod-inventory by folio-org.

the class InstanceUtil method constructParentInstancesList.

private static List<ParentInstance> constructParentInstancesList(Instance existing) {
    List<ParentInstance> parentInstances = new ArrayList<>();
    for (InstanceRelationshipToParent parent : existing.getParentInstances()) {
        ParentInstance parentInstance = new ParentInstance().withId(parent.getId()).withSuperInstanceId(parent.getSuperInstanceId()).withInstanceRelationshipTypeId(parent.getInstanceRelationshipTypeId());
        parentInstances.add(parentInstance);
    }
    return parentInstances;
}
Also used : ParentInstance(org.folio.ParentInstance) ArrayList(java.util.ArrayList) InstanceRelationshipToParent(org.folio.inventory.domain.instances.InstanceRelationshipToParent)

Aggregations

ParentInstance (org.folio.ParentInstance)2 JsonObject (io.vertx.core.json.JsonObject)1 ArrayList (java.util.ArrayList)1 ChildInstance (org.folio.ChildInstance)1 Tags (org.folio.Tags)1 Instance (org.folio.inventory.domain.instances.Instance)1 InstanceRelationshipToParent (org.folio.inventory.domain.instances.InstanceRelationshipToParent)1