Skip to content
This repository has been archived by the owner on Jan 27, 2025. It is now read-only.

Commit

Permalink
Move InsertMode instead of renaming hash to avoid hiding (#65)
Browse files Browse the repository at this point in the history
  • Loading branch information
fsteeg committed Nov 30, 2021
1 parent 4d956a7 commit 1904e0d
Showing 1 changed file with 26 additions and 25 deletions.
51 changes: 26 additions & 25 deletions metafix/src/main/java/org/metafacture/metafix/Value.java
Original file line number Diff line number Diff line change
Expand Up @@ -255,6 +255,27 @@ public String toString() {

public abstract String asString();

private enum InsertMode {

REPLACE {
@Override
void apply(final Hash hash, final String field, final String value) {
hash.put(field, new Value(value));
}
},
APPEND {
@Override
void apply(final Hash hash, final String field, final String value) {
final Value oldValue = hash.get(field);
final Value newValue = new Value(value);
hash.put(field, oldValue == null ? newValue : oldValue.merge(newValue));
}
};

abstract void apply(Hash hash, String field, String value);

}

}

/**
Expand Down Expand Up @@ -364,7 +385,7 @@ private Value findInValue(final String[] path, final Value value) {
return result;
}

private void insert(final InsertMode mode, final String[] fields, final String newValue) {
private void insert(final AbstractValueType.InsertMode mode, final String[] fields, final String newValue) {
switch (fields[0]) {
case ASTERISK:
// TODO: WDCD? descend into the array?
Expand Down Expand Up @@ -471,11 +492,11 @@ public void replace(final String field, final Value value) {
}

public Value replace(final String fieldPath, final String newValue) {
return insert(InsertMode.REPLACE, fieldPath, newValue);
return insert(AbstractValueType.InsertMode.REPLACE, fieldPath, newValue);
}

public Value append(final String fieldPath, final String newValue) {
return insert(InsertMode.APPEND, fieldPath, newValue);
return insert(AbstractValueType.InsertMode.APPEND, fieldPath, newValue);
}

/**
Expand Down Expand Up @@ -545,11 +566,11 @@ public void add(final String field, final Value newValue) {
put(field, oldValue == null ? newValue : oldValue.merge(newValue));
}

public Value insert(final InsertMode mode, final String fieldPath, final String newValue) {
public Value insert(final AbstractValueType.InsertMode mode, final String fieldPath, final String newValue) {
return insert(mode, split(fieldPath), newValue);
}

private Value insert(final InsertMode mode, final String[] fields, final String newValue) {
private Value insert(final AbstractValueType.InsertMode mode, final String[] fields, final String newValue) {
final String field = fields[0];
if (field.equals(APPEND_FIELD) || field.equals(LAST_FIELD)) {
// TODO: WDCD? $last, $append skipped for hashes here:
Expand Down Expand Up @@ -700,24 +721,4 @@ public String asString() {

}

private enum InsertMode {

REPLACE {
@Override
void apply(final Hash h, final String field, final String value) {
h.put(field, new Value(value));
}
},
APPEND {
@Override
void apply(final Hash h, final String field, final String value) {
final Value oldValue = h.get(field);
final Value newValue = new Value(value);
h.put(field, oldValue == null ? newValue : oldValue.merge(newValue));
}
};

abstract void apply(Hash h, String field, String value);

}
}

0 comments on commit 1904e0d

Please sign in to comment.