Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 64 additions & 33 deletions Java/Loon-Lite(PureJava)/LoonLiteCore/src/loon/utils/PathUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ private PathUtils() {
*/
public static String normalize(String filename) {
if (StringUtils.isEmpty(filename)) {
return "";
return LSystem.EMPTY;
}
String result = StringUtils.filter(filename, new char[] { '\\', '/' }, LSystem.FS);
String result = StringUtils.filter(filename, new char[] { LSystem.BACKSLASH, LSystem.SLASH }, LSystem.FS);
String doubleTag = LSystem.FS + LSystem.FS;
if (result.indexOf(doubleTag) != -1) {
result = StringUtils.replace(result, doubleTag, LSystem.FS);
Expand All @@ -64,17 +64,17 @@ public static String normalizeDir(String filename) {
*/
public static String getBaseFileName(String filename) {
if (StringUtils.isEmpty(filename)) {
return "";
return LSystem.EMPTY;
}
String result = "";
if (filename.indexOf('\\') != -1) {
result = filename.substring(filename.lastIndexOf('\\') + 1);
} else if (filename.indexOf('/') != -1) {
result = filename.substring(filename.lastIndexOf('/') + 1);
String result = LSystem.EMPTY;
if (filename.indexOf(LSystem.BACKSLASH) != -1) {
result = filename.substring(filename.lastIndexOf(LSystem.BACKSLASH) + 1);
} else if (filename.indexOf(LSystem.SLASH) != -1) {
result = filename.substring(filename.lastIndexOf(LSystem.SLASH) + 1);
} else {
result = filename.substring(filename.lastIndexOf(LSystem.FS) + 1);
}
int idx = result.indexOf('.');
int idx = result.indexOf(LSystem.DOT);
if (idx != -1) {
result = result.substring(0, idx);
}
Expand All @@ -89,29 +89,29 @@ public static String getBaseFileName(String filename) {
*/
public static String getFullFileName(String filename) {
if (StringUtils.isEmpty(filename)) {
return "";
return LSystem.EMPTY;
}
int length = filename.length();
if (filename.indexOf('\\') != -1) {
int size = filename.lastIndexOf('\\') + 1;
if (filename.indexOf(LSystem.BACKSLASH) != -1) {
int size = filename.lastIndexOf(LSystem.BACKSLASH) + 1;
if (size < length) {
return filename.substring(size, length);
} else {
return "";
return LSystem.EMPTY;
}
} else if (filename.indexOf('/') != -1) {
int size = filename.lastIndexOf('/') + 1;
} else if (filename.indexOf(LSystem.SLASH) != -1) {
int size = filename.lastIndexOf(LSystem.SLASH) + 1;
if (size < length) {
return filename.substring(size, length);
} else {
return "";
return LSystem.EMPTY;
}
} else {
int size = filename.lastIndexOf(LSystem.FS) + 1;
if (size < length) {
return filename.substring(size, length);
} else {
return "";
return LSystem.EMPTY;
}
}
}
Expand All @@ -124,16 +124,16 @@ public static String getFullFileName(String filename) {
*/
public static String getLastDirName(String dir) {
if (StringUtils.isEmpty(dir)) {
return "";
return LSystem.EMPTY;
}
if (dir.indexOf('\\') != -1) {
String[] list = StringUtils.split(dir, '\\');
if (dir.indexOf(LSystem.BACKSLASH) != -1) {
String[] list = StringUtils.split(dir, LSystem.BACKSLASH);
if (list.length > 1) {
return list[list.length - 2];
}
return list[list.length - 1];
} else if (dir.indexOf('/') != -1) {
String[] list = StringUtils.split(dir, '/');
} else if (dir.indexOf(LSystem.SLASH) != -1) {
String[] list = StringUtils.split(dir, LSystem.SLASH);
if (list.length > 1) {
return list[list.length - 2];
}
Expand All @@ -158,11 +158,11 @@ public static String getLastDirName(String dir) {
*/
public static String getExtension(String filename) {
if (StringUtils.isEmpty(filename)) {
return "";
return LSystem.EMPTY;
}
int index = filename.lastIndexOf(".") + 1;
int index = filename.lastIndexOf(LSystem.DOT) + 1;
if (index <= 0) {
return "";
return LSystem.EMPTY;
} else {
return filename.substring(index, filename.length());
}
Expand All @@ -176,35 +176,62 @@ public static String getExtension(String filename) {
*/
public static String getDirName(String dir) {
if (StringUtils.isEmpty(dir)) {
return "";
return LSystem.EMPTY;
}
int size = dir.length();
if (dir.indexOf('\\') != -1) {
size = dir.lastIndexOf('\\') + 1;
} else if (dir.indexOf('/') != -1) {
size = dir.lastIndexOf('/') + 1;
if (dir.indexOf(LSystem.BACKSLASH) != -1) {
size = dir.lastIndexOf(LSystem.BACKSLASH) + 1;
} else if (dir.indexOf(LSystem.SLASH) != -1) {
size = dir.lastIndexOf(LSystem.SLASH) + 1;
} else {
size = dir.lastIndexOf(LSystem.FS) + 1;
}
return dir.substring(0, size);
}

public static String getCombinePaths(String left, String right) {
if (left == null || right == null) {
return LSystem.EMPTY;
}
int cnt = left.length();
if (cnt > 1 && left.charAt(cnt - 1) != LSystem.SLASH && left.charAt(cnt - 1) != LSystem.BACKSLASH
&& (right.length() == 0
|| (right.charAt(0) != LSystem.SLASH && right.charAt(0) != LSystem.BACKSLASH))) {
left += LSystem.SLASH;
}
return left + right;
}

public static String getCombinePaths(String left, String middle, String right) {
return getCombinePaths(getCombinePaths(left, middle), right);
}

/**
* 检查当前文件路径是否为相对路径
*
* @param filename
* @return
*/
public static boolean isRelativePath(String filename) {
return filename.charAt(0) != '/' && StringUtils.isMatch(filename, ":\\/\\/");
return filename.charAt(0) != LSystem.SLASH && StringUtils.isMatch(filename, ":\\/\\/");
}

public static String convertRelativePathToAbsolute(String basePath, String path) {
String result;
if (isRelativePath(path)) {
result = getCombinePaths(basePath, path);
} else {
result = path;
}
return normalize(result);
}

public static String extractPath(String filename) {
return extractPath(filename, '/');
return extractPath(filename, LSystem.SLASH);
}

/**
* 返回不带文件名的路徑,如果文件名是相对路径,以'.'开头
* 返回不带文件名的路徑,如果文件名是相对路径,以.开头
*
* @param filename
* @param delimiter
Expand Down Expand Up @@ -242,4 +269,8 @@ public static String extractPath(String filename, char delimiter) {
}
return result;
}

public static String removeNewLine(String s) {
return StringUtils.replacesTrim(s, "\n", "\r");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -985,7 +985,7 @@ public static String replace(String message, String oldString, String newString)
* @param oldStrings
* @return
*/
public static String replacesTrim(String message, String newTag, String... oldStrings) {
public static String replacesTrim(String message, String... oldStrings) {
return replaces(message, LSystem.EMPTY, oldStrings);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

import loon.LRelease;
import loon.LSystem;
import loon.events.EventAction;
import loon.utils.HelperUtils;
import loon.utils.IArray;
import loon.utils.LIterator;
import loon.utils.SortedList;
Expand All @@ -38,6 +40,52 @@
*/
public class RealtimeProcessManager implements RealtimeProcessEvent, IArray, LRelease {

private static class RealtimeProcessRunnable extends RealtimeProcess {

private Runnable _runnable = null;

public RealtimeProcessRunnable(final String name, final long delay, final Runnable r) {
super(name, delay);
this._runnable = r;
this.setProcessType(GameProcessType.Other);
}

@Override
public void run(LTimerContext time) {
if (_runnable != null) {
_runnable.run();
}
}

}

private static class RealtimeProcessEventAction extends RealtimeProcess {

private EventAction _runnable = null;

public RealtimeProcessEventAction(final String name, final long delay, final EventAction r) {
super(name, delay);
this._runnable = r;
this.setProcessType(GameProcessType.Other);
}

@Override
public void run(LTimerContext time) {
if (_runnable != null) {
HelperUtils.callEventAction(_runnable, time);
}
}

}

public final static RealtimeProcess ofProcess(final String name, final long delay, final EventAction runnable) {
return new RealtimeProcessEventAction(name, delay, runnable);
}

public final static RealtimeProcess ofProcess(final String name, final long delay, final Runnable runnable) {
return new RealtimeProcessRunnable(name, delay, runnable);
}

static class ProcessComparator implements Comparator<GameProcess> {

@Override
Expand Down
Loading