Package org.jboss.errai.codegen.meta

Examples of org.jboss.errai.codegen.meta.MetaClass


    return new HibernatePersistence().createEntityManagerFactory(persistenceUnits.iterator().next(), properties);
  }

  private String generateErraiEntityType(final EntityType<?> et, MethodBlockBuilder<?> pmm) {
    MetaClass met = MetaClassFactory.get(et.getJavaType());
    pmm.append(Stmt.codeComment(
            "**\n" +
                    "** EntityType for " + et.getJavaType().getName() + "\n" +
            "**"));
    String entityTypeVarName = entitySnapshotVarName(et.getJavaType());
View Full Code Here


      // standalone entity listeners
      EntityListeners entityListeners = entityType.getAnnotation(EntityListeners.class);
      if (entityListeners != null) {
        for (Class<?> listenerClass : entityListeners.value()) {
          MetaClass listenerMetaClass = MetaClassFactory.get(listenerClass);
          for (MetaMethod callback : listenerMetaClass.getMethodsAnnotatedWith(eventType)) {
            if (callback.getParameters().length != 1) {
              throw new GenerationException("JPA lifecycle listener method " + callback.getName() + " has " +
                      callback.getParameters().length + " parameters (expected 1)");
            }
            if (!callback.getParameters()[0].getType().isAssignableFrom(entityType)) {
View Full Code Here

            ClassStructureBuilder<?> containingClassBuilder) {
      SingularAttribute<?, ?> attr = (SingularAttribute<?, ?>) sourceObject;

      if (isGeneratedValue(getJavaMember(attr))) {

        MetaClass generatorDeclaredType;
        Class<? extends Iterator<?>> generatorType;

        if (attr.getJavaType() == Long.class || attr.getJavaType() == long.class) {
          generatorDeclaredType = MetaClassFactory.get(new TypeLiteral<Iterator<Long>>() {});
          generatorType = LongIdGenerator.class;
View Full Code Here

        }
        Page annotation = pageClass.getAnnotation(Page.class);
        String pageName = getPageName(pageClass);
        List<Class<? extends PageRole>> annotatedPageRoles = Arrays.asList(annotation.role());

        MetaClass prevPageWithThisName = pageNames.put(pageName, pageClass);
        if (prevPageWithThisName != null) {
          throw new GenerationException(
              "Page names must be unique, but " + prevPageWithThisName + " and " + pageClass +
                  " are both named [" + pageName + "]");
        }
View Full Code Here

            new Modifier[] {});
      }

      String injectorName = PrivateAccessUtil.getPrivateFieldInjectorName(field);

      MetaClass erasedFieldType = field.getType().getErased();
      if (erasedFieldType.isAssignableTo(Collection.class)) {
        MetaClass elementType = MarshallingGenUtil.getConcreteCollectionElementType(field.getType());
        if (elementType == null) {
          throw new UnsupportedOperationException(
                    "Found a @PageState field with a Collection type but without a concrete type parameter. " +
                        "Collection-typed @PageState fields must specify a concrete type parameter.");
        }
View Full Code Here

    final File dotFile = new File(RebindUtils.getErraiCacheDir().getAbsolutePath(), "navgraph.gv");
    PrintWriter out = null;
    try {
      out = new PrintWriter(dotFile);
      out.println("digraph Navigation {");
      final MetaClass transitionToType = MetaClassFactory.get(TransitionTo.class);
      final MetaClass transitionAnchorType = MetaClassFactory.get(TransitionAnchor.class);
      final MetaClass transitionAnchorFactoryType = MetaClassFactory.get(TransitionAnchorFactory.class);
      final MetaClass transtionToRoleType = MetaClassFactory.get(TransitionToRole.class);
      for (Map.Entry<String, MetaClass> entry : pages.entrySet()) {
        String pageName = entry.getKey();
        MetaClass pageClass = entry.getValue();

        // entry for the node itself
        out.print("\"" + pageName + "\"");

        Page pageAnnotation = pageClass.getAnnotation(Page.class);
        List<Class<? extends PageRole>> roles = Arrays.asList(pageAnnotation.role());
        if (roles.contains(DefaultPage.class)) {
          out.print(" [penwidth=3]");
        }
        out.println();

        for (MetaField field : getAllFields(pageClass)) {
          final MetaClass erasedFieldType = field.getType().getErased();
          if (erasedFieldType.equals(transitionToType)
                  || erasedFieldType.equals(transitionAnchorType)
                  || erasedFieldType.equals(transitionAnchorFactoryType)
                  || erasedFieldType.equals(transtionToRoleType)) {

            final MetaType targetPageType;
            if (erasedFieldType.equals(transtionToRoleType)) {
              final MetaType uniquePageRoleType = field.getType().getParameterizedType().getTypeParameters()[0];
              targetPageType = getPageWithRole(uniquePageRoleType, pageRoles);
            }
            else {
              targetPageType = field.getType().getParameterizedType().getTypeParameters()[0];
View Full Code Here

            throw new RuntimeException("a new annotation has been introduced (" + type.getQualifiedSourceName() + "); "
                + "you cannot currently introduce new annotations in devmode. Please restart.");
          }


          final MetaClass clazz = JavaReflectionClass
              .newUncachedInstance(MetaClassFactory.loadClass(type.getQualifiedBinaryName()));

          classesToPush.put(clazz.getFullyQualifiedName(), clazz);
        }
        else {
          logger.log(TreeLogger.Type.DEBUG, "Caching translatable type " + type.getQualifiedSourceName());
          final MetaClass clazz = GWTClass.newInstance(typeOracle, type);
          classesToPush.put(clazz.getFullyQualifiedName(), clazz);
        }
      }

      cache.pushCacheAll(classesToPush);
    }
View Full Code Here

              .invoke("subscribe", svcName, injectableInstance.getValueStatement());
    }

    final Statement declareVar = Stmt.declareFinalVariable(varName, Subscription.class, subscribeStatement);

    final MetaClass destructionCallbackType =
            parameterizedAs(DestructionCallback.class, typeParametersOf(injectableInstance.getEnclosingType()));

    // register a destructor to unregister the service when the bean is destroyed.
    final BlockBuilder<AnonymousClassStructureBuilder> destroyMeth
            = ObjectBuilder.newInstanceOf(destructionCallbackType).extend()
View Full Code Here

      }

      try {
        if (reflections || reflectionScanLocal.get()) {
          for (final Class<?> cls : ScannerSingleton.getOrCreateInstance().getTypesAnnotatedWith(annotation)) {
            final MetaClass e = MetaClassFactory.get(cls);
            result.add(e);
          }
        }
      }
      catch (Exception ignored) {
View Full Code Here

      }
      try {
        for (final Method m : ScannerSingleton.getOrCreateInstance().getMethodsAnnotatedWith(annotation)) {
          Class<?> clazz = m.getDeclaringClass();
          if (!isReloadable(clazz) && MetaClassFactory.isKnownType(clazz.getName())) {
            final MetaClass metaClass = MetaClassFactory.get(clazz);
            result.add(new JavaReflectionMethod(metaClass, m));
          }
        }
      }
      catch (Exception ignored) {
      }
    }
    else {
      for (final MetaClass metaClass : MetaClassFactory.getAllCachedClasses()) {
        for (final MetaMethod metaMethod : metaClass.getDeclaredMethods()) {
          if (metaMethod.isAnnotationPresent(annotation)) {
            result.add(metaMethod);
          }
        }
      }
View Full Code Here

TOP

Related Classes of org.jboss.errai.codegen.meta.MetaClass

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.