Its definitely valid. To make it perminent however I think you might 
want to do the following:

* remove the @model annotation from the interface method
* remove all the @generated annoitation from the implementation method

That way the code generator will ignore (and not kill) any of the 
changed methods.

Did you try changing the "type" annotation as per my previous email?

Alessio Fabiani wrote:
> Justin, it's me again ... I found a workaround forcing the return type
> of wcs:spatialSubset from EList to List and manually modifying both
> the intrafece and the implementation, but I don't know if is the
> correct way to do that, what do you think about?
> 
> On Mon, Jul 14, 2008 at 10:04 AM, Alessio Fabiani
> <[EMAIL PROTECTED]> wrote:
>> Hi Justin,
>>
>> sorry to bother you again ... I tryied your solution, but I cannot
>> figure out how can be applied to this specific case. Let me better
>> describe the problem, the WCS 1.0.0 wcs:spatialSubset does not exactly
>> need just one gml:Envelope, but an unbounded set of gml:Envelopes ...
>> so the property of wcs:spatialSubset is an EList ... how this case can
>> be handled, and morover where is in GeoTools the source code of GML2
>> and GML3 EMF model? I can see just the bindings!
>>
>> Thanks for any help,
>>                                 Alessio.
>>
>> On Fri, Jul 11, 2008 at 7:01 PM, Alessio Fabiani
>> <[EMAIL PROTECTED]> wrote:
>>> Cool, that sounds better than the others, I will try that solution now.
>>>
>>> Thanks Justin.
>>>
>>> On Fri, Jul 11, 2008 at 6:58 PM, Justin Deoliveira <[EMAIL PROTECTED]>
>>> wrote:
>>>> Hi Alessio,
>>>>
>>>> It sounds like you found a away around your problem. But a possible third
>>>> solution:
>>>>
>>>> 3. Change the generated class SpatialSubsetType "manually" so that its
>>>> Envelope property is actually of the type geotools type envelope. I call
>>>> this "instrumenting" the model.
>>>>
>>>> Then the GML bindings should parse the Envelope, and the reflective EMF
>>>> bindings should still be able to reflectivley set the property.
>>>>
>>>> -Justin
>>>>
>>>> Alessio Fabiani wrote:
>>>>> Well, finally I got the solution .... just for knowledge I will briefly
>>>>> share the solution with the community, soon I will update the tutorial 
>>>>> that
>>>>> I have written for the EMF model generation, adding the binding
>>>>> implementation also.
>>>>>
>>>>> A bit of introduction first.
>>>>>
>>>>> The WCS 1.0.0 schema for the DomainSubset part requires a structure like
>>>>> the following:
>>>>>
>>>>>    <wcs:domainSubset>
>>>>>        <wcs:spatialSubset>
>>>>>            <gml:Envelope srsName="EPSG:32633">
>>>>>                <gml:pos>347649.93086859107 5176214.082539256</gml:pos>
>>>>>                <gml:pos>370725.976428591 5196961.352859256</gml:pos>
>>>>>            </gml:Envelope>
>>>>>            <gml:Grid dimension="2" srsName="EPSG:4326">
>>>>>                <gml:limits>
>>>>>                    <gml:GridEnvelope>
>>>>>                        <gml:low>0 0</gml:low>
>>>>>                        <gml:high>545 490</gml:high>
>>>>>                    </gml:GridEnvelope>
>>>>>                </gml:limits>
>>>>>            </gml:Grid>
>>>>>        </wcs:spatialSubset>
>>>>>    </wcs:domainSubset>
>>>>>
>>>>> As you can notice the domainSubset and the spatialSubset nodes belong to
>>>>> the "wcs" namespace, while the Envelope and Grid to the "gml" one instead.
>>>>> That means that the EnvelopeBinding and GridBinding have to be
>>>>> implemented into some "gt-gml" (just a dummy name) module and the
>>>>> spatialSubsetBinding and domainSubsetBinding have to be implemented into
>>>>> some "gt-wcs" package instead.
>>>>>
>>>>> At this point we have several ways to do that, but particular attention
>>>>> has to be put on how we implement the WCSConfiguration and 
>>>>> GMLConfiguration
>>>>> for both the WCS and GML binding packages (more details later).
>>>>>
>>>>> Method 1: if you would like the Parser to automatically populate the
>>>>> objects, than you must leave the EnvelopeBinding and the GridBinding
>>>>> respectively return the EMF Objects (EObjects) EnvelopeType and GridType.
>>>>>
>>>>> Method 2: if you would like to allow the EnvelopeBinding returning for
>>>>> instance a geotools GeneralEnvelope (or a JTS Envelope or whatelse), than
>>>>> you MUST say to the WCS spatialSubsetBinding and to the 
>>>>> domainSubsetBinding
>>>>> how to handle such case. You have here several ways too. One would be to
>>>>> write some specific geotools Converters from EnvelopeType to whatelse;
>>>>> another one, easier, would be to manually rewrite te "parse" methods of 
>>>>> the
>>>>> spatialSubsetBinding and domainSubsetBinding in order to handle the
>>>>> GeneralEnvelope parsing. The latter is for sure the best path to follow 
>>>>> ...
>>>>> but you have to pay particular attention on how you write the
>>>>> WCSConfiguration binding file, infact you have to explicitly register both
>>>>> the spatialSubsetBinding and the domainSubsetBinding implementations as
>>>>> represented below.
>>>>>
>>>>>        bindings.put(WCS.DomainSubsetType, new DomainSubsetTypeBinding());
>>>>>        bindings.put(WCS.SpatialSubsetType, new
>>>>> SpatialSubsetTypeBinding());
>>>>>
>>>>> Cheers,
>>>>>                Alessio.
>>>>>
>>>>> On Thu, Jul 10, 2008 at 4:18 PM, Alessio Fabiani
>>>>> <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
>>>>>
>>>>>    Hi Gabriel,
>>>>>
>>>>>    thanks for the response ... I have already inspected this
>>>>>    possibility, but does not seem to solve the problem ... I also
>>>>>    tryied several WCSConfiguration and GMLConfiguration combinations
>>>>>    ... but I got no successful result.
>>>>>    The only thing I noticed is that the AbstractComplexEMFBinding
>>>>>    superclass fails on the setProperty method trying to instantiate a
>>>>>    geotools.util.Converter from the expected EnvelopeType class to
>>>>>    jts.Envelope (or ReferencedEnvelope) one, since no one exists ...
>>>>>    the only thing I cannot really figure out is why that works for
>>>>>    gt-GML3 module and not for mine since they are almost equal !!!
>>>>>
>>>>>    On Thu, Jul 10, 2008 at 4:06 PM, Gabriel Roldán <[EMAIL PROTECTED]
>>>>>    <mailto:[EMAIL PROTECTED]>> wrote:
>>>>>
>>>>>        I guess if the binding declares it returns
>>>>>        ReferencedEnvelope.class in
>>>>>        getType() it should be respected...
>>>>>
>>>>>        like in class EnvelopeTypeBinding extends
>>>>>        AbstractComplexTypeBinding{
>>>>>
>>>>>         public Class getType() {
>>>>>               return ReferencedEnvelope.class;
>>>>>           }
>>>>>
>>>>>        }
>>>>>
>>>>>        though not sure that is the solution actually...
>>>>>
>>>>>        Gabriel
>>>>>
>>>>>        On Thursday 10 July 2008 03:43:30 pm Alessio Fabiani wrote:
>>>>>         > Hi all,
>>>>>         >
>>>>>         > I'm trying to create a new binding for the GML EnvelopeType
>>>>>        as a JTS
>>>>>         > Envelope, since I couldn't use geotools gml2/3 EMF models due
>>>>>        to some
>>>>>         > specific Elements defined only for WCS 1.0.0. <http://1.0.0.>
>>>>>         > Nevertheless I followed the implementation of the existing
>>>>>        gt-GML3 module
>>>>>         > EvnelopeTypeBinding, returning a ReferencedEnvelope object as
>>>>>        result of the
>>>>>         > EnvelopeTypeBinding parsing.
>>>>>         >
>>>>>         > Now ... all seems working fine until I try to parse a WCS 1.0.0
>>>>>         > SpatialSubsetType ... here I get an exception like the
>>>>> following:
>>>>>         >
>>>>>         > org.vfny.geoserver.wcs.WcsException: Parsing failed, the xml
>>>>>        request is
>>>>>         > most probably not compliant to the wcs schema
>>>>>         >     at
>>>>>
>>>>>  org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:50)
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.geoserver.wcs.xml.GetCoverageXmlParserTest.testBasic(GetCoverageXmlPars
>>>>>         >erTest.java:86) at
>>>>>        sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>         > Method) at
>>>>>        sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at
>>>>>         > sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
>>>>>        Source) at
>>>>>         > java.lang.reflect.Method.invoke(Unknown Source)
>>>>>         >     at junit.framework.TestCase.runTest(TestCase.java:164)
>>>>>         >     at junit.framework.TestCase.runBare(TestCase.java:130)
>>>>>         >     at
>>>>> junit.framework.TestResult$1.protect(TestResult.java:106)
>>>>>         >     at
>>>>>        junit.framework.TestResult.runProtected(TestResult.java:124)
>>>>>         >     at junit.framework.TestResult.run(TestResult.java:109)
>>>>>         >     at junit.framework.TestCase.run(TestCase.java:120)
>>>>>         >     at junit.framework.TestSuite.runTest(TestSuite.java:230)
>>>>>         >     at junit.framework.TestSuite.run(TestSuite.java:225)
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3
>>>>>         >TestReference.java:130) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:
>>>>>         >38) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
>>>>>         >unner.java:460) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestR
>>>>>         >unner.java:673) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner
>>>>>         >.java:386) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunne
>>>>>         >r.java:196) Caused by: java.lang.RuntimeException: Parsing
>>>>>        failed for
>>>>>         > spatialSubset: java.lang.RuntimeException: Unable to set
>>>>>        property: Envelope
>>>>>         > for eobject: { http://www.opengis.net/wcs}SpatialSubsetType
>>>>>        <http://www.opengis.net/wcs%7DSpatialSubsetType>
>>>>>         >     at
>>>>>        org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:152)
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWa
>>>>>         >lker.java:208) at
>>>>>         >
>>>>>        org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:174)
>>>>> at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java
>>>>>         >:222) at
>>>>>         >
>>>>>
>>>>>  org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:582)
>>>>>         >     at
>>>>>        org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown
>>>>>         > Source)
>>>>>         >     at
>>>>>        org.apache.xerces.impl.xs.XMLSchemaValidator.endElement(Unknown
>>>>>         > Source)
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
>>>>>         > Source)
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispat
>>>>>         >cher.dispatch(Unknown Source)
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>>>>>         > Source)
>>>>>         >     at
>>>>>        org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>>>         >     at
>>>>>        org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>>>>>         >     at org.apache.xerces.parsers.XMLParser.parse(Unknown
>>>>> Source)
>>>>>         >     at
>>>>>        org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>>>>         >     at org.geotools.xml.Parser.parse(Parser.java:180)
>>>>>         >     at org.geotools.xml.Parser.parse(Parser.java:158)
>>>>>         >     at
>>>>>
>>>>>  org.geoserver.wcs.xml.v1_0_0.WcsXmlReader.read(WcsXmlReader.java:48)
>>>>>         >     ... 19 more
>>>>>         > Caused by: java.lang.RuntimeException: Unable to set
>>>>>        property: Envelope for
>>>>>         > eobject: {http://www.opengis.net/wcs}SpatialSubsetType
>>>>>        <http://www.opengis.net/wcs%7DSpatialSubsetType>
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
>>>>>         >nding.java:271) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.geotools.xml.AbstractComplexEMFBinding.setProperties(AbstractComplexEMF
>>>>>         >Binding.java:202) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.geotools.xml.AbstractComplexEMFBinding.parse(AbstractComplexEMFBinding.
>>>>>         >java:143) at
>>>>>         >
>>>>>        org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:143)
>>>>>        ... 35
>>>>>         > more
>>>>>         > Caused by: java.lang.ClassCastException: The feature
>>>>>        'envelope's type
>>>>>         > 'EnvelopeType' does not permit a value of type
>>>>>         > 'org.geotools.geometry.jts.ReferencedEnvelope'
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$BasicFeatureMapEntry.vali
>>>>>         >date(EStructuralFeatureImpl.java:2843) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.emf.ecore.util.FeatureMapUtil.createEntry(FeatureMapUtil.java:1
>>>>>         >46) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.emf.ecore.util.BasicFeatureMap.createEntry(BasicFeatureMap.java
>>>>>         >:94) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.emf.ecore.util.BasicFeatureMap.addAll(BasicFeatureMap.java:1253
>>>>>         >) at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.eclipse.emf.ecore.util.FeatureMapUtil$FeatureEList.addAll(FeatureMapUti
>>>>>         >l.java:656) at org.geotools.xml.EMFUtils.add(EMFUtils.java:93)
>>>>>         >     at
>>>>>         >
>>>>>
>>>>>  
>>>>> org.geotools.xml.AbstractComplexEMFBinding.setProperty(AbstractComplexEMFBi
>>>>>         >nding.java:230) ... 38 more
>>>>>         >
>>>>>         > And if I return an EvnelopeType all works well ...
>>>>>         >
>>>>>         > any ideas? am I missing something? Do I have to build a
>>>>>        geotools converter
>>>>>         > or something like that?
>>>>>         >
>>>>>         > Any help kindly appreciated.
>>>>>         >
>>>>>         > Cheers,
>>>>>         >             Alessio.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  -------------------------------------------------------------------------
>>>>>        Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
>>>>>        Studies have shown that voting for your favorite open source
>>>>>        project,
>>>>>        along with a healthy diet, reduces your potential for chronic
>>>>>        lameness
>>>>>        and boredom. Vote Now at
>>>>> http://www.sourceforge.net/community/cca08
>>>>>        _______________________________________________
>>>>>        Geoserver-devel mailing list
>>>>>        [email protected]
>>>>>        <mailto:[email protected]>
>>>>>        https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>    --    -------------------------------------------------------
>>>>>    Eng. Alessio Fabiani
>>>>>    Vice-President /CTO GeoSolutions S.A.S.
>>>>>    Via Carignoni 51
>>>>>    55041 Camaiore (LU)
>>>>>    Italy
>>>>>
>>>>>    phone: +39 0584983027
>>>>>    fax: +39 0584983027
>>>>>    mob: +39 349 8227000
>>>>>
>>>>>
>>>>>    http://www.geo-solutions.it
>>>>>
>>>>>    -------------------------------------------------------
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> -------------------------------------------------------
>>>>> Eng. Alessio Fabiani
>>>>> Vice-President /CTO GeoSolutions S.A.S.
>>>>> Via Carignoni 51
>>>>> 55041 Camaiore (LU)
>>>>> Italy
>>>>>
>>>>> phone: +39 0584983027
>>>>> fax: +39 0584983027
>>>>> mob: +39 349 8227000
>>>>>
>>>>>
>>>>> http://www.geo-solutions.it
>>>>>
>>>>> -------------------------------------------------------
>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>> -------------------------------------------------------------------------
>>>>> Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
>>>>> Studies have shown that voting for your favorite open source project,
>>>>> along with a healthy diet, reduces your potential for chronic lameness
>>>>> and boredom. Vote Now at http://www.sourceforge.net/community/cca08
>>>>>
>>>>> !DSPAM:4007,487732ef278366491211187!
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>>
>>>>> _______________________________________________
>>>>> Geoserver-devel mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/geoserver-devel
>>>>>
>>>>>
>>>>> !DSPAM:4007,487732ef278366491211187!
>>>>
>>>> --
>>>> Justin Deoliveira
>>>> The Open Planning Project
>>>> [EMAIL PROTECTED]
>>>
>>>
>>> --
>>> -------------------------------------------------------
>>> Eng. Alessio Fabiani
>>> Vice-President /CTO GeoSolutions S.A.S.
>>> Via Carignoni 51
>>> 55041 Camaiore (LU)
>>> Italy
>>>
>>> phone: +39 0584983027
>>> fax: +39 0584983027
>>> mob: +39 349 8227000
>>>
>>>
>>> http://www.geo-solutions.it
>>>
>>> -------------------------------------------------------
>>
>>
>> --
>> -------------------------------------------------------
>> Eng. Alessio Fabiani
>> Vice-President /CTO GeoSolutions S.A.S.
>> Via Carignoni 51
>> 55041 Camaiore (LU)
>> Italy
>>
>> phone: +39 0584983027
>> fax: +39 0584983027
>> mob: +39 349 8227000
>>
>>
>> http://www.geo-solutions.it
>>
>> -------------------------------------------------------
>>
> 
> 
> 


-- 
Justin Deoliveira
The Open Planning Project
[EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to