code: protected Change createChange(String key) {
      String language = importSource.getLanguage();
      String importedValue = importSource.getValue(key);
      Status importedStatus = importSource.getStatus(key);
  
      // basic change
      Change change = new Change(Change.TYPE_NO_CHANGE, language, key, importedValue, importedStatus);
  
      ITextNode textNode = db.getTextNode(key);
      if (importSource.hasMasterLanguage()) {
        String masterLanguage = importSource.getMasterLanguage();
        change.setMasterLanguage(masterLanguage);
  
        // imported master value
        change.setImportedMasterValue(importSource.getMasterValue(key));
  
        // db master value
        if (textNode != null) {
          IValueNode masterValueNode = textNode.getValueNode(masterLanguage);
          if (masterValueNode != null) {
            change.setDbMasterValue(masterValueNode.getValue());
          }
        }
      }
  
      if (textNode != null) {
        change.setContext(textNode.getContext());
  
        IValueNode valueNode = textNode.getValueNode(language);
        if (valueNode != null) {
          change.setDbValue(valueNode.getValue());
          change.setDbStatus(valueNode.getStatus());
        }
      }
  
      setChangeType(change);
  
      return change;
    }
docs: Creates a <code>Change</code> object for a given key. Note that
  only the conflict attributes of the change (i.e.
  conflicting/non-conflicting, acceptable/not acceptable,
  to be accepted/not to be accepted and the values to be accepted)
  are <b>not</b> set. Use
  {@link ChangesAnalyzer#setConflictAttributes(Change)} for that
  purpose.
  @param key the key
  @return a <code>Change</code> object