	public String encode() {
		if (name != null && value != null && !isFlagParameter) {
			if (GenericObject.isMySubclass(value.getClass())) {
				GenericObject gv = (GenericObject) value;
				return name + separator + quotes + gv.encode() + quotes;
			} else if (GenericObjectList.isMySubclass(value.getClass())) {
				GenericObjectList gvlist = (GenericObjectList) value;
				return name + separator + gvlist.encode();
			} else if ( value.toString().equals("")) {
				if (name.toString().equals(gov.nist.javax.sip.header.ParameterNames.OPAQUE))
					return name + separator + quotes + quotes;
				else
					return name;
			} else 
				return name + separator + quotes + value.toString() + quotes;
		} else if (name == null && value != null) {
			if (GenericObject.isMySubclass(value.getClass())) {
				GenericObject gv = (GenericObject) value;
				return gv.encode();
			} else if (GenericObjectList.isMySubclass(value.getClass())) {
				GenericObjectList gvlist = (GenericObjectList) value;
				return gvlist.encode();
			}
			return quotes + value.toString() + quotes;
		} else if (name != null && (value == null || isFlagParameter)) {
			return name;
		} else
			return "";
	}

	public String encode() {
		if (name != null && value != null && !isFlagParameter) {
			if (GenericObject.isMySubclass(value.getClass())) {
				GenericObject gv = (GenericObject) value;
				return name + separator + quotes + gv.encode() + quotes;
			} else if (GenericObjectList.isMySubclass(value.getClass())) {
				GenericObjectList gvlist = (GenericObjectList) value;
				return name + separator + gvlist.encode();
			} else if ( value.toString().equals("")) {
				if ( this.isQuotedString ) {
					return name + separator + quotes + quotes;
				} else 
					return name;
			} else 
				return name + separator + quotes + value.toString() + quotes;
		} else if (name == null && value != null) {
			if (GenericObject.isMySubclass(value.getClass())) {
				GenericObject gv = (GenericObject) value;
				return gv.encode();
			} else if (GenericObjectList.isMySubclass(value.getClass())) {
				GenericObjectList gvlist = (GenericObjectList) value;
				return gvlist.encode();
			}
			return quotes + value.toString() + quotes;
		} else if (name != null && (value == null || isFlagParameter)) {
			return name;
		} else
			return "";
	}
