mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-06 17:36:47 +08:00
提交
This commit is contained in:
@@ -30,6 +30,26 @@
|
||||
<artifactId>javax.servlet-api</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-validator</groupId>
|
||||
<artifactId>commons-validator</artifactId>
|
||||
<version>1.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>dom4j</groupId>
|
||||
<artifactId>dom4j</artifactId>
|
||||
<version>1.6.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.cardme</groupId>
|
||||
<artifactId>cardme</artifactId>
|
||||
<version>0.4.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
package com.xboe.module.scorm.common;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.net.URI;
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
public class CommonUtils {
|
||||
|
||||
private static final Set<String> LANGUAGE_CODES = new HashSet<>(Arrays.asList(Locale.getISOLanguages()));
|
||||
private static final Set<String> LANGUAGE_SUBCODES = new HashSet<>(Arrays.asList(Locale.getISOCountries()));
|
||||
|
||||
static {
|
||||
Set<String> iso3 = new HashSet<>();
|
||||
for (String languageCode : LANGUAGE_CODES) {
|
||||
try {
|
||||
iso3.add(new Locale(languageCode).getISO3Language());
|
||||
} catch (Exception ignored) {
|
||||
|
||||
}
|
||||
}
|
||||
LANGUAGE_CODES.addAll(iso3);
|
||||
}
|
||||
|
||||
public static String stringifyError(Throwable error) {
|
||||
StringWriter result = new StringWriter();
|
||||
PrintWriter printer = new PrintWriter(result);
|
||||
error.printStackTrace(printer);
|
||||
printer.close();
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
public static String format(String format, Object... objects) {
|
||||
return String.format(format.replace("{}", "%s"), objects);
|
||||
}
|
||||
|
||||
public static boolean isLegalLanguage(String language) {
|
||||
if (StringUtils.isBlank(language)) {
|
||||
return false;
|
||||
}
|
||||
String[] code = language.split("-");
|
||||
boolean result;
|
||||
if (code.length == 1 || code.length == 2) {
|
||||
result = LANGUAGE_CODES.contains(code[0]);
|
||||
if (code.length == 2) {
|
||||
result &= LANGUAGE_SUBCODES.contains(code[1]);
|
||||
}
|
||||
} else {
|
||||
result = false;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static boolean isLegalURI(String uri) {
|
||||
try {
|
||||
//noinspection ResultOfMethodCallIgnored
|
||||
URI.create(uri);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isLegalTime(String time) {
|
||||
try {
|
||||
Instant.parse(time);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isLegalDuration(String duration) {
|
||||
try {
|
||||
Duration.parse(duration);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.xboe.module.scorm.common;
|
||||
|
||||
import org.apache.commons.lang3.builder.EqualsBuilder;
|
||||
import org.apache.commons.lang3.builder.HashCodeBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
|
||||
public final class ID {
|
||||
|
||||
private final String identifier;
|
||||
|
||||
private final String lmsContentPackageID;
|
||||
|
||||
private final String lmsLearnerID;
|
||||
|
||||
public ID(String identifier, String lmsContentPackageID, String lmsLearnerID) {
|
||||
this.identifier = identifier;
|
||||
this.lmsContentPackageID = lmsContentPackageID;
|
||||
this.lmsLearnerID = lmsLearnerID;
|
||||
}
|
||||
|
||||
public final String getIdentifier() {
|
||||
return identifier;
|
||||
}
|
||||
|
||||
public final String getLmsContentPackageID() {
|
||||
return lmsContentPackageID;
|
||||
}
|
||||
|
||||
public final String getLmsLearnerID() {
|
||||
return lmsLearnerID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
ID id = (ID) o;
|
||||
|
||||
return new EqualsBuilder()
|
||||
.append(identifier, id.identifier)
|
||||
.append(lmsContentPackageID, id.lmsContentPackageID)
|
||||
.append(lmsLearnerID, id.lmsLearnerID)
|
||||
.isEquals();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return new HashCodeBuilder(17, 37)
|
||||
.append(identifier)
|
||||
.append(lmsContentPackageID)
|
||||
.append(lmsLearnerID)
|
||||
.toHashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this)
|
||||
.append("identifier", identifier)
|
||||
.append("lmsContentPackageID", lmsContentPackageID)
|
||||
.append("lmsLearnerID", lmsLearnerID)
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.xboe.module.scorm.common;
|
||||
|
||||
public interface LMSPersistDriver {
|
||||
|
||||
String querySCORMPackageZipFilePathBy(String lmsContentPackageID);
|
||||
|
||||
int queryActivityAttemptCountBy(String lmsContentPackageID, String activityID, String learnerID);
|
||||
|
||||
void saveActivityAttemptCount(String lmsContentPackageID, String activityID, String learnerID, int attemptCount);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.xboe.module.scorm.common;
|
||||
|
||||
public class LMSPersistDriverManager {
|
||||
|
||||
private static LMSPersistDriverManager instance;
|
||||
|
||||
private LMSPersistDriver driver;
|
||||
|
||||
private LMSPersistDriverManager() {
|
||||
|
||||
}
|
||||
|
||||
public static LMSPersistDriverManager getInstance() {
|
||||
if (instance == null) {
|
||||
synchronized (LMSPersistDriverManager.class) {
|
||||
if (instance == null) {
|
||||
instance = new LMSPersistDriverManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
|
||||
public void registerDriver(LMSPersistDriver lmsPersistDriver) {
|
||||
this.driver = lmsPersistDriver;
|
||||
}
|
||||
|
||||
public LMSPersistDriver getDriver() {
|
||||
return driver;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user