コード例 #1
0
ファイル: Weaver.java プロジェクト: Namek/artemis-odb
  public static ClassMetadata scan(ClassReader source) {
    ClassMetadata info = new ClassMetadata();
    source.accept(new MetaScanner(info), 0);
    info.type = Type.getObjectType(source.getClassName());

    for (FieldDescriptor fd : info.fields) {
      if ((fd.access & ACC_PUBLIC) == ACC_PUBLIC) {
        info.directFieldAccess = true;
      }
    }

    return info;
  }
コード例 #2
0
ファイル: Weaver.java プロジェクト: Namek/artemis-odb
  private static void processClass(
      ExecutorService threadPool, String file, List<ClassMetadata> processed) {

    ClassReader cr = classReaderFor(file);
    ClassMetadata meta = scan(cr);

    if (meta.annotation == WeaverType.NONE) return;

    if (meta.annotation == WeaverType.POOLED && !GlobalConfiguration.enabledPooledWeaving) {
      if (!meta.forcePooledWeaving) return;
    }

    meta.weaverTask = threadPool.submit(new ComponentTypeTransmuter(file, cr, meta));
    processed.add(meta);
  }