[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[higgins-dev] Some changes to IdAS proposal
|
Jim,
I have encountered with some problems during using IdAS as a result there
are some proposals to change IdAS interfaces.
1. I propose to remove the method getValues() from IProperty interface.
There are some reasons to do it:
a) We need to be able to change a value of Attribute (that extends
IProperty interface), but we can't say exactly which value will be changed
in case if Attibute has two or more values;
b) we can't foreknow which value will be returned by getValue() method if
Attibute has two or more values;
c) this method (getValues()) has no any sense in case of complex value
because we unable to set more then one complex value for attribute;
2. I propose to add "Iterable<IAttribute> getAttributes(URI attrID)" method
to IHasAttributes interface. This method will return a list of attibutes of
the same type and will be used instead of IProperty.getValues() to store a
list of values.
3. We need to be able to set/get "null" value for simple attibute. I propose
to use the following logic (let's assume that we create "uniqueIdentifier"
attibute):
a) we create individual of higgins:SimpleAttribute class (it is
higgins:String in case of uniqueIdentifier) and set it to a Subject as value
of higgins:uniqueIdentifier property;
b) if value is not null we create and set appropriate literal, otherwise do
nothing;
Two possible results are mentioned below:
subject has "uniqueIdentifier" attribute with value = "some ID":
<DigitalSubject>
<higgins:uniqueIdentifier>
<higgins:String>
<higgins:string
rdf:datatype="http://www.w3.org/2001/XMLSchema#string">some
ID</higgins:string>
</higgins:String>
</higgins:uniqueIdentifier>
</DigitalSubject>
subject has "uniqueIdentifier" attribute with null value:
<DigitalSubject>
<higgins:uniqueIdentifier>
<higgins:String/>
</higgins:uniqueIdentifier>
</DigitalSubject>
Thanks,
Sergey Lyakhov