Skip to content

Commit

Permalink
Clean up KeyModels
Browse files Browse the repository at this point in the history
  • Loading branch information
safris committed Jul 24, 2023
1 parent 9ae78e6 commit d70dc52
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 59 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,14 @@ String getType() {
return declarationNameForeign;
}

String writeDeclaration(final String classSimpleName, final HashSet<String> declared, final String comment) {
String writeDeclaration(final String classSimpleName, final HashSet<String> declared) {
final String typeName = getType();
final String declaredName = getDeclaredName();
return writeDeclaration(classSimpleName, typeName, declaredName, "", declared, comment);
return writeDeclaration(classSimpleName, typeName, declaredName, "", declared);
}

final String writeDeclaration(final String classSimpleName, final String typeName, final String declaredName, final String suffix, final HashSet<String> declared, final String comment) {
final String keyClause = keyModel.keyRefArgsInternal(referenceTable.singletonInstanceName, foreignName, referenceTable.classCase, classSimpleName, CurOld.Old, false, declared, comment);
final String writeDeclaration(final String classSimpleName, final String typeName, final String declaredName, final String suffix, final HashSet<String> declared) {
final String keyClause = keyModel.keyRefArgsInternal(referenceTable.singletonInstanceName, foreignName, referenceTable.classCase, classSimpleName, CurOld.Old, false, declared);
if (keyClause == null)
return null;

Expand Down
20 changes: 8 additions & 12 deletions jsql/src/main/java/org/jaxdb/jsql/generator/KeyModels.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@

class KeyModels extends LinkedHashSet<KeyModels.KeyModel> {
class KeyModel {
private final boolean isForeign;
final String cacheMethodName;
final String toTableRefName;
final String indexFieldName;
Expand All @@ -40,8 +39,7 @@ class KeyModel {

private final LinkedHashSet<String>[] resets = new LinkedHashSet[] {new LinkedHashSet<>(), new LinkedHashSet<>()};

KeyModel(final boolean isForeign, final String singletonInstanceName, final String cacheMethodName, final String toTableRefName, final ColumnModels columns, final IndexType indexType) {
this.isForeign = isForeign;
private KeyModel(final String singletonInstanceName, final String cacheMethodName, final String toTableRefName, final ColumnModels columns, final IndexType indexType) {
this.cacheMethodName = cacheMethodName;
this.toTableRefName = toTableRefName;
this.indexFieldName = singletonInstanceName + "._" + ColumnModels.getInstanceNameForCache(cacheMethodName, toTableRefName) + "Index$";
Expand Down Expand Up @@ -140,7 +138,7 @@ private String include(final String fieldName, final String name, final String a
return name + "()";
}

String keyRefArgsInternal(final String cacheSingletonName, final String cacheMethodName, final String toTableRefName, final String replace1, final CurOld curlOld, final boolean addSelfRef, final HashSet<String> declared, final String comment) {
String keyRefArgsInternal(final String cacheSingletonName, final String cacheMethodName, final String toTableRefName, final String replace1, final CurOld curlOld, final boolean addSelfRef, final HashSet<String> declared) {
final String args = keyClauseValues.replace("{1}", replace1).replace("{2}", curlOld.toString());
final String cacheColumnsRef = cacheSingletonName + "._" + ColumnModels.getInstanceNameForCache(cacheMethodName, toTableRefName) + "Index$";
if (!declared.add(cacheColumnsRef + ":" + args))
Expand All @@ -151,12 +149,10 @@ String keyRefArgsInternal(final String cacheSingletonName, final String cacheMet
// if (isForeign)
// return key;

// FIXME: Uncomment to continue work on persistent keys
final String argsXX = keyClauseValues.replace("{1}.this.", "").replace("{2}", curlOld.toString());
final String xxx = argsXX.replace(".get" + curlOld, "").replace("()", "_").replace(", ", "");
final String prefix = "_" + ColumnModels.getInstanceNameForCache(cacheMethodName, xxx) + "ON_" + toTableRefName + curlOld;
final String name = prefix + "_Key$";
return "assertKey(" + (addSelfRef ? "self." : "") + include(cacheColumnsRef, name, argsXX, curlOld) + ", " + key + ")";
final String args2 = keyClauseValues.replace("{1}.this.", "").replace("{2}", curlOld.toString());
final String args3 = args2.replace(".get" + curlOld, "").replace("()", "_").replace(", ", "");
final String name = "_" + ColumnModels.getInstanceNameForCache(cacheMethodName, args3) + "ON_" + toTableRefName + curlOld + "_Key$";
return "assertKey(" + (addSelfRef ? "self." : "") + include(cacheColumnsRef, name, args2, curlOld) + ", " + key + ")";
}

@Override
Expand Down Expand Up @@ -184,8 +180,8 @@ public int hashCode() {
this.declarations = new LinkedHashMap<>(initialCapacity);
}

KeyModel add(final boolean isForeign, final String singletonInstanceName, final String cacheMethodName, final String toTableRefName, final ColumnModels columns, final IndexType indexType) {
final KeyModel keyModel = new KeyModel(isForeign, singletonInstanceName, cacheMethodName, toTableRefName, columns, indexType);
KeyModel add(final String singletonInstanceName, final String cacheMethodName, final String toTableRefName, final ColumnModels columns, final IndexType indexType) {
final KeyModel keyModel = new KeyModel(singletonInstanceName, cacheMethodName, toTableRefName, columns, indexType);
super.add(keyModel);
return keyModel;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ class ManyToManyRelation extends ForeignRelation {
}

@Override
String writeCacheInsert(final String classSimpleName, final CurOld curOld, final boolean addSelfRef, final HashSet<String> declared, final String comment) {
final String keyClause = keyModel.keyRefArgsInternal(referenceTable.singletonInstanceName, foreignName, referenceTable.classCase, classSimpleName, curOld, addSelfRef, declared, comment);
String writeCacheInsert(final String classSimpleName, final CurOld curOld, final boolean addSelfRef, final HashSet<String> declared) {
final String keyClause = keyModel.keyRefArgsInternal(referenceTable.singletonInstanceName, foreignName, referenceTable.classCase, classSimpleName, curOld, addSelfRef, declared);
if (keyClause == null)
return null;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,10 @@ class OneToManyRelation extends ForeignRelation {
}

@Override
String writeDeclaration(final String classSimpleName, final HashSet<String> declared, final String comment) {
String writeDeclaration(final String classSimpleName, final HashSet<String> declared) {
final String typeName = indexTypeForeign.isUnique ? declarationNameForeign : getType();
final String declaredName = indexTypeForeign.isUnique ? declarationNameForeign : getDeclaredName();
return writeDeclaration(classSimpleName, typeName, declaredName, "", declared, comment);
return writeDeclaration(classSimpleName, typeName, declaredName, "", declared);
}

@Override
Expand Down
14 changes: 7 additions & 7 deletions jsql/src/main/java/org/jaxdb/jsql/generator/Relation.java
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ public String toString() {
rangeParams.setLength(rangeParams.length() - 2);
this.rangeParams = rangeParams.toString();

keyModel = keyModels.add(this instanceof ForeignRelation, tableModel.singletonInstanceName, columnName, tableModel.classCase, columns, indexType);
keyModel = keyModels.add(tableModel.singletonInstanceName, columnName, tableModel.classCase, columns, indexType);
}

boolean isDeclaredOnSourceTable() {
Expand All @@ -111,8 +111,8 @@ private String writeGetRangeMethod(final String returnType) {
"\n }\n";
}

final String keyClause(final String replace1, final CurOld replace2, final boolean addSelfRef, final HashSet<String> declared, final String comment) {
return keyModel.keyRefArgsInternal(tableModel.singletonInstanceName, columnName, tableModel.classCase, replace1, replace2, addSelfRef, declared, comment);
final String keyClause(final String replace1, final CurOld replace2, final boolean addSelfRef, final HashSet<String> declared) {
return keyModel.keyRefArgsInternal(tableModel.singletonInstanceName, columnName, tableModel.classCase, replace1, replace2, addSelfRef, declared);
}

final void keyClauseColumnAssignments(final LinkedHashSet<String> keyClauseColumnAssignments) {
Expand Down Expand Up @@ -168,8 +168,8 @@ final String writeNullCheckClause(final String classSimpleName, final CurOld cur
return "if (" + keyClauseNotNullCheck.replace("{1}", classSimpleName).replace("{2}", curOld.toString()) + ") ";
}

String writeCacheInsert(final String classSimpleName, final CurOld curOld, final boolean addSelfRef, final HashSet<String> declared, final String comment) {
final String keyClause = keyClause(classSimpleName, curOld, addSelfRef, declared, comment);
String writeCacheInsert(final String classSimpleName, final CurOld curOld, final boolean addSelfRef, final HashSet<String> declared) {
final String keyClause = keyClause(classSimpleName, curOld, addSelfRef, declared);
if (keyClause == null)
return null;

Expand All @@ -181,8 +181,8 @@ final String writeCacheSelectAll() {
return tableModel.singletonInstanceName + "." + cacheMapFieldName + ".addKey(" + data.Key.class.getCanonicalName() + ".ALL);";
}

final String writeOnChangeClearCache(final String classSimpleName, final CurOld curOld, final boolean addSelfRef, final HashSet<String> declared, final String comment) {
final String keyClause = keyClause(classSimpleName, curOld, addSelfRef, declared, comment);
final String writeOnChangeClearCache(final String classSimpleName, final CurOld curOld, final boolean addSelfRef, final HashSet<String> declared) {
final String keyClause = keyClause(classSimpleName, curOld, addSelfRef, declared);
if (keyClause == null)
return null;

Expand Down
Loading

0 comments on commit d70dc52

Please sign in to comment.