private void createCreateReflectorMethod2(CtClass reflectorFactoryImpl) throws NotFoundException, CannotCompileException { CtClass[] parameters = new CtClass[2]; parameters[0] = pool.get(Class.class.getName()); parameters[1] = pool.get(PublicInterface.class.getName()); CtMethod method = new CtMethod(pool.get(Reflector.class.getName()), "createReflector", parameters, reflectorFactoryImpl); StringBuilder methodBuilder = new StringBuilder(); methodBuilder.append("{"); methodBuilder.append("if (1==0) {"); for (String name : servicesMap.keySetName()) { SService sService = servicesMap.getByName(name); methodBuilder.append("} else if ($1.getSimpleName().equals(\"" + sService.getSimpleName() + "\")) {"); methodBuilder.append("return new " + GENERATED_CLASSES_PACKAGE + "." + sService.getSimpleName() + "Reflector" + implementationCounter + "((" + sService.getInterfaceClass().getName() + ")$2);"); } methodBuilder.append("}"); methodBuilder.append("return null;"); methodBuilder.append("}"); method.setBody(methodBuilder.toString()); reflectorFactoryImpl.addMethod(method); }
/** * Inefficient method of getting a SMethod * * @param methodName * @return */ public SMethod findMethod(String methodName) { for (SService sService : servicesByName.values()) { SMethod method = sService.getSMethod(methodName); if (method != null) { return method; } } return null; }
public ObjectNode toJson(ObjectMapper OBJECT_MAPPER) { ObjectNode result = OBJECT_MAPPER.createObjectNode(); ArrayNode servicesJson = OBJECT_MAPPER.createArrayNode(); result.set("services", servicesJson); for (SService sService : servicesByName.values()) { ObjectNode serviceJson = OBJECT_MAPPER.createObjectNode(); serviceJson.put("name", sService.getName()); serviceJson.put("simpleName", sService.getSimpleName()); servicesJson.add(serviceJson); ArrayNode methodsJson = OBJECT_MAPPER.createArrayNode(); serviceJson.set("methods", methodsJson); for (SMethod method : sService.getMethods()) { methodsJson.add(method.toJson(OBJECT_MAPPER)); } } return result; }
private void processClass(Class<?> clazz) { if (clazz == Class.class) { return; } for (Class<?> x : clazz.getInterfaces()) { processClass(x); } // Parents first, subclasses their documentation have precedence extractJavaDoc(clazz); }
public void add(SService sService) { servicesByName.put(sService.getName(), sService); servicesBySimpleName.put(sService.getSimpleName(), sService); }
throw new UserException("No service found with name " + interfaceName); SMethod method = sService.getSMethod(methodName); if (method == null) { SMethod alternative = servicesMap.findMethod(methodName); throw new UserException("Method " + methodName + " not found on " + interfaceName); } else { throw new UserException("Method " + methodName + " not found on " + interfaceName + " (suggestion: " + alternative.getService().getSimpleName() + ")"); method.invoke(sService.getInterfaceClass(), service, parameters); } catch (ServiceException e) { LOGGER.error("", e);
stringBuffer.append(sService.getSimpleName()); stringBuffer.append(TEXT_5); stringBuffer.append(sService.getInterfaceClass().getName()); stringBuffer.append(TEXT_6); for (SMethod method : sService.getMethods()) {
SService service = new SService(servicesMap, new SourceCodeFetcher() { @Override public String get(Class<?> clazz) { for (SService service : servicesMap.list()) { AdaptorGeneratorWrapper adaptorGeneratorWrapper = new AdaptorGeneratorWrapper(); adaptorGeneratorWrapper.generate(service.getInterfaceClass(), service); AsyncServiceGeneratorWrapper asyncServiceGeneratorWrapper = new AsyncServiceGeneratorWrapper(); asyncServiceGeneratorWrapper.generate(service.getInterfaceClass(), service); File protoFile = new File("../BimServerClientLib/src/org/bimserver/client/protocolbuffers/" + service.getInterfaceClass().getSimpleName() + ".proto"); File descFile = new File("../BimServerClientLib/src/org/bimserver/client/protocolbuffers/" + service.getInterfaceClass().getSimpleName() + ".desc"); protocolBuffersGenerator.generate(service.getInterfaceClass(), protoFile, descFile, this.knownServices.isEmpty(), service, knownShortNames); this.knownServices.add(service); this.knownShortNames.add(service.getInterfaceClass().getSimpleName());
throw new UserException("No service found with name " + serviceName); SMethod method = sService.getSMethod(methodName); if (method == null) { throw new UserException("Method " + methodName + " not found on " + serviceName); Class<? extends PublicInterface> clazz = sService.getInterfaceClass(); PublicInterface service = null; if (token.equals("")) {
out.println("option java_outer_classname = \"" + service.getSimpleName() + "Impl\";\n"); out.println("option optimize_for = SPEED;\n"); // or CODE_SIZE StringBuilder serviceBuilder = new StringBuilder(); StringBuilder messageBuilder = new StringBuilder(); serviceBuilder.append("service " + service.getSimpleName() + " {\n"); if (createBaseMessages) { createVoidResponseMessage(messageBuilder); generateVoidMessage(messageBuilder); for (SMethod method : service.getMethods()) { String inputObjectName = StringUtils.firstUpperCase(method.getName()) + "Request"; String outputObjectName = StringUtils.firstUpperCase(method.getName()) + "Response";
stringBuffer.append(sService.getInterfaceClass().getName()); stringBuffer.append(TEXT_5); stringBuffer.append(sService.getInterfaceClass().getSimpleName()); stringBuffer.append(TEXT_6); stringBuffer.append(sService.getInterfaceClass().getSimpleName()); stringBuffer.append(TEXT_7); stringBuffer.append(sService.getInterfaceClass().getSimpleName()); stringBuffer.append(TEXT_8); stringBuffer.append(sService.getInterfaceClass().getSimpleName()); stringBuffer.append(TEXT_9); for (SMethod method : sService.getMethods()) { for (SMethod method : sService.getMethods()) {
@Override public List<SServiceMethod> getServiceMethods(String serviceInterfaceName) throws ServerException, UserException { List<SServiceMethod> sServiceMethods = new ArrayList<SServiceMethod>(); SService sService = getBimServer().getServicesMap().getByName(serviceInterfaceName); if (sService == null) { throw new UserException("Service \"" + serviceInterfaceName + "\" not found"); } for (SMethod sMethod : sService.getMethods()) { SServiceMethod sServiceMethod = convertMethod(sMethod); sServiceMethods.add(sServiceMethod); } return sServiceMethods; }
public Set<Class<? extends PublicInterface>> getInterfaceClasses() { Set<Class<? extends PublicInterface>> result = new LinkedHashSet<Class<? extends PublicInterface>>(); for (SService sService : servicesByName.values()) { result.add((Class<? extends PublicInterface>) sService.getInterfaceClass()); } return result; }
addService(new SService(servicesMap, null, MetaInterface.class)); addService(new SService(servicesMap, null, AdminInterface.class)); addService(new SService(servicesMap, null, AuthInterface.class)); addService(new SService(servicesMap, null, NewServicesInterface.class)); addService(new SService(servicesMap, null, SettingsInterface.class)); addService(new SService(servicesMap, null, PluginInterface.class)); addService(new SService(servicesMap, null, NotificationInterface.class)); addService(new SService(servicesMap, null, RemoteServiceInterface.class)); addService(new SService(servicesMap, null, LowLevelInterface.class)); addService(new SService(servicesMap, null, NotificationRegistryInterface.class)); addService(new SService(servicesMap, null, OAuthInterface.class)); servicesMap.initialize(); initHttpClient();
private void createCreateReflectorMethod1(CtClass reflectorFactoryImpl) throws NotFoundException, CannotCompileException { CtClass[] parameters = new CtClass[2]; parameters[0] = pool.get(Class.class.getName()); parameters[1] = pool.get(Reflector.class.getName()); CtMethod method = new CtMethod(pool.get(PublicInterface.class.getName()), "createReflector", parameters, reflectorFactoryImpl); StringBuilder methodBuilder = new StringBuilder(); methodBuilder.append("{"); methodBuilder.append("if (1==0) {"); for (String name : servicesMap.keySetName()) { SService sService = servicesMap.getByName(name); methodBuilder.append("} else if ($1.getSimpleName().equals(\"" + sService.getSimpleName() + "\")) {"); methodBuilder.append("return new " + GENERATED_CLASSES_PACKAGE + "." + sService.getSimpleName() + "Impl" + implementationCounter + "($2);"); } methodBuilder.append("}"); methodBuilder.append("return null;"); methodBuilder.append("}"); method.setBody(methodBuilder.toString()); reflectorFactoryImpl.addMethod(method); }
private SServiceInterface convertServiceInterface(String name) { SServiceInterface sServiceInterface = new SServiceInterface(); SService byName = getBimServer().getServicesMap().getByName(name); sServiceInterface.setName(name); sServiceInterface.setNameSpace(byName.getNameSpace()); sServiceInterface.setSimpleName(byName.getSimpleName()); return sServiceInterface; }
getServicesMap().addType(new SClass(getServicesMap(), Class.forName("org.bimserver.interfaces.objects.SService"), new SConstructor(){ public Object newInstance() { return new org.bimserver.interfaces.objects.SService(); super.init(); } catch (ClassNotFoundException e) { LOGGER.error("", e);
public void init() { for (Method method : interfaceClass.getMethods()) { getServicesMap().addType(method.getReturnType()); if (getGenericType(method) != null) { getServicesMap().addType(getGenericType(method)); } for (Class<?> paramType : method.getParameterTypes()) { getServicesMap().addType(paramType); } } for (SClass sType : getServicesMap().getTypes()) { sType.init(); } for (Method method : interfaceClass.getMethods()) { methods.put(method.getName(), new SMethod(this, method)); } if (processJavaDoc && sourceCodeFetcher != null) { processClass(interfaceClass); } }
throw new UserException("No service found with name " + interfaceName); SMethod method = sService.getSMethod(methodName); if (method == null) { SMethod alternative = bimServer.getServicesMap().findMethod(methodName); throw new UserException("Method " + methodName + " not found on " + interfaceName); } else { throw new UserException("Method " + methodName + " not found on " + interfaceName + " (suggestion: " + alternative.getService().getSimpleName() + ")"); PublicInterface service = getServiceInterface(httpRequest, bimServer, sService.getInterfaceClass(), methodName, jsonToken, oAuthCode); String oldThreadName = Thread.currentThread().getName(); Thread.currentThread().setName(interfaceName + "." + methodName); Recording recording = bimServer.getMetricsRegistry().startRecording(sService, method); Object result = method.invoke(sService.getInterfaceClass(), service, parameters);
methodBuilder.append("{"); methodBuilder.append("if (1==0) {} "); for (SMethod sMethod : sService.getMethods()) { methodBuilder.append(" else if ($2.equals(\"" + sMethod.getName() + "\")) {"); if (!sMethod.getReturnType().isVoid()) {