Skip to content

Commit

Permalink
code optimization
Browse files Browse the repository at this point in the history
  • Loading branch information
javalc6 committed Mar 2, 2025
1 parent 87df527 commit 1de13c1
Show file tree
Hide file tree
Showing 18 changed files with 55 additions and 56 deletions.
5 changes: 3 additions & 2 deletions wiki/MagicWords.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
import java.io.IOException;
import java.io.LineNumberReader;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.LinkedHashMap;

Expand Down Expand Up @@ -332,7 +333,7 @@ public static String evaluate(MagicWord magicWord, String parameter, WikiPage wp
String lang = wp.getLocale().getLanguage();
String filename = "wiki\\" + lang + ".json";//localization files can be downloaded from: https://gerrit.wikimedia.org/g/mediawiki/core/%2B/HEAD/languages/i18n
try {
LineNumberReader in = new LineNumberReader(new InputStreamReader(new FileInputStream(filename), "UTF-8"));
LineNumberReader in = new LineNumberReader(new InputStreamReader(new FileInputStream(filename), StandardCharsets.UTF_8));
String st;
StringBuilder sb = new StringBuilder();
while ((st = in.readLine()) != null) {
Expand Down Expand Up @@ -408,7 +409,7 @@ private static String getNamespace(String title) {
int idx = title.indexOf(':');
if (idx != -1) {
String namespace = normaliseTitle(title.substring(0, idx), true);
if (namespace.length() > 0)
if (!namespace.isEmpty())
return namespace;
}
return "";
Expand Down
16 changes: 8 additions & 8 deletions wiki/NameSpaces.java
Original file line number Diff line number Diff line change
Expand Up @@ -147,22 +147,22 @@ public void add_alias(String alias) {
namespaces.put(2, new NameSpace(2, "User", "User", true, true, true, false, true, false, true, false, null, 2, 3, 3));
namespaces.put(3, new NameSpace(3, "User talk", "User talk", true, true, true, false, true, false, false, true, null, 2, 3, 2));
namespaces.put(4, new NameSpace(4, "Project", "Project", true, false, true, false, true, false, true, false, new java.util.ArrayList<>(Arrays.asList("WT", "Wiktionary")), 4, 5, 5));
namespaces.put(5, new NameSpace(5, "Project talk", "Project talk", true, false, true, false, true, false, false, true, new java.util.ArrayList<>(Arrays.asList("Wiktionary_talk")), 4, 5, 4));
namespaces.put(6, new NameSpace(6, "File", "File", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Arrays.asList("Image")), 6, 7, 7));
namespaces.put(7, new NameSpace(7, "File talk", "File talk", true, false, true, false, true, false, false, true, new java.util.ArrayList<>(Arrays.asList("Image_talk")), 6, 7, 6));
namespaces.put(5, new NameSpace(5, "Project talk", "Project talk", true, false, true, false, true, false, false, true, new java.util.ArrayList<>(Collections.singletonList("Wiktionary_talk")), 4, 5, 4));
namespaces.put(6, new NameSpace(6, "File", "File", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Collections.singletonList("Image")), 6, 7, 7));
namespaces.put(7, new NameSpace(7, "File talk", "File talk", true, false, true, false, true, false, false, true, new java.util.ArrayList<>(Collections.singletonList("Image_talk")), 6, 7, 6));
namespaces.put(8, new NameSpace(8, "MediaWiki", "MediaWiki", true, false, true, false, true, false, true, false, null, 8, 9, 9));
namespaces.put(9, new NameSpace(9, "MediaWiki talk", "MediaWiki talk", true, false, true, false, true, false, false, true, null, 8, 9, 8));
namespaces.put(10, new NameSpace(10, "Template", "Template", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Arrays.asList("T")), 10, 11, 11));
namespaces.put(10, new NameSpace(10, "Template", "Template", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Collections.singletonList("T")), 10, 11, 11));
namespaces.put(11, new NameSpace(11, "Template talk", "Template talk", true, false, true, false, true, false, false, true, null, 10, 11, 10));
namespaces.put(12, new NameSpace(12, "Help", "Help", true, false, true, false, true, false, true, false, null, 12, 13, 13));
namespaces.put(13, new NameSpace(13, "Help talk", "Help talk", true, false, true, false, true, false, false, true, null, 12, 13, 12));
namespaces.put(14, new NameSpace(14, "Category", "Category", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Arrays.asList("CAT")), 14, 15, 15));
namespaces.put(14, new NameSpace(14, "Category", "Category", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Collections.singletonList("CAT")), 14, 15, 15));
namespaces.put(15, new NameSpace(15, "Category talk", "Category talk", true, false, true, false, true, false, false, true, null, 14, 15, 14));

namespaces.put(100, new NameSpace(100, "Portal", "Portal", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Arrays.asList("AP", "Appendix")), 100, 101, 101));
namespaces.put(101, new NameSpace(101, "Portal talk", "Portal talk", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Arrays.asList("Appendix_talk")), 100, 101, 100));
namespaces.put(101, new NameSpace(101, "Portal talk", "Portal talk", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Collections.singletonList("Appendix_talk")), 100, 101, 100));

