# This file was generated by exp2python.  You probably don't want to edit
# it since your modifications will be lost if exp2python is used to
# regenerate it.
import sys

from SCL.SCLBase import *
from SCL.SimpleDataTypes import *
from SCL.ConstructedDataTypes import *
from SCL.AggregationDataTypes import *
from SCL.TypeChecker import check_type
from SCL.Builtin import *
from SCL.Rules import *

schema_name = 'test_array_of_simple_types'

schema_scope = sys.modules[__name__]


####################
 # ENTITY point #
####################
class point(BaseEntityClass):
	'''Entity point definition.

	:param arr_real
	:type arr_real:ARRAY(1,3,'REAL', scope = schema_scope)

	:param arr_string
	:type arr_string:ARRAY(1,3,'STRING', scope = schema_scope)

	:param arr_integer
	:type arr_integer:ARRAY(1,None,'INTEGER', scope = schema_scope)
	'''
	def __init__( self , arr_real,arr_string,arr_integer, ):
		self.arr_real = arr_real
		self.arr_string = arr_string
		self.arr_integer = arr_integer

	@apply
	def arr_real():
		def fget( self ):
			return self._arr_real
		def fset( self, value ):
		# Mandatory argument
			if value==None:
				raise AssertionError('Argument arr_real is mantatory and can not be set to None')
			if not check_type(value,ARRAY(1,3,'REAL', scope = schema_scope)):
				self._arr_real = ARRAY(value)
			else:
				self._arr_real = value
		return property(**locals())

	@apply
	def arr_string():
		def fget( self ):
			return self._arr_string
		def fset( self, value ):
		# Mandatory argument
			if value==None:
				raise AssertionError('Argument arr_string is mantatory and can not be set to None')
			if not check_type(value,ARRAY(1,3,'STRING', scope = schema_scope)):
				self._arr_string = ARRAY(value)
			else:
				self._arr_string = value
		return property(**locals())

	@apply
	def arr_integer():
		def fget( self ):
			return self._arr_integer
		def fset( self, value ):
		# Mandatory argument
			if value==None:
				raise AssertionError('Argument arr_integer is mantatory and can not be set to None')
			if not check_type(value,ARRAY(1,None,'INTEGER', scope = schema_scope)):
				self._arr_integer = ARRAY(value)
			else:
				self._arr_integer = value
		return property(**locals())
