private MethodMetadata getFindByParentMethod() { if (parentProperty == null) { return null; } JavaSymbolName methodName = new JavaSymbolName("find" + plural + "ByParentId"); final JavaType idType = KEY.equals(identifierField.getFieldType()) ? STRING : identifierField.getFieldType(); final JavaType[] parameterTypes = {idType}; final MethodMetadata method = getGovernorMethod(methodName, parameterTypes); if (method != null) { return method; } final String idParamName = StringUtils.uncapitalize(parentProperty.getFieldType().getSimpleTypeName()) + "Id"; final List<JavaSymbolName> parameterNames = Arrays.asList(new JavaSymbolName(idParamName)); final JavaType returnType = new JavaType( LIST.getFullyQualifiedTypeName(), 0, DataType.TYPE, null, Arrays.asList(domainType)); final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder( getId(), PUBLIC_ABSTRACT, methodName, returnType, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, BODY); return methodBuilder.build(); }
/** @return the find all method (may return null) */ private MethodMetadata getFindAllMethod() { if ("".equals(crudAnnotationValues.getFindAllMethod())) { return null; } // Method definition to find or build final JavaSymbolName methodName = new JavaSymbolName(crudAnnotationValues.getFindAllMethod() + plural); final JavaType[] parameterTypes = {}; final List<JavaSymbolName> parameterNames = new ArrayList<JavaSymbolName>(); final JavaType returnType = new JavaType( LIST.getFullyQualifiedTypeName(), 0, DataType.TYPE, null, Arrays.asList(destination)); // Locate user-defined method final MethodMetadata userMethod = getGovernorMethod(methodName, parameterTypes); if (userMethod != null) { Assert.isTrue( userMethod.getReturnType().equals(returnType), "Method '" + methodName + "' on '" + destination + "' must return '" + returnType.getNameIncludingTypeParameters() + "'"); return userMethod; } // Create method final List<AnnotationMetadataBuilder> annotations = new ArrayList<AnnotationMetadataBuilder>(); if (isGaeEnabled) { addTransactionalAnnotation(annotations); } final InvocableMemberBodyBuilder bodyBuilder = new InvocableMemberBodyBuilder(); bodyBuilder.appendFormalLine( "return " + ENTITY_MANAGER_METHOD_NAME + "().createQuery(\"SELECT o FROM " + entityName + " o\", " + destination.getSimpleTypeName() + ".class).getResultList();"); final MethodMetadataBuilder methodBuilder = new MethodMetadataBuilder( getId(), Modifier.PUBLIC | Modifier.STATIC, methodName, returnType, AnnotatedJavaType.convertFromJavaTypes(parameterTypes), parameterNames, bodyBuilder); methodBuilder.setAnnotations(annotations); return methodBuilder.build(); }
private Map<String, Object> createParameters( TaskActionInformation info, ActionEvent action, KeyEvaluator keyEvaluator) throws TaskHandlerException { SortedSet<ActionParameter> actionParameters = action.getActionParameters(); Map<String, Object> parameters = new HashMap<>(actionParameters.size()); for (ActionParameter actionParameter : actionParameters) { String key = actionParameter.getKey(); if (info.getValues().containsKey(key)) { String template = info.getValues().get(key); if (template == null) { throw new TaskHandlerException( TRIGGER, "task.error.templateNull", key, action.getDisplayName()); } switch (actionParameter.getType()) { case LIST: parameters.put(key, convertToList((List<String>) LIST.parse(template), keyEvaluator)); break; case MAP: parameters.put(key, convertToMap(template, keyEvaluator)); break; default: try { String userInput = keyEvaluator.evaluateTemplateString(template); Object obj = actionParameter.getType().parse(userInput); parameters.put(key, obj); } catch (MotechException ex) { throw new TaskHandlerException(TRIGGER, ex.getMessage(), ex, key); } } } else { if (actionParameter.isRequired()) { throw new TaskHandlerException( TRIGGER, "task.error.taskActionNotContainsField", action.getDisplayName(), key); } else if (actionParameter.getType() == MAP) { parameters.put(key, new HashMap<>()); } else if (actionParameter.getType() == LIST) { parameters.put(key, new ArrayList<>()); } else { parameters.put(key, null); } } } return parameters; }
public void lancer(float dirX, float dirY, float x, float y, float angle) { dir.set(dirX, dirY).scl(getEnemyStats().getSpeed()); pos.set(x, y); this.angle = angle + 90; LIST.add(this); }