package com.baselet.element.relation.helper;
import com.baselet.element.facet.KeyValueFacet;
public enum LineDescriptionEnum {
MESSAGE_START("m1", 1, true),
MESSAGE_END("m2", 2, false),
ROLE_START("r1", 3, true),
ROLE_END("r2", 4, false),
MESSAGE_MIDDLE("", 5, null) // Important: MESSAGE_MIDDLE must be the last because it can have multiple lines with indexes 5,6,7,8,... AND it matches as default if no other enum entry is valid
;
private final String key;
private final int index;
private final Boolean start;
private LineDescriptionEnum(String key, int index, Boolean start) {
this.key = key;
this.index = index;
this.start = start;
}
public int getIndex() {
return index;
}
public String getKey() {
return key;
}
public Boolean isStart() {
return start;
}
public static LineDescriptionEnum forString(String line) {
for (LineDescriptionEnum ld : LineDescriptionEnum.values()) {
if (line.startsWith(ld.key + KeyValueFacet.SEP)) {
return ld;
}
}
return LineDescriptionEnum.MESSAGE_MIDDLE;
}
public boolean isMessageStartOrEnd() {
return this == LineDescriptionEnum.MESSAGE_START || this == LineDescriptionEnum.MESSAGE_END;
}
public boolean isRoleStartOrEnd() {
return this == LineDescriptionEnum.ROLE_START || this == LineDescriptionEnum.ROLE_END;
}
}