Package org.jboss.xb.binding.sunday.unmarshalling

Examples of org.jboss.xb.binding.sunday.unmarshalling.TermBeforeSetParentCallback


         resolver.addSchemaLocation("http://www.w3.org/2005/05/xmlmime", xmimeXsd);

         SCHEMA = XsdBinder.bind(testXsd, resolver);
         SCHEMA.setIgnoreUnresolvedFieldOrClass(false);

         TermBeforeSetParentCallback callback = new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ElementBinding e = (ElementBinding) ctx.getParticle().getTerm();
               Class propType = ctx.resolvePropertyType();

               String localPart = e.getQName().getLocalPart();
               if("image".equals(localPart) ||
                   "sig".equals(localPart) ||
                   "imageWithContentType".equals(localPart) ||
                   "octets".equals(localPart) ||
                   "jpeg".equals(localPart))
               {
                  assertEquals("expected " + byte[].class + " for " + localPart, byte[].class, propType);
               }
               else if("awtImage".equals(localPart))
               {
                  assertEquals(java.awt.Image.class, propType);
               }
               else if("string".equals(localPart))
               {
                  assertEquals(String.class, propType);
               }
               else if("source".equals(localPart))
               {
                  assertEquals(javax.xml.transform.Source.class, propType);
               }
               else
               {
                  fail("unexpected element: " + e.getQName());
               }
               return o;
            }
         };

         ElementBinding e = SCHEMA.getElement(new javax.xml.namespace.QName("http://www.jboss.org/xml/test/xop", "e"));
         SequenceBinding seq = (SequenceBinding) e.getType().getParticle().getTerm();
         for(Iterator i = seq.getParticles().iterator(); i.hasNext();)
         {
            ParticleBinding particle = (ParticleBinding) i.next();
            ElementBinding child = (ElementBinding) particle.getTerm();
            if(! "xopContent".equals( child.getQName().getLocalPart()))
               child.setBeforeSetParentCallback(callback);
         }

         TermBeforeSetParentCallback xmimeBase64Callback = new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ElementBinding e = (ElementBinding) ctx.getParticle().getTerm();
               Class propType = ctx.resolvePropertyType();
