code: public static ApiBodyMetadata mapTypeToPojo(JCodeModel pojoCodeModel, RamlRoot document, TypeDeclaration type) {
  		RamlInterpretationResult interpret = RamlInterpreterFactory.getInterpreterForType(type).interpret(document, type, pojoCodeModel,
  				false);
  
  		// here we expect that a new object is created i guess... we'd need to
  		// see how primitive arrays fit in
  		JClass pojo = null;
  		if (interpret.getBuilder() != null) {
  			pojo = interpret.getBuilder().getPojo();
  		} else if (interpret.getResolvedClass() != null) {
  			pojo = interpret.getResolvedClass();
  		}
  
  		if (pojo == null) {
  			throw new IllegalStateException("No Pojo created or resolved for type " + type.getClass().getSimpleName() + ":" + type.name());
  		}
  
  		if (pojo.name().equals("Void")) {
  			return null;
  		}
  
  		boolean array = false;
  		String pojoName = pojo.name();
  		if (pojo.name().contains("List<") || pojo.name().contains("Set<")) {
  			array = true;
  			pojoName = pojo.getTypeParameters().get(0).name();
  		}
  
  		return new ApiBodyMetadata(pojoName, type, array, pojoCodeModel);
  	}
docs: Maps a RAML Data Type to a JCodeModel using JSONSchema2Pojo and
  encapsulates it along with some metadata into an {@link ApiBodyMetadata}
  object.
  
  @param pojoCodeModel
  The code model containing the classes generated during
  generation
  @param document
  The Raml document being parsed
  @param type
  The RAML type declaration
  @return Object representing this Body