Skip to content

Commit 8dd6f0f

Browse files
committed
Merge branch 'feature/in-clause/master'
2 parents 733c07f + 20c9a88 commit 8dd6f0f

11 files changed

Lines changed: 574 additions & 76 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
group 'com.softwareverde'
2-
version '3.1.0'
2+
version '3.2.0'
33

44
apply plugin: 'java'
55
apply plugin: 'java-library'

src/main/java/com/softwareverde/database/query/BatchedInsertQuery.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.softwareverde.database.query;
22

3+
import com.softwareverde.database.query.parameter.ParameterFactory;
4+
35
public class BatchedInsertQuery extends Query {
4-
protected BatchedInsertQuery(final Query query, final Boolean shouldConsumeQuery) {
5-
super(query, shouldConsumeQuery);
6+
protected BatchedInsertQuery(final Query query, final Boolean shouldConsumeQuery, final ParameterFactory parameterFactory) {
7+
super(query, shouldConsumeQuery, parameterFactory);
68
}
79

810
public BatchedInsertQuery(final String query) {
@@ -15,7 +17,7 @@ public BatchedInsertQuery(final Query query) {
1517

1618
@Override
1719
public String getQueryString() {
18-
final Integer parameterCount = _parameters.size();
20+
final Integer parameterCount = _parameters.getCount();
1921
final Integer parameterCountPerBatch = (_query.length() - _query.replace("?", "").length());
2022
final int batchCount = (parameterCount / parameterCountPerBatch);
2123

src/main/java/com/softwareverde/database/query/BatchedUpdateQuery.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.softwareverde.database.query;
22

3+
import com.softwareverde.database.query.parameter.ParameterFactory;
4+
35
import java.util.regex.Matcher;
46
import java.util.regex.Pattern;
57

68
public class BatchedUpdateQuery extends Query {
7-
protected BatchedUpdateQuery(final Query query, final Boolean shouldConsumeQuery) {
8-
super(query, shouldConsumeQuery);
9+
protected BatchedUpdateQuery(final Query query, final Boolean shouldConsumeQuery, final ParameterFactory parameterFactory) {
10+
super(query, shouldConsumeQuery, parameterFactory);
911
}
1012

1113
public BatchedUpdateQuery(final String query) {
@@ -19,7 +21,7 @@ public BatchedUpdateQuery(final Query query) {
1921
@Override
2022
public String getQueryString() {
2123
// UPDATE t SET v = x WHERE z IN (?)
22-
final Integer parameterCount = _parameters.size();
24+
final Integer parameterCount = _parameters.getCount();
2325
final Integer nonInClauseParameterCount = (_query.length() - _query.replace("?", "").length()) - 1;
2426
final int batchCount = (parameterCount - nonInClauseParameterCount);
2527

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.softwareverde.database.query;
2+
3+
import com.softwareverde.constable.bytearray.ByteArray;
4+
import com.softwareverde.database.query.parameter.ParameterFactory;
5+
import com.softwareverde.database.query.parameter.TypedParameter;
6+
import com.softwareverde.util.type.identifier.Identifier;
7+
8+
public class ParameterFactoryCore implements ParameterFactory {
9+
@Override
10+
public TypedParameter fromObject(final Object object) {
11+
if (object == null) { return TypedParameter.NULL; }
12+
13+
if (object instanceof Boolean) {
14+
return new TypedParameter((Boolean) object);
15+
}
16+
else if (object instanceof Long) {
17+
return new TypedParameter((Long) object);
18+
}
19+
else if (object instanceof Integer) {
20+
return new TypedParameter((Integer) object);
21+
}
22+
else if (object instanceof Short) {
23+
return new TypedParameter((Short) object);
24+
}
25+
else if (object instanceof Double) {
26+
return new TypedParameter((Double) object);
27+
}
28+
else if (object instanceof Float) {
29+
return new TypedParameter((Float) object);
30+
}
31+
else if (object instanceof byte[]) {
32+
return new TypedParameter((byte[]) object);
33+
}
34+
else if (object instanceof ByteArray) {
35+
return new TypedParameter(((ByteArray) object).getBytes());
36+
}
37+
else if (object instanceof Identifier) {
38+
return new TypedParameter(((Identifier) object).longValue());
39+
}
40+
else if (object instanceof TypedParameter) {
41+
return (TypedParameter) object;
42+
}
43+
else if (object instanceof String) {
44+
return new TypedParameter((String) object);
45+
}
46+
47+
// Warning is not logged to facilitate class extension.
48+
// final Class<?> objectClass = object.getClass();
49+
// Logger.warn("Unknown Object for TypedParameter Factory: " + objectClass.getName());
50+
51+
return null;
52+
}
53+
}

0 commit comments

Comments
 (0)