private void copyFields(
     final EObject objectWithReference,
     final Iterable<XtendMember> members,
     final Set<String> fieldNames) {
   boolean _not = (!(objectWithReference instanceof XtendClass));
   if (_not) {
     return;
   }
   final XtendClass type = ((XtendClass) objectWithReference);
   final ArrayList<XtendField> newFields = CollectionLiterals.<XtendField>newArrayList();
   Iterable<XtendField> _filter = Iterables.<XtendField>filter(members, XtendField.class);
   for (final XtendField field : _filter) {
     String _name = field.getName();
     boolean _contains = fieldNames.contains(_name);
     boolean _not_1 = (!_contains);
     if (_not_1) {
       final XtendField copiedMember = this._expressionCopier.<XtendField>cloneWithProxies(field);
       SourceAdapter.adapt(copiedMember, field);
       newFields.add(((XtendField) copiedMember));
       String _name_1 = field.getName();
       fieldNames.add(_name_1);
     }
   }
   EList<XtendMember> _members = type.getMembers();
   _members.addAll(newFields);
 }
 protected void transform(final XtendField source, final JvmGenericType container) {
   super.transform(source, container);
   Set<EObject> _jvmElements = this._iJvmModelAssociations.getJvmElements(source);
   EObject _head = IterableExtensions.<EObject>head(_jvmElements);
   final JvmField field = ((JvmField) _head);
   boolean _equals = Objects.equal(field, null);
   if (_equals) {
     return;
   }
   JvmVisibility _visibility = field.getVisibility();
   boolean _equals_1 = Objects.equal(_visibility, JvmVisibility.PRIVATE);
   if (_equals_1) {
     field.setVisibility(JvmVisibility.DEFAULT);
   }
   boolean _isExtension = source.isExtension();
   if (_isExtension) {
     field.setVisibility(JvmVisibility.PUBLIC);
     EList<JvmAnnotationReference> _annotations = field.getAnnotations();
     JvmAnnotationReference _annotation =
         this.jvmTypesBuilder.toAnnotation(source, org.jnario.runner.Extension.class);
     this.jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotation);
   }
 }