1 29 30 package com.caucho.jaxb.skeleton; 31 import javax.xml.bind.JAXBException; 32 import javax.xml.bind.Unmarshaller; 33 import javax.xml.bind.annotation.XmlElementWrapper; 34 import javax.xml.namespace.QName ; 35 import javax.xml.stream.XMLStreamException; 36 import javax.xml.stream.XMLStreamReader; 37 import java.io.IOException ; 38 import java.lang.reflect.Array ; 39 import java.util.ArrayList ; 40 import java.util.Iterator ; 41 42 import com.caucho.util.L10N; 43 44 47 public abstract class ArrayProperty extends IterableProperty { 48 private static final L10N L = new L10N(CDataProperty.class); 49 50 protected ArrayProperty(Property componentProperty) 51 { 52 _componentProperty = componentProperty; 53 } 54 55 public static ArrayProperty createArrayProperty(Property componentProperty, 56 Class type) 57 throws JAXBException 58 { 59 if (! type.isPrimitive()) 60 return new ObjectArrayProperty(componentProperty, type); 61 62 if (Double.TYPE.equals(type)) 63 return DoubleArrayProperty.PROPERTY; 64 65 if (Float.TYPE.equals(type)) 66 return FloatArrayProperty.PROPERTY; 67 68 if (Integer.TYPE.equals(type)) 69 return IntegerArrayProperty.PROPERTY; 70 71 if (Long.TYPE.equals(type)) 72 return LongArrayProperty.PROPERTY; 73 74 if (Boolean.TYPE.equals(type)) 75 return BooleanArrayProperty.PROPERTY; 76 77 if (Character.TYPE.equals(type)) 78 return CharacterArrayProperty.PROPERTY; 79 80 if (Short.TYPE.equals(type)) 81 return ShortArrayProperty.PROPERTY; 82 83 86 87 throw new JAXBException(L.l("{0} is neither primitive, nor non-primitive!", 88 type)); 89 } 90 91 public String getSchemaType() 92 { 93 throw new UnsupportedOperationException (); 94 } 95 96 protected boolean isPrimitiveType() 97 { 98 return false; 99 } 100 101 public boolean isXmlPrimitiveType() 102 { 103 return _componentProperty.isXmlPrimitiveType(); 104 } 105 } 106 107 108 | Popular Tags |