1 23 24 27 28 package com.sun.enterprise.tools.common.validation.impl; 29 30 import java.lang.reflect.Method ; 31 import java.text.MessageFormat ; 32 import java.util.ArrayList ; 33 import java.util.Collection ; 34 35 36 import org.netbeans.modules.schema2beans.BaseBean; 37 import org.netbeans.modules.schema2beans.BaseProperty; 38 39 import com.sun.enterprise.tools.common.validation.Constants; 40 import com.sun.enterprise.tools.common.validation.util.BundleReader; 41 import com.sun.enterprise.tools.common.validation.util.Utils; 42 import com.sun.enterprise.tools.common.validation.Validatee; 43 44 49 50 public class ValidateeImpl implements Validatee { 51 52 private BaseBean baseBean = null; 53 54 private Utils utils = null; 55 56 57 public ValidateeImpl(Object baseBean){ 58 this.baseBean = (BaseBean)baseBean; 59 utils = new Utils(); 60 } 61 62 63 public ArrayList getElementNames(){ 64 ArrayList elements = new ArrayList (); 65 BaseProperty[] baseProperty = baseBean.listProperties(); 66 int size = baseProperty.length; 67 for(int i=0; i<size; i++){ 68 elements.add(baseProperty[i].getName()); 69 } 78 return elements; 79 } 80 81 82 public ArrayList getElementDtdNames(){ 83 ArrayList elements = new ArrayList (); 84 BaseProperty[] baseProperty = baseBean.listProperties(); 85 int size = baseProperty.length; 86 for(int i=0; i<size; i++){ 87 elements.add(baseProperty[i].getDtdName()); 88 } 94 return elements; 95 } 96 97 98 public boolean isIndexed(String elementName){ 99 BaseProperty baseProperty = baseBean.getProperty(elementName); 100 boolean returnValue = false; 101 if(null != baseProperty) { 102 returnValue = baseProperty.isIndexed(); 103 } else { 104 String format = 105 BundleReader.getValue("Error_does_not_exists"); Object [] arguments = 107 new Object []{"Property", elementName}; String message = MessageFormat.format(format, arguments); 109 assert false : message; 110 } 111 return returnValue; 112 } 113 114 115 public int getElementCardinal(String elementName){ 116 BaseProperty baseProperty = baseBean.getProperty(elementName); 117 int returnValue = -1; 118 if(null != baseProperty) { 119 returnValue = baseProperty.getInstanceType(); 120 } else { 121 String format = 122 BundleReader.getValue("Error_does_not_exists"); Object [] arguments = 124 new Object []{"Property", elementName}; String message = MessageFormat.format(format, arguments); 126 assert false : message; 127 } 128 return returnValue; 129 } 130 131 132 public int getCardinal(){ 133 String name = baseBean.name(); 134 BaseBean parent = baseBean.parent(); 135 BaseProperty baseProperty = parent.getProperty(name); 136 return baseProperty.getInstanceType(); 137 } 138 139 140 public boolean isBeanElement(String elementName){ 141 BaseProperty baseProperty = baseBean.getProperty(elementName); 142 boolean returnValue = false; 143 if(null != baseProperty) { 144 returnValue = baseProperty.isBean(); 145 } else { 146 String format = 147 BundleReader.getValue("Error_does_not_exists"); Object [] arguments = 149 new Object []{"Property", elementName}; String message = MessageFormat.format(format, arguments); 151 assert false : message; 152 } 153 return returnValue; 154 } 155 156 157 public String getXPath(){ 158 164 BaseBean bean = baseBean; 165 BaseBean parentBean = null; 166 String xpath = bean.dtdName(); 167 boolean root = isRootElement(bean); 169 parentBean = bean.parent(); 170 while(!root){ 171 xpath = parentBean.dtdName() + Constants.XPATH_DELIMITER + xpath; 172 bean = parentBean; 173 parentBean = bean.parent(); 174 root = isRootElement(bean); 176 } 177 xpath = Constants.XPATH_DELIMITER + xpath; 178 return xpath; 179 } 180 181 182 public String getIndexedXPath() { 183 BaseBean bean = baseBean; 184 BaseBean parentBean = null; 185 String xpath = bean.dtdName(); 186 int index = getIndex(baseBean); 187 if(index != -1){ 188 xpath = utils.getIndexedName(xpath, index); 189 } 190 191 boolean root = isRootElement(bean); 192 parentBean = bean.parent(); 193 194 String name = null; 195 while(!root){ 196 name = parentBean.dtdName(); 197 index = getIndex(parentBean); 198 if(index != -1) { 199 name = utils.getIndexedName(name, index); 200 } 201 xpath = name + Constants.XPATH_DELIMITER + xpath; 202 bean = parentBean; 203 parentBean = bean.parent(); 204 root = isRootElement(bean); 205 } 206 xpath = Constants.XPATH_DELIMITER + xpath; 207 return xpath; 208 } 209 210 211 boolean isRootElement(BaseBean bean){ 212 BaseBean parent = bean.parent(); 213 boolean root; 214 if(parent.name().equals(bean.name())){ 215 root = true; 216 } else { 217 root = false; 218 } 219 return root; 220 } 221 222 223 int getIndex(BaseBean baseBean){ 224 int index = -1; 225 boolean root = isRootElement(baseBean); 226 if(!root){ 227 String name = baseBean.name(); 228 BaseBean parent = baseBean.parent(); 229 if(parent != null) { 230 index = parent.indexOf(name, baseBean); 231 } 232 } 233 return index; 234 } 235 236 237 public Object getElement(String elementName, int index) { 238 return utils.getElement(elementName, index, baseBean); 239 } 240 241 public Object getElement(String elementName) { 242 return utils.getElement(elementName, baseBean); 243 } 244 245 public Object [] getElements(String elementName) { 246 return utils.getElements(elementName, baseBean); 247 } 248 249 public Method getMethod(String methodName) { 250 return utils.getMethod(utils.getClass(baseBean), methodName); 251 } 252 253 public Object invoke(Method method) { 254 return utils.invoke(baseBean, method); 255 } 256 } 257 | Popular Tags |