diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d374482 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# Changelog + +## Version 1.1.0 + + - Added more methods for direct access in the Registry.java + - Added the possibility to remove values (forgot that in the last release) + - Added the possibility to export and import keys + - Added the possibility to reload values + +## Version 1.0.0 + + - Release \ No newline at end of file diff --git a/README.md b/README.md index 297326f..e47821f 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,20 @@ public static void main(String[] args) { } ``` +# Changelog + +## Version 1.1.0 + + - Added more methods for direct access in the Registry.java + - Added the possibility to remove values (forgot that in the last release) + - Added the possibility to export and import keys + - Added the possibility to reload values + +## Version 1.0.0 + + - Release + # Links -See the [download page]() -See the [online documentation]() \ No newline at end of file +See the [download page](https://github.com/RalleYTN/SimpleRegistry/releases) +See the [changelog](https://github.com/RalleYTN/SimpleRegistry/blob/master/CHANGELOG.md) +See the [online documentation](https://ralleytn.github.io/SimpleRegistry/) \ No newline at end of file diff --git a/docs/allclasses-frame.html b/docs/allclasses-frame.html index 75fcd99..54c24c0 100644 --- a/docs/allclasses-frame.html +++ b/docs/allclasses-frame.html @@ -2,9 +2,9 @@ - + All Classes - + @@ -14,6 +14,7 @@

All Classes

diff --git a/docs/allclasses-noframe.html b/docs/allclasses-noframe.html index f628741..a768111 100644 --- a/docs/allclasses-noframe.html +++ b/docs/allclasses-noframe.html @@ -2,9 +2,9 @@ - + All Classes - + @@ -14,6 +14,7 @@

All Classes

diff --git a/docs/constant-values.html b/docs/constant-values.html index e03e21a..28ee791 100644 --- a/docs/constant-values.html +++ b/docs/constant-values.html @@ -2,9 +2,9 @@ - + Constant Field Values - + diff --git a/docs/de/ralleytn/simple/registry/Key.html b/docs/de/ralleytn/simple/registry/Key.html index 734a6dd..693aa2d 100644 --- a/docs/de/ralleytn/simple/registry/Key.html +++ b/docs/de/ralleytn/simple/registry/Key.html @@ -2,9 +2,9 @@ - + Key - + @@ -18,7 +18,7 @@ catch(err) { } //--> -var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10}; +var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; @@ -106,16 +106,21 @@

Class Key

