public void handle(Request request, Response response)
throws HandlerException {
MultiPartBody body = ParameterUtil.parseMultipart(request);
final FormFile formFile = body.getFormFileParameterValues("file")[0];
final String locationString = body.getTextParameterValues("location")[0];
final Model editableModel = ModelFactory.createDefaultModel();
final Resource infoBitResource = editableModel.createResource();
infoBitResource.addProperty(DISCOBITS.mediaType, formFile
.getMimeType().toString());
infoBitResource.addProperty(DISCOBITS.bytes, editableModel
.createTypedLiteral(formFile.getContent()));
infoBitResource.addProperty(RDF.type, DISCOBITS.InfoBit);
store.perform(identity, new StoreTransaction() {
public void execute(SourceStoreView storeView) {
NamedNode locationNode = new NamedNodeImpl(locationString);
FCAGraph origGraph = storeView.getGraph().filter(
Collections.singleton((GroundedNode) locationNode));
Model origModel = ModelFactory.createModelForGraph(origGraph);
editableModel.add(origModel);
Resource locationResource = editableModel
.createResource(locationString);
locationResource.addProperty(RDF.type, DISCOBITS.InfoDiscoBit);
locationResource.removeAll(DISCOBITS.infoBit);