You've already forked FrameTour-BE
人脸
This commit is contained in:
59
src/main/java/com/ycwl/basic/facebody/FaceBodyFactory.java
Normal file
59
src/main/java/com/ycwl/basic/facebody/FaceBodyFactory.java
Normal file
@@ -0,0 +1,59 @@
|
||||
package com.ycwl.basic.facebody;
|
||||
|
||||
import com.ycwl.basic.facebody.adapter.AliFaceBodyAdapter;
|
||||
import com.ycwl.basic.facebody.adapter.IFaceBodyAdapter;
|
||||
import com.ycwl.basic.facebody.enums.FaceBodyAdapterType;
|
||||
import com.ycwl.basic.facebody.exceptions.FaceBodyUnsupportedException;
|
||||
import com.ycwl.basic.storage.exceptions.StorageConfigException;
|
||||
import com.ycwl.basic.storage.exceptions.StorageUndefinedException;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class FaceBodyFactory {
|
||||
public static IFaceBodyAdapter getAdapter(String typeName) {
|
||||
FaceBodyAdapterType adapterEnum;
|
||||
try {
|
||||
adapterEnum = FaceBodyAdapterType.valueOf(typeName);
|
||||
} catch (Exception e) {
|
||||
throw new FaceBodyUnsupportedException("不支持的Adapter类型");
|
||||
}
|
||||
return getAdapter(adapterEnum);
|
||||
}
|
||||
|
||||
public static IFaceBodyAdapter getAdapter(FaceBodyAdapterType type) {
|
||||
switch (type) {
|
||||
case ALI:
|
||||
return new AliFaceBodyAdapter();
|
||||
default:
|
||||
throw new FaceBodyUnsupportedException("不支持的Adapter类型");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected static Map<String, IFaceBodyAdapter> namedAdapter = new HashMap<>();
|
||||
protected static IFaceBodyAdapter defaultAdapter = null;
|
||||
|
||||
public static void register(String name, IFaceBodyAdapter adapter) {
|
||||
namedAdapter.put(name, adapter);
|
||||
}
|
||||
|
||||
public static IFaceBodyAdapter use(String name) {
|
||||
IFaceBodyAdapter adapter = namedAdapter.get(name);
|
||||
if (adapter == null) {
|
||||
throw new StorageUndefinedException("未定义的存储方式:"+name);
|
||||
}
|
||||
return adapter;
|
||||
}
|
||||
|
||||
public static IFaceBodyAdapter use() {
|
||||
if (defaultAdapter == null) {
|
||||
throw new StorageConfigException("未定义默认存储方式");
|
||||
}
|
||||
return defaultAdapter;
|
||||
}
|
||||
|
||||
public static void setDefault(String defaultName) {
|
||||
FaceBodyFactory.defaultAdapter = use(defaultName);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user