Skip to content

Commit 9f9ebeb

Browse files
committed
Removed SQLiteTypes enum for the sake of performance and Added SQLiteJavaTypes class
1 parent 085f0db commit 9f9ebeb

10 files changed

Lines changed: 55 additions & 73 deletions

File tree

app/src/main/java/com/demoapp/MainActivity.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ protected void onCreate(Bundle savedInstanceState) {
8585

8686
//Creating model
8787
CarModel carModel = new CarModel();
88+
carModel.id = 2;
8889
carModel.releaseDate = "12-12-12";
8990
carModel.model = "some model";
9091
carModel.name = "some name";
@@ -106,6 +107,9 @@ protected void onCreate(Bundle savedInstanceState) {
106107
//Inserting to the table
107108
carModel.insert();
108109

110+
carModel.name = "Amiraslan";
111+
long sdd = carModel.update();
112+
109113
CityModel cityModel = new CityModel();
110114
cityModel.id = 1;
111115
cityModel.num_of_roads = 2;

app/src/main/java/com/demoapp/Models/UserModel.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.sqlitemanager.Annotations.PrimaryKey;
77
import com.sqlitemanager.Annotations.TableName;
88
import com.sqlitemanager.SQLiteManager;
9-
import com.sqlitemanager.SQLiteTypes;
109
import com.sqlitemanager.Tableable;
1110

1211
/**

app/src/main/res/layout/activity_main.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
xmlns:android="http://schemas.android.com/apk/res/android">
55

66
<TextView
7+
android:id="@+id/myTextView"
78
android:layout_width="wrap_content"
89
android:layout_height="wrap_content"
910
android:text="@string/my_name"

sqlitemanager/src/main/java/com/sqlitemanager/AbstractTableModel.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77
public class AbstractTableModel implements Tableable {
88

99
public long insert() {
10-
return SQLiteManager.getInstance().insert(this);
10+
return SQLiteManager.insert(this);
1111
}
1212

1313
public long update() {
14-
return -1;
14+
return SQLiteManager.update(this);
1515
}
1616

1717
public long delete() {

sqlitemanager/src/main/java/com/sqlitemanager/Annotations/Default.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.sqlitemanager.Annotations;
22

3-
import com.sqlitemanager.SQLiteTypes;
4-
53
import java.lang.annotation.ElementType;
64
import java.lang.annotation.Retention;
75
import java.lang.annotation.RetentionPolicy;

sqlitemanager/src/main/java/com/sqlitemanager/DbPackModels/DefaultModel.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.sqlitemanager.DbPackModels;
22

3-
import com.sqlitemanager.SQLiteTypes;
4-
53
/**
64
* Created by aslan on 7/19/2017.
75
*/
@@ -15,7 +13,7 @@ public class DefaultModel extends ConstraintModel {
1513
public String getConstraintKeyword() {
1614
String keywordMark = "";
1715

18-
if (dataType.equals(SQLiteTypes.STRING.getJavaType()) || dataType.equals(SQLiteTypes.CHAR.getJavaType())) {
16+
if (dataType.equals("String") || dataType.equals("char")) {
1917
keywordMark = "'";
2018
}
2119
return "DEFAULT " + keywordMark + defaultValue + keywordMark + "";
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.sqlitemanager;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
6+
/**
7+
* Created by aslan on 8/13/2017.
8+
*/
9+
10+
public class SQLiteJavaTypes {
11+
private Map<String, String> mapOfTypes;
12+
13+
public SQLiteJavaTypes() {
14+
mapOfTypes = new HashMap<String, String>();
15+
mapOfTypes.put("int", "INTEGER");
16+
mapOfTypes.put("Integer", "INTEGER");
17+
mapOfTypes.put("String", "TEXT");
18+
mapOfTypes.put("double", "DECIMAL(10, 5)");
19+
mapOfTypes.put("Double", "DECIMAL(10, 5)");
20+
mapOfTypes.put("float", "DECIMAL(10, 5)");
21+
mapOfTypes.put("Float", "DECIMAL(10, 5)");
22+
mapOfTypes.put("short", "INTEGER");
23+
mapOfTypes.put("Short", "INTEGER");
24+
mapOfTypes.put("long", "INTEGER");
25+
mapOfTypes.put("Long", "INTEGER");
26+
mapOfTypes.put("char", "TEXT");
27+
mapOfTypes.put("byte", "BLOB");
28+
mapOfTypes.put("Byte", "BLOB");
29+
mapOfTypes.put("boolean", "INTEGER");
30+
mapOfTypes.put("Boolean", "INTEGER");
31+
}
32+
33+
public String getSQLiteType(String javaType) {
34+
return mapOfTypes.get(javaType);
35+
}
36+
37+
}

sqlitemanager/src/main/java/com/sqlitemanager/SQLiteManager.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import java.util.Arrays;
3535
import java.util.Comparator;
3636
import java.util.List;
37+
import java.util.Locale;
3738

3839

3940
/**
@@ -116,7 +117,7 @@ private void prepareCreateTablesQueryStr() {
116117
int index = 0;
117118
for (ColumnModel tableColumnModel : databaseTable.columnModels) {
118119
index++;
119-
query += tableColumnModel.name + " " + SQLiteTypes.findType(tableColumnModel.datatype);
120+
query += tableColumnModel.name + " " + new SQLiteJavaTypes().getSQLiteType(tableColumnModel.datatype);
120121
if (tableColumnModel.hasInlineConstraint) {
121122
for (ConstraintModel constraint : tableColumnModel.constraintModels) {
122123
query += " " + constraint.getConstraintKeyword();
@@ -195,7 +196,7 @@ public int compare(Field field, Field t1) {
195196
if (!((Column) columnName).value().equals(columnDefaultValue)) {
196197
columnAnnotationModel.columnName = ((Column) columnName).value();
197198
}
198-
String simpleNameOfDataType = (foreignKey != null) ? SQLiteTypes.INTEGER_NULLABLE.getJavaType() : column.getType().getSimpleName();
199+
String simpleNameOfDataType = (foreignKey != null) ? "Integer" : column.getType().getSimpleName();
199200
currentColumnModel = new ColumnModel(columnAnnotationModel.columnName, simpleNameOfDataType);
200201
currentColumnModel.hasInlineConstraint = false;
201202

@@ -259,7 +260,7 @@ public int compare(Field field, Field t1) {
259260
prepareCreateTablesQueryStr();
260261
}
261262

262-
public <T extends Tableable> long insert(T tableModel) {
263+
static <T extends Tableable> long insert(T tableModel) {
263264
String name = Utils.getTableName(tableModel.getClass());
264265

265266
ContentValues contentValues = new ContentValues();
@@ -280,7 +281,7 @@ public int compare(Field field, Field t1) {
280281
boolean isForeignKey = field.isAnnotationPresent(ForeignKey.class);
281282

282283
String simpleNameOfDataType = (isForeignKey)
283-
? SQLiteTypes.INTEGER_NULLABLE.getJavaType() : field.getType().getSimpleName();
284+
? "Integer" : field.getType().getSimpleName();
284285

285286
try {
286287
//Todo: Look up for default functionality in integers. It does not work
@@ -703,7 +704,7 @@ public Builder setWillBeUpdated(boolean willBeUpdated) {
703704
}
704705

705706

706-
private static <T extends Tableable> int update(T tableModel) {
707+
static <T extends Tableable> int update(T tableModel) {
707708
SQLiteDatabase writable = sqLiteManager.getWritableDatabase();
708709
String whereClause = null;
709710
String[] whereArgs = null;
@@ -719,7 +720,9 @@ private static <T extends Tableable> int update(T tableModel) {
719720
try {
720721
if (field.isAnnotationPresent(PrimaryKey.class)) {
721722
whereClause = Utils.getMemberColumnName(field) + "=?";
722-
whereArgs = new String[]{field.get(tableModel).toString()};
723+
int idValue = (int) field.get(tableModel);
724+
if (idValue == 0) return -1;
725+
whereArgs = new String[]{String.format(Locale.getDefault(), "%d", idValue)};
723726
}
724727

725728
contentValues.put(colName, field.get(tableModel).toString());

sqlitemanager/src/main/java/com/sqlitemanager/SQLiteTypes.java

Lines changed: 0 additions & 59 deletions
This file was deleted.

sqlitemanager/src/main/java/com/sqlitemanager/Tableable.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ public interface Tableable {
1515
public long delete();
1616

1717
public void fill(Integer id);
18+
1819
}

0 commit comments

Comments
 (0)