[folks] Support vCard-like parameters for web service addresses
- From: Travis Reitter <treitter src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [folks] Support vCard-like parameters for web service addresses
- Date: Fri, 12 Aug 2011 15:58:01 +0000 (UTC)
commit eb1d4fd077d5a8489b750d82fde8f13d9a3c8e4b
Author: Travis Reitter <travis reitter collabora co uk>
Date: Tue Aug 9 17:40:41 2011 +0200
Support vCard-like parameters for web service addresses
Closes: bgo#653682 - Change WebServiceDetails.web_service_addresses to support
vCard-like arbitrary parameters
NEWS | 4 ++
backends/eds/lib/edsf-persona-store.vala | 15 ++++---
backends/eds/lib/edsf-persona.vala | 17 +++++---
backends/key-file/kf-persona-store.vala | 4 +-
backends/key-file/kf-persona.vala | 38 ++++++++++-------
backends/libsocialweb/lib/swf-persona.vala | 10 +++-
backends/tracker/lib/trf-persona-store.vala | 26 +++++++-----
backends/tracker/lib/trf-persona.vala | 15 ++++---
folks/individual-aggregator.vala | 17 +++++---
folks/individual.vala | 17 ++++----
folks/web-service-details.vala | 59 +++++++++++++++++++++++++--
tests/eds/link-personas.vala | 30 +++++++++-----
12 files changed, 174 insertions(+), 78 deletions(-)
---
diff --git a/NEWS b/NEWS
index 9383b83..9ce3520 100644
--- a/NEWS
+++ b/NEWS
@@ -41,6 +41,8 @@ Bugs fixed:
class
* Bug 655920 â Rebase PhoneDetails.numbers upon an AbstractFieldDetails-derived
class
+* Bug 653682 â Change WebServiceDetails.web_service_addresses to support
+ vCard-like arbitrary parameters
API changes:
* Swf.Persona retains and exposes its libsocialweb Contact
@@ -73,6 +75,8 @@ API changes:
* Remove Note class (obsoleted by NoteFieldDetails)
* Add and use PhoneFieldDetails for PhoneFieldDetails.phone_numbers
* Remove all PhoneDetails functions (obsoleted by PhoneFieldDetails)
+* Add and use WebServiceFieldDetails for
+ WebServiceFieldDetails.web_service_addresses
Overview of changes from libfolks 0.5.1 to libfolks 0.5.2
=========================================================
diff --git a/backends/eds/lib/edsf-persona-store.vala b/backends/eds/lib/edsf-persona-store.vala
index 63b3416..9234f27 100644
--- a/backends/eds/lib/edsf-persona-store.vala
+++ b/backends/eds/lib/edsf-persona-store.vala
@@ -283,8 +283,9 @@ public class Edsf.PersonaStore : Folks.PersonaStore
else if (k == Folks.PersonaStore.detail_key
(PersonaDetail.WEB_SERVICE_ADDRESSES))
{
- HashMultiMap<string, string> web_service_addresses =
- (HashMultiMap<string, string>) v.get_object ();
+ HashMultiMap<string, WebServiceFieldDetails>
+ web_service_addresses =
+ (HashMultiMap<string, WebServiceFieldDetails>) v.get_object ();
yield this._set_contact_web_service_addresses (contact,
web_service_addresses);
}
@@ -668,9 +669,9 @@ public class Edsf.PersonaStore : Folks.PersonaStore
}
internal async void _set_web_service_addresses (Edsf.Persona persona,
- MultiMap<string, string> web_service_addresses)
+ MultiMap<string, WebServiceFieldDetails> web_service_addresses)
{
- if (Utils.multi_map_str_str_equal (persona.web_service_addresses,
+ if (Utils.multi_map_str_afd_equal (persona.web_service_addresses,
web_service_addresses))
return;
@@ -688,7 +689,7 @@ public class Edsf.PersonaStore : Folks.PersonaStore
}
private async void _set_contact_web_service_addresses (E.Contact contact,
- MultiMap<string, string> web_service_addresses)
+ MultiMap<string, WebServiceFieldDetails> web_service_addresses)
{
var attr = contact.get_attribute ("X-FOLKS-WEB-SERVICES-IDS");
if (attr != null)
@@ -700,9 +701,9 @@ public class Edsf.PersonaStore : Folks.PersonaStore
foreach (var service in web_service_addresses.get_keys ())
{
var param = new E.VCardAttributeParam (service);
- foreach (var id in web_service_addresses.get (service))
+ foreach (var ws_fd in web_service_addresses.get (service))
{
- param.add_value (id);
+ param.add_value (ws_fd.value);
}
attr_n.add_param (param);
}
diff --git a/backends/eds/lib/edsf-persona.vala b/backends/eds/lib/edsf-persona.vala
index b347388..a0f789a 100644
--- a/backends/eds/lib/edsf-persona.vala
+++ b/backends/eds/lib/edsf-persona.vala
@@ -127,7 +127,7 @@ public class Edsf.Persona : Folks.Persona,
private HashSet<string> _local_ids;
private Set<string> _local_ids_ro;
- private HashMultiMap<string, string> _web_service_addresses;
+ private HashMultiMap<string, WebServiceFieldDetails> _web_service_addresses;
/**
* The e-d-s contact represented by this Persona
@@ -141,7 +141,7 @@ public class Edsf.Persona : Folks.Persona,
/**
* { inheritDoc}
*/
- public MultiMap<string, string> web_service_addresses
+ public MultiMap<string, WebServiceFieldDetails> web_service_addresses
{
get { return this._web_service_addresses; }
set
@@ -504,7 +504,11 @@ public class Edsf.Persona : Folks.Persona,
this._postal_addresses_ro = this._postal_addresses.read_only_view;
this._local_ids = new HashSet<string> ();
this._local_ids_ro = this._local_ids.read_only_view;
- this._web_service_addresses = new HashMultiMap<string, string> ();
+ this._web_service_addresses =
+ new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
this._groups = new HashSet<string> ();
this._groups_ro = this._groups.read_only_view;
@@ -543,8 +547,8 @@ public class Edsf.Persona : Folks.Persona,
var web_service_addresses =
this._web_service_addresses.get (web_service);
- foreach (string address in web_service_addresses)
- callback (web_service + ":" + address);
+ foreach (var ws_fd in web_service_addresses)
+ callback (web_service + ":" + ws_fd.value);
}
}
else
@@ -619,7 +623,8 @@ public class Edsf.Persona : Folks.Persona,
var service_name = service.get_name ().down ();
foreach (var service_id in service.get_values ())
{
- this._web_service_addresses.set (service_name, service_id);
+ this._web_service_addresses.set (service_name,
+ new WebServiceFieldDetails (service_id));
}
}
}
diff --git a/backends/key-file/kf-persona-store.vala b/backends/key-file/kf-persona-store.vala
index 722fce1..4f2efa9 100644
--- a/backends/key-file/kf-persona-store.vala
+++ b/backends/key-file/kf-persona-store.vala
@@ -312,9 +312,9 @@ public class Folks.Backends.Kf.PersonaStore : Folks.PersonaStore
: null;
unowned Value? val2 = details.lookup
(this.detail_key (PersonaDetail.WEB_SERVICE_ADDRESSES));
- MultiMap<string, string> web_service_addresses
+ MultiMap<string, WebServiceFieldDetails> web_service_addresses
= val2 != null
- ? (MultiMap<string, string>) val2.get_object ()
+ ? (MultiMap<string, WebServiceFieldDetails>) val2.get_object ()
: null;
uint im_addresses_size = (im_addresses == null)
? 0 : im_addresses.size;
diff --git a/backends/key-file/kf-persona.vala b/backends/key-file/kf-persona.vala
index 724a37c..4640dff 100644
--- a/backends/key-file/kf-persona.vala
+++ b/backends/key-file/kf-persona.vala
@@ -35,7 +35,7 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
{
private unowned GLib.KeyFile _key_file;
private HashMultiMap<string, ImFieldDetails> _im_addresses;
- private HashMultiMap<string, string> _web_service_addresses;
+ private HashMultiMap<string, WebServiceFieldDetails> _web_service_addresses;
private string _alias;
private const string[] _linkable_properties =
{
@@ -164,7 +164,7 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
/**
* { inheritDoc}
*/
- public MultiMap<string, string> web_service_addresses
+ public MultiMap<string, WebServiceFieldDetails> web_service_addresses
{
get
{ return this._web_service_addresses; }
@@ -176,7 +176,8 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
{
try
{
- this._key_file.remove_key (this.display_id, "web-service." + web_service);
+ this._key_file.remove_key (this.display_id,
+ "web-service." + web_service);
}
catch (KeyFileError e)
{
@@ -187,22 +188,25 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
/* Add the new web service addresses to the key file and build a
* table of them to set as the new property value */
- var web_service_addresses = new HashMultiMap<string, string> ();
+ var web_service_addresses =
+ new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
foreach (var web_service in value.get_keys ())
{
- var addresses = value.get (web_service);
+ var ws_fds = value.get (web_service);
- string[] addrs = (string[]) addresses.to_array ();
- addrs.length = addresses.size;
+ string[] addrs = new string[0];
+ foreach (var ws_fd in ws_fds)
+ addrs += ws_fd.value;
this._key_file.set_string_list (this.display_id,
"web-service." + web_service, addrs);
- foreach (var address in addresses)
- {
- web_service_addresses.set (web_service, address);
- }
+ foreach (var ws_fd in ws_fds)
+ web_service_addresses.set (web_service, ws_fd);
}
this._web_service_addresses = web_service_addresses;
@@ -235,7 +239,11 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
this._key_file = key_file;
this._im_addresses = new HashMultiMap<string, ImFieldDetails> (
null, null, ImFieldDetails.hash, (EqualFunc) ImFieldDetails.equal);
- this._web_service_addresses = new HashMultiMap<string, string> ();
+ this._web_service_addresses =
+ new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
/* Load the IM addresses from the key file */
try
@@ -264,7 +272,7 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
foreach (var web_service_address in web_service_addresses)
{
this._web_service_addresses.set (web_service,
- web_service_address);
+ new WebServiceFieldDetails (web_service_address));
}
continue;
@@ -332,8 +340,8 @@ public class Folks.Backends.Kf.Persona : Folks.Persona,
var web_service_addresses =
this._web_service_addresses.get (web_service);
- foreach (string address in web_service_addresses)
- callback (web_service + ":" + address);
+ foreach (var ws_fd in web_service_addresses)
+ callback (web_service + ":" + ws_fd.value);
}
}
else
diff --git a/backends/libsocialweb/lib/swf-persona.vala b/backends/libsocialweb/lib/swf-persona.vala
index b5676c9..d544270 100644
--- a/backends/libsocialweb/lib/swf-persona.vala
+++ b/backends/libsocialweb/lib/swf-persona.vala
@@ -120,8 +120,11 @@ public class Swf.Persona : Folks.Persona,
new HashMultiMap<string, ImFieldDetails> (null, null,
ImFieldDetails.hash, (EqualFunc) ImFieldDetails.equal);
- private HashMultiMap<string, string> _web_service_addresses =
- new HashMultiMap<string, string> ();
+ private HashMultiMap<string, WebServiceFieldDetails> _web_service_addresses =
+ new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
/**
* { inheritDoc}
@@ -250,7 +253,8 @@ public class Swf.Persona : Folks.Persona,
}
}
- this._web_service_addresses.set (service, id);
+ this._web_service_addresses.set (service,
+ new WebServiceFieldDetails (id));
update (contact);
}
diff --git a/backends/tracker/lib/trf-persona-store.vala b/backends/tracker/lib/trf-persona-store.vala
index d1ef72b..c5ee25f 100644
--- a/backends/tracker/lib/trf-persona-store.vala
+++ b/backends/tracker/lib/trf-persona-store.vala
@@ -664,8 +664,8 @@ public class Trf.PersonaStore : Folks.PersonaStore
Folks.PersonaStore.detail_key (
PersonaDetail.WEB_SERVICE_ADDRESSES))
{
- MultiMap<string, string> ws_obj =
- (MultiMap<string, string>) v.get_object ();
+ var ws_obj =
+ (MultiMap<string, WebServiceFieldDetails>) v.get_object ();
var ws_addrs = Trf.PersonaStore.serialize_web_services (ws_obj);
@@ -732,7 +732,7 @@ public class Trf.PersonaStore : Folks.PersonaStore
* @since 0.5.1
*/
public static string serialize_web_services (
- MultiMap<string, string> ws_obj)
+ MultiMap<string, WebServiceFieldDetails> ws_obj)
{
var str = "";
@@ -745,16 +745,16 @@ public class Trf.PersonaStore : Folks.PersonaStore
str += service + ":";
- var addrs = ws_obj.get (service);
+ var ws_fds = ws_obj.get (service);
bool first = true;
- foreach (var addr in addrs)
+ foreach (var ws_fd in ws_fds)
{
if (first == false)
{
str += ",";
}
- str += addr;
+ str += ws_fd.value;
first = false;
}
}
@@ -768,10 +768,14 @@ public class Trf.PersonaStore : Folks.PersonaStore
*
* @since 0.5.1
*/
- public static MultiMap<string, string> unserialize_web_services
- (string ws_addrs)
+ public static
+ MultiMap<string, WebServiceFieldDetails> unserialize_web_services (
+ string ws_addrs)
{
- var ret = new HashMultiMap<string, string> ();
+ var ret = new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
var services = ws_addrs.split (";");
foreach (var service_line in services)
@@ -782,7 +786,7 @@ public class Trf.PersonaStore : Folks.PersonaStore
foreach (var a in addrs)
{
- ret.set (service_name, a);
+ ret.set (service_name, new WebServiceFieldDetails (a));
}
}
@@ -1875,7 +1879,7 @@ public class Trf.PersonaStore : Folks.PersonaStore
}
internal async void _set_web_service_addrs (Trf.Persona persona,
- MultiMap<string, string> ws_obj)
+ MultiMap<string, WebServiceFieldDetails> ws_obj)
{
var ws_addrs = Trf.PersonaStore.serialize_web_services (ws_obj);
yield this._set_tracker_property (persona,
diff --git a/backends/tracker/lib/trf-persona.vala b/backends/tracker/lib/trf-persona.vala
index 9024eb2..5b97a52 100644
--- a/backends/tracker/lib/trf-persona.vala
+++ b/backends/tracker/lib/trf-persona.vala
@@ -341,13 +341,16 @@ public class Trf.Persona : Folks.Persona,
}
}
- private HashMultiMap<string, string> _web_service_addresses =
- new HashMultiMap<string, string> ();
+ private HashMultiMap<string, WebServiceFieldDetails> _web_service_addresses =
+ new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
/**
* { inheritDoc}
*/
- public MultiMap<string, string> web_service_addresses
+ public MultiMap<string, WebServiceFieldDetails> web_service_addresses
{
get { return this._web_service_addresses; }
set
@@ -473,8 +476,8 @@ public class Trf.Persona : Folks.Persona,
var web_service_addresses =
this._web_service_addresses.get (web_service);
- foreach (string address in web_service_addresses)
- callback (web_service + ":" + address);
+ foreach (var ws_fd in web_service_addresses)
+ callback (web_service + ":" + ws_fd.value);
}
}
else
@@ -870,7 +873,7 @@ public class Trf.Persona : Folks.Persona,
internal bool _set_web_service_addrs (string ws_addrs)
{
this._web_service_addresses =
- (HashMultiMap<string, string>)
+ (HashMultiMap<string, WebServiceFieldDetails>)
Trf.PersonaStore.unserialize_web_services (ws_addrs);
this.notify_property ("web-service-addresses");
return true;
diff --git a/folks/individual-aggregator.vala b/folks/individual-aggregator.vala
index ec10d28..e42715c 100644
--- a/folks/individual-aggregator.vala
+++ b/folks/individual-aggregator.vala
@@ -1152,8 +1152,15 @@ public class Folks.IndividualAggregator : Object
this._configured_writeable_store_type_id);
/* `protocols_addrs_set` will be passed to the new Kf.Persona */
- var protocols_addrs_set = new HashMultiMap<string, ImFieldDetails> ();
- var web_service_addrs_set = new HashMultiMap<string, string> ();
+ var protocols_addrs_set = new HashMultiMap<string, ImFieldDetails> (
+ null, null,
+ (GLib.HashFunc) ImFieldDetails.hash,
+ (GLib.EqualFunc) ImFieldDetails.equal);
+ var web_service_addrs_set =
+ new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
/* List of local_ids */
var local_ids = new Gee.HashSet<string> ();
@@ -1187,10 +1194,8 @@ public class Folks.IndividualAggregator : Object
var ws_addresses =
ws_details.web_service_addresses.get (web_service);
- foreach (var ws_address in ws_addresses)
- {
- web_service_addrs_set.set (web_service, ws_address);
- }
+ foreach (var ws_fd in ws_addresses)
+ web_service_addrs_set.set (web_service, ws_fd);
}
}
diff --git a/folks/individual.vala b/folks/individual.vala
index 9ca9ee4..959a612 100644
--- a/folks/individual.vala
+++ b/folks/individual.vala
@@ -97,7 +97,7 @@ public class Folks.Individual : Object,
* Persona.is_user == true. Iff this is > 0, Individual.is_user == true. */
private uint _persona_user_count = 0;
private HashMultiMap<string, ImFieldDetails> _im_addresses;
- private HashMultiMap<string, string> _web_service_addresses;
+ private HashMultiMap<string, WebServiceFieldDetails> _web_service_addresses;
private string _nickname = "";
/**
@@ -506,7 +506,7 @@ public class Folks.Individual : Object,
/**
* { inheritDoc}
*/
- public MultiMap<string, string> web_service_addresses
+ public MultiMap<string, WebServiceFieldDetails> web_service_addresses
{
get { return this._web_service_addresses; }
private set {}
@@ -689,7 +689,11 @@ public class Folks.Individual : Object,
this._im_addresses = new HashMultiMap<string, ImFieldDetails> (
null, null, ImFieldDetails.hash, (EqualFunc) ImFieldDetails.equal);
- this._web_service_addresses = new HashMultiMap<string, string> ();
+ this._web_service_addresses =
+ new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
this._persona_set =
new HashSet<Persona> (direct_hash, direct_equal);
this._persona_set_ro = this._persona_set.read_only_view;
@@ -1107,11 +1111,8 @@ public class Folks.Individual : Object,
web_service_details.web_service_addresses.get (
cur_web_service);
- foreach (var address in cur_addresses)
- {
- this._web_service_addresses.set (cur_web_service,
- address);
- }
+ foreach (var ws_fd in cur_addresses)
+ this._web_service_addresses.set (cur_web_service, ws_fd);
}
}
}
diff --git a/folks/web-service-details.vala b/folks/web-service-details.vala
index 7e848a0..35a31bc 100644
--- a/folks/web-service-details.vala
+++ b/folks/web-service-details.vala
@@ -21,8 +21,58 @@
using Gee;
/**
- * web service addresses exposed by an object implementing
- * { link PresenceDetails}.
+ * Object representing a web service contact that can have some parameters
+ * associated with it.
+ *
+ * See { link Folks.AbstractFieldDetails}.
+ *
+ * @since UNRELEASED
+ */
+public class Folks.WebServiceFieldDetails : AbstractFieldDetails<string>
+{
+ /**
+ * Create a new WebServiceFieldDetails.
+ *
+ * @param value the value of the field
+ * @param parameters initial parameters. See
+ * { link AbstractFieldDetails.parameters}. A `null` value is equivalent to an
+ * empty map of parameters.
+ *
+ * @return a new WebServiceFieldDetails
+ *
+ * @since UNRELEASED
+ */
+ public WebServiceFieldDetails (string value,
+ MultiMap<string, string>? parameters = null)
+ {
+ this.value = value;
+ if (parameters != null)
+ this.parameters = parameters;
+ }
+
+ /**
+ * { inheritDoc}
+ *
+ * @since UNRELEASED
+ */
+ public override bool equal (AbstractFieldDetails<string> that)
+ {
+ return base.equal<string> (that);
+ }
+
+ /**
+ * { inheritDoc}
+ *
+ * @since UNRELEASED
+ */
+ public override uint hash ()
+ {
+ return base.hash ();
+ }
+}
+
+/**
+ * Web service contact details.
*
* @since 0.5.0
*/
@@ -37,9 +87,10 @@ public interface Folks.WebServiceDetails : Object
* Web service addresses are guaranteed to be unique per web service, but
* not necessarily unique amongst all web services.
*
- * @since 0.5.1
+ * @since UNRELEASED
*/
- public abstract Gee.MultiMap<string, string> web_service_addresses
+ public abstract
+ Gee.MultiMap<string, WebServiceFieldDetails> web_service_addresses
{
get; set;
}
diff --git a/tests/eds/link-personas.vala b/tests/eds/link-personas.vala
index d3556f5..1eaeca3 100644
--- a/tests/eds/link-personas.vala
+++ b/tests/eds/link-personas.vala
@@ -212,9 +212,12 @@ public class LinkPersonasTests : Folks.TestCase
}
else if (this._linking_method == LinkingMethod.WEB_SERVICE_ADDRESSES)
{
- v1 = Value (typeof (MultiMap<string, string>));
- var wsa1 = new HashMultiMap<string, string> ();
- wsa1.set ("twitter", this._im_address_1);
+ v1 = Value (typeof (MultiMap<string, WebServiceFieldDetails>));
+ var wsa1 = new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
+ wsa1.set ("twitter", new WebServiceFieldDetails (this._im_address_1));
v1.set_object (wsa1);
details1.insert (wsk, (owned) v1);
}
@@ -240,9 +243,12 @@ public class LinkPersonasTests : Folks.TestCase
}
else if (this._linking_method == LinkingMethod.WEB_SERVICE_ADDRESSES)
{
- v3 = Value (typeof (MultiMap<string, string>));
- var wsa2 = new HashMultiMap<string, string> ();
- wsa2.set ("lastfm", this._im_address_2);
+ v3 = Value (typeof (MultiMap<string, WebServiceFieldDetails>));
+ var wsa2 = new HashMultiMap<string, WebServiceFieldDetails> (
+ null, null,
+ (GLib.HashFunc) WebServiceFieldDetails.hash,
+ (GLib.EqualFunc) WebServiceFieldDetails.equal);
+ wsa2.set ("lastfm", new WebServiceFieldDetails (this._im_address_2));
v3.set_object (wsa2);
details2.insert (wsk, (owned) v3);
}
@@ -362,14 +368,18 @@ public class LinkPersonasTests : Folks.TestCase
{
foreach (var service in i.web_service_addresses.get_keys ())
{
- var ws_ids = i.web_service_addresses.get (service);
- foreach (var ws_id in ws_ids)
+ var ws_fds = i.web_service_addresses.get (service);
+ foreach (var ws_fd in ws_fds)
{
- if (ws_id == this._linking_props.get ("prop1"))
+ if (ws_fd.equal (
+ new WebServiceFieldDetails (
+ this._linking_props.get ("prop1"))))
{
this._linking_props.unset ("prop1");
}
- else if (ws_id == this._linking_props.get ("prop2"))
+ else if (ws_fd.equal (
+ new WebServiceFieldDetails (
+ this._linking_props.get ("prop2"))))
{
this._linking_props.unset ("prop2");
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]