public String toStringAllDetails() {
      String info = (this.type + "-section named '" + this.name + "', id (" + this.reference
            + ") on level: " + level
            + "; full path: " + this.getPath() + "\n\t- ");
      info += ("definition: \t" + this.definition + "\n");
      info += ("\n\t- repository: \t" + this.repositoryURL + "\n\t- mapping: \t" + this.mapping);
      info += ("\n\t- ");
      if (this.subsections != null && this.sectionCount() != 0 && this.getSections() != null) {
         info += (this.sectionCount() + " subsection(s) named: ");
         for (String name : this.subsectionsNames()) {
            info += name + ", ";
         }
         info = info.substring(0, info.lastIndexOf(", "));
      } else {
         info += ("no subsections");
      }
      info += ("\n\t- ");

      if (this.properties != null && this.propertyCount() != 0 && this.getProperties() != null) {
         info += (this.propertyCount() + " propertie(s) named: ");
         for (String name : this.getPropertyNames()) {
            info += name + ", ";
         }
         info = info.substring(0, info.lastIndexOf(", "));
      } else {
         info += ("no properties appended");
      }
      return info;
   }