Skip to content

Commit

Permalink
de-duplicate code
Browse files Browse the repository at this point in the history
  • Loading branch information
andi-huber committed Jun 19, 2024
1 parent d456e44 commit 19b42db
Showing 1 changed file with 10 additions and 32 deletions.
42 changes: 10 additions & 32 deletions commons/src/main/java/dita/commons/qmap/QualifiedMapEntry.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,50 +29,42 @@
* respecting a qualifier.
*/
public record QualifiedMapEntry(

/**
* Key holding the semantic identifier of the data object that is mapped from
* and constraints under which this map entry is applicable.
*/
QualifiedMapKey key,

/**
* Semantic identifier of the data object that is mapped to.
*/
SemanticIdentifier target) {


public QualifiedMapEntry(
SemanticIdentifier source,
SemanticIdentifierSet qualifier,
SemanticIdentifier target) {
final SemanticIdentifier source,
final SemanticIdentifierSet qualifier,
final SemanticIdentifier target) {
this(new QualifiedMapKey(source, qualifier), target);
}

/**
* Semantic identifier of the data object that is mapped from.
*/
public SemanticIdentifier source() {
return key.source();
}

/**
* Constraints under which this map entry is applicable.
*/
public SemanticIdentifierSet qualifier() {
return key.qualifier();
}

// -- WITHER

@Deprecated
public QualifiedMapEntry withSource(final SemanticIdentifier source) {
return new QualifiedMapEntry(source, qualifier(), target);
}
@Deprecated
public QualifiedMapEntry withQualifier(final SemanticIdentifierSet qualifier) {
return new QualifiedMapEntry(source(), qualifier, target);
}
public QualifiedMapEntry withKey(final QualifiedMapKey key) {
return new QualifiedMapEntry(key, target);
}
Expand All @@ -82,25 +74,11 @@ public QualifiedMapEntry withTarget(final SemanticIdentifier target) {

// -- MAPPER

@Deprecated
public QualifiedMapEntry mapSource(final UnaryOperator<SemanticIdentifier> sourceMapper) {
return withSource(sourceMapper.apply(source()));
}
@Deprecated
public QualifiedMapEntry mapQualifier(final UnaryOperator<SemanticIdentifierSet> qualifierMapper) {
return withQualifier(qualifierMapper.apply(qualifier()));
}
public QualifiedMapEntry mapKey(final UnaryOperator<QualifiedMapKey> keyMapper) {
return withKey(keyMapper.apply(key()));
}
public QualifiedMapEntry mapTarget(final UnaryOperator<SemanticIdentifier> targetMapper) {
return withTarget(targetMapper.apply(target));
}

// -- ADVANCED MAPPER

public QualifiedMapEntry mapQualifierElementwise(final UnaryOperator<SemanticIdentifier> qualifierElementwiseMapper) {
return mapQualifier(set->SemanticIdentifierSet.ofStream(set.elements().stream().map(qualifierElementwiseMapper)));
}

}

0 comments on commit 19b42db

Please sign in to comment.