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

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

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

FieldNode.isStatic介绍

暂无

代码示例

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

private static int getModifiers(FieldNode fNode) {
  int mods = ACC_PUBLIC;
  if (fNode.isStatic()) mods |= ACC_STATIC;
  return mods;
}

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

public boolean isInStaticContext() {
  return isStatic();
}

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

public static List<FieldNode> getInstanceNonPropertyFields(ClassNode cNode) {
  final List<FieldNode> result = new ArrayList<FieldNode>();
  for (FieldNode fNode : cNode.getFields()) {
    if (!fNode.isStatic() && cNode.getProperty(fNode.getName()) == null) {
      result.add(fNode);
    }
  }
  return result;
}

代码示例来源:origin: spockframework/spock

private void checkFieldAccess(ASTNode context, FieldNode field) {
  if (AstUtil.hasAnnotation(field, Shared.class) || field.isStatic()) return;

  resources.getErrorReporter().error(context, "Only @Shared and static fields may be accessed from here");
 }
}

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

private static void ensureNotPublic(AbstractASTTransformation xform, String cNode, FieldNode fNode) {
  String fName = fNode.getName();
  // TODO: do we need to lock down things like: $ownClass
  if (fNode.isPublic() && !fName.contains("$") && !(fNode.isStatic() && fNode.isFinal())) {
    xform.addError("Public field '" + fName + "' not allowed for " + MY_TYPE_NAME + " class '" + cNode + "'.", fNode);
  }
}

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

public void visitField(FieldNode node) {
  pushState(node.isStatic());
  super.visitField(node);
  popState();
}

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

private boolean isStaticThis(InnerClassNode innerClass, VariableScope scope) {
  if (inClosure) return false;
  boolean ret = innerClass.isStaticClass();
  if (    innerClass.getEnclosingMethod()!=null) {
    ret = ret || innerClass.getEnclosingMethod().isStatic();
  } else if (currentField!=null) {
    ret = ret || currentField.isStatic();
  } else if (currentMethod!=null && "<clinit>".equals(currentMethod.getName())) {
    ret = true;
  }
  return ret;
}

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

private static Expression findConstant(FieldNode fn) {
  if (fn != null && !fn.isEnum() && fn.isStatic() && fn.isFinal()) {
    if (fn.getInitialValueExpression() instanceof ConstantExpression) {
      return fn.getInitialValueExpression();
    }
  }
  return null;
}

代码示例来源:origin: spockframework/spock

@Override
public void visitField(FieldNode gField) {
 PropertyNode owner = spec.getAst().getProperty(gField.getName());
 if (gField.isStatic()) return;
 Field field = new Field(spec, gField, fieldCount++);
 field.setShared(AstUtil.hasAnnotation(gField, Shared.class));
 field.setOwner(owner);
 spec.getFields().add(field);
}

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

private static void addMethod(FieldNode fieldNode, BlockStatement body, ClassNode type) {
  int visibility = ACC_PUBLIC;
  if (fieldNode.isStatic()) visibility |= ACC_STATIC;
  String propName = MetaClassHelper.capitalize(fieldNode.getName().substring(1));
  ClassNode declaringClass = fieldNode.getDeclaringClass();
  addGeneratedMethod(declaringClass, "get" + propName, visibility, type, Parameter.EMPTY_ARRAY, ClassNode.EMPTY_ARRAY, body);
  if (ClassHelper.boolean_TYPE.equals(type)) {
    addGeneratedMethod(declaringClass, "is" + propName, visibility, type,
        Parameter.EMPTY_ARRAY, ClassNode.EMPTY_ARRAY, stmt(callThisX("get" + propName)));
  }
}

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

private static Expression findStaticField(ClassNode staticImportType, String fieldName) {
  if (staticImportType.isPrimaryClassNode() || staticImportType.isResolved()) {
    FieldNode field = getField(staticImportType, fieldName);
    if (field != null && field.isStatic())
      return new PropertyExpression(new ClassExpression(staticImportType), fieldName);
  }
  return null;
}

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

@Override
public Statement createPropInit(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap) {
  FieldNode fNode = pNode.getField();
  if (fNode.isFinal() && fNode.isStatic()) return null;
  if (fNode.isFinal() && fNode.getInitialExpression() != null) {
    return checkFinalArgNotOverridden(cNode, fNode);
  }
  return createConstructorStatement(xform, cNode, pNode, namedArgsMap != null);
}

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

@Override
  public Statement createPropInit(AbstractASTTransformation xform, AnnotationNode anno, ClassNode cNode, PropertyNode pNode, Parameter namedArgsMap) {
    FieldNode fNode = pNode.getField();
    if (fNode.isFinal() && fNode.isStatic()) return null;
    if (fNode.isFinal() && fNode.getInitialExpression() != null) {
      return checkFinalArgNotOverridden(cNode, fNode);
    }
    return createLegacyConstructorStatementMapSpecial(fNode);
  }
}

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

private boolean storeField(FieldNode field, boolean returnTrueIfFieldExists, PropertyExpression expressionToStoreOn, ClassNode receiver, ClassCodeVisitorSupport visitor, String delegationData, boolean lhsOfAssignment) {
  if (field == null || !returnTrueIfFieldExists) return false;
  if (visitor != null) visitor.visitField(field);
  storeWithResolve(field.getOriginType(), receiver, field.getDeclaringClass(), field.isStatic(), expressionToStoreOn);
  checkOrMarkPrivateAccess(expressionToStoreOn, field, lhsOfAssignment);
  if (delegationData != null) {
    expressionToStoreOn.putNodeMetaData(StaticTypesMarker.IMPLICIT_RECEIVER, delegationData);
  }
  return true;
}

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

private Expression transformFieldExpression(final FieldExpression exp) {
  FieldNode field = exp.getField();
  MethodCallExpression mce = new MethodCallExpression(
      createFieldHelperReceiver(),
      Traits.helperGetterName(field),
      ArgumentListExpression.EMPTY_ARGUMENTS
  );
  mce.setSourcePosition(exp);
  mce.setImplicitThis(false);
  markDynamicCall(mce, field, field.isStatic());
  return mce;
}

代码示例来源: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());
}

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

private void addListenerToClass(SourceUnit source, ClassNode classNode) {
  boolean bindable = BindableASTTransformation.hasBindableAnnotation(classNode);
  for (PropertyNode propertyNode : classNode.getProperties()) {
    if (!hasVetoableAnnotation(propertyNode.getField())
      && !propertyNode.getField().isFinal()
      && !propertyNode.getField().isStatic())
    {
      createListenerSetter(source,
          bindable || BindableASTTransformation.hasBindableAnnotation(propertyNode.getField()),
        classNode, propertyNode);
    }
  }
}

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

private void addStaticVariableError(VariableExpression ve) {
  // closures are always dynamic
  // propertyExpressions will handle the error a bit differently
  if (!inSpecialConstructorCall && (inClosure || !ve.isInStaticContext())) return;
  if (ve.isThisExpression() || ve.isSuperExpression()) return;
  Variable v = ve.getAccessedVariable();
  if (currentMethod != null && currentMethod.isStatic()) {
    FieldNode fieldNode = getDeclaredOrInheritedField(currentMethod.getDeclaringClass(), ve.getName());
    if (fieldNode != null && fieldNode.isStatic()) return;
  }
  if (v != null && !(v instanceof DynamicVariable) && v.isInStaticContext()) return;
  addVariableError(ve);
}

代码示例来源: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 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);
  }
});

相关文章