def manifest_repr(self, p_num):
        """
        Builds a manifest string representation of the parameters and returns it
        :param p_num: int
        :return: string
        """
        # Build the parameter prefix
        prefix = "p" + str(p_num) + "_"

        # Generate the manifest string
        manifest = prefix + "MODE=" + ("IN" if self.type == Type.FILE else "") + "\n"
        manifest += prefix + "TYPE=" + str(self.type.value) + "\n"
        if self.type == Type.FILE and len(self.choices) > 0:
            manifest += prefix + "choices=" + self._choices() + "\n"
        manifest += prefix + "default_value=" + self.default_value + "\n"
        manifest += prefix + "description=" + GPTaskSpec.manifest_escape(self.description) + "\n"
        manifest += prefix + "fileFormat=" + ';'.join(self.file_format) + "\n"
        manifest += prefix + "flag=" + self.flag + "\n"
        manifest += prefix + "name=" + self.name + "\n"
        manifest += prefix + "numValues=" + self._num_values() + "\n"
        manifest += prefix + "optional=" + str(self.optional.value) + "\n"
        manifest += prefix + "prefix=" + (self.flag if self.prefix_when_specified else "") + "\n"
        manifest += prefix + "prefix_when_specified=" + (self.flag if self.prefix_when_specified else "") + "\n"
        manifest += prefix + "type=" + self._java_type() + "\n"
        manifest += prefix + "value=" + (self._choices() if self.type != Type.FILE and len(self.choices) > 0 else "") + "\n"

        # Return the manifest string
        return manifest