public static SServicesMap createSServicesMap() { SServicesMap servicesMap = new SServicesMap(); CodeFetcher sourceCodeFetcher = new CodeFetcher(); SService serviceInterface = new SServiceInterfaceService(servicesMap, sourceCodeFetcher, ServiceInterface.class); servicesMap.add(serviceInterface); for (Class<? extends PublicInterface> clazz : getInterfaces()) { if (clazz != ServiceInterface.class) { servicesMap.add(new SService(servicesMap, sourceCodeFetcher, clazz)); } } servicesMap.initialize(); return servicesMap; }
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); }
public void load(SServicesMap servicesMap, Class<?> loaderClass) { try { for (Class<? extends PublicInterface> clazz : servicesMap.getInterfaceClasses()) { URL resource = loaderClass.getResource(clazz.getSimpleName() + ".desc"); if (resource != null) { load(resource); } else { LOGGER.error("Resource not found"); } } } catch (IOException e) { LOGGER.error("", e); } } }
try { if (instanceClass.getMethod("set" + StringUtils.firstUpperCase(fieldName), method.getReturnType()) != null) { Class<?> genericType = sServicesMap.getGenericType(method); boolean aggregate = List.class.isAssignableFrom(method.getReturnType()) || Set.class.isAssignableFrom(method.getReturnType()); SField sField = new SField(fieldName, sServicesMap.getSType(method.getReturnType().getName()), genericType == null ? null : sServicesMap.getSType(genericType.getName()), aggregate); addField(sField); try { if (instanceClass.getMethod("set" + StringUtils.firstUpperCase(fieldName), method.getReturnType()) != null) { Class<?> genericType = sServicesMap.getGenericType(method); boolean aggregate = List.class.isAssignableFrom(method.getReturnType()) || Set.class.isAssignableFrom(method.getReturnType()); SField sField = new SField(fieldName, sServicesMap.getSType(method.getReturnType().getName()), genericType == null ? null : sServicesMap.getSType(genericType.getName()), aggregate); addField(sField); addSuperClass(sServicesMap.getSType(superclass.getName()));
SService sService = servicesMap.getByName(interfaceName); if (sService == null) { sService = servicesMap.getBySimpleName(interfaceName); SMethod alternative = servicesMap.findMethod(methodName); if (alternative == null) { throw new UserException("Method " + methodName + " not found on " + interfaceName);
servicesMap.add(service); servicesMap.initialize(); for (SService service : servicesMap.list()) { AdaptorGeneratorWrapper adaptorGeneratorWrapper = new AdaptorGeneratorWrapper(); adaptorGeneratorWrapper.generate(service.getInterfaceClass(), service);
this.metaDataManager = metaDataManager; this.servicesMap = new SServicesMap(); addService(new SService(servicesMap, null, NotificationRegistryInterface.class)); addService(new SService(servicesMap, null, OAuthInterface.class)); servicesMap.initialize(); initHttpClient();
public SClass getType(String name) { for (SService sService : servicesByName.values()) { SClass type = sService.getServicesMap().getSType(name); if (type != null) { return type; } } return null; }
@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; }
SMethod method = servicesMap.getBySimpleName(interfaceName).getSMethod(methodName); return converter.fromJson(method.getReturnType(), method.getGenericReturnType(), result); } else {
public void addService(SService sService) { servicesMap.add(sService); }
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); } }
public static final BimServerClientInterface setupProtocolBuffers(String address) { Path home = Paths.get("home"); Path tmp = home.resolve("tmp"); MetaDataManager metaDataManager = new MetaDataManager(tmp); try (BimServerClientFactory factory = new ProtocolBuffersBimServerClientFactory(address, 8000, 8000, null, metaDataManager, new SServicesMap())) { PluginManager pluginManager = LocalDevPluginLoader.createPluginManager(home); pluginManager.setMetaDataManager(metaDataManager); return factory.create(new UsernamePasswordAuthenticationInfo("admin@bimserver.org", "admin")); } catch (PluginException e) { LOGGER.error("", e); } catch (ServiceException e) { LOGGER.error("", e); } catch (ChannelConnectionException e) { LOGGER.error("", e); } catch (BimServerClientException e) { LOGGER.error("", e); } catch (Exception e) { LOGGER.error("", e); } return null; } }
public List<String> getEnumLiterals(String enumName) throws UserException { List<String> result = new ArrayList<String>(); SClass type = getBimServer().getServicesMap().getType(enumName); for (Object enumConstant : type.getInstanceClass().getEnumConstants()) { result.add(enumConstant.toString()); } return result; }
@Override public List<SServiceType> getServiceTypes() throws ServerException, UserException { List<SServiceType> sServiceTypes = new ArrayList<SServiceType>(); for (SClass sType : getBimServer().getServicesMap().getTypes()) { sServiceTypes.add(createSServiceType(sType, false)); } return sServiceTypes; }
SService sService = bimServer.getServicesMap().getByName(interfaceName); if (sService == null) { sService = bimServer.getServicesMap().getBySimpleName(interfaceName); SMethod alternative = bimServer.getServicesMap().findMethod(methodName); if (alternative == null) { throw new UserException("Method " + methodName + " not found on " + interfaceName);
parameters.add(new SParameter(this, service.getServicesMap().getSType(parameterType.getName()), genericType == null ? null : service.getServicesMap().getSType(genericType.getName()), paramName)); parameterCounter++; this.returnType = service.getServicesMap().getSType(method.getReturnType().getName()); if (method.getReturnType() == List.class || method.getReturnType() == Set.class) { Type genericReturnType = method.getGenericReturnType(); Type type = parameterizedType.getActualTypeArguments()[0]; if (type instanceof Class) { this.genericReturnType = service.getServicesMap().getSType(((Class)type).getName());
@Override public SServiceMethod getServiceMethod(String serviceInterfaceName, String methodName) throws ServerException, UserException { SService sService = getBimServer().getServicesMap().getByName(serviceInterfaceName); if (sService == null) { throw new UserException("Service \"" + serviceInterfaceName + "\" not found"); } return convertMethod(sService.getMethod(methodName)); }
ProtocolBuffersMetaData protocolBuffersMetaData = protocolBuffersServer.getProtocolBuffersMetaData(); SService sService = servicesMap.getBySimpleName(serviceName); if (sService == null) { throw new UserException("No service found with name " + serviceName);
if (jsonObject.has("__type")) { String type = jsonObject.get("__type").asText(); SClass sClass = servicesMap.getType(type); if (sClass == null) { throw new ConvertException("Unknown type: " + type);