@Override
 public void readExternal(Element element) throws InvalidDataException {
   if (element == null) {
     throw new InvalidDataException("Cant read " + this + ": element is null.");
   }
   XmlSerializer.deserializeInto(myState, (Element) element.getChildren().get(0));
   {
     Element fieldElement = element.getChild("myNode");
     if (fieldElement != null) {
       myNode.readExternal(fieldElement);
     } else {
       if (log.isDebugEnabled()) {
         log.debug("Element " + "myNode" + " in " + this.getClass().getName() + " was null.");
       }
     }
   }
   {
     Element fieldElement = element.getChild("mySettings");
     if (fieldElement != null) {
       mySettings.readExternal(fieldElement);
     } else {
       if (log.isDebugEnabled()) {
         log.debug("Element " + "mySettings" + " in " + this.getClass().getName() + " was null.");
       }
     }
   }
 }
 @Override
 public void writeExternal(Element element) throws WriteExternalException {
   element.addContent(XmlSerializer.serialize(myState));
   {
     Element fieldElement = new Element("myNode");
     myNode.writeExternal(fieldElement);
     element.addContent(fieldElement);
   }
   {
     Element fieldElement = new Element("mySettings");
     mySettings.writeExternal(fieldElement);
     element.addContent(fieldElement);
   }
 }
 @Override
 public PackagingBuildScript_Configuration clone() {
   PackagingBuildScript_Configuration clone = null;
   try {
     clone = createCloneTemplate();
     clone.myState = (PackagingBuildScript_Configuration.MyState) myState.clone();
     clone.myNode = (Node_Configuration) myNode.clone();
     clone.mySettings = (AntSettings_Configuration) mySettings.clone();
     return clone;
   } catch (CloneNotSupportedException ex) {
     if (log.isErrorEnabled()) {
       log.error("", ex);
     }
   }
   return clone;
 }
 public SettingsEditorEx<? extends IPersistentConfiguration> getEditor() {
   return new PackagingBuildScript_Configuration_Editor(
       myNode.getEditor(), mySettings.getEditor());
 }