+ +static void +Registry.setValue(java.lang.String path, + java.lang.String name, + Value.Type type, + char seperator, + java.lang.String rawValue) +
Sets a value of a registry key.
+ + void Key.setValue(java.lang.String name, diff --git a/docs/de/ralleytn/simple/registry/class-use/Value.html b/docs/de/ralleytn/simple/registry/class-use/Value.html index ad942da..b7f2cc0 100644 --- a/docs/de/ralleytn/simple/registry/class-use/Value.html +++ b/docs/de/ralleytn/simple/registry/class-use/Value.html @@ -2,9 +2,9 @@ - + Uses of Class de.ralleytn.simple.registry.Value - + @@ -91,6 +91,11 @@

Uses of Key.getDefaultValue()  +static Value +Registry.getValue(java.lang.String path, + java.lang.String name)  + + Value Key.getValueByName(java.lang.String name)  diff --git a/docs/de/ralleytn/simple/registry/package-frame.html b/docs/de/ralleytn/simple/registry/package-frame.html index b94372c..9be77af 100644 --- a/docs/de/ralleytn/simple/registry/package-frame.html +++ b/docs/de/ralleytn/simple/registry/package-frame.html @@ -2,15 +2,19 @@ - + de.ralleytn.simple.registry - +

de.ralleytn.simple.registry

+

Interfaces

+

Classes

  • Key
  • diff --git a/docs/de/ralleytn/simple/registry/package-summary.html b/docs/de/ralleytn/simple/registry/package-summary.html index 865a80c..fa9e685 100644 --- a/docs/de/ralleytn/simple/registry/package-summary.html +++ b/docs/de/ralleytn/simple/registry/package-summary.html @@ -2,9 +2,9 @@ - + de.ralleytn.simple.registry - + @@ -74,6 +74,23 @@

    Package de.ralleytn.simple.registry

    • + + + + + + + + + + + + +
      Interface Summary 
      InterfaceDescription
      Reloadable +
      Marks a class as reloadable.
      +
      +
    • +
    • diff --git a/docs/de/ralleytn/simple/registry/package-tree.html b/docs/de/ralleytn/simple/registry/package-tree.html index aaca4ae..1488722 100644 --- a/docs/de/ralleytn/simple/registry/package-tree.html +++ b/docs/de/ralleytn/simple/registry/package-tree.html @@ -2,9 +2,9 @@ - +de.ralleytn.simple.registry Class Hierarchy - + @@ -76,12 +76,16 @@

      Class Hierarchy

      • java.lang.Object
          -
        • de.ralleytn.simple.registry.Key
        • +
        • de.ralleytn.simple.registry.Key (implements de.ralleytn.simple.registry.Reloadable)
        • de.ralleytn.simple.registry.Registry
        • -
        • de.ralleytn.simple.registry.Value
        • +
        • de.ralleytn.simple.registry.Value (implements de.ralleytn.simple.registry.Reloadable)
      +

      Interface Hierarchy

      +

      Enum Hierarchy

      • java.lang.Object diff --git a/docs/de/ralleytn/simple/registry/package-use.html b/docs/de/ralleytn/simple/registry/package-use.html index 9631655..74198d8 100644 --- a/docs/de/ralleytn/simple/registry/package-use.html +++ b/docs/de/ralleytn/simple/registry/package-use.html @@ -2,9 +2,9 @@ - + Uses of Package de.ralleytn.simple.registry - + @@ -88,11 +88,16 @@

        Uses of Pa

      + + + - + diff --git a/docs/deprecated-list.html b/docs/deprecated-list.html index 3d56c7f..bc78ed5 100644 --- a/docs/deprecated-list.html +++ b/docs/deprecated-list.html @@ -2,9 +2,9 @@ - +Deprecated List - + diff --git a/docs/help-doc.html b/docs/help-doc.html index ef2d235..2959e9a 100644 --- a/docs/help-doc.html +++ b/docs/help-doc.html @@ -2,9 +2,9 @@ - +API Help - + diff --git a/docs/index-files/index-1.html b/docs/index-files/index-1.html index 49217dd..7dc1712 100644 --- a/docs/index-files/index-1.html +++ b/docs/index-files/index-1.html @@ -2,9 +2,9 @@ - +D-Index - + @@ -68,19 +68,47 @@ -
      D G H K M R S T V  +
      D E G H I K R S T V 

      D

      de.ralleytn.simple.registry - package de.ralleytn.simple.registry
       
      +
      delete() - Method in class de.ralleytn.simple.registry.Key
      +
      +
      Deletes the key.
      +
      +
      deleteAllValues() - Method in class de.ralleytn.simple.registry.Key
      +
      +
      Deletes all values.
      +
      +
      deleteAllValues(String) - Static method in class de.ralleytn.simple.registry.Registry
      +
      +
      Deletes all values of a registry key.
      +
      +
      deleteDefaultValue() - Method in class de.ralleytn.simple.registry.Key
      +
      +
      Deletes the default value.
      +
      +
      deleteDefaultValue(String) - Static method in class de.ralleytn.simple.registry.Registry
      +
      +
      Deletes the default value of a registry key.
      +
      deleteKey(String) - Static method in class de.ralleytn.simple.registry.Registry
      Deletes a key.
      +
      deleteValue(String) - Method in class de.ralleytn.simple.registry.Key
      +
      +
      Deletes the value with the specified name.
      +
      +
      deleteValue(String, String) - Static method in class de.ralleytn.simple.registry.Registry
      +
      +
      Deletes a value from a registry key.
      +
      -D G H K M R S T V 
      +D E G H I K R S T V 
      diff --git a/docs/index-files/index-10.html b/docs/index-files/index-10.html new file mode 100644 index 0000000..a85d7fc --- /dev/null +++ b/docs/index-files/index-10.html @@ -0,0 +1,142 @@ + + + + + +V-Index + + + + + + + + +
      + + + + + + + +
      + + +
      D E G H I K R S T V  + + +

      V

      +
      +
      Value - Class in de.ralleytn.simple.registry
      +
      +
      Represents a value of a registry key.
      +
      +
      Value.Type - Enum in de.ralleytn.simple.registry
      +
      +
      Represents the data type of a value in a registry key.
      +
      +
      valueOf(String) - Static method in enum de.ralleytn.simple.registry.Value.Type
      +
      +
      Returns the enum constant of this type with the specified name.
      +
      +
      values() - Static method in enum de.ralleytn.simple.registry.Value.Type
      +
      +
      Returns an array containing the constants of this enum type, in +the order they are declared.
      +
      +
      +D E G H I K R S T V 
      + +
      + + + + + + + +
      + + + + diff --git a/docs/index-files/index-2.html b/docs/index-files/index-2.html index fca7d3c..e10d42a 100644 --- a/docs/index-files/index-2.html +++ b/docs/index-files/index-2.html @@ -2,9 +2,9 @@ - -G-Index - + +E-Index + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -80,12 +80,16 @@

      Class Hierarchy

      • java.lang.Object
          -
        • de.ralleytn.simple.registry.Key
        • +
        • de.ralleytn.simple.registry.Key (implements de.ralleytn.simple.registry.Reloadable)
        • de.ralleytn.simple.registry.Registry
        • -
        • de.ralleytn.simple.registry.Value
        • +
        • de.ralleytn.simple.registry.Value (implements de.ralleytn.simple.registry.Reloadable)
      +

      Interface Hierarchy

      +

      Enum Hierarchy

      • java.lang.Object diff --git a/src/de/ralleytn/simple/registry/Key.java b/src/de/ralleytn/simple/registry/Key.java index cac3f86..75c06f8 100644 --- a/src/de/ralleytn/simple/registry/Key.java +++ b/src/de/ralleytn/simple/registry/Key.java @@ -24,6 +24,7 @@ package de.ralleytn.simple.registry; +import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -31,10 +32,10 @@ /** * Represents a key in the registry. * @author Ralph Niemitz/RalleYTN(ralph.niemitz@gmx.de) - * @version 1.0.0 + * @version 1.1.0 * @since 1.0.0 */ -public final class Key { +public final class Key implements Reloadable { private List childs; private String parent; @@ -53,12 +54,65 @@ public final class Key { this.childs = childs; } + /** + * Deletes the value with the specified name. + * @param name name of the value you wish to delete + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public final void deleteValue(String name) throws IOException { + + Registry.deleteValue(this.path, name); + } + + /** + * Deletes the default value. + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public final void deleteDefaultValue() throws IOException { + + Registry.deleteDefaultValue(this.path); + } + + /** + * Deletes all values. + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public final void deleteAllValues() throws IOException { + + Registry.deleteAllValues(this.path); + } + + /** + * Exports the key to the specified file. + * @param exportFile target of the export + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public final void export(File exportFile) throws IOException { + + Registry.exportKey(this.path, exportFile); + } + + /** + * Deletes the key. + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public final void delete() throws IOException { + + Registry.deleteKey(this.path); + } + /** * Reloads the key. Should be called after setting or deleting values. * @throws IOException if an error occurs * @since 1.0.0 */ - public void reload() throws IOException { + @Override + public final void reload() throws IOException { Key key = Registry.getKey(this.path); @@ -78,9 +132,9 @@ public void reload() throws IOException { * @throws IOException if an error occurs * @since 1.0.0 */ - public void setDefaultValue(Value.Type type, char seperator, String rawValue) throws IOException { + public final void setDefaultValue(Value.Type type, char seperator, String rawValue) throws IOException { - Registry.exec("reg add \"" + path + "\" /ve /t " + type.name() + (type == Value.Type.REG_MULTI_SZ ? " /s " + seperator : "") + " /d \"" + rawValue + "\" /f"); + Registry.setDeafultValue(this.path, type, seperator, rawValue); } /** @@ -92,16 +146,16 @@ public void setDefaultValue(Value.Type type, char seperator, String rawValue) th * @throws IOException if an error occurs * @since 1.0.0 */ - public void setValue(String name, Value.Type type, char seperator, String rawValue) throws IOException { + public final void setValue(String name, Value.Type type, char seperator, String rawValue) throws IOException { - Registry.exec("reg add \"" + path + "\" /v " + name + " /t " + type.name() + (type == Value.Type.REG_MULTI_SZ ? " /s " + seperator : "") + " /d \"" + rawValue + "\" /f"); + Registry.setValue(this.path, name, type, seperator, rawValue); } /** * @return the default value * @since 1.0.0 */ - public Value getDefaultValue() { + public final Value getDefaultValue() { return this.defaultValue; } @@ -110,7 +164,7 @@ public Value getDefaultValue() { * @return this key's path * @since 1.0.0 */ - public String getPath() { + public final String getPath() { return this.path; } @@ -119,7 +173,7 @@ public String getPath() { * @return the name of this key * @since 1.0.0 */ - public String getName() { + public final String getName() { return this.name; } @@ -130,7 +184,7 @@ public String getName() { * @throws IOException if an error occurs * @since 1.0.0 */ - public Key getChild(String name) throws IOException { + public final Key getChild(String name) throws IOException { for(String child : this.childs) { @@ -150,7 +204,7 @@ public Key getChild(String name) throws IOException { * @throws IOException if an error occurs * @since 1.0.0 */ - public List getChilds() throws IOException { + public final List getChilds() throws IOException { List list = new ArrayList(); @@ -167,7 +221,7 @@ public List getChilds() throws IOException { * @throws IOException if an error occurs * @since 1.0.0 */ - public Key getParent() throws IOException { + public final Key getParent() throws IOException { return Registry.getKey(this.parent); } @@ -176,7 +230,7 @@ public Key getParent() throws IOException { * @return all values of this key * @since 1.0.0 */ - public List getValues() { + public final List getValues() { return Key.clone(this.values); } @@ -186,7 +240,7 @@ public List getValues() { * @return the value if the specified name, or {@code null} if no value was found; case insensitive * @since 1.0.0 */ - public Value getValueByName(String name) { + public final Value getValueByName(String name) { for(Value value : values) { @@ -200,7 +254,7 @@ public Value getValueByName(String name) { } @Override - public String toString() { + public final String toString() { StringBuilder builder = new StringBuilder(); builder.append("path=").append(this.path).append(';'); diff --git a/src/de/ralleytn/simple/registry/Registry.java b/src/de/ralleytn/simple/registry/Registry.java index b07028f..499ac64 100644 --- a/src/de/ralleytn/simple/registry/Registry.java +++ b/src/de/ralleytn/simple/registry/Registry.java @@ -25,6 +25,7 @@ package de.ralleytn.simple.registry; import java.io.BufferedReader; +import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; @@ -34,7 +35,7 @@ /** * Provides access to the Windows registry file. * @author Ralph Niemitz/RalleYTN(ralph.niemitz@gmx.de) - * @version 1.0.0 + * @version 1.1.0 * @since 1.0.0 */ public final class Registry { @@ -48,6 +49,115 @@ public final class Registry { private Registry() {} + /** + * Deletes all values of a registry key. + * @param path path of the key + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public static final void deleteAllValues(String path) throws IOException { + + Registry.exec("reg delete \"" + path + "\" /va /f"); + } + + /** + * Deletes the default value of a registry key. + * @param path path of the key + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public static final void deleteDefaultValue(String path) throws IOException { + + Registry.exec("reg delete \"" + path + "\" /ve /f"); + } + + /** + * Deletes a value from a registry key. + * @param path path of the key + * @param name name of the value that should be deleted + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public static final void deleteValue(String path, String name) throws IOException { + + Registry.exec("reg delete \"" + path + "\" /v " + name + " /f"); + } + + /** + * Sets a value of a registry key. + * @param path path of the key + * @param name name of the value + * @param type the data type + * @param seperator only important when the data type is {@linkplain Value.Type#REG_MULTI_SZ}; specifies at which character the string should be split; some characters do not work as seperator and simply do nothing like '|' for instance + * @param rawValue the value data + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public static final void setValue(String path, String name, Value.Type type, char seperator, String rawValue) throws IOException { + + Registry.exec("reg add \"" + path + "\" /v " + name + " /t " + type.name() + (type == Value.Type.REG_MULTI_SZ ? " /s " + seperator : "") + " /d \"" + rawValue + "\" /f"); + } + + /** + * Sets the default value of a registry key. + * @param path path of the key + * @param type the data type + * @param seperator only important when the data type is {@linkplain Value.Type#REG_MULTI_SZ}; specifies at which character the string should be split; some characters do not work as seperator and simply do nothing like '|' for instance + * @param rawValue the value data + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public static final void setDeafultValue(String path, Value.Type type, char seperator, String rawValue) throws IOException { + + Registry.exec("reg add \"" + path + "\" /ve /t " + type.name() + (type == Value.Type.REG_MULTI_SZ ? " /s " + seperator : "") + " /d \"" + rawValue + "\" /f"); + } + + /** + * @param path path of the key + * @param name name of the value + * @return a value + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public static final Value getValue(String path, String name) throws IOException { + + String result = Registry.exec("reg query \"" + path + "\" /v " + name); + + for(String line : result.split("\n")) { + + if(line.startsWith(" >")) { + + String[] valueAttribs = line.substring(2).split("\\|"); + return new Value(valueAttribs[0], Value.Type.getTypeByName(valueAttribs[1]), valueAttribs.length == 2 ? null : valueAttribs[2], path); + } + } + + return null; + } + + /** + * Imports keys and values from a file. + * @param file file containing the data to import + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public static final void importFile(File file) throws IOException { + + Registry.exec("reg import \"" + file.getAbsolutePath() + "\""); + } + + /** + * Exports a registry key to a specified file. + * @param path the key that should be exported + * @param exportFile the export target + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public static final void exportKey(String path, File exportFile) throws IOException { + + Registry.exec("reg export \"" + path + "\" \"" + exportFile.getAbsolutePath() + "\" /y"); + } + /** * Deletes a key. It will be deleted without asking! * @param path path of the key @@ -130,7 +240,7 @@ public static final Key getKey(String path) throws IOException { String[] valueAttribs = line.substring(2).split("\\|"); - values.add(new Value(valueAttribs[0], Value.Type.getTypeByName(valueAttribs[1]), valueAttribs.length == 2 ? null : valueAttribs[2])); + values.add(new Value(valueAttribs[0], Value.Type.getTypeByName(valueAttribs[1]), valueAttribs.length == 2 ? null : valueAttribs[2], path)); } else if(!line.equals(path)){ @@ -145,7 +255,7 @@ public static final Key getKey(String path) throws IOException { if(line.startsWith(" >")) { String[] valueAttribs = line.substring(2).split("\\|"); - defaultValue = new Value(valueAttribs[0], Value.Type.getTypeByName(valueAttribs[1]), valueAttribs.length == 2 ? null : valueAttribs[2]); + defaultValue = new Value(valueAttribs[0], Value.Type.getTypeByName(valueAttribs[1]), valueAttribs.length == 2 ? null : valueAttribs[2], path); } } @@ -155,7 +265,7 @@ public static final Key getKey(String path) throws IOException { return null; } - static final String exec(String cmd) throws IOException { + private static final String exec(String cmd) throws IOException { Process process = Runtime.getRuntime().exec("cmd /c " + cmd); StringBuilder builder = new StringBuilder(); @@ -188,7 +298,7 @@ static final String exec(String cmd) throws IOException { } } - if(process.exitValue() == 1) { + if(process.exitValue() != 0) { try(BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream(), StandardCharsets.UTF_8))) { diff --git a/src/de/ralleytn/simple/registry/Reloadable.java b/src/de/ralleytn/simple/registry/Reloadable.java new file mode 100644 index 0000000..e4c33b9 --- /dev/null +++ b/src/de/ralleytn/simple/registry/Reloadable.java @@ -0,0 +1,19 @@ +package de.ralleytn.simple.registry; + +import java.io.IOException; + +/** + * Marks a class as reloadable. + * @author Ralph Niemitz/RalleYTN(ralph.niemitz@gmx.de) + * @version 1.1.0 + * @since 1.1.0 + */ +public interface Reloadable { + + /** + * Reloads the object. + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public void reload() throws IOException; +} diff --git a/src/de/ralleytn/simple/registry/Value.java b/src/de/ralleytn/simple/registry/Value.java index 2d6fdd9..86e2159 100644 --- a/src/de/ralleytn/simple/registry/Value.java +++ b/src/de/ralleytn/simple/registry/Value.java @@ -34,22 +34,36 @@ /** * Represents a value of a registry key. * @author Ralph Niemitz/RalleYTN(ralph.niemitz@gmx.de) - * @version 1.0.0 + * @version 1.1.0 * @since 1.0.0 */ -public final class Value { +public final class Value implements Reloadable { - private final String name; - private final Type type; - private final String rawValue; - private final Object value; + private String name; + private String path; + private Type type; + private String rawValue; + private Object value; - Value(String name, Type type, String rawValue) { + Value(String name, Type type, String rawValue, String path) { this.name = name; this.type = type; this.rawValue = rawValue; this.value = type.parseValue(rawValue); + this.path = path; + } + + @Override + public final void reload() throws IOException { + + Value value = Registry.getValue(this.path, this.name); + + this.name = value.name; + this.path = value.path; + this.type = value.type; + this.rawValue = value.rawValue; + this.value = value; } /** @@ -79,6 +93,16 @@ public final String getRawValue() { return this.rawValue; } + /** + * @return the registry key to which this value belongs + * @throws IOException if an error occurs + * @since 1.1.0 + */ + public final Key getKey() throws IOException { + + return Registry.getKey(this.path); + } + /** *
          *
        • REG_BINARY = byte[]
        • @@ -99,7 +123,7 @@ public final Object getValue() { } @Override - public String toString() { + public final String toString() { StringBuilder builder = new StringBuilder(); builder.append(this.name); @@ -126,7 +150,7 @@ public static enum Type { REG_BINARY { @Override - protected Object parseValue(String toParse) { + protected final Object parseValue(String toParse) { byte[] value = null; @@ -155,7 +179,7 @@ protected Object parseValue(String toParse) { REG_DWORD { @Override - protected Object parseValue(String toParse) { + protected final Object parseValue(String toParse) { return Integer.parseInt(toParse.substring(2), 16); } @@ -168,7 +192,7 @@ protected Object parseValue(String toParse) { REG_QWORD { @Override - protected Object parseValue(String toParse) { + protected final Object parseValue(String toParse) { return Long.parseLong(toParse.substring(2), 16); } @@ -181,7 +205,7 @@ protected Object parseValue(String toParse) { REG_SZ { @Override - protected Object parseValue(String toParse) { + protected final Object parseValue(String toParse) { return toParse; } @@ -194,7 +218,7 @@ protected Object parseValue(String toParse) { REG_EXPAND_SZ { @Override - protected Object parseValue(String toParse) { + protected final Object parseValue(String toParse) { String value = toParse; @@ -214,7 +238,7 @@ protected Object parseValue(String toParse) { REG_MULTI_SZ { @Override - protected Object parseValue(String toParse) { + protected final Object parseValue(String toParse) { List value = new ArrayList<>(); @@ -239,7 +263,7 @@ protected Object parseValue(String toParse) { REG_FULL_RESOURCE_DESCRIPTOR { @Override - protected Object parseValue(String toParse) { + protected final Object parseValue(String toParse) { return toParse; } @@ -252,7 +276,7 @@ protected Object parseValue(String toParse) { REG_NONE { @Override - protected Object parseValue(String toParse) { + protected final Object parseValue(String toParse) { return toParse; }
      Class Summary 
      Reloadable +
      Marks a class as reloadable.
      +
      Value
      Represents a value of a registry key.
      Value.Type
      Represents the data type of a value in a registry key.