Skip to content

Commit 3d77e1c

Browse files
authored
Merge pull request #19 from JavaWebStack/maintenance
Maintenance
2 parents e52742b + e7fa451 commit 3d77e1c

36 files changed

+1019
-674
lines changed

.github/workflows/maven-test.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Maven Test
2+
on:
3+
push:
4+
branches:
5+
- '**'
6+
- '!master'
7+
8+
jobs:
9+
test:
10+
runs-on: ubuntu-latest
11+
services:
12+
mysql:
13+
image: mariadb:latest
14+
env:
15+
MYSQL_ALLOW_EMPTY_PASSWORD: yes
16+
MYSQL_DATABASE: test
17+
MYSQL_USER: test
18+
MYSQL_PASSWORD: test
19+
MYSQL_RANDOM_ROOT_PASSWORD: yes
20+
ports:
21+
- 3306
22+
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=2s --health-retries=3
23+
steps:
24+
- uses: actions/checkout@v2
25+
- name: Set up JDK 1.8
26+
uses: actions/setup-java@v1
27+
with:
28+
java-version: 1.8
29+
- name: Test
30+
run: mvn -B test
31+
env:
32+
MYSQL_PORT: ${{ job.services.mysql.ports[3306] }}
33+
MYSQL_USERNAME: test
34+
MYSQL_PASSWORD: test

pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,6 @@
6363
<artifactId>reflections</artifactId>
6464
<version>0.9.12</version>
6565
</dependency>
66-
<dependency>
67-
<groupId>org.javawebstack</groupId>
68-
<artifactId>Injector</artifactId>
69-
<version>1.0-SNAPSHOT</version>
70-
</dependency>
7166
<dependency>
7267
<groupId>org.javawebstack</groupId>
7368
<artifactId>AbstractData</artifactId>

src/main/java/org/javawebstack/orm/Model.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.javawebstack.orm;
22

3-
import org.javawebstack.injector.Injector;
43
import org.javawebstack.orm.query.Query;
54

