@Override
    protected void register(DocumentTypeManager manager, List<DataType> seenTypes) {
        seenTypes.add(this);
        for (Field field : getFields()) {
            if (!seenTypes.contains(field.getDataType())) {
                //we haven't seen this one before, register it:
                field.getDataType().register(manager, seenTypes);
            }
        }
        super.register(manager, seenTypes);
    }
Gets the field with the specified id.

@param id the id of the field to return.
@return the matching field, or null if not found.
document/src/main/java/com/yahoo/document/StructuredDataType.java