Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*     */ package com.sun.xml.bind.v2.runtime.unmarshaller;
  /*     */ 
  /*     */ import com.sun.xml.bind.WhiteSpaceProcessor;
  /*     */ import java.lang.reflect.Constructor;
  /*     */ import javax.xml.stream.Location;
  /*     */ import javax.xml.stream.XMLStreamException;
  /*     */ import javax.xml.stream.XMLStreamReader;
  /*     */ import org.xml.sax.Attributes;
  /*     */ import org.xml.sax.SAXException;
 /*     */ 
 /*     */ class StAXStreamConnector extends StAXConnector
 /*     */ {
 /*     */   private final XMLStreamReader staxStreamReader;
 /* 169 */   protected final StringBuilder buffer = new StringBuilder();
 /*     */ 
 /* 175 */   protected boolean textReported = false;
 /*     */ 
 /* 281 */   private final Attributes attributes = new Attributes() {
 /*     */     public int getLength() {
 /* 283 */       return StAXStreamConnector.this..getAttributeCount();
 /*     */     }
 /*     */ 
 /*     */     public String getURI(int index) {
 /* 287 */       String uri = StAXStreamConnector.this..getAttributeNamespace(index);
 /* 288 */       if (uri == nullreturn "";
 /* 289 */       return uri;
 /*     */     }
 /*     */ 
 /*     */     public String getLocalName(int index) {
 /* 293 */       return StAXStreamConnector.this..getAttributeLocalName(index);
 /*     */     }
 /*     */ 
 /*     */     public String getQName(int index) {
 /* 297 */       String prefix = StAXStreamConnector.this..getAttributePrefix(index);
 /* 298 */       if ((prefix == null) || (prefix.length() == 0)) {
 /* 299 */         return getLocalName(index);
 /*     */       }
 /* 301 */       return prefix + ':' + getLocalName(index);
 /*     */     }
 /*     */ 
 /*     */     public String getType(int index) {
 /* 305 */       return StAXStreamConnector.this..getAttributeType(index);
 /*     */     }
 /*     */ 
 /*     */     public String getValue(int index) {
 /* 309 */       return StAXStreamConnector.this..getAttributeValue(index);
 /*     */     }
 /*     */ 
 /*     */     public int getIndex(String uriString localName) {
 /* 313 */       for (int i = getLength() - 1; i >= 0; i--)
 /* 314 */         if ((localName.equals(getLocalName(i))) && (uri.equals(getURI(i))))
 /* 315 */           return i;
 /* 316 */       return -1;
 /*     */     }
 /*     */ 
 /*     */     public int getIndex(String qName)
 /*     */     {
 /* 322 */       for (int i = getLength() - 1; i >= 0; i--) {
 /* 323 */         if (qName.equals(getQName(i)))
 /* 324 */           return i;
 /*     */       }
 /* 326 */       return -1;
 /*     */     }
 /*     */ 
 /*     */     public String getType(String uriString localName) {
 /* 330 */       int index = getIndex(urilocalName);
 /* 331 */       if (index < 0) return null;
 /* 332 */       return getType(index);
 /*     */     }
 /*     */ 
 /*     */     public String getType(String qName) {
 /* 336 */       int index = getIndex(qName);
 /* 337 */       if (index < 0) return null;
 /* 338 */       return getType(index);
 /*     */     }
 /*     */ 
 /*     */     public String getValue(String uriString localName) {
 /* 342 */       int index = getIndex(urilocalName);
 /* 343 */       if (index < 0) return null;
 /* 344 */       return getValue(index);
 /*     */     }
 /*     */ 
 /*     */     public String getValue(String qName) {
 /* 348 */       int index = getIndex(qName);
 /* 349 */       if (index < 0) return null;
 /* 350 */       return getValue(index);
 /*     */     }
 /* 281 */   };
 /*     */ 
 /* 378 */   private static final Class FI_STAX_READER_CLASS = initFIStAXReaderClass();
 /* 379 */   private static final Constructor<? extends StAXConnectorFI_CONNECTOR_CTOR = initFastInfosetConnectorClass();
 /*     */ 
 /* 413 */   private static final Class STAX_EX_READER_CLASS = initStAXExReader();
 /* 414 */   private static final Constructor<? extends StAXConnectorSTAX_EX_CONNECTOR_CTOR = initStAXExConnector();
 /*     */ 
 /*     */   public static StAXConnector create(XMLStreamReader readerXmlVisitor visitor)
 /*     */   {
 /* 106 */     Class readerClass = reader.getClass();
 /* 107 */     if (( != null) && (.isAssignableFrom(readerClass)) && ( != null)) {
/*     */       try {
/* 109 */         return (StAXConnector).newInstance(new Object[] { readervisitor });
/*     */       }
/*     */       catch (Exception t)
/*     */       {
/*     */       }
/*     */     }
/* 115 */     boolean isZephyr = readerClass.getName().equals("com.sun.xml.stream.XMLReaderImpl");
/* 116 */     if (!isZephyr)
/*     */     {
/* 119 */       if (!checkImplementaionNameOfSjsxp(reader))
/*     */       {
/* 122 */         if ((!getBoolProp(reader"org.codehaus.stax2.internNames")) || (!getBoolProp(reader"org.codehaus.stax2.internNsUris")))
/*     */         {
/* 126 */           visitor = new InterningXmlVisitor(visitor);
/*     */         }
/*     */       }
/*     */     }
/* 128 */     if (( != null) && (.isAssignableFrom(readerClass)))
/*     */       try {
/* 130 */         return (StAXConnector).newInstance(new Object[] { readervisitor });
/*     */       }
/*     */       catch (Exception t)
/*     */       {
/*     */       }
/* 135 */     return new StAXStreamConnector(readervisitor);
/*     */   }
/*     */ 
/*     */   private static boolean checkImplementaionNameOfSjsxp(XMLStreamReader reader) {
/*     */     try {
/* 140 */       Object name = reader.getProperty("http://java.sun.com/xml/stream/properties/implementation-name");
/* 141 */       return (name != null) && (name.equals("sjsxp"));
/*     */     }
/*     */     catch (Exception e) {
/*     */     }
/* 145 */     return false;
/*     */   }
/*     */ 
/*     */   private static boolean getBoolProp(XMLStreamReader rString n)
/*     */   {
/*     */     try {
/* 151 */       Object o = r.getProperty(n);
/* 152 */       if ((o instanceof Boolean)) return ((Boolean)o).booleanValue();
/* 153 */       return false;
/*     */     }
/*     */     catch (Exception e) {
/*     */     }
/* 157 */     return false;
/*     */   }
/*     */ 
/*     */   protected StAXStreamConnector(XMLStreamReader staxStreamReaderXmlVisitor visitor)
/*     */   {
/* 178 */     super(visitor);
/* 179 */     this. = staxStreamReader;
/*     */   }
/*     */ 
/*     */   public void bridge() throws XMLStreamException
/*     */   {
/*     */     try
/*     */     {
/* 186 */       int depth = 0;
/*     */ 
/* 189 */       int event = this..getEventType();
/* 190 */       if (event == 7)
/*     */       {
/* 192 */         while (!this..isStartElement()) {
/* 193 */           event = this..next();
/*     */         }
/*     */       }
/*     */ 
/* 197 */       if (event != 1) {
/* 198 */         throw new IllegalStateException("The current event is not START_ELEMENT\n but " + event);
/*     */       }
/*     */       while (true)
/*     */       {
/* 207 */         switch (event) {
/*     */         case 1:
/* 209 */           handleStartElement();
/* 210 */           depth++;
/* 211 */           break;
/*     */         case 2:
/* 213 */           depth--;
/* 214 */           handleEndElement();
/* 215 */           if (depth != 0) breakbreak;
/*     */         case 4:
/*     */         case 6:
/*     */         case 12:
/* 220 */           handleCharacters();
/*     */         case 3:
/*     */         case 5:
/*     */         case 7:
/*     */         case 8:
/*     */         case 9:
/*     */         case 10:
/* 225 */         case 11: } event = this..next();
/*     */       }
/*     */ 
/* 228 */       this..next();
/*     */ 
/* 230 */       handleEndDocument();
/*     */     } catch (SAXException e) {
/* 232 */       throw new XMLStreamException(e);
/*     */     }
/*     */   }
/*     */ 
/*     */   protected Location getCurrentLocation() {
/* 237 */     return this..getLocation();
/*     */   }
/*     */ 
/*     */   protected String getCurrentQName() {
/* 241 */     return getQName(this..getPrefix(), this..getLocalName());
/*     */   }
/*     */ 
/*     */   private void handleEndElement() throws SAXException {
/* 245 */     processText(false);
/*     */ 
/* 248 */     this.. = fixNull(this..getNamespaceURI());
/* 249 */     this.. = this..getLocalName();
/* 250 */     this..endElement(this.);
/*     */ 
/* 253 */     int nsCount = this..getNamespaceCount();
/* 254 */     for (int i = nsCount - 1; i >= 0; i--)
/* 255 */       this..endPrefixMapping(fixNull(this..getNamespacePrefix(i)));
/*     */   }
/*     */ 
/*     */   private void handleStartElement() throws SAXException
/*     */   {
/* 260 */     processText(true);
/*     */ 
/* 263 */     int nsCount = this..getNamespaceCount();
/* 264 */     for (int i = 0; i < nsCounti++) {
/*     */     }
/*     */ 
/* 271 */     this.. = fixNull(this..getNamespaceURI());
/* 272 */     this.. = this..getLocalName();
/* 273 */     this.. = this.;
/*     */ 
/* 275 */     this..startElement(this.);
/*     */   }
/*     */ 
/*     */   protected void handleCharacters()
/*     */     throws XMLStreamExceptionSAXException
/*     */   {
/* 355 */     if (this..expectText())
/*     */   }
/*     */ 
/*     */   private void processText(boolean ignorable)
/*     */     throws SAXException
/*     */   {
/* 363 */     if ((this..expectText()) && ((!ignorable) || (!WhiteSpaceProcessor.isWhiteSpace(this.)))) {
/* 364 */       if (this.)
/* 365 */         this. = false;
/*     */       else {
/* 367 */         this..text(this.);
/*     */       }
/*     */     }
/* 370 */     this..setLength(0);
/*     */   }
/*     */ 
/*     */   private static Class initFIStAXReaderClass()
/*     */   {
/*     */     try
/*     */     {
/* 383 */       Class fisr = UnmarshallerImpl.class.getClassLoader().loadClass("org.jvnet.fastinfoset.stax.FastInfosetStreamReader");
/*     */ 
/* 385 */       Class sdp = UnmarshallerImpl.class.getClassLoader().loadClass("com.sun.xml.fastinfoset.stax.StAXDocumentParser");
/*     */ 
/* 388 */       if (fisr.isAssignableFrom(sdp)) {
/* 389 */         return sdp;
/*     */       }
/* 391 */       return null; } catch (Throwable e) {
/*     */     }
/* 393 */     return null;
/*     */   }
/*     */ 
/*     */   private static Constructor<? extends StAXConnectorinitFastInfosetConnectorClass()
/*     */   {
/*     */     try {
/* 399 */       if ( == null) {
/* 400 */         return null;
/*     */       }
/* 402 */       Class c = UnmarshallerImpl.class.getClassLoader().loadClass("com.sun.xml.bind.v2.runtime.unmarshaller.FastInfosetConnector");
/*     */ 
/* 404 */       return c.getConstructor(new Class[] { XmlVisitor.class }); } catch (Throwable e) {
/*     */     }
/* 406 */     return null;
/*     */   }
/*     */ 
/*     */   private static Class initStAXExReader()
/*     */   {
/*     */     try
/*     */     {
/* 418 */       return UnmarshallerImpl.class.getClassLoader().loadClass("org.jvnet.staxex.XMLStreamReaderEx"); } catch (Throwable e) {
/*     */     }
/* 420 */     return null;
/*     */   }
/*     */ 
/*     */   private static Constructor<? extends StAXConnectorinitStAXExConnector()
/*     */   {
/*     */     try {
/* 426 */       Class c = UnmarshallerImpl.class.getClassLoader().loadClass("com.sun.xml.bind.v2.runtime.unmarshaller.StAXExConnector");
/* 427 */       return c.getConstructor(new Class[] { XmlVisitor.class }); } catch (Throwable e) {
/*     */     }
/* 429 */     return null;
/*     */   }
/*     */ }
/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/thirdparty-all.jar
 * Qualified Name:     com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector
 * JD-Core Version:    0.6.0
 */
New to GrepCode? Check out our FAQ X