protected void executeSetMethod(String fieldName, Object value,
			T newInstanceo, Class<?> setClass) throws FactoryFillingException {
		// Obtain the method name
		String setterName = this.getSetterGetterMethodName(fieldName,
				SETTER_PREFIX);
		// execute the actual setter method
		try {
			logger.debug("method to execute: " + setterName + " Value " + value
					+ " DTO: " + newInstanceo);
			Class<?> setterParamClass = null;
			if (setClass != null) {
				setterParamClass = setClass;
			} else {
				setterParamClass = value.getClass();
			}
			this.executeMethod(setterName, setterParamClass, newInstanceo,
					this.toInstatiate, value);

		} catch (SecurityException e) {
			logger.error(
					FactoryFillingException.EXECUTE_SETMETHOD_SECURITY_ERROR, e);
			throw new FactoryFillingException(
					FactoryFillingException.EXECUTE_SETMETHOD_SECURITY_ERROR, e);
		} catch (NoSuchMethodException e) {
			logger.error(
					FactoryFillingException.EXECUTE_SETMETHOD_NOMETHOD_ERROR, e);
			throw new FactoryFillingException(
					FactoryFillingException.EXECUTE_SETMETHOD_NOMETHOD_ERROR, e);
		} catch (IllegalArgumentException e) {
			logger.error(
					FactoryFillingException.EXECUTE_SETMETHOD_ILEGALARGUMENT_ERROR,
					e);
			throw new FactoryFillingException(
					FactoryFillingException.EXECUTE_SETMETHOD_ILEGALARGUMENT_ERROR,
					e);
		} catch (IllegalAccessException e) {
			logger.error(
					FactoryFillingException.EXECUTE_SETMETHOD_ILEGALACCES_ERROR,
					e);
			throw new FactoryFillingException(
					FactoryFillingException.EXECUTE_SETMETHOD_ILEGALACCES_ERROR,
					e);
		} catch (InvocationTargetException e) {
			logger.error(
					FactoryFillingException.EXECUTE_SETMETHOD_IVOTGT_ERROR, e);
			throw new FactoryFillingException(
					FactoryFillingException.EXECUTE_SETMETHOD_IVOTGT_ERROR, e);
		}

	}