コード例 #1
0
  @Override
  public String remove(String key) throws IllegalArgumentException {
    if (key == null || key.isEmpty() || key.contains("\n") || key.trim().isEmpty()) {
      throw new IllegalArgumentException(table.getTableName() + ": remove: key is null");
    }

    String result;
    try {
      result = table.remove(key);
    } catch (InvalidWorkingException e) {
      throw new IllegalArgumentException(e.getMessage());
    }

    if (values.containsKey(key)) {
      changes.put(key, null);
    } else {
      changes.remove(key);
    }
    return result;
  }
コード例 #2
0
 public void rollChanges() {
   String oldValue;
   String newValue;
   for (String key : changes.keySet()) {
     oldValue = values.get(key);
     newValue = changes.get(key);
     if (oldValue != null && !oldValue.equals(newValue)) {
       try {
         table.put(key, oldValue);
       } catch (InvalidWorkingException e) {
         System.err.println(
             "Can not roll back key = \'" + key + "\' and value = \'" + newValue + "\'");
       }
     } else if (oldValue == null && newValue != null) {
       try {
         table.remove(key);
       } catch (InvalidWorkingException e) {
         System.err.println(
             "Can not roll back deleting  key = \'" + key + "\' and value = \'" + oldValue + "\'");
       }
     }
   }
 }