コード例 #1
0
ファイル: GWTClass.java プロジェクト: wclaeys/errai
 @Override
 public MetaClass getComponentType() {
   final JArrayType type = getEnclosedMetaObject().isArray();
   if (type == null) {
     return null;
   }
   return newUncachedInstance(oracle, type.getComponentType());
 }
コード例 #2
0
ファイル: ConnectorBundle.java プロジェクト: chinjh/vaadin
  private void addSerializeSupport(TreeLogger logger, JType type) throws UnableToCompleteException {
    hasSerializeSupport.add(type);

    JParameterizedType parametrized = type.isParameterized();
    if (parametrized != null) {
      for (JClassType parameterType : parametrized.getTypeArgs()) {
        setNeedsSerialize(parameterType);
      }
    }

    if (serializationHandledByFramework(type)) {
      return;
    }

    JClassType customSerializer = customSerializers.get(type);
    JClassType typeAsClass = type.isClass();
    JEnumType enumType = type.isEnum();
    JArrayType arrayType = type.isArray();

    if (customSerializer != null) {
      logger.log(Type.INFO, "Will serialize " + type + " using " + customSerializer.getName());
      setSerializer(type, new CustomSerializer(customSerializer));
    } else if (arrayType != null) {
      logger.log(Type.INFO, "Will serialize " + type + " as an array");
      setSerializer(type, new ArraySerializer(arrayType));
      setNeedsSerialize(arrayType.getComponentType());
    } else if (enumType != null) {
      logger.log(Type.INFO, "Will serialize " + type + " as an enum");
      setSerializer(type, new EnumSerializer(enumType));
    } else if (typeAsClass != null) {
      // Bean
      checkSerializable(logger, typeAsClass);

      logger.log(Type.INFO, "Will serialize " + type + " as a bean");

      JClassType needsSuperClass = typeAsClass;
      while (needsSuperClass != null) {
        if (needsSuperClass.isPublic()) {
          setNeedsSuperclass(needsSuperClass);
        }
        needsSuperClass = needsSuperClass.getSuperclass();
      }

      setNeedsGwtConstructor(typeAsClass);

      for (Property property : getProperties(typeAsClass)) {
        setNeedsProperty(property);

        JType propertyType = property.getPropertyType();
        setNeedsSerialize(propertyType);
      }
    }
  }
コード例 #3
0
ファイル: GWTUtil.java プロジェクト: snjeza/errai
 private static JType getRootComponentType(JArrayType type) {
   JType root = null;
   while (type.getComponentType() != null) {
     if (type.getComponentType().isArray() != null) {
       type = type.getComponentType().isArray();
     } else {
       root = type.getComponentType();
       break;
     }
   }
   return root;
 }