View Javadoc

1   package org.kuali.mobility.util.mapper;
2   
3   import java.io.IOException;
4   import java.io.InputStream;
5   import java.net.URL;
6   import java.net.URLConnection;
7   
8   import org.apache.log4j.Logger;
9   import org.kuali.mobility.util.mapper.entity.DataMapping;
10  import org.kuali.mobility.util.mapper.entity.MappingElement;
11  
12  import com.thoughtworks.xstream.XStream;
13  
14  public class DataConfig {
15  	private static final Logger logger = Logger.getLogger(DataConfig.class);
16  
17  	public DataMapping loadConfiguation(final String fileName) throws IOException {
18  		final XStream xstream = configureXstream();
19  		return (DataMapping) xstream.fromXML(getClass().getClassLoader().getResourceAsStream(fileName));
20  	}
21  
22  	public DataMapping loadConfiguation(final URL url, Integer connectionTimeout, Integer readTimeout) throws IOException {
23  		final XStream xstream = configureXstream();
24  
25  		URLConnection con = url.openConnection();
26  		con.setConnectTimeout(connectionTimeout);
27  		con.setReadTimeout(readTimeout);
28  		InputStream in = con.getInputStream();
29  
30  		return (DataMapping) xstream.fromXML(in);
31  	}
32  
33  	private XStream configureXstream() {
34  		final XStream xstream = new XStream();
35  		xstream.alias("dataMapping", DataMapping.class);
36  		xstream.addImplicitCollection(DataMapping.class, "mappings", "mapping", MappingElement.class);
37  		xstream.aliasAttribute(MappingElement.class, "mapTo", "mapTo");
38  		xstream.aliasAttribute(MappingElement.class, "mapFrom", "mapFrom");
39  		xstream.aliasAttribute(MappingElement.class, "isAttribute", "attribute");
40  		xstream.aliasAttribute(MappingElement.class, "list", "list");
41  		xstream.aliasAttribute(MappingElement.class, "type", "type");
42  		xstream.processAnnotations(DataMapping.class);
43  		return xstream;
44  	}
45  }