Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package bpiwowar.argparser.handlers;
 
 import java.io.File;
 
Handler for XStream serialized objects

Author(s):
Benjamin Piwowarski <benjamin@bpiwowar.net>
public class XStreamHandler extends GenericObjectsHandler {
	private static final Logger logger = Logger.getLogger(XStreamHandler.class);
	public @interface Options {
		Class<? extends Converter>[] converters() default {};
	}
	public XStreamHandler(Object objectField field) {
		super(objectfield);
	}
	protected Object process(ArgParser argParserStringScanner scanner)
		String name = scanner.getString();
		File file = new File(name);
		final XStream xstream = new XStream();
//		xstream.processAnnotations(object.getClass());
		xstream.autodetectAnnotations(true);
		for (Options options : new Options[] {
			if (options != null) {
				for (Class<? extends Converterconverter : options
						.converters()) {
					.info("Adding XStream converter " + converter);
					try {
						xstream.registerConverter(converter.newInstance());
						.debug("Added converter " + converter);
catch (InstantiationException e) {
						.error("Cannot add the converter " + e);
catch (IllegalAccessException e) {
						.error("Cannot add the converter " + e);
					}
				}
			}
		if (file.isFile()) {
			try {
				Object object = xstream.fromXML(new FileInputStream(file));
				.debug(String.format("Loaded object %s from file %s",
						file));
				addValue(object);
				return object;
catch (FileNotFoundException e) {
				throw new StringScanException(e);
			}
else {
			// Try to parse XML
		}
		throw new RuntimeException("Not implemented");
	}
New to GrepCode? Check out our FAQ X