org.codehaus.groovy.ast.FieldNode.getType()方法的使用及代码示例

x33g5p2x  于2022-01-19 转载在 其他  
字(7.9k)|赞(0)|评价(0)|浏览(107)

本文整理了Java中org.codehaus.groovy.ast.FieldNode.getType()方法的一些代码示例,展示了FieldNode.getType()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。FieldNode.getType()方法的具体详情如下:
包路径:org.codehaus.groovy.ast.FieldNode
类名称:FieldNode
方法名:getType

FieldNode.getType介绍

暂无

代码示例

代码示例来源:origin: org.codehaus.groovy/groovy

private static String suffixForField(FieldNode fNode) {
    // use primitives for efficiency
    if (fNode.getType() == ClassHelper.int_TYPE) return "Int";
    if (fNode.getType() == ClassHelper.boolean_TYPE) return "Boolean";
//        currently char isn't found due to a bug, so go with Object
//        if (fNode.getType() == ClassHelper.char_TYPE) return "Char";
    if (fNode.getType() == ClassHelper.long_TYPE) return "Long";
    if (fNode.getType() == ClassHelper.short_TYPE) return "Short";
    if (fNode.getType() == ClassHelper.byte_TYPE) return "Byte";
    if (fNode.getType() == ClassHelper.float_TYPE) return "Float";
    if (fNode.getType() == ClassHelper.double_TYPE) return "Double";
    return "Object";
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

@Override
  public void visitField(final FieldNode field) {
    result.set(field.getType());
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

public void visitField(FieldNode node) {
  ClassNode t = node.getType();
  if(!fieldTypesChecked.contains(node)) {
    resolveOrFail(t, node);
  }
  super.visitField(node);
}

代码示例来源:origin: org.codehaus.groovy/groovy

@Override
public void visitField(FieldNode node) {
  super.visitField(node);
  addToCache(node.getType());
}
@Override

代码示例来源:origin: org.codehaus.groovy/groovy

private static void addArrayGetter(FieldNode fNode) {
  addGetter(fNode, fNode.getType().getComponentType());
}

代码示例来源:origin: org.codehaus.groovy/groovy

private static Parameter[] getParams(List<FieldNode> fields, ClassNode cNode) {
  Parameter[] parameters = new Parameter[fields.size()];
  for (int i = 0; i < parameters.length; i++) {
    FieldNode fNode = fields.get(i);
    Map<String,ClassNode> genericsSpec = createGenericsSpec(fNode.getDeclaringClass());
    extractSuperClassGenerics(fNode.getType(), cNode, genericsSpec);
    ClassNode correctedType = correctToGenericsSpecRecurse(genericsSpec, fNode.getType());
    parameters[i] = new Parameter(correctedType, fNode.getName());
  }
  return parameters;
}

代码示例来源:origin: org.codehaus.groovy/groovy

private Statement createGetterBodyArrayOrCloneable(FieldNode fNode) {
  final Expression fieldExpr = varX(fNode);
  final Expression expression = cloneArrayOrCloneableExpr(fieldExpr, fNode.getType());
  return safeExpression(fieldExpr, expression);
}

代码示例来源:origin: org.codehaus.groovy/groovy

@Override
public void visitField(FieldNode node) {
  ClassNode type = node.getType();
  checkGenericsUsage(type, type.redirect());
  super.visitField(node);
}

代码示例来源:origin: org.codehaus.groovy/groovy

protected static List<PropertyInfo> getPropertyInfoFromClassNode(ClassNode cNode, List<String> includes, List<String> excludes, boolean allNames) {
  List<PropertyInfo> props = new ArrayList<PropertyInfo>();
  for (FieldNode fNode : getInstancePropertyFields(cNode)) {
    if (shouldSkip(fNode.getName(), excludes, includes, allNames)) continue;
    props.add(new PropertyInfo(fNode.getName(), fNode.getType()));
  }
  return props;
}

代码示例来源:origin: org.codehaus.groovy/groovy

private static void createSoft(FieldNode fieldNode, Expression initExpr) {
  final ClassNode type = fieldNode.getType();
  fieldNode.setType(SOFT_REF);
  createSoftGetter(fieldNode, initExpr, type);
  createSoftSetter(fieldNode, type);
}

代码示例来源:origin: org.codehaus.groovy/groovy

public void visit(MethodVisitor mv) {
    if (field.isStatic()) {
      BytecodeHelper.load(mv, field.getType(), 0);
      mv.visitFieldInsn(PUTSTATIC, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType()));
    } else {
      mv.visitVarInsn(ALOAD, 0);
      BytecodeHelper.load(mv, field.getType(), 1);
      mv.visitFieldInsn(PUTFIELD, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType()));
    }
    mv.visitInsn(RETURN);
  }
});

代码示例来源:origin: org.codehaus.groovy/groovy

