private void addField(FieldNode node, boolean isFirst) { final ClassNode r = redirect(); node.setDeclaringClass(r); node.setOwner(r); if (r.fields == null) r.fields = new LinkedList<>(); if (r.fieldIndex == null) r.fieldIndex = new LinkedHashMap<>(); if (isFirst) r.fields.addFirst(node); else r.fields.add(node); r.fieldIndex.put(node.getName(), node); }
private Variable findClassMember(ClassNode cn, String name) { if (cn == null) return null; if (cn.isScript()) { return new DynamicVariable(name, false); } for (FieldNode fn : cn.getFields()) { if (fn.getName().equals(name)) return fn; } for (MethodNode mn : cn.getMethods()) { String pName = getPropertyName(mn); if (name.equals(pName)) { PropertyNode property = new PropertyNode(name, mn.getModifiers(), ClassHelper.OBJECT_TYPE, cn, null, null, null); property.getField().setHasNoRealSourcePosition(true); property.getField().setSynthetic(true); property.getField().setDeclaringClass(cn); property.setDeclaringClass(cn); return property; } } for (PropertyNode pn : cn.getProperties()) { if (pn.getName().equals(name)) return pn; } Variable ret = findClassMember(cn.getSuperClass(), name); if (ret != null) return ret; return findClassMember(cn.getOuterClass(), name); }
public void addFieldFirst(FieldNode node) { final ClassNode r = redirect(); node.setDeclaringClass(r); node.setOwner(r); if (r.fields == null) r.fields = new LinkedList<FieldNode> (); if (r.fieldIndex == null) r.fieldIndex = new HashMap<String,FieldNode> (); r.fields.addFirst(node); r.fieldIndex.put(node.getName(), node); }
public void addField(FieldNode node) { final ClassNode r = redirect(); node.setDeclaringClass(r); node.setOwner(r); if (r.fields == null) r.fields = new LinkedList<FieldNode> (); if (r.fieldIndex == null) r.fieldIndex = new HashMap<String,FieldNode> (); r.fields.add(node); r.fieldIndex.put(node.getName(), node); }
public void addField(FieldNode node) { node.setDeclaringClass(redirect()); node.setOwner(redirect()); redirect().fields.add(node); redirect().fieldIndex.put(node.getName(), node); }
public void addField(FieldNode node) { node.setDeclaringClass(redirect()); node.setOwner(redirect()); redirect().getFieldsLazy().add(node); redirect().getFieldIndexLazy().put(node.getName(), node); }
public void addField(FieldNode node) { node.setDeclaringClass(redirect()); node.setOwner(redirect()); redirect().getFieldsLazy().add(node); redirect().getFieldIndexLazy().put(node.getName(), node); }