private void updateAttributes(AssociationValue associationValue, ListGridRecord record) {
   for (AttributeInfo attributeInfo : featureInfo.getAttributes()) {
     Attribute<?> attr = associationValue.getAllAttributes().get(attributeInfo.getName());
     if (attr.isPrimitive()) {
       Object value = attr.getValue();
       if (value != null) {
         if (value instanceof Boolean) {
           record.setAttribute(attributeInfo.getName(), (Boolean) value); // "false" != false
         } else {
           record.setAttribute(attributeInfo.getName(), value.toString());
         }
       } else {
         record.setAttribute(attributeInfo.getName(), "");
       }
     } else {
       AssociationAttributeInfo associationAttributeInfo =
           (AssociationAttributeInfo) attributeInfo;
       String displayName = associationAttributeInfo.getFeature().getDisplayAttributeName();
       Object value = attr.getValue();
       if (value != null) {
         if (displayName == null) {
           displayName = associationAttributeInfo.getFeature().getAttributes().get(0).getName();
         }
         switch (associationAttributeInfo.getType()) {
           case MANY_TO_ONE:
             ManyToOneAttribute manyToOneAttribute = (ManyToOneAttribute) attr;
             Object displayValue =
                 manyToOneAttribute.getValue().getAllAttributes().get(displayName).getValue();
             if (displayValue != null) {
               record.setAttribute(attributeInfo.getName(), displayValue.toString());
             } else {
               record.setAttribute(attributeInfo.getName(), "");
             }
             break;
           case ONE_TO_MANY:
             OneToManyAttribute oneToManyAttribute = (OneToManyAttribute) attr;
             List<String> values = new ArrayList<String>();
             for (AssociationValue assoc : oneToManyAttribute.getValue()) {
               Object o = assoc.getAllAttributes().get(displayName).getValue();
               if (o != null) {
                 values.add(o.toString());
               }
             }
             record.setAttribute(attributeInfo.getName(), StringUtil.join(values, ","));
             break;
         }
       } else {
         record.setAttribute(attributeInfo.getName(), "");
       }
     }
   }
   record.setAttribute(VALUE_HOLDER_RECORD_ATTRIBUTE, associationValue);
 }