001/* 002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others. 003 * 004 * All rights reserved. This program and the accompanying materials 005 * are made available under the terms of the Eclipse Public License v1.0 006 * which accompanies this distribution, and is available at 007 * http://www.eclipse.org/legal/epl-v10.html 008 * 009 * Contributors: 010 * Nuxeo - initial API and implementation 011 * 012 */ 013 014package org.nuxeo.ecm.automation.core.util; 015 016import org.codehaus.jackson.node.ObjectNode; 017import org.nuxeo.ecm.core.api.Blob; 018import org.nuxeo.ecm.core.api.Blobs; 019 020/** 021 * Very basic implementation of a Blob decoder Only usable for StringBlobs 022 * 023 * @author Tiry (tdelprat@nuxeo.com) 024 * @since 5.5 025 */ 026public class JSONStringBlobDecoder implements JSONBlobDecoder { 027 @Override 028 public Blob getBlobFromJSON(ObjectNode jsonObject) { 029 Blob blob = null; 030 031 String filename = null; 032 if (jsonObject.has("filename")) { 033 filename = jsonObject.get("filename").getTextValue(); 034 } 035 if (filename == null && jsonObject.has("name")) { 036 filename = jsonObject.get("name").getTextValue(); 037 } 038 String encoding = "UTF-8"; 039 if (jsonObject.has("encoding")) { 040 encoding = jsonObject.get("encoding").getTextValue(); 041 } 042 043 String mimetype = "text/plain"; 044 if (jsonObject.has("mime-type")) { 045 mimetype = jsonObject.get("mime-type").getTextValue(); 046 } 047 String data = null; 048 if (jsonObject.has("data")) { 049 data = jsonObject.get("data").getTextValue(); 050 } else if (jsonObject.has("content")) { 051 data = jsonObject.get("content").getTextValue(); 052 } 053 if (data == null) { 054 return null; 055 } else { 056 blob = Blobs.createBlob(data, mimetype, encoding); 057 } 058 return blob; 059 } 060}