hefeixia
2021-02-18 5b8c95c760840f09910730943b21391e47187315
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package frame.object.data;
 
import java.lang.reflect.Constructor;
import java.sql.ResultSet;
 
import frame.object.meta.EntityMeta;
 
public class EntityClassFactory extends EntityFactory { 
 
    private Class<? extends Entity> clazz;
    
    public EntityClassFactory(Class<? extends Entity> clazz) {
        this.clazz = clazz;
    }
    
    @Override
    public Entity createEntity(ResultSet rslt) throws Exception {
        Constructor<? extends Entity> constructor = clazz.getConstructor(EntityMeta.class);
        
        if (constructor == null) {
            throw new DataException("ConstructorError", "Constructor error : " + clazz.getName());
        }
        
        return constructor.newInstance(entityMeta);
    }
    
}