package com.venky.swf.extensions;
import java.io.InputStream;
import com.venky.swf.db.annotations.column.ui.mimes.MimeType;
import com.venky.swf.db.model.Model;
import com.venky.swf.db.model.io.ModelIOFactory;
import com.venky.swf.db.model.io.ModelReader;
import com.venky.swf.db.model.io.ModelReaderFactory;
import com.venky.swf.db.model.io.ModelWriter;
import com.venky.swf.db.model.io.ModelWriterFactory;
import com.venky.swf.db.model.io.xml.XMLModelReader;
import com.venky.swf.db.model.io.xml.XMLModelWriter;
import com.venky.swf.integration.FormatHelper;
import com.venky.swf.integration.FormatHelperBuilder;
import com.venky.swf.integration.XML;
import com.venky.xml.XMLElement;
public class XMLRegistrar {
static {
FormatHelper.registerFormat(MimeType.APPLICATION_XML, XMLElement.class, new FormatHelperBuilder<XMLElement>(){
@Override
public FormatHelper<XMLElement> constructFormatHelper(InputStream in) {
return new XML(in);
}
@Override
public FormatHelper<XMLElement> constructFormatHelper(String root,
boolean isPlural) {
return new XML(root,isPlural);
}
@Override
public FormatHelper<XMLElement> constructFormatHelper(
XMLElement rootElement) {
return new XML(rootElement);
}
});
ModelIOFactory.registerIOFactories(XMLElement.class, new ModelReaderFactory<XMLElement>() {
@Override
public <M extends Model> ModelReader<M, XMLElement> createModelReader(
Class<M> modelClass) {
return new XMLModelReader<M>(modelClass);
}
}, new ModelWriterFactory<XMLElement>() {
@Override
public <M extends Model> ModelWriter<M, XMLElement> createModelWriter(
Class<M> modelClass) {
return new XMLModelWriter<M>(modelClass);
}
});
}
}