View Full Code Here


                  o = ((GlobalElement.StringType)o).data;
               }
               return o;
            }
         });        
         stringType.setBeforeSetParentCallback(new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticle();
               assertNotNull(particle);
               assertTrue(particle.getTerm().isElement());
               ElementBinding element = (ElementBinding) particle.getTerm();
              
               String eName = element.getQName().getLocalPart();
               if(eName.equals("stringType"))
               {
                  assertTrue(ctx.getParentValue() instanceof GlobalElement);
                  TermBinding parentTerm = ctx.getParentParticle().getTerm();
                  assertTrue(parentTerm.isElement());
                  assertEquals("global", ((ElementBinding)parentTerm).getQName().getLocalPart());

                  assertEquals("stringType", ctx.resolvePropertyName());
                  assertEquals(StringType.class, ctx.resolvePropertyType());
               }
               else if(eName.equals("item"))
               {
                  assertTrue(ctx.getParentValue() instanceof GlobalElement.Sequence);
                  TermBinding parentTerm = ctx.getParentParticle().getTerm();
                  assertTrue(parentTerm instanceof SequenceBinding);
                 
                  assertEquals("item", ctx.resolvePropertyName());
                  assertEquals(StringType.class, ctx.resolvePropertyType());
               }
               else
               {
                  fail("Expected stringType or item but got " + eName);
               }
               return o == null ? null : new GlobalElement.StringType((String)o);
            }
         });
        
         // have to override string type's handlers
         ElementBinding global = SCHEMA.getElement(new QName("http://jboss.org/ns/test", "global"));
         SequenceBinding sequence = (SequenceBinding) global.getType().getParticle().getTerm();
         Iterator iter = sequence.getParticles().iterator();
         iter.next(); // stringType element
         ElementBinding stringElement = (ElementBinding) ((ParticleBinding)iter.next()).getTerm();
         stringElement.setBeforeMarshallingCallback(new TermBeforeMarshallingCallback()
         {
            public Object beforeMarshalling(Object o, MarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticleBinding();
               assertNotNull(particle);
               assertTrue(particle.getTerm().isElement());
               ElementBinding element = (ElementBinding) particle.getTerm();
               assertEquals(new QName("http://jboss.org/ns/test", "stringElement"), element.getQName());
              
               TypeBinding type = element.getType();
               assertEquals(Constants.QNAME_STRING, type.getQName());
              
               return o == null ? null : (String)o;
            }
         });        
         stringElement.setBeforeSetParentCallback(new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticle();
               assertNotNull(particle);
               assertTrue(particle.getTerm().isElement());
               ElementBinding element = (ElementBinding) particle.getTerm();
               assertEquals(new QName("http://jboss.org/ns/test", "stringElement"), element.getQName());
              
               assertTrue(ctx.getParentValue() instanceof GlobalElement);
               TermBinding parentTerm = ctx.getParentParticle().getTerm();
               assertTrue(parentTerm.isElement());
               assertEquals("global", ((ElementBinding)parentTerm).getQName().getLocalPart());

               assertEquals(String.class, ctx.resolvePropertyType());

               return o == null ? null : (String)o;
            }
         });
        
         // sequence
         sequence = (SequenceBinding) ((ParticleBinding)iter.next()).getTerm();
         sequence.setBeforeMarshallingCallback(new TermBeforeMarshallingCallback()
         {
            public Object beforeMarshalling(Object o, MarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticleBinding();
               assertNotNull(particle);
               assertTrue(particle.getTerm() instanceof SequenceBinding);

               if(o != null)
               {
                  GlobalElement.Sequence seq = new GlobalElement.Sequence();
                  seq.item = (StringType) o;
                  o = seq;
               }
               return o;
            }
         });
         sequence.setBeforeSetParentCallback(new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticle();
               assertTrue(particle.getTerm() instanceof SequenceBinding);
View Full Code Here

                  o = ((GlobalElement.StringType)o).data;
               }
               return o;
            }
         });        
         stringType.setBeforeSetParentCallback(new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticle();
               assertNotNull(particle);
               assertTrue(particle.getTerm().isElement());
               ElementBinding element = (ElementBinding) particle.getTerm();
              
               String eName = element.getQName().getLocalPart();
               if(eName.equals("stringType"))
               {
                  assertTrue(ctx.getParentValue() instanceof GlobalElement);
                  TermBinding parentTerm = ctx.getParentParticle().getTerm();
                  assertTrue(parentTerm.isElement());
                  assertEquals("global", ((ElementBinding)parentTerm).getQName().getLocalPart());

                  assertEquals("stringType", ctx.resolvePropertyName());
                  assertEquals(StringType.class, ctx.resolvePropertyType());
               }
               else if(eName.equals("item"))
               {
                  assertTrue(ctx.getParentValue() instanceof GlobalElement.Sequence);
                  TermBinding parentTerm = ctx.getParentParticle().getTerm();
                  assertTrue(parentTerm instanceof SequenceBinding);
                 
                  assertEquals("item", ctx.resolvePropertyName());
                  assertEquals(StringType.class, ctx.resolvePropertyType());
               }
               else
               {
                  fail("Expected stringType or item but got " + eName);
               }
               return o == null ? null : new GlobalElement.StringType((String)o);
            }
         });
        
         // have to override string type's handlers
         ElementBinding global = SCHEMA.getElement(new QName("http://jboss.org/ns/test", "global"));
         SequenceBinding sequence = (SequenceBinding) global.getType().getParticle().getTerm();
         Iterator<ParticleBinding> iter = sequence.getParticles().iterator();
         iter.next(); // stringType element
         ElementBinding stringElement = (ElementBinding) iter.next().getTerm();
         stringElement.setBeforeMarshallingCallback(new TermBeforeMarshallingCallback()
         {
            public Object beforeMarshalling(Object o, MarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticleBinding();
               assertNotNull(particle);
               assertTrue(particle.getTerm().isElement());
               ElementBinding element = (ElementBinding) particle.getTerm();
               assertEquals(new QName("http://jboss.org/ns/test", "stringElement"), element.getQName());
              
               TypeBinding type = element.getType();
               assertEquals(Constants.QNAME_STRING, type.getQName());
              
               return o == null ? null : (String)o;
            }
         });        
         stringElement.setBeforeSetParentCallback(new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticle();
               assertNotNull(particle);
               assertTrue(particle.getTerm().isElement());
               ElementBinding element = (ElementBinding) particle.getTerm();
               assertEquals(new QName("http://jboss.org/ns/test", "stringElement"), element.getQName());
              
               assertTrue(ctx.getParentValue() instanceof GlobalElement);
               TermBinding parentTerm = ctx.getParentParticle().getTerm();
               assertTrue(parentTerm.isElement());
               assertEquals("global", ((ElementBinding)parentTerm).getQName().getLocalPart());

               assertEquals(String.class, ctx.resolvePropertyType());

               return o == null ? null : (String)o;
            }
         });
        
         // sequence
         sequence = (SequenceBinding) ((ParticleBinding)iter.next()).getTerm();
         sequence.setBeforeMarshallingCallback(new TermBeforeMarshallingCallback()
         {
            public Object beforeMarshalling(Object o, MarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticleBinding();
               assertNotNull(particle);
               assertTrue(particle.getTerm() instanceof SequenceBinding);

               if(o != null)
               {
                  GlobalElement.Sequence seq = new GlobalElement.Sequence();
                  seq.item = (StringType) o;
                  o = seq;
               }
               return o;
            }
         });
         sequence.setBeforeSetParentCallback(new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ParticleBinding particle = ctx.getParticle();
               assertTrue(particle.getTerm() instanceof SequenceBinding);
View Full Code Here

         resolver.mapSchemaLocation("http://www.w3.org/2005/05/xmlmime", xmimeXsd);

         SCHEMA = XsdBinder.bind(testXsd, resolver);
         SCHEMA.setIgnoreUnresolvedFieldOrClass(false);

         TermBeforeSetParentCallback callback = new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ElementBinding e = (ElementBinding) ctx.getParticle().getTerm();
               Class<?> propType = ctx.resolvePropertyType();

               String localPart = e.getQName().getLocalPart();
               if("image".equals(localPart) ||
                     "sig".equals(localPart) ||
                     "imageWithContentType".equals(localPart) ||
                     "octets".equals(localPart) ||
                     "jpeg".equals(localPart))
               {
                  assertEquals("expected " + byte[].class + " for " + localPart, byte[].class, propType);
               }
               else if("awtImage".equals(localPart))
               {
                  assertEquals(java.awt.Image.class, propType);
               }
               else if("string".equals(localPart))
               {
                  assertEquals(String.class, propType);
               }
               else if("source".equals(localPart))
               {
                  assertEquals(javax.xml.transform.Source.class, propType);
               }
               else
               {
                  fail("unexpected element: " + e.getQName());
               }
               return o;
            }
         };

         ElementBinding e = SCHEMA.getElement(new javax.xml.namespace.QName("http://www.jboss.org/xml/test/xop", "e"));
         SequenceBinding seq = (SequenceBinding) e.getType().getParticle().getTerm();
         for(Iterator<?> i = seq.getParticles().iterator(); i.hasNext();)
         {
            ParticleBinding particle = (ParticleBinding) i.next();
            ElementBinding child = (ElementBinding) particle.getTerm();
            if(! "xopContent".equals( child.getQName().getLocalPart()))
               child.setBeforeSetParentCallback(callback);
         }

         TermBeforeSetParentCallback xmimeBase64Callback = new TermBeforeSetParentCallback()
         {
            public Object beforeSetParent(Object o, UnmarshallingContext ctx)
            {
               ElementBinding e = (ElementBinding) ctx.getParticle().getTerm();
               Class<?> propType = ctx.resolvePropertyType();
View Full Code Here

TOP

Related Classes of org.jboss.xb.binding.sunday.unmarshalling.TermBeforeSetParentCallback

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.