List of usage examples for com.badlogic.gdx.beans IndexedPropertyDescriptor getIndexedWriteMethod
public Method getIndexedWriteMethod()
From source file:org.apache.harmony.beans.Command.java
License:Apache License
private String getMethodName(Map<String, Command> references) throws NoSuchMethodException, IntrospectionException, Exception { if (methodName == null) { String methodValue = null; if (isTag("class")) { //$NON-NLS-1$ addArgument(new Argument(String.class, data), 0); methodValue = "forName"; //$NON-NLS-1$ } else if (isPrimitive()) { if (isTag("char")) { //$NON-NLS-1$ if (data.length() != 1) { throw new IntrospectionException(Messages.getString("beans.43", //$NON-NLS-1$ data));/* w w w .jav a 2s . c om*/ } addArgument(new Argument(char.class, Character.valueOf(data.charAt(0))), 0); } else { addArgument(new Argument(String.class, data), 0); } methodValue = "new"; //$NON-NLS-1$ } else if (isConstructor() || hasAttr("method", "new")) { //$NON-NLS-1$ //$NON-NLS-2$ methodValue = "new"; //$NON-NLS-1$ } else if (isArray()) { methodValue = "new"; //$NON-NLS-1$ int length = hasAttr("length") ? Integer //$NON-NLS-1$ .parseInt(getAttr("length")) : getArgumentsNumber(); //$NON-NLS-1$ copyArgumentsToCommands(); addArgument(new Argument(int.class, Integer.valueOf(length)), 0); } else if (hasAttr("property")) { //$NON-NLS-1$ String propertyValue = getAttr("property"); //$NON-NLS-1$ if (hasAttr("index")) { //$NON-NLS-1$ addArgument(new Argument(int.class, new Integer(getAttr("index"))), 0); //$NON-NLS-1$ } BeanInfo beanInfo = Introspector.getBeanInfo(getTarget(references).getClass()); PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors(); boolean methodFound = false; Method method = null; for (PropertyDescriptor pd : pds) { if (propertyValue.equals(pd.getName())) { int argsNum = getArgumentsNumber(); if (hasAttr("index")) { //$NON-NLS-1$ IndexedPropertyDescriptor ipd = (IndexedPropertyDescriptor) pd; if (argsNum == 1) { method = ipd.getIndexedReadMethod(); } else if (argsNum == 0) { method = ipd.getReadMethod(); } } else { method = pd.getReadMethod(); } if (method != null) { methodFound = matchMethodParams(method, references); } if (methodFound == false) { if (hasAttr("index")) { //$NON-NLS-1$ IndexedPropertyDescriptor ipd = (IndexedPropertyDescriptor) pd; if (argsNum == 2) { method = ipd.getIndexedWriteMethod(); } else if (argsNum == 1) { method = ipd.getWriteMethod(); } } else { method = pd.getWriteMethod(); } } if (method != null) { methodFound = matchMethodParams(method, references); } } } if (method == null) { throw new NoSuchMethodException(Messages.getString("beans.44", //$NON-NLS-1$ propertyValue)); } methodValue = method.getName(); } else if (hasAttr("method")) { //$NON-NLS-1$ if (hasAttr("index")) { //$NON-NLS-1$ addArgument(new Argument(int.class, Integer.valueOf(getAttr("index"))), 0); //$NON-NLS-1$ } methodValue = getAttr("method"); //$NON-NLS-1$ } else if (hasAttr("index")) { //$NON-NLS-1$ addArgument(new Argument(int.class, Integer.valueOf(getAttr("index"))), 0); //$NON-NLS-1$ methodValue = getArgumentsNumber() > 1 ? "set" : "get"; //$NON-NLS-1$ //$NON-NLS-2$ if (ctx.isArray()) { addArgument(ctx.getResult(), 0); } } else if (hasAttr("field")) { //$NON-NLS-1$ addArgument(new Argument(Class.forName(getAttr("class"), true, //$NON-NLS-1$ Thread.currentThread().getContextClassLoader())), 0); methodValue = "get"; //$NON-NLS-1$ } else { throw new Exception(Messages.getString("beans.45")); //$NON-NLS-1$ } methodName = methodValue; } return methodName; }