[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Re: [sca-j] [NEW ISSUE] Java C&I Constrctor Examples are incorrect
I believe this is a duplicate of issue JAVA-39. However, I'd like to understand the reason for the assertion that the examples noted as "does not unambiguously identify all property and reference values" are incorrect. Simon Mike Edwards wrote: > > Raiser: Mike Edwards > > Target: sca-javaci-1.1-spec-wd03.pdf > > Description: > > The constructor examples in section 5 contain errors that make some of > them illegal and they must be fixed. > > /** Simple class taking a single property value */ > > public class Impl1 { > > String someProperty; > > public Impl1(String propval) {...} > > } > > *<mje> This one does not "unambiguously identify all property and > reference values"</mje>* > > /** Simple class taking a property and reference in the constructor; > > * The values are not injected into the fields. > > *// > > public class Impl2 { > > public String someProperty; > > public SomeService someReference; > > public Impl2(String a, SomeService b) {...} > > } > > *<mje> This one does not "unambiguously identify all property and > reference values"</mje>* > > /** Class declaring a named property and reference through the > constructor */ > > public class Impl3 { > > @Constructor({"someProperty", "someReference"}) > > public Impl3(String a, SomeService b) {...} > > } > > *<mje>@Constructor annotation has no such attributes (see [JAVACAA]) > </mje>* > > /** Class declaring a named property and reference through parameters */ > > public class Impl3b { > > public Impl3b( > > @Property("someProperty") String a, > > @Reference("someReference) SomeService b > > ) {...} > > } > > *<mje>This one is OK</mje>* > > /** Additional property set through a method */ > > public class Impl4 { > > public String someProperty; > > public SomeService someReference; > > public Impl2(String a, SomeService b) {...} > > @Property public void setAnotherProperty(int x) {...} > > } > > *<mje> This one does not "unambiguously identify all property and > reference values"</mje>* > > > Proposal: > > Replace the examples with the following ones: > > /** Constructor declared using @Constructor annotation */ > > public class Impl1 { > > private String someProperty; > > @Constructor > > public Impl1( @Property("someProperty") String propval ) {...} > > } > > /** Declared constructor unambiguously identifying all Property and > Reference values */ > > public class Impl2 { > > private String someProperty; > > private SomeService someReference; > > public Impl2( @Property("someProperty") String a, > > @Reference("someReference") SomeService b ) > > {...} > > } > > /** Declared constructor unambiguously identifying all Property and > Reference values > > plus an additional Property injected via a setter method */ > > public class Impl3 { > > private String someProperty; > > private String anotherProperty; > > private SomeService someReference; > > public Impl3( @Property("someProperty") String a, > > @Reference("someReference") SomeService b) > > {...} > > @Property > > public void setAnotherProperty( String anotherProperty ) {...} > > } > > /** No-arg constructor */ > > public class Impl4 { > > @Property > > public String someProperty; > > @Reference > > public SomeService someReference; > > public Impl4() {...} > > } > > > Yours, Mike. > > Strategist - Emerging Technologies, SCA & SDO. > Co Chair OASIS SCA Assembly TC. > IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain. > Phone & FAX: +44-1962-818014 Mobile: +44-7802-467431 > Email: mike_edwards@uk.ibm.com > > > ------------------------------------------------------------------------ > > / > / > > /Unless stated otherwise above: > IBM United Kingdom Limited - Registered in England and Wales with number > 741598. > Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU/ > > > > > >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]