/**
 * Copyright (c) 2011, 2014 - Lunifera GmbH (Gross Enzersdorf), Loetz GmbH&Co.KG (Heidelberg)
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 */
package org.eclipse.osbp.dsl.entity.tests.datatypes.dtos {
	
	/* Imports the required artifacts */

	datatype long jvmType java.lang.Long as primitive;
	datatype int jvmType java.lang.Integer as primitive;
	datatype String jvmType java.lang.String;
	datatype date jvmType java.util.Date;
	datatype bool jvmType java.lang.Boolean as primitive;

}
