Skip to content
This repository was archived by the owner on Feb 11, 2022. It is now read-only.

Commit 314b471

Browse files
committed
Merge pull request #18 from novoda/avoid_keyword_errors
Avoid keyword errors
2 parents 528a9fe + 95f0d1f commit 314b471

7 files changed

Lines changed: 53 additions & 36 deletions

File tree

analyzer/src/main/java/com/novoda/sqlite/StringUtil.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.novoda.sqlite;
22

3+
import java.util.Locale;
34
import java.util.regex.Matcher;
45
import java.util.regex.Pattern;
56

@@ -26,7 +27,7 @@ public static String camelify(String original) {
2627

2728
private static String capitalize(String string) {
2829
if (string.length() > 1) {
29-
return string.substring(0, 1).toUpperCase() + string.substring(1);
30+
return string.substring(0, 1).toUpperCase(Locale.US) + string.substring(1).toLowerCase(Locale.US);
3031
}
3132
return "";
3233
}

analyzer/src/main/java/com/novoda/sqlite/model/Column.java

Lines changed: 10 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@
22

33
import com.novoda.sqlite.StringUtil;
44

5+
import java.util.Locale;
6+
57
public final class Column {
68
private final String name;
79
private final String type;
8-
private boolean nullable;
9-
private DataAffinity affinity;
10+
private final boolean nullable;
11+
private final DataAffinity affinity;
1012

1113
public Column(String name, String type, boolean nullable) {
1214
this.name = name;
1315
this.type = type;
1416
this.nullable = nullable;
15-
this.affinity = computeAffinity(type);
17+
this.affinity = DataAffinity.fromType(type);
1618
}
1719

1820
public String getName() {
@@ -25,9 +27,10 @@ public String getCamelizedName() {
2527

2628
public String getCamelizedSmallName() {
2729
String camel = StringUtil.camelify(name);
28-
if (camel.length() <= 1)
29-
return camel;
30-
return camel.substring(0,1).toLowerCase()+camel.substring(1);
30+
if (camel.length() <= 1) {
31+
return "_" + camel;
32+
}
33+
return "_" + camel.substring(0, 1).toLowerCase(Locale.US) + camel.substring(1);
3134
}
3235

3336
public String getType() {
@@ -43,32 +46,8 @@ public DataAffinity getAffinity() {
4346
}
4447

4548
public boolean isBoolean() {
46-
return affinity == DataAffinity.NUMERIC && type.toLowerCase().contains("bool");
47-
}
48-
49-
/*
50-
* See http://www.sqlite.org/datatype3.html
51-
* section 2.1 Determination of column affinity
52-
*/
53-
private DataAffinity computeAffinity(String type) {
54-
String deftype = type.toLowerCase();
55-
if (deftype.contains("int"))
56-
return DataAffinity.INTEGER;
57-
if (containsOneOf(deftype, "char", "clob", "text"))
58-
return DataAffinity.TEXT;
59-
if (containsOneOf(deftype, "real", "floa", "doub"))
60-
return DataAffinity.REAL;
61-
if (containsOneOf(deftype, "blob") || deftype.equals(""))
62-
return DataAffinity.NONE;
63-
return DataAffinity.NUMERIC;
49+
return affinity == DataAffinity.NUMERIC && type.toLowerCase(Locale.US).contains("bool");
6450
}
6551

66-
private boolean containsOneOf(String toCheck, String... values) {
67-
for (String value : values) {
68-
if (toCheck.contains(value))
69-
return true;
70-
}
71-
return false;
72-
}
7352

7453
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,42 @@
11
package com.novoda.sqlite.model;
22

3+
import java.util.Locale;
4+
35
public enum DataAffinity {
46
TEXT, NUMERIC, INTEGER, REAL, NONE;
7+
8+
public static DataAffinity fromType(String type) {
9+
return computeAffinity(type);
10+
}
11+
12+
/**
13+
* See http://www.sqlite.org/datatype3.html
14+
* section 2.1 Determination of column affinity
15+
*/
16+
private static DataAffinity computeAffinity(String type) {
17+
String deftype = type.toLowerCase(Locale.US);
18+
if (deftype.contains("int")) {
19+
return DataAffinity.INTEGER;
20+
}
21+
if (containsOneOf(deftype, "char", "clob", "text")) {
22+
return DataAffinity.TEXT;
23+
}
24+
if (containsOneOf(deftype, "real", "floa", "doub")) {
25+
return DataAffinity.REAL;
26+
}
27+
if (containsOneOf(deftype, "blob") || deftype.equals("")) {
28+
return DataAffinity.NONE;
29+
}
30+
return DataAffinity.NUMERIC;
31+
}
32+
33+
private static boolean containsOneOf(String toCheck, String... values) {
34+
for (String value : values) {
35+
if (toCheck.contains(value)) {
36+
return true;
37+
}
38+
}
39+
return false;
40+
}
41+
542
}

demo-assethelper/src/main/java/com/example/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void onCreate(Bundle savedInstanceState) {
2323
ListAdapter adapter = new SimpleCursorAdapter(this,
2424
android.R.layout.simple_list_item_2,
2525
employees,
26-
new String[] {Employees.FirstName, Employees.LastName},
26+
new String[] {Employees.Firstname, Employees.Lastname},
2727
new int[] {android.R.id.text1, android.R.id.text2});
2828

2929
getListView().setAdapter(adapter);

demo-assethelper/src/main/java/com/example/MyDatabase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public Cursor getEmployees() {
3131
SQLiteDatabase db = getReadableDatabase();
3232
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
3333

34-
String [] sqlSelect = {"0 _id", Employees.FirstName, Employees.LastName};
34+
String [] sqlSelect = {"0 _id", Employees.Firstname, Employees.Lastname};
3535
String sqlTables = DB.Tables.Employees;
3636

3737
qb.setTables(sqlTables);

demo-auto/src/main/java/com/example/MainActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void onCreate(Bundle savedInstanceState) {
2323
ListAdapter adapter = new SimpleCursorAdapter(this,
2424
android.R.layout.simple_list_item_2,
2525
employees,
26-
new String[] {Employees.FirstName, Employees.LastName},
26+
new String[] {Employees.Firstname, Employees.Lastname},
2727
new int[] {android.R.id.text1, android.R.id.text2});
2828

2929
getListView().setAdapter(adapter);

demo-auto/src/main/java/com/example/MyDatabase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public Cursor getEmployees() {
3131
SQLiteDatabase db = getReadableDatabase();
3232
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
3333

34-
String [] sqlSelect = {"0 _id", Employees.FirstName, Employees.LastName};
34+
String [] sqlSelect = {"0 _id", Employees.Firstname, Employees.Lastname};
3535
String sqlTables = DB.Tables.Employees;
3636

3737
qb.setTables(sqlTables);

0 commit comments

Comments
 (0)