use of dyvil.annotation.Experimental.Stage in project Dyvil by Dyvil.
the class Deprecation method checkExperimental.
private static void checkExperimental(IMember member, SourcePosition position, MarkerList markers, Annotation annotation) {
final ArgumentList arguments = annotation.getArguments();
final MarkerLevel markerLevel = AnnotationUtil.getEnumValue(arguments, EXP_LEVEL_PARAM, MarkerLevel.class);
if (markerLevel == null || markerLevel == MarkerLevel.IGNORE) {
return;
}
String value = AnnotationUtil.getStringValue(arguments, EXP_VALUE_PARAM);
final String description = AnnotationUtil.getStringValue(arguments, EXP_DESC_PARAM);
final Stage stage = AnnotationUtil.getEnumValue(arguments, EXP_STAGE_PARAM, Stage.class);
assert stage != null;
final String stageName = Markers.getSemantic("experimental.stage." + stage.name());
value = replaceMember(member, value).replace("{stage}", stageName);
final Marker marker = Markers.withText(position, markerLevel, value);
assert marker != null;
// Description
if (description != null && !description.isEmpty()) {
marker.addInfo(Markers.getSemantic("experimental.description", description));
}
// Stage
marker.addInfo(Markers.getSemantic("experimental.stage", stageName));
markers.add(marker);
}
Aggregations