aconfig: Java codegen iteration 1

This change includes
    - refactor generated java code to generate
        - Flags.java to support the static API
	- FeatureFlagsImpl.java to support injection API
	- FeatureFlags.java interface

Bug: 279483816
Test: atest aconfig.test aconfig.test.java
Change-Id: If0d4baf317b9174635cd0fff3832ab7091ee52ed
diff --git a/tools/aconfig/templates/FeatureFlagsImpl.java.template b/tools/aconfig/templates/FeatureFlagsImpl.java.template
new file mode 100644
index 0000000..2b031f1
--- /dev/null
+++ b/tools/aconfig/templates/FeatureFlagsImpl.java.template
@@ -0,0 +1,20 @@
+package {package_name};
+{{ if is_read_write }}
+import android.provider.DeviceConfig;
+{{ endif }}
+public final class FeatureFlagsImpl implements FeatureFlags \{
+    {{ for item in class_elements}}
+    @Override
+    public boolean {item.method_name}() \{
+        {{ if item.is_read_write- }}
+        return DeviceConfig.getBoolean(
+            "{item.device_config_namespace}",
+            "{item.device_config_flag}",
+            {item.default_value}
+        );
+        {{ -else- }}
+        return {item.default_value};
+        {{ -endif }}
+    }
+    {{ endfor }}
+}
\ No newline at end of file