Skip to content

Commit 9a92781

Browse files
committed
v1.2.1 -> New XyzConstants file
1 parent faef07c commit 9a92781

File tree

10 files changed

+59
-17
lines changed

10 files changed

+59
-17
lines changed

CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
Prefs Changelog
22
===
33

4-
v1.2.0 (2017-08-26)
4+
v1.2.1 (2017-08-26)
55
---
66
- Added `setXyz` in addition to `putXyz` methods, to improve Kotlin interop.
7+
- New `XyzConstants` file generated with key names and default values.
78

89
v1.1.1 (2017-01-08)
910
---

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ Usage
1919
```groovy
2020
dependencies {
2121
/* ... */
22-
annotationProcessor 'org.jraf:prefs-compiler:1.2.0'
23-
compile 'org.jraf:prefs:1.2.0'
22+
annotationProcessor 'org.jraf:prefs-compiler:1.2.1'
23+
compile 'org.jraf:prefs:1.2.1'
2424
}
2525
```
2626

prefs-compiler/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ sourceCompatibility = 1.6
55
targetCompatibility = 1.6
66

77
group = 'org.jraf'
8-
version = '1.2.0'
8+
version = '1.2.1'
99

1010
javadoc.failOnError = false
1111

prefs-compiler/src/main/java/org/jraf/android/prefs/compiler/Pref.java

+4
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ public String getFieldName() {
4343
return mFieldName;
4444
}
4545

46+
public String getFieldNameUpperCase() {
47+
return mFieldName.replaceAll("([A-Z]+)", "\\_$1").toUpperCase();
48+
}
49+
4650
public String getPrefName() {
4751
return mPrefName;
4852
}

prefs-compiler/src/main/java/org/jraf/android/prefs/compiler/PrefsProcessor.java

