1 16 package org.apache.commons.betwixt; 17 18 35 public class XMLBeanInfo { 36 37 private ElementDescriptor elementDescriptor; 38 39 40 private Class beanClass; 41 42 private String idAttributeName = "id"; 43 44 private String idrefAttributeName = "idref"; 45 46 private boolean cachedIDAttribute = false; 47 48 private AttributeDescriptor idAttributeDescriptor; 49 50 54 public XMLBeanInfo( Class beanClass ) { 55 this.beanClass = beanClass; 56 } 57 58 63 public ElementDescriptor getElementDescriptor() { 64 return elementDescriptor; 65 } 66 67 72 public void setElementDescriptor(ElementDescriptor elementDescriptor) { 73 this.elementDescriptor = elementDescriptor; 74 } 75 76 81 public Class getBeanClass() { 82 return beanClass; 83 } 84 85 90 public void setBeanClass(Class beanClass) { 91 this.beanClass = beanClass; 92 } 93 94 99 public AttributeDescriptor getIDAttribute() { 100 idAttributeDescriptor = findIDAttribute(); 109 return idAttributeDescriptor; 112 } 113 114 118 private AttributeDescriptor findIDAttribute() { 119 if ( getElementDescriptor().hasAttributes() ) { 121 AttributeDescriptor[] attributes = getElementDescriptor().getAttributeDescriptors(); 122 if ( attributes != null ) { 123 for ( int i = 0, size = attributes.length; i < size; i++ ) { 124 if ( getIDAttributeName().equals( attributes[i].getQualifiedName() ) 126 || getIDAttributeName().equals( attributes[i].getLocalName() )) { 127 return attributes[i]; 129 130 } 131 } 132 } 133 } 134 return null; 135 } 136 137 146 public String getIDAttributeName() { 147 return idAttributeName; 148 } 149 150 159 public void setIDAttributeName(String idAttributeName) { 160 this.idAttributeName = idAttributeName; 161 } 162 163 171 public String getIDREFAttributeName() { 172 return idrefAttributeName; 173 } 174 175 183 public void setIDREFAttributeName(String idrefAttributeName) { 184 this.idrefAttributeName = idrefAttributeName; 185 } 186 187 192 public String toString() { 193 return 194 "XMLBeanInfo [class=" + getBeanClass() 195 + ", descriptor=" + getElementDescriptor() + "]"; 196 } 197 } 198 | Popular Tags |