@Override
 protected void getStateImpl(@NotNull Element element) {
   mySdkPointer.toXml(element);
   for (String variable : myVariables) {
     element.addContent(new Element("define").setText(variable));
   }
 }
  @Override
  public void commit(@NotNull S mutableModuleExtension) {
    super.commit(mutableModuleExtension);

    mySdkPointer.set(mutableModuleExtension.getInheritableSdk());
    myVariables.clear();
    myVariables.addAll(mutableModuleExtension.myVariables);
  }
  @RequiredReadAction
  @Override
  protected void loadStateImpl(@NotNull Element element) {
    mySdkPointer.fromXml(element);

    for (Element defineElement : element.getChildren("define")) {
      myVariables.add(defineElement.getText());
    }
  }
 public boolean isModifiedImpl(S ex) {
   return myIsEnabled != ex.isEnabled()
       || !mySdkPointer.equals(ex.getInheritableSdk())
       || !myVariables.equals(ex.getVariables());
 }