I think it wouldn't be a good idea, because if you want to check if there is
a property with the specified name using hasProperty method and later to get
the property with getProperty(string) it would look for the property name
twice in the property list, for example:
if (hasProperty("ID")) { // look on the list here
const Property& t = getProperty("ID"); // and here
}
The best way should be:
int propertyIndex = getPropertyIndex("ID");
if (propertyIndex != -1) { // if it hasn't been found
const Property& t = getProperty(propertyIndex); // and here to get the
Property directly
}
However, if the method getPropertyIndex(string) doesn't find any property
with the specified name it also throws a SDOPropertyNotFoundException. I
think we could purpose not a bool
Type::hasProperty(std::string propertyName) method, but a int
Type::getPropertyIndex(string) that returns a -1 value if the property name
is not found, instead of an exception.
Another question, where do I find the sdo spec?
Adriano Crestani
On 1/11/07, Pete Robbins <[EMAIL PROTECTED] > wrote:
On 11/01/07, Adriano Crestani < [EMAIL PROTECTED]> wrote:
>
> Thanks Pete, I thought there would be an easier way to do this. But if
you
> say so, I think it's the only way. Thanks again!
That is what is in the spec. Maybe we could propose a bool
Type::hasProperty(std::string propertyName); method
Cheers,
Adriano Crestani
>
> On 1/10/07, Pete Robbins <[EMAIL PROTECTED]> wrote:
> >
> > On 10/01/07, Adriano Crestani <[EMAIL PROTECTED]> wrote:
> > >
> > > I'm begginer with C++ and I have one doubt about the function
defined
> in
> > > Type.h: "virtual SDO_API const Property& getProperty(const char*
> > > propertyName) const = 0". It's supposed to return a reference to a
> > > Property
> > > object that has the name equal to the parameter propertyName, but if
> > there
> > > is no Property object with this name? What does this function
return?
> >
> >
> > It would through a SDOPropertyNotFoundException.
> >
> > I tried to do this...
> > >
> > > if (type.getProperty("ID") == NULL)
> > >
> > > ...but as long as far as I know it's not possible. Is there a way to
> > check
> > > if the function has found Property object with the specified name or
> > not.
> > >
> > > Adriano Crestani
> >
> >
> >
> > There is no easy way to do this. You would need to wrap the
getProperty
> in
> > a
> > try/catch block.
> >
> > Cheers,
> >
> > --
> > Pete
> >
> >
>
>
--
Pete