+14-4
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
public class PrefsProcessor extends AbstractProcessor {
5858
private static final String SUFFIX_PREF_WRAPPER = "Prefs";
5959
private static final String SUFFIX_EDITOR_WRAPPER = "EditorWrapper";
60+
private static final String SUFFIX_CONSTANTS = "Constants";
6061

6162
private Configuration mFreemarkerConfiguration;
6263

@@ -146,25 +147,34 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
146147

147148
JavaFileObject javaFileObject = null;
148149
try {
149-
// SharedPreferencesWrapper
150-
javaFileObject = processingEnv.getFiler().createSourceFile(classElement.getQualifiedName() + SUFFIX_PREF_WRAPPER);
151-
Template template = getFreemarkerConfiguration().getTemplate("prefwrapper.ftl");
152150
args.put("package", packageElement.getQualifiedName());
153151
args.put("comment", classComment);
154152
args.put("prefWrapperClassName", classElement.getSimpleName() + SUFFIX_PREF_WRAPPER);
155153
args.put("editorWrapperClassName", classElement.getSimpleName() + SUFFIX_EDITOR_WRAPPER);
154+
args.put("constantsClassName", classElement.getSimpleName() + SUFFIX_CONSTANTS);
156155
args.put("prefList", prefList);
156+
157+
// SharedPreferencesWrapper
158+
javaFileObject = processingEnv.getFiler().createSourceFile(classElement.getQualifiedName() + SUFFIX_PREF_WRAPPER);
159+
Template template = getFreemarkerConfiguration().getTemplate("prefwrapper.ftl");
157160
Writer writer = javaFileObject.openWriter();
158161
template.process(args, writer);
159162
IOUtils.closeQuietly(writer);
160163

161164
// EditorWrapper
162-
javaFileObject = processingEnv.getFiler().createSourceFile(classElement.getQualifiedName() + "EditorWrapper");
165+
javaFileObject = processingEnv.getFiler().createSourceFile(classElement.getQualifiedName() + SUFFIX_EDITOR_WRAPPER);
163166
template = getFreemarkerConfiguration().getTemplate("editorwrapper.ftl");
164167
writer = javaFileObject.openWriter();
165168
template.process(args, writer);
166169
IOUtils.closeQuietly(writer);
167170

171+
// Constants
172+
javaFileObject = processingEnv.getFiler().createSourceFile(classElement.getQualifiedName() + SUFFIX_CONSTANTS);
173+
template = getFreemarkerConfiguration().getTemplate("constants.ftl");
174+
writer = javaFileObject.openWriter();
175+
template.process(args, writer);
176+
IOUtils.closeQuietly(writer);
177+
168178
} catch (Exception e) {
169179
processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR,
170180
"En error occurred while generating Prefs code " + e.getClass() + e.getMessage(), element);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package ${package};
2+
3+
<#if comment??>
4+
/**
5+
* ${comment?trim}
6+
*/
7+
</#if>
8+
public class ${constantsClassName} {
9+
<#list prefList as pref>
10+
11+
12+
//================================================================================
13+
// region ${pref.fieldName?cap_first}
14+
//================================================================================
15+
16+
<#if pref.comment??>
17+
/**
18+
* ${pref.comment?trim}
19+
*/
20+
</#if><#t>
21+
public static final String KEY_${pref.fieldNameUpperCase} = "${pref.prefName}";
22+
23+
public static final ${pref.type.simpleName} DEFAULT_${pref.fieldNameUpperCase} = ${pref.defaultValue};
24+
25+
// endregion
26+
</#list>
27+
}

prefs-compiler/src/main/resources/org/jraf/android/prefs/compiler/editorwrapper.ftl

+3-3
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ public class ${editorWrapperClassName} extends EditorWrapper {
3131
</#if><#t>
3232
public ${editorWrapperClassName} put${pref.fieldName?cap_first}(${pref.type.simpleName} ${pref.fieldName}) {
3333
if (${pref.fieldName} == null) {
34-
remove("${pref.prefName}");
34+
remove(${constantsClassName}.KEY_${pref.fieldNameUpperCase});
3535
} else {
36-
put${pref.type.methodName}("${pref.prefName}", ${pref.fieldName});
36+
put${pref.type.methodName}(${constantsClassName}.KEY_${pref.fieldNameUpperCase}, ${pref.fieldName});
3737
}
3838
return this;
3939
}
@@ -53,7 +53,7 @@ public class ${editorWrapperClassName} extends EditorWrapper {
5353
*/
5454
</#if><#t>
5555
public ${editorWrapperClassName} remove${pref.fieldName?cap_first}() {
56-
remove("${pref.prefName}");
56+
remove(${constantsClassName}.KEY_${pref.fieldNameUpperCase});
5757
return this;
5858
}
5959

prefs-compiler/src/main/resources/org/jraf/android/prefs/compiler/prefwrapper.ftl

+4-4
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ public class ${prefWrapperClassName} extends SharedPreferencesWrapper {
7676
@Nullable
7777
</#if><#t>
7878
public ${pref.type.simpleName} <#if pref.type == "BOOLEAN">is<#else>get</#if>${pref.fieldName?cap_first}() {
79-
if (!contains("${pref.prefName}")) return ${pref.defaultValue};
80-
return get${pref.type.methodName}("${pref.prefName}", ${pref.type.defaultValue});
79+
if (!contains(${constantsClassName}.KEY_${pref.fieldNameUpperCase})) return ${constantsClassName}.DEFAULT_${pref.fieldNameUpperCase};
80+
return get${pref.type.methodName}(${constantsClassName}.KEY_${pref.fieldNameUpperCase}, ${pref.type.defaultValue});
8181
}
8282

8383
<#if pref.comment??>
@@ -86,7 +86,7 @@ public class ${prefWrapperClassName} extends SharedPreferencesWrapper {
8686
*/
8787
</#if><#t>
8888
public boolean contains${pref.fieldName?cap_first}() {
89-
return contains("${pref.prefName}");
89+
return contains(${constantsClassName}.KEY_${pref.fieldNameUpperCase});
9090
}
9191

9292
<#if pref.comment??>
@@ -114,7 +114,7 @@ public class ${prefWrapperClassName} extends SharedPreferencesWrapper {
114114
*/
115115
</#if><#t>
116116
public ${prefWrapperClassName} remove${pref.fieldName?cap_first}() {
117-
edit().remove("${pref.prefName}").apply();
117+
edit().remove(${constantsClassName}.KEY_${pref.fieldNameUpperCase}).apply();
118118
return this;
119119
}
120120

prefs/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ sourceCompatibility = 1.6
55
targetCompatibility = 1.6
66

77
group = 'org.jraf'
8-
version = '1.2.0'
8+
version = '1.2.1'
99

1010
javadoc.failOnError = false
1111

sample/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ android {
99
minSdkVersion 14
1010
targetSdkVersion 26
1111
versionCode 1
12-
versionName '1.2.0'
12+
versionName '1.2.1'
1313
}
1414
buildTypes {
1515
release {

0 commit comments

Comments
 (0)