/**
   * get the relationship metadata for the detail line fields
   *
   * @return the relationship metadata for the detail line fields
   */
  public Map<String, DataObjectRelationship> getRelationshipMetadata() {
    LOG.debug("getRelationshipMetadata() start");

    PersistenceStructureService persistenceStructureService =
        SpringContext.getBean(PersistenceStructureService.class);

    Map<String, DataObjectRelationship> relationshipMetadata =
        new HashMap<String, DataObjectRelationship>();
    for (String attributeName : this.getInquirableFieldNames()) {
      Map<String, Class<? extends BusinessObject>> primitiveReference =
          LookupUtils.getPrimitiveReference(newDetailLine, attributeName);

      if (primitiveReference != null && !primitiveReference.isEmpty()) {
        DataObjectRelationship primitiveRelationship =
            this.getPrimitiveDataObjectRelationship(
                persistenceStructureService.getRelationshipMetadata(
                    newDetailLine.getClass(), attributeName));
        relationshipMetadata.put(attributeName, primitiveRelationship);
      }
    }

    return relationshipMetadata;
  }