001    package org.findata.blpwrapper;
002    
003    import com.bloomberglp.blpapi.*;
004    
005    import java.util.logging.Logger;
006    
007    public class FieldInfoResult extends DataResult {
008      public static final String[] returned_fields = {"id", "mnemonic", "description", "datatype"};
009      private String[][] result_data;
010    
011      public FieldInfoResult(String[] fields) {
012        result_data = new String[fields.length][returned_fields.length];
013      }
014    
015      public String[][] getData() {
016        return(result_data);
017      }
018    
019      public String[] getDataTypes() {
020        String[] data_types = {"STRING", "STRING", "STRING", "STRING"};
021        return(data_types);
022      }
023    
024      public String[] getColumnNames() {
025        return(returned_fields);
026      }
027    
028      public void processResponse(Element response, Logger logger, boolean throwInvalidSecurityError) throws WrapperException {
029        Element field_data = response.getElement("fieldData");
030        for (int i = 0; i < field_data.numValues(); i++) {
031          Element field = field_data.getValueAsElement(i);
032          
033          try {
034            Element field_info = field.getElement("fieldInfo");
035            result_data[i][0] = field.getElementAsString("id");
036            for (int j = 1; j < returned_fields.length; j++) {
037              result_data[i][j] = field_info.getElementAsString(returned_fields[j]);
038            }
039          } catch (com.bloomberglp.blpapi.NotFoundException e) {
040            throw new WrapperException("field " + field.getElementAsString("id") + " not found");
041          }
042        }
043      }
044    }