import os
import cog
import property_handlers
import jsonpickle

def generate_element(schema_path):
	file_path = schema_path
	schema = ''
	
	with open(file_path, 'r') as file:
		file_content = file.read()
		schema = jsonpickle.decode(file_content)

	cog.outl("/* #region GENERATED SECTION, DO NOT HAND EDIT */")

	property_handlers.generate_class(schema)
	cog.outl("{")
	property_handlers.generate_init(schema, property_handlers.extract_superclass(schema))
	
	property_handlers.generate_property_names(schema)
	
	property_handlers.generate_serialize(schema)

	cog.outl("\t/*[ Data Getter / Setter ]*/")
	
	property_handlers.generate_property_accessors(schema)

	# generate functions
	for property in schema['properties']:
		property_handlers.generate_getters_setters(property, schema['properties'][property])
	
	cog.outl("\t/*[ Variable Declarations ]*/")

	for property in schema['properties']:
		property_handlers.generate_variable_declaration(property, schema['properties'][property])

	cog.outl("}")
	cog.outl("/* #endregion END GENERATED SECTION */")
