package com.founderdpt.comm.xworld.orm.mapping; import java.net.URL; import java.util.HashMap; import java.util.Map; import javax.xml.bind.JAXBException; import com.founderdpt.comm.xworld.orm.mapping.model.XworldMapping; import com.founderdpt.comm.xworld.orm.mapping.model.XworldMapping.Column.Generator; import com.founderdpt.comm.xworld.orm.mapping.model.XworldMapping.Id; import com.founderdpt.comm.xworld.util.xml.JAXBUtil; public class MappingManager { public static Map cache_Mapping = new HashMap(); public static XworldMapping get(Class clazz) throws JAXBException { String clazz_name = clazz.getName(); XworldMapping mapping = (XworldMapping) cache_Mapping.get(clazz_name); if (mapping == null) { URL xworld_config = clazz.getResource(clazz.getSimpleName() + ".xworld.xml"); mapping = (XworldMapping) JAXBUtil.Xml2Object(xworld_config, XworldMapping.class); Id id = mapping.getId(); if(id==null){ id=new Id(); com.founderdpt.comm.xworld.orm.mapping.model.XworldMapping.Id.Generator generator = new com.founderdpt.comm.xworld.orm.mapping.model.XworldMapping.Id.Generator(); generator.setClazz("uuid"); id.setGenerator( generator); id.setName("id"); id.setType("attr"); }else{ if(id.getGenerator()==null){ com.founderdpt.comm.xworld.orm.mapping.model.XworldMapping.Id.Generator generator = new com.founderdpt.comm.xworld.orm.mapping.model.XworldMapping.Id.Generator(); generator.setClazz("uuid"); id.setGenerator(generator); } if(id.getName()==null){ id.setName("id"); } if(id.getType()==null){ id.setType("attr"); } } mapping.setId(id); cache_Mapping.put(clazz_name, mapping); } return mapping; } }