65
import java.lang.reflect.Field;
@@ -22,7 +21,6 @@ public class Model {
2221
private static final Method refreshMethod;
2322

2423
{
25-
inject();
2624
updateOriginal();
2725
}
2826

@@ -41,6 +39,7 @@ public class Model {
4139
private transient boolean internalEntryExists = false;
4240
private transient final Map<Class<? extends Model>, Object> internalJoinedModels = new HashMap<>();
4341
private transient Map<String, Object> internalOriginalValues = new HashMap<>();
42+
private transient Map<String, Object> internalExtraFields = new HashMap<>();
4443

4544
void internalAddJoinedModel(Class<? extends Model> type, Object entity) {
4645
internalJoinedModels.put(type, entity);
@@ -62,6 +61,14 @@ public Map<String, Object> getFieldValues() {
6261
return values;
6362
}
6463

64+
public Map<String, Object> getExtraFields() {
65+
return internalExtraFields;
66+
}
67+
68+
public <T> T getExtraField(String key) {
69+
return (T) internalExtraFields.get(key);
70+
}
71+
6572
public Map<String, Object> getOriginalValues() {
6673
return internalOriginalValues;
6774
}
@@ -114,12 +121,6 @@ void setEntryExists(boolean exists) {
114121
this.internalEntryExists = exists;
115122
}
116123

117-
public void inject() {
118-
Injector injector = Repo.get(getClass()).getInfo().getConfig().getInjector();
119-
if (injector != null)
120-
injector.inject(this);
121-
}
122-
123124
public void save() {
124125
try {
125126
saveMethod.invoke(ORM.repo(getClass()), this);

src/main/java/org/javawebstack/orm/ORMConfig.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.javawebstack.orm;
22

3-
import org.javawebstack.injector.Injector;
43
import org.javawebstack.orm.exception.ORMConfigurationException;
54
import org.javawebstack.orm.mapper.DefaultMapper;
65
import org.javawebstack.orm.mapper.TypeMapper;
@@ -15,7 +14,6 @@ public class ORMConfig {
1514
private boolean idPrimaryKey = true;
1615
private boolean idAutoIncrement = true;
1716
private final List<TypeMapper> typeMappers = new ArrayList<>();
18-
private Injector injector;
1917
private boolean preventUnnecessaryUpdates = true;
2018

2119
public ORMConfig() {
@@ -55,11 +53,6 @@ public ORMConfig setIdAutoIncrement(boolean idAutoIncrement) {
5553
return this;
5654
}
5755

58-
public ORMConfig setInjector(Injector injector) {
59-
this.injector = injector;
60-
return this;
61-
}
62-
6356
public boolean isCamelToSnakeCase() {
6457
return camelToSnakeCase;
6558
}
@@ -84,10 +77,6 @@ public boolean isIdAutoIncrement() {
8477
return idAutoIncrement;
8578
}
8679

87-
public Injector getInjector() {
88-
return injector;
89-
}
90-
9180
public TypeMapper getTypeMapper(Class<?> type, int size) {
9281
for (TypeMapper mapper : getTypeMappers()) {
9382
SQLType sqlType = mapper.getType(type, size);

src/main/java/org/javawebstack/orm/Repo.java

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.javawebstack.orm.migration.AutoMigrator;
88
import org.javawebstack.orm.query.Query;
99
import org.javawebstack.orm.wrapper.SQL;
10+
import org.javawebstack.orm.wrapper.builder.SQLQueryString;
1011

1112
import java.lang.reflect.Field;
1213
import java.sql.SQLException;
@@ -100,8 +101,6 @@ public void save(T entry) {
100101
}
101102

102103
public void create(T entry) {
103-
if (info.getConfig().getInjector() != null)
104-
info.getConfig().getInjector().inject(entry);
105104
observers.forEach(o -> o.saving(entry));
106105
observers.forEach(o -> o.creating(entry));
107106
executeCreate(entry);
@@ -124,28 +123,14 @@ private void executeCreate(T entry) {
124123
if (field.get(entry) == null)
125124
field.set(entry, UUID.randomUUID());
126125
}
127-
List<Object> params = new ArrayList<>();
128-
StringBuilder sb = new StringBuilder("INSERT INTO `");
129-
sb.append(info.getTableName());
130-
sb.append("` (");
131-
List<String> cols = new ArrayList<>();
132-
List<String> values = new ArrayList<>();
133126
Map<String, Object> map = SQLMapper.map(this, entry);
134127
if (info.isAutoIncrement()) {
135128
String idCol = info.getColumnName(info.getIdField());
136129
if (map.containsKey(idCol) && map.get(idCol) == null)
137130
map.remove(idCol);
138131
}
139-
for (String columnName : map.keySet()) {
140-
cols.add("`" + columnName + "`");
141-
values.add("?");
142-
params.add(map.get(columnName));
143-
}
144-
sb.append(String.join(",", cols));
145-
sb.append(") VALUES (");
146-
sb.append(String.join(",", values));
147-
sb.append(");");
148-
int id = connection.write(sb.toString(), params.toArray());
132+
SQLQueryString qs = getConnection().builder().buildInsert(info, map);
133+
int id = connection.write(qs.getQuery(), qs.getParameters().toArray());
149134
if (info.isAutoIncrement())
150135
info.getField(info.getIdField()).set(entry, id);
151136
entry.setEntryExists(true);
@@ -237,8 +222,6 @@ public Object getId(Object entity) {
237222
}
238223

239224
public Repo<T> observe(Observer<T> observer) {
240-
if (info.getConfig().getInjector() != null)
241-
info.getConfig().getInjector().inject(observer);
242225
observers.add(observer);
243226
return this;
244227
}

src/main/java/org/javawebstack/orm/SQLMapper.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.javawebstack.orm;
22

3-
import org.javawebstack.injector.Injector;
43
import org.javawebstack.orm.exception.ORMQueryException;
54
import org.javawebstack.orm.mapper.DefaultMapper;
65
import org.javawebstack.orm.mapper.TypeMapper;
@@ -27,14 +26,9 @@ public static <T extends Model> List<T> map(Repo<T> repo, ResultSet rs, List<Cla
2726
try {
2827
while (rs.next()) {
2928
T t = (T) repo.getInfo().getModelConstructor().newInstance();
30-
Injector injector = repo.getInfo().getConfig().getInjector();
31-
if (injector != null)
32-
injector.inject(t);
3329
for (Class<? extends Model> model : joinedModels) {
3430
Repo<Model> r = Repo.get((Class<Model>) model);
3531
Model o = (Model) r.getInfo().getModelConstructor().newInstance();
36-
if (injector != null)
37-
injector.inject(o);
3832
t.internalAddJoinedModel(model, mapBack(r, rs, o));
3933
}
4034
list.add(mapBack(repo, rs, t));

0 commit comments

Comments
 (0)