public Construct createConstruct(String uri, GenericTreeNode<SyntaxTreeElement> node)
	{
		String className = config.getConstructClassName(uri);
		if(className == null) {
			return null;
		}

		@SuppressWarnings("rawtypes")
		Class constructClass;
		Constructor constructor;
		try {
			constructClass = Class.forName(className);
			constructor = constructClass.getDeclaredConstructor(GenericTreeNode.class);
		} catch (ClassNotFoundException e) {
			return null;
		} catch (NoSuchMethodException e) {
			return null;
		} catch (SecurityException e) {
			return null;
		}
		
		try {
			return (Construct) constructor.newInstance(node);
		} catch (InstantiationException e) { 
			e.printStackTrace();
			return null;
		} catch (IllegalAccessException e) {
			e.printStackTrace();
			return null;
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
			return null;
		} catch (InvocationTargetException e) {
			e.printStackTrace();
			return null;
		}
	}