private static FieldNode createFieldCopy(ClassNode buildee, FieldNode fNode) {
  Map<String,ClassNode> genericsSpec = createGenericsSpec(fNode.getDeclaringClass());
  extractSuperClassGenerics(fNode.getType(), buildee, genericsSpec);
  ClassNode correctedType = correctToGenericsSpecRecurse(genericsSpec, fNode.getType());
  return new FieldNode(fNode.getName(), fNode.getModifiers(), correctedType, buildee, DEFAULT_INITIAL_VALUE);
}

代码示例来源:origin: org.codehaus.groovy/groovy

private static Expression providedOrDefaultInitialValue(FieldNode fNode) {
  Expression initialExp = fNode.getInitialExpression() != null ? fNode.getInitialExpression() : ConstantExpression.NULL;
  final ClassNode paramType = fNode.getType();
  if (ClassHelper.isPrimitiveType(paramType) && initialExp.equals(ConstantExpression.NULL)) {
    initialExp = primitivesInitialValues.get(paramType.getTypeClass());
  }
  return initialExp;
}

代码示例来源:origin: org.codehaus.groovy/groovy

public void visit(MethodVisitor mv) {
    if (field.isStatic()) {
      mv.visitFieldInsn(GETSTATIC, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType()));
    } else {
      mv.visitVarInsn(ALOAD, 0);
      mv.visitFieldInsn(GETFIELD, BytecodeHelper.getClassInternalName(classNode), field.getName(), BytecodeHelper.getTypeDescription(field.getType()));
    }
    BytecodeHelper.doReturn(mv, field.getType());
  }
});

代码示例来源:origin: org.codehaus.groovy/groovy

public void visitField(FieldNode fieldNode) {
  cv.visitField(
      fieldNode.getModifiers(),
      fieldNode.getName(),
      BytecodeHelper.getTypeDescription(fieldNode.getType()),
      null, //fieldValue,  //br  all the sudden that one cannot init the field here. init is done in static initializer and instance initializer.
      null);
}

代码示例来源:origin: org.codehaus.groovy/groovy

public void visitField(FieldNode node) {
  if (currentClass.getDeclaredField(node.getName()) != node) {
    addError("The " + getDescription(node) + " is declared multiple times.", node);
  }
  checkInterfaceFieldModifiers(node);
  checkGenericsUsage(node, node.getType());
  if (node.getType().equals(VOID_TYPE)) {
    addError("The " + getDescription(node) + " has invalid type void", node);
  }
  super.visitField(node);
}

代码示例来源:origin: org.codehaus.groovy/groovy

private static Parameter createParam(FieldNode fNode, String name, boolean defaults, AbstractASTTransformation xform, boolean makeImmutable) {
  Parameter param = new Parameter(fNode.getType(), name);
  if (defaults) {
    param.setInitialExpression(providedOrDefaultInitialValue(fNode));
  } else if (!makeImmutable) {
    // TODO we could support some default vals provided they were listed last
    if (fNode.getInitialExpression() != null) {
      xform.addError("Error during " + MY_TYPE_NAME + " processing, default value processing disabled but default value found for '" + fNode.getName() + "'", fNode);
    }
  }
  return param;
}

代码示例来源:origin: org.codehaus.groovy/groovy

private void getThis(MethodVisitor mv, String classInternalName, String outerClassDescriptor, String innerClassInternalName) {
  mv.visitVarInsn(ALOAD, 0);
  if (CLOSURE_TYPE.equals(thisField.getType())) {
    mv.visitFieldInsn(GETFIELD, classInternalName, "this$0", CLOSURE_DESCRIPTOR);
    mv.visitMethodInsn(INVOKEVIRTUAL, CLOSURE_INTERNAL_NAME, "getThisObject", "()Ljava/lang/Object;", false);
    mv.visitTypeInsn(CHECKCAST, innerClassInternalName);
  } else {
    mv.visitFieldInsn(GETFIELD, classInternalName, "this$0", outerClassDescriptor);
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

private static void initializeFields(List<FieldNode> fields, BlockStatement body, boolean useSetters) {
  for (FieldNode field : fields) {
    String name = field.getName();
    body.addStatement(
        stmt(useSetters && !field.isFinal()
                ? callThisX(getSetterName(name), varX(param(field.getType(), name)))
                : assignX(propX(varX("this"), field.getName()), varX(param(field.getType(), name)))
        )
    );
  }
}

代码示例来源:origin: org.codehaus.groovy/groovy

private static void create(FieldNode fieldNode, final Expression initExpr) {
  final BlockStatement body = new BlockStatement();
  if (fieldNode.isStatic()) {
    addHolderClassIdiomBody(body, fieldNode, initExpr);
  } else if (fieldNode.isVolatile()) {
    addDoubleCheckedLockingBody(body, fieldNode, initExpr);
  } else {
    addNonThreadSafeBody(body, fieldNode, initExpr);
  }
  addMethod(fieldNode, body, fieldNode.getType());
}

相关文章