AliasesShouldBeListedInDictionaryRuleParametersFactory.java
package org.thewonderlemming.c4plantuml.mojo.linting.rules.builtin.parameters;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.thewonderlemming.c4plantuml.linter.rules.builtin.AliasesShouldBeListedInDictionaryRule;
import org.thewonderlemming.c4plantuml.mojo.linting.AliasesShouldBeListedInDictionary;
import org.thewonderlemming.c4plantuml.mojo.linting.BuiltInRules;
import org.thewonderlemming.c4plantuml.mojo.linting.rules.builtin.AbstractRuleParametersFactory;
/**
* An implementation of {@link AbstractRuleParametersFactory} for the {@link AliasesShouldBeListedInDictionaryRule}.
*
* @author thewonderlemming
*
*/
public class AliasesShouldBeListedInDictionaryRuleParametersFactory
extends AbstractRuleParametersFactory<AliasesShouldBeListedInDictionary> {
/**
* Default constructor.
*
* @param mojoParameters the POJO that contains the {@code pom.xml} configuration.
*/
public AliasesShouldBeListedInDictionaryRuleParametersFactory(final BuiltInRules mojoParameters) {
super(mojoParameters);
}
/**
* {@inheritDoc}
*/
@Override
protected boolean getActivatedParameter(final AliasesShouldBeListedInDictionary pojoParameters) {
return pojoParameters.isActivated();
}
/**
* {@inheritDoc}
*/
@Override
protected AliasesShouldBeListedInDictionary getPojoFromBuiltInRules(final BuiltInRules mojoParameters) {
return mojoParameters.getAliasesShouldBeListedInDictionary();
}
/**
* {@inheritDoc}
*/
@Override
protected Set<String> getRuleParametersKeys() {
return Stream
.of(AliasesShouldBeListedInDictionaryRule.getAliasDictionaryFilenameParameterName())
.collect(Collectors.toSet());
}
/**
* {@inheritDoc}
*/
@Override
protected Optional<String> getValueForParameter(final String key,
final AliasesShouldBeListedInDictionary pojoParameters) {
if (AliasesShouldBeListedInDictionaryRule.getAliasDictionaryFilenameParameterName().equals(key)) {
return Optional.ofNullable(pojoParameters.getAliasDictionaryFilename());
}
return Optional.empty();
}
}