Coverage report

  %line %branch
org.apache.portals.graffito.jcr.mapper.impl.DigesterDescriptorReader
0% 
0% 

 1  
 /*
 2  
  * Copyright 2000-20045 The Apache Software Foundation.
 3  
  * 
 4  
  * Licensed under the Apache License, Version 2.0 (the "License");
 5  
  * you may not use this file except in compliance with the License.
 6  
  * You may obtain a copy of the License at
 7  
  * 
 8  
  *      http://www.apache.org/licenses/LICENSE-2.0
 9  
  * 
 10  
  * Unless required by applicable law or agreed to in writing, software
 11  
  * distributed under the License is distributed on an "AS IS" BASIS,
 12  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  
  * See the License for the specific language governing permissions and
 14  
  * limitations under the License.
 15  
  */
 16  
 package org.apache.portals.graffito.jcr.mapper.impl;
 17  
 
 18  
 import java.io.FileInputStream;
 19  
 import java.io.FileNotFoundException;
 20  
 import java.io.InputStream;
 21  
 
 22  
 import org.apache.commons.digester.Digester;
 23  
 import org.apache.portals.graffito.jcr.exception.InitMapperException;
 24  
 import org.apache.portals.graffito.jcr.mapper.model.BeanDescriptor;
 25  
 import org.apache.portals.graffito.jcr.mapper.model.ClassDescriptor;
 26  
 import org.apache.portals.graffito.jcr.mapper.model.CollectionDescriptor;
 27  
 import org.apache.portals.graffito.jcr.mapper.model.FieldDescriptor;
 28  
 import org.apache.portals.graffito.jcr.mapper.model.MappingDescriptor;
 29  
 
 30  
 /**
 31  
  * Helper class that reads the xml mapping file and load all class descriptors into memory (object graph)
 32  
  * 
 33  
  * @author <a href="mailto:christophe.lombart@sword-technologies.com">Lombart Christophe </a>
 34  
  * @author <a href='mailto:the_mindstorm[at]evolva[dot]ro'>Alexandru Popescu</a>
 35  
  */
 36  0
 public class DigesterDescriptorReader
 37  
 {
 38  0
     private boolean validating = true;
 39  
     
 40  
     /**
 41  
      * Set if the mapping should be validated.
 42  
      * @param flag <tt>true</tt> if the mapping should be validated
 43  
      */
 44  
     public void setValidating(boolean flag) {
 45  0
         this.validating= flag;
 46  0
     }
 47  
 
 48  
 	/**
 49  
 	 * Load all class descriptors found in the xml mapping file.
 50  
 	 * 
 51  
 	 * @param stream the xml mapping file reference
 52  
 	 * @return a {@link MappingDescriptor}
 53  
 	 * 
 54  
 	 */
 55  
 	public MappingDescriptor loadClassDescriptors(InputStream stream)
 56  
 	{
 57  
 		try
 58  
 		{
 59  0
 			Digester digester = new Digester();
 60  0
 			digester.setValidating(this.validating);
 61  
 
 62  0
 			digester.addObjectCreate("graffito-jcr", MappingDescriptor.class);
 63  0
             digester.addSetProperties("graffito-jcr", "package", "package");
 64  
 
 65  
 			// --------------------------------------------------------------------------------
 66  
 			// Rules used for the class-descriptor element
 67  
 			// --------------------------------------------------------------------------------
 68  
 
 69  0
 			digester.addObjectCreate("graffito-jcr/class-descriptor", ClassDescriptor.class);
 70  0
 			digester.addSetProperties("graffito-jcr/class-descriptor", "className", "className");
 71  0
 			digester.addSetProperties("graffito-jcr/class-descriptor", "jcrNodeType", "jcrNodeType");
 72  0
             digester.addSetProperties("graffito-jcr/class-descriptor", "jcrSuperTypes", "jcrSuperTypes");
 73  0
             digester.addSetProperties("graffito-jcr/class-descriptor", "jcrMixinTypes", "jcrMixinTypes");
 74  0
             digester.addSetProperties("graffito-jcr/class-descriptor", "extends", "superClass");
 75  0
             digester.addSetProperties("graffito-jcr/class-descriptor", "abstract", "abstract");
 76  0
             digester.addSetProperties("graffito-jcr/class-descriptor", "discriminatorValue", "discriminatorValue");
 77  
 
 78  0
 			digester.addSetNext("graffito-jcr/class-descriptor", "addClassDescriptor");
 79  
 
 80  
 			// --------------------------------------------------------------------------------
 81  
 			// Rules used for the field-descriptor element
 82  
 			// --------------------------------------------------------------------------------
 83  
 
 84  0
 			digester.addObjectCreate("graffito-jcr/class-descriptor/field-descriptor", FieldDescriptor.class);
 85  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "fieldName", "fieldName");
 86  0
             digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "fieldType", "fieldType");
 87  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "jcrName", "jcrName");
 88  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "id", "id");
 89  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "path", "path");
 90  0
             digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "descriminator", "descriminator");
 91  0
             digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "jcrType", "jcrType");
 92  0
             digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "jcrAutoCreated", "jcrAutoCreated");
 93  0
             digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "jcrMandatory", "jcrMandatory");
 94  0
             digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "jcrOnParentVersion", "jcrOnParentVersion");
 95  0
             digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "jcrProtected", "jcrProtected");
 96  0
             digester.addSetProperties("graffito-jcr/class-descriptor/field-descriptor", "jcrMultiple", "jcrMultiple");
 97  
 
 98  0
             digester.addSetNext("graffito-jcr/class-descriptor/field-descriptor", "addFieldDescriptor");
 99  
 
 100  
 			// --------------------------------------------------------------------------------
 101  
 			// Rules used for the bean-descriptor element
 102  
 			// --------------------------------------------------------------------------------
 103  
 
 104  0
 			digester.addObjectCreate("graffito-jcr/class-descriptor/bean-descriptor", BeanDescriptor.class);
 105  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "fieldName", "fieldName");
 106  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "jcrName", "jcrName");
 107  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "proxy", "proxy");
 108  0
             digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "inline", "inline");
 109  0
             digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "converter", "converter");
 110  0
             digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "jcrNodeType", "jcrNodeType");
 111  0
             digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "jcrAutoCreated", "jcrAutoCreated");
 112  0
             digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "jcrMandatory", "jcrMandatory");
 113  0
             digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "jcrOnParentVersion", "jcrOnParentVersion");
 114  0
             digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "jcrProtected", "jcrProtected");
 115  0
             digester.addSetProperties("graffito-jcr/class-descriptor/bean-descriptor", "jcrSameNameSiblings", "jcrSameNameSiblings");
 116  
 			
 117  0
             digester.addSetNext("graffito-jcr/class-descriptor/bean-descriptor", "addBeanDescriptor");
 118  
 
 119  
 			// --------------------------------------------------------------------------------
 120  
 			// Rules used for the collection-descriptor element
 121  
 			// --------------------------------------------------------------------------------
 122  
 
 123  0
 			digester.addObjectCreate("graffito-jcr/class-descriptor/collection-descriptor", CollectionDescriptor.class);
 124  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "fieldName", "fieldName");
 125  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "jcrName", "jcrName");
 126  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "proxy", "proxy");
 127  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "elementClassName", "elementClassName");
 128  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "collectionConverter", "collectionConverterClassName");
 129  0
 			digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "collectionClassName", "collectionClassName");
 130  0
             digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "jcrNodeType", "jcrNodeType");
 131  0
             digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "jcrAutoCreated", "jcrAutoCreated");
 132  0
             digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "jcrMandatory", "jcrMandatory");
 133  0
             digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "jcrOnParentVersion", "jcrOnParentVersion");
 134  0
             digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "jcrProtected", "jcrProtected");
 135  0
             digester.addSetProperties("graffito-jcr/class-descriptor/collection-descriptor", "jcrSameNameSiblings", "jcrSameNameSiblings");            
 136  0
 			digester.addSetNext("graffito-jcr/class-descriptor/collection-descriptor", "addCollectionDescriptor");
 137  
 
 138  0
             return (MappingDescriptor) digester.parse(stream);
 139  
 		}
 140  0
 		catch (Exception e)
 141  
 		{
 142  0
 			throw new InitMapperException("Impossible to read the xml mapping file", e);
 143  
 		}
 144  
 	}
 145  
 
 146  
 	/**
 147  
 	 * Load all class descriptors found in the xml mapping file.
 148  
 	 * 
 149  
 	 * @param xmlFile the xml mapping file reference
 150  
 	 * @return a {@link MappingDescriptor}
 151  
 	 * 
 152  
 	 */	
 153  
 	public MappingDescriptor loadClassDescriptors(String xmlFile)
 154  
 	{
 155  
 		try
 156  
 		{
 157  0
 			return loadClassDescriptors(new FileInputStream(xmlFile));
 158  
 		}
 159  0
 		catch (FileNotFoundException e)
 160  
 		{
 161  0
 			throw new InitMapperException(e);
 162  
 		}
 163  
 	}
 164  
 }

This report is generated by jcoverage, Maven and Maven JCoverage Plugin.