Files
VisualSapfor/src/GlobalData/CompilerOption/CompilerOption.java

49 lines
1.8 KiB
Java
Raw Normal View History

2023-09-17 22:13:42 +03:00
package GlobalData.CompilerOption;
import Common.Database.Objects.DBObject;
2024-10-07 14:22:52 +03:00
import Common.Utils.CommonUtils;
2023-09-17 22:13:42 +03:00
import com.sun.org.glassfish.gmbal.Description;
import java.util.Arrays;
import java.util.Vector;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CompilerOption extends DBObject {
@Description("PRIMARY KEY, UNIQUE")
public String name = "";
public String parameterSeparator = "";
public String parameterName = "";
public String parameterValue = "";
public Vector<String> parameterVariants = new Vector<>();
public Vector<String> description = new Vector<>();
//--------------------------------------
public boolean hasParameter() {
return !parameterName.isEmpty();
}
@Override
public Object getPK() {
return name;
}
@Override
public String toString() {
return name + (hasParameter() ? (parameterSeparator +
2024-10-07 14:22:52 +03:00
(parameterValue.contains(" ") ? CommonUtils.DQuotes(parameterValue) : parameterValue)) : "");
2023-09-17 22:13:42 +03:00
}
public void CheckParameterVariants() {
for (String line : description)
if (CheckLine(line)) break;
}
public boolean CheckLine(String line) {
if (hasParameter()) {
2024-10-07 14:22:52 +03:00
Pattern DVM_PARAM_VALUES_REGEX = Pattern.compile(CommonUtils.TBrackets(parameterName) + "\\s*=\\s*" + "\\w+(\\|\\w+)+", Pattern.CASE_INSENSITIVE);
2023-09-17 22:13:42 +03:00
Matcher matcher = DVM_PARAM_VALUES_REGEX.matcher(line);
if (matcher.find()) {
String s = line.substring(matcher.start(), matcher.end());
String packed = s.substring(s.lastIndexOf('=') + 1).trim();
parameterVariants = new Vector<>(Arrays.asList(packed.split("\\|")));
return true;
}
}
return false;
}
}