Skip to content

Commit 95ea4b8

Browse files
Merge pull request #377 from spidasoftware/downgrade-advanced-wires-174911733
[Delivers #174911733] downgrade advanced wires to basic
2 parents a8bf1b8 + a76ee5f commit 95ea4b8

File tree

14 files changed

+2796
-26
lines changed

14 files changed

+2796
-26
lines changed

src/main/groovy/com/spidasoftware/schema/conversion/changeset/AbstractConverter.groovy

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ abstract class AbstractConverter implements Converter {
1414
protected TreeMap<Integer, List<ChangeSet>> versions = new TreeMap<>() // each list will be applied when going from N-1 to N
1515
private int currentVersion
1616

17-
abstract void applyChangeset(ChangeSet changeSet, Map json)
18-
abstract void revertChangeset(ChangeSet changeSet, Map json)
17+
abstract boolean applyChangeset(ChangeSet changeSet, Map json)
18+
abstract boolean revertChangeset(ChangeSet changeSet, Map json)
1919

2020
int getCurrentVersion() {
2121
return currentVersion
@@ -25,7 +25,7 @@ abstract class AbstractConverter implements Converter {
2525
currentVersion = version
2626
}
2727

28-
void convert(Map json, int toVersion) throws ConversionException {
28+
boolean convert(Map json, int toVersion) throws ConversionException {
2929
int fromVersion = defaultVersion
3030
if (json.containsKey("version") && json.get('version')!=null) {
3131
fromVersion = json.get("version")
@@ -37,6 +37,7 @@ abstract class AbstractConverter implements Converter {
3737
}
3838

3939
List<ChangeSet> toApply = []
40+
boolean converted = false
4041
if (toVersion > fromVersion) {
4142
// all changesets to go TO fromVersion have already been applied to json
4243
((fromVersion + 1)..toVersion).each { int index ->
@@ -45,7 +46,9 @@ abstract class AbstractConverter implements Converter {
4546
}
4647
}
4748
toApply.each { ChangeSet changeSet ->
48-
applyChangeset(changeSet, json)
49+
if (applyChangeset(changeSet, json)) {
50+
converted = true
51+
}
4952
}
5053
} else {
5154
((toVersion + 1)..fromVersion).each { int index ->
@@ -56,10 +59,13 @@ abstract class AbstractConverter implements Converter {
5659
// need to revert in reverse order
5760
toApply.reverseEach { ChangeSet changeSet ->
5861
Logger.getLogger(AbstractConverter).info("Applying changest: ${changeSet.class.simpleName}")
59-
revertChangeset(changeSet, json)
62+
if (revertChangeset(changeSet, json)) {
63+
converted = true
64+
}
6065
}
6166
}
6267
updateVersion(json, toVersion)
68+
return converted
6369
}
6470

6571
/**

src/main/groovy/com/spidasoftware/schema/conversion/changeset/Converter.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ package com.spidasoftware.schema.conversion.changeset
66
interface Converter {
77

88
String getSchemaPath()
9-
void convert(Map json, int toVersion) throws ConversionException
9+
boolean convert(Map json, int toVersion) throws ConversionException
1010
int getCurrentVersion()
1111
void addChangeSet(int version, ChangeSet changeSet)
1212
void updateVersion(Map json, int version)

src/main/groovy/com/spidasoftware/schema/conversion/changeset/ConverterUtils.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ class ConverterUtils {
2323
addCalcConverter(new CalcProjectConverter())
2424
addCalcConverter(new CalcLocationConverter())
2525
addCalcConverter(new CalcDesignConverter())
26-
addClientDataConverter(new ClientDataConverter())
2726
addCalcConverter(new CalcResultConverter())
27+
addClientDataConverter(new ClientDataConverter())
2828
}
2929

3030
static void addCalcConverter(AbstractCalcConverter converter) {
@@ -65,6 +65,7 @@ class ConverterUtils {
6565
}
6666

6767
static void addClientDataConverter(ClientDataConverter converter) {
68+
converter.addChangeSet(8, new AdvancedWireChangeSet())
6869
// add client data changesets here
6970

7071
converter.setCurrentVersion(currentVersion)

src/main/groovy/com/spidasoftware/schema/conversion/changeset/calc/AbstractCalcConverter.groovy

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ abstract class AbstractCalcConverter extends AbstractConverter {
2626

2727
private static final int VERSION_ALLOWED_IN_LOCATION_DESIGN = 4
2828
private static final int VERSION_ALLOWED_IN_DETAILED_RESULTS = 7
29+
private static final int VERSION_ALLOWED_IN_CLIENT_DATA = 7
2930

3031
protected boolean isVersionAllowedInLocationAndDesign(int version) {
3132
return version >= VERSION_ALLOWED_IN_LOCATION_DESIGN
@@ -35,4 +36,7 @@ abstract class AbstractCalcConverter extends AbstractConverter {
3536
return version >= VERSION_ALLOWED_IN_DETAILED_RESULTS
3637
}
3738

39+
protected boolean isVersionAllowedInClientData(int version) {
40+
return version >= VERSION_ALLOWED_IN_CLIENT_DATA
41+
}
3842
}

src/main/groovy/com/spidasoftware/schema/conversion/changeset/calc/CalcDesignConverter.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,15 @@ class CalcDesignConverter extends AbstractCalcConverter {
2323
}
2424

2525
@Override
26-
void applyChangeset(ChangeSet changeSet, Map json) {
26+
boolean applyChangeset(ChangeSet changeSet, Map json) {
2727
changeSet.applyToDesign(json)
28+
return true // always return true for now because there is no use case to check if it has been converted/not converted
2829
}
2930

3031
@Override
31-
void revertChangeset(ChangeSet changeSet, Map json) {
32+
boolean revertChangeset(ChangeSet changeSet, Map json) {
3233
changeSet.revertDesign(json)
34+
return true // always return true for now because there is no use case to check if it has been converted/not converted
3335
}
3436
}
3537

src/main/groovy/com/spidasoftware/schema/conversion/changeset/calc/CalcLocationConverter.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,14 @@ class CalcLocationConverter extends AbstractCalcConverter {
2727
}
2828

2929
@Override
30-
void applyChangeset(ChangeSet changeSet, Map json) {
30+
boolean applyChangeset(ChangeSet changeSet, Map json) {
3131
changeSet.applyToLocation(json)
32+
return true // always return true for now because there is no use case to check if it has been converted/not converted
3233
}
3334

3435
@Override
35-
void revertChangeset(ChangeSet changeSet, Map json) {
36+
boolean revertChangeset(ChangeSet changeSet, Map json) {
3637
changeSet.revertLocation(json)
38+
return true // always return true for now because there is no use case to check if it has been converted/not converted
3739
}
3840
}

src/main/groovy/com/spidasoftware/schema/conversion/changeset/calc/CalcProjectConverter.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,14 @@ class CalcProjectConverter extends AbstractCalcConverter {
3232
}
3333

3434
@Override
35-
void applyChangeset(ChangeSet changeSet, Map json) {
35+
boolean applyChangeset(ChangeSet changeSet, Map json) {
3636
changeSet.applyToProject(json)
37+
return true // always return true for now because there is no use case to check if it has been converted/not converted
3738
}
3839

3940
@Override
40-
void revertChangeset(ChangeSet changeSet, Map json) {
41+
boolean revertChangeset(ChangeSet changeSet, Map json) {
4142
changeSet.revertProject(json)
43+
return true // always return true for now because there is no use case to check if it has been converted/not converted
4244
}
4345
}

src/main/groovy/com/spidasoftware/schema/conversion/changeset/calc/CalcResultConverter.groovy

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ class CalcResultConverter extends AbstractCalcConverter {
1717
}
1818

1919
@Override
20-
void applyChangeset(ChangeSet changeSet, Map json) {
21-
//noop: currently no change sets for results
20+
boolean applyChangeset(ChangeSet changeSet, Map json) {
21+
return false //noop: currently no change sets for results
2222
}
2323

2424
@Override
25-
void revertChangeset(ChangeSet changeSet, Map json) {
26-
//noop: currently no change sets for results
25+
boolean revertChangeset(ChangeSet changeSet, Map json) {
26+
return false //noop: currently no change sets for results
2727
}
2828
}

src/main/groovy/com/spidasoftware/schema/conversion/changeset/client/AbstractClientDataChangeSet.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import groovy.util.logging.Log4j
1515
*/
1616
abstract class AbstractClientDataChangeSet extends ChangeSet {
1717

18-
abstract applyToClientData(Map projectJSON) throws ConversionException
19-
abstract revertClientData(Map projectJSON) throws ConversionException
18+
abstract boolean applyToClientData(Map clientDataJSON) throws ConversionException
19+
abstract boolean revertClientData(Map clientDataJSON) throws ConversionException
2020

2121
}

src/main/groovy/com/spidasoftware/schema/conversion/changeset/client/ClientDataConverter.groovy

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
*/
44
package com.spidasoftware.schema.conversion.changeset.client
55

6-
import com.spidasoftware.schema.conversion.changeset.AbstractConverter
76
import com.spidasoftware.schema.conversion.changeset.ChangeSet
7+
import com.spidasoftware.schema.conversion.changeset.calc.AbstractCalcConverter
88
import groovy.util.logging.Log4j
99

1010
@Log4j
1111
/**
1212
* Converter for clientData json files.
1313
*/
14-
class ClientDataConverter extends AbstractConverter {
14+
class ClientDataConverter extends AbstractCalcConverter {
1515

1616
@Override
1717
String getSchemaPath() {
@@ -20,17 +20,19 @@ class ClientDataConverter extends AbstractConverter {
2020

2121
@Override
2222
void updateVersion(Map json, int version) {
23-
//todo discuss how we want to do changesets
23+
if (isVersionAllowedInClientData(version)) {
24+
json.put("version", version)
25+
}
2426
}
2527

2628
@Override
27-
void applyChangeset(ChangeSet changeSet, Map json) {
28-
changeSet.applyToClientData(json)
29+
boolean applyChangeset(ChangeSet changeSet, Map json) {
30+
return changeSet.applyToClientData(json)
2931
}
3032

3133
@Override
32-
void revertChangeset(ChangeSet changeSet, Map json) {
33-
changeSet.revertClientData(json)
34+
boolean revertChangeset(ChangeSet changeSet, Map json) {
35+
return changeSet.revertClientData(json)
3436
}
3537
}
3638

0 commit comments

Comments
 (0)