NewPipeExtractor/timeago-parser/src/main/java/org/schabi/newpipe/extractor/timeago/PatternsManager.java

32 lines
1.2 KiB
Java

package org.schabi.newpipe.extractor.timeago;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.lang.reflect.InvocationTargetException;
public class PatternsManager {
/**
* Return an holder object containing all the patterns array.
*
* @return an object containing the patterns. If not existent, {@code null}.
*/
@Nullable
public static PatternsHolder getPatterns(@Nonnull String languageCode, @Nullable String countryCode) {
final String targetLocalizationClassName = languageCode +
(countryCode == null || countryCode.isEmpty() ? "" : "_" + countryCode);
try {
final Class<?> targetClass = Class.forName(
"org.schabi.newpipe.extractor.timeago.patterns." + targetLocalizationClassName);
return (PatternsHolder) targetClass.getDeclaredMethod("getInstance").invoke(null);
} catch (ClassNotFoundException ignored) {
// Target localization is not supported
} catch (IllegalAccessException | NoSuchMethodException | InvocationTargetException e) {
e.printStackTrace();
}
return null;
}
}