Ejemplo n.º 1
0
  @Override
  public MetaField getField(final String name) {
    JClassType type = getEnclosedMetaObject().isClassOrInterface();
    if (type == null) {
      if ("length".equals(name) && getEnclosedMetaObject().isArray() != null) {
        return new MetaField.ArrayLengthMetaField(this);
      }
      return null;
    }

    JField field = type.findField(name);
    while ((field == null || (field != null && !field.isPublic()))
        && (type = type.getSuperclass()) != null
        && !type.getQualifiedSourceName().equals("java.lang.Object")) {
      field = type.findField(name);

      for (final JClassType interfaceType : type.getImplementedInterfaces()) {
        field = interfaceType.findField(name);
      }
    }

    if (field == null) {
      throw new RuntimeException("no such field: " + name + " in class: " + this);
    }

    return new GWTField(oracle, field);
  }
Ejemplo n.º 2
0
 /**
  * @param dataClass
  * @return
  */
 private String[] extractIdentifiers(JClassType dataClass) {
   List<String> ids = new ArrayList<String>();
   JField[] fields = JClassUtils.getDeclaredFields(dataClass);
   for (JField field : fields) {
     if (field.getAnnotation(DataObjectIdentifier.class) != null) {
       if (field.isPublic()) {
         ids.add(field.getName());
       } else {
         ids.add(JClassUtils.getGetterMethod(field.getName(), dataClass) + "()");
       }
     }
   }
   return ids.toArray(new String[ids.size()]);
 }