namespaces.put(828, new NameSpace(828, "Module", "Module", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Arrays.asList("MOD")), 828, 829, 829));
namespaces.put(828, new NameSpace(828, "Module", "Module", false, false, true, false, true, false, true, false, new java.util.ArrayList<>(Collections.singletonList("MOD")), 828, 829, 829));
namespaces.put(829, new NameSpace(829, "Module talk", "Module talk", false, false, true, false, true, false, false, true, null, 828, 829, 828));
}

Expand Down Expand Up @@ -199,7 +199,7 @@ else if (ns.name.equals(namespace))
public static String getNameSpaceByNumber(Integer numnamespace) {
NameSpace ns = namespaces.get(numnamespace);
if (ns != null)
return namespaces.get(numnamespace).canonicalName;
return ns.canonicalName;
else return null;
}

Expand Down
4 changes: 2 additions & 2 deletions wiki/TemplateParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@ private String invocation_body(WikiScanner sh, WikiPage wp, Frame parent) {
String parameter = null;
if (idx != -1) {//parameter present
String param = identifier.substring(idx + 1);
parameter = param == null ? "" : parseParameter(param, wp, parent).trim();
parameter = parseParameter(param, wp, parent).trim();

while (sh.getChar('|')) {//ignore any further parameter(s)
sh.getStringParameter(null);
Expand All @@ -178,7 +178,7 @@ private String invocation_body(WikiScanner sh, WikiPage wp, Frame parent) {
ArrayList<String> parameters = new ArrayList<>();
if (idx != -1) {//first parameter present
String param = identifier.substring(idx + 1);
parameters.add(param == null ? "" : param.trim());
parameters.add(param.trim());

while (sh.getChar('|')) {//twin
String paramx = sh.getStringParameter(null);
Expand Down
2 changes: 1 addition & 1 deletion wiki/TestSuite.java
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ public static String readfile(HashMap<String, String> name2page, String fn, bool
definition.append(st);
skiplines--;
if (skiplines == 0) {
assert identifier.length() > 0;
assert !identifier.isEmpty();
name2page.put(identifier, definition.toString());
definition.setLength(0);
} else definition.append("\n");
Expand Down
2 changes: 1 addition & 1 deletion wiki/WikiFind.java
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ public static String readfile(HashMap<String, String> name2page, String fn, bool
definition.append(st);
skiplines--;
if (skiplines == 0) {
assert identifier.length() > 0;
assert !identifier.isEmpty();
name2page.put(identifier, definition.toString());
definition.setLength(0);
} else definition.append("\n");
Expand Down
3 changes: 1 addition & 2 deletions wiki/WikiSplitter.java
Original file line number Diff line number Diff line change
Expand Up @@ -352,8 +352,7 @@ public void endElement(String uri, String localName, String qName) throws SAXExc

public void characters(char[] ch, int start, int length) throws SAXException {
if (collectData)
for (int i = start; i < start + length; i++)
buf.append(ch[i]);
buf.append(ch, start, length);
}
}

Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/Expr.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public final class Expr extends ParserFunction {

@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
String expression = tp.parseParameter( parameters.get(0), wp, parent);
if (!expression.isEmpty()) {
Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/FormatDate.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public final class FormatDate extends ParserFunction {

@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
return tp.parseParameter( parameters.get(0), wp, parent);
}
Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/Formatnum.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public final class Formatnum extends ParserFunction {

@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
try {
NumberFormat nf = NumberFormat.getNumberInstance(wp.getLocale());
Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/Language.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ public final class Language extends ParserFunction {
@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
Locale loc;
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
loc = getLocale(tp.parseParameter(parameters.get(0), wp, parent));
if (parameters.size() > 1) {
Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/Padleft.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public final class Padleft extends ParserFunction {

@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
String string1 = tp.parseParameter( parameters.get(0), wp, parent);
if (parameters.size() > 1) {
Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/Padright.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public final class Padright extends ParserFunction {

@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
String string1 = tp.parseParameter( parameters.get(0), wp, parent);
if (parameters.size() > 1) {
Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/Tag.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public final class Tag extends ParserFunction {

@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
String tagName = tp.parseParameter( parameters.get(0), wp, parent);
if (parameters.size() == 1) {
Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/Time.java
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ public final class Time extends ParserFunction {

@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
Date date;
Locale locale = wp.getLocale();
Expand Down
2 changes: 1 addition & 1 deletion wiki/parserfunctions/Titleparts.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public final class Titleparts extends ParserFunction {

@Override
public String evaluate(WikiPage wp, ArrayList<String> parameters, Frame parent) {
if (parameters.size() > 0) {
if (!parameters.isEmpty()) {
TemplateParser tp = wp.getTemplateParser();
String pagename = tp.parseParameter( parameters.get(0), wp, parent);
int num = 0;
Expand Down
49 changes: 24 additions & 25 deletions wiki/parserfunctions/expr/ExprParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -232,10 +232,9 @@ public String doExpression( String expr ) {
// Word
// Find the rest of it
StringBuilder sb = new StringBuilder();
sb.append(ch);
while ((++p < expr.length()) && Character.isAlphabetic( ch = expr.charAt(p) )) {
sb.append(ch);
}
do {
sb.append(ch);
} while ((++p < expr.length()) && Character.isAlphabetic(ch = expr.charAt(p)));

String word = sb.toString().toLowerCase();

Expand Down Expand Up @@ -406,14 +405,14 @@ public String doExpression( String expr ) {
private void doOperation( int op, ArrayList<Double> stack ) {
switch ( op ) {
case EXPR_NEGATIVE:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
Double arg = array_pop( stack );
stack.add(-arg);
break;
case EXPR_POSITIVE:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
break;
Expand Down Expand Up @@ -451,8 +450,8 @@ private void doOperation( int op, ArrayList<Double> stack ) {
if ( stack.size() < 2 ) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
right = (double)array_pop( stack );
left = (double)array_pop( stack );
right = array_pop( stack );
left = array_pop( stack );
if (Math.abs(right) < EPSILON) {
throw new RuntimeException( "division_by_zero: " + NAMES.get(op) );
}
Expand Down Expand Up @@ -500,7 +499,7 @@ private void doOperation( int op, ArrayList<Double> stack ) {
stack.add((Math.abs(left - right) < EPSILON) ? 1.0 : 0.0);
break;
case EXPR_NOT:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
Expand Down Expand Up @@ -564,28 +563,28 @@ private void doOperation( int op, ArrayList<Double> stack ) {
stack.add(left * Math.pow( 10, right));
break;
case EXPR_SINE:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
stack.add(Math.sin( arg ));
break;
case EXPR_COSINE:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
stack.add(Math.cos( arg ));
break;
case EXPR_TANGENS:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
stack.add(Math.tan( arg ));
break;
case EXPR_ARCSINE:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
Expand All @@ -595,7 +594,7 @@ private void doOperation( int op, ArrayList<Double> stack ) {
stack.add(Math.asin( arg ));
break;
case EXPR_ARCCOS:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
Expand All @@ -605,21 +604,21 @@ private void doOperation( int op, ArrayList<Double> stack ) {
stack.add(Math.acos( arg ));
break;
case EXPR_ARCTAN:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
stack.add(Math.atan( arg ));
break;
case EXPR_EXP:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
stack.add(Math.exp( arg ));
break;
case EXPR_LN:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
Expand All @@ -629,28 +628,28 @@ private void doOperation( int op, ArrayList<Double> stack ) {
stack.add(Math.log( arg ));
break;
case EXPR_ABS:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
stack.add(Math.abs( arg ));
break;
case EXPR_FLOOR:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
stack.add(Math.floor( arg ));
break;
case EXPR_TRUNC:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
stack.add((double) arg.intValue());
break;
case EXPR_CEIL:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
Expand All @@ -665,7 +664,7 @@ private void doOperation( int op, ArrayList<Double> stack ) {
stack.add(Math.pow( left, right ));
break;
case EXPR_SQRT:
if ( stack.size() < 1 ) {
if (stack.isEmpty()) {
throw new RuntimeException( "missing_operand: " + NAMES.get(op) );
}
arg = array_pop( stack );
Expand Down Expand Up @@ -698,13 +697,13 @@ public static void main(String[] args) {
}
*/
private static <T> T end(ArrayList<T> stack) {//php function end
if (stack.size() == 0)
if (stack.isEmpty())
return null;
return stack.get(stack.size() - 1);
}

private static <T> T array_pop(ArrayList<T> stack) {//php function array_pop
if (stack.size() == 0)
if (stack.isEmpty())
return null;
T last = stack.get(stack.size() - 1);
stack.remove(stack.size() - 1);
Expand All @@ -720,7 +719,7 @@ private static int strspn(String string, String characters, int offset ) {//php
}

private static Double array_pop_as_Double(ArrayList<String> stack) {
if (stack.size() == 0)
if (stack.isEmpty())
return null;
String last = stack.get(stack.size() - 1);
stack.remove(stack.size() - 1);
Expand Down
10 changes: 5 additions & 5 deletions wiki/tools/Utilities.java
Original file line number Diff line number Diff line change
Expand Up @@ -264,11 +264,11 @@ public static String process_include(String input, boolean delete_comments) {
return sb.toString();
}

public static void replaceAll(StringBuilder sb, String what, String replacement) {//21-12-2024: optimized code
int idx;
while ((idx = sb.indexOf(what)) != -1) {
sb.replace(idx, idx + what.length(), replacement);
idx += replacement.length();
private static void replaceAll(StringBuilder sb, String what, String replacement) {//21-12-2024: optimized code
int idx = 0;
while ((idx = sb.indexOf(what, idx)) != -1) {
sb.replace(idx, idx + what.length(), replacement);
idx += replacement.length();
}
}

Expand Down
Loading

0 comments on commit 1de13c1

Please sign in to comment.