org.unlaxer.jaddress.parser.ResolverResultOfMatchKindCodec Maven / Gradle / Ivy
package org.unlaxer.jaddress.parser;
import java.util.ArrayList;
import java.util.List;
import org.unlaxer.jaddress.parser.MatchKind.MatchKindCodec;
import io.vavr.control.Try;
public class ResolverResultOfMatchKindCodec implements ResolverResultCodec{
private final MatchKindCodec matchKindCodec ;
public ResolverResultOfMatchKindCodec() {
super();
matchKindCodec = new MatchKindCodec();
}
@Override
public Class extends ResolverResultKind> target() {
return ResolverResultKindOfMatchKind.class;
}
@Override
public String toString(List resolverResultsOfThisKind) {
StringBuilder builder = new StringBuilder();
for (ResolverResultKindOfMatchKind kind :ResolverResultKindOfMatchKind .values()) {
boolean exists =false;
for (ResolverResult resolverResult : resolverResultsOfThisKind) {
ResolverResultKind targetKind = resolverResult.kind();
MatchKind value = MatchKind.class.cast(resolverResult.value());
if(targetKind == kind) {
builder.append(matchKindCodec.encode(value));
exists = true ;
break;
}
}
if(exists ==false) {
builder.append("0");
}
}
return builder.toString();
}
@Override
public Try> toResolverResults(String hexStringOfResolverResults) {
int length = hexStringOfResolverResults.length();
List results = new ArrayList<>();
ResolverResultKindOfMatchKind[] resolverResultKindOfMatchKinds =
ResolverResultKindOfMatchKind .values();
for(int i = 0; i < length ; i ++) {
String target = hexStringOfResolverResults.substring(i,i+1);
if(target.equals("0")) {
continue;
}
ResolverResultKindOfMatchKind resolverResultKindOfMatchKind =
resolverResultKindOfMatchKinds[i];
MatchKind decode = matchKindCodec.decode(target);
ResolverResult resolverResult = new ResolverResult(resolverResultKindOfMatchKind , decode);
results.add(resolverResult);
}
return Try.ofSupplier(()->results);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy