32 lines
1.2 KiB
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;
|
||
|
}
|
||
|
}
|