Examples of ElementBinding


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

      }
   }
  
   public void testAttributesInSchema()
   {
      ElementBinding eBinding = SCHEMA.getElement(new QName(NS_1, "e"));
      TypeBinding eType = eBinding.getType();
      Collection attributes = eType.getAttributes();
      assertNotNull(attributes);
      assertEquals(3, attributes.size());
      assertNotNull(eType.getAttribute(UNQUALIFIED_QNAME));
      assertNotNull(eType.getAttribute(MATE_QNAME));
View Full Code Here

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

         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();

               assertNotNull("Failed to resolve property type for "+e.getQName(), propType);

               String localPart = e.getQName().getLocalPart();
               if("xopContent".equals(localPart))
               {
                  assertEquals(String.class, propType);
                  if(propType.equals(String.class))
                  {
View Full Code Here

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

               {
                  ParticleBinding particle = ctx.getParticleBinding();
                  assertNotNull(particle);
                  TermBinding term = particle.getTerm();
                  assertTrue(term.isElement());
                  ElementBinding element = (ElementBinding) term;
                  String localPart = element.getQName().getLocalPart();
                  assertTrue("stringType".endsWith(localPart) || "item".equals(localPart));
                  TypeBinding type = element.getType();
                  assertEquals(Constants.QNAME_STRING, type.getQName());
                 
                  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());
View Full Code Here

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

      mapType.addElement(QNAME_ENTRY3, entry3Type, 0, true);
      mapType.addElement(QNAME_ENTRY4, entry4Type, 0, true);

      // sequence as entry
      SequenceBinding entrySeq = new SequenceBinding(schema);
      ElementBinding keyElement = new ElementBinding(schema, new QName(NS, "key"), new TypeBinding());
      entrySeq.addParticle(new ParticleBinding(keyElement));
      ElementBinding valueElement = new ElementBinding(schema, new QName(NS, "value"), new TypeBinding());
      entrySeq.addParticle(new ParticleBinding(valueElement));

      ParticleBinding entryParticle = new ParticleBinding(entrySeq);
      entryParticle.setMinOccurs(0);
      entryParticle.setMaxOccursUnbounded(true);
      mapType.addParticle(entryParticle);

      mapType.addElement(QNAME_SUBMAP, mapType, 0, true);
      schema.addElement(QNAME_MAP, mapType);

      // Handler implementations
      mapType.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new HashMap();
         }
      }
      );

      ElementInterceptor addMapEntryInterceptor = new DefaultElementInterceptor()
      {
         public void add(Object parent, Object child, QName name)
         {
            Map map = (Map)parent;
            Object[] arr = (Object[])child;
            map.put(arr[0], arr[1]);
         }
      };
      mapType.pushInterceptor(QNAME_ENTRY1, addMapEntryInterceptor);
      mapType.pushInterceptor(QNAME_ENTRY2, addMapEntryInterceptor);
      mapType.pushInterceptor(QNAME_ENTRY3, addMapEntryInterceptor);
      mapType.pushInterceptor(QNAME_ENTRY4, addMapEntryInterceptor);
      mapType.pushInterceptor(QNAME_SUBMAP, addMapEntryInterceptor);

      entry1Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Object[2];
         }
      }
      );
      entry1Type.pushInterceptor(QNAME_KEY1, new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Object[] arr = (Object[])o;
            arr[0] = text;
         }
      }
      );
      entry1Type.pushInterceptor(QNAME_VALUE1, new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Object[] arr = (Object[])o;
            arr[1] = text;
         }
      }
      );

      entry2Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Object[2];
         }

         public void attributes(Object o,
                                QName elementName,
                                ElementBinding element,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Object[] arr = (Object[])o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("key2".equals(lName))
               {
                  arr[0] = attrs.getValue(i);
               }
            }
         }
      }
      );
      entry2Type.pushInterceptor(QNAME_VALUE2, new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Object[] arr = (Object[])o;
            arr[1] = text;
         }
      }
      );

      entry3Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Object[2];
         }

         public void attributes(Object o,
                                QName elementName,
                                ElementBinding element,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Object[] arr = (Object[])o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("key3".equals(lName))
               {
                  arr[0] = attrs.getValue(i);
               }
               else if("value3".equals(lName))
               {
                  arr[1] = attrs.getValue(i);
               }
            }
         }
      }
      );

      entry4Type.setHandler(new DefaultElementHandler()
      {
         public Object startElement(Object parent, QName name, ElementBinding element)
         {
            return new Object[2];
         }

         public void attributes(Object o,
                                QName elementName,
                                ElementBinding element,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Object[] arr = (Object[])o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("key4".equals(lName))
               {
                  arr[0] = attrs.getValue(i);
               }
            }
         }

      }
      );
      entry4Type.setSimpleType(new CharactersHandler()
      {
         public void setValue(QName qName, ElementBinding element, Object owner, Object value)
         {
            Object[] arr = (Object[])owner;
            arr[1] = value;
         }
      }
      );

      mapType.pushInterceptor(QNAME_SUBMAP, new DefaultElementInterceptor()
      {
         public Object startElement(Object parent, QName name, TypeBinding type)
         {
            return new Object[2];
         }

         public void attributes(Object o,
                                QName elementName,
                                TypeBinding type,
                                Attributes attrs,
                                NamespaceContext nsCtx)
         {
            Object[] arr = (Object[])o;
            for(int i = 0; i < attrs.getLength(); ++i)
            {
               String lName = attrs.getLocalName(i);
               if("key".equals(lName))
               {
                  arr[0] = attrs.getValue(i);
               }
            }
         }

         public void add(Object parent, Object child, QName qName)
         {
            Object[] arr = (Object[])parent;
            Map submap = (Map)child;
            arr[1] = submap;
         }
      }
      );

      // sequence entry
      entrySeq.setHandler(new ParticleHandler()
      {
         public Object startParticle(Object parent,
                                     QName elementName,
                                     ParticleBinding particle,
                                     Attributes attrs,
                                     NamespaceContext nsCtx)
         {
            return new Object[2];
         }

         public Object endParticle(Object o, QName elementName, ParticleBinding particle)
         {
            return o;
         }

         public void setParent(Object parent,
                               Object o,
                               QName elementName,
                               ParticleBinding particle,
                               ParticleBinding parentParticle)
         {
            Map map = (Map)parent;
            Object[] arr = (Object[])o;
            map.put(arr[0], arr[1]);
         }
      }
      );

      keyElement.pushInterceptor(new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Object[] arr = (Object[])o;
            arr[0] = text;
         }
      });

      valueElement.pushInterceptor(new DefaultElementInterceptor()
      {
         public void characters(Object o, QName name, TypeBinding type, NamespaceContext nsCtx, String text)
         {
            Object[] arr = (Object[])o;
            arr[1] = text;
View Full Code Here

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

   private void processXmlElementName(TypeBinding typeBinding, VariableMapping varMapping)
   {
      QName xmlName = new QName(varMapping.getXmlElementName());
      log.trace("processXmlElementName: " + xmlName);

      ElementBinding element = typeBinding.getElement(xmlName);
      QName typeQName = typeBinding.getQName();
      if (element == null && typeQName != null)
      {
         // elementFormDefault="qualified"
         String nsURI = typeQName.getNamespaceURI();
         QName auxName = new QName(nsURI, varMapping.getXmlElementName());
         element = typeBinding.getElement(auxName);
      }

      if (element == null)
      {
         // <element ref=
         ParticleBinding particle = typeBinding.getParticle();
         if (particle != null)
         {
            TermBinding term = particle.getTerm();
            if (term instanceof ModelGroupBinding)
            {
               Iterator iterator = ((ModelGroupBinding)term).getParticles().iterator();
               element = findLocalPathElement(iterator, new String[] { varMapping.getXmlElementName() }, 0);
            }
         }
      }

      if (element == null)
         throw new WSException("Element " + xmlName + " found in jaxrpc-mapping but not in the schema: " + typeQName);

      String javaVariableName = varMapping.getJavaVariableName();
      if (javaVariableName != null)
      {
         PropertyMetaData prop = new PropertyMetaData();
         prop.setName(javaVariableName);
         element.setPropertyMetaData(prop);

         if (log.isTraceEnabled())
            log.trace("Bound element " + xmlName + " to property " + prop.getName());
      }
   }
View Full Code Here

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

            log.warn("Type definition not found in schema: " + xmlType);
         }
      }
      else if ("element".equals(qnameScope))
      {
         ElementBinding element = schemaBinding.getElement(xmlType);
         if (element != null)
         {
            typeBinding = element.getType();
         }
         else
         {
            log.warn("Global element not found in schema: " + xmlType);
         }
View Full Code Here

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

            else if (i == expression.length() - 1)
               list.add(expression.substring(begin));
         }
      }

      ElementBinding element = findLocalPathElement(schemaBinding.getElements(), ((String[])list.toArray(new String[0])));
      if (element == null)
         element = findLocalPathElementInTypes(schemaBinding.getTypes(), ((String[])list.toArray(new String[0])));

      if (element == null)
         return null;

      return element.getType();
   }
View Full Code Here

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

   private ElementBinding findLocalPathElement(Iterator elements, String[] path)
   {
      while (elements.hasNext())
      {
         ElementBinding element = (ElementBinding)elements.next();
         element = findLocalPathElement(element, path, 0);
         if (element != null)
            return element;
      }
View Full Code Here

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

      while (particles.hasNext())
      {
         TermBinding term = ((ParticleBinding)particles.next()).getTerm();
         if (term instanceof ElementBinding)
         {
            ElementBinding element = (ElementBinding)term;
            element = findLocalPathElement(element, path, pos);
            if (element != null)
               return element;

         }
         else if (term instanceof ModelGroupBinding)
         {
            Iterator i = ((ModelGroupBinding)term).getParticles().iterator();
            ElementBinding element = findLocalPathElement(i, path, pos);
            if (element != null)
               return element;
         }
      }
View Full Code Here

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

   {
      TermBinding term = particle.getTerm();
      Object o = startElement(parent, elementName, particle);
      if(!term.isModelGroup())
      {
         ElementBinding element = (ElementBinding)term;
         if(o != null)
         {
            attrs = element.getType().expandWithDefaultAttributes(attrs);
            attributes(o, elementName, element, attrs, nsCtx);
         }
      }
      return o;
   }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.