Ejemplo n.º 1
0
  /**
   * Check if an entry is consistent with specific properties.
   *
   * <p>A null String argument always matches. Strings are used for convenience in GUI building.
   *
   * @param r the roster entry being checked
   * @param roadName road name of entry or null for any road name
   * @param roadNumber road number of entry of null for any number
   * @param dccAddress address of entry or null for any address
   * @param mfg manufacturer of entry or null for any manufacturer
   * @param decoderModel decoder model of entry or null for any model
   * @param decoderFamily decoder family of entry or null for any family
   * @param id id of entry or null for any id
   * @param group group entry is member of or null for any group
   * @return True if the entry matches
   */
  public boolean checkEntry(
      RosterEntry r,
      String roadName,
      String roadNumber,
      String dccAddress,
      String mfg,
      String decoderModel,
      String decoderFamily,
      String id,
      String group) {

    if (id != null && !id.equals(r.getId())) {
      return false;
    }
    if (roadName != null && !roadName.equals(r.getRoadName())) {
      return false;
    }
    if (roadNumber != null && !roadNumber.equals(r.getRoadNumber())) {
      return false;
    }
    if (dccAddress != null && !dccAddress.equals(r.getDccAddress())) {
      return false;
    }
    if (mfg != null && !mfg.equals(r.getMfg())) {
      return false;
    }
    if (decoderModel != null && !decoderModel.equals(r.getDecoderModel())) {
      return false;
    }
    if (decoderFamily != null && !decoderFamily.equals(r.getDecoderFamily())) {
      return false;
    }
    if (group != null
        && !Roster.ALLENTRIES.equals(group)
        && (r.getAttribute(Roster.getRosterGroupProperty(group)) == null
            || !r.getAttribute(Roster.getRosterGroupProperty(group)).equals("yes"))) { // NOI18N
      return false;
    }
    return true;
  }