Ejemplo n.º 1
0
  private void addLookups(String fieldName, boolean standardNames, Lookup lookup) {
    if (lookup == null) {
      LOG.warn("Ignoring null lookup for field: " + fieldName);
      return;
    }

    boolean generateDbValues;
    Map dbValues;
    if (fieldName.equals("ListingStatus") && standardNames) {
      dbValues = LISTING_STATUS_VALUES;
      generateDbValues = false;
    } else {
      dbValues = new ListOrderedMap();
      generateDbValues = true;
    }

    Map lookupTypesMap = new ListOrderedMap();
    Set lookupTypes = lookup.getLookupTypes();
    Long saveId = new Long(-1);
    String saveLevel = null;
    for (Iterator iterator = lookupTypes.iterator(); iterator.hasNext(); ) {
      LookupType lookupType = (LookupType) iterator.next();
      if (lookupType.getId() > saveId) saveId = lookupType.getId();
      if (saveLevel == null) saveLevel = lookupType.getLevel();
      String lookupValue = lookupType.getValue();
      lookupTypesMap.put(lookupValue, lookupType);
      if (generateDbValues) {
        // Assume lookups are stored in the database using the
        // lookup value.
        dbValues.put(lookupValue, lookupValue);
      }
    }
    /*
     * Dummy up an entry to handle .ANY.
     */
    LookupType lookupType = new LookupType();
    lookupType.setId(saveId + 1);
    lookupType.setLevel(saveLevel);
    lookupType.setLongValue(".ANY.");
    lookupType.setMetadataEntryID(".ANY.");
    lookupType.setShortValue(".ANY.");
    lookupType.setValue(".ANY.");
    dbValues.put(".ANY.", ".ANY.");
    lookupTypesMap.put(".ANY.", lookupType);

    /*
     * Dummy up an entry to handle .EMPTY.
     */
    lookupType.setId(saveId + 2);
    lookupType.setLevel(saveLevel);
    lookupType.setLongValue(".EMPTY.");
    lookupType.setMetadataEntryID(".EMPTY.");
    lookupType.setShortValue(".EMPTY.");
    lookupType.setValue(".EMPTY.");
    dbValues.put(".EMPTY.", ".EMPTY.");
    lookupTypesMap.put(".EMPTY.", lookupType);

    mLookupsDbMap.put(fieldName, dbValues);
    mLookupTypesMap.put(fieldName, lookupTypesMap);
  }