public class JsonReader extends Object implements ContentReader
JsonReader Parses a Json document on content load and creates the
corresponding node structure with properties. Will not update protected nodes and
properties like rep:Policy and children.
Nodes, Properties and in fact complete subtrees may be described in JSON files
using the following skeleton structure (see http://www.json.org for information
on the syntax of JSON) :
# the name of the node is taken from the name of the file without the .json ext.
{
# optional primary node type, default "nt:unstructured"
"jcr:primaryType":"sling:ScriptedComponent",
# optional mixin node types as array
"jcr:mixinTypes": [ ],
# "properties" are added as key value pairs, the name of the key being the name
# of the property. The value is either the string property value, array for
# multi-values or an object whose value[s] property denotes the property
# value(s) and whose type property denotes the property type
"sling:contentClass": "com.day.sling.jcr.test.Test",
"sampleMulti": [ "v1", "v2" ],
"sampleStruct": 1,
"sampleStructMulti": [ 1, 2, 3 ],
# reference properties start with jcr:reference
"jcr:reference:sampleReference": "/test/content",
# path propertie start with jcr:path
"jcr:path:sampleReference": "/test/path",
# nested nodes are added as nested maps.
"sling:scripts": {
"jcr:primaryType": "sling:ScriptList",
"script1" :{
"primaryNodeType": "sling:Script",
"sling:name": "/test/content/jsp/start.jsp",
"sling:type": "jsp",
"sling:glob": "*"
}
}
}
| Modifier and Type | Field and Description |
|---|---|
static ImportProvider |
PROVIDER |
| Constructor and Description |
|---|
JsonReader() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
createAce(org.apache.sling.commons.json.JSONObject ace,
ContentCreator contentCreator)
Create or update an access control entry
|
protected void |
createAcl(Object obj,
ContentCreator contentCreator)
Create or update one or more access control entries for the current
node.
|
protected void |
createNode(String name,
org.apache.sling.commons.json.JSONObject obj,
ContentCreator contentCreator) |
protected void |
createPrincipal(org.apache.sling.commons.json.JSONObject json,
ContentCreator contentCreator)
Create or update a user or group
|
protected void |
createPrincipals(Object obj,
ContentCreator contentCreator)
Create or update one or more user and/or groups
{
"security:principals" : [
{
"name":"owner",
"isgroup":"true",
"members":[],
"dynamic":"true"
}
],
}
|
protected void |
createProperty(String name,
Object value,
ContentCreator contentCreator) |
protected String |
getName(String name) |
protected int |
getType(String name,
Object object) |
void |
parse(InputStream ins,
ContentCreator contentCreator)
Read the content from the input stream and create the
content using the provided content creator.
|
void |
parse(URL url,
ContentCreator contentCreator)
Read the content from the URL and create the
content using the provided content creator.
|
public static final ImportProvider PROVIDER
public void parse(URL url, ContentCreator contentCreator) throws IOException, javax.jcr.RepositoryException
ContentReaderparse in interface ContentReaderurl - The input stream.IOExceptionjavax.jcr.RepositoryExceptionContentReader.parse(java.net.URL, org.apache.sling.jcr.contentloader.internal.ContentCreator)public void parse(InputStream ins, ContentCreator contentCreator) throws IOException, javax.jcr.RepositoryException
ContentReaderparse in interface ContentReaderins - the input stream.IOExceptionjavax.jcr.RepositoryExceptionprotected void createNode(String name, org.apache.sling.commons.json.JSONObject obj, ContentCreator contentCreator) throws org.apache.sling.commons.json.JSONException, javax.jcr.RepositoryException
org.apache.sling.commons.json.JSONExceptionjavax.jcr.RepositoryExceptionprotected void createProperty(String name, Object value, ContentCreator contentCreator) throws org.apache.sling.commons.json.JSONException, javax.jcr.RepositoryException
org.apache.sling.commons.json.JSONExceptionjavax.jcr.RepositoryExceptionprotected void createPrincipals(Object obj, ContentCreator contentCreator) throws org.apache.sling.commons.json.JSONException, javax.jcr.RepositoryException
{
"security:principals" : [
{
"name":"owner",
"isgroup":"true",
"members":[],
"dynamic":"true"
}
],
}
org.apache.sling.commons.json.JSONExceptionjavax.jcr.RepositoryExceptionprotected void createPrincipal(org.apache.sling.commons.json.JSONObject json,
ContentCreator contentCreator)
throws org.apache.sling.commons.json.JSONException,
javax.jcr.RepositoryException
org.apache.sling.commons.json.JSONExceptionjavax.jcr.RepositoryExceptionprotected void createAcl(Object obj, ContentCreator contentCreator) throws org.apache.sling.commons.json.JSONException, javax.jcr.RepositoryException
{
"security:acl" : [
{
"principal" : "username1",
"granted" : [
"jcr:read",
"jcr:write"
],
"denied" : [
]
},
{
"principal" : "groupname1",
"granted" : [
"jcr:read",
"jcr:write"
]
}
]
}
org.apache.sling.commons.json.JSONExceptionjavax.jcr.RepositoryExceptionprotected void createAce(org.apache.sling.commons.json.JSONObject ace,
ContentCreator contentCreator)
throws org.apache.sling.commons.json.JSONException,
javax.jcr.RepositoryException
org.apache.sling.commons.json.JSONExceptionjavax.jcr.RepositoryExceptionCopyright © 2007–2014 The Apache Software Foundation. All